/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400a1f10 FUN_1400a1f10 * Pseudocode, not original source. */ int FUN_1400a1f10(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { longlong lVar1; int *piVar2; longlong lVar3; uint uVar4; longlong lVar6; uint uVar7; ulonglong uVar9; uint uVar10; exception local_58 [80]; ulonglong uVar5; ulonglong uVar8; lVar1 = *(longlong *)(param_1 + 0xc80); uVar5 = 0; uVar10 = 0; if (lVar1 == 0) { FUN_14002f1e0(local_58,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_1401569a0,param_3, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_140151b88); } 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; }