198 lines
5.8 KiB
C
198 lines
5.8 KiB
C
/* 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<int,0>::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<int,0>::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;
|
|
}
|
|
|