81 lines
2.3 KiB
C
81 lines
2.3 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14020a350 FUN_14020a350
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 FUN_14020a350(int *param_1,undefined8 param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
int iVar2;
|
|
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;
|
|
int local_48 [4];
|
|
longlong local_38;
|
|
|
|
lVar5 = (longlong)*param_1;
|
|
iVar2 = *param_1 * 2 + 1;
|
|
uVar3 = FUN_14020afd0(local_48,iVar2);
|
|
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] = iVar2;
|
|
FUN_140208e50(local_48);
|
|
FUN_14020ae90(local_48,param_2);
|
|
FUN_140200e50(local_48);
|
|
uVar3 = 0;
|
|
}
|
|
return uVar3;
|
|
}
|
|
|