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

31 lines
1.2 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140102db0 FUN_140102db0
* Pseudocode, not original source. */
void FUN_140102db0(longlong param_1,undefined1 *param_2,int param_3,ushort param_4)
{
int iVar1;
int iVar2;
iVar1 = *(int *)(param_1 + 0x1714);
if (iVar1 < 0xe) {
iVar2 = iVar1 + 3;
*(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | param_4 << ((byte)iVar1 & 0x1f);
}
else {
*(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | param_4 << ((byte)iVar1 & 0x1f);
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1710);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1711);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
iVar2 = *(int *)(param_1 + 0x1714) + -0xd;
*(ushort *)(param_1 + 0x1710) = param_4 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f);
}
*(int *)(param_1 + 0x1714) = iVar2;
FUN_1401023c0(param_1,param_2,param_3,1);
return;
}