/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400befa0 FUN_1400befa0 * Pseudocode, not original source. */ void FUN_1400befa0(longlong *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4) { char cVar1; short sVar2; ushort uVar3; ushort uVar4; int iVar5; longlong *plVar6; longlong *plVar7; ushort uVar8; ushort uVar9; ushort uVar10; int iVar11; longlong lVar12; longlong *local_res10; exception local_78 [80]; plVar6 = param_1; plVar7 = param_2; local_res10 = param_2; cVar1 = (**(code **)(*param_1 + 0x90))(); if (cVar1 != '\0') { FUN_14006ba50(local_78,(wchar_t *)PTR_u_Already_async_callback_may_occur_1401ad7a8,param_3, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_78,(ThrowInfo *)&DAT_1401a93e8); } iVar11 = 0; lVar12 = 0; if (0 < (int)param_1[4]) { do { if ((lVar12 < 0) || ((int)param_1[4] <= iVar11)) { /* WARNING: Subroutine does not return */ FUN_14006be30(plVar6,plVar7,param_3,param_4); } plVar6 = *(longlong **)(param_1[3] + lVar12 * 8); iVar5 = (**(code **)*plVar6)(plVar6); if (0xfff9 < iVar5) { LAB_1400bf16b: FUN_14006ba50(local_78,(wchar_t *)PTR_u_Wrong_RMI_ID_is_found__RMI_ID_sh_1401ad7a0,param_3, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_78,(ThrowInfo *)&DAT_1401a93e8); } iVar5 = (**(code **)(*plVar6 + 8))(plVar6); if (iVar5 < 1) goto LAB_1400bf16b; sVar2 = (**(code **)(*param_2 + 8))(param_2); uVar8 = sVar2 + 1; uVar3 = (**(code **)*param_2)(param_2); sVar2 = (**(code **)(*plVar6 + 8))(plVar6); plVar7 = (longlong *)*plVar6; uVar9 = sVar2 + 1; uVar4 = (*(code *)*plVar7)(); uVar10 = uVar9; if (uVar9 < uVar4) { uVar10 = uVar4; uVar4 = uVar9; } uVar9 = uVar8; if (uVar8 < uVar3) { uVar9 = uVar3; uVar3 = uVar8; } if (uVar4 < uVar3) { LAB_1400bf0c4: if ((uVar9 <= uVar10) || ((uVar3 <= uVar10 && (uVar10 <= uVar9)))) goto LAB_1400bf148; if (uVar3 <= uVar4) goto LAB_1400bf0d9; } else { if (uVar10 <= uVar9) goto LAB_1400bf148; if (uVar4 <= uVar3) goto LAB_1400bf0c4; LAB_1400bf0d9: if ((uVar4 <= uVar9) && (uVar9 <= uVar10)) { LAB_1400bf148: FUN_14006ba50(local_78,(wchar_t *)PTR_u_Duplicated_RMI_ID_is_found__Revi_1401ad798,param_3 ,param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_78,(ThrowInfo *)&DAT_1401a93e8); } } iVar11 = iVar11 + 1; lVar12 = lVar12 + 1; } while (iVar11 < (int)param_1[4]); } param_2[1] = (longlong)param_1; FUN_1400be920((longlong)(param_1 + 1),(int)param_1[4],(longlong)&local_res10,1); return; }