server-re/decomp/DBCServer_Release_x64/full/functions/0x14015a1c0.c

58 lines
1.5 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14015a1c0 FUN_14015a1c0
* Pseudocode, not original source. */
void FUN_14015a1c0(undefined8 *param_1)
{
undefined8 *puVar1;
undefined8 *puVar2;
undefined8 *puVar3;
longlong lVar4;
ulonglong *puVar5;
longlong lVar6;
undefined8 *puVar7;
puVar7 = (undefined8 *)*param_1;
puVar1 = puVar7 + param_1[1];
for (; puVar7 != puVar1; puVar7 = puVar7 + 1) {
puVar2 = (undefined8 *)*puVar7;
*puVar7 = 0;
while (puVar2 != (undefined8 *)0x0) {
puVar3 = (undefined8 *)*puVar2;
lVar6 = puVar2[2];
if (lVar6 != 0) {
lVar4 = puVar2[3];
if (lVar6 != lVar4) {
puVar5 = (ulonglong *)(lVar6 + 0x48);
do {
if (7 < *puVar5) {
operator_delete((void *)puVar5[-3]);
}
*puVar5 = 7;
puVar5[-1] = 0;
*(undefined2 *)(puVar5 + -3) = 0;
if (7 < puVar5[-5]) {
operator_delete((void *)puVar5[-8]);
}
puVar5[-5] = 7;
puVar5[-6] = 0;
lVar6 = lVar6 + 0x58;
*(undefined2 *)(puVar5 + -8) = 0;
puVar5 = puVar5 + 0xb;
} while (lVar6 != lVar4);
}
operator_delete((void *)puVar2[2]);
}
puVar2[2] = 0;
puVar2[3] = 0;
puVar2[4] = 0;
operator_delete(puVar2);
puVar2 = puVar3;
}
}
operator_delete((void *)*param_1);
*param_1 = 0;
return;
}