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

89 lines
2.7 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14001c0e0 FUN_14001c0e0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_14001c0e0(longlong param_1,uint param_2,LPCWSTR param_3)
{
longlong *plVar1;
char *****pppppcVar2;
undefined1 auStack_2e8 [32];
undefined8 local_2c8;
char ****local_2c0 [2];
char ***local_2b0;
char ***local_2a8;
undefined1 local_298;
undefined7 uStack_297;
undefined8 local_288;
ulonglong local_280;
void *local_270 [3];
ulonglong local_258;
undefined4 local_248;
undefined4 local_244;
char local_240 [520];
ulonglong local_38;
local_2c8 = 0xfffffffffffffffe;
local_38 = DAT_14016f5a0 ^ (ulonglong)auStack_2e8;
memset(local_240,0,0x200);
local_248 = 0x208;
local_244 = 0x4e2f;
local_2a8 = (char ***)0xf;
local_2b0 = (char ***)0x0;
local_2c0[0] = (char ****)((ulonglong)local_2c0[0] & 0xffffffffffffff00);
plVar1 = FUN_140010200((longlong *)local_270,&DAT_140175048);
pppppcVar2 = (char *****)FUN_1400102b0((undefined8 *)&local_298,plVar1);
if (local_2c0 != pppppcVar2) {
if ((char ****)0xf < local_2a8) {
operator_delete(local_2c0[0]);
}
local_2a8 = (char ***)0xf;
local_2b0 = (char ***)0x0;
local_2c0[0] = (char ****)((ulonglong)local_2c0[0] & 0xffffffffffffff00);
if (pppppcVar2[3] < (char ****)0x10) {
memmove(local_2c0,pppppcVar2,(longlong)pppppcVar2[2] + 1);
}
else {
local_2c0[0] = *pppppcVar2;
*pppppcVar2 = (char ****)0x0;
}
local_2b0 = (char ***)pppppcVar2[2];
local_2a8 = (char ***)pppppcVar2[3];
pppppcVar2[3] = (char ****)0xf;
pppppcVar2[2] = (char ****)0x0;
*(undefined1 *)pppppcVar2 = 0;
}
if (0xf < local_280) {
operator_delete((void *)CONCAT71(uStack_297,local_298));
}
local_280 = 0xf;
local_288 = 0;
local_298 = 0;
if (0xf < local_258) {
operator_delete(local_270[0]);
}
FUN_14000c480((ulonglong *)local_2c0,"<error_message>",0xf);
FUN_14000f580((longlong *)local_2c0,(ulonglong)param_2,"type");
FUN_14000fa00((longlong *)local_2c0,param_3,"message");
FUN_14000c480((ulonglong *)local_2c0,"</error_message>",0x10);
if (local_2b0 < (char ****)0x400) {
pppppcVar2 = local_2c0;
if ((char ****)0xf < local_2a8) {
pppppcVar2 = (char *****)local_2c0[0];
}
strncpy(local_240,(char *)pppppcVar2,(size_t)local_2b0);
}
else {
printf("PWE_RESP_ERROR_MESSAGE - Msg Size Full!\n");
}
if (*(longlong *)(param_1 + 0x58) != 0) {
FUN_14003c5c0(*(longlong *)(param_1 + 0x58),&local_248);
}
if ((char ****)0xf < local_2a8) {
operator_delete(local_2c0[0]);
}
return;
}