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

89 lines
2.8 KiB
C

/* 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;
}