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

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