580 lines
19 KiB
C
580 lines
19 KiB
C
// 0005d690 std::wfstream::wfstream
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::wfstream(std::wfstream&&) */
|
|
|
|
void __thiscall std::wfstream::wfstream(wfstream *this,wfstream *param_1)
|
|
|
|
{
|
|
ios_base iVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
undefined4 uVar4;
|
|
wios *this_00;
|
|
ios_base *piVar5;
|
|
int *in_stack_0000000c;
|
|
|
|
iVar2 = *(int *)(param_1 + 8);
|
|
iVar3 = *(int *)(iVar2 + -0xc);
|
|
uVar4 = *(undefined4 *)(param_1 + 0xc);
|
|
*(int *)this = iVar2;
|
|
*(undefined4 *)(this + iVar3) = uVar4;
|
|
*(int *)(this + 4) = in_stack_0000000c[1];
|
|
this_00 = (wios *)(this + *(int *)(iVar2 + -0xc));
|
|
piVar5 = (ios_base *)(*(int *)(*in_stack_0000000c + -0xc) + (int)in_stack_0000000c);
|
|
ios_base::_M_move((ios_base *)this_00,piVar5);
|
|
wios::_M_cache_locale(this_00,(locale *)&(this_00->data).field_0x68);
|
|
uVar4 = *(undefined4 *)(piVar5 + 0x70);
|
|
*(undefined4 *)(piVar5 + 0x70) = 0;
|
|
(this_00->data).offset_0xf = (wstreambuf *)0x0;
|
|
(this_00->data).offset_0x3 = uVar4;
|
|
iVar1 = piVar5[0x78];
|
|
(this_00->data).offset_0x7 = *(undefined4 *)(piVar5 + 0x74);
|
|
(this_00->data).offset_0xb = iVar1;
|
|
iVar2 = *(int *)(param_1 + 0x10);
|
|
in_stack_0000000c[1] = 0;
|
|
uVar4 = *(undefined4 *)(param_1 + 0x14);
|
|
*(int *)(this + 8) = iVar2;
|
|
*(undefined4 *)(this + *(int *)(iVar2 + -0xc) + 8) = uVar4;
|
|
iVar2 = *(int *)(param_1 + 4);
|
|
uVar4 = *(undefined4 *)(param_1 + 0x18);
|
|
*(int *)this = iVar2;
|
|
*(undefined4 *)(this + *(int *)(iVar2 + -0xc)) = uVar4;
|
|
*(undefined4 *)(this + 8) = *(undefined4 *)(param_1 + 0x1c);
|
|
iVar2 = *(int *)param_1;
|
|
uVar4 = *(undefined4 *)(param_1 + 0x20);
|
|
*(int *)this = iVar2;
|
|
*(undefined4 *)(this + *(int *)(iVar2 + -0xc)) = uVar4;
|
|
*(undefined4 *)(this + 8) = *(undefined4 *)(param_1 + 0x24);
|
|
wfilebuf::wfilebuf((wfilebuf *)(this + 0xc),(wfilebuf *)(in_stack_0000000c + 3));
|
|
*(wfilebuf **)(this + *(int *)(*(int *)this + -0xc) + 0x7c) = (wfilebuf *)(this + 0xc);
|
|
return;
|
|
}
|
|
|
|
|
|
// 0005d7d0 std::wfstream::wfstream
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.di replaced with injection: get_pc_thunk_di */
|
|
/* std::wfstream::wfstream(std::wfstream&&) */
|
|
|
|
void __thiscall std::wfstream::wfstream(wfstream *this,wfstream *param_1)
|
|
|
|
{
|
|
wios *this_00;
|
|
undefined4 uVar1;
|
|
int iVar2;
|
|
ios_base *piVar3;
|
|
|
|
this_00 = (wios *)(this + 0x98);
|
|
ios_base::ios_base((ios_base *)this_00);
|
|
*(undefined4 *)(this + 0x108) = 0;
|
|
*(undefined ***)this = wistream-in-std::wfstream::construction_vftable;
|
|
*(undefined ***)(this + 0x98) = wistream-in-std::wfstream::internal_construction_vftable;
|
|
uVar1 = *(undefined4 *)(param_1 + 4);
|
|
*(undefined4 *)(this + 0x10c) = 0;
|
|
*(undefined4 *)(this + 4) = uVar1;
|
|
iVar2 = *(int *)param_1;
|
|
this[0x110] = (wfstream)0x0;
|
|
iVar2 = *(int *)(iVar2 + -0xc);
|
|
*(undefined4 *)(this + 0x114) = 0;
|
|
*(undefined4 *)(this + 0x118) = 0;
|
|
piVar3 = (ios_base *)(param_1 + iVar2);
|
|
*(undefined4 *)(this + 0x11c) = 0;
|
|
*(undefined4 *)(this + 0x120) = 0;
|
|
ios_base::_M_move((ios_base *)this_00,piVar3);
|
|
wios::_M_cache_locale(this_00,(locale *)(this + 0x104));
|
|
*(undefined4 *)(this + 0x114) = 0;
|
|
uVar1 = *(undefined4 *)(piVar3 + 0x70);
|
|
*(undefined4 *)(piVar3 + 0x70) = 0;
|
|
*(undefined4 *)(this + 0x108) = uVar1;
|
|
*(undefined4 *)(this + 0x10c) = *(undefined4 *)(piVar3 + 0x74);
|
|
*(ios_base *)(this + 0x110) = piVar3[0x78];
|
|
*(undefined4 *)(param_1 + 4) = 0;
|
|
*(undefined ***)this = vftable;
|
|
*(undefined ***)(this + 8) = internal_vftable;
|
|
*(undefined ***)(this + 0x98) = internal_vftable;
|
|
wfilebuf::wfilebuf((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc));
|
|
*(wfilebuf **)(this + 0x114) = (wfilebuf *)(this + 0xc);
|
|
return;
|
|
}
|
|
|
|
|
|
// 0005d950 std::wfstream::swap
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::swap(std::wfstream&) */
|
|
|
|
void __thiscall std::wfstream::swap(wfstream *this,wfstream *param_1)
|
|
|
|
{
|
|
undefined1 uVar1;
|
|
undefined4 uVar2;
|
|
wios *this_00;
|
|
wios *this_01;
|
|
|
|
this_01 = (wios *)(this + *(int *)(*(int *)this + -0xc));
|
|
this_00 = (wios *)(param_1 + *(int *)(*(int *)param_1 + -0xc));
|
|
ios_base::_M_swap((ios_base *)this_01,(ios_base *)this_00);
|
|
wios::_M_cache_locale(this_01,(locale *)&(this_01->data).field_0x68);
|
|
wios::_M_cache_locale(this_00,(locale *)&(this_00->data).field_0x68);
|
|
uVar2 = (this_01->data).offset_0x3;
|
|
(this_01->data).offset_0x3 = (this_00->data).offset_0x3;
|
|
(this_00->data).offset_0x3 = uVar2;
|
|
uVar2 = (this_01->data).offset_0x7;
|
|
(this_01->data).offset_0x7 = (this_00->data).offset_0x7;
|
|
uVar1 = (this_01->data).offset_0xb;
|
|
(this_00->data).offset_0x7 = uVar2;
|
|
(this_01->data).offset_0xb = (this_00->data).offset_0xb;
|
|
uVar2 = *(undefined4 *)(this + 4);
|
|
(this_00->data).offset_0xb = uVar1;
|
|
*(undefined4 *)(this + 4) = *(undefined4 *)(param_1 + 4);
|
|
*(undefined4 *)(param_1 + 4) = uVar2;
|
|
wfilebuf::swap((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc));
|
|
return;
|
|
}
|
|
|
|
|
|
// 0005d9f0 std::wfstream::rdbuf
|
|
|
|
/* std::wfstream::rdbuf() const */
|
|
|
|
wfstream * __thiscall std::wfstream::rdbuf(wfstream *this)
|
|
|
|
{
|
|
return this + 0xc;
|
|
}
|
|
|
|
|
|
// 0005da00 std::wfstream::is_open
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::is_open() */
|
|
|
|
void __thiscall std::wfstream::is_open(wfstream *this)
|
|
|
|
{
|
|
__basic_file<char>::is_open((__basic_file<char> *)(this + 0x44));
|
|
return;
|
|
}
|
|
|
|
|
|
// 0005da30 std::wfstream::is_open
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::is_open() const */
|
|
|
|
void __thiscall std::wfstream::is_open(wfstream *this)
|
|
|
|
{
|
|
__basic_file<char>::is_open((__basic_file<char> *)(this + 0x44));
|
|
return;
|
|
}
|
|
|
|
|
|
// 00060b60 std::wfstream::wfstream
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::wfstream() */
|
|
|
|
void __thiscall std::wfstream::wfstream(wfstream *this)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
wios_vftable *pwVar4;
|
|
int *in_stack_00000008;
|
|
|
|
iVar1 = in_stack_00000008[2];
|
|
iVar2 = in_stack_00000008[3];
|
|
iVar3 = *(int *)(iVar1 + -0xc);
|
|
*(int *)this = iVar1;
|
|
*(int *)(this + iVar3) = iVar2;
|
|
*(undefined4 *)(this + 4) = 0;
|
|
wios::init((wios *)(this + *(int *)(iVar1 + -0xc)),(wstreambuf *)0x0);
|
|
iVar1 = in_stack_00000008[4];
|
|
pwVar4 = (wios_vftable *)in_stack_00000008[5];
|
|
*(int *)(this + 8) = iVar1;
|
|
iVar1 = *(int *)(iVar1 + -0xc);
|
|
((wios *)(this + iVar1 + 8))->vftablePtr = pwVar4;
|
|
wios::init((wios *)(this + iVar1 + 8),(wstreambuf *)0x0);
|
|
iVar1 = in_stack_00000008[1];
|
|
iVar2 = in_stack_00000008[6];
|
|
*(int *)this = iVar1;
|
|
*(int *)(this + *(int *)(iVar1 + -0xc)) = iVar2;
|
|
*(int *)(this + 8) = in_stack_00000008[7];
|
|
iVar1 = *in_stack_00000008;
|
|
iVar2 = in_stack_00000008[8];
|
|
*(int *)this = iVar1;
|
|
*(int *)(this + *(int *)(iVar1 + -0xc)) = iVar2;
|
|
*(int *)(this + 8) = in_stack_00000008[9];
|
|
wfilebuf::wfilebuf((wfilebuf *)(this + 0xc));
|
|
wios::init((wios *)(this + *(int *)(*(int *)this + -0xc)),(wstreambuf *)(this + 0xc));
|
|
return;
|
|
}
|
|
|
|
|
|
// 00060ea0 std::wfstream::wfstream
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.di replaced with injection: get_pc_thunk_di */
|
|
/* std::wfstream::wfstream() */
|
|
|
|
void __thiscall std::wfstream::wfstream(wfstream *this)
|
|
|
|
{
|
|
wios *this_00;
|
|
|
|
this_00 = (wios *)(this + 0x98);
|
|
ios_base::ios_base((ios_base *)this_00);
|
|
*(undefined4 *)(this + 0x108) = 0;
|
|
*(undefined ***)this = wistream-in-std::wfstream::construction_vftable;
|
|
*(undefined4 *)(this + 0x10c) = 0;
|
|
this[0x110] = (wfstream)0x0;
|
|
*(undefined4 *)(this + 0x114) = 0;
|
|
*(undefined4 *)(this + 0x118) = 0;
|
|
*(undefined4 *)(this + 0x11c) = 0;
|
|
*(undefined4 *)(this + 0x120) = 0;
|
|
*(undefined ***)(this + 0x98) = wistream-in-std::wfstream::internal_construction_vftable;
|
|
*(undefined4 *)(this + 4) = 0;
|
|
wios::init(this_00,(wstreambuf *)0x0);
|
|
*(undefined ***)(this + 8) = wostream-in-std::wfstream::construction_vftable;
|
|
*(undefined ***)(this + 0x98) = wostream-in-std::wfstream::internal_construction_vftable;
|
|
wios::init(this_00,(wstreambuf *)0x0);
|
|
*(undefined ***)this = vftable;
|
|
*(undefined ***)(this + 0x98) = internal_vftable;
|
|
*(undefined ***)(this + 8) = internal_vftable;
|
|
wfilebuf::wfilebuf((wfilebuf *)(this + 0xc));
|
|
wios::init(this_00,(wstreambuf *)(this + 0xc));
|
|
return;
|
|
}
|
|
|
|
|
|
// 000611f0 std::wfstream::operator=
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::TEMPNAMEPLACEHOLDERVALUE(std::wfstream&&) */
|
|
|
|
wfstream * __thiscall std::wfstream::operator=(wfstream *this,wfstream *param_1)
|
|
|
|
{
|
|
undefined1 uVar1;
|
|
undefined4 uVar2;
|
|
wios *this_00;
|
|
wios *this_01;
|
|
|
|
this_01 = (wios *)(this + *(int *)(*(int *)this + -0xc));
|
|
this_00 = (wios *)(param_1 + *(int *)(*(int *)param_1 + -0xc));
|
|
ios_base::_M_swap((ios_base *)this_01,(ios_base *)this_00);
|
|
wios::_M_cache_locale(this_01,(locale *)&(this_01->data).field_0x68);
|
|
wios::_M_cache_locale(this_00,(locale *)&(this_00->data).field_0x68);
|
|
uVar2 = (this_01->data).offset_0x3;
|
|
(this_01->data).offset_0x3 = (this_00->data).offset_0x3;
|
|
(this_00->data).offset_0x3 = uVar2;
|
|
uVar2 = (this_01->data).offset_0x7;
|
|
(this_01->data).offset_0x7 = (this_00->data).offset_0x7;
|
|
uVar1 = (this_01->data).offset_0xb;
|
|
(this_00->data).offset_0x7 = uVar2;
|
|
(this_01->data).offset_0xb = (this_00->data).offset_0xb;
|
|
uVar2 = *(undefined4 *)(this + 4);
|
|
(this_00->data).offset_0xb = uVar1;
|
|
*(undefined4 *)(this + 4) = *(undefined4 *)(param_1 + 4);
|
|
*(undefined4 *)(param_1 + 4) = uVar2;
|
|
wfilebuf::operator=((wfilebuf *)(this + 0xc),(wfilebuf *)(param_1 + 0xc));
|
|
return this;
|
|
}
|
|
|
|
|
|
// 00061520 std::wfstream::open
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::open(std::string const&, std::_Ios_Openmode) */
|
|
|
|
void __thiscall std::wfstream::open(wfstream *this,undefined4 *param_1,undefined4 param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = wfilebuf::open((wfilebuf *)(this + 0xc),*param_1,param_3);
|
|
if (iVar1 != 0) {
|
|
wios::clear((wios *)(this + *(int *)(*(int *)this + -0xc)),0);
|
|
return;
|
|
}
|
|
wios::clear((wios *)(this + *(int *)(*(int *)this + -0xc)),
|
|
(((wios *)(this + *(int *)(*(int *)this + -0xc)))->data).offset_0x10 | 4);
|
|
return;
|
|
}
|
|
|
|
|
|
// 00061670 std::wfstream::open
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::open(char const*, std::_Ios_Openmode) */
|
|
|
|
void __thiscall std::wfstream::open(wfstream *this,undefined4 param_1,undefined4 param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = wfilebuf::open((wfilebuf *)(this + 0xc),param_1,param_3);
|
|
if (iVar1 != 0) {
|
|
wios::clear((wios *)(this + *(int *)(*(int *)this + -0xc)),0);
|
|
return;
|
|
}
|
|
wios::clear((wios *)(this + *(int *)(*(int *)this + -0xc)),
|
|
(((wios *)(this + *(int *)(*(int *)this + -0xc)))->data).offset_0x10 | 4);
|
|
return;
|
|
}
|
|
|
|
|
|
// 000616e0 std::wfstream::wfstream
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.di replaced with injection: get_pc_thunk_di */
|
|
/* std::wfstream::wfstream(char const*, std::_Ios_Openmode) */
|
|
|
|
void __thiscall std::wfstream::wfstream(wfstream *this,undefined4 param_1,undefined4 param_3)
|
|
|
|
{
|
|
wfilebuf *this_00;
|
|
int iVar1;
|
|
wios *pwVar2;
|
|
|
|
pwVar2 = (wios *)(this + 0x98);
|
|
ios_base::ios_base((ios_base *)pwVar2);
|
|
*(undefined4 *)(this + 0x108) = 0;
|
|
*(undefined ***)this = wistream-in-std::wfstream::construction_vftable;
|
|
*(undefined4 *)(this + 0x10c) = 0;
|
|
this[0x110] = (wfstream)0x0;
|
|
*(undefined4 *)(this + 0x114) = 0;
|
|
*(undefined4 *)(this + 0x118) = 0;
|
|
*(undefined4 *)(this + 0x11c) = 0;
|
|
*(undefined4 *)(this + 0x120) = 0;
|
|
*(undefined ***)(this + 0x98) = wistream-in-std::wfstream::internal_construction_vftable;
|
|
*(undefined4 *)(this + 4) = 0;
|
|
wios::init(pwVar2,(wstreambuf *)0x0);
|
|
*(undefined ***)(this + 8) = wostream-in-std::wfstream::construction_vftable;
|
|
*(undefined ***)(this + 0x98) = wostream-in-std::wfstream::internal_construction_vftable;
|
|
wios::init(pwVar2,(wstreambuf *)0x0);
|
|
this_00 = (wfilebuf *)(this + 0xc);
|
|
*(undefined ***)this = vftable;
|
|
*(undefined ***)(this + 0x98) = internal_vftable;
|
|
*(undefined ***)(this + 8) = internal_vftable;
|
|
wfilebuf::wfilebuf(this_00);
|
|
wios::init(pwVar2,(wstreambuf *)this_00);
|
|
iVar1 = wfilebuf::open(this_00,param_1,param_3);
|
|
pwVar2 = (wios *)(this + *(int *)(*(int *)this + -0xc));
|
|
if (iVar1 != 0) {
|
|
wios::clear(pwVar2,0);
|
|
return;
|
|
}
|
|
wios::clear(pwVar2,(pwVar2->data).offset_0x10 | 4);
|
|
return;
|
|
}
|
|
|
|
|
|
// 00061880 std::wfstream::wfstream
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.di replaced with injection: get_pc_thunk_di */
|
|
/* std::wfstream::wfstream(std::string const&, std::_Ios_Openmode) */
|
|
|
|
void __thiscall std::wfstream::wfstream(wfstream *this,undefined4 *param_1,undefined4 param_3)
|
|
|
|
{
|
|
wfilebuf *this_00;
|
|
int iVar1;
|
|
wios *pwVar2;
|
|
|
|
pwVar2 = (wios *)(this + 0x98);
|
|
ios_base::ios_base((ios_base *)pwVar2);
|
|
*(undefined4 *)(this + 0x108) = 0;
|
|
*(undefined ***)this = wistream-in-std::wfstream::construction_vftable;
|
|
*(undefined4 *)(this + 0x10c) = 0;
|
|
this[0x110] = (wfstream)0x0;
|
|
*(undefined4 *)(this + 0x114) = 0;
|
|
*(undefined4 *)(this + 0x118) = 0;
|
|
*(undefined4 *)(this + 0x11c) = 0;
|
|
*(undefined4 *)(this + 0x120) = 0;
|
|
*(undefined ***)(this + 0x98) = wistream-in-std::wfstream::internal_construction_vftable;
|
|
*(undefined4 *)(this + 4) = 0;
|
|
wios::init(pwVar2,(wstreambuf *)0x0);
|
|
*(undefined ***)(this + 8) = wostream-in-std::wfstream::construction_vftable;
|
|
*(undefined ***)(this + 0x98) = wostream-in-std::wfstream::internal_construction_vftable;
|
|
wios::init(pwVar2,(wstreambuf *)0x0);
|
|
this_00 = (wfilebuf *)(this + 0xc);
|
|
*(undefined ***)this = vftable;
|
|
*(undefined ***)(this + 0x98) = internal_vftable;
|
|
*(undefined ***)(this + 8) = internal_vftable;
|
|
wfilebuf::wfilebuf(this_00);
|
|
wios::init(pwVar2,(wstreambuf *)this_00);
|
|
iVar1 = wfilebuf::open(this_00,*param_1,param_3);
|
|
pwVar2 = (wios *)(this + *(int *)(*(int *)this + -0xc));
|
|
if (iVar1 != 0) {
|
|
wios::clear(pwVar2,0);
|
|
return;
|
|
}
|
|
wios::clear(pwVar2,(pwVar2->data).offset_0x10 | 4);
|
|
return;
|
|
}
|
|
|
|
|
|
// 00061a20 std::wfstream::wfstream
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::wfstream(char const*, std::_Ios_Openmode) */
|
|
|
|
void __thiscall
|
|
std::wfstream::wfstream(wfstream *this,int *param_1,undefined4 param_3,undefined4 param_4)
|
|
|
|
{
|
|
wfilebuf *this_00;
|
|
int iVar1;
|
|
int iVar2;
|
|
wios_vftable *pwVar3;
|
|
int iVar4;
|
|
wios *pwVar5;
|
|
|
|
iVar4 = param_1[2];
|
|
iVar1 = param_1[3];
|
|
iVar2 = *(int *)(iVar4 + -0xc);
|
|
*(int *)this = iVar4;
|
|
*(int *)(this + iVar2) = iVar1;
|
|
*(undefined4 *)(this + 4) = 0;
|
|
wios::init((wios *)(this + *(int *)(iVar4 + -0xc)),(wstreambuf *)0x0);
|
|
iVar4 = param_1[4];
|
|
pwVar3 = (wios_vftable *)param_1[5];
|
|
*(int *)(this + 8) = iVar4;
|
|
iVar4 = *(int *)(iVar4 + -0xc);
|
|
((wios *)(this + iVar4 + 8))->vftablePtr = pwVar3;
|
|
wios::init((wios *)(this + iVar4 + 8),(wstreambuf *)0x0);
|
|
iVar4 = param_1[1];
|
|
iVar1 = param_1[6];
|
|
*(int *)this = iVar4;
|
|
*(int *)(this + *(int *)(iVar4 + -0xc)) = iVar1;
|
|
*(int *)(this + 8) = param_1[7];
|
|
iVar4 = *param_1;
|
|
iVar1 = param_1[8];
|
|
*(int *)this = iVar4;
|
|
*(int *)(this + *(int *)(iVar4 + -0xc)) = iVar1;
|
|
*(int *)(this + 8) = param_1[9];
|
|
this_00 = (wfilebuf *)(this + 0xc);
|
|
wfilebuf::wfilebuf(this_00);
|
|
wios::init((wios *)(this + *(int *)(*(int *)this + -0xc)),(wstreambuf *)this_00);
|
|
iVar4 = wfilebuf::open(this_00,param_3,param_4);
|
|
pwVar5 = (wios *)(this + *(int *)(*(int *)this + -0xc));
|
|
if (iVar4 != 0) {
|
|
wios::clear(pwVar5,0);
|
|
return;
|
|
}
|
|
wios::clear(pwVar5,(pwVar5->data).offset_0x10 | 4);
|
|
return;
|
|
}
|
|
|
|
|
|
// 00061b80 std::wfstream::wfstream
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::wfstream(std::string const&, std::_Ios_Openmode) */
|
|
|
|
void __thiscall
|
|
std::wfstream::wfstream(wfstream *this,int *param_1,undefined4 *param_3,undefined4 param_4)
|
|
|
|
{
|
|
wfilebuf *this_00;
|
|
int iVar1;
|
|
int iVar2;
|
|
wios_vftable *pwVar3;
|
|
int iVar4;
|
|
wios *pwVar5;
|
|
|
|
iVar4 = param_1[2];
|
|
iVar1 = param_1[3];
|
|
iVar2 = *(int *)(iVar4 + -0xc);
|
|
*(int *)this = iVar4;
|
|
*(int *)(this + iVar2) = iVar1;
|
|
*(undefined4 *)(this + 4) = 0;
|
|
wios::init((wios *)(this + *(int *)(iVar4 + -0xc)),(wstreambuf *)0x0);
|
|
iVar4 = param_1[4];
|
|
pwVar3 = (wios_vftable *)param_1[5];
|
|
*(int *)(this + 8) = iVar4;
|
|
iVar4 = *(int *)(iVar4 + -0xc);
|
|
((wios *)(this + iVar4 + 8))->vftablePtr = pwVar3;
|
|
wios::init((wios *)(this + iVar4 + 8),(wstreambuf *)0x0);
|
|
iVar4 = param_1[1];
|
|
iVar1 = param_1[6];
|
|
*(int *)this = iVar4;
|
|
*(int *)(this + *(int *)(iVar4 + -0xc)) = iVar1;
|
|
*(int *)(this + 8) = param_1[7];
|
|
iVar4 = *param_1;
|
|
iVar1 = param_1[8];
|
|
*(int *)this = iVar4;
|
|
*(int *)(this + *(int *)(iVar4 + -0xc)) = iVar1;
|
|
*(int *)(this + 8) = param_1[9];
|
|
this_00 = (wfilebuf *)(this + 0xc);
|
|
wfilebuf::wfilebuf(this_00);
|
|
wios::init((wios *)(this + *(int *)(*(int *)this + -0xc)),(wstreambuf *)this_00);
|
|
iVar4 = wfilebuf::open(this_00,*param_3,param_4);
|
|
pwVar5 = (wios *)(this + *(int *)(*(int *)this + -0xc));
|
|
if (iVar4 != 0) {
|
|
wios::clear(pwVar5,0);
|
|
return;
|
|
}
|
|
wios::clear(pwVar5,(pwVar5->data).offset_0x10 | 4);
|
|
return;
|
|
}
|
|
|
|
|
|
// 000627d0 std::wfstream::close
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::close() */
|
|
|
|
void __thiscall std::wfstream::close(wfstream *this)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = wfilebuf::close((wfilebuf *)(this + 0xc));
|
|
if (iVar1 != 0) {
|
|
return;
|
|
}
|
|
wios::clear((wios *)(this + *(int *)(*(int *)this + -0xc)),
|
|
(((wios *)(this + *(int *)(*(int *)this + -0xc)))->data).offset_0x10 | 4);
|
|
return;
|
|
}
|
|
|
|
|
|
// 000634f0 std::wfstream::~wfstream
|
|
|
|
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
|
|
/* std::wfstream::~wfstream() */
|
|
|
|
void __thiscall std::wfstream::~wfstream(wfstream *this)
|
|
|
|
{
|
|
int iVar1;
|
|
int *in_stack_00000008;
|
|
|
|
iVar1 = *in_stack_00000008;
|
|
*(int *)this = iVar1;
|
|
*(int *)(this + *(int *)(iVar1 + -0xc)) = in_stack_00000008[8];
|
|
*(int *)(this + 8) = in_stack_00000008[9];
|
|
*(wfilebuf_vftable **)(this + 0xc) = &wfilebuf::vftable;
|
|
wfilebuf::close((wfilebuf *)(this + 0xc));
|
|
__basic_file<char>::~__basic_file((__basic_file<char> *)(this + 0x44));
|
|
*(wstreambuf_vftable **)(this + 0xc) = &wstreambuf::vftable;
|
|
locale::~locale((locale *)(this + 0x28));
|
|
iVar1 = in_stack_00000008[1];
|
|
*(int *)this = iVar1;
|
|
*(int *)(this + *(int *)(iVar1 + -0xc)) = in_stack_00000008[6];
|
|
*(int *)(this + 8) = in_stack_00000008[7];
|
|
iVar1 = in_stack_00000008[4];
|
|
*(int *)(this + 8) = iVar1;
|
|
*(int *)(this + *(int *)(iVar1 + -0xc) + 8) = in_stack_00000008[5];
|
|
iVar1 = in_stack_00000008[2];
|
|
*(int *)this = iVar1;
|
|
*(int *)(this + *(int *)(iVar1 + -0xc)) = in_stack_00000008[3];
|
|
*(undefined4 *)(this + 4) = 0;
|
|
return;
|
|
}
|
|
|
|
|