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

61 lines
1.8 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14000dcb0 FUN_14000dcb0
* Pseudocode, not original source. */
void FUN_14000dcb0(longlong param_1,int param_2)
{
ulonglong *puVar1;
longlong lVar2;
longlong *plVar3;
longlong *plVar4;
bool bVar5;
ulonglong uVar6;
longlong *plVar7;
longlong *plVar8;
longlong *local_28;
if (*(longlong *)(param_1 + 0x58) != 0) {
uVar6 = (ulonglong)(longlong)param_2 % *(ulonglong *)(param_1 + 0x40);
local_28 = (longlong *)(*(longlong *)(param_1 + 0x38) + uVar6 * 8);
for (plVar7 = *(longlong **)(*(longlong *)(param_1 + 0x38) + uVar6 * 8);
plVar7 != (longlong *)0x0; plVar7 = (longlong *)*plVar7) {
if (param_2 == (int)plVar7[1]) {
if (plVar7 != (longlong *)0x0) goto LAB_14000dcfb;
break;
}
}
}
plVar7 = (longlong *)0x0;
local_28 = (longlong *)0x0;
LAB_14000dcfb:
if ((plVar7 != (longlong *)0x0) && (puVar1 = (ulonglong *)plVar7[2], puVar1 != (ulonglong *)0x0))
{
FUN_14003d040((int *)(param_1 + 0x78));
bVar5 = FUN_14000df80(param_1 + 8,(ulonglong)puVar1);
if (bVar5) {
FUN_14000e040((undefined8 *)(param_1 + 8),puVar1);
}
lVar2 = *plVar7;
plVar8 = local_28;
while (lVar2 == 0) {
plVar8 = plVar8 + 1;
lVar2 = *plVar8;
}
*(longlong *)(param_1 + 0x58) = *(longlong *)(param_1 + 0x58) + -1;
plVar3 = (longlong *)*local_28;
plVar4 = local_28;
while (plVar3 != plVar7) {
plVar4 = (longlong *)*plVar4;
plVar3 = (longlong *)*plVar4;
}
*plVar4 = *plVar7;
operator_delete(plVar7);
if ((local_28 == *(longlong **)(param_1 + 0x68)) && (*local_28 == 0)) {
*(longlong **)(param_1 + 0x68) = plVar8;
}
FUN_14003d0d0(param_1 + 0x78);
}
return;
}