server-re/decomp/Agent_Release_x64/full/functions/0x14005f440.c
2026-10-14 16:45:19 -04:00

247 lines
8 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x14005f440 FUN_14005f440
* Pseudocode, not original source. */
/* WARNING: Removing unreachable block (ram,0x00014005f5b7) */
/* WARNING: Removing unreachable block (ram,0x00014005f5c3) */
/* WARNING: Removing unreachable block (ram,0x00014005f5d0) */
/* WARNING: Removing unreachable block (ram,0x00014005f5c8) */
/* WARNING: Removing unreachable block (ram,0x00014005f5d6) */
/* WARNING: Removing unreachable block (ram,0x00014005f5e7) */
/* WARNING: Removing unreachable block (ram,0x00014005f546) */
/* WARNING: Removing unreachable block (ram,0x00014005f552) */
/* WARNING: Removing unreachable block (ram,0x00014005f55e) */
/* WARNING: Removing unreachable block (ram,0x00014005f556) */
/* WARNING: Removing unreachable block (ram,0x00014005f564) */
/* WARNING: Removing unreachable block (ram,0x00014005f575) */
/* WARNING: Removing unreachable block (ram,0x00014005f4db) */
/* WARNING: Removing unreachable block (ram,0x00014005f4e7) */
/* WARNING: Removing unreachable block (ram,0x00014005f4f3) */
/* WARNING: Removing unreachable block (ram,0x00014005f4eb) */
/* WARNING: Removing unreachable block (ram,0x00014005f4f9) */
/* WARNING: Removing unreachable block (ram,0x00014005f50a) */
/* WARNING: Removing unreachable block (ram,0x00014005f4d4) */
/* WARNING: Removing unreachable block (ram,0x00014005f53f) */
/* WARNING: Removing unreachable block (ram,0x00014005f5b0) */
/* WARNING: Removing unreachable block (ram,0x00014005f669) */
/* WARNING: Removing unreachable block (ram,0x00014005f670) */
/* WARNING: Removing unreachable block (ram,0x00014005f680) */
/* WARNING: Removing unreachable block (ram,0x00014005f68c) */
/* WARNING: Removing unreachable block (ram,0x00014005f684) */
/* WARNING: Removing unreachable block (ram,0x00014005f692) */
/* WARNING: Removing unreachable block (ram,0x00014005f6a3) */
void FUN_14005f440(SIZE_T *param_1,undefined8 param_2,undefined ***param_3,longlong param_4)
{
undefined *puVar1;
undefined ***pppuVar2;
int iVar3;
int iVar4;
undefined ***pppuVar5;
LPVOID pvVar6;
undefined ***pppuVar7;
short *psVar8;
uint uVar9;
int iVar10;
ulonglong uVar11;
longlong lVar12;
longlong lVar13;
undefined ***pppuVar14;
LPVOID pvVar15;
undefined ***pppuVar16;
int iVar17;
short *local_res10;
undefined **local_90;
longlong *local_88;
undefined ***local_80;
undefined8 local_78;
undefined8 local_70;
undefined **local_68;
longlong *local_60;
LPVOID local_58;
uint local_50;
undefined8 local_4c;
undefined4 local_44;
local_90 = Proud::CFastArray<int,0>::vftable;
pppuVar14 = (undefined ***)0x0;
local_88 = (longlong *)0x0;
local_80 = (undefined ***)0x0;
local_78 = 0;
local_70 = 0;
FUN_14002d430((longlong)&local_90,1,param_3,param_4);
lVar12 = (longlong)(int)local_78;
pppuVar16 = local_80;
if ((int)local_78 == 0) {
pppuVar16 = pppuVar14;
}
*(int *)pppuVar16 = 5;
if ((int)local_78 < 0) {
/* WARNING: Subroutine does not return */
FUN_14002f590();
}
FUN_14002d430((longlong)&local_90,(int)local_78 + 1,param_3,param_4);
lVar13 = (longlong)(int)local_78;
pppuVar16 = local_80;
if ((int)local_78 == 0) {
pppuVar16 = pppuVar14;
}
*(int *)((longlong)pppuVar16 + lVar12 * 4) = 1;
if ((int)local_78 < 0) {
/* WARNING: Subroutine does not return */
FUN_14002f590();
}
FUN_14002d430((longlong)&local_90,(int)local_78 + 1,param_3,(longlong)pppuVar16);
lVar12 = (longlong)(int)local_78;
pppuVar16 = local_80;
if ((int)local_78 == 0) {
pppuVar16 = pppuVar14;
}
*(int *)((longlong)pppuVar16 + lVar13 * 4) = 2;
if ((int)local_78 < 0) {
/* WARNING: Subroutine does not return */
FUN_14002f590();
}
uVar11 = (ulonglong)((int)local_78 + 1U);
pppuVar7 = &local_90;
FUN_14002d430((longlong)pppuVar7,(int)local_78 + 1U,param_3,(longlong)pppuVar16);
pppuVar2 = local_80;
iVar10 = (int)local_78;
pppuVar5 = local_80;
if ((int)local_78 == 0) {
pppuVar5 = pppuVar14;
}
*(int *)((longlong)pppuVar5 + lVar12 * 4) = 4;
local_68 = Proud::CFastArray<int,0>::vftable;
local_60 = (longlong *)0x0;
local_44 = 0;
local_58 = (LPVOID)0x0;
local_50 = 0;
local_4c = 0;
pppuVar5 = pppuVar14;
while( true ) {
pvVar6 = local_58;
iVar3 = (int)pppuVar5;
iVar17 = (int)pppuVar14;
if (iVar3 == iVar10) break;
if ((iVar3 < 0) || (iVar10 <= iVar3)) {
/* WARNING: Subroutine does not return */
FUN_14002f5c0(pppuVar7,uVar11,param_3,pppuVar16);
}
iVar4 = *(int *)((longlong)pppuVar2 + (longlong)iVar3 * 4);
if (iVar17 < 0) {
/* WARNING: Subroutine does not return */
FUN_14002f590();
}
uVar11 = (ulonglong)(iVar17 + 1U);
FUN_14002d430((longlong)&local_68,iVar17 + 1U,param_3,(longlong)pppuVar16);
pppuVar16 = (undefined ***)(longlong)iVar17;
pppuVar14 = (undefined ***)(ulonglong)local_50;
pppuVar7 = (undefined ***)0x0;
pvVar6 = local_58;
if (local_50 == 0) {
pvVar6 = (LPVOID)0x0;
}
*(int *)((longlong)pvVar6 + (longlong)pppuVar16 * 4) = iVar4;
pppuVar5 = (undefined ***)(ulonglong)(iVar3 + 1);
}
if (iVar10 == iVar17) {
pppuVar7 = pppuVar2;
if (iVar10 == 0) {
pppuVar7 = (undefined ***)0x0;
}
pvVar15 = local_58;
if (iVar17 == 0) {
pvVar15 = (LPVOID)0x0;
}
uVar11 = 0;
if (0 < iVar17) {
param_3 = (undefined ***)((longlong)pvVar15 - (longlong)pppuVar7);
do {
if (*(int *)pppuVar7 != *(int *)((longlong)param_3 + (longlong)pppuVar7))
goto LAB_14005f71a;
uVar9 = (int)uVar11 + 1;
uVar11 = (ulonglong)uVar9;
pppuVar7 = (undefined ***)((longlong)pppuVar7 + 4);
} while ((int)uVar9 < iVar17);
}
goto LAB_14005f82d;
}
LAB_14005f71a:
FUN_140030200(pppuVar7,uVar11,param_3,pppuVar16);
local_res10 = (short *)PTR_DAT_140155010;
iVar3 = FUN_140030080(L"CFastArray iterator failed!");
iVar17 = 0;
iVar10 = iVar17;
if ((local_res10 != (short *)0x0) && (local_res10 != (short *)PTR_DAT_140155010)) {
iVar10 = *(int *)(local_res10 + -4);
}
iVar4 = iVar3;
if (((iVar3 <= iVar10) && (iVar4 = iVar17, local_res10 != (short *)0x0)) &&
(local_res10 != (short *)PTR_DAT_140155010)) {
iVar4 = *(int *)(local_res10 + -4);
}
iVar10 = 1;
if (1 < iVar4) {
iVar10 = iVar4;
}
iVar4 = iVar17;
if ((local_res10 != (short *)0x0) && (local_res10 != (short *)PTR_DAT_140155010)) {
iVar4 = *(int *)(local_res10 + -4);
}
if (iVar4 < iVar10) {
FUN_140002dc0((longlong *)&local_res10,iVar10);
}
FUN_140002ea0((longlong *)&local_res10);
psVar8 = local_res10;
if (local_res10 == (short *)0x0) {
psVar8 = (short *)PTR_DAT_140155010;
}
FUN_1400300b0(psVar8,L"CFastArray iterator failed!",iVar3);
psVar8 = local_res10;
if (local_res10 == (short *)0x0) {
psVar8 = (short *)PTR_DAT_140155010;
}
iVar3 = FUN_140030080(psVar8);
puVar1 = PTR_DAT_140155010;
iVar10 = 0;
if (0 < iVar3) {
iVar10 = iVar3;
}
if ((local_res10 != (short *)0x0) && (local_res10 != (short *)PTR_DAT_140155010)) {
iVar17 = *(int *)(local_res10 + -4);
}
if ((iVar10 < iVar17) || (iVar10 = 0, local_res10 == (short *)0x0)) {
LAB_14005f801:
if (((local_res10 != (short *)PTR_DAT_140155010) && (local_res10 != (short *)0x0)) &&
((int *)(local_res10 + -4) != (int *)0x0)) {
*(int *)(local_res10 + -4) = iVar10;
local_res10[iVar10] = 0;
}
}
else if (local_res10 != (short *)PTR_DAT_140155010) {
iVar10 = *(int *)(local_res10 + -4);
goto LAB_14005f801;
}
FUN_14005f1b0(param_1,(wchar_t *)&local_res10,(SIZE_T)puVar1,pppuVar16);
LAB_14005f82d:
if (pvVar6 != (LPVOID)0x0) {
if (local_60 == (longlong *)0x0) {
FUN_1400302f0(pvVar6);
}
else {
(**(code **)(*local_60 + 0x18))(local_60,pvVar6);
}
}
if (pppuVar2 != (undefined ***)0x0) {
if (local_88 == (longlong *)0x0) {
FUN_1400302f0(pppuVar2);
}
else {
(**(code **)(*local_88 + 0x18))(local_88,pppuVar2);
}
}
return;
}