server-re/decomp/DBCServer_Release_x64/full/functions/0x1401c8f90.c

61 lines
1.8 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401c8f90 FUN_1401c8f90
* Pseudocode, not original source. */
void FUN_1401c8f90(longlong param_1,longlong param_2)
{
undefined4 uVar1;
undefined4 uVar2;
int iVar3;
longlong lVar4;
longlong lVar5;
int iVar6;
longlong lVar7;
longlong lVar8;
int iVar9;
longlong lVar10;
longlong lVar11;
FUN_14016add0(param_2,0);
iVar3 = *(int *)(param_1 + 0x18);
iVar9 = 0;
lVar10 = 0;
if (0 < iVar3) {
lVar11 = 0;
do {
if ((lVar10 < 0) || (iVar3 <= iVar9)) {
/* WARNING: Subroutine does not return */
FUN_14016d6e0();
}
iVar3 = *(int *)(param_2 + 0x18);
uVar1 = *(undefined4 *)(lVar11 + 8 + *(longlong *)(param_1 + 0x10));
uVar2 = *(undefined4 *)(*(longlong *)(lVar11 + *(longlong *)(param_1 + 0x10)) + 0x56c);
if (iVar3 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
iVar6 = *(int *)(param_2 + 0x18);
FUN_14016add0(param_2,iVar6 + 1);
iVar6 = iVar6 - iVar3;
if ((0 < iVar6) && (iVar6 = iVar6 + -1, lVar8 = (longlong)iVar6, -1 < iVar6)) {
lVar7 = (lVar8 + iVar3) * 8 + 8;
do {
lVar4 = FUN_14016ab80(param_2);
lVar5 = FUN_14016ab80(param_2);
*(undefined8 *)(lVar5 + lVar7) = *(undefined8 *)(lVar4 + -8 + lVar7);
lVar7 = lVar7 + -8;
lVar8 = lVar8 + -1;
} while (-1 < lVar8);
}
lVar8 = FUN_14016ab80(param_2);
*(ulonglong *)(lVar8 + (longlong)iVar3 * 8) = CONCAT44(uVar1,uVar2);
iVar3 = *(int *)(param_1 + 0x18);
iVar9 = iVar9 + 1;
lVar10 = lVar10 + 1;
lVar11 = lVar11 + 0x10;
} while (iVar9 < iVar3);
}
return;
}