/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400e8560 Catch@1400e8560 * Pseudocode, not original source. */ undefined8 Catch_1400e8560(undefined8 param_1,longlong param_2,undefined8 param_3,undefined8 param_4) { longlong *plVar1; int *piVar2; undefined *puVar3; longlong *plVar4; int *piVar5; longlong lVar6; wchar_t *pwVar7; undefined8 uVar8; undefined *puVar9; FUN_140030200(param_1,param_2,param_3,param_4); *(undefined **)(param_2 + 0x60) = PTR_DAT_140155010; plVar4 = FUN_14002ef50(*(longlong *)(param_2 + 0x120),(undefined8 *)(param_2 + 0x78),param_3, param_4); uVar8 = 0; if ((undefined8 *)*plVar4 != (undefined8 *)0x0) { uVar8 = *(undefined8 *)*plVar4; } FUN_14001b7a0((longlong *)(param_2 + 0x60),L"_com_error(%s)",uVar8,param_4); plVar4 = *(longlong **)(param_2 + 0x78); if (plVar4 != (longlong *)0x0) { LOCK(); plVar1 = plVar4 + 2; lVar6 = *plVar1; *(int *)plVar1 = (int)*plVar1 + -1; UNLOCK(); if (((int)lVar6 == 1) && (plVar4 != (longlong *)0x0)) { if (*plVar4 != 0) { Ordinal_6(); } if ((void *)plVar4[1] != (void *)0x0) { operator_delete__((void *)plVar4[1]); } operator_delete(plVar4); } } puVar3 = *(undefined **)(param_2 + 0x60); puVar9 = puVar3; if (puVar3 == (undefined *)0x0) { puVar9 = PTR_DAT_140155010; } uVar8 = 0; pwVar7 = L"Proud::CNetThreads_S::TcpListenerProc"; lVar6 = *(longlong *)(param_2 + 0x48); FUN_14008b960(lVar6,L"Proud::CNetThreads_S::TcpListenerProc",puVar9,0); if (((puVar3 != (undefined *)0x0) && (puVar3 != PTR_DAT_140155010)) && (puVar3 + -8 != (undefined *)0x0)) { piVar5 = (int *)FUN_140030200(lVar6,pwVar7,puVar9,uVar8); *(int **)(param_2 + 0x140) = piVar5; FUN_14002e6e0(piVar5); *(undefined1 *)(param_2 + 0x148) = 1; piVar2 = (int *)(puVar3 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_1400302f0(puVar3 + -8); } FUN_14002e770((longlong)piVar5); } return 0x14008c3f1; }