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,269 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400ab050 FUN_1400ab050
* Pseudocode, not original source. */
void FUN_1400ab050(undefined ***param_1,longlong param_2,undefined8 param_3,longlong param_4,
uint *param_5,uint *param_6)
{
int iVar1;
uint uVar2;
uint uVar3;
uint uVar4;
undefined8 *puVar5;
uint *puVar6;
longlong *plVar7;
int *piVar8;
undefined ***pppuVar9;
undefined ***pppuVar10;
undefined ***pppuVar11;
uint *puVar12;
undefined ****ppppuVar13;
longlong lVar14;
longlong lVar15;
uint uVar16;
longlong lVar17;
undefined **ppuVar18;
uint **ppuVar19;
uint uVar20;
ulonglong uVar21;
ulonglong uVar22;
double dVar23;
undefined8 uVar24;
undefined ***local_res10;
undefined **local_c8;
undefined4 local_c0;
undefined2 local_bc;
undefined **local_b8;
undefined8 local_b0;
undefined8 local_a8;
undefined8 local_a0;
undefined8 local_98;
longlong local_90;
undefined4 local_88;
uint *local_80;
undefined4 local_78;
undefined4 local_74;
longlong local_68 [2];
int *local_58;
undefined1 local_50;
puVar6 = param_5;
local_68[1] = 0xfffffffffffffffe;
uVar24 = param_3;
lVar15 = param_4;
FUN_14007e740((longlong)param_5,0,param_3,param_4);
uVar21 = (ulonglong)(int)puVar6[6];
FUN_140093730(&local_90);
local_88 = (undefined4)param_3;
local_80 = puVar6;
lVar17 = 0;
local_78 = 0;
local_74 = *(undefined4 *)((longlong)param_1 + 0x6a4);
plVar7 = &local_90;
puVar12 = param_6;
local_90 = param_2;
puVar5 = FUN_1400941c0(plVar7,param_6,uVar24,lVar15);
iVar1 = (int)puVar5;
if (-1 < iVar1) {
local_c8 = Proud::AddrPort::vftable;
local_c0 = *(undefined4 *)(param_4 + 8);
local_bc = *(undefined2 *)(param_4 + 0xc);
pppuVar9 = &local_c8;
ppppuVar13 = &local_res10;
pppuVar10 = param_1;
plVar7 = FUN_1400a5f70((longlong)param_1,ppppuVar13,(longlong)pppuVar9);
lVar15 = lVar17;
if ((longlong *)*plVar7 != (longlong *)0x0) {
lVar15 = *(longlong *)*plVar7;
}
if (local_res10 != (undefined ***)0x0) {
local_res10[1] = (undefined **)((longlong)local_res10[1] + -1);
pppuVar10 = (undefined ***)local_res10[1];
if ((undefined ***)local_res10[1] == (undefined ***)0x0) {
if (*local_res10 != (undefined **)0x0) {
ppppuVar13 = (undefined ****)0x1;
(**(code **)**local_res10)();
}
FUN_14003e8b0(local_res10);
pppuVar10 = local_res10;
}
}
if (iVar1 < 1) {
return;
}
lVar14 = uVar21 * 0x48;
uVar22 = uVar21;
do {
pppuVar11 = (undefined ***)0x0;
if (((longlong)(uVar21 + lVar17) < 0) || ((int)puVar6[6] <= (int)uVar22)) {
/* WARNING: Subroutine does not return */
FUN_14003def0(pppuVar10,ppppuVar13,pppuVar9,0);
}
ppppuVar13 = *(undefined *****)(puVar6 + 4);
*(undefined4 *)(lVar14 + 0x38 + (longlong)ppppuVar13) = *(undefined4 *)(param_4 + 8);
*(undefined2 *)(lVar14 + 0x3c + (longlong)ppppuVar13) = *(undefined2 *)(param_4 + 0xc);
if (lVar15 == 0) {
if (param_1[0x2ae] != (undefined **)0x0) {
pppuVar11 = (undefined ***)*param_1[0x2ae];
}
pppuVar9 = param_1;
if ((*(int *)(param_4 + 8) == *(int *)(pppuVar11 + 0x1a)) &&
(*(short *)(param_4 + 0xc) == *(short *)((longlong)pppuVar11 + 0xd4))) {
*(undefined4 *)(lVar14 + 0x28 + (longlong)ppppuVar13) = 1;
pppuVar11 = param_1;
FUN_14009c110((longlong)param_1);
}
else {
*(undefined4 *)(lVar14 + 0x28 + (longlong)ppppuVar13) = 0;
}
}
else {
*(undefined4 *)(lVar14 + 0x28 + (longlong)ppppuVar13) = *(undefined4 *)(lVar15 + 0x56c);
dVar23 = (double)(*(code *)param_1[0xe][0x38])(param_1 + 0xe);
dVar23 = dVar23 - *(double *)(lVar15 + 0xc0);
if (0.0 < dVar23) {
*(double *)(lVar15 + 0x140) = dVar23;
}
pppuVar11 = param_1 + 0xe;
uVar24 = (*(code *)param_1[0xe][0x38])();
*(undefined8 *)(lVar15 + 0xc0) = uVar24;
*(int *)(lVar15 + 0x100) = *(int *)(lVar15 + 0x100) + 1;
}
uVar22 = (ulonglong)((int)uVar22 + 1);
lVar17 = lVar17 + 1;
lVar14 = lVar14 + 0x48;
pppuVar10 = pppuVar11;
} while (lVar17 < iVar1);
return;
}
FUN_14003e7c0(plVar7,puVar12,uVar24,lVar15);
param_5 = (uint *)PTR_DAT_14016f010;
uVar2 = FUN_14003e620(L"ExtractMessageFromUdpRecvQueue : addedCount < 0");
uVar20 = 0;
uVar4 = 0;
uVar21 = 0;
if ((param_5 != (uint *)0x0) && (uVar21 = 0, param_5 != (uint *)PTR_DAT_14016f010)) {
uVar21 = (ulonglong)param_5[-2];
}
uVar3 = uVar2;
if ((((int)uVar2 <= (int)uVar21) && (uVar3 = uVar4, param_5 != (uint *)0x0)) &&
(param_5 != (uint *)PTR_DAT_14016f010)) {
uVar3 = param_5[-2];
}
uVar16 = 1;
if (1 < (int)uVar3) {
uVar16 = uVar3;
}
uVar3 = uVar4;
if ((param_5 != (uint *)0x0) && (param_5 != (uint *)PTR_DAT_14016f010)) {
uVar3 = param_5[-2];
}
if ((int)uVar3 < (int)uVar16) {
if (param_5 == (uint *)0x0) {
param_5 = (uint *)PTR_DAT_14016f010;
}
if ((int)uVar16 < 0) {
/* WARNING: Subroutine does not return */
FUN_14003dec0();
}
if (uVar16 == 0) {
FUN_140002190((longlong *)&param_5,PTR_DAT_14016f010,uVar21,lVar15);
}
else {
uVar3 = uVar4;
if ((param_5 != (uint *)0x0) && (param_5 != (uint *)PTR_DAT_14016f010)) {
uVar3 = param_5[-2];
}
if (uVar16 != uVar3) {
puVar6 = (uint *)FUN_14003e840((longlong)(int)uVar16 * 2 + 10);
if (puVar6 != (uint *)0x0) {
*puVar6 = 0;
puVar6[1] = 1;
}
*puVar6 = uVar16;
uVar3 = uVar4;
if ((param_5 != (uint *)0x0) && (param_5 != (uint *)PTR_DAT_14016f010)) {
uVar3 = param_5[-2];
}
puVar12 = (uint *)PTR_DAT_14016f010;
if ((int)uVar16 < (int)uVar3) {
LAB_1400ab1d2:
if (param_5 != (uint *)0x0) {
puVar12 = param_5;
}
}
else {
uVar16 = uVar4;
if (param_5 != (uint *)0x0) {
if (param_5 != (uint *)PTR_DAT_14016f010) {
uVar16 = param_5[-2];
}
goto LAB_1400ab1d2;
}
}
uVar21 = (ulonglong)uVar16;
FUN_14003e650(puVar6 + 2,puVar12,uVar16);
FUN_140002190((longlong *)&param_5,puVar12,uVar21,lVar15);
param_5 = puVar6 + 2;
}
}
}
FUN_140001df0((longlong *)&param_5);
puVar6 = param_5;
if (param_5 == (uint *)0x0) {
puVar6 = (uint *)PTR_DAT_14016f010;
}
FUN_14003e650(puVar6,L"ExtractMessageFromUdpRecvQueue : addedCount < 0",uVar2);
puVar6 = param_5;
if (param_5 == (uint *)0x0) {
puVar6 = (uint *)PTR_DAT_14016f010;
}
uVar4 = FUN_14003e620((short *)puVar6);
uVar2 = uVar20;
if (0 < (int)uVar4) {
uVar2 = uVar4;
}
uVar4 = uVar20;
if ((param_5 != (uint *)0x0) && (param_5 != (uint *)PTR_DAT_14016f010)) {
uVar4 = param_5[-2];
}
if (((int)uVar4 <= (int)uVar2) && (uVar2 = uVar20, param_5 != (uint *)0x0)) {
if (param_5 == (uint *)PTR_DAT_14016f010) goto LAB_1400ab28a;
uVar2 = param_5[-2];
}
if (((param_5 != (uint *)PTR_DAT_14016f010) && (param_5 != (uint *)0x0)) &&
(param_5 + -2 != (uint *)0x0)) {
param_5[-2] = uVar2;
*(undefined2 *)((longlong)param_5 + (longlong)(int)uVar2 * 2) = 0;
}
LAB_1400ab28a:
local_b0 = 0;
local_a8 = 0;
local_a0 = 0;
local_98 = 0;
local_b8 = Proud::ByteArray::vftable;
ppuVar19 = &param_5;
plVar7 = FUN_140071c20(local_68,(ulonglong)*param_6,(ulonglong)*(uint *)(param_1 + 0x2af),
(longlong *)ppuVar19,(longlong)&local_b8);
ppuVar18 = *param_1;
(*(code *)ppuVar18[0x11])(param_1);
pppuVar9 = &local_b8;
FUN_140049e40(pppuVar9);
puVar6 = param_5;
if (((param_5 != (uint *)0x0) && (param_5 != (uint *)PTR_DAT_14016f010)) &&
(puVar12 = param_5 + -2, puVar12 != (uint *)0x0)) {
piVar8 = (int *)FUN_14003e7c0(pppuVar9,plVar7,ppuVar18,ppuVar19);
local_58 = piVar8;
FUN_14003d040(piVar8);
local_50 = 1;
puVar6 = puVar6 + -1;
*puVar6 = *puVar6 - 1;
if (*puVar6 == 0) {
FUN_14003e8b0(puVar12);
}
FUN_14003d0d0((longlong)piVar8);
}
return;
}