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

76 lines
2.6 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400a97e0 FUN_1400a97e0
* Pseudocode, not original source. */
undefined8
FUN_1400a97e0(longlong param_1,undefined8 param_2,undefined8 param_3,uint *param_4,longlong param_5,
longlong param_6)
{
int *piVar1;
longlong *plVar2;
undefined8 *puVar3;
undefined8 *puVar4;
undefined8 uVar5;
undefined8 *puVar6;
undefined8 *puVar7;
longlong *local_res8;
piVar1 = (int *)(**(code **)(**(longlong **)(param_1 + 0x20) + 0x58))();
FUN_14003d040(piVar1);
plVar2 = FUN_1400a7920(*(longlong **)(param_1 + 0x20),(longlong *)&local_res8,*param_4);
puVar7 = (undefined8 *)0x0;
puVar6 = puVar7;
if ((undefined8 *)*plVar2 != (undefined8 *)0x0) {
puVar6 = *(undefined8 **)*plVar2;
}
if ((local_res8 != (longlong *)0x0) && (local_res8[1] = local_res8[1] + -1, local_res8[1] == 0)) {
puVar4 = (undefined8 *)*local_res8;
if (puVar4 != (undefined8 *)0x0) {
(**(code **)*puVar4)(puVar4,1);
}
FUN_14003e8b0(local_res8);
}
if ((((puVar6 != (undefined8 *)0x0) && (*(char *)((longlong)puVar6 + 0x684) == '\0')) &&
((longlong *)puVar6[5] != (longlong *)0x0)) && (*(longlong *)puVar6[5] != 0)) {
*(undefined4 *)(puVar6 + 0xaf) = *(undefined4 *)(param_6 + 8);
*(undefined2 *)((longlong)puVar6 + 0x57c) = *(undefined2 *)(param_6 + 0xc);
*(undefined4 *)(puVar6 + 0xb1) = *(undefined4 *)(param_5 + 8);
*(undefined2 *)((longlong)puVar6 + 0x58c) = *(undefined2 *)(param_5 + 0xc);
plVar2 = (longlong *)puVar6[5];
puVar4 = puVar7;
if (plVar2 != (longlong *)0x0) {
puVar4 = (undefined8 *)*plVar2;
}
if (puVar4[2] != 0) {
puVar4 = puVar7;
if (plVar2 != (longlong *)0x0) {
puVar4 = (undefined8 *)*plVar2;
}
if (*(int *)(puVar4[2] + 8) == 1) goto LAB_1400a9981;
}
puVar4 = puVar7;
if (plVar2 != (longlong *)0x0) {
puVar4 = (undefined8 *)*plVar2;
}
puVar3 = (undefined8 *)puVar4[2];
if (puVar3 != (undefined8 *)0x0) {
(**(code **)*puVar3)(puVar3,1);
}
puVar4[2] = 0;
puVar3 = operator_new(0x38);
puVar4 = puVar7;
if (puVar3 != (undefined8 *)0x0) {
puVar4 = FUN_14009b9f0(puVar3);
}
*(undefined2 *)((longlong)puVar4 + 0x34) = *(undefined2 *)(param_6 + 0xc);
if ((undefined8 *)puVar6[5] != (undefined8 *)0x0) {
puVar7 = *(undefined8 **)puVar6[5];
}
puVar7[2] = puVar4;
}
LAB_1400a9981:
uVar5 = FUN_14003d0d0((longlong)piVar1);
return CONCAT71((int7)((ulonglong)uVar5 >> 8),1);
}