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,252 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14007fce0 FUN_14007fce0
* Pseudocode, not original source. */
longlong *
FUN_14007fce0(longlong param_1,undefined8 param_2,undefined **param_3,undefined **param_4)
{
undefined *puVar1;
undefined8 *puVar2;
undefined *puVar3;
uint uVar4;
uint uVar5;
uint uVar6;
longlong *plVar7;
longlong *plVar8;
int *piVar9;
uint *puVar10;
int *piVar11;
char *pcVar12;
char *pcVar13;
undefined ***pppuVar14;
uint *puVar15;
uint uVar16;
char *pcVar17;
ulonglong uVar18;
longlong lVar19;
uint **ppuVar20;
uint uVar21;
uint *local_res8;
undefined *local_res10;
longlong local_res18;
longlong local_res20;
undefined **local_b8;
undefined8 local_b0;
undefined8 local_a8;
undefined8 local_a0;
undefined8 local_98;
undefined **local_90;
undefined8 local_88;
undefined8 local_80;
undefined8 local_78;
undefined8 local_70;
int *local_68;
undefined1 local_60;
int *local_58;
undefined1 local_50;
undefined8 local_48;
local_48 = 0xfffffffffffffffe;
pcVar17 = (char *)0x0;
uVar21 = 0;
do {
lVar19 = *(longlong *)(param_1 + 0x148);
pcVar13 = (char *)(lVar19 + 0x60);
if (lVar19 == 0) {
pcVar13 = pcVar17;
}
pcVar12 = pcVar17;
if (*(longlong *)(lVar19 + 0x750) != 0) {
pcVar12 = *(char **)(*(longlong *)(lVar19 + 0x750) + 0x38);
}
plVar7 = FUN_140085700(pcVar12,pcVar13,param_3,(longlong)param_4);
if (plVar7 == (longlong *)0x0) {
FUN_14003e7c0(pcVar12,pcVar13,param_3,param_4);
local_res8 = (uint *)PTR_DAT_14016f010;
uVar4 = FUN_14003e620(L"FATAL: Cannot create TCP socket for AcceptEx!");
uVar6 = 0;
if ((local_res8 != (uint *)0x0) &&
(pcVar17 = (char *)0x0, local_res8 != (uint *)PTR_DAT_14016f010)) {
pcVar17 = (char *)(ulonglong)local_res8[-2];
}
uVar5 = uVar4;
if ((((int)uVar4 <= (int)pcVar17) && (uVar5 = uVar6, local_res8 != (uint *)0x0)) &&
(local_res8 != (uint *)PTR_DAT_14016f010)) {
uVar5 = local_res8[-2];
}
uVar16 = 1;
if (1 < (int)uVar5) {
uVar16 = uVar5;
}
uVar5 = uVar6;
if ((local_res8 != (uint *)0x0) && (local_res8 != (uint *)PTR_DAT_14016f010)) {
uVar5 = local_res8[-2];
}
if ((int)uVar5 < (int)uVar16) {
if (local_res8 == (uint *)0x0) {
local_res8 = (uint *)PTR_DAT_14016f010;
}
if ((int)uVar16 < 0) {
/* WARNING: Subroutine does not return */
FUN_14003dec0();
}
if (uVar16 == 0) {
FUN_140002190((longlong *)&local_res8,PTR_DAT_14016f010,pcVar17,param_4);
}
else {
uVar5 = uVar6;
if ((local_res8 != (uint *)0x0) && (local_res8 != (uint *)PTR_DAT_14016f010)) {
uVar5 = local_res8[-2];
}
if (uVar16 != uVar5) {
puVar10 = (uint *)FUN_14003e840((longlong)(int)uVar16 * 2 + 10);
if (puVar10 != (uint *)0x0) {
*puVar10 = 0;
puVar10[1] = 1;
}
*puVar10 = uVar16;
uVar5 = uVar6;
if ((local_res8 != (uint *)0x0) && (local_res8 != (uint *)PTR_DAT_14016f010)) {
uVar5 = local_res8[-2];
}
puVar15 = (uint *)PTR_DAT_14016f010;
if ((int)uVar16 < (int)uVar5) {
LAB_14007ff87:
if (local_res8 != (uint *)0x0) {
puVar15 = local_res8;
}
}
else {
uVar16 = uVar6;
if (local_res8 != (uint *)0x0) {
if (local_res8 != (uint *)PTR_DAT_14016f010) {
uVar16 = local_res8[-2];
}
goto LAB_14007ff87;
}
}
uVar18 = (ulonglong)uVar16;
FUN_14003e650(puVar10 + 2,puVar15,uVar16);
FUN_140002190((longlong *)&local_res8,puVar15,uVar18,param_4);
local_res8 = puVar10 + 2;
}
}
}
FUN_140001df0((longlong *)&local_res8);
puVar10 = local_res8;
if (local_res8 == (uint *)0x0) {
puVar10 = (uint *)PTR_DAT_14016f010;
}
FUN_14003e650(puVar10,L"FATAL: Cannot create TCP socket for AcceptEx!",uVar4);
puVar10 = local_res8;
if (local_res8 == (uint *)0x0) {
puVar10 = (uint *)PTR_DAT_14016f010;
}
uVar6 = FUN_14003e620((short *)puVar10);
uVar4 = uVar21;
if (0 < (int)uVar6) {
uVar4 = uVar6;
}
uVar6 = uVar21;
if ((local_res8 != (uint *)0x0) && (local_res8 != (uint *)PTR_DAT_14016f010)) {
uVar6 = local_res8[-2];
}
if (((int)uVar6 <= (int)uVar4) && (uVar4 = uVar21, local_res8 != (uint *)0x0)) {
if (local_res8 == (uint *)PTR_DAT_14016f010) goto LAB_14008003b;
uVar4 = local_res8[-2];
}
if (((local_res8 != (uint *)PTR_DAT_14016f010) && (local_res8 != (uint *)0x0)) &&
(local_res8 + -2 != (uint *)0x0)) {
local_res8[-2] = uVar4;
*(undefined2 *)((longlong)local_res8 + (longlong)(int)uVar4 * 2) = 0;
}
LAB_14008003b:
local_b0 = 0;
local_a8 = 0;
local_a0 = 0;
local_98 = 0;
local_b8 = Proud::ByteArray::vftable;
ppuVar20 = &local_res8;
plVar7 = FUN_140071c20(&local_res20,1,1,(longlong *)ppuVar20,(longlong)&local_b8);
lVar19 = **(longlong **)(param_1 + 0x148);
(**(code **)(lVar19 + 0x80))();
pppuVar14 = &local_b8;
FUN_140049e40(pppuVar14);
puVar10 = local_res8;
if (local_res8 == (uint *)0x0) {
return (longlong *)0x0;
}
if (local_res8 == (uint *)PTR_DAT_14016f010) {
return (longlong *)0x0;
}
puVar15 = local_res8 + -2;
if (puVar15 == (uint *)0x0) {
return (longlong *)0x0;
}
piVar11 = (int *)FUN_14003e7c0(pppuVar14,plVar7,lVar19,ppuVar20);
local_68 = piVar11;
FUN_14003d040(piVar11);
local_60 = 1;
puVar10 = puVar10 + -1;
*puVar10 = *puVar10 - 1;
if (*puVar10 == 0) {
FUN_14003e8b0(puVar15);
}
FUN_14003d0d0((longlong)piVar11);
return (longlong *)0x0;
}
puVar2 = *(undefined8 **)(*(longlong *)(param_1 + 0x148) + 0x748);
pcVar13 = pcVar17;
if (puVar2 != (undefined8 *)0x0) {
pcVar13 = (char *)*puVar2;
}
plVar8 = plVar7;
uVar4 = FUN_140045060((longlong)pcVar13,(longlong)plVar7,param_3,param_4);
if (uVar4 == 0) {
return plVar7;
}
if (uVar4 != 0x2746) {
if (uVar4 != 0x2736) {
FUN_14003e7c0(pcVar13,plVar8,param_3,param_4);
local_res10 = PTR_DAT_14016f010;
FUN_140029b80((longlong *)&local_res10,
L"FATAL: AcceptEx failed with error code %d! No more accept will be possible."
,(ulonglong)uVar4,param_4);
local_88 = 0;
local_80 = 0;
local_78 = 0;
local_70 = 0;
local_90 = Proud::ByteArray::vftable;
param_4 = &local_res10;
plVar8 = FUN_140071c20(&local_res18,1,1,(longlong *)param_4,(longlong)&local_90);
param_3 = (undefined **)**(longlong **)(param_1 + 0x148);
(*(code *)param_3[0x10])();
pppuVar14 = &local_90;
FUN_140049e40(pppuVar14);
puVar3 = local_res10;
if (((local_res10 != (undefined *)0x0) && (local_res10 != PTR_DAT_14016f010)) &&
(puVar1 = local_res10 + -8, puVar1 != (undefined *)0x0)) {
piVar9 = (int *)FUN_14003e7c0(pppuVar14,plVar8,param_3,param_4);
local_58 = piVar9;
FUN_14003d040(piVar9);
local_50 = 1;
piVar11 = (int *)(puVar3 + -4);
*piVar11 = *piVar11 + -1;
if (*piVar11 == 0) {
FUN_14003e8b0(puVar1);
}
FUN_14003d0d0((longlong)piVar9);
}
}
LAB_14007fe73:
FUN_140043e60(plVar7,plVar8,(longlong *)param_3,param_4);
FUN_14003e8b0(plVar7);
return (longlong *)0x0;
}
if (*(char *)(param_1 + 0x140) != '\0') goto LAB_14007fe73;
FUN_140043e60(plVar7,plVar8,(longlong *)param_3,param_4);
FUN_14003e8b0(plVar7);
} while( true );
}