/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400c89b0 FUN_1400c89b0 * Pseudocode, not original source. */ void FUN_1400c89b0(longlong param_1,longlong param_2,undefined4 *param_3,undefined8 param_4, char param_5) { undefined8 *puVar1; undefined4 *puVar2; longlong lVar3; SIZE_T SVar4; undefined8 uVar5; undefined4 local_170 [2]; undefined4 local_168 [2]; longlong local_160; longlong local_158; int local_14c; undefined1 local_140 [232]; exception local_58 [80]; if ((param_2 != 0) && (param_5 == '\x01')) { *(int *)(param_2 + 0x1dc) = *(int *)(param_2 + 0x1dc) + 1; } if (*(longlong *)(param_3 + 2) == 0) { FUN_14006ba50(local_58,(wchar_t *)PTR_u_exception_due_to_not_using_Inter_1401adb80,param_3, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1401a93e8); } FUN_1400bca30(local_168,param_3); FUN_140093310((longlong)local_140); local_170[0] = (undefined4)param_4; uVar5 = 0; SVar4 = *(SIZE_T *)(param_2 + 0x278); puVar2 = local_170; puVar1 = FUN_1400965e0((longlong *)(param_2 + 0x268),puVar2,SVar4,0); if (*(undefined8 **)(param_2 + 0x278) == (undefined8 *)0x0) { *(undefined8 **)(param_2 + 0x270) = puVar1; } else { **(undefined8 **)(param_2 + 0x278) = puVar1; } *(undefined8 **)(param_2 + 0x278) = puVar1; FUN_1400933c0((longlong)local_140,puVar2,SVar4,uVar5); FUN_1400d1800(&local_160); if ((local_158 != 0) && (local_14c < 0)) { /* WARNING: Subroutine does not return */ FUN_14006be00(); } if (param_2 == 0) { lVar3 = 0; } else { lVar3 = param_2 + 8; } FUN_1400dec90(param_1 + 0x160,lVar3,SVar4,uVar5); return; }