178 lines
4.9 KiB
C
178 lines
4.9 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x14005ed30 FUN_14005ed30
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
void FUN_14005ed30(longlong *param_1,wchar_t *param_2,LPCSTR param_3,undefined8 param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
longlong *plVar2;
|
|
longlong *plVar3;
|
|
ulonglong uVar4;
|
|
longlong lVar5;
|
|
wchar_t *pwVar6;
|
|
longlong **pplVar7;
|
|
undefined4 *puVar8;
|
|
LPCSTR pCVar9;
|
|
SIZE_T SVar10;
|
|
undefined4 uVar11;
|
|
undefined1 auStack_2b8 [32];
|
|
longlong *local_298;
|
|
longlong *local_290;
|
|
undefined1 local_288;
|
|
undefined4 local_278 [2];
|
|
ulonglong local_270;
|
|
undefined4 local_268;
|
|
longlong local_260 [2];
|
|
undefined **local_250;
|
|
undefined8 local_248;
|
|
undefined8 local_240;
|
|
undefined8 local_238;
|
|
undefined8 local_230;
|
|
longlong local_228;
|
|
longlong local_220;
|
|
ulonglong local_218;
|
|
undefined4 local_208;
|
|
undefined **local_200;
|
|
undefined8 local_1f8;
|
|
undefined8 local_1f0;
|
|
undefined8 local_1e8;
|
|
undefined8 local_1e0;
|
|
undefined **local_1d0;
|
|
undefined4 local_1c8;
|
|
undefined2 local_1c4;
|
|
undefined **local_1b8;
|
|
undefined8 local_1b0;
|
|
undefined8 local_1a8;
|
|
undefined8 local_1a0;
|
|
undefined8 local_198;
|
|
int *local_188;
|
|
undefined1 local_180;
|
|
undefined8 local_178;
|
|
short *local_168;
|
|
short local_160 [132];
|
|
ulonglong local_58;
|
|
|
|
uVar11 = (undefined4)param_4;
|
|
local_178 = 0xfffffffffffffffe;
|
|
local_58 = DAT_1401555a0 ^ (ulonglong)auStack_2b8;
|
|
pwVar6 = param_2;
|
|
pCVar9 = param_3;
|
|
piVar1 = (int *)(**(code **)(*param_1 + 0x58))();
|
|
local_188 = piVar1;
|
|
FUN_14002e6e0(piVar1);
|
|
local_180 = 1;
|
|
if (DAT_14015bfcf != '\0') {
|
|
pCVar9 = (LPCSTR)*param_1;
|
|
pwVar6 = L"Proud::CNetServerImpl::EnqueueHackSuspectEvent";
|
|
(**(code **)(pCVar9 + 200))(param_1);
|
|
}
|
|
if (param_1[0xeb] != 0) {
|
|
plVar3 = (longlong *)0x0;
|
|
local_270 = 0;
|
|
local_260[0] = 0;
|
|
local_260[1] = 0;
|
|
local_248 = 0;
|
|
local_240 = 0;
|
|
local_238 = 0;
|
|
local_230 = 0;
|
|
local_250 = Proud::ByteArray::vftable;
|
|
local_218 = 0;
|
|
local_220 = 0;
|
|
local_228 = 0;
|
|
local_1f8 = 0;
|
|
local_1f0 = 0;
|
|
local_1e8 = 0;
|
|
local_1e0 = 0;
|
|
local_200 = Proud::ByteArray::vftable;
|
|
local_1d0 = Proud::AddrPort::vftable;
|
|
local_1c8 = 0;
|
|
local_1c4 = 0;
|
|
local_1b0 = 0;
|
|
local_1a8 = 0;
|
|
local_1a0 = 0;
|
|
local_198 = 0;
|
|
local_1b8 = Proud::ByteArray::vftable;
|
|
local_298 = (longlong *)FUN_140030280(0x60);
|
|
plVar2 = plVar3;
|
|
if (local_298 != (longlong *)0x0) {
|
|
plVar2 = FUN_14003bef0(local_298,pwVar6,pCVar9,param_4);
|
|
}
|
|
if (plVar2 == (longlong *)0x0) {
|
|
local_298 = (longlong *)0x0;
|
|
}
|
|
else {
|
|
plVar3 = (longlong *)FUN_140030280(0x48);
|
|
local_290 = plVar3;
|
|
if (plVar3 != (longlong *)0x0) {
|
|
local_298 = plVar3;
|
|
uVar4 = FUN_14002e790();
|
|
pCVar9 = (LPCSTR)CONCAT71((int7)((ulonglong)pCVar9 >> 8),1);
|
|
FUN_14002e600((undefined4 *)plVar3,uVar4 & 0xffffffff,pCVar9,param_4);
|
|
}
|
|
local_298 = plVar3;
|
|
FUN_14002e6e0((int *)plVar3);
|
|
plVar3[8] = 1;
|
|
plVar3[7] = (longlong)plVar2;
|
|
FUN_14002e770((longlong)plVar3);
|
|
}
|
|
pplVar7 = &local_298;
|
|
FUN_14003bff0(&local_270,(ulonglong *)pplVar7,pCVar9,param_4);
|
|
if (plVar3 != (longlong *)0x0) {
|
|
local_290 = plVar3;
|
|
FUN_14002e6e0((int *)plVar3);
|
|
local_288 = 1;
|
|
plVar2 = plVar3 + 8;
|
|
*plVar2 = *plVar2 + -1;
|
|
if (*plVar2 == 0) {
|
|
FUN_14002e770((longlong)plVar3);
|
|
local_288 = 0;
|
|
FUN_14002b500((undefined4 *)plVar3,pplVar7,pCVar9,param_4);
|
|
}
|
|
else {
|
|
FUN_14002e770((longlong)plVar3);
|
|
}
|
|
}
|
|
if (param_2 == (wchar_t *)0x0) {
|
|
local_208 = 0;
|
|
}
|
|
else {
|
|
local_208 = *(undefined4 *)(param_2 + 0x37c);
|
|
}
|
|
local_278[0] = 0xf;
|
|
local_168 = local_160;
|
|
SVar10 = 3;
|
|
local_268 = uVar11;
|
|
FUN_14002a670((longlong *)&local_168,param_3,3);
|
|
lVar5 = 0;
|
|
if (local_270 != 0) {
|
|
lVar5 = *(longlong *)(local_270 + 0x38);
|
|
}
|
|
FUN_140006c60((longlong *)(lVar5 + 0x10),local_168,SVar10,param_4);
|
|
if (local_168 != local_160) {
|
|
free(local_168);
|
|
}
|
|
puVar8 = local_278;
|
|
FUN_14005bad0((longlong)param_1,puVar8,SVar10,param_4);
|
|
FUN_14003b870(&local_1b8);
|
|
FUN_14003b870(&local_200);
|
|
local_290 = &local_228;
|
|
FUN_140095270(&local_228);
|
|
if (local_220 != 0) {
|
|
if ((longlong)local_218 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f590();
|
|
}
|
|
local_218 = local_218 & 0xffffffff00000000;
|
|
}
|
|
FUN_14003b870(&local_250);
|
|
FUN_140056b00(local_260 + 1,puVar8,SVar10,param_4);
|
|
FUN_140056a80(local_260,puVar8,SVar10,param_4);
|
|
FUN_14002b570((longlong *)&local_270,puVar8,SVar10,param_4);
|
|
}
|
|
FUN_14002e770((longlong)piVar1);
|
|
return;
|
|
}
|
|
|