/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140124ab0 Catch@140124ab0 * Pseudocode, not original source. */ undefined * Catch_140124ab0(undefined8 param_1,longlong param_2,SIZE_T param_3,undefined8 param_4) { longlong lVar1; int *piVar2; longlong lVar3; undefined8 uVar4; SIZE_T *pSVar5; uVar4 = *(undefined8 *)(param_2 + 0x140); (**(code **)(**(longlong **)(*(longlong *)(*(longlong *)(param_2 + 0xb8) + 0x148) + 0x758) + 0x20) )(); FUN_1400bca00((undefined4 *)(param_2 + 0x40)); FUN_1400bc4d0(param_2 + 0x40,uVar4,param_3,param_4); FUN_1400bcb60((int *)(param_2 + 0x40),0x800,param_3,param_4); uVar4 = 0; FUN_1400bcb60((int *)(param_2 + 0x40),0,param_3,param_4); FUN_140054a10(param_2 + 0x40,CONCAT71((int7)((ulonglong)uVar4 >> 8),9),param_3,param_4); *(undefined8 *)(param_2 + 0x120) = 0; *(undefined8 *)(param_2 + 0x128) = 0; *(undefined8 *)(param_2 + 0x130) = 0; *(undefined8 *)(param_2 + 0x138) = 0; *(undefined ***)(param_2 + 0x118) = Proud::ByteArray::vftable; FUN_1400bddd0(param_2 + 0x40,0,param_3,param_4); FUN_140078360((undefined8 *)(param_2 + 0x118)); lVar1 = *(longlong *)(param_2 + 0x30); piVar2 = (int *)(**(code **)(*(longlong *)(lVar1 + 0x108) + 0x10))(); *(int **)(param_2 + 0xb8) = piVar2; FUN_14006b350(piVar2); *(undefined1 *)(param_2 + 0xc0) = 1; lVar3 = FUN_14007db50(param_2 + 0x1a0,param_2 + 0x40,param_3); *(undefined8 *)(param_2 + 0x30) = 0; *(undefined1 *)(param_2 + 0x38) = 1; pSVar5 = (SIZE_T *)(param_2 + 0x30); FUN_1400d87b0(*(char **)(lVar1 + 0x748),lVar3,pSVar5,param_4); FUN_14007ca50(param_2 + 0x1a0,lVar3,pSVar5,param_4); FUN_14006b3e0((longlong)piVar2); *(longlong *)(param_2 + 0x30) = param_2 + 0x48; FUN_1400d1800((longlong *)(param_2 + 0x48)); if ((*(longlong *)(param_2 + 0x50) != 0) && (*(int *)(param_2 + 0x5c) < 0)) { /* WARNING: Subroutine does not return */ FUN_14006be00(); } return &DAT_1400c7aa3; }