server-re/decomp/Agent_Release_x64/full/functions/0x1400e2450.c
2026-10-14 16:45:19 -04:00

59 lines
2 KiB
C

/* 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;
}