/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14001a9f0 FUN_14001a9f0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_14001a9f0(longlong param_1,int param_2,int param_3,char param_4,LPCWSTR param_5) { int *piVar1; longlong *plVar2; char *****pppppcVar3; longlong lVar4; char *pcVar5; ulonglong uVar6; undefined1 auStack_328 [32]; LPCWSTR local_308; undefined8 local_2f8; int *local_2f0; undefined1 local_2e8; char ****local_2e0 [2]; char ***local_2d0; char ***local_2c8; undefined1 local_2b8; undefined7 uStack_2b7; undefined8 local_2a8; ulonglong local_2a0; void *local_290 [3]; ulonglong local_278; undefined4 local_268; int local_264; char local_260 [520]; ulonglong local_58; local_2f8 = 0xfffffffffffffffe; local_58 = DAT_14016f5a0 ^ (ulonglong)auStack_328; if (*(char *)(DAT_14017cf28 + 0x165) != '\0') { local_308 = param_5; wprintf( L"sendPWE_RESP_RESULT_CODE : CLIENT [ %d ] RESULTCODE [ %d ] SUCCEED [ %d ] NAME [ %s ] \n" ); } memset(local_260,0,0x200); local_268 = 0x208; local_2c8 = (char ***)0xf; local_2d0 = (char ***)0x0; local_2e0[0] = (char ****)((ulonglong)local_2e0[0] & 0xffffffffffffff00); local_264 = param_3; plVar2 = FUN_140010200((longlong *)local_290,&DAT_140175048); pppppcVar3 = (char *****)FUN_1400102b0((undefined8 *)&local_2b8,plVar2); if (local_2e0 != pppppcVar3) { if ((char ****)0xf < local_2c8) { operator_delete(local_2e0[0]); } local_2c8 = (char ***)0xf; local_2d0 = (char ***)0x0; local_2e0[0] = (char ****)((ulonglong)local_2e0[0] & 0xffffffffffffff00); if (pppppcVar3[3] < (char ****)0x10) { memmove(local_2e0,pppppcVar3,(longlong)pppppcVar3[2] + 1); } else { local_2e0[0] = *pppppcVar3; *pppppcVar3 = (char ****)0x0; } local_2d0 = (char ***)pppppcVar3[2]; local_2c8 = (char ***)pppppcVar3[3]; pppppcVar3[3] = (char ****)0xf; pppppcVar3[2] = (char ****)0x0; *(undefined1 *)pppppcVar3 = 0; } if (0xf < local_2a0) { operator_delete((void *)CONCAT71(uStack_2b7,local_2b8)); } local_2a0 = 0xf; local_2a8 = 0; local_2b8 = 0; if (0xf < local_278) { operator_delete(local_290[0]); } if (param_3 == 0) { uVar6 = 0x13; pcVar5 = ""; LAB_14001abaa: FUN_14000c480((ulonglong *)local_2e0,pcVar5,uVar6); } else { if (param_3 == 1) { uVar6 = 0x12; pcVar5 = ""; goto LAB_14001abaa; } if (param_3 == 2) { uVar6 = 0x17; pcVar5 = ""; goto LAB_14001abaa; } if (param_3 == 3) { uVar6 = 0x14; pcVar5 = ""; goto LAB_14001abaa; } } pcVar5 = "succeed"; if (param_4 == '\0') { pcVar5 = "failed"; } FUN_14000f7e0((longlong *)local_2e0,pcVar5,"succeed"); FUN_14000fa00((longlong *)local_2e0,param_5,"charid"); if (param_3 == 0) { uVar6 = 0x14; pcVar5 = ""; } else if (param_3 == 1) { uVar6 = 0x13; pcVar5 = ""; } else if (param_3 == 2) { uVar6 = 0x18; pcVar5 = ""; } else { if (param_3 != 3) goto LAB_14001ac3e; uVar6 = 0x15; pcVar5 = ""; } FUN_14000c480((ulonglong *)local_2e0,pcVar5,uVar6); LAB_14001ac3e: if (local_2d0 < (char ****)0x400) { pppppcVar3 = local_2e0; if ((char ****)0xf < local_2c8) { pppppcVar3 = (char *****)local_2e0[0]; } strncpy(local_260,(char *)pppppcVar3,(size_t)local_2d0); } else { printf("PWE_RESP_RESULT_CODE - Msg Size Full!\n"); } lVar4 = *(longlong *)(param_1 + 0x58); if (lVar4 != 0) { piVar1 = (int *)(lVar4 + 0x70); local_2f0 = piVar1; FUN_14003d040(piVar1); local_2e8 = 1; lVar4 = FUN_14003c450(lVar4,param_2); if (lVar4 != 0) { Ordinal_19(*(undefined8 *)(lVar4 + 8),&local_268,0x208,0); } FUN_14003d0d0((longlong)piVar1); } if ((char ****)0xf < local_2c8) { operator_delete(local_2e0[0]); } return; }