/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14019eca0 FUN_14019eca0 * Pseudocode, not original source. */ uint FUN_14019eca0(longlong param_1) { uint uVar1; uint uVar2; uint *puVar3; uint *puVar4; uint *puVar5; uint *puVar6; uint uVar7; int iVar8; uint *puVar9; if (*(int *)(param_1 + 0x9d8) < -1) { FUN_14019eb90(); } *(undefined4 *)(param_1 + 0x9d8) = 0x26f; *(longlong *)(param_1 + 0x9d0) = param_1 + 0xc; iVar8 = 0xe3; puVar3 = (uint *)(param_1 + 0x10); puVar5 = (uint *)(param_1 + 8); uVar1 = *(uint *)(param_1 + 0xc); uVar2 = *(uint *)(param_1 + 8); do { uVar7 = uVar1; puVar4 = puVar3 + 1; puVar6 = puVar5 + 1; iVar8 = iVar8 + -1; *puVar5 = ((uVar7 ^ uVar2) & 0x7ffffffe ^ uVar2) >> 1 ^ -(uint)((uVar7 & 1) != 0) & 0x9908b0df ^ *(uint *)((longlong)puVar3 + ((param_1 + 0x63c) - (param_1 + 0x10))); uVar1 = *puVar3; puVar3 = puVar4; puVar5 = puVar6; uVar2 = uVar7; } while (iVar8 != 0); iVar8 = 0x18c; puVar3 = (uint *)(param_1 + 8); do { uVar2 = uVar1; puVar5 = puVar6 + 1; puVar9 = puVar3 + 1; iVar8 = iVar8 + -1; *puVar6 = ((uVar2 ^ uVar7) & 0x7ffffffe ^ uVar7) >> 1 ^ -(uint)((uVar2 & 1) != 0) & 0x9908b0df ^ *puVar3; uVar1 = *puVar4; puVar4 = puVar4 + 1; puVar6 = puVar5; puVar3 = puVar9; uVar7 = uVar2; } while (iVar8 != 0); uVar1 = *(uint *)(param_1 + 8); uVar7 = uVar1 ^ uVar1 >> 0xb; *puVar5 = ((uVar1 ^ uVar2) & 0x7ffffffe ^ uVar2) >> 1 ^ -(uint)((uVar1 & 1) != 0) & 0x9908b0df ^ *puVar9; uVar7 = uVar7 ^ (uVar7 & 0xff3a58ad) << 7; uVar7 = uVar7 ^ (uVar7 & 0xffffdf8c) << 0xf; return uVar7 >> 0x12 ^ uVar7; }