/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14015aa10 FUN_14015aa10 * Pseudocode, not original source. */ void FUN_14015aa10(longlong *param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4) { byte bVar1; longlong lVar2; longlong lVar3; undefined8 *puVar4; longlong *plVar5; longlong lVar6; longlong lVar7; undefined8 *puVar8; double dVar9; longlong local_40; ulonglong local_38; longlong local_28; longlong local_20; lVar7 = param_1[4]; lVar6 = param_1[1]; lVar2 = *param_1; local_40 = 0; local_38 = param_2; FUN_1400a59f0(&local_40,param_2,lVar6,param_4,0xfffffffffffffffe); local_20 = param_1[1]; lVar3 = *param_1; *param_1 = 0; param_1[1] = local_20; param_1[4] = 0; for (puVar8 = (undefined8 *)param_1[6]; puVar8 != (undefined8 *)(lVar2 + lVar6 * 8); puVar8 = puVar8 + 1) { puVar4 = (undefined8 *)*puVar8; while (puVar4 != (undefined8 *)0x0) { bVar1 = *(byte *)(puVar4 + 1); *puVar8 = *puVar4; *puVar4 = *(undefined8 *)(local_40 + ((ulonglong)bVar1 % local_38) * 8); *(undefined8 **)(local_40 + ((ulonglong)bVar1 % local_38) * 8) = puVar4; puVar4 = (undefined8 *)*puVar8; } } param_1[4] = lVar7; lVar7 = *param_1; *param_1 = local_40; lVar6 = param_1[1]; param_1[1] = local_38; plVar5 = (longlong *)*param_1; if (param_1[4] == 0) { param_1[6] = (longlong)(plVar5 + local_38); } else { param_1[6] = (longlong)plVar5; lVar2 = *plVar5; while (lVar2 == 0) { plVar5 = plVar5 + 1; param_1[6] = (longlong)plVar5; lVar2 = *plVar5; } } dVar9 = (double)param_1[1]; if (param_1[1] < 0) { dVar9 = dVar9 + 1.8446744073709552e+19; } local_40 = lVar7; local_38 = lVar6; local_28 = lVar3; dVar9 = ceil((double)*(float *)(param_1 + 5) * dVar9); lVar6 = -1; if (dVar9 < 1.8446744073709552e+19) { lVar6 = 0; if ((9.223372036854776e+18 < dVar9) && (dVar9 = dVar9 - 9.223372036854776e+18, dVar9 < 9.223372036854776e+18)) { lVar6 = -0x8000000000000000; } lVar6 = (longlong)dVar9 + lVar6; } param_1[7] = lVar6; if (lVar3 != 0) { FUN_14015a1c0(&local_28); lVar7 = local_40; } if (lVar7 != 0) { FUN_14015a1c0(&local_40); } return; }