server-re/decomp/Agent_Release_x64/full/functions/0x1400ce3f0.c
2026-10-14 16:45:19 -04:00

81 lines
2.4 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x1400ce3f0 FUN_1400ce3f0
* Pseudocode, not original source. */
undefined8 FUN_1400ce3f0(int *param_1,undefined8 *param_2)
{
uint uVar1;
uint uVar2;
undefined8 uVar3;
int iVar4;
longlong lVar5;
longlong lVar6;
longlong lVar7;
longlong lVar8;
uint *puVar9;
uint *puVar10;
ulonglong uVar11;
ulonglong uVar12;
longlong lVar13;
int iVar14;
longlong lVar15;
uint local_48 [4];
longlong local_38;
lVar5 = (longlong)*param_1;
uVar2 = *param_1 * 2 + 1;
uVar3 = FUN_1400cf070(local_48,uVar2);
if ((int)uVar3 == 0) {
if (0 < lVar5) {
lVar6 = 0;
lVar8 = 1;
iVar14 = 1;
lVar7 = lVar6;
lVar15 = lVar5;
do {
uVar11 = (ulonglong)*(uint *)(lVar7 + *(longlong *)(param_1 + 4)) *
(ulonglong)*(uint *)(lVar7 + *(longlong *)(param_1 + 4)) +
(ulonglong)*(uint *)(local_38 + lVar6);
uVar12 = uVar11 >> 0x1c;
*(uint *)(local_38 + lVar6) = (uint)uVar11 & 0xfffffff;
uVar1 = *(uint *)(lVar7 + *(longlong *)(param_1 + 4));
puVar10 = (uint *)(local_38 + (longlong)iVar14 * 4);
if (lVar8 < lVar5) {
puVar9 = puVar10;
lVar13 = lVar8;
do {
lVar13 = lVar13 + 1;
puVar10 = puVar9 + 1;
uVar11 = (ulonglong)*puVar9 +
(ulonglong)*(uint *)(*(longlong *)(param_1 + 4) + -4 + lVar13 * 4) *
(ulonglong)uVar1 * 2 + (uVar12 & 0xffffffff);
uVar12 = uVar11 >> 0x1c & 0xffffffff;
*puVar9 = (uint)uVar11 & 0xfffffff;
puVar9 = puVar10;
} while (lVar13 < lVar5);
}
iVar4 = (int)uVar12;
while (iVar4 != 0) {
uVar11 = (ulonglong)*puVar10 + (uVar12 & 0xffffffff);
uVar12 = uVar11 >> 0x1c;
*puVar10 = (uint)uVar11 & 0xfffffff;
puVar10 = puVar10 + 1;
iVar4 = (int)uVar12;
}
iVar14 = iVar14 + 2;
lVar6 = lVar6 + 8;
lVar7 = lVar7 + 4;
lVar8 = lVar8 + 1;
lVar15 = lVar15 + -1;
} while (lVar15 != 0);
}
local_48[0] = uVar2;
FUN_1400ccef0((int *)local_48);
FUN_1400cef30((undefined8 *)local_48,param_2);
FUN_1400c6dd0((int *)local_48);
uVar3 = 0;
}
return uVar3;
}