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,168 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14007f930 FUN_14007f930
* Pseudocode, not original source. */
undefined8 FUN_14007f930(longlong param_1,longlong param_2,ulonglong param_3)
{
int *piVar1;
uint uVar2;
int *piVar3;
short *psVar4;
undefined8 uVar5;
longlong *plVar6;
undefined8 *puVar7;
undefined **ppuVar8;
short **ppsVar9;
longlong lVar10;
ulonglong uVar11;
wchar_t *pwVar12;
char *pcVar13;
uint uVar14;
ulonglong uVar15;
longlong lVar16;
ulonglong uVar17;
undefined *puVar18;
short *psVar19;
short *local_res8;
undefined *local_res20;
undefined **local_60;
undefined4 local_58;
undefined2 local_54;
int *local_50;
undefined1 local_48;
piVar3 = (int *)(**(code **)(**(longlong **)(param_1 + 0x148) + 0x58))();
local_50 = piVar3;
FUN_14003d040(piVar3);
local_48 = 1;
if (DAT_14017614f != '\0') {
(**(code **)(**(longlong **)(param_1 + 0x148) + 200))();
}
FUN_140048960((char *)(*(longlong *)(param_1 + 0x148) + 0x760));
local_res8 = (short *)FUN_14003e840(0x780);
psVar19 = (short *)0x0;
psVar4 = psVar19;
if (local_res8 != (short *)0x0) {
local_60 = Proud::AddrPort::vftable;
local_58 = *(undefined4 *)(param_3 + 8);
local_54 = *(undefined2 *)(param_3 + 0xc);
psVar4 = (short *)FUN_14008b590((undefined8 *)local_res8,*(longlong *)(param_1 + 0x148),param_2,
&local_60);
}
lVar10 = *(longlong *)(param_1 + 0x148);
pcVar13 = (char *)(lVar10 + 0x1740);
uVar2 = *(uint *)(lVar10 + 0x1768);
uVar17 = (ulonglong)uVar2;
uVar11 = ((ulonglong)psVar4 & 0xffffffff) % uVar17;
uVar15 = *(ulonglong *)(lVar10 + 0x1748);
uVar14 = (uint)uVar11;
local_res8 = psVar4;
if (uVar15 != 0) {
for (plVar6 = *(longlong **)(uVar15 + uVar11 * 8);
(plVar6 != (longlong *)0x0 && (uVar14 == *(uint *)(plVar6 + 4) % uVar2));
plVar6 = (longlong *)plVar6[2]) {
if ((short *)*plVar6 == psVar4) goto LAB_14007fad9;
}
if (uVar15 != 0) {
for (plVar6 = *(longlong **)(uVar15 + uVar11 * 8);
(plVar6 != (longlong *)0x0 && (uVar14 == *(uint *)(plVar6 + 4) % uVar2));
plVar6 = (longlong *)plVar6[2]) {
if ((short *)*plVar6 == psVar4) goto LAB_14007fad5;
}
if (uVar15 != 0) goto LAB_14007faac;
}
}
uVar5 = FUN_14004c640((longlong)pcVar13,uVar2,'\x01');
if ((char)uVar5 == '\0') {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x8007000e);
}
LAB_14007faac:
FUN_1400c8cb0(pcVar13);
uVar17 = (ulonglong)psVar4 & 0xffffffff;
plVar6 = FUN_14004e780(pcVar13,&local_res8,uVar14,(int)psVar4);
FUN_1400c8cb0(pcVar13);
uVar15 = uVar11;
LAB_14007fad5:
*(undefined1 *)(plVar6 + 1) = 0;
LAB_14007fad9:
if (psVar4 != (short *)0x0) {
psVar19 = psVar4 + 0x1c;
}
FUN_140043150(*(longlong *)(*(longlong *)(psVar4 + 0x3a4) + 0x110),psVar19,uVar15,uVar17);
FUN_140091240((longlong)(psVar4 + 0x60));
FUN_1400479d0(*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x788),
*(ULONG_PTR *)(*(longlong *)(psVar4 + 0x3a4) + 0x110),
(LPOVERLAPPED)0xffffffffffffffff);
lVar10 = *(longlong *)(param_1 + 0x148);
pcVar13 = (char *)(ulonglong)*(uint *)(lVar10 + 0x1710);
uVar15 = (ulonglong)((uint)*(ushort *)(param_3 + 0xc) ^ *(uint *)(param_3 + 8)) %
(ulonglong)pcVar13;
lVar16 = 0;
if (*(longlong *)(lVar10 + 0x16f0) != 0) {
lVar16 = *(longlong *)(*(longlong *)(lVar10 + 0x16f0) + uVar15 * 8);
while ((lVar16 != 0 &&
(uVar11 = (ulonglong)*(uint *)(lVar16 + 0x28) % (ulonglong)pcVar13,
(int)uVar15 == (int)uVar11))) {
if ((*(uint *)(lVar16 + 8) == *(uint *)(param_3 + 8)) &&
(*(ushort *)(lVar16 + 0xc) == *(ushort *)(param_3 + 0xc))) goto LAB_14007fb98;
lVar16 = *(longlong *)(lVar16 + 0x18);
}
}
pcVar13 = (char *)(lVar10 + 0x16e8);
uVar11 = param_3;
puVar7 = FUN_14007e690(pcVar13,param_3);
*puVar7 = psVar4;
LAB_14007fb98:
if (*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x17f0) != 0) {
FUN_14003e7c0(pcVar13,uVar11,lVar16,uVar15);
local_res8 = (short *)PTR_DAT_14016f010;
plVar6 = FUN_1400420f0(param_3,(longlong *)&local_res20,lVar16,uVar15);
puVar18 = (undefined *)*plVar6;
if ((undefined *)*plVar6 == (undefined *)0x0) {
puVar18 = PTR_DAT_14016f010;
}
pwVar12 = L"new TCP socket is accepted. RemoteClient_S=%p,TCP socket=%s";
ppsVar9 = &local_res8;
FUN_140029b80((longlong *)ppsVar9,L"new TCP socket is accepted. RemoteClient_S=%p,TCP socket=%s"
,psVar4,puVar18);
if (((local_res20 != (undefined *)0x0) && (local_res20 != PTR_DAT_14016f010)) &&
(local_res20 + -8 != (undefined *)0x0)) {
ppuVar8 = (undefined **)FUN_14003e7c0(ppsVar9,pwVar12,psVar4,puVar18);
local_60 = ppuVar8;
FUN_14003d040((int *)ppuVar8);
local_58 = CONCAT31(local_58._1_3_,1);
piVar1 = (int *)(local_res20 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(local_res20 + -8);
}
FUN_14003d0d0((longlong)ppuVar8);
}
psVar19 = local_res8;
psVar4 = local_res8;
if (local_res8 == (short *)0x0) {
psVar4 = (short *)PTR_DAT_14016f010;
}
uVar5 = 0;
lVar10 = *(longlong *)(*(longlong *)(param_1 + 0x148) + 0x17f0);
FUN_1400843d0(lVar10,0,psVar4,puVar18);
if (((psVar19 != (short *)0x0) && (psVar19 != (short *)PTR_DAT_14016f010)) &&
(psVar19 + -4 != (short *)0x0)) {
ppuVar8 = (undefined **)FUN_14003e7c0(lVar10,uVar5,psVar4,puVar18);
local_60 = ppuVar8;
FUN_14003d040((int *)ppuVar8);
local_58 = CONCAT31(local_58._1_3_,1);
piVar1 = (int *)(psVar19 + -2);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(psVar19 + -4);
}
FUN_14003d0d0((longlong)ppuVar8);
}
}
uVar5 = FUN_14003d0d0((longlong)piVar3);
return CONCAT71((int7)((ulonglong)uVar5 >> 8),1);
}