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,304 @@
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x14008be60 FUN_14008be60
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_14008be60(undefined ***param_1,undefined ***param_2,undefined ***param_3,
undefined ***param_4)
{
undefined **ppuVar1;
int *piVar2;
uint uVar3;
uint uVar4;
undefined8 uVar5;
ulonglong uVar6;
uint *puVar7;
undefined ***pppuVar8;
int *piVar9;
uint uVar10;
uint uVar11;
char *pcVar12;
undefined ***pppuVar13;
undefined **ppuVar14;
undefined *puVar15;
undefined ***pppuVar16;
uint uVar17;
undefined ***pppuVar18;
undefined1 auStackY_2a8 [32];
undefined **local_278;
undefined **local_270;
undefined ***local_268;
undefined ***local_260;
undefined **local_258;
undefined4 local_250;
undefined2 local_24c;
undefined ***local_238 [2];
undefined **local_228;
undefined4 local_220;
undefined2 local_21c;
undefined ***local_218;
undefined1 local_210;
undefined **local_208;
undefined4 local_200;
undefined2 local_1fc;
undefined **local_1f8;
undefined8 local_1f0;
undefined8 local_1e8;
undefined8 local_1e0;
undefined8 local_1d8;
int *local_1d0;
undefined1 local_1c8;
undefined **local_1c0;
undefined8 local_1b8;
undefined4 local_1b0;
undefined8 local_1a8;
undefined4 local_1a0;
undefined **local_198;
undefined4 local_190;
undefined2 local_18c;
longlong local_158 [36];
ulonglong local_38;
local_158[1] = 0xfffffffffffffffe;
local_38 = DAT_1401555a0 ^ (ulonglong)auStackY_2a8;
pppuVar8 = &local_278;
local_260 = param_1;
FUN_1400bbb40(pppuVar8);
pppuVar18 = (undefined ***)0x0;
local_268 = (undefined ***)0x0;
pppuVar16 = (undefined ***)0x1;
do {
while( true ) {
while( true ) {
if (*(char *)(param_1 + 0x28) != '\0') {
if (param_1[0x29][0x2fe] != (undefined *)0x0) {
FUN_140030200(pppuVar8,param_2,param_3,param_4);
local_238[0] = (undefined ***)PTR_DAT_140155010;
FUN_14001b7a0((longlong *)local_238,L"%s thread 종료.",
L"Proud::CNetThreads_S::TcpListenerProc",param_4);
pppuVar8 = local_238[0];
param_3 = local_238[0];
if (local_238[0] == (undefined ***)0x0) {
param_3 = (undefined ***)PTR_DAT_140155010;
}
param_2 = (undefined ***)0x0;
puVar15 = param_1[0x29][0x2fe];
FUN_14008f2e0((longlong)puVar15,0,(short *)param_3,param_4);
if (((pppuVar8 != (undefined ***)0x0) && (pppuVar8 != (undefined ***)PTR_DAT_140155010))
&& (pppuVar8 + -1 != (undefined ***)0x0)) {
piVar9 = (int *)FUN_140030200(puVar15,param_2,param_3,param_4);
local_1c8 = 0;
local_1d0 = piVar9;
FUN_14002e6e0(piVar9);
local_1c8 = 1;
piVar2 = (int *)((longlong)pppuVar8 + -4);
*piVar2 = *piVar2 + -1;
if (*piVar2 == 0) {
FUN_1400302f0(pppuVar8 + -1);
}
FUN_14002e770((longlong)piVar9);
}
}
pppuVar8 = local_268;
if (local_268 != (undefined ***)0x0) {
FUN_1400358a0((longlong *)local_268,param_2,(longlong *)param_3,param_4);
FUN_1400302f0(pppuVar8);
}
FUN_1400bbb70((char *)&local_278);
return;
}
uVar17 = 0;
if (((local_268 == (undefined ***)0x0) && ((char)pppuVar16 != '\0')) &&
(local_268 = (undefined ***)
FUN_14008ad70((longlong)param_1,param_2,(undefined **)param_3,
(undefined **)param_4), local_268 == (undefined ***)0x0)) {
pppuVar16 = pppuVar18;
}
pppuVar13 = local_268;
local_198 = Proud::AddrPort::vftable;
local_1c0 = (undefined **)0x0;
local_1a8 = 0;
local_1b8 = 0;
local_1b0 = 5;
local_1a0 = 0;
local_190 = DAT_1401553d0;
local_18c = DAT_1401553d4;
param_3 = (undefined ***)(ulonglong)DAT_140155068;
param_2 = &local_1c0;
pcVar12 = param_1[0x29][0xf2];
uVar5 = FUN_1400388c0(pcVar12,(longlong *)param_2,(ulonglong)param_3,param_4);
if ((char)uVar5 == '\x01') break;
pppuVar8 = pppuVar18;
if ((undefined8 *)param_1[0x29][0xe9] != (undefined8 *)0x0) {
pppuVar8 = *(undefined ****)param_1[0x29][0xe9];
}
FUN_140035730((longlong)pppuVar8);
}
if (pppuVar13 == (undefined ***)0x0) break;
local_208 = Proud::AddrPort::vftable;
local_200 = 0;
local_1fc = 0;
local_258 = Proud::AddrPort::vftable;
local_250 = 0;
local_24c = 0;
param_2 = pppuVar18;
if ((undefined8 *)param_1[0x29][0xe9] != (undefined8 *)0x0) {
param_2 = *(undefined ****)param_1[0x29][0xe9];
}
param_4 = &local_258;
param_3 = &local_208;
FUN_140035580((longlong)pppuVar13,(longlong)param_2,(longlong)param_3,(longlong)param_4);
uVar6 = FUN_140033290((longlong)&local_258);
if ((char)uVar6 == '\0') {
LAB_14008c022:
FUN_1400358a0((longlong *)pppuVar13,param_2,(longlong *)param_3,param_4);
FUN_1400302f0(pppuVar13);
pppuVar8 = pppuVar13;
}
else {
local_228 = Proud::AddrPort::vftable;
local_220 = local_250;
local_21c = local_24c;
param_3 = &local_228;
pppuVar8 = param_1;
param_2 = pppuVar13;
uVar5 = FUN_14008a9c0((longlong)param_1,(longlong)pppuVar13,(ulonglong)param_3);
if ((char)uVar5 == '\0') goto LAB_14008c022;
}
local_268 = (undefined ***)0x0;
}
FUN_140030200(pcVar12,param_2,param_3,param_4);
local_270 = (undefined **)PTR_DAT_140155010;
uVar3 = FUN_140030080(L"acceptex getqueued but socket null");
uVar4 = uVar17;
if ((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) {
uVar4 = *(uint *)(local_270 + -1);
}
uVar10 = uVar3;
if ((((int)uVar3 <= (int)uVar4) && (uVar10 = uVar17, local_270 != (undefined **)0x0)) &&
(local_270 != (undefined **)PTR_DAT_140155010)) {
uVar10 = *(uint *)(local_270 + -1);
}
uVar4 = 1;
if (1 < (int)uVar10) {
uVar4 = uVar10;
}
uVar11 = 0;
uVar10 = uVar11;
if ((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) {
uVar10 = *(uint *)(local_270 + -1);
}
if ((int)uVar10 < (int)uVar4) {
if (local_270 == (undefined **)0x0) {
local_270 = (undefined **)PTR_DAT_140155010;
}
if ((int)uVar4 < 0) {
/* WARNING: Subroutine does not return */
FUN_14002f590();
}
if (uVar4 == 0) {
FUN_140003240((longlong *)&local_270,PTR_DAT_140155010,param_3,param_4);
}
else {
uVar10 = uVar11;
if ((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) {
uVar10 = *(uint *)(local_270 + -1);
}
if (uVar4 != uVar10) {
puVar7 = (uint *)FUN_140030280((longlong)(int)uVar4 * 2 + 10);
if (puVar7 != (uint *)0x0) {
*puVar7 = 0;
puVar7[1] = 1;
}
*puVar7 = uVar4;
uVar10 = uVar11;
if ((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) {
uVar10 = *(uint *)(local_270 + -1);
}
ppuVar14 = (undefined **)PTR_DAT_140155010;
if ((int)uVar4 < (int)uVar10) {
LAB_14008c147:
if (local_270 != (undefined **)0x0) {
ppuVar14 = local_270;
}
}
else {
uVar4 = uVar17;
if (local_270 != (undefined **)0x0) {
if (local_270 != (undefined **)PTR_DAT_140155010) {
uVar4 = *(uint *)(local_270 + -1);
}
goto LAB_14008c147;
}
}
uVar6 = (ulonglong)uVar4;
FUN_1400300b0(puVar7 + 2,ppuVar14,uVar4);
FUN_140003240((longlong *)&local_270,ppuVar14,uVar6,param_4);
local_270 = (undefined **)(puVar7 + 2);
}
}
}
FUN_140002ea0((longlong *)&local_270);
ppuVar14 = local_270;
if (local_270 == (undefined **)0x0) {
ppuVar14 = (undefined **)PTR_DAT_140155010;
}
FUN_1400300b0(ppuVar14,L"acceptex getqueued but socket null",uVar3);
ppuVar14 = local_270;
if (local_270 == (undefined **)0x0) {
ppuVar14 = (undefined **)PTR_DAT_140155010;
}
uVar4 = FUN_140030080((short *)ppuVar14);
uVar17 = 0;
if (0 < (int)uVar4) {
uVar17 = uVar4;
}
uVar4 = uVar11;
if ((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) {
uVar4 = *(uint *)(local_270 + -1);
}
if (((int)uVar17 < (int)uVar4) || (uVar17 = uVar11, local_270 == (undefined **)0x0)) {
LAB_14008c1ea:
if (((local_270 != (undefined **)PTR_DAT_140155010) && (local_270 != (undefined **)0x0)) &&
(local_270 + -1 != (undefined **)0x0)) {
*(uint *)(local_270 + -1) = uVar17;
*(undefined2 *)((longlong)local_270 + (longlong)(int)uVar17 * 2) = 0;
}
}
else if (local_270 != (undefined **)PTR_DAT_140155010) {
uVar17 = *(uint *)(local_270 + -1);
goto LAB_14008c1ea;
}
local_1f0 = 0;
local_1e8 = 0;
local_1e0 = 0;
local_1d8 = 0;
local_1f8 = Proud::ByteArray::vftable;
param_4 = &local_270;
param_2 = (undefined ***)FUN_14003c120(local_158,1,0,(longlong *)param_4,(longlong)&local_1f8);
param_3 = (undefined ***)*param_1[0x29];
(*(code *)param_3[0x10])();
pppuVar8 = &local_1f8;
FUN_14003b870(pppuVar8);
ppuVar14 = local_270;
if (((local_270 != (undefined **)0x0) && (local_270 != (undefined **)PTR_DAT_140155010)) &&
(ppuVar1 = local_270 + -1, ppuVar1 != (undefined **)0x0)) {
pppuVar8 = (undefined ***)FUN_140030200(pppuVar8,param_2,param_3,param_4);
local_210 = 0;
local_218 = pppuVar8;
FUN_14002e6e0((int *)pppuVar8);
local_210 = 1;
puVar7 = (uint *)((longlong)ppuVar14 + -4);
*puVar7 = *puVar7 - 1;
if (*puVar7 == 0) {
FUN_1400302f0(ppuVar1);
}
FUN_14002e770((longlong)pppuVar8);
local_210 = 0;
}
local_270 = (undefined **)PTR_DAT_140155010;
} while( true );
}