add agent manager release decomp

This commit is contained in:
Benjamin Palko 2026-10-15 09:58:24 -04:00
parent 31ff800b2a
commit fac6117145
7019 changed files with 254032 additions and 5 deletions

View file

@ -0,0 +1,310 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400c2230 FUN_1400c2230
* Pseudocode, not original source. */
ulonglong FUN_1400c2230(longlong param_1,IMAGE_DOS_HEADER *param_2,uint *param_3,
undefined ***param_4)
{
undefined1 uVar1;
ushort uVar2;
ulonglong in_RAX;
ulonglong uVar3;
undefined8 uVar4;
longlong *plVar5;
longlong *plVar6;
longlong *plVar7;
undefined1 *puVar8;
longlong **pplVar9;
longlong **pplVar10;
longlong **pplVar11;
longlong **pplVar12;
uint *puVar13;
SIZE_T SVar14;
int iVar15;
longlong **pplVar16;
int iVar17;
uint uVar18;
longlong **pplVar20;
double dVar21;
uint local_res18 [2];
longlong *local_res20;
undefined8 local_178;
longlong local_170;
longlong local_168;
undefined4 local_160;
int local_15c;
undefined **local_150;
undefined8 local_148;
longlong **local_140;
ulonglong local_138;
undefined8 local_130;
undefined **local_128;
longlong **local_120;
longlong **local_118;
undefined8 local_110;
undefined8 local_108;
longlong **local_100;
undefined1 local_f8 [56];
word local_c0 [2];
undefined2 local_bc;
byte local_b8;
undefined **local_a8;
uint local_a0;
byte local_9c [4];
byte local_98 [8];
int local_90 [2];
ulonglong local_88;
uint local_80 [2];
byte local_78 [8];
undefined1 local_70;
undefined4 local_6c;
undefined1 local_68;
undefined1 local_67;
undefined8 local_60;
longlong **pplVar19;
local_60 = 0xfffffffffffffffe;
if (((param_3[10] != 1) ||
(puVar13 = param_3, in_RAX = FUN_140075710(param_3,local_res18,param_3,param_4),
(char)in_RAX == '\0')) ||
(in_RAX = FUN_140075580(param_3,(undefined8 *)local_98,puVar13,param_4), (char)in_RAX == '\0'))
goto LAB_1400c279b;
pplVar11 = (longlong **)0x0;
local_120 = (longlong **)0x0;
local_118 = (longlong **)0x0;
local_110 = 0;
local_108 = 0;
local_128 = Proud::HostIDArray::vftable;
in_RAX = FUN_140075580(param_3,(undefined8 *)local_90,puVar13,param_4);
pplVar12 = pplVar11;
pplVar9 = pplVar11;
if ((((char)in_RAX == '\0') || (pplVar12 = (longlong **)0x0, local_90[0] < 0)) ||
(DAT_14016f140 < local_90[0])) {
LAB_1400c277b:
if (pplVar12 == (longlong **)0x0) goto LAB_1400c279b;
if (pplVar9 == (longlong **)0x0) {
LAB_1400c2793:
in_RAX = FUN_14003e8b0(pplVar12);
goto LAB_1400c279b;
}
plVar6 = *pplVar9;
}
else {
FUN_14004cce0((longlong)&local_128,local_90[0],(longlong)puVar13);
pplVar12 = local_118;
iVar17 = (int)local_110;
pplVar9 = local_118;
if ((int)local_110 == 0) {
pplVar9 = pplVar11;
}
SVar14 = (SIZE_T)(uint)(local_90[0] * 4);
in_RAX = FUN_140074ee0(param_3,pplVar9,SVar14);
pplVar9 = local_120;
if ((char)in_RAX == '\0') goto LAB_1400c277b;
local_148 = 0;
local_140 = (longlong **)0x0;
local_138 = 0;
local_130 = 0;
local_150 = Proud::ByteArray::vftable;
uVar3 = FUN_140075580(param_3,&local_88,SVar14,param_4);
if ((((char)uVar3 != '\0') && (iVar15 = (int)local_88, -1 < iVar15)) &&
(iVar15 <= DAT_14016f140)) {
FUN_14002a050((longlong)&local_150,iVar15,SVar14);
pplVar9 = local_140;
if ((int)local_138 == 0) {
pplVar9 = pplVar11;
}
SVar14 = local_88 & 0xffffffff;
uVar4 = FUN_140074ee0(param_3,pplVar9,SVar14);
if ((char)uVar4 != '\0') {
FUN_140074fb0((undefined4 *)&local_178);
FUN_140074a40((longlong)&local_178,pplVar9,SVar14,param_4);
FUN_140075110((int *)&local_178,0x800,SVar14,param_4);
uVar4 = 0;
FUN_140075110((int *)&local_178,0,SVar14,param_4);
FUN_140029d80((longlong)&local_178,CONCAT71((int7)((ulonglong)uVar4 >> 8),0x23),SVar14,
param_4);
uVar3 = local_138;
iVar15 = (int)local_138;
plVar6 = &local_178;
FUN_140076380((longlong)plVar6,(longlong)(int)local_138,SVar14,param_4);
pplVar9 = local_140;
if ((int)local_138 == 0) {
pplVar9 = pplVar11;
}
if (iVar15 != 0) {
local_178._4_4_ = 0;
if (local_170 == 0) {
if (local_168 == 0) {
/* WARNING: Subroutine does not return */
FUN_14008a420(0,pplVar9,SVar14,param_4);
}
LAB_1400c241e:
SVar14 = uVar3 & 0xffffffff;
FUN_140029f40(&local_168,pplVar9,SVar14,param_4);
}
else {
if (local_168 != 0) goto LAB_1400c241e;
if (local_170 == 0) {
/* WARNING: Subroutine does not return */
FUN_14008a420(0,pplVar9,SVar14,param_4);
}
SVar14 = uVar3 & 0xffffffff;
FUN_14002a110(local_170,pplVar9,SVar14);
}
plVar6 = &local_178;
FUN_14002a180((longlong)plVar6,pplVar9,SVar14,param_4);
}
local_70 = DAT_140178020;
local_6c = 0xffffffff;
local_68 = DAT_140178040;
local_80[0] = local_res18[0];
local_78[0] = local_98[0];
local_78[1] = local_98[1];
local_78[2] = local_98[2];
local_78[3] = local_98[3];
local_78[4] = local_98[4];
local_78[5] = local_98[5];
local_78[6] = local_98[6];
local_78[7] = local_98[7];
local_67 = 0;
pplVar19 = pplVar11;
pplVar20 = pplVar11;
if (0 < iVar17) {
do {
if (((longlong)pplVar20 < 0) || (iVar17 <= (int)pplVar19)) {
/* WARNING: Subroutine does not return */
FUN_14003def0(plVar6,pplVar9,SVar14,param_4);
}
plVar6 = *(longlong **)(param_1 + 0x108);
pplVar9 = (longlong **)((longlong)pplVar12 + (longlong)pplVar20 * 4);
local_100 = pplVar9;
if (*(uint *)pplVar9 != *(uint *)(plVar6 + 0x2af)) {
SVar14 = (SIZE_T)*(uint *)pplVar9;
pplVar10 = &local_res20;
plVar5 = FUN_1400a7920(plVar6,(longlong *)pplVar10,*(uint *)pplVar9);
plVar7 = local_res20;
pplVar16 = pplVar11;
if ((undefined8 *)*plVar5 != (undefined8 *)0x0) {
pplVar16 = *(longlong ***)*plVar5;
}
pplVar9 = pplVar10;
if (local_res20 != (longlong *)0x0) {
local_res20[1] = local_res20[1] + -1;
plVar6 = (longlong *)local_res20[1];
if ((longlong *)local_res20[1] == (longlong *)0x0) {
if ((undefined8 *)*local_res20 != (undefined8 *)0x0) {
pplVar10 = (longlong **)0x1;
(*(code *)**(undefined8 **)*local_res20)();
}
FUN_14003e8b0(plVar7);
plVar6 = plVar7;
}
pplVar9 = pplVar10;
pplVar12 = local_118;
iVar17 = (int)local_110;
}
if ((((pplVar16 != (longlong **)0x0) &&
(*(char *)((longlong)pplVar16 + 0x684) == '\0')) &&
(*(char *)(pplVar16 + 0xc1) != '\x01')) &&
((pplVar16[3] != (longlong *)0x0 && (*pplVar16[3] != 0)))) {
local_a8 = Proud::AddrPort::vftable;
local_a0 = *(uint *)(pplVar16 + 0xb3);
local_9c._0_2_ = *(undefined2 *)((longlong)pplVar16 + 0x59c);
plVar6 = *(longlong **)(param_1 + 0x108);
dVar21 = (double)(**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x108) + 0x70) +
0x1c0))();
uVar1 = (**(code **)(*plVar6 + 0x30))(plVar6);
uVar2 = FUN_14008be40(uVar1,(char)*(uint *)local_100);
plVar6 = (longlong *)FUN_1400cf2a0((longlong)pplVar16);
param_4 = &local_a8;
SVar14 = (SIZE_T)uVar2;
pplVar9 = (longlong **)(ulonglong)*(uint *)local_100;
FUN_1400d31e0((longlong)plVar6,*(uint *)local_100,SVar14,(longlong)param_4,
(longlong)&local_178,dVar21,(undefined8 *)local_80);
}
}
uVar18 = (int)pplVar19 + 1;
pplVar19 = (longlong **)(ulonglong)uVar18;
pplVar20 = (longlong **)((longlong)pplVar20 + 1);
} while ((int)uVar18 < iVar17);
}
FUN_140074fb0((undefined4 *)local_f8);
local_f8._48_8_ = Proud::AddrPort::vftable;
local_b8 = 0;
local_c0[0] = (word)DAT_14016f3d0;
local_c0[1] = DAT_14016f3d0._2_2_;
local_bc = DAT_14016f3d4;
local_f8._40_2_ = 1;
local_f8._42_2_ = 0;
puVar8 = local_f8;
FUN_140074a40((longlong)puVar8,pplVar9,SVar14,param_4);
SVar14 = local_138 & 0xffffffff;
if ((int)local_138 < 1) {
/* WARNING: Subroutine does not return */
FUN_14003def0(puVar8,pplVar9,SVar14,param_4);
}
local_f8._4_2_ = 0;
local_f8._6_2_ = 0;
pplVar11 = local_140;
if (local_f8._8_8_ == 0) {
if (local_f8._16_8_ == 0) {
/* WARNING: Subroutine does not return */
FUN_14008a420(0,pplVar9,SVar14,param_4);
}
}
else if (local_f8._16_8_ == 0) {
if (local_f8._8_8_ == 0) {
/* WARNING: Subroutine does not return */
FUN_14008a420(0,pplVar9,SVar14,param_4);
}
FUN_14002a110(local_f8._8_8_,local_140,SVar14);
goto LAB_1400c26a9;
}
FUN_140029f40((longlong *)(local_f8 + 0x10),local_140,SVar14,param_4);
LAB_1400c26a9:
FUN_14002a180((longlong)local_f8,pplVar11,SVar14,param_4);
FUN_1400c6270((IMAGE_DOS_HEADER *)param_1,param_2,(IMAGE_DOS_HEADER *)local_f8,param_4);
local_res20 = (longlong *)(local_f8 + 8);
FUN_14008a320((longlong *)(local_f8 + 8));
if (local_f8._16_8_ != 0) {
if ((int)local_f8._28_4_ < 0) {
/* WARNING: Subroutine does not return */
FUN_14003dec0();
}
local_f8._24_2_ = 0;
local_f8._26_2_ = 0;
}
local_res20 = &local_170;
FUN_14008a320(&local_170);
if (local_168 != 0) {
if (local_15c < 0) {
/* WARNING: Subroutine does not return */
FUN_14003dec0();
}
local_160 = 0;
}
uVar4 = FUN_140049e40(&local_150);
if (pplVar12 != (longlong **)0x0) {
if (local_120 == (longlong **)0x0) {
uVar4 = FUN_14003e8b0(pplVar12);
}
else {
uVar4 = (*(code *)(*local_120)[3])(local_120,pplVar12);
}
}
return CONCAT71((int7)((ulonglong)uVar4 >> 8),1);
}
}
in_RAX = FUN_140049e40(&local_150);
if (pplVar12 == (longlong **)0x0) goto LAB_1400c279b;
if (local_120 == (longlong **)0x0) goto LAB_1400c2793;
plVar6 = *local_120;
pplVar9 = local_120;
}
in_RAX = (*(code *)plVar6[3])(pplVar9,pplVar12);
LAB_1400c279b:
return in_RAX & 0xffffffffffffff00;
}