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

28 lines
980 B
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400b2dd0 FUN_1400b2dd0
* Pseudocode, not original source. */
undefined8 FUN_1400b2dd0(char *param_1,ushort *param_2,longlong *param_3)
{
uint uVar1;
ulonglong uVar2;
ushort *puVar3;
undefined8 uVar4;
uVar1 = *(uint *)(param_1 + 0x28);
uVar2 = (ulonglong)*param_2 % (ulonglong)uVar1;
if (*(longlong *)(param_1 + 8) != 0) {
for (puVar3 = *(ushort **)(*(longlong *)(param_1 + 8) + uVar2 * 8);
(puVar3 != (ushort *)0x0 && ((uint)uVar2 == *(uint *)(puVar3 + 0x10) % uVar1));
puVar3 = *(ushort **)(puVar3 + 8)) {
if (*puVar3 == *param_2) {
return (ulonglong)*(uint *)(puVar3 + 0x10) / (ulonglong)uVar1 & 0xffffff00;
}
}
}
puVar3 = FUN_1400b1b30(param_1,param_2);
uVar4 = FUN_1400a2a80((longlong *)puVar3,param_3);
return CONCAT71((int7)((ulonglong)uVar4 >> 8),1);
}