/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14003e2e0 FUN_14003e2e0 * Pseudocode, not original source. */ void FUN_14003e2e0(longlong param_1,int param_2,longlong param_3) { int iVar1; longlong *plVar2; int iVar3; longlong lVar4; int iVar5; undefined8 uVar6; exception local_58 [80]; iVar1 = *(int *)(param_1 + 0x1c); iVar3 = iVar1; if (iVar1 < param_2) { iVar3 = param_2; } iVar5 = *(int *)(param_1 + 0x20); if ((*(int *)(param_1 + 0x20) <= iVar3) && (iVar5 = param_2, param_2 <= iVar1)) { iVar5 = iVar1; } if (iVar1 < iVar5) { plVar2 = *(longlong **)(param_1 + 8); if (iVar1 == 0) { if (plVar2 == (longlong *)0x0) { lVar4 = FUN_140030280((longlong)iVar5 << 2); } else { lVar4 = (**(code **)(*plVar2 + 8))(plVar2,(longlong)iVar5 << 2); } } else { uVar6 = *(undefined8 *)(param_1 + 0x10); if (plVar2 == (longlong *)0x0) { lVar4 = FUN_1400302b0(uVar6,(longlong)iVar5 << 2); } else { param_3 = (longlong)iVar5 << 2; lVar4 = (**(code **)(*plVar2 + 0x10))(plVar2,uVar6); } if (lVar4 == 0) { FUN_14002f1e0(local_58,L"Memory allocation failure!",param_3,uVar6); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_140151b88); } } *(longlong *)(param_1 + 0x10) = lVar4; *(int *)(param_1 + 0x1c) = iVar5; } return; }