89 lines
2.8 KiB
C
89 lines
2.8 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* 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,uint *param_4)
|
|
|
|
{
|
|
short sVar1;
|
|
undefined4 uVar2;
|
|
DWORD DVar3;
|
|
_invalid_parameter_handler _Handler;
|
|
undefined8 *puVar4;
|
|
ulonglong uVar5;
|
|
undefined8 **ProcessHeaps;
|
|
LPCWSTR pWVar6;
|
|
short *psVar7;
|
|
undefined8 **ppuVar8;
|
|
undefined8 **HeapInformation;
|
|
undefined8 *local_res18;
|
|
undefined8 local_res20;
|
|
undefined8 *local_2028;
|
|
undefined1 local_2020 [8192];
|
|
undefined8 uStack_20;
|
|
|
|
uStack_20 = 0x14000139e;
|
|
DAT_140162cc0 = timeGetTime();
|
|
FUN_140010070(&local_res20);
|
|
uVar2 = FUN_1400100b0(&local_res20);
|
|
if ((char)uVar2 != '\0') {
|
|
FUN_140010120();
|
|
FUN_140001550();
|
|
FUN_140001060((longlong)DAT_1401626f0);
|
|
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_1400016e0((ulonglong *)&DAT_14015b048,*(short **)(param_2 + 8),~uVar5 - 1);
|
|
}
|
|
puVar4 = (undefined8 *)0x0;
|
|
local_2028 = (undefined8 *)0x0;
|
|
HeapInformation = (undefined8 **)0x2000;
|
|
memset(local_2020,0,0x2000);
|
|
ProcessHeaps = &local_2028;
|
|
DVar3 = GetProcessHeaps(0x400,ProcessHeaps);
|
|
if (DVar3 != 0) {
|
|
ppuVar8 = &local_2028;
|
|
uVar5 = (ulonglong)DVar3;
|
|
do {
|
|
local_res18 = (undefined8 *)CONCAT44(local_res18._4_4_,2);
|
|
param_4 = (uint *)0x4;
|
|
HeapInformation = &local_res18;
|
|
ProcessHeaps = (undefined8 **)0x0;
|
|
HeapSetInformation(*ppuVar8,HeapCompatibilityInformation,HeapInformation,4);
|
|
ppuVar8 = ppuVar8 + 1;
|
|
uVar5 = uVar5 - 1;
|
|
} while (uVar5 != 0);
|
|
}
|
|
_Handler = _set_invalid_parameter_handler(FUN_140001340);
|
|
local_res18 = operator_new(0xb0);
|
|
if (local_res18 != (undefined8 *)0x0) {
|
|
puVar4 = FUN_140003360(local_res18,ProcessHeaps,HeapInformation,param_4);
|
|
}
|
|
pWVar6 = (LPCWSTR)&DAT_14015b048;
|
|
if (7 < DAT_14015b060) {
|
|
pWVar6 = DAT_14015b048;
|
|
}
|
|
DAT_1401626f8 = puVar4;
|
|
FUN_1400034a0(pWVar6,ProcessHeaps,HeapInformation,param_4);
|
|
FUN_1400037a0((longlong)DAT_1401626f8,ProcessHeaps,HeapInformation,param_4);
|
|
FUN_1400036c0((longlong)DAT_1401626f8);
|
|
if (DAT_1401626f8 != (undefined8 *)0x0) {
|
|
(**(code **)*DAT_1401626f8)(DAT_1401626f8,1);
|
|
}
|
|
if (DAT_1401626f0 != (undefined8 *)0x0) {
|
|
(**(code **)*DAT_1401626f0)(DAT_1401626f0,1);
|
|
}
|
|
_set_invalid_parameter_handler(_Handler);
|
|
}
|
|
FUN_140010080(&local_res20);
|
|
return 0;
|
|
}
|
|
|