// 0024fa80 CMsgSetUIMode::vfunction13 void __thiscall CMsgSetUIMode::vfunction13(CMsgSetUIMode *this,byte *param_1,undefined8 *param_2) { int iVar1; byte *pbVar2; byte bVar3; ulong uVar4; ulong uVar5; byte *pbVar6; if ((*(byte *)&(this->data).offset_0x8 & 1) != 0) { if ((byte *)*param_2 <= param_1) { param_1 = (byte *)FUN_002f822a(param_2); } iVar1 = *(int *)&(this->data).offset_0xc; uVar4 = (ulong)iVar1; *param_1 = 8; bVar3 = (byte)iVar1; if (uVar4 < 0x80) { param_1[1] = bVar3; uVar4 = (this->data).offset_0x0; param_1 = param_1 + 2; goto joined_r0x0024fb07; } param_1[1] = bVar3 | 0x80; uVar5 = uVar4 >> 7; pbVar2 = param_1 + 2; if (uVar4 < 0x4000) { param_1[2] = (byte)(uVar4 >> 7); param_1 = param_1 + 3; } else { do { pbVar6 = pbVar2; uVar4 = uVar5 >> 7; *pbVar6 = (byte)uVar5 | 0x80; uVar5 = uVar4; pbVar2 = pbVar6 + 1; } while (0x7f < uVar4); param_1 = pbVar6 + 2; pbVar6[1] = (byte)uVar4; } } uVar4 = (this->data).offset_0x0; joined_r0x0024fb07: if ((uVar4 & 1) != 0) { FUN_00359676((uVar4 & 0xfffffffffffffffc) + 8,param_1,param_2); return; } return; } // 00252380 CMsgSetUIMode::vfunction10 void __thiscall CMsgSetUIMode::vfunction10(CMsgSetUIMode *this) { uint uVar1; int iVar2; iVar2 = 0; if ((*(byte *)&(this->data).offset_0x8 & 1) != 0) { uVar1 = *(uint *)&(this->data).offset_0xc; if ((int)uVar1 < 0) { iVar2 = 0xb; } else { uVar1 = uVar1 | 1; iVar2 = 0x1f; if (uVar1 != 0) { for (; uVar1 >> iVar2 == 0; iVar2 = iVar2 + -1) { } } iVar2 = (iVar2 * 9 + 0x49U >> 6) + 1; } } if (((this->data).offset_0x0 & 1) == 0) { *(int *)&(this->data).field_0xc = iVar2; return; } FUN_00359fe2(&this->data,iVar2,&(this->data).field_0xc); return; } // 002525f0 CMsgSetUIMode::vfunction11 undefined4 __thiscall CMsgSetUIMode::vfunction11(CMsgSetUIMode *this) { return *(undefined4 *)&(this->data).field_0xc; } // 002582b0 CMsgSetUIMode::~CMsgSetUIMode void __thiscall CMsgSetUIMode::~CMsgSetUIMode(CMsgSetUIMode *this) { ulong uVar1; this->vftablePtr = &vftable; uVar1 = (this->data).offset_0x0; if ((((uVar1 & 1) != 0) && ((uVar1 & 3) != 0)) && (((uVar1 & 2) != 0 || (*(long *)(uVar1 & 0xfffffffffffffffc) == 0)))) { FUN_002564b0(); return; } return; } // 0025a950 CMsgSetUIMode::~CMsgSetUIMode void __thiscall CMsgSetUIMode::~CMsgSetUIMode(CMsgSetUIMode *this) { ulong uVar1; this->vftablePtr = &vftable; uVar1 = (this->data).offset_0x0; if ((((uVar1 & 1) != 0) && ((uVar1 & 3) != 0)) && (((uVar1 & 2) != 0 || (*(long *)(uVar1 & 0xfffffffffffffffc) == 0)))) { FUN_002564b0(); FUN_0039deb8(this,0x20); return; } FUN_0039deb8(this,0x20); return; } // 0026cf80 CMsgSetUIMode::vfunction20 undefined1 [16] __thiscall CMsgSetUIMode::vfunction20(void) { FUN_0033e2d0(&DAT_00466400,0); return *(undefined1 (*) [16])(PTR_DAT_00466448 + 0x9e0); } // 0026f7a0 CMsgSetUIMode::CMsgSetUIMode void __thiscall CMsgSetUIMode::CMsgSetUIMode(CMsgSetUIMode *this,ulong param_1) { (this->data).offset_0x0 = param_1; this->vftablePtr = &vftable; (this->data).offset_0x8 = 0; *(undefined8 *)&(this->data).field_0xc = 0; return; } // 00275e10 CMsgSetUIMode::vfunction5 void __thiscall CMsgSetUIMode::vfunction5(CMsgSetUIMode *this,long param_1) { undefined8 *puVar1; if (param_1 != 0) { puVar1 = (undefined8 *)thunk_FUN_002d7d08(param_1,0x20,&typeinfo); puVar1[1] = param_1; *puVar1 = &vftable; *(undefined4 *)(puVar1 + 2) = 0; *(undefined8 *)((long)puVar1 + 0x14) = 0; return; } puVar1 = (undefined8 *)FUN_003a1a2c(0x20); puVar1[1] = 0; *puVar1 = &vftable; *(undefined4 *)(puVar1 + 2) = 0; *(undefined8 *)((long)puVar1 + 0x14) = 0; return; } // 00275e20 CMsgSetUIMode::CMsgSetUIMode_Constructor_or_Destructor /* WARNING: Removing unreachable block (ram,0x00275da6) */ void __thiscall CMsgSetUIMode::CMsgSetUIMode_Constructor_or_Destructor(CMsgSetUIMode *this) { undefined8 *puVar1; puVar1 = (undefined8 *)FUN_003a1a2c(0x20); puVar1[1] = 0; *puVar1 = &vftable; *(undefined4 *)(puVar1 + 2) = 0; *(undefined8 *)((long)puVar1 + 0x14) = 0; return; } // 0028b570 CMsgSetUIMode::vfunction12 byte * __thiscall CMsgSetUIMode::vfunction12(CMsgSetUIMode *this,byte *param_1,undefined8 *param_2) { undefined4 *puVar1; byte bVar2; ulong uVar3; uint uVar4; long lVar5; char extraout_DL; byte *pbVar6; uint uVar7; int iVar8; ulong uVar9; uint uVar10; long in_FS_OFFSET; undefined1 auVar11 [12]; undefined8 local_38; long local_30; uVar10 = 0; local_30 = *(long *)(in_FS_OFFSET + 0x28); do { if ((byte *)*param_2 <= param_1) goto LAB_0028b695; LAB_0028b5a2: bVar2 = *param_1; uVar9 = (ulong)bVar2; pbVar6 = param_1 + 1; if (bVar2 < 0x80) { LAB_0028b5c7: uVar4 = (uint)(uVar9 >> 3); param_1 = pbVar6; } else { uVar9 = (ulong)((uint)bVar2 + (param_1[1] - 1) * 0x80); if (param_1[1] < 0x80) { pbVar6 = param_1 + 2; goto LAB_0028b5c7; } auVar11 = FUN_002ea28a(); uVar9 = (ulong)auVar11._8_4_; if (auVar11._0_8_ == (byte *)0x0) goto LAB_0028b614; uVar4 = auVar11._8_4_ >> 3; param_1 = auVar11._0_8_; } uVar7 = (uint)uVar9; if (uVar4 != 1) { if ((uVar7 & 7) == 4) goto LAB_0028b710; if (uVar7 != 0) goto LAB_0028b5eb; iVar8 = -1; goto LAB_0028b713; } if ((char)uVar9 == '\b') { param_1 = (byte *)FUN_00276260(param_1,&local_38); *(int *)&(this->data).offset_0xc = (int)local_38; if (param_1 == (byte *)0x0) { param_1 = (byte *)0x0; uVar10 = 1; goto LAB_0028b616; } uVar10 = 1; if ((byte *)*param_2 <= param_1) { LAB_0028b695: iVar8 = (int)((long)param_1 - param_2[1]); if (iVar8 == *(int *)((long)param_2 + 0x1c)) { if ((iVar8 < 1) || (param_2[2] != 0)) goto LAB_0028b616; goto LAB_0028b614; } param_1 = (byte *)FUN_002ea7d8(param_2,(long)param_1 - param_2[1] & 0xffffffff, *(undefined4 *)((long)param_2 + 0x5c)); if (extraout_DL != '\0') goto LAB_0028b616; } goto LAB_0028b5a2; } if ((uVar7 & 7) == 4) { LAB_0028b710: iVar8 = uVar7 - 1; LAB_0028b713: *(int *)(param_2 + 10) = iVar8; goto LAB_0028b616; } LAB_0028b5eb: uVar3 = (this->data).offset_0x0; if ((uVar3 & 1) == 0) { lVar5 = FUN_002762f0(&this->data); } else { lVar5 = (uVar3 & 0xfffffffffffffffc) + 8; } param_1 = (byte *)FUN_003589df(uVar9,lVar5,param_1,param_2); if (param_1 == (byte *)0x0) { LAB_0028b614: param_1 = (byte *)0x0; LAB_0028b616: puVar1 = &(this->data).offset_0x8; *puVar1 = *puVar1 | uVar10; if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) { return param_1; } /* WARNING: Subroutine does not return */ FUN_00219340(); } } while( true ); } // 002a0900 CMsgSetUIMode::vfunction16 void __thiscall CMsgSetUIMode::vfunction16(CMsgSetUIMode *this,undefined8 param_1) { undefined4 *puVar1; undefined4 uVar2; ulong uVar3; long lVar4; long lVar5; lVar4 = FUN_0039e006(param_1,&google::protobuf::Message::typeinfo,&typeinfo,0); if (lVar4 != 0) { uVar3 = *(ulong *)(lVar4 + 8); if ((uVar3 & 1) != 0) { if ((uVar3 & 1) == 0) { lVar5 = (*(code *)(ulong)((uint)uVar3 & 1))(); } else { lVar5 = (uVar3 & 0xfffffffffffffffc) + 8; } FUN_002921f0(&this->data,lVar5); } if ((*(byte *)(lVar4 + 0x10) & 1) != 0) { uVar2 = *(undefined4 *)(lVar4 + 0x18); puVar1 = &(this->data).offset_0x8; *puVar1 = *puVar1 | 1; *(undefined4 *)&(this->data).offset_0xc = uVar2; } return; } FUN_0034dd68(param_1,this); return; } // 002a90f0 CMsgSetUIMode::vfunction6 void __thiscall CMsgSetUIMode::vfunction6(CMsgSetUIMode *this) { *(undefined4 *)&(this->data).offset_0xc = 0; (this->data).offset_0x8 = 0; if (((this->data).offset_0x0 & 1) == 0) { return; } FUN_002a4470(&this->data); return; } // 002ad7f0 CMsgSetUIMode::vfunction15 void __thiscall CMsgSetUIMode::vfunction15(CMsgSetUIMode *this,CMsgSetUIMode *param_1) { undefined4 *puVar1; undefined4 uVar2; ulong uVar3; long lVar4; long lVar5; if (this == param_1) { return; } *(undefined4 *)&(this->data).offset_0xc = 0; (this->data).offset_0x8 = 0; if (((this->data).offset_0x0 & 1) != 0) { FUN_002a4470(&this->data); } lVar4 = FUN_0039e006(param_1,&google::protobuf::Message::typeinfo,&typeinfo,0); if (lVar4 != 0) { uVar3 = *(ulong *)(lVar4 + 8); if ((uVar3 & 1) != 0) { if ((uVar3 & 1) == 0) { lVar5 = (*(code *)(ulong)((uint)uVar3 & 1))(); } else { lVar5 = (uVar3 & 0xfffffffffffffffc) + 8; } FUN_002921f0(&this->data,lVar5); } if ((*(byte *)(lVar4 + 0x10) & 1) != 0) { uVar2 = *(undefined4 *)(lVar4 + 0x18); puVar1 = &(this->data).offset_0x8; *puVar1 = *puVar1 | 1; *(undefined4 *)&(this->data).offset_0xc = uVar2; } return; } FUN_0034dd68(param_1,this); return; }