server-re/decomp/AgentManager_Release_x64/full/functions/0x14006c410.c
2026-10-15 09:58:24 -04:00

178 lines
4.9 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14006c410 FUN_14006c410
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_14006c410(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_14016f5a0 ^ (ulonglong)auStack_2b8;
pwVar6 = param_2;
pCVar9 = param_3;
piVar1 = (int *)(**(code **)(*param_1 + 0x58))();
local_188 = piVar1;
FUN_14003d040(piVar1);
local_180 = 1;
if (DAT_14017614f != '\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_14003e840(0x60);
plVar2 = plVar3;
if (local_298 != (longlong *)0x0) {
plVar2 = FUN_140071b80(local_298,pwVar6,pCVar9,param_4);
}
if (plVar2 == (longlong *)0x0) {
local_298 = (longlong *)0x0;
}
else {
plVar3 = (longlong *)FUN_14003e840(0x48);
local_290 = plVar3;
if (plVar3 != (longlong *)0x0) {
local_298 = plVar3;
uVar4 = FUN_140094860();
pCVar9 = (LPCSTR)CONCAT71((int7)((ulonglong)pCVar9 >> 8),1);
FUN_14003cf60((undefined4 *)plVar3,uVar4 & 0xffffffff,pCVar9,param_4);
}
local_298 = plVar3;
FUN_14003d040((int *)plVar3);
plVar3[8] = 1;
plVar3[7] = (longlong)plVar2;
FUN_14003d0d0((longlong)plVar3);
}
pplVar7 = &local_298;
FUN_14005d770(&local_270,(ulonglong *)pplVar7,pCVar9,param_4);
if (plVar3 != (longlong *)0x0) {
local_290 = plVar3;
FUN_14003d040((int *)plVar3);
local_288 = 1;
plVar2 = plVar3 + 8;
*plVar2 = *plVar2 + -1;
if (*plVar2 == 0) {
FUN_14003d0d0((longlong)plVar3);
local_288 = 0;
FUN_140038210((undefined4 *)plVar3,pplVar7,pCVar9,param_4);
}
else {
FUN_14003d0d0((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_140005110((longlong *)&local_168,param_3,3);
lVar5 = 0;
if (local_270 != 0) {
lVar5 = *(longlong *)(local_270 + 0x38);
}
FUN_140005dd0((longlong *)(lVar5 + 0x10),local_168,SVar10,param_4);
if (local_168 != local_160) {
free(local_168);
}
puVar8 = local_278;
FUN_1400691b0((longlong)param_1,puVar8,SVar10,param_4);
FUN_140049e40(&local_1b8);
FUN_140049e40(&local_200);
local_290 = &local_228;
FUN_14008a320(&local_228);
if (local_220 != 0) {
if ((longlong)local_218 < 0) {
/* WARNING: Subroutine does not return */
FUN_14003dec0();
}
local_218 = local_218 & 0xffffffff00000000;
}
FUN_140049e40(&local_250);
FUN_1400641e0(local_260 + 1,puVar8,SVar10,param_4);
FUN_140064160(local_260,puVar8,SVar10,param_4);
FUN_140038280((longlong *)&local_270,puVar8,SVar10,param_4);
}
FUN_14003d0d0((longlong)piVar1);
return;
}