/* 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; }