/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14001b510 FUN_14001b510 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_14001b510(longlong param_1,ulonglong param_2,uint param_3,uint param_4) { longlong *plVar1; char *****pppppcVar2; undefined1 auStack_2f8 [32]; undefined8 local_2d8; char ****local_2d0 [2]; char ***local_2c0; char ***local_2b8; undefined1 local_2a8; undefined7 uStack_2a7; undefined8 local_298; ulonglong local_290; void *local_280 [3]; ulonglong local_268; undefined4 local_258; undefined4 local_254; char local_250 [520]; ulonglong local_48; local_2d8 = 0xfffffffffffffffe; local_48 = DAT_14016f5a0 ^ (ulonglong)auStack_2f8; memset(local_250,0,0x200); local_258 = 0x208; local_254 = 0x4e2b; local_2b8 = (char ***)0xf; local_2c0 = (char ***)0x0; local_2d0[0] = (char ****)((ulonglong)local_2d0[0] & 0xffffffffffffff00); plVar1 = FUN_140010200((longlong *)local_280,&DAT_140175048); pppppcVar2 = (char *****)FUN_1400102b0((undefined8 *)&local_2a8,plVar1); if (local_2d0 != pppppcVar2) { if ((char ****)0xf < local_2b8) { operator_delete(local_2d0[0]); } local_2b8 = (char ***)0xf; local_2c0 = (char ***)0x0; local_2d0[0] = (char ****)((ulonglong)local_2d0[0] & 0xffffffffffffff00); if (pppppcVar2[3] < (char ****)0x10) { memmove(local_2d0,pppppcVar2,(longlong)pppppcVar2[2] + 1); } else { local_2d0[0] = *pppppcVar2; *pppppcVar2 = (char ****)0x0; } local_2c0 = (char ***)pppppcVar2[2]; local_2b8 = (char ***)pppppcVar2[3]; pppppcVar2[3] = (char ****)0xf; pppppcVar2[2] = (char ****)0x0; *(undefined1 *)pppppcVar2 = 0; } if (0xf < local_290) { operator_delete((void *)CONCAT71(uStack_2a7,local_2a8)); } local_290 = 0xf; local_298 = 0; local_2a8 = 0; if (0xf < local_268) { operator_delete(local_280[0]); } FUN_14000c480((ulonglong *)local_2d0,"",0x11); FUN_14000f580((longlong *)local_2d0,param_2 & 0xff,"succeed"); FUN_14000f580((longlong *)local_2d0,(ulonglong)param_4,"message"); FUN_14000f580((longlong *)local_2d0,(ulonglong)param_3,"code"); FUN_14000c480((ulonglong *)local_2d0,"",0x12); if (local_2c0 < (char ****)0x400) { pppppcVar2 = local_2d0; if ((char ****)0xf < local_2b8) { pppppcVar2 = (char *****)local_2d0[0]; } strncpy(local_250,(char *)pppppcVar2,(size_t)local_2c0); if (*(longlong *)(param_1 + 0x58) != 0) { FUN_14003c5c0(*(longlong *)(param_1 + 0x58),&local_258); } } else { printf("PWE_RESP_SERVER_MESSAGE_CODE - Msg Size Full!\n"); } if ((char ****)0xf < local_2b8) { operator_delete(local_2d0[0]); } return; }