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,122 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14009b3c0 FUN_14009b3c0
* Pseudocode, not original source. */
longlong * FUN_14009b3c0(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
int iVar1;
DWORD DVar2;
ulonglong uVar3;
undefined8 *puVar4;
longlong lVar5;
longlong lVar6;
longlong *plVar7;
longlong *plVar8;
longlong **pplVar9;
longlong *plVar10;
int iVar11;
longlong *plVar12;
longlong *plVar13;
longlong lVar14;
longlong lVar15;
int iVar16;
longlong *local_res18;
uVar3 = FUN_140094860();
pplVar9 = (longlong **)(uVar3 & 0xffffffff);
plVar13 = (longlong *)CONCAT71((int7)((ulonglong)param_3 >> 8),1);
plVar7 = param_1;
FUN_14003cf60((undefined4 *)param_1,(ulonglong)pplVar9,plVar13,param_4);
iVar16 = 0;
param_1[7] = 0;
param_1[8] = 0;
*(undefined4 *)(param_1 + 9) = 0;
plVar10 = param_1 + 10;
*plVar10 = (longlong)Proud::CFastArray<Proud::RefCount<Proud::Thread>,0>::vftable;
param_1[0xb] = 0;
param_1[0xc] = 0;
param_1[0xd] = 0;
param_1[0xe] = 0;
*(undefined1 *)(param_1 + 0x10) = 1;
DVar2 = FUN_14003df50();
if (0 < (int)DVar2) {
do {
puVar4 = (undefined8 *)0x0;
local_res18 = operator_new(0x28);
if (local_res18 != (longlong *)0x0) {
plVar13 = param_1;
puVar4 = FUN_140045b20(local_res18,&LAB_14009b1d0,param_1);
}
if (puVar4 == (undefined8 *)0x0) {
local_res18 = (longlong *)0x0;
}
else {
local_res18 = (longlong *)FUN_14003e840(0x10);
local_res18[1] = 1;
*local_res18 = (longlong)puVar4;
}
plVar12 = local_res18;
iVar1 = (int)param_1[0xd];
if (iVar1 < 0) {
/* WARNING: Subroutine does not return */
FUN_14003dec0();
}
lVar14 = param_1[0xd];
FUN_14007f220((longlong)plVar10,(int)lVar14 + 1,plVar13,param_4);
iVar11 = (int)lVar14 - iVar1;
if ((0 < iVar11) && (iVar11 = iVar11 + -1, -1 < iVar11)) {
lVar14 = (longlong)(iVar11 + iVar1 + 1) << 3;
lVar15 = (longlong)(iVar11 + iVar1) << 3;
do {
lVar5 = FUN_140074a30((longlong)plVar10);
lVar6 = FUN_140074a30((longlong)plVar10);
FUN_14007b440((longlong *)(lVar14 + lVar6),(longlong *)(lVar15 + lVar5));
lVar15 = lVar15 + -8;
lVar14 = lVar14 + -8;
iVar11 = iVar11 + -1;
} while (-1 < iVar11);
}
lVar14 = FUN_140074a30((longlong)plVar10);
plVar7 = (longlong *)(lVar14 + (longlong)iVar1 * 8);
pplVar9 = &local_res18;
FUN_14007b440(plVar7,(longlong *)pplVar9);
plVar8 = local_res18;
if (plVar12 != (longlong *)0x0) {
plVar12 = plVar12 + 1;
*plVar12 = *plVar12 + -1;
if (*plVar12 == 0) {
puVar4 = (undefined8 *)*local_res18;
if (puVar4 != (undefined8 *)0x0) {
FUN_140045c30(puVar4);
operator_delete(puVar4);
}
FUN_14003e8b0(plVar8);
plVar7 = plVar8;
}
}
iVar16 = iVar16 + 1;
} while (iVar16 < (int)DVar2);
}
plVar8 = (longlong *)0x0;
plVar10 = plVar8;
plVar12 = plVar8;
if (0 < (int)DVar2) {
do {
if (((longlong)plVar10 < 0) || ((int)param_1[0xd] <= (int)plVar12)) {
/* WARNING: Subroutine does not return */
FUN_14003def0(plVar7,pplVar9,plVar13,param_4);
}
puVar4 = *(undefined8 **)(param_1[0xc] + (longlong)plVar10 * 8);
plVar7 = plVar8;
if (puVar4 != (undefined8 *)0x0) {
plVar7 = (longlong *)*puVar4;
}
FUN_140045d20(plVar7,pplVar9,plVar13,param_4);
plVar12 = (longlong *)(ulonglong)((int)plVar12 + 1);
plVar10 = (longlong *)((longlong)plVar10 + 1);
} while ((longlong)plVar10 < (longlong)(int)DVar2);
}
return param_1;
}