157 lines
5.2 KiB
C
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;
|
|
}
|
|
|