server-re/decomp/MessageServer_Release_x64/full/functions/0x14011f060.c

59 lines
2 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x14011f060 Catch@14011f060
* Pseudocode, not original source. */
undefined *
Catch_14011f060(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_14006cb70(param_1,param_2,param_3,param_4);
*(undefined **)(param_2 + 0x108) = PTR_DAT_1401ac010;
pCVar5 = (LPCSTR)(**(code **)(**(longlong **)(param_2 + 0x3e0) + 8))();
*(longlong *)(param_2 + 0x5a0) = param_2 + 0x5a8;
FUN_1400626b0((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_140053d20((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_1401ac010;
}
uVar8 = 1;
lVar7 = *(longlong *)(*(longlong *)(param_2 + 0x150) + 0x17f0);
FUN_1400cb700(lVar7,1,psVar9,uVar10);
if (((psVar2 != (short *)0x0) && (psVar2 != (short *)PTR_DAT_1401ac010)) &&
(psVar2 + -4 != (short *)0x0)) {
piVar6 = (int *)FUN_14006cb70(lVar7,uVar8,psVar9,uVar10);
*(int **)(param_2 + 0x340) = piVar6;
FUN_14006b350(piVar6);
*(undefined1 *)(param_2 + 0x348) = 1;
piVar1 = (int *)(psVar2 + -2);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14006cc60(psVar2 + -4);
}
FUN_14006b3e0((longlong)piVar6);
*(undefined1 *)(param_2 + 0x348) = 0;
}
*(undefined **)(param_2 + 0x108) = PTR_DAT_1401ac010;
return &DAT_140099d8e;
}