server-re/decomp/DBCServer_Release_x64/full/functions/0x14019eca0.c

63 lines
1.8 KiB
C

/* 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;
}