/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x140001390 FUN_140001390 * Pseudocode, not original source. */ /* WARNING: Function: __chkstk replaced with injection: alloca_probe */ undefined8 FUN_140001390(int param_1,longlong param_2,undefined8 param_3,longlong **param_4) { short sVar1; undefined4 uVar2; DWORD DVar3; _invalid_parameter_handler _Handler; undefined8 *puVar4; ulonglong uVar5; PHANDLE ProcessHeaps; LPCWSTR pWVar6; short *psVar7; HANDLE *ppvVar8; undefined8 **HeapInformation; undefined8 *local_res18; undefined8 local_res20; HANDLE local_2028; undefined1 local_2020 [8192]; undefined8 uStack_20; uStack_20 = 0x14000139e; DAT_14017ce74 = timeGetTime(); FUN_14001d810(&local_res20); uVar2 = FUN_14001d850(&local_res20); if ((char)uVar2 != '\0') { FUN_14001d8c0(); FUN_140001580(); FUN_140001060((longlong)DAT_14017c8b0); if (1 < param_1) { uVar5 = 0xffffffffffffffff; psVar7 = *(short **)(param_2 + 8); do { if (uVar5 == 0) break; uVar5 = uVar5 - 1; sVar1 = *psVar7; psVar7 = psVar7 + 1; } while (sVar1 != 0); FUN_140001710((ulonglong *)&DAT_140175020,*(short **)(param_2 + 8),~uVar5 - 1); } puVar4 = (undefined8 *)0x0; local_2028 = (HANDLE)0x0; HeapInformation = (undefined8 **)0x2000; memset(local_2020,0,0x2000); ProcessHeaps = &local_2028; DVar3 = GetProcessHeaps(0x400,ProcessHeaps); if (DVar3 != 0) { ppvVar8 = &local_2028; uVar5 = (ulonglong)DVar3; do { local_res18 = (undefined8 *)CONCAT44(local_res18._4_4_,2); param_4 = (longlong **)0x4; HeapInformation = &local_res18; ProcessHeaps = (PHANDLE)0x0; HeapSetInformation(*ppvVar8,HeapCompatibilityInformation,HeapInformation,4); ppvVar8 = ppvVar8 + 1; uVar5 = uVar5 - 1; } while (uVar5 != 0); } _Handler = _set_invalid_parameter_handler(FUN_140001340); local_res18 = operator_new(0x494a8); if (local_res18 != (undefined8 *)0x0) { puVar4 = FUN_1400022b0(local_res18,ProcessHeaps,HeapInformation,param_4); } pWVar6 = (LPCWSTR)&DAT_140175020; if (7 < DAT_140175038) { pWVar6 = DAT_140175020; } DAT_14017c8b8 = puVar4; FUN_140002400(pWVar6,ProcessHeaps,HeapInformation,param_4); FUN_140002790((longlong)DAT_14017c8b8,ProcessHeaps,HeapInformation,param_4); FUN_140002670((longlong)DAT_14017c8b8); if (DAT_14017c8b8 != (undefined8 *)0x0) { (**(code **)*DAT_14017c8b8)(DAT_14017c8b8,1); } if (DAT_14017c8b0 != (undefined8 *)0x0) { (**(code **)*DAT_14017c8b0)(DAT_14017c8b0,1); } _set_invalid_parameter_handler(_Handler); } FUN_14001d820(&local_res20); return 0; }