server-re/decomp/Agent_Release_x64/full/functions/0x14008c430.c
2026-10-14 16:45:19 -04:00

157 lines
5.2 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x14008c430 FUN_14008c430
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_14008c430(longlong *param_1,undefined8 param_2,longlong ****param_3,longlong param_4)
{
int *piVar1;
undefined8 *puVar2;
longlong ******pppppplVar3;
char cVar4;
int *piVar5;
longlong *plVar6;
undefined8 uVar7;
int *piVar8;
longlong lVar9;
bool bVar10;
undefined1 auStack_1d8 [32];
char local_1b8;
int local_1b7;
longlong ******local_1b0;
longlong ******local_1a8;
longlong *local_1a0;
undefined1 local_198;
int *local_190;
undefined1 local_188;
undefined8 local_180;
longlong local_178 [39];
int *local_40;
ulonglong local_28;
local_180 = 0xfffffffffffffffe;
local_28 = DAT_1401555a0 ^ (ulonglong)auStack_1d8;
FUN_1400bbb40(&local_1b8);
if (*(longlong *)(param_1[0x29] + 0x758) != 0) {
(**(code **)(**(longlong **)(param_1[0x29] + 0x758) + 0x58))();
}
piVar5 = (int *)(**(code **)(*(longlong *)param_1[0x29] + 0x58))();
plVar6 = local_178;
FUN_1400a1e40((undefined4 *)plVar6,piVar5);
cVar4 = (char)param_1[0x28];
while (cVar4 == '\0') {
local_1b0 = (longlong ******)0x0;
plVar6 = (longlong *)(**(code **)(*(longlong *)param_1[0x29] + 0x58))();
local_1a0 = plVar6;
FUN_14002e6e0((int *)plVar6);
local_198 = 1;
if (DAT_14015bfcf != '\0') {
(**(code **)(*(longlong *)param_1[0x29] + 200))
((longlong *)param_1[0x29],L"Proud::CNetThreads_S::UserWorkerThread_Main");
}
param_3 = (longlong ****)&local_1b0;
piVar5 = local_40;
uVar7 = FUN_1400a2650(param_1 + 0x2c,(longlong)local_40,(longlong *)param_3,param_4);
cVar4 = (char)uVar7;
FUN_14002e770((longlong)plVar6);
local_198 = 0;
if (cVar4 == '\x01') {
if (*(longlong *)(param_1[0x29] + 0x758) != 0) {
puVar2 = *(undefined8 **)(param_1[0x29] + 0x758);
param_3 = (longlong ****)*puVar2;
(*(code *)param_3[0xf])(puVar2,&local_1b7);
}
piVar1 = local_40;
plVar6 = param_1;
piVar5 = local_40;
if (*local_40 == 1) {
param_3 = (longlong ****)local_1b0;
FUN_140086480((longlong)param_1,(longlong)local_40,(char *)local_1b0,param_4);
}
else if (*local_40 == 2) {
param_3 = (longlong ****)local_1b0;
FUN_14008bb70((longlong)param_1,(longlong)local_40,(char *)local_1b0,param_4);
}
else {
FUN_1400593d0((longlong *)param_1[0x29],local_40 + 0x14,param_3,param_4);
param_3 = (longlong ****)0x0;
piVar5 = (int *)(ulonglong)(uint)piVar1[0xc];
plVar6 = param_1 + 0x2c;
FUN_1400a2740(plVar6,piVar1[0xc],'\0',param_4);
}
if (*(longlong *)(param_1[0x29] + 0x758) != 0) {
plVar6 = *(longlong **)(param_1[0x29] + 0x758);
piVar5 = &local_1b7;
(**(code **)(*plVar6 + 0x80))();
}
}
if (*(longlong *)(param_1[0x29] + 0x758) != 0) {
LOCK();
bVar10 = (int)param_1[0x48] == 0;
if (bVar10) {
*(int *)(param_1 + 0x48) = 1;
}
UNLOCK();
if (bVar10) {
LOCK();
bVar10 = (int)param_1[0x40] == 1;
if (bVar10) {
*(int *)(param_1 + 0x40) = 0;
}
UNLOCK();
if (bVar10) {
cVar4 = '\x01';
plVar6 = *(longlong **)(param_1[0x29] + 0x758);
piVar5 = *(int **)(param_1[0x29] + 0x260);
(**(code **)(*plVar6 + 0x88))();
}
LOCK();
*(undefined4 *)(param_1 + 0x48) = 0;
UNLOCK();
}
}
if (cVar4 == '\0') {
plVar6 = param_1 + 0x2c;
FUN_1400a25c0((longlong)plVar6);
}
cVar4 = (char)param_1[0x28];
}
if (*(longlong *)(param_1[0x29] + 0x758) != 0) {
plVar6 = *(longlong **)(param_1[0x29] + 0x758);
(**(code **)(*plVar6 + 0x60))();
}
if (*(longlong *)(param_1[0x29] + 0x17f0) != 0) {
FUN_140030200(plVar6,piVar5,param_3,param_4);
local_1a8 = (longlong ******)PTR_DAT_140155010;
FUN_14001b7a0((longlong *)&local_1a8,L"%s thread 종료.",
L"Proud::CNetThreads_S::UserWorkerThread_Main",param_4);
pppppplVar3 = local_1a8;
param_3 = (longlong ****)local_1a8;
if ((longlong *******)local_1a8 == (longlong *******)0x0) {
param_3 = (longlong ****)PTR_DAT_140155010;
}
piVar5 = (int *)0x0;
lVar9 = *(longlong *)(param_1[0x29] + 0x17f0);
FUN_14008f2e0(lVar9,0,(short *)param_3,param_4);
if ((((longlong *******)pppppplVar3 != (longlong *******)0x0) &&
(pppppplVar3 != (longlong ******)PTR_DAT_140155010)) &&
((longlong *******)(pppppplVar3 + -1) != (longlong *******)0x0)) {
piVar8 = (int *)FUN_140030200(lVar9,piVar5,param_3,param_4);
local_190 = piVar8;
FUN_14002e6e0(piVar8);
local_188 = 1;
piVar1 = (int *)((longlong)pppppplVar3 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_1400302f0(pppppplVar3 + -1);
}
FUN_14002e770((longlong)piVar8);
}
}
FUN_1400a1e80((longlong)local_178,piVar5,param_3,param_4);
FUN_1400bbb70(&local_1b8);
return;
}