decompiled agent_release

This commit is contained in:
Benjamin Palko 2026-10-14 16:45:19 -04:00
parent baac905ef2
commit 11a3488883
6439 changed files with 229565 additions and 1 deletions

View file

@ -0,0 +1,376 @@
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x14000d780 FUN_14000d780
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Removing unreachable block (ram,0x00014000dd22) */
/* WARNING: Type propagation algorithm not settling */
undefined8
FUN_14000d780(longlong param_1,int param_2,undefined8 param_3,longlong *param_4,longlong *param_5,
longlong *param_6)
{
longlong lVar1;
ulonglong *puVar2;
ulonglong *puVar3;
undefined4 *puVar4;
int iVar5;
longlong *plVar6;
undefined2 *puVar7;
undefined4 extraout_var;
undefined8 extraout_RAX;
ulonglong *puVar9;
undefined2 *_Dst;
ulonglong *puVar10;
ulonglong *puVar11;
undefined4 *puVar12;
ulonglong *puVar13;
undefined8 *puVar14;
undefined8 *_Size;
undefined1 auStack_268 [32];
ulonglong **local_248;
int local_238 [2];
ulonglong *local_230;
ulonglong *local_228;
ulonglong *local_220;
longlong *local_210;
ulonglong *local_208;
ulonglong *puStack_200;
ulonglong local_1f8;
ulonglong *local_1f0;
longlong *local_1e8;
longlong *local_1e0;
undefined8 local_1d8;
undefined8 local_1d0 [5];
undefined4 local_1a8;
int local_1a4;
undefined4 local_1a0;
undefined1 local_19c;
undefined4 local_198;
undefined4 local_194;
undefined4 local_190;
undefined4 local_18c;
undefined1 local_188;
longlong local_180 [2];
longlong *local_170;
ulonglong local_168;
undefined2 local_158;
undefined6 uStack_156;
undefined8 local_148;
ulonglong local_140;
undefined2 local_130;
undefined6 uStack_12e;
undefined8 local_120;
ulonglong local_118;
ulonglong *local_108;
ulonglong *puStack_100;
ulonglong local_f8;
ulonglong local_f0;
ulonglong local_e8;
ulonglong local_e0;
ulonglong local_d8;
void *local_d0;
undefined8 local_c8;
undefined8 local_c0;
undefined4 local_a8;
undefined4 local_a4;
undefined2 local_a0;
undefined6 uStack_9e;
undefined8 local_90;
ulonglong local_88;
undefined8 local_78 [2];
longlong *local_68;
ulonglong local_60;
ulonglong local_48;
undefined8 uVar8;
local_1d8 = 0xfffffffffffffffe;
local_48 = DAT_1401555a0 ^ (ulonglong)auStack_268;
local_1e8 = param_5;
local_210 = param_6;
local_238[0] = param_2;
local_1e0 = param_4;
plVar6 = FUN_14000e5b0(local_1d0,param_4);
FUN_14002a840(DAT_140162d58,plVar6);
puVar9 = (ulonglong *)0x0;
local_230 = (ulonglong *)0x0;
local_228 = (ulonglong *)0x0;
local_220 = (ulonglong *)0x0;
puVar10 = puVar9;
if (*(longlong *)(DAT_140162d60 + 0x58) == 0) {
local_208 = (ulonglong *)0x0;
}
else {
local_208 = *(ulonglong **)(DAT_140162d60 + 0x68);
if (local_208 != (ulonglong *)0x0) {
puStack_200 = (ulonglong *)*local_208;
puVar13 = local_208;
puVar3 = puStack_200;
goto joined_r0x00014000d84f;
}
}
puStack_200 = (ulonglong *)0x0;
puVar13 = local_208;
puVar3 = puStack_200;
joined_r0x00014000d84f:
while (puVar3 != (ulonglong *)0x0) {
puVar2 = (ulonglong *)puVar3[2];
if (puVar2 != (ulonglong *)0x0) {
if ((puVar2 < puVar10) && (puVar9 <= puVar2)) {
lVar1 = ((longlong)puVar2 - (longlong)puVar9) +
SUB168(SEXT816(-0x7bdef7bdef7bdef7) * SEXT816((longlong)puVar2 - (longlong)puVar9),8
);
if (puVar10 == local_220) {
FUN_14002d140((longlong *)&local_230);
puVar9 = local_230;
puVar10 = local_228;
}
puVar11 = (ulonglong *)0x0;
local_208 = puVar10;
local_1f0 = puVar10;
if (puVar10 != (ulonglong *)0x0) {
FUN_140004950((undefined4 *)puVar10,
(undefined4 *)(puVar9 + ((lVar1 >> 7) - (lVar1 >> 0x3f)) * 0x1f));
puVar9 = local_230;
puVar11 = local_228;
}
}
else {
if (puVar10 == local_220) {
FUN_14002d140((longlong *)&local_230);
puVar9 = local_230;
puVar10 = local_228;
}
puVar11 = (ulonglong *)0x0;
local_208 = puVar10;
local_1f0 = puVar10;
if (puVar10 != (ulonglong *)0x0) {
FUN_140004950((undefined4 *)puVar10,(undefined4 *)puVar2);
puVar9 = local_230;
puVar11 = local_228;
}
}
puVar10 = puVar11 + 0x1f;
local_228 = puVar10;
}
puVar3 = (ulonglong *)*puVar3;
while (puVar3 == (ulonglong *)0x0) {
puVar13 = puVar13 + 1;
puVar3 = (ulonglong *)*puVar13;
}
param_2 = local_238[0];
param_5 = local_1e8;
param_6 = local_210;
if (puVar13 == puVar3) {
puVar3 = (ulonglong *)0x0;
}
}
if (puVar9 != puVar10) {
puVar9 = puVar9 + 0x17;
do {
FUN_140004ea0(&local_1a8,(undefined4 *)(puVar9 + -0x17));
local_108 = (ulonglong *)puVar9[-3];
puStack_100 = (ulonglong *)puVar9[-2];
local_f8 = puVar9[-1];
local_f0 = *puVar9;
local_e8 = puVar9[1];
local_e0 = puVar9[2];
local_d8 = puVar9[3];
FUN_140004d60(&local_d0,(longlong *)(puVar9 + 4));
local_238[0] = local_1a4;
local_208 = local_108;
puStack_200 = puStack_100;
local_1f8 = local_f8;
local_248 = &local_208;
(**(code **)(*(longlong *)(param_1 + 0x20) + 0x30))
(param_1 + 0x20,param_2,&DAT_1401555d0,local_238);
if (local_d0 != (void *)0x0) {
operator_delete(local_d0);
}
local_d0 = (void *)0x0;
local_c8 = 0;
local_c0 = 0;
if (7 < local_118) {
operator_delete((void *)CONCAT62(uStack_12e,local_130));
}
local_118 = 7;
local_120 = 0;
local_130 = 0;
if (7 < local_140) {
operator_delete((void *)CONCAT62(uStack_156,local_158));
}
local_140 = 7;
local_148 = 0;
local_158 = 0;
if (7 < local_168) {
operator_delete((void *)CONCAT62(local_180[0]._2_6_,(undefined2)local_180[0]));
}
local_168 = 7;
local_170 = (longlong *)0x0;
local_180[0]._0_2_ = 0;
puVar3 = puVar9 + 8;
puVar9 = puVar9 + 0x1f;
param_6 = local_210;
} while (puVar3 != puVar10);
}
FUN_14002c400(DAT_140162d60);
puVar4 = (undefined4 *)param_5[1];
for (puVar12 = (undefined4 *)*param_5; puVar12 != puVar4; puVar12 = puVar12 + 0x28) {
local_1a8 = *puVar12;
local_1a4 = puVar12[1];
local_1a0 = puVar12[2];
local_19c = *(undefined1 *)(puVar12 + 3);
local_198 = puVar12[4];
local_194 = puVar12[5];
local_190 = puVar12[6];
local_18c = puVar12[7];
local_188 = *(undefined1 *)(puVar12 + 8);
local_168 = 7;
local_170 = (longlong *)0x0;
local_180[0]._0_2_ = 0;
FUN_140001600(local_180,(longlong *)(puVar12 + 10),0,0xffffffffffffffff);
local_140 = 7;
local_148 = 0;
local_158 = 0;
FUN_140001600((longlong *)&local_158,(longlong *)(puVar12 + 0x14),0,0xffffffffffffffff);
local_118 = 7;
local_120 = 0;
local_130 = 0;
FUN_140001600((longlong *)&local_130,(longlong *)(puVar12 + 0x1e),0,0xffffffffffffffff);
if (*(int *)(DAT_140162d68 + 0x154) == local_1a4) {
FUN_140022a20(DAT_140162d68,&local_1a8);
}
else {
FUN_14002c820(DAT_140162d60,&local_1a8);
}
if (7 < local_118) {
operator_delete((void *)CONCAT62(uStack_12e,local_130));
}
local_118 = 7;
local_120 = 0;
local_130 = 0;
if (7 < local_140) {
operator_delete((void *)CONCAT62(uStack_156,local_158));
}
local_140 = 7;
local_148 = 0;
local_158 = 0;
if (7 < local_168) {
operator_delete((void *)CONCAT62(local_180[0]._2_6_,(undefined2)local_180[0]));
}
}
puVar4 = (undefined4 *)param_6[1];
puVar12 = (undefined4 *)*param_6;
do {
if (puVar12 == puVar4) {
LAB_14000dea2:
printf("ServerFile Count: %d !!! \n",(local_1e0[1] - *local_1e0) / 0x30);
printf("ServerOption Count: %d !!! \n",(param_5[1] - *param_5) / 0xa0);
iVar5 = printf("AgentManager Count: %d !!! \n",(param_6[1] - *param_6) / 0xa0);
uVar8 = CONCAT44(extraout_var,iVar5);
*(undefined1 *)(param_1 + 0x40) = 1;
if (local_230 != (ulonglong *)0x0) {
std::_Container_base0::_Orphan_all((_Container_base0 *)&local_230);
FUN_140004b30(local_230,local_228);
operator_delete(local_230);
uVar8 = extraout_RAX;
}
return CONCAT71((int7)((ulonglong)uVar8 >> 8),1);
}
puVar14 = (undefined8 *)0xffffffffffffffff;
local_1a8 = *puVar12;
local_1a4 = puVar12[1];
local_1a0 = puVar12[2];
local_19c = *(undefined1 *)(puVar12 + 3);
local_198 = puVar12[4];
local_194 = puVar12[5];
local_190 = puVar12[6];
local_18c = puVar12[7];
local_188 = *(undefined1 *)(puVar12 + 8);
local_168 = 7;
local_170 = (longlong *)0x0;
local_180[0]._0_2_ = 0;
FUN_140001600(local_180,(longlong *)(puVar12 + 10),0,0xffffffffffffffff);
local_140 = 7;
local_148 = 0;
local_158 = 0;
FUN_140001600((longlong *)&local_158,(longlong *)(puVar12 + 0x14),0,0xffffffffffffffff);
local_118 = 7;
local_120 = 0;
local_130 = 0;
_Size = (undefined8 *)0x0;
FUN_140001600((longlong *)&local_130,(longlong *)(puVar12 + 0x1e),0,0xffffffffffffffff);
param_6 = local_170;
local_a8 = 0;
local_88 = 7;
local_90 = 0;
local_a0 = 0;
local_60 = 7;
local_68 = (longlong *)0x0;
local_78[0]._0_2_ = 0;
local_a4 = local_198;
if ((longlong *)0x7ffffffffffffffe < local_170) {
std::_Xlength_error("string too long");
goto LAB_14000dea2;
}
if (local_170 < (longlong *)0x8) {
if (local_170 == (longlong *)0x0) {
local_68 = (longlong *)0x0;
local_78[0]._0_2_ = 0;
}
}
else {
_Size = (undefined8 *)0x0;
FUN_1400018f0(local_78,(ulonglong)local_170,0);
}
if (param_6 != (longlong *)0x0) {
puVar7 = (undefined2 *)local_180;
if (7 < local_168) {
puVar7 = (undefined2 *)CONCAT62(local_180[0]._2_6_,(undefined2)local_180[0]);
}
_Dst = (undefined2 *)local_78;
if (7 < local_60) {
_Dst = (undefined2 *)CONCAT62(local_78[0]._2_6_,(undefined2)local_78[0]);
}
_Size = (undefined8 *)((longlong)param_6 * 2);
memcpy(_Dst,puVar7,(size_t)_Size);
local_68 = param_6;
puVar7 = (undefined2 *)local_78;
if (7 < local_60) {
puVar7 = (undefined2 *)CONCAT62(local_78[0]._2_6_,(undefined2)local_78[0]);
}
puVar7[(longlong)param_6] = 0;
}
if (*(undefined8 **)(param_1 + 0x50) != (undefined8 *)0x0) {
FUN_140007a80(*(undefined8 **)(param_1 + 0x50),(undefined8 **)&local_a8,_Size,puVar14);
}
if (7 < local_60) {
operator_delete((void *)CONCAT62(local_78[0]._2_6_,(undefined2)local_78[0]));
}
local_60 = 7;
local_68 = (longlong *)0x0;
local_78[0]._0_2_ = 0;
if (7 < local_88) {
operator_delete((void *)CONCAT62(uStack_9e,local_a0));
}
if (7 < local_118) {
operator_delete((void *)CONCAT62(uStack_12e,local_130));
}
local_118 = 7;
local_120 = 0;
local_130 = 0;
if (7 < local_140) {
operator_delete((void *)CONCAT62(uStack_156,local_158));
}
local_140 = 7;
local_148 = 0;
local_158 = 0;
if (7 < local_168) {
operator_delete((void *)CONCAT62(local_180[0]._2_6_,(undefined2)local_180[0]));
}
puVar12 = puVar12 + 0x28;
param_6 = local_210;
} while( true );
}