69 lines
2.1 KiB
C
69 lines
2.1 KiB
C
/* 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;
|
|
}
|
|
|