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

31 lines
1.1 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400d5bb0 FUN_1400d5bb0
* Pseudocode, not original source. */
undefined8 * FUN_1400d5bb0(char *param_1,longlong param_2,undefined8 *param_3)
{
ulonglong uVar1;
undefined8 *puVar2;
uint uVar3;
uint uVar4;
uVar3 = (uint)*(ushort *)(param_2 + 0xc) ^ *(uint *)(param_2 + 8);
uVar1 = (ulonglong)uVar3 % (ulonglong)*(uint *)(param_1 + 0x28);
uVar4 = (uint)uVar1;
if (*(longlong *)(param_1 + 8) != 0) {
for (puVar2 = *(undefined8 **)(*(longlong *)(param_1 + 8) + uVar1 * 8);
(puVar2 != (undefined8 *)0x0 && (uVar4 == *(uint *)(puVar2 + 5) % *(uint *)(param_1 + 0x28))
); puVar2 = (undefined8 *)puVar2[3]) {
if ((*(uint *)(puVar2 + 1) == *(uint *)(param_2 + 8)) &&
(*(ushort *)((longlong)puVar2 + 0xc) == *(ushort *)(param_2 + 0xc))) {
puVar2[2] = *param_3;
return puVar2;
}
}
}
puVar2 = FUN_1400d54c0(param_1,param_2,uVar4,uVar3);
puVar2[2] = *param_3;
return puVar2;
}