Files

468 lines
13 KiB
C

// 00153710 std::wofstream::wofstream
/* std::wofstream::wofstream(std::wofstream&&) */
void __thiscall std::wofstream::wofstream(wofstream *this,wofstream *param_1)
{
long lVar1;
undefined8 uVar2;
undefined8 uVar3;
long *in_RDX;
wios *this_00;
ios_base *piVar4;
lVar1 = *(long *)(*(long *)(param_1 + 8) + -0x18);
*(long *)this = *(long *)(param_1 + 8);
this_00 = (wios *)(this + lVar1);
this_00->vftablePtr = *(wios_vftable **)(param_1 + 0x10);
piVar4 = (ios_base *)(*(long *)(*in_RDX + -0x18) + (long)in_RDX);
ios_base::_M_move((ios_base *)this_00,piVar4);
wios::_M_cache_locale(this_00,(locale *)&(this_00->data).field_0xc8);
uVar2 = *(undefined8 *)(piVar4 + 0xd8);
*(undefined8 *)(piVar4 + 0xd8) = 0;
(this_00->data).offset_0x17 = (wstreambuf *)0x0;
uVar3 = *(undefined8 *)(param_1 + 0x18);
(this_00->data).offset_0x7 = uVar2;
(this_00->data).offset_0xf = *(undefined4 *)(piVar4 + 0xe0);
(this_00->data).offset_0x13 = piVar4[0xe4];
lVar1 = *(long *)param_1;
*(long *)this = lVar1;
*(undefined8 *)(this + *(long *)(lVar1 + -0x18)) = uVar3;
wfilebuf::wfilebuf((wfilebuf *)(this + 8),(wfilebuf *)(in_RDX + 1));
*(wfilebuf **)(this + *(long *)(*(long *)this + -0x18) + 0xe8) = (wfilebuf *)(this + 8);
return;
}
// 00153800 std::wofstream::wofstream
/* std::wofstream::wofstream(std::wofstream&&) */
void __thiscall std::wofstream::wofstream(wofstream *this,wofstream *param_1)
{
wios *this_00;
long lVar1;
undefined8 uVar2;
ios_base *piVar3;
this_00 = (wios *)(this + 0xf8);
ios_base::ios_base((ios_base *)this_00);
*(undefined ***)this = wostream-in-std::wofstream::construction_vftable;
*(undefined ***)(this + 0xf8) = wostream-in-std::wofstream::internal_construction_vftable;
lVar1 = *(long *)param_1;
*(undefined8 *)(this + 0x1d0) = 0;
lVar1 = *(long *)(lVar1 + -0x18);
*(undefined4 *)(this + 0x1d8) = 0;
this[0x1dc] = (wofstream)0x0;
*(undefined8 *)(this + 0x1e0) = 0;
piVar3 = (ios_base *)(param_1 + lVar1);
*(undefined8 *)(this + 0x1e8) = 0;
*(undefined8 *)(this + 0x1f0) = 0;
*(undefined8 *)(this + 0x1f8) = 0;
ios_base::_M_move((ios_base *)this_00,piVar3);
wios::_M_cache_locale(this_00,(locale *)(this + 0x1c8));
uVar2 = *(undefined8 *)(piVar3 + 0xd8);
*(undefined8 *)(piVar3 + 0xd8) = 0;
*(undefined8 *)(this + 0x1e0) = 0;
*(undefined8 *)(this + 0x1d0) = uVar2;
*(undefined4 *)(this + 0x1d8) = *(undefined4 *)(piVar3 + 0xe0);
this[0x1dc] = *(wofstream *)(piVar3 + 0xe4);
*(undefined ***)this = vftable;
*(undefined ***)(this + 0xf8) = internal_vftable;
wfilebuf::wfilebuf((wfilebuf *)(this + 8),(wfilebuf *)(param_1 + 8));
*(wfilebuf **)(this + 0x1e0) = (wfilebuf *)(this + 8);
return;
}
// 00153950 std::wofstream::swap
/* std::wofstream::swap(std::wofstream&) */
void __thiscall std::wofstream::swap(wofstream *this,wofstream *param_1)
{
undefined1 uVar1;
undefined4 uVar2;
undefined8 uVar3;
wios *this_00;
wios *this_01;
this_01 = (wios *)(this + *(long *)(*(long *)this + -0x18));
this_00 = (wios *)(param_1 + *(long *)(*(long *)param_1 + -0x18));
ios_base::_M_swap((ios_base *)this_01,(ios_base *)this_00);
wios::_M_cache_locale(this_01,(locale *)&(this_01->data).field_0xc8);
wios::_M_cache_locale(this_00,(locale *)&(this_00->data).field_0xc8);
uVar3 = (this_01->data).offset_0x7;
(this_01->data).offset_0x7 = (this_00->data).offset_0x7;
(this_00->data).offset_0x7 = uVar3;
uVar2 = (this_01->data).offset_0xf;
(this_01->data).offset_0xf = (this_00->data).offset_0xf;
(this_00->data).offset_0xf = uVar2;
uVar1 = (this_01->data).offset_0x13;
(this_01->data).offset_0x13 = (this_00->data).offset_0x13;
(this_00->data).offset_0x13 = uVar1;
wfilebuf::swap((wfilebuf *)(this + 8),(wfilebuf *)(param_1 + 8));
return;
}
// 00153a10 std::wofstream::rdbuf
/* std::wofstream::rdbuf() const */
wofstream * __thiscall std::wofstream::rdbuf(wofstream *this)
{
return this + 8;
}
// 00153a20 std::wofstream::is_open
/* std::wofstream::is_open() */
void __thiscall std::wofstream::is_open(wofstream *this)
{
__basic_file<char>::is_open((__basic_file<char> *)(this + 0x70));
return;
}
// 00153a30 std::wofstream::is_open
/* std::wofstream::is_open() const */
void __thiscall std::wofstream::is_open(wofstream *this)
{
__basic_file<char>::is_open((__basic_file<char> *)(this + 0x70));
return;
}
// 00156a80 std::wofstream::wofstream
/* std::wofstream::wofstream() */
void __thiscall std::wofstream::wofstream(wofstream *this)
{
long lVar1;
long lVar2;
long *in_RSI;
lVar1 = in_RSI[1];
*(long *)this = lVar1;
lVar1 = *(long *)(lVar1 + -0x18);
((wios *)(this + lVar1))->vftablePtr = (wios_vftable *)in_RSI[2];
wios::init((wios *)(this + lVar1),(wstreambuf *)0x0);
lVar1 = *in_RSI;
lVar2 = in_RSI[3];
*(long *)this = lVar1;
*(long *)(this + *(long *)(lVar1 + -0x18)) = lVar2;
wfilebuf::wfilebuf((wfilebuf *)(this + 8));
wios::init((wios *)(this + *(long *)(*(long *)this + -0x18)),(wstreambuf *)(this + 8));
return;
}
// 00156d50 std::wofstream::wofstream
/* std::wofstream::wofstream() */
void __thiscall std::wofstream::wofstream(wofstream *this)
{
wios *this_00;
this_00 = (wios *)(this + 0xf8);
ios_base::ios_base((ios_base *)this_00);
*(undefined ***)this = wostream-in-std::wofstream::construction_vftable;
*(undefined8 *)(this + 0x1d0) = 0;
*(undefined4 *)(this + 0x1d8) = 0;
this[0x1dc] = (wofstream)0x0;
*(undefined8 *)(this + 0x1e0) = 0;
*(undefined8 *)(this + 0x1e8) = 0;
*(undefined8 *)(this + 0x1f0) = 0;
*(undefined8 *)(this + 0x1f8) = 0;
*(undefined ***)(this + 0xf8) = wostream-in-std::wofstream::internal_construction_vftable;
wios::init(this_00,(wstreambuf *)0x0);
*(undefined ***)this = vftable;
*(undefined ***)(this + 0xf8) = internal_vftable;
wfilebuf::wfilebuf((wfilebuf *)(this + 8));
wios::init(this_00,(wstreambuf *)(this + 8));
return;
}
// 00157350 std::wofstream::operator=
/* std::wofstream::TEMPNAMEPLACEHOLDERVALUE(std::wofstream&&) */
wofstream * __thiscall std::wofstream::operator=(wofstream *this,wofstream *param_1)
{
undefined1 uVar1;
undefined4 uVar2;
undefined8 uVar3;
wios *this_00;
wios *this_01;
this_01 = (wios *)(this + *(long *)(*(long *)this + -0x18));
this_00 = (wios *)(param_1 + *(long *)(*(long *)param_1 + -0x18));
ios_base::_M_swap((ios_base *)this_01,(ios_base *)this_00);
wios::_M_cache_locale(this_01,(locale *)&(this_01->data).field_0xc8);
wios::_M_cache_locale(this_00,(locale *)&(this_00->data).field_0xc8);
uVar3 = (this_01->data).offset_0x7;
(this_01->data).offset_0x7 = (this_00->data).offset_0x7;
(this_00->data).offset_0x7 = uVar3;
uVar2 = (this_01->data).offset_0xf;
(this_01->data).offset_0xf = (this_00->data).offset_0xf;
(this_00->data).offset_0xf = uVar2;
uVar1 = (this_01->data).offset_0x13;
(this_01->data).offset_0x13 = (this_00->data).offset_0x13;
(this_00->data).offset_0x13 = uVar1;
wfilebuf::operator=((wfilebuf *)(this + 8),(wfilebuf *)(param_1 + 8));
return this;
}
// 00157560 std::wofstream::open
/* std::wofstream::open(std::string const&, std::_Ios_Openmode) */
void __thiscall std::wofstream::open(wofstream *this,undefined8 *param_1,uint param_3)
{
long lVar1;
lVar1 = wfilebuf::open((wfilebuf *)(this + 8),*param_1,param_3 | 0x10);
if (lVar1 != 0) {
wios::clear((wios *)(this + *(long *)(*(long *)this + -0x18)),0);
return;
}
wios::clear((wios *)(this + *(long *)(*(long *)this + -0x18)),
(((wios *)(this + *(long *)(*(long *)this + -0x18)))->data).offset_0x18 | 4);
return;
}
// 00157650 std::wofstream::open
/* std::wofstream::open(char const*, std::_Ios_Openmode) */
void __thiscall std::wofstream::open(wofstream *this,undefined8 param_1,uint param_3)
{
long lVar1;
lVar1 = wfilebuf::open((wfilebuf *)(this + 8),param_1,param_3 | 0x10);
if (lVar1 != 0) {
wios::clear((wios *)(this + *(long *)(*(long *)this + -0x18)),0);
return;
}
wios::clear((wios *)(this + *(long *)(*(long *)this + -0x18)),
(((wios *)(this + *(long *)(*(long *)this + -0x18)))->data).offset_0x18 | 4);
return;
}
// 00157ce0 std::wofstream::wofstream
/* std::wofstream::wofstream(char const*, std::_Ios_Openmode) */
void __thiscall std::wofstream::wofstream(wofstream *this,undefined8 param_1,uint param_3)
{
wfilebuf *this_00;
long lVar1;
wios *pwVar2;
pwVar2 = (wios *)(this + 0xf8);
ios_base::ios_base((ios_base *)pwVar2);
*(undefined ***)this = wostream-in-std::wofstream::construction_vftable;
*(undefined8 *)(this + 0x1d0) = 0;
*(undefined4 *)(this + 0x1d8) = 0;
this[0x1dc] = (wofstream)0x0;
*(undefined8 *)(this + 0x1e0) = 0;
*(undefined8 *)(this + 0x1e8) = 0;
*(undefined8 *)(this + 0x1f0) = 0;
*(undefined8 *)(this + 0x1f8) = 0;
*(undefined ***)(this + 0xf8) = wostream-in-std::wofstream::internal_construction_vftable;
wios::init(pwVar2,(wstreambuf *)0x0);
this_00 = (wfilebuf *)(this + 8);
*(undefined ***)this = vftable;
*(undefined ***)(this + 0xf8) = internal_vftable;
wfilebuf::wfilebuf(this_00);
wios::init(pwVar2,(wstreambuf *)this_00);
lVar1 = wfilebuf::open(this_00,param_1,param_3 | 0x10);
pwVar2 = (wios *)(this + *(long *)(*(long *)this + -0x18));
if (lVar1 != 0) {
wios::clear(pwVar2,0);
return;
}
wios::clear(pwVar2,(pwVar2->data).offset_0x18 | 4);
return;
}
// 00157e30 std::wofstream::wofstream
/* std::wofstream::wofstream(char const*, std::_Ios_Openmode) */
void __thiscall
std::wofstream::wofstream(wofstream *this,long *param_1,undefined8 param_3,uint param_4)
{
wfilebuf *this_00;
long lVar1;
long lVar2;
wios *pwVar3;
lVar2 = param_1[1];
this_00 = (wfilebuf *)(this + 8);
*(long *)this = lVar2;
lVar2 = *(long *)(lVar2 + -0x18);
((wios *)(this + lVar2))->vftablePtr = (wios_vftable *)param_1[2];
wios::init((wios *)(this + lVar2),(wstreambuf *)0x0);
lVar2 = *param_1;
lVar1 = param_1[3];
*(long *)this = lVar2;
*(long *)(this + *(long *)(lVar2 + -0x18)) = lVar1;
wfilebuf::wfilebuf(this_00);
wios::init((wios *)(this + *(long *)(*(long *)this + -0x18)),(wstreambuf *)this_00);
lVar2 = wfilebuf::open(this_00,param_3,param_4 | 0x10);
pwVar3 = (wios *)(this + *(long *)(*(long *)this + -0x18));
if (lVar2 != 0) {
wios::clear(pwVar3,0);
return;
}
wios::clear(pwVar3,(pwVar3->data).offset_0x18 | 4);
return;
}
// 00158070 std::wofstream::wofstream
/* std::wofstream::wofstream(std::string const&, std::_Ios_Openmode) */
void __thiscall std::wofstream::wofstream(wofstream *this,undefined8 *param_1,uint param_3)
{
wfilebuf *this_00;
long lVar1;
wios *pwVar2;
pwVar2 = (wios *)(this + 0xf8);
ios_base::ios_base((ios_base *)pwVar2);
*(undefined ***)this = wostream-in-std::wofstream::construction_vftable;
*(undefined8 *)(this + 0x1d0) = 0;
*(undefined4 *)(this + 0x1d8) = 0;
this[0x1dc] = (wofstream)0x0;
*(undefined8 *)(this + 0x1e0) = 0;
*(undefined8 *)(this + 0x1e8) = 0;
*(undefined8 *)(this + 0x1f0) = 0;
*(undefined8 *)(this + 0x1f8) = 0;
*(undefined ***)(this + 0xf8) = wostream-in-std::wofstream::internal_construction_vftable;
wios::init(pwVar2,(wstreambuf *)0x0);
this_00 = (wfilebuf *)(this + 8);
*(undefined ***)this = vftable;
*(undefined ***)(this + 0xf8) = internal_vftable;
wfilebuf::wfilebuf(this_00);
wios::init(pwVar2,(wstreambuf *)this_00);
lVar1 = wfilebuf::open(this_00,*param_1,param_3 | 0x10);
pwVar2 = (wios *)(this + *(long *)(*(long *)this + -0x18));
if (lVar1 != 0) {
wios::clear(pwVar2,0);
return;
}
wios::clear(pwVar2,(pwVar2->data).offset_0x18 | 4);
return;
}
// 001581c0 std::wofstream::wofstream
/* std::wofstream::wofstream(std::string const&, std::_Ios_Openmode) */
void __thiscall
std::wofstream::wofstream(wofstream *this,long *param_1,undefined8 *param_3,uint param_4)
{
wfilebuf *this_00;
long lVar1;
long lVar2;
wios *pwVar3;
lVar2 = param_1[1];
this_00 = (wfilebuf *)(this + 8);
*(long *)this = lVar2;
lVar2 = *(long *)(lVar2 + -0x18);
((wios *)(this + lVar2))->vftablePtr = (wios_vftable *)param_1[2];
wios::init((wios *)(this + lVar2),(wstreambuf *)0x0);
lVar2 = *param_1;
lVar1 = param_1[3];
*(long *)this = lVar2;
*(long *)(this + *(long *)(lVar2 + -0x18)) = lVar1;
wfilebuf::wfilebuf(this_00);
wios::init((wios *)(this + *(long *)(*(long *)this + -0x18)),(wstreambuf *)this_00);
lVar2 = wfilebuf::open(this_00,*param_3,param_4 | 0x10);
pwVar3 = (wios *)(this + *(long *)(*(long *)this + -0x18));
if (lVar2 != 0) {
wios::clear(pwVar3,0);
return;
}
wios::clear(pwVar3,(pwVar3->data).offset_0x18 | 4);
return;
}
// 00158610 std::wofstream::close
/* std::wofstream::close() */
void __thiscall std::wofstream::close(wofstream *this)
{
long lVar1;
lVar1 = wfilebuf::close((wfilebuf *)(this + 8));
if (lVar1 != 0) {
return;
}
wios::clear((wios *)(this + *(long *)(*(long *)this + -0x18)),
(((wios *)(this + *(long *)(*(long *)this + -0x18)))->data).offset_0x18 | 4);
return;
}
// 00159020 std::wofstream::~wofstream
/* std::wofstream::~wofstream() */
void __thiscall std::wofstream::~wofstream(wofstream *this)
{
long lVar1;
long *in_RSI;
lVar1 = *in_RSI;
*(long *)this = lVar1;
*(long *)(this + *(long *)(lVar1 + -0x18)) = in_RSI[3];
((wfilebuf *)(this + 8))->vftablePtr = &wfilebuf::vftable;
wfilebuf::close((wfilebuf *)(this + 8));
__basic_file<char>::~__basic_file((__basic_file<char> *)(this + 0x70));
*(wstreambuf_vftable **)(this + 8) = &wstreambuf::vftable;
locale::~locale((locale *)(this + 0x40));
lVar1 = in_RSI[1];
*(long *)this = lVar1;
*(long *)(this + *(long *)(lVar1 + -0x18)) = in_RSI[2];
return;
}