// 002529b0 CMsgOpenSteamURL::vfunction11 undefined4 __thiscall CMsgOpenSteamURL::vfunction11(CMsgOpenSteamURL *this) { return *(undefined4 *)((long)&(this->data).offset_0x8 + 4); } // 00254780 CMsgOpenSteamURL::vfunction10 long __thiscall CMsgOpenSteamURL::vfunction10(CMsgOpenSteamURL *this) { byte bVar1; long lVar2; int iVar3; uint uVar4; uint uVar5; long lVar6; uVar5 = *(uint *)&(this->data).offset_0x8; lVar6 = 0; if ((uVar5 & 7) != 0) { if ((uVar5 & 1) != 0) { lVar6 = *(long *)(*(long *)((ulong)(this->data).offset_0x10 & 0xfffffffffffffffe) + -0x18); uVar4 = (uint)lVar6 | 1; iVar3 = 0x1f; if (uVar4 != 0) { for (; uVar4 >> iVar3 == 0; iVar3 = iVar3 + -1) { } } lVar6 = lVar6 + 1 + (ulong)(iVar3 * 9 + 0x49U >> 6); } if ((uVar5 & 2) != 0) { lVar2 = *(long *)(*(long *)((ulong)(this->data).offset_0x18 & 0xfffffffffffffffe) + -0x18); uVar4 = (uint)lVar2 | 1; iVar3 = 0x1f; if (uVar4 != 0) { for (; uVar4 >> iVar3 == 0; iVar3 = iVar3 + -1) { } } lVar6 = (ulong)(iVar3 * 9 + 0x49U >> 6) + lVar2 + 1 + lVar6; } if ((uVar5 & 4) != 0) { uVar5 = (this->data).offset_0x20 | 1; iVar3 = 0x1f; if (uVar5 != 0) { for (; uVar5 >> iVar3 == 0; iVar3 = iVar3 + -1) { } } lVar6 = lVar6 + (ulong)((iVar3 * 9 + 0x49U >> 6) + 1); bVar1 = (byte)(this->data).offset_0x0; goto joined_r0x00254812; } } bVar1 = (byte)(this->data).offset_0x0; joined_r0x00254812: if ((bVar1 & 1) == 0) { *(int *)((long)&(this->data).offset_0x8 + 4) = (int)lVar6; return lVar6; } lVar6 = FUN_00359fe2(&this->data,lVar6,(undefined1 *)((long)&(this->data).offset_0x8 + 4)); return lVar6; } // 0025f910 CMsgOpenSteamURL::~CMsgOpenSteamURL /* WARNING: Removing unreachable block (ram,0x0025fa68) */ /* WARNING: Removing unreachable block (ram,0x0025fa58) */ void __thiscall CMsgOpenSteamURL::~CMsgOpenSteamURL(CMsgOpenSteamURL *this) { undefined8 *puVar1; int *piVar2; int iVar3; long *plVar4; ulong uVar5; long in_FS_OFFSET; undefined1 uStack_21; long lStack_20; plVar4 = (long *)(this->data).offset_0x10; lStack_20 = *(long *)(in_FS_OFFSET + 0x28); this->vftablePtr = &vftable; if ((plVar4 != (long *)0x0) && (plVar4 != (long *)&DAT_0046ab18)) { puVar1 = (undefined8 *)(*plVar4 + -0x18); if (puVar1 != &DAT_0046e8a0) { LOCK(); piVar2 = (int *)(*plVar4 + -8); iVar3 = *piVar2; *piVar2 = *piVar2 + -1; UNLOCK(); if (iVar3 < 1) { FUN_003ce482(puVar1,&uStack_21); } } FUN_0039deb8(plVar4,8); } plVar4 = (long *)(this->data).offset_0x18; if ((plVar4 != (long *)0x0) && (plVar4 != (long *)&DAT_0046ab18)) { puVar1 = (undefined8 *)(*plVar4 + -0x18); if (puVar1 != &DAT_0046e8a0) { LOCK(); piVar2 = (int *)(*plVar4 + -8); iVar3 = *piVar2; *piVar2 = *piVar2 + -1; UNLOCK(); if (iVar3 < 1) { FUN_003ce482(puVar1,&uStack_21); } } FUN_0039deb8(plVar4,8); } uVar5 = (this->data).offset_0x0; if ((((uVar5 & 1) == 0) || ((uVar5 & 3) == 0)) || (((uVar5 & 2) == 0 && (*(long *)(uVar5 & 0xfffffffffffffffc) != 0)))) { if (lStack_20 == *(long *)(in_FS_OFFSET + 0x28)) { return; } } else if (lStack_20 == *(long *)(in_FS_OFFSET + 0x28)) { FUN_002564b0(); return; } /* WARNING: Subroutine does not return */ FUN_00219340(); } // 00260850 CMsgOpenSteamURL::~CMsgOpenSteamURL /* WARNING: Removing unreachable block (ram,0x002609a0) */ /* WARNING: Removing unreachable block (ram,0x00260990) */ void __thiscall CMsgOpenSteamURL::~CMsgOpenSteamURL(CMsgOpenSteamURL *this) { undefined8 *puVar1; int *piVar2; int iVar3; long *plVar4; ulong uVar5; long in_FS_OFFSET; undefined1 uStack_21; long lStack_20; plVar4 = (long *)(this->data).offset_0x10; lStack_20 = *(long *)(in_FS_OFFSET + 0x28); this->vftablePtr = &vftable; if ((plVar4 != (long *)0x0) && (plVar4 != (long *)&DAT_0046ab18)) { puVar1 = (undefined8 *)(*plVar4 + -0x18); if (puVar1 != &DAT_0046e8a0) { LOCK(); piVar2 = (int *)(*plVar4 + -8); iVar3 = *piVar2; *piVar2 = *piVar2 + -1; UNLOCK(); if (iVar3 < 1) { FUN_003ce482(puVar1,&uStack_21); } } FUN_0039deb8(plVar4,8); } plVar4 = (long *)(this->data).offset_0x18; if ((plVar4 != (long *)0x0) && (plVar4 != (long *)&DAT_0046ab18)) { puVar1 = (undefined8 *)(*plVar4 + -0x18); if (puVar1 != &DAT_0046e8a0) { LOCK(); piVar2 = (int *)(*plVar4 + -8); iVar3 = *piVar2; *piVar2 = *piVar2 + -1; UNLOCK(); if (iVar3 < 1) { FUN_003ce482(puVar1,&uStack_21); } } FUN_0039deb8(plVar4,8); } uVar5 = (this->data).offset_0x0; if ((((uVar5 & 1) != 0) && ((uVar5 & 3) != 0)) && (((uVar5 & 2) != 0 || (*(long *)(uVar5 & 0xfffffffffffffffc) == 0)))) { FUN_002564b0(); } if (lStack_20 != *(long *)(in_FS_OFFSET + 0x28)) { /* WARNING: Subroutine does not return */ FUN_00219340(); } FUN_0039deb8(this,0x30); return; } // 00265c30 CMsgOpenSteamURL::vfunction13 void __thiscall CMsgOpenSteamURL::vfunction13(CMsgOpenSteamURL *this,byte *param_1,long *param_2) { uint uVar1; long lVar2; ulong uVar3; byte *pbVar4; long lVar5; uint uVar6; uint uVar7; byte *pbVar8; long *plVar9; uVar1 = *(uint *)&(this->data).offset_0x8; if ((uVar1 & 4) != 0) { if ((byte *)*param_2 <= param_1) { param_1 = (byte *)FUN_002f822a(param_2); } uVar7 = (this->data).offset_0x20; *param_1 = 8; if (uVar7 < 0x80) { param_1[1] = (byte)uVar7; param_1 = param_1 + 2; } else { param_1[1] = (byte)uVar7 | 0x80; pbVar4 = param_1 + 2; uVar6 = uVar7 >> 7; if (uVar7 < 0x4000) { param_1[2] = (byte)(uVar7 >> 7); param_1 = param_1 + 3; } else { do { pbVar8 = pbVar4; uVar7 = uVar6 >> 7; *pbVar8 = (byte)uVar6 | 0x80; pbVar4 = pbVar8 + 1; uVar6 = uVar7; } while (0x7f < uVar7); param_1 = pbVar8 + 2; pbVar8[1] = (byte)uVar7; } } } if ((uVar1 & 1) != 0) { plVar9 = (long *)((ulong)(this->data).offset_0x10 & 0xfffffffffffffffe); lVar2 = *(long *)(*plVar9 + -0x18); if ((lVar2 < 0x80) && (lVar2 < (*param_2 - (long)param_1) + 0xf)) { *param_1 = 0x12; param_1[1] = (byte)lVar2; lVar5 = FUN_002197d0(param_1 + 2,*plVar9,lVar2); param_1 = (byte *)(lVar5 + lVar2); } else { param_1 = (byte *)FUN_002f83fe(param_2,2,plVar9,param_1); } } if ((uVar1 & 2) != 0) { plVar9 = (long *)((ulong)(this->data).offset_0x18 & 0xfffffffffffffffe); lVar2 = *(long *)(*plVar9 + -0x18); if ((lVar2 < 0x80) && (lVar2 < (*param_2 - (long)param_1) + 0xf)) { *param_1 = 0x1a; param_1[1] = (byte)lVar2; lVar5 = FUN_002197d0(param_1 + 2,*plVar9,lVar2); param_1 = (byte *)(lVar5 + lVar2); } else { param_1 = (byte *)FUN_002f83fe(param_2,3,plVar9,param_1); } } uVar3 = (this->data).offset_0x0; if ((uVar3 & 1) != 0) { FUN_00359676((uVar3 & 0xfffffffffffffffc) + 8,param_1,param_2); return; } return; } // 0026cb70 CMsgOpenSteamURL::vfunction20 undefined1 [16] __thiscall CMsgOpenSteamURL::vfunction20(void) { FUN_0033e2d0(&DAT_00466400,0); return *(undefined1 (*) [16])(PTR_DAT_00466448 + 0x5d0); } // 0026e820 CMsgOpenSteamURL::CMsgOpenSteamURL void __thiscall CMsgOpenSteamURL::CMsgOpenSteamURL(CMsgOpenSteamURL *this,ulong param_1) { (this->data).offset_0x0 = param_1; this->vftablePtr = &vftable; (this->data).offset_0x8 = 0; (this->data).offset_0x10 = &DAT_0046ab18; (this->data).offset_0x18 = &DAT_0046ab18; (this->data).offset_0x20 = 0; return; } // 00273570 CMsgOpenSteamURL::vfunction5 void __thiscall CMsgOpenSteamURL::vfunction5(CMsgOpenSteamURL *this,long param_1) { undefined8 *puVar1; if (param_1 != 0) { puVar1 = (undefined8 *)thunk_FUN_002d7d08(param_1,0x30,&typeinfo); puVar1[2] = 0; puVar1[1] = param_1; *puVar1 = &vftable; puVar1[3] = &DAT_0046ab18; puVar1[4] = &DAT_0046ab18; *(undefined4 *)(puVar1 + 5) = 0; return; } puVar1 = (undefined8 *)FUN_003a1a2c(0x30); puVar1[2] = 0; puVar1[1] = 0; *puVar1 = &vftable; puVar1[3] = &DAT_0046ab18; puVar1[4] = &DAT_0046ab18; *(undefined4 *)(puVar1 + 5) = 0; return; } // 00273580 CMsgOpenSteamURL::CMsgOpenSteamURL_Constructor_or_Destructor /* WARNING: Removing unreachable block (ram,0x002734e2) */ void __thiscall CMsgOpenSteamURL::CMsgOpenSteamURL_Constructor_or_Destructor(CMsgOpenSteamURL *this) { undefined8 *puVar1; puVar1 = (undefined8 *)FUN_003a1a2c(0x30); puVar1[2] = 0; puVar1[1] = 0; *puVar1 = &vftable; puVar1[3] = &DAT_0046ab18; puVar1[4] = &DAT_0046ab18; *(undefined4 *)(puVar1 + 5) = 0; return; } // 00283e00 CMsgOpenSteamURL::vfunction12 byte * __thiscall CMsgOpenSteamURL::vfunction12(CMsgOpenSteamURL *this,byte *param_1,undefined8 *param_2) { undefined **ppuVar1; undefined8 *puVar2; byte bVar3; ulong uVar4; undefined8 uVar5; long lVar6; char extraout_DL; char cVar7; uint uVar8; int iVar9; ulong uVar10; byte *pbVar11; uint uVar12; long in_FS_OFFSET; undefined1 auVar13 [16]; undefined4 uStack_34; long lStack_30; uVar12 = 0; lStack_30 = *(long *)(in_FS_OFFSET + 0x28); do { pbVar11 = param_1; if ((byte *)*param_2 <= param_1) goto LAB_00283ec0; while( true ) { bVar3 = *pbVar11; uVar10 = (ulong)bVar3; param_1 = pbVar11 + 1; if (0x7f < bVar3) { param_1 = pbVar11 + 2; uVar10 = (ulong)((uint)bVar3 + (pbVar11[1] - 1) * 0x80); if (0x7f < pbVar11[1]) { auVar13 = FUN_002ea28a(); param_1 = auVar13._0_8_; uVar10 = auVar13._8_8_ & 0xffffffff; if (param_1 == (byte *)0x0) goto LAB_00283f3b; } } uVar8 = (uint)uVar10; iVar9 = (int)(uVar10 >> 3); cVar7 = (char)uVar10; if (iVar9 == 2) break; if (iVar9 == 3) { if (cVar7 == '\x1a') { uVar10 = (this->data).offset_0x0; ppuVar1 = &(this->data).offset_0x18; puVar2 = &(this->data).offset_0x8; *(uint *)puVar2 = *(uint *)puVar2 | 2; goto joined_r0x00283fc6; } goto LAB_00283fe0; } if (iVar9 != 1) { if ((uVar8 & 7) == 4) goto LAB_00283fea; if (uVar8 != 0) goto LAB_00283f7a; iVar9 = -1; goto LAB_00283fed; } if (cVar7 != '\b') goto LAB_00283fe0; param_1 = (byte *)FUN_002762b0(param_1,&uStack_34); (this->data).offset_0x20 = uStack_34; if (param_1 == (byte *)0x0) { param_1 = (byte *)0x0; uVar12 = 4; goto LAB_00283f3d; } uVar12 = 4; pbVar11 = param_1; if ((byte *)*param_2 <= param_1) { LAB_00283ec0: iVar9 = (int)((long)param_1 - param_2[1]); if (iVar9 == *(int *)((long)param_2 + 0x1c)) { if ((iVar9 < 1) || (param_2[2] != 0)) goto LAB_00283f3d; goto LAB_00283f3b; } param_1 = (byte *)FUN_002ea7d8(param_2,(long)param_1 - param_2[1] & 0xffffffff, *(undefined4 *)((long)param_2 + 0x5c)); pbVar11 = param_1; if (extraout_DL != '\0') goto LAB_00283f3d; } } if (cVar7 == '\x12') { uVar10 = (this->data).offset_0x0; ppuVar1 = &(this->data).offset_0x10; puVar2 = &(this->data).offset_0x8; *(uint *)puVar2 = *(uint *)puVar2 | 1; joined_r0x00283fc6: if ((uVar10 & 3) == 0) { uVar10 = uVar10 & 0xfffffffffffffffc; } else if ((uVar10 & 2) == 0) { uVar10 = *(ulong *)(uVar10 & 0xfffffffffffffffc); } else { uVar10 = 0; } uVar5 = FUN_002d7f56(ppuVar1,uVar10); param_1 = (byte *)FUN_002ea63f(uVar5,param_1,param_2); goto joined_r0x00283f35; } LAB_00283fe0: if ((uVar8 & 7) == 4) { LAB_00283fea: iVar9 = uVar8 - 1; LAB_00283fed: *(int *)(param_2 + 10) = iVar9; goto LAB_00283f3d; } LAB_00283f7a: uVar4 = (this->data).offset_0x0; if ((uVar4 & 1) == 0) { lVar6 = FUN_002762f0(&this->data); } else { lVar6 = (uVar4 & 0xfffffffffffffffc) + 8; } param_1 = (byte *)FUN_003589df(uVar10,lVar6,param_1,param_2); joined_r0x00283f35: if (param_1 == (byte *)0x0) { LAB_00283f3b: param_1 = (byte *)0x0; LAB_00283f3d: puVar2 = &(this->data).offset_0x8; *(uint *)puVar2 = *(uint *)puVar2 | uVar12; if (lStack_30 != *(long *)(in_FS_OFFSET + 0x28)) { /* WARNING: Subroutine does not return */ FUN_00219340(); } return param_1; } } while( true ); } // 002a4070 CMsgOpenSteamURL::vfunction16 void __thiscall CMsgOpenSteamURL::vfunction16(CMsgOpenSteamURL *this,undefined8 param_1) { undefined8 *puVar1; uint uVar2; ulong uVar3; long lVar4; long lVar5; ulong uVar6; 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); } uVar2 = *(uint *)(lVar4 + 0x10); if ((uVar2 & 7) != 0) { if ((uVar2 & 1) != 0) { uVar3 = *(ulong *)(lVar4 + 0x18); uVar6 = (this->data).offset_0x0; puVar1 = &(this->data).offset_0x8; *(uint *)puVar1 = *(uint *)puVar1 | 1; if ((uVar6 & 3) == 0) { uVar6 = uVar6 & 0xfffffffffffffffc; } else if ((uVar6 & 2) == 0) { uVar6 = *(ulong *)(uVar6 & 0xfffffffffffffffc); } else { uVar6 = 0; } FUN_002d7f16(&(this->data).offset_0x10,uVar3 & 0xfffffffffffffffe,uVar6); } if ((uVar2 & 2) != 0) { uVar3 = *(ulong *)(lVar4 + 0x20); uVar6 = (this->data).offset_0x0; puVar1 = &(this->data).offset_0x8; *(uint *)puVar1 = *(uint *)puVar1 | 2; if ((uVar6 & 3) == 0) { uVar6 = uVar6 & 0xfffffffffffffffc; } else if ((uVar6 & 2) == 0) { uVar6 = *(ulong *)(uVar6 & 0xfffffffffffffffc); } else { uVar6 = 0; } FUN_002d7f16(&(this->data).offset_0x18,uVar3 & 0xfffffffffffffffe,uVar6); } if ((uVar2 & 4) != 0) { (this->data).offset_0x20 = *(undefined4 *)(lVar4 + 0x28); } puVar1 = &(this->data).offset_0x8; *(uint *)puVar1 = *(uint *)puVar1 | uVar2; } return; } FUN_0034dd68(param_1,this); return; } // 002a7770 CMsgOpenSteamURL::vfunction6 /* WARNING: Removing unreachable block (ram,0x002a7860) */ /* WARNING: Removing unreachable block (ram,0x002a78a9) */ void __thiscall CMsgOpenSteamURL::vfunction6(CMsgOpenSteamURL *this) { undefined8 *puVar1; int *piVar2; int iVar3; uint uVar4; undefined1 *puVar5; long *plVar6; long in_FS_OFFSET; undefined1 local_31; long local_30; uVar4 = *(uint *)&(this->data).offset_0x8; local_30 = *(long *)(in_FS_OFFSET + 0x28); if ((uVar4 & 3) != 0) { if ((uVar4 & 1) != 0) { plVar6 = (long *)((ulong)(this->data).offset_0x10 & 0xfffffffffffffffe); if (*(int *)(*plVar6 + -8) < 1) { puVar5 = (undefined1 *)*plVar6; if (puVar5 != &DAT_0046e8b8) { *(undefined4 *)(puVar5 + -8) = 0; *(undefined8 *)(puVar5 + -0x18) = 0; *puVar5 = 0; } } else { puVar1 = (undefined8 *)(*plVar6 + -0x18); if (puVar1 != &DAT_0046e8a0) { LOCK(); piVar2 = (int *)(*plVar6 + -8); iVar3 = *piVar2; *piVar2 = *piVar2 + -1; UNLOCK(); if (iVar3 < 1) { FUN_003ce482(puVar1,&local_31); } } *plVar6 = (long)&DAT_0046e8b8; } } if ((uVar4 & 2) != 0) { FUN_003cb078((ulong)(this->data).offset_0x18 & 0xfffffffffffffffe); } } (this->data).offset_0x20 = 0; *(undefined4 *)&(this->data).offset_0x8 = 0; if (((this->data).offset_0x0 & 1) == 0) { if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) { return; } } else if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) { FUN_002a4470(&this->data); return; } /* WARNING: Subroutine does not return */ FUN_00219340(); } // 002b9f40 CMsgOpenSteamURL::vfunction15 void __thiscall CMsgOpenSteamURL::vfunction15(CMsgOpenSteamURL *this,CMsgOpenSteamURL *param_1) { undefined8 *puVar1; uint uVar2; ulong uVar3; long lVar4; long lVar5; ulong uVar6; if (this == param_1) { return; } uVar2 = *(uint *)&(this->data).offset_0x8; if ((uVar2 & 3) != 0) { if ((uVar2 & 1) != 0) { FUN_003cb078((ulong)(this->data).offset_0x10 & 0xfffffffffffffffe); } if ((uVar2 & 2) != 0) { FUN_003cb078((ulong)(this->data).offset_0x18 & 0xfffffffffffffffe); } } (this->data).offset_0x20 = 0; *(undefined4 *)&(this->data).offset_0x8 = 0; if (((this->data).offset_0x0 & 1) != 0) { FUN_002a4470(&this->data); } lVar5 = FUN_0039e006(param_1,&google::protobuf::Message::typeinfo,&typeinfo,0); if (lVar5 == 0) { FUN_0034dd68(param_1,this); return; } uVar3 = *(ulong *)(lVar5 + 8); if ((uVar3 & 1) != 0) { if ((uVar3 & 1) == 0) { lVar4 = (*(code *)(ulong)((uint)uVar3 & 1))(); } else { lVar4 = (uVar3 & 0xfffffffffffffffc) + 8; } FUN_002921f0(&this->data,lVar4); } uVar2 = *(uint *)(lVar5 + 0x10); if ((uVar2 & 7) != 0) { if ((uVar2 & 1) != 0) { uVar3 = *(ulong *)(lVar5 + 0x18); uVar6 = (this->data).offset_0x0; puVar1 = &(this->data).offset_0x8; *(uint *)puVar1 = *(uint *)puVar1 | 1; if ((uVar6 & 3) == 0) { uVar6 = uVar6 & 0xfffffffffffffffc; } else if ((uVar6 & 2) == 0) { uVar6 = *(ulong *)(uVar6 & 0xfffffffffffffffc); } else { uVar6 = 0; } FUN_002d7f16(&(this->data).offset_0x10,uVar3 & 0xfffffffffffffffe,uVar6); } if ((uVar2 & 2) != 0) { uVar3 = *(ulong *)(lVar5 + 0x20); uVar6 = (this->data).offset_0x0; puVar1 = &(this->data).offset_0x8; *(uint *)puVar1 = *(uint *)puVar1 | 2; if ((uVar6 & 3) == 0) { uVar6 = uVar6 & 0xfffffffffffffffc; } else if ((uVar6 & 2) == 0) { uVar6 = *(ulong *)(uVar6 & 0xfffffffffffffffc); } else { uVar6 = 0; } FUN_002d7f16(&(this->data).offset_0x18,uVar3 & 0xfffffffffffffffe,uVar6); } if ((uVar2 & 4) != 0) { (this->data).offset_0x20 = *(undefined4 *)(lVar5 + 0x28); } puVar1 = &(this->data).offset_0x8; *(uint *)puVar1 = *(uint *)puVar1 | uVar2; } return; }