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,98 @@
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400a7010 FUN_1400a7010
* Pseudocode, not original source. */
ulonglong FUN_1400a7010(longlong param_1,undefined8 param_2,undefined **param_3,undefined8 param_4)
{
int iVar1;
longlong *plVar2;
ulonglong in_RAX;
undefined8 *puVar3;
longlong lVar4;
undefined8 uVar5;
ulonglong uVar6;
longlong *plVar7;
longlong lVar8;
undefined ***pppuVar9;
longlong lVar10;
longlong *local_res10;
longlong local_res18 [2];
undefined **local_38;
int local_30;
undefined2 local_2c;
if (*(char *)(param_1 + 0x1528) == '\0') {
plVar7 = *(longlong **)(param_1 + 0x1520);
if ((plVar7 == (longlong *)0x0) || (*plVar7 == 0)) {
local_res10 = operator_new(0x1c0);
if (local_res10 == (longlong *)0x0) {
puVar3 = (undefined8 *)0x0;
}
else {
param_3 = (undefined **)0x0;
puVar3 = FUN_1400d32e0(local_res10,param_1,0,param_4);
}
lVar10 = 0;
if ((puVar3 == (undefined8 *)0x0) || (puVar3 + 8 == (undefined8 *)0x0)) {
local_res10 = (longlong *)0x0;
}
else {
local_res10 = (longlong *)FUN_14003e840(0x10);
local_res10[1] = 1;
*local_res10 = (longlong)(puVar3 + 8);
}
plVar7 = local_res10;
FUN_14009d860((longlong *)(param_1 + 0x1520),(longlong *)&local_res10);
plVar2 = local_res10;
if (plVar7 != (longlong *)0x0) {
plVar7 = plVar7 + 1;
*plVar7 = *plVar7 + -1;
if (*plVar7 == 0) {
puVar3 = (undefined8 *)*local_res10;
if (puVar3 != (undefined8 *)0x0) {
(**(code **)*puVar3)(puVar3,1);
}
FUN_14003e8b0(plVar2);
}
}
lVar4 = lVar10;
if ((*(longlong **)(param_1 + 0x15d8) != (longlong *)0x0) &&
(lVar8 = **(longlong **)(param_1 + 0x15d8), lVar8 != 0)) {
lVar4 = lVar8 + -0x40;
}
iVar1 = *(int *)(lVar4 + 0x118);
if ((iVar1 == 0) || (iVar1 == -1)) {
FUN_14003e110(
L"UDP 소켓을 생성하기 전에 TCP 연결이 이미 되어있는 상태이어야 하는데!"
);
}
local_38 = Proud::AddrPort::vftable;
local_2c = 0;
if ((*(longlong **)(param_1 + 0x1520) == (longlong *)0x0) ||
(lVar4 = **(longlong **)(param_1 + 0x1520), lVar8 = lVar4 + -0x40, lVar4 == 0)) {
lVar8 = lVar10;
}
pppuVar9 = &local_38;
local_30 = iVar1;
uVar5 = FUN_1400d36c0(lVar8,(longlong)pppuVar9,(longlong *)param_3,param_4);
if ((char)uVar5 == '\0') {
local_res18[0] = 0;
uVar6 = FUN_14009d860((longlong *)(param_1 + 0x1520),local_res18);
*(undefined1 *)(param_1 + 0x1528) = 1;
return uVar6 & 0xffffffffffffff00;
}
if ((*(longlong **)(param_1 + 0x1520) != (longlong *)0x0) &&
(lVar4 = **(longlong **)(param_1 + 0x1520), lVar4 != 0)) {
lVar10 = lVar4 + -0x40;
}
plVar7 = (longlong *)FUN_1400d2cc0(lVar10,pppuVar9,param_3,param_4);
}
uVar6 = CONCAT71((int7)((ulonglong)plVar7 >> 8),1);
}
else {
uVar6 = in_RAX & 0xffffffffffffff00;
}
return uVar6;
}