/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140102e50 FUN_140102e50 * Pseudocode, not original source. */ void FUN_140102e50(longlong param_1) { ushort uVar1; int iVar2; int iVar3; iVar3 = *(int *)(param_1 + 0x1714); *(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | 2 << ((byte)iVar3 & 0x1f); if (iVar3 < 0xe) { iVar3 = iVar3 + 3; } else { *(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; *(ushort *)(param_1 + 0x1710) = 2 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f); iVar3 = *(int *)(param_1 + 0x1714) + -0xd; } *(int *)(param_1 + 0x1714) = iVar3; uVar1 = 0; *(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | 0 << ((byte)iVar3 & 0x1f); if (iVar3 < 10) { iVar3 = iVar3 + 7; } else { *(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; *(ushort *)(param_1 + 0x1710) = 0 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f); iVar3 = *(int *)(param_1 + 0x1714) + -9; } *(int *)(param_1 + 0x1714) = iVar3; FUN_140102330(param_1); iVar3 = *(int *)(param_1 + 0x1714); if ((*(int *)(param_1 + 0x170c) - iVar3) + 0xb < 9) { if (iVar3 < 0xe) { iVar2 = iVar3 + 3; *(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | 2 << ((byte)iVar3 & 0x1f); } else { *(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | 2 << ((byte)iVar3 & 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) = 2 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f); } *(int *)(param_1 + 0x1714) = iVar2; if (iVar2 < 10) { iVar3 = iVar2 + 7; *(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | uVar1 << ((byte)iVar2 & 0x1f); } else { *(ushort *)(param_1 + 0x1710) = *(ushort *)(param_1 + 0x1710) | uVar1 << ((byte)iVar2 & 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; iVar3 = *(int *)(param_1 + 0x1714) + -9; *(ushort *)(param_1 + 0x1710) = uVar1 >> (0x10U - (char)*(int *)(param_1 + 0x1714) & 0x1f); } *(int *)(param_1 + 0x1714) = iVar3; FUN_140102330(param_1); } *(undefined4 *)(param_1 + 0x170c) = 7; return; }