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

84 lines
3.6 KiB
C

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