/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14019b440 FUN_14019b440 * Pseudocode, not original source. */ int FUN_14019b440(longlong param_1) { longlong lVar1; int *piVar2; longlong lVar3; uint uVar4; longlong lVar6; uint uVar7; ulonglong uVar9; uint uVar10; undefined1 local_58 [80]; ulonglong uVar5; ulonglong uVar8; lVar1 = *(longlong *)(param_1 + 0xc80); uVar5 = 0; uVar10 = 0; if (lVar1 == 0) { FUN_14016d300(local_58,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1403417f8); } lVar6 = (longlong)*(int *)(param_1 + 0xc88); uVar9 = uVar5; uVar7 = uVar10; uVar4 = uVar10; if (1 < lVar6) { piVar2 = (int *)(lVar1 + 0x18); lVar3 = (lVar6 - 2U >> 1) + 1; uVar9 = lVar3 * 2; uVar8 = uVar5; do { uVar4 = (int)uVar5 + piVar2[-4]; uVar5 = (ulonglong)uVar4; uVar7 = (int)uVar8 + *piVar2; uVar8 = (ulonglong)uVar7; piVar2 = piVar2 + 8; lVar3 = lVar3 + -1; } while (lVar3 != 0); } if ((longlong)uVar9 < lVar6) { uVar10 = *(uint *)(lVar1 + 8 + uVar9 * 0x10); } return uVar7 + uVar4 + uVar10; }