// 0007d150 CValidator::Pop /* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */ void CValidator::Pop(int param_1) { uint uVar1; int *piVar2; int iVar3; int *piVar4; code *pcVar5; char cVar6; uint *puVar7; uint uVar8; int *piVar9; int *piVar10; int *piVar11; uint uVar12; uint uVar13; uint uVar14; int iVar15; undefined4 *local_54; int local_20 [4]; if (DAT_0012c7b0 == 0) { local_20[0] = 0; if (*(char *)(param_1 + 0x85c) != '\0') { return; } if (*(char *)(param_1 + 0x35) != '\0') { return; } } else { local_20[0] = FUN_00083980("CValidator::Pop",0,local_20); if ((*(char *)(param_1 + 0x85c) != '\0') || (*(char *)(param_1 + 0x35) != '\0')) { if (local_20[0] == 0) { return; } FUN_0007fd60(local_20[0]); return; } } puVar7 = *(uint **)(param_1 + 8); if (puVar7 == (uint *)0x0) { cVar6 = thunk_FUN_0006a180("/data/src/tier0/validator.cpp",0x101,"NULL != m_pValObjectCur"); if ((cVar6 == '\0') && (cVar6 = FUN_00068dd0(), cVar6 != '\0')) { pcVar5 = (code *)swi(3); (*pcVar5)(); return; } puVar7 = *(uint **)(param_1 + 8); } uVar1 = puVar7[3]; *(uint *)(param_1 + 8) = uVar1; if (puVar7[10] == 0 && puVar7[9] == 0) { piVar2 = *(int **)(param_1 + 0xc); uVar8 = puVar7[1] ^ *puVar7 ^ uVar1; uVar13 = piVar2[1]; iVar3 = *piVar2; uVar12 = uVar8 % uVar13; local_54 = (undefined4 *)(iVar3 + uVar12 * 4); piVar10 = (int *)*local_54; if (piVar10 != (int *)0x0) { uVar14 = ((int *)*piVar10)[5]; piVar4 = (int *)*piVar10; piVar11 = piVar10; while ((((piVar9 = piVar4, uVar8 != uVar14 || (puVar7[1] != piVar9[1])) || (*puVar7 != piVar9[2])) || (uVar1 != piVar9[3]))) { piVar4 = (int *)*piVar9; if ((piVar4 == (int *)0x0) || (uVar14 = piVar4[5], piVar11 = piVar9, uVar12 != uVar14 % uVar13)) goto LAB_0007d2f7; } iVar15 = *piVar9; if (piVar10 == piVar11) { piVar10 = piVar11; if (iVar15 != 0) { uVar13 = *(uint *)(iVar15 + 0x14) % uVar13; if (uVar12 == uVar13) goto LAB_0007d2dd; *(int **)(iVar3 + uVar13 * 4) = piVar11; local_54 = (undefined4 *)(uVar12 * 4 + *piVar2); piVar10 = (int *)*local_54; } if (piVar10 == piVar2 + 2) { piVar2[2] = iVar15; } *local_54 = 0; iVar15 = *piVar9; } else if ((iVar15 != 0) && (uVar13 = *(uint *)(iVar15 + 0x14) % uVar13, uVar12 != uVar13)) { *(int **)(iVar3 + uVar13 * 4) = piVar11; iVar15 = *piVar9; } LAB_0007d2dd: *piVar11 = iVar15; FUN_000ed6e0(piVar9); piVar2[3] = piVar2[3] + -1; } LAB_0007d2f7: *(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) + -1; } if (local_20[0] != 0) { FUN_0007fd60(local_20[0]); } return; } // 0007d3a0 CValidator::IsClaimed /* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */ undefined4 CValidator::IsClaimed(int param_1,int param_2,undefined1 param_3) { undefined4 uVar1; undefined4 *puVar2; int local_20 [4]; if (DAT_0012c7b0 == 0) { local_20[0] = 0; if ((param_2 == 0) || (puVar2 = *(undefined4 **)(param_1 + 0x860), puVar2 == (undefined4 *)0x0)) { return 0; } } else { local_20[0] = FUN_00083980("CValidator::IsClaimed",0,local_20); if ((param_2 == 0) || (puVar2 = *(undefined4 **)(param_1 + 0x860), puVar2 == (undefined4 *)0x0)) { uVar1 = 0; goto LAB_0007d3f7; } } uVar1 = (**(code **)*puVar2)(puVar2,param_2,param_3); LAB_0007d3f7: if (local_20[0] != 0) { FUN_0007fd60(local_20[0]); } return uVar1; } // 0007d470 CValidator::ClaimUntrackedMemory /* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */ void CValidator::ClaimUntrackedMemory(int param_1,uint param_2) { int local_20 [4]; if (DAT_0012c7b0 == 0) { local_20[0] = 0; } else { local_20[0] = FUN_00083980("CValidator::ClaimUntrackedMemory",0,local_20); } if (*(char *)(param_1 + 0x85c) == '\0') { if (*(char *)(param_1 + 0x35) == '\0') { if (*(int *)(param_1 + 8) != 0) { FUN_0007fa80(*(int *)(param_1 + 8),param_2); } if (local_20[0] == 0) { return; } FUN_0007fd60(local_20[0]); return; } } else { *(ulonglong *)(param_1 + 0x848) = *(longlong *)(param_1 + 0x848) + (ulonglong)param_2; } if (local_20[0] == 0) { return; } FUN_0007fd60(local_20[0]); return; }