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

90 lines
2.8 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14001b980 FUN_14001b980
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_14001b980(longlong param_1,LPCWSTR param_2,LPCWSTR 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 = 0x4e2d;
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,"<mail-alarm>",0xc);
FUN_14000fa00((longlong *)local_2d0,param_2,"fromname");
FUN_14000fa00((longlong *)local_2d0,param_3,"toname");
FUN_14000f580((longlong *)local_2d0,(ulonglong)param_4,"gold");
FUN_14000c480((ulonglong *)local_2d0,"</mail-alarm>",0xd);
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_ALL_RESP_NOTIFY_MAIL_ALARM - Msg Size Full!\n");
}
if ((char ****)0xf < local_2b8) {
operator_delete(local_2d0[0]);
}
return;
}