Files

491 lines
12 KiB
C

// 003c4d9e std::wstringbuf::wstringbuf
void __thiscall std::wstringbuf::wstringbuf(wstringbuf *this)
{
undefined4 uVar1;
wstreambuf::wstreambuf((wstreambuf *)this);
this->vftablePtr = &vftable;
uVar1 = FUN_003c1c57(8,0x10);
(this->data).offset_0x7 = uVar1;
FUN_003cfaac(&(this->data).field_0xf);
return;
}
// 003c4df2 std::wstringbuf::wstringbuf
void __thiscall std::wstringbuf::wstringbuf(wstringbuf *this,undefined4 param_1)
{
wstreambuf::wstreambuf((wstreambuf *)this);
this->vftablePtr = &vftable;
(this->data).offset_0x7 = param_1;
FUN_003cfaac(&(this->data).field_0xf);
return;
}
// 003c4e3c std::wstringbuf::wstringbuf
void __thiscall std::wstringbuf::wstringbuf(wstringbuf *this,undefined8 param_1,undefined4 param_2)
{
undefined8 uVar1;
undefined8 uVar2;
undefined1 local_19;
wstreambuf::wstreambuf((wstreambuf *)this);
this->vftablePtr = &vftable;
(this->data).offset_0x7 = 0;
FUN_003d2bc0(&local_19,param_1);
uVar1 = FUN_003d0674(param_1);
uVar2 = FUN_003d2ba6(param_1);
FUN_003cfec2(&(this->data).field_0xf,uVar2,uVar1,&local_19);
FUN_003ab97e(&local_19);
FUN_003c535c(this,param_2);
return;
}
// 003c53ea std::wstringbuf::vfunction8
long __thiscall std::wstringbuf::vfunction8(wstringbuf *this)
{
int iVar1;
long lVar2;
long lVar3;
long local_20;
local_20 = -1;
iVar1 = FUN_003c1c45((this->data).offset_0x7,8);
if (iVar1 != 0) {
FUN_003c5fe0(this);
lVar2 = FUN_00427606(this);
lVar3 = FUN_004275f4(this);
local_20 = lVar2 - lVar3 >> 2;
}
return local_20;
}
// 003c545e std::wstringbuf::vfunction10
undefined4 __thiscall std::wstringbuf::vfunction10(wstringbuf *this)
{
int iVar1;
ulong uVar2;
ulong uVar3;
undefined8 uVar4;
undefined4 local_1c;
local_1c = 0xffffffff;
iVar1 = FUN_003c1c45((this->data).offset_0x7,8);
if (iVar1 != 0) {
FUN_003c5fe0(this);
uVar2 = FUN_004275f4(this);
uVar3 = FUN_00427606(this);
if (uVar2 < uVar3) {
uVar4 = FUN_004275f4(this);
local_1c = FUN_003a5dc6(uVar4);
}
}
return local_1c;
}
// 003c54e4 std::wstringbuf::vfunction12
undefined4 __thiscall std::wstringbuf::vfunction12(wstringbuf *this,undefined4 param_1)
{
int iVar1;
undefined4 uVar2;
ulong uVar3;
ulong uVar4;
long lVar5;
undefined4 *puVar6;
undefined4 local_34;
wstringbuf *local_30;
undefined4 local_24;
undefined4 local_20;
undefined1 local_1b;
char local_1a;
char local_19;
local_24 = 0xffffffff;
local_34 = param_1;
local_30 = this;
uVar3 = FUN_004275e2(this);
uVar4 = FUN_004275f4(local_30);
if (uVar3 < uVar4) {
local_19 = FUN_00391956(&local_34,&local_24);
if (local_19 == '\x01') {
FUN_00427618(local_30,0xffffffff);
local_24 = FUN_003c1c0b(&local_34);
}
else {
lVar5 = FUN_004275f4(local_30);
local_20 = FUN_003a5db6(&local_34);
local_1a = FUN_003c1bec(&local_20,lVar5 + -4);
iVar1 = FUN_003c1c45((local_30->data).offset_0x7,0x10);
local_1b = iVar1 != 0;
if ((local_1a != '\0') || ((bool)local_1b)) {
FUN_00427618(local_30,0xffffffff);
if (local_1a != '\x01') {
puVar6 = (undefined4 *)FUN_004275f4(local_30);
uVar2 = FUN_003a5db6(&local_34);
*puVar6 = uVar2;
}
local_24 = local_34;
}
}
}
return local_24;
}
// 003c560c std::wstringbuf::vfunction14
ulong __thiscall std::wstringbuf::vfunction14(wstringbuf *this,uint param_1)
{
bool bVar1;
int iVar2;
ulong uVar3;
ulong uVar4;
undefined8 *puVar5;
long lVar6;
long lVar7;
undefined8 uVar8;
long lVar9;
long lVar10;
undefined4 *puVar11;
uint local_84;
wstringbuf *local_80;
undefined1 local_70 [8];
undefined8 local_68;
long local_60;
undefined4 local_54;
undefined8 local_50;
long local_48;
undefined1 local_39;
undefined8 local_38;
undefined4 local_30;
char local_29;
long local_28;
char local_1a;
undefined1 local_19;
local_84 = param_1;
local_80 = this;
iVar2 = FUN_003c1c45((this->data).offset_0x7,0x10);
local_19 = iVar2 != 0;
if ((bool)local_19) {
local_54 = FUN_00391975();
local_1a = FUN_00391956(&local_84,&local_54);
if (local_1a == '\0') {
local_28 = FUN_003d0796(&(local_80->data).field_0xf);
local_60 = FUN_003d06ac(&(local_80->data).field_0xf);
uVar3 = FUN_00427692(local_80);
uVar4 = FUN_004276a4(local_80);
local_29 = uVar3 < uVar4;
if (((bool)local_29) || (local_28 != local_60)) {
bVar1 = false;
}
else {
bVar1 = true;
}
if (bVar1) {
uVar3 = FUN_00391975();
}
else {
local_30 = FUN_003a5db6(&local_84);
if (local_29 == '\x01') {
puVar11 = (undefined4 *)FUN_00427692(local_80);
*puVar11 = local_30;
}
else {
local_50 = 0x200;
local_48 = local_28 * 2;
puVar5 = (undefined8 *)FUN_003a4843(&local_48,&local_50);
local_68 = *puVar5;
puVar5 = (undefined8 *)FUN_0039f2e5(&local_68,&local_60);
local_38 = *puVar5;
FUN_003d2bc0(&local_39,&(local_80->data).field_0xf);
FUN_003cfafe(local_70,&local_39);
FUN_003ab97e(&local_39);
FUN_003d07b4(local_70,local_38);
lVar6 = FUN_00427680(local_80);
if (lVar6 != 0) {
lVar6 = FUN_004276a4(local_80);
lVar7 = FUN_00427680(local_80);
uVar8 = FUN_00427680(local_80);
FUN_003d15dc(local_70,uVar8,lVar6 - lVar7 >> 2);
}
FUN_003d1362(local_70,local_30);
FUN_003d29a6(&(local_80->data).field_0xf,local_70);
lVar6 = FUN_00427692(local_80);
lVar7 = FUN_00427680(local_80);
lVar9 = FUN_004275f4(local_80);
lVar10 = FUN_004275e2(local_80);
uVar8 = FUN_003d2ba6(&(local_80->data).field_0xf);
FUN_003c5e9c(local_80,uVar8,lVar9 - lVar10 >> 2,lVar6 - lVar7 >> 2);
FUN_003d0234(local_70);
}
FUN_004276b6(local_80,1);
uVar3 = (ulong)local_84;
}
}
else {
uVar3 = FUN_003c1c0b(&local_84);
}
}
else {
uVar3 = FUN_00391975();
}
return uVar3;
}
// 003c593e std::wstringbuf::vfunction4
wstringbuf * __thiscall std::wstringbuf::vfunction4(wstringbuf *this,long param_1,long param_2)
{
if ((param_1 != 0) && (-1 < param_2)) {
FUN_003d09e2(&(this->data).field_0xf);
FUN_003c5e9c(this,param_1,param_2,0);
}
return this;
}
// 003c5990 std::wstringbuf::vfunction5
undefined1 [16] __thiscall
std::wstringbuf::vfunction5(wstringbuf *this,long param_1,int param_2,undefined4 param_3)
{
bool bVar1;
undefined1 auVar2 [16];
undefined4 uVar3;
int iVar4;
long lVar5;
undefined8 uVar6;
undefined8 uVar7;
long lVar8;
undefined8 local_78;
undefined8 local_70;
undefined8 local_68;
undefined8 local_60;
undefined8 local_58;
undefined8 local_50;
long local_48;
char local_3b;
byte local_3a;
byte local_39;
long local_38;
long local_30;
FUN_003c80f2(&local_78,0xffffffffffffffff);
uVar3 = FUN_003c1c45(8,(this->data).offset_0x7);
iVar4 = FUN_003c1c45(uVar3,param_3);
local_39 = iVar4 != 0;
uVar3 = FUN_003c1c45(0x10,(this->data).offset_0x7);
iVar4 = FUN_003c1c45(uVar3,param_3);
local_3a = iVar4 != 0;
if (((local_39 == 0) || (!(bool)local_3a)) || (param_2 == 1)) {
local_3b = '\0';
}
else {
local_3b = '\x01';
}
iVar4 = FUN_003c1c45(param_3,0x10);
local_39 = (iVar4 == 0 & local_39) != 0;
iVar4 = FUN_003c1c45(param_3,8);
local_3a = (iVar4 == 0 & local_3a) != 0;
if (local_39 == '\0') {
local_48 = FUN_00427680(this);
}
else {
local_48 = FUN_004275e2(this);
}
if (((local_48 == 0) && (param_1 != 0)) ||
((local_39 == '\0' && ((local_3a == '\0' && (local_3b == '\0')))))) goto LAB_003c5c98;
FUN_003c5fe0(this);
local_38 = param_1;
local_30 = param_1;
if (param_2 == 1) {
lVar5 = FUN_004275f4(this);
local_30 = local_30 + (lVar5 - local_48 >> 2);
lVar5 = FUN_00427692(this);
local_38 = local_38 + (lVar5 - local_48 >> 2);
}
else if (param_2 == 2) {
lVar5 = FUN_00427606(this);
local_38 = local_30 + (lVar5 - local_48 >> 2);
local_30 = local_38;
}
if (((local_39 == '\0') && (local_3b == '\0')) || (local_30 < 0)) {
LAB_003c5b90:
bVar1 = false;
}
else {
lVar5 = FUN_00427606(this);
if (lVar5 - local_48 >> 2 < local_30) goto LAB_003c5b90;
bVar1 = true;
}
if (bVar1) {
uVar6 = FUN_00427606(this);
lVar5 = FUN_004275e2(this);
lVar8 = local_30 * 4;
uVar7 = FUN_004275e2(this);
FUN_00427644(this,uVar7,lVar5 + lVar8,uVar6);
FUN_003c80f2(&local_68,local_30);
local_78 = local_68;
local_70 = local_60;
}
if (((local_3a == '\0') && (local_3b == '\0')) || (local_38 < 0)) {
LAB_003c5c38:
bVar1 = false;
}
else {
lVar5 = FUN_00427606(this);
if (lVar5 - local_48 >> 2 < local_38) goto LAB_003c5c38;
bVar1 = true;
}
if (bVar1) {
uVar6 = FUN_004276a4(this);
uVar7 = FUN_00427680(this);
FUN_003c60a0(this,uVar7,uVar6,local_38);
FUN_003c80f2(&local_58,local_38);
local_78 = local_58;
local_70 = local_50;
}
LAB_003c5c98:
auVar2._8_8_ = local_70;
auVar2._0_8_ = local_78;
return auVar2;
}
// 003c5cac std::wstringbuf::vfunction6
undefined1 [16] __thiscall
std::wstringbuf::vfunction6
(wstringbuf *this,undefined8 param_1,undefined8 param_2,undefined4 param_3)
{
bool bVar1;
undefined1 auVar2 [16];
wstringbuf *pwVar3;
undefined4 uVar4;
int iVar5;
long lVar6;
undefined8 uVar7;
undefined8 uVar8;
long lVar9;
undefined8 local_78;
undefined8 local_70;
undefined4 local_64;
wstringbuf *local_60;
undefined8 local_58;
undefined8 local_50;
char local_41;
long local_40;
long local_38;
char local_2a;
char local_29;
local_78 = param_1;
local_70 = param_2;
local_64 = param_3;
local_60 = this;
FUN_003c80f2(&local_58,0xffffffffffffffff);
uVar4 = FUN_003c1c45(8,(local_60->data).offset_0x7);
iVar5 = FUN_003c1c45(uVar4,local_64);
local_29 = iVar5 != 0;
uVar4 = FUN_003c1c45(0x10,(local_60->data).offset_0x7);
iVar5 = FUN_003c1c45(uVar4,local_64);
local_2a = iVar5 != 0;
if (local_29 == '\0') {
local_38 = FUN_00427680(local_60);
}
else {
local_38 = FUN_004275e2(local_60);
}
if (local_38 == 0) {
lVar6 = FUN_003c8122(&local_78);
if (lVar6 == 0) goto LAB_003c5d7a;
LAB_003c5d8d:
bVar1 = false;
}
else {
LAB_003c5d7a:
if ((local_29 == '\0') && (local_2a == '\0')) goto LAB_003c5d8d;
bVar1 = true;
}
if (!bVar1) goto LAB_003c5e88;
FUN_003c5fe0(local_60);
local_40 = FUN_003c8122(&local_78);
if (local_40 < 0) {
LAB_003c5dde:
local_41 = '\0';
}
else {
lVar6 = FUN_00427606(local_60);
if (lVar6 - local_38 >> 2 < local_40) goto LAB_003c5dde;
local_41 = '\x01';
}
pwVar3 = local_60;
if (local_41 != '\0') {
if (local_29 != '\0') {
uVar7 = FUN_00427606(local_60);
lVar6 = FUN_004275e2(local_60);
lVar9 = local_40 * 4;
uVar8 = FUN_004275e2(local_60);
FUN_00427644(pwVar3,uVar8,lVar6 + lVar9,uVar7);
}
if (local_2a != '\0') {
uVar7 = FUN_004276a4(local_60);
uVar8 = FUN_00427680(local_60);
FUN_003c60a0(local_60,uVar8,uVar7,local_40);
}
local_58 = local_78;
local_50 = local_70;
}
LAB_003c5e88:
auVar2._8_8_ = local_50;
auVar2._0_8_ = local_58;
return auVar2;
}
// 003c7f8e std::wstringbuf::~wstringbuf
void __thiscall std::wstringbuf::~wstringbuf(wstringbuf *this)
{
this->vftablePtr = &vftable;
FUN_003d0234(&(this->data).field_0xf);
wstreambuf::~wstreambuf((wstreambuf *)this);
return;
}
// 003c7fcc std::wstringbuf::vfunction2
void __thiscall std::wstringbuf::vfunction2(wstringbuf *this)
{
~wstringbuf(this);
google::protobuf::internal::FieldSkipper::vfunction2((FieldSkipper *)this);
return;
}