/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400e2450 Catch@1400e2450 * Pseudocode, not original source. */ undefined * Catch_1400e2450(undefined8 param_1,longlong param_2,undefined8 param_3,undefined8 param_4) { int *piVar1; short *psVar2; uint uVar3; uint uVar4; LPCSTR pCVar5; int *piVar6; longlong lVar7; undefined8 uVar8; short *psVar9; ulonglong uVar10; FUN_140030200(param_1,param_2,param_3,param_4); *(undefined **)(param_2 + 0x108) = PTR_DAT_140155010; pCVar5 = (LPCSTR)(**(code **)(**(longlong **)(param_2 + 0x3e0) + 8))(); *(longlong *)(param_2 + 0x5a0) = param_2 + 0x5a8; FUN_14002a670((longlong *)(param_2 + 0x5a0),pCVar5,3); memcpy((void *)(param_2 + 0x410),(void *)(param_2 + 0x5a0),0x108); uVar3 = (**(code **)**(undefined8 **)(param_2 + 0xb0))(); uVar4 = (**(code **)**(undefined8 **)(param_2 + 0xa8))(); uVar10 = (ulonglong)uVar3; FUN_14001b7a0((longlong *)(param_2 + 0x108),L"%d와 %d간의 P2P session key make failed : %s", (ulonglong)uVar4,uVar10); if (*(void **)(param_2 + 0x5a0) != (void *)(param_2 + 0x5a8)) { free(*(void **)(param_2 + 0x5a0)); } psVar2 = *(short **)(param_2 + 0x108); psVar9 = psVar2; if (psVar2 == (short *)0x0) { psVar9 = (short *)PTR_DAT_140155010; } uVar8 = 1; lVar7 = *(longlong *)(*(longlong *)(param_2 + 0x150) + 0x17f0); FUN_14008f2e0(lVar7,1,psVar9,uVar10); if (((psVar2 != (short *)0x0) && (psVar2 != (short *)PTR_DAT_140155010)) && (psVar2 + -4 != (short *)0x0)) { piVar6 = (int *)FUN_140030200(lVar7,uVar8,psVar9,uVar10); *(int **)(param_2 + 0x340) = piVar6; FUN_14002e6e0(piVar6); *(undefined1 *)(param_2 + 0x348) = 1; piVar1 = (int *)(psVar2 + -2); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_1400302f0(psVar2 + -4); } FUN_14002e770((longlong)piVar6); *(undefined1 *)(param_2 + 0x348) = 0; } *(undefined **)(param_2 + 0x108) = PTR_DAT_140155010; return &DAT_14005d9ee; }