/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14005c570 FUN_14005c570 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_14005c570(undefined8 param_1,longlong param_2,SIZE_T param_3,undefined8 param_4) { uint uVar1; int *piVar2; longlong lVar3; undefined8 uVar4; undefined8 *puVar5; SIZE_T SVar6; longlong **pplVar7; undefined1 auStack_d78 [32]; int local_d58 [2]; longlong local_d50; longlong local_d48; undefined4 local_d40; int local_d3c; longlong *local_d30; undefined1 uStack_d28; undefined3 uStack_d27; undefined4 uStack_d24; int *local_d20; undefined1 local_d18; undefined8 local_d10; exception local_d08 [80]; longlong local_cb8; undefined8 uStack_cb0; longlong *local_38; undefined4 local_30; int local_2c; ulonglong local_28; local_d10 = 0xfffffffffffffffe; local_28 = DAT_14016f5a0 ^ (ulonglong)auStack_d78; lVar3 = param_2; SVar6 = param_3; FUN_140074fb0(local_d58); FUN_140074a40((longlong)local_d58,lVar3,SVar6,param_4); FUN_140075110(local_d58,0x800,SVar6,param_4); uVar4 = 0; FUN_140075110(local_d58,0,SVar6,param_4); FUN_140029d80((longlong)local_d58,CONCAT71((int7)((ulonglong)uVar4 >> 8),9),SVar6,param_4); uVar1 = *(uint *)(param_3 + 0x18); FUN_140076380((longlong)local_d58,(longlong)(int)uVar1,SVar6,param_4); if (*(int *)(param_3 + 0x18) == 0) { puVar5 = (undefined8 *)0x0; } else { puVar5 = *(undefined8 **)(param_3 + 0x10); } if (uVar1 == 0) goto LAB_14005c660; local_d58[1] = 0; if (local_d50 == 0) { if (local_d48 == 0) { /* WARNING: Subroutine does not return */ FUN_14008a420(0,puVar5,SVar6,param_4); } LAB_14005c632: SVar6 = (SIZE_T)uVar1; FUN_140029f40(&local_d48,puVar5,SVar6,param_4); } else { if (local_d48 != 0) goto LAB_14005c632; if (local_d50 == 0) { /* WARNING: Subroutine does not return */ FUN_14008a420(0,puVar5,SVar6,param_4); } SVar6 = (SIZE_T)uVar1; FUN_14002a110(local_d50,puVar5,SVar6); } FUN_14002a180((longlong)local_d58,puVar5,SVar6,param_4); LAB_14005c660: piVar2 = (int *)(**(code **)(*(longlong *)(param_2 + 0x108) + 0x10))(); local_d20 = piVar2; FUN_14003d040(piVar2); local_d18 = 1; local_2c = 200; local_30 = 0; local_38 = &local_cb8; if (local_d50 == 0) { if (local_d48 == 0) { /* WARNING: Subroutine does not return */ FUN_14008a420(0,0,SVar6,param_4); } } else { local_d40 = *(undefined4 *)(local_d50 + 0x18); } local_cb8 = local_d48; if (local_d48 == 0) { if (local_d50 == 0) { /* WARNING: Subroutine does not return */ FUN_14008a420(0,0,SVar6,param_4); } if (*(int *)(local_d50 + 0x18) != 0) { local_cb8 = *(longlong *)(local_d50 + 0x10); } } local_30 = 1; uStack_cb0 = CONCAT44(uStack_d24,local_d40); local_d30 = (longlong *)0x0; _uStack_d28 = CONCAT31((int3)((uint)local_d40 >> 8),1); pplVar7 = &local_d30; FUN_140091090(*(char **)(param_2 + 0x748),(longlong)&local_cb8,(SIZE_T *)pplVar7,param_4); if (local_38 == (longlong *)0x0) { FUN_14003db10(local_d08,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,pplVar7, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_d08,(ThrowInfo *)&DAT_14016c210); } if (local_2c < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } FUN_14003d0d0((longlong)piVar2); local_d30 = &local_d50; FUN_14008a320(&local_d50); if ((local_d48 != 0) && (local_d3c < 0)) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } return; }