// 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; }