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

95 lines
2.7 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14003a9e0 FUN_14003a9e0
* Pseudocode, not original source. */
void FUN_14003a9e0(undefined8 *param_1)
{
ulonglong *puVar1;
ulonglong uVar2;
ulonglong *puVar3;
longlong lVar4;
void *pvVar5;
ulonglong uVar6;
ulonglong uVar7;
ulonglong uVar8;
ulonglong *puVar9;
ulonglong *puVar10;
void *local_68;
longlong lStack_60;
ulonglong *local_58;
longlong lStack_50;
if (param_1[1] != 0) {
uVar2 = param_1[3];
puVar10 = (ulonglong *)*param_1;
uVar6 = uVar2;
uVar8 = 8;
do {
uVar7 = uVar8;
uVar8 = uVar6 % uVar7;
uVar6 = uVar7;
} while (uVar8 != 0);
local_58 = (ulonglong *)param_1[1];
lStack_50 = param_1[2];
do {
puVar3 = *(ulonglong **)(lStack_50 + -0x10 + (longlong)local_58);
lVar4 = *(longlong *)(lStack_50 + -8 + (longlong)local_58);
puVar1 = (ulonglong *)(lStack_50 + -0x10 + (longlong)local_58);
if (local_58 != puVar1) {
puVar9 = local_58 + 0x12;
do {
if (puVar9 + -0x12 == puVar10) {
puVar10 = (ulonglong *)*puVar10;
}
else {
if ((void *)puVar9[9] != (void *)0x0) {
operator_delete((void *)puVar9[9]);
}
puVar9[9] = 0;
puVar9[10] = 0;
puVar9[0xb] = 0;
if (7 < *puVar9) {
operator_delete((void *)puVar9[-3]);
}
*puVar9 = 7;
puVar9[-1] = 0;
*(undefined2 *)(puVar9 + -3) = 0;
if (7 < puVar9[-5]) {
operator_delete((void *)puVar9[-8]);
}
puVar9[-5] = 7;
puVar9[-6] = 0;
*(undefined2 *)(puVar9 + -8) = 0;
if (7 < puVar9[-10]) {
operator_delete((void *)puVar9[-0xd]);
}
puVar9[-10] = 7;
puVar9[-0xb] = 0;
*(undefined2 *)(puVar9 + -0xd) = 0;
}
puVar9 = puVar9 + uVar2 / uVar7;
} while (puVar9 + -0x12 != puVar1);
}
operator_delete__(local_58);
local_58 = puVar3;
lStack_50 = lVar4;
} while (puVar3 != (ulonglong *)0x0);
param_1[1] = 0;
}
lStack_60 = param_1[2];
local_68 = (void *)param_1[1];
if ((void *)param_1[1] != (void *)0x0) {
do {
pvVar5 = *(void **)(lStack_60 + -0x10 + (longlong)local_68);
lStack_60 = *(longlong *)(lStack_60 + -8 + (longlong)local_68);
operator_delete__(local_68);
local_68 = pvVar5;
} while (pvVar5 != (void *)0x0);
param_1[1] = 0;
*param_1 = 0;
param_1[4] = param_1[5];
}
return;
}