/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x140010c10 FUN_140010c10 * Pseudocode, not original source. */ void FUN_140010c10(longlong *param_1,ulonglong param_2) { longlong lVar1; longlong lVar2; undefined8 *puVar3; longlong *plVar4; longlong lVar5; longlong *plVar6; undefined8 *puVar7; longlong lVar8; ulonglong uVar9; double dVar10; longlong local_50; ulonglong local_48; longlong local_38; longlong local_30; lVar8 = param_1[4]; lVar5 = param_1[1]; lVar1 = *param_1; local_50 = 0; local_48 = param_2; FUN_14000c270(&local_50); local_30 = param_1[1]; lVar2 = *param_1; *param_1 = 0; param_1[1] = local_30; param_1[4] = 0; for (puVar7 = (undefined8 *)param_1[6]; puVar7 != (undefined8 *)(lVar1 + lVar5 * 8); puVar7 = puVar7 + 1) { puVar3 = (undefined8 *)*puVar7; while (puVar3 != (undefined8 *)0x0) { plVar4 = puVar3 + 1; plVar6 = plVar4; if (0xf < (ulonglong)puVar3[4]) { plVar6 = (longlong *)*plVar4; } if (0xf < (ulonglong)puVar3[4]) { plVar4 = (longlong *)*plVar4; } uVar9 = 0; for (; plVar4 != (longlong *)(puVar3[3] + (longlong)plVar6); plVar4 = (longlong *)((longlong)plVar4 + 1)) { uVar9 = uVar9 ^ (longlong)*(char *)plVar4 + (uVar9 >> 2) + uVar9 * 0x40 + 0x9e3779b9; } *puVar7 = *puVar3; *puVar3 = *(undefined8 *)(local_50 + (uVar9 % local_48) * 8); *(undefined8 **)(local_50 + (uVar9 % local_48) * 8) = puVar3; puVar3 = (undefined8 *)*puVar7; } } param_1[4] = lVar8; lVar8 = *param_1; *param_1 = local_50; lVar5 = param_1[1]; param_1[1] = local_48; plVar4 = (longlong *)*param_1; if (param_1[4] == 0) { param_1[6] = (longlong)(plVar4 + local_48); } else { param_1[6] = (longlong)plVar4; lVar1 = *plVar4; while (lVar1 == 0) { plVar4 = plVar4 + 1; param_1[6] = (longlong)plVar4; lVar1 = *plVar4; } } dVar10 = (double)param_1[1]; if (param_1[1] < 0) { dVar10 = dVar10 + 1.8446744073709552e+19; } local_50 = lVar8; local_48 = lVar5; local_38 = lVar2; dVar10 = ceil((double)*(float *)(param_1 + 5) * dVar10); lVar5 = -1; if (dVar10 < 1.8446744073709552e+19) { lVar5 = 0; if ((9.223372036854776e+18 < dVar10) && (dVar10 = dVar10 - 9.223372036854776e+18, dVar10 < 9.223372036854776e+18)) { lVar5 = -0x8000000000000000; } lVar5 = (longlong)dVar10 + lVar5; } param_1[7] = lVar5; if (lVar2 != 0) { FUN_140010570(&local_38); lVar8 = local_50; } if (lVar8 != 0) { FUN_140010570(&local_50); } return; }