/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14015e860 FUN_14015e860 * Pseudocode, not original source. */ void FUN_14015e860(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; }