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

51 lines
1.7 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400ac8a0 FUN_1400ac8a0
* Pseudocode, not original source. */
undefined8 FUN_1400ac8a0(longlong param_1,undefined8 param_2,undefined **param_3,longlong *param_4)
{
int *piVar1;
undefined8 uVar2;
longlong *plVar3;
longlong lVar4;
undefined **ppuVar5;
char local_res8 [8];
undefined8 uVar6;
longlong local_30;
undefined8 local_28;
undefined4 local_20;
undefined2 local_1c;
int *local_18;
undefined1 local_10;
uVar6 = 0xfffffffffffffffe;
plVar3 = param_4;
piVar1 = (int *)(**(code **)(**(longlong **)(param_1 + 0x20) + 0x58))();
local_18 = piVar1;
FUN_14006b350(piVar1);
local_10 = 1;
uVar2 = FUN_1400abfd0(*(longlong *)(param_1 + 0x20),param_2,param_3,plVar3);
local_res8[0] = (char)uVar2;
if (local_res8[0] != '\0') {
FUN_1400a1250(*(longlong **)(param_1 + 0x20),param_2,param_3,plVar3);
ppuVar5 = (undefined **)*param_4;
if ((undefined **)*param_4 == (undefined **)0x0) {
ppuVar5 = (undefined **)PTR_DAT_1401ac008;
}
plVar3 = FUN_140074ec0(&local_30,ppuVar5,(ulonglong)param_3,plVar3);
FUN_14006ff10(&local_28,plVar3,(short)param_4[1]);
plVar3 = *(longlong **)(*(longlong *)(param_1 + 0x20) + 0x1570);
lVar4 = 0;
if (plVar3 != (longlong *)0x0) {
lVar4 = *plVar3;
}
*(undefined4 *)(lVar4 + 0xd0) = local_20;
*(undefined2 *)(lVar4 + 0xd4) = local_1c;
}
plVar3 = (longlong *)(*(longlong *)(param_1 + 0x20) + 0x1818);
(**(code **)(*plVar3 + 0x130))(plVar3,1,&DAT_1401b6110,local_res8,uVar6);
uVar2 = FUN_14006b3e0((longlong)piVar1);
return CONCAT71((int7)((ulonglong)uVar2 >> 8),1);
}