95 lines
2.4 KiB
C
95 lines
2.4 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x14004f2f0 FUN_14004f2f0
|
|
* Pseudocode, not original source. */
|
|
|
|
ulonglong * FUN_14004f2f0(ulonglong *param_1,undefined8 param_2,undefined8 param_3,longlong param_4)
|
|
|
|
{
|
|
longlong *plVar1;
|
|
int iVar2;
|
|
undefined1 *puVar3;
|
|
int *piVar4;
|
|
ulonglong uVar5;
|
|
int **ppiVar6;
|
|
undefined1 uVar7;
|
|
undefined7 uVar8;
|
|
bool bVar9;
|
|
int *local_res10;
|
|
|
|
uVar7 = (undefined1)param_3;
|
|
uVar8 = (undefined7)((ulonglong)param_3 >> 8);
|
|
LOCK();
|
|
bVar9 = DAT_14015e000 == 0;
|
|
if (bVar9) {
|
|
DAT_14015e000 = 1;
|
|
}
|
|
UNLOCK();
|
|
if (bVar9) {
|
|
puVar3 = operator_new(0xc0);
|
|
if (puVar3 == (undefined1 *)0x0) {
|
|
puVar3 = (undefined1 *)0x0;
|
|
}
|
|
else {
|
|
puVar3 = FUN_140090a40(puVar3,param_2,CONCAT71(uVar8,uVar7),param_4);
|
|
}
|
|
if (puVar3 == (undefined1 *)0x0) {
|
|
piVar4 = (int *)0x0;
|
|
local_res10 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar4 = (int *)FUN_140030280(0x48);
|
|
if (piVar4 != (int *)0x0) {
|
|
local_res10 = piVar4;
|
|
uVar5 = FUN_14002e790();
|
|
uVar7 = 1;
|
|
FUN_14002e600(piVar4,uVar5 & 0xffffffff,CONCAT71(uVar8,1),param_4);
|
|
}
|
|
local_res10 = piVar4;
|
|
FUN_14002e6e0(piVar4);
|
|
piVar4[0x10] = 1;
|
|
piVar4[0x11] = 0;
|
|
*(undefined1 **)(piVar4 + 0xe) = puVar3;
|
|
FUN_14002e770((longlong)piVar4);
|
|
}
|
|
ppiVar6 = &local_res10;
|
|
FUN_140043dd0(&DAT_14015e008,(ulonglong *)ppiVar6,CONCAT71(uVar8,uVar7),param_4);
|
|
if (piVar4 != (int *)0x0) {
|
|
FUN_14002e6e0(piVar4);
|
|
plVar1 = (longlong *)(piVar4 + 0x10);
|
|
*plVar1 = *plVar1 + -1;
|
|
if (*plVar1 == 0) {
|
|
FUN_14002e770((longlong)piVar4);
|
|
FUN_1400410e0(piVar4,ppiVar6,CONCAT71(uVar8,uVar7),param_4);
|
|
}
|
|
else {
|
|
FUN_14002e770((longlong)piVar4);
|
|
}
|
|
}
|
|
LOCK();
|
|
UNLOCK();
|
|
DAT_14015e000 = 2;
|
|
}
|
|
else {
|
|
LOCK();
|
|
iVar2 = DAT_14015e000;
|
|
if (DAT_14015e000 == 9999) {
|
|
DAT_14015e000 = 999;
|
|
iVar2 = 9999;
|
|
}
|
|
UNLOCK();
|
|
while (iVar2 != 2) {
|
|
Sleep(5);
|
|
LOCK();
|
|
iVar2 = DAT_14015e000;
|
|
if (DAT_14015e000 == 9999) {
|
|
DAT_14015e000 = 999;
|
|
iVar2 = 9999;
|
|
}
|
|
UNLOCK();
|
|
}
|
|
}
|
|
*param_1 = 0;
|
|
FUN_140043dd0(param_1,&DAT_14015e008,CONCAT71(uVar8,uVar7),param_4);
|
|
return param_1;
|
|
}
|
|
|