/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14004fb50 FUN_14004fb50 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ /* WARNING: Removing unreachable block (ram,0x00014004fcf2) */ /* WARNING: Removing unreachable block (ram,0x00014004fcf9) */ /* WARNING: Removing unreachable block (ram,0x00014004fd05) */ /* WARNING: Removing unreachable block (ram,0x00014004fd12) */ /* WARNING: Removing unreachable block (ram,0x00014004fd0a) */ /* WARNING: Removing unreachable block (ram,0x00014004fd19) */ /* WARNING: Removing unreachable block (ram,0x00014004fd2a) */ undefined1 FUN_14004fb50(longlong *param_1,longlong *param_2,LPVOID param_3,longlong param_4,int param_5, undefined4 *param_6,undefined4 param_7,longlong *param_8) { undefined *puVar1; undefined1 uVar2; int *piVar3; int *piVar4; LPVOID pvVar5; undefined **ppuVar6; int *piVar7; LPVOID pvVar8; longlong *plVar9; longlong *plVar10; longlong lVar11; undefined *puVar12; longlong lVar13; uint uVar14; longlong lVar16; longlong lVar17; undefined1 auStack_178 [32]; longlong *local_158; int *local_150; undefined1 local_148; longlong *local_140; longlong *local_138; undefined8 local_130; int *local_128; undefined1 local_120; undefined *local_118; longlong local_110; undefined4 local_108; undefined **local_100; longlong *local_f8; LPVOID local_f0; int local_e8; undefined4 local_d4; undefined4 local_d0; undefined4 local_cc; undefined4 local_c8; undefined4 local_c4; undefined **local_90; longlong *local_88; LPVOID local_80; ulonglong local_58; LPVOID pvVar15; local_130 = 0xfffffffffffffffe; local_58 = DAT_14016f5a0 ^ (ulonglong)auStack_178; local_158 = param_8; ppuVar6 = &local_118; plVar10 = param_2; pvVar8 = param_3; lVar17 = param_4; local_140 = param_1; local_138 = param_2; FUN_140049c40(ppuVar6,param_2,param_3,param_4); if (local_118 == (undefined *)0x0) { local_118 = PTR_DAT_14016f010; } if ((undefined *)*param_2 != local_118) { piVar3 = (int *)FUN_14003e7c0(ppuVar6,plVar10,pvVar8,lVar17); piVar7 = piVar3; local_128 = piVar3; FUN_14003d040(piVar3); puVar1 = local_118; local_120 = 1; if (((local_118 != (undefined *)0x0) && (local_118 != PTR_DAT_14016f010)) && (puVar12 = local_118 + -8, puVar12 != (undefined *)0x0)) { piVar4 = (int *)FUN_14003e7c0(piVar7,plVar10,pvVar8,lVar17); local_150 = piVar4; FUN_14003d040(piVar4); local_148 = 1; piVar7 = (int *)(puVar1 + -4); *piVar7 = *piVar7 + -1; if (*piVar7 == 0) { FUN_14003e8b0(puVar12); } FUN_14003d0d0((longlong)piVar4); } local_118 = (undefined *)*param_2; if (((local_118 != PTR_DAT_14016f010) && (local_118 != (undefined *)0x0)) && (local_118 != (undefined *)0x8)) { *(int *)(local_118 + -4) = *(int *)(local_118 + -4) + 1; } FUN_14003d0d0((longlong)piVar3); } local_108 = SUB84(param_3,0); if (param_4 == 0) { pvVar15 = (LPVOID)0x0; if (0 < param_5) { do { lVar16 = (longlong)local_e8; if (local_e8 < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } FUN_140038010((longlong)&local_100,local_e8 + 1,pvVar8,lVar17); pvVar5 = local_f0; if (local_e8 == 0) { pvVar5 = (LPVOID)0x0; } *(undefined4 *)((longlong)pvVar5 + lVar16 * 4) = 0; uVar14 = (int)pvVar15 + 1; pvVar15 = (LPVOID)(ulonglong)uVar14; } while ((int)uVar14 < param_5); } } else { lVar16 = (longlong)param_5; if (param_5 < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } if (param_5 != 0) { lVar13 = (longlong)local_e8; FUN_140038010((longlong)&local_100,local_e8 + param_5,pvVar8,lVar17); if (0 < param_5) { lVar11 = lVar13 * 4; do { pvVar8 = local_f0; if (local_e8 == 0) { pvVar8 = (LPVOID)0x0; } *(undefined4 *)(lVar11 + (longlong)pvVar8) = *(undefined4 *)(param_4 + lVar13 * -4 + lVar11); lVar11 = lVar11 + 4; lVar16 = lVar16 + -1; } while (lVar16 != 0); } } } local_d4 = *param_6; local_d0 = param_6[1]; local_cc = param_6[2]; local_c8 = param_6[3]; local_c4 = param_7; plVar10 = local_158; uVar2 = (**(code **)(*local_140 + 0x138))(local_140,&local_118); local_90 = Proud::CFastArray::vftable; pvVar8 = local_80; if (local_80 != (LPVOID)0x0) { if (local_88 == (longlong *)0x0) { FUN_14003e8b0(local_80); pvVar8 = local_80; } else { (**(code **)(*local_88 + 0x18))(); pvVar8 = local_80; } } local_100 = Proud::CFastArray::vftable; if (local_f0 != (LPVOID)0x0) { if (local_f8 == (longlong *)0x0) { FUN_14003e8b0(local_f0); plVar10 = local_f8; } else { (**(code **)(*local_f8 + 0x18))(local_f8); pvVar8 = local_f0; plVar10 = local_f8; } } plVar9 = &local_110; FUN_140002190(plVar9,pvVar8,plVar10,lVar17); puVar1 = local_118; if (((local_118 != (undefined *)0x0) && (local_118 != PTR_DAT_14016f010)) && (puVar12 = local_118 + -8, puVar12 != (undefined *)0x0)) { piVar3 = (int *)FUN_14003e7c0(plVar9,pvVar8,plVar10,lVar17); local_150 = piVar3; FUN_14003d040(piVar3); local_148 = 1; piVar7 = (int *)(puVar1 + -4); *piVar7 = *piVar7 + -1; if (*piVar7 == 0) { FUN_14003e8b0(puVar12); } FUN_14003d0d0((longlong)piVar3); } local_118 = PTR_DAT_14016f010; FUN_140002190(param_2,pvVar8,plVar10,lVar17); return uVar2; }