77 lines
2 KiB
C
77 lines
2 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x14000ab30 FUN_14000ab30
|
|
* Pseudocode, not original source. */
|
|
|
|
longlong * FUN_14000ab30(short *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
longlong *plVar1;
|
|
void *pvVar2;
|
|
longlong *plVar3;
|
|
uint uVar4;
|
|
int iVar5;
|
|
undefined *puVar6;
|
|
longlong **pplVar7;
|
|
longlong lVar8;
|
|
short *psVar9;
|
|
longlong *local_res18 [2];
|
|
undefined8 uVar10;
|
|
short local_30 [4];
|
|
longlong local_28;
|
|
|
|
uVar10 = 0xfffffffffffffffe;
|
|
psVar9 = (short *)0x0;
|
|
FUN_140074970(param_1,param_2,param_3,param_4);
|
|
local_res18[0] = (longlong *)0x0;
|
|
if (*param_1 == 8) {
|
|
lVar8 = *(longlong *)(param_1 + 4);
|
|
pplVar7 = local_res18;
|
|
FUN_14000aa30((longlong *)pplVar7,lVar8);
|
|
local_28 = lVar8;
|
|
}
|
|
else {
|
|
Ordinal_8(local_30);
|
|
param_4 = 8;
|
|
if ((local_30 != param_1) || (local_30[0] != 8)) {
|
|
param_3 = 0;
|
|
uVar4 = Ordinal_12(local_30,param_1,0,8,uVar10);
|
|
if ((int)uVar4 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_140048d70((ulonglong)uVar4);
|
|
}
|
|
}
|
|
FUN_14000aa30((longlong *)local_res18,local_28);
|
|
pplVar7 = (longlong **)local_30;
|
|
Ordinal_9();
|
|
}
|
|
plVar1 = local_res18[0];
|
|
if (local_res18[0] != (longlong *)0x0) {
|
|
psVar9 = (short *)*local_res18[0];
|
|
}
|
|
FUN_14003e7c0(pplVar7,local_28,param_3,param_4);
|
|
*param_2 = (longlong)PTR_DAT_14016f010;
|
|
iVar5 = FUN_14003e620(psVar9);
|
|
puVar6 = FUN_140001ee0(param_2,iVar5);
|
|
FUN_14003e650(puVar6,psVar9,iVar5);
|
|
FUN_140001fc0(param_2);
|
|
plVar3 = local_res18[0];
|
|
if (plVar1 != (longlong *)0x0) {
|
|
LOCK();
|
|
plVar1 = plVar1 + 2;
|
|
lVar8 = *plVar1;
|
|
*(int *)plVar1 = (int)*plVar1 + -1;
|
|
UNLOCK();
|
|
if ((int)lVar8 == 1) {
|
|
if (*local_res18[0] != 0) {
|
|
Ordinal_6();
|
|
}
|
|
pvVar2 = (void *)plVar3[1];
|
|
if (pvVar2 != (void *)0x0) {
|
|
operator_delete__(pvVar2);
|
|
}
|
|
operator_delete(plVar3);
|
|
}
|
|
}
|
|
return param_2;
|
|
}
|
|
|