/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140127a40 Catch@140127a40 * Pseudocode, not original source. */ undefined * Catch_140127a40(undefined8 param_1,longlong param_2,undefined8 param_3,undefined8 param_4) { int *piVar1; longlong lVar2; undefined *puVar3; int *piVar4; longlong *plVar5; undefined8 uVar6; undefined8 uVar7; longlong **pplVar8; FUN_14006cb70(param_1,param_2,param_3,param_4); *(undefined **)(param_2 + 0xf0) = PTR_DAT_1401ac010; lVar2 = *(longlong *)(param_2 + 0x28); pplVar8 = (longlong **)(param_2 + 0xf0); uVar6 = 5; uVar7 = 3; plVar5 = *(longlong **)(lVar2 + 0x108); FUN_1400b9fd0(plVar5,5,(undefined *)0x3,pplVar8); puVar3 = *(undefined **)(param_2 + 0xf0); if (((puVar3 != (undefined *)0x0) && (puVar3 != PTR_DAT_1401ac010)) && (puVar3 + -8 != (undefined *)0x0)) { piVar4 = (int *)FUN_14006cb70(plVar5,uVar6,uVar7,pplVar8); *(int **)(param_2 + 0x1f8) = piVar4; FUN_14006b350(piVar4); *(undefined1 *)(param_2 + 0x200) = 1; piVar1 = (int *)(puVar3 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(puVar3 + -8); } FUN_14006b3e0((longlong)piVar4); } if (*(longlong *)(*(longlong *)(lVar2 + 0x108) + 0x1580) != 0) { plVar5 = *(longlong **)(*(longlong *)(lVar2 + 0x108) + 0x1580); (**(code **)(*plVar5 + 0x20))(plVar5,*(undefined8 *)(param_2 + 0x1e0)); } FUN_1400dfd60(lVar2,4); return &DAT_1400e3c0c; }