server-re/decomp/AgentManager_Release_x64/full/functions/0x1400f31f0.c
2026-10-15 09:58:24 -04:00

59 lines
2 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400f31f0 Catch@1400f31f0
* Pseudocode, not original source. */
undefined *
Catch_1400f31f0(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_14003e7c0(param_1,param_2,param_3,param_4);
*(undefined **)(param_2 + 0x108) = PTR_DAT_14016f010;
pCVar5 = (LPCSTR)(**(code **)(**(longlong **)(param_2 + 0x3e0) + 8))();
*(longlong *)(param_2 + 0x5a0) = param_2 + 0x5a8;
FUN_140005110((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_140029b80((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_14016f010;
}
uVar8 = 1;
lVar7 = *(longlong *)(*(longlong *)(param_2 + 0x150) + 0x17f0);
FUN_1400843d0(lVar7,1,psVar9,uVar10);
if (((psVar2 != (short *)0x0) && (psVar2 != (short *)PTR_DAT_14016f010)) &&
(psVar2 + -4 != (short *)0x0)) {
piVar6 = (int *)FUN_14003e7c0(lVar7,uVar8,psVar9,uVar10);
*(int **)(param_2 + 0x340) = piVar6;
FUN_14003d040(piVar6);
*(undefined1 *)(param_2 + 0x348) = 1;
piVar1 = (int *)(psVar2 + -2);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(psVar2 + -4);
}
FUN_14003d0d0((longlong)piVar6);
*(undefined1 *)(param_2 + 0x348) = 0;
}
*(undefined **)(param_2 + 0x108) = PTR_DAT_14016f010;
return &DAT_14006b0ce;
}