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

59 lines
2 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400a1fb0 FUN_1400a1fb0
* Pseudocode, not original source. */
ulonglong FUN_1400a1fb0(longlong *param_1,undefined1 *param_2)
{
longlong lVar1;
longlong *plVar2;
ulonglong uVar3;
longlong *plVar4;
longlong *plVar5;
short sVar6;
int iVar7;
short sVar8;
int iVar9;
undefined1 local_res8 [8];
local_res8[0] = 0;
uVar3 = (**(code **)(*param_1 + 0x108))(param_1,local_res8);
if ((int)uVar3 == 2) {
plVar4 = (longlong *)param_1[0x296];
plVar5 = (longlong *)0x0;
iVar7 = DAT_1401ac3d0;
sVar6 = DAT_1401ac3d4;
if ((((((plVar4 != (longlong *)0x0) && (*plVar4 != 0)) && (plVar4 != (longlong *)0x0)) &&
((*plVar4 != 0 && (*plVar4 != 0x40)))) &&
((plVar4 = (longlong *)param_1[0x296], iVar7 = iRam0000000000000140,
sVar6 = sRam0000000000000144, plVar4 != (longlong *)0x0 &&
((*plVar4 != 0 && (plVar4 != (longlong *)0x0)))))) && (lVar1 = *plVar4, lVar1 != 0)) {
iVar7 = *(int *)(lVar1 + 0x100);
sVar6 = *(short *)(lVar1 + 0x104);
}
plVar4 = (longlong *)param_1[0x296];
iVar9 = DAT_1401ac3d0;
sVar8 = DAT_1401ac3d4;
if (((plVar4 != (longlong *)0x0) && (*plVar4 != 0)) && (plVar4 != (longlong *)0x0)) {
lVar1 = *plVar4;
plVar4 = (longlong *)0x0;
if ((lVar1 != 0) && (plVar4 = (longlong *)0x0, lVar1 != 0x40)) {
plVar2 = (longlong *)param_1[0x296];
plVar4 = plVar5;
if (((plVar2 != (longlong *)0x0) && ((*plVar2 != 0 && (plVar2 != (longlong *)0x0)))) &&
(*plVar2 != 0)) {
plVar4 = (longlong *)(*plVar2 + -0x40);
}
iVar9 = (int)plVar4[0x26];
sVar8 = *(short *)((longlong)plVar4 + 0x134);
}
}
if ((iVar9 != iVar7) || (sVar8 != sVar6)) {
plVar5 = (longlong *)0x1;
}
*param_2 = (char)plVar5;
return CONCAT71((int7)((ulonglong)plVar4 >> 8),1);
}
return uVar3 & 0xffffffffffffff00;
}