/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14016ded0 FUN_14016ded0 * Pseudocode, not original source. */ void FUN_14016ded0(longlong param_1,longlong param_2) { longlong lVar1; int iVar2; int iVar3; longlong lVar4; int iVar5; ulonglong uVar6; ulonglong uVar7; ulonglong uVar8; ulonglong uVar9; undefined1 local_58 [80]; if (*(longlong *)(param_2 + 0xc80) == 0) { FUN_14016d300(local_58,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1403417f8); } iVar2 = *(int *)(param_2 + 0xc88); if (*(longlong *)(param_1 + 0xc80) == 0) { FUN_14016d300(local_58,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1403417f8); } iVar3 = *(int *)(param_1 + 0xc88); iVar5 = iVar3 + iVar2; if (*(longlong *)(param_1 + 0xc80) == 0) { FUN_14016d300(local_58,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1403417f8); } if ((-1 < iVar5) && (iVar5 <= *(int *)(param_1 + 0xc8c))) { *(int *)(param_1 + 0xc88) = iVar5; if (*(longlong *)(param_1 + 0xc80) == 0) { FUN_14016d300(local_58,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1403417f8); } if (*(longlong *)(param_2 + 0xc80) == 0) { FUN_14016d300(local_58,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1403417f8); } uVar6 = 0; if (0 < iVar2) { lVar1 = *(longlong *)(param_1 + 0xc80) + (longlong)iVar3 * 0x10; uVar7 = uVar6; uVar8 = uVar6; do { lVar4 = *(longlong *)(param_2 + 0xc80); if (lVar4 == 0) { FUN_14016d300(local_58,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1403417f8); } if (((longlong)uVar7 < 0) || (*(int *)(param_2 + 0xc88) <= (int)uVar6)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } uVar7 = uVar7 + 1; uVar9 = uVar8 + 0x10; *(undefined8 *)(lVar1 + -0x10 + uVar9) = *(undefined8 *)(uVar8 + lVar4); uVar6 = (ulonglong)((int)uVar6 + 1); *(undefined8 *)(lVar1 + -8 + uVar9) = *(undefined8 *)(uVar8 + 8 + lVar4); uVar8 = uVar9; } while ((longlong)uVar7 < (longlong)iVar2); } return; } /* WARNING: Subroutine does not return */ FUN_14016d6b0(); }