/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14004dc30 FUN_14004dc30 * Pseudocode, not original source. */ void FUN_14004dc30(longlong param_1,longlong param_2,undefined8 param_3,undefined8 param_4) { longlong lVar1; int iVar2; int iVar3; longlong lVar4; int iVar5; ulonglong uVar6; ulonglong uVar7; ulonglong uVar8; ulonglong uVar9; exception local_58 [80]; if (*(longlong *)(param_2 + 0xc80) == 0) { FUN_14003db10(local_58,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,param_3, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210); } iVar2 = *(int *)(param_2 + 0xc88); if (*(longlong *)(param_1 + 0xc80) == 0) { FUN_14003db10(local_58,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,param_3, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210); } iVar3 = *(int *)(param_1 + 0xc88); iVar5 = iVar3 + iVar2; if (*(longlong *)(param_1 + 0xc80) == 0) { FUN_14003db10(local_58,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,param_3, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210); } if ((-1 < iVar5) && (iVar5 <= *(int *)(param_1 + 0xc8c))) { *(int *)(param_1 + 0xc88) = iVar5; if (*(longlong *)(param_1 + 0xc80) == 0) { FUN_14003db10(local_58,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,param_3, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210); } if (*(longlong *)(param_2 + 0xc80) == 0) { FUN_14003db10(local_58,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,param_3, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210); } 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_14003db10(local_58,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,uVar6, uVar7); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210); } if (((longlong)uVar7 < 0) || (*(int *)(param_2 + 0xc88) <= (int)uVar6)) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } 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_14003dec0(); }