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

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;
}