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

63 lines
1.9 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401f4bb0 FUN_1401f4bb0
* Pseudocode, not original source. */
void FUN_1401f4bb0(longlong param_1)
{
ulonglong *puVar1;
ulonglong uVar2;
ulonglong uVar3;
int iVar4;
ulonglong uVar5;
FUN_14016db50(param_1 + 0x10);
uVar5 = 0;
uVar2 = uVar5;
while( true ) {
iVar4 = (int)uVar2;
if (iVar4 == *(int *)(param_1 + 0x118)) {
uVar2 = uVar5;
if (*(longlong *)(param_1 + 0x70) != 0) {
uVar2 = *(ulonglong *)(param_1 + 0x60);
}
for (; uVar2 != 0; uVar2 = *(ulonglong *)(uVar2 + 0x10)) {
uVar3 = uVar5;
if (*(ulonglong **)(uVar2 + 8) != (ulonglong *)0x0) {
uVar3 = **(ulonglong **)(uVar2 + 8);
}
if (*(int *)(uVar3 + 0x2490) < 4) {
*(undefined8 *)(uVar3 + 0x2490) = 4;
}
}
FUN_14016dbe0(param_1 + 0x10);
return;
}
if ((iVar4 < 0) || (*(int *)(param_1 + 0x118) <= iVar4)) break;
puVar1 = *(ulonglong **)(*(longlong *)(param_1 + 0x110) + (longlong)iVar4 * 8);
uVar2 = uVar5;
if (puVar1 != (ulonglong *)0x0) {
uVar2 = *puVar1;
}
if ((*(longlong **)(uVar2 + 0x10) != (longlong *)0x0) && (**(longlong **)(uVar2 + 0x10) != 0)) {
puVar1 = *(ulonglong **)(*(longlong *)(param_1 + 0x110) + (longlong)iVar4 * 8);
uVar2 = uVar5;
if (puVar1 != (ulonglong *)0x0) {
uVar2 = *puVar1;
}
uVar3 = uVar5;
if (*(ulonglong **)(uVar2 + 0x10) != (ulonglong *)0x0) {
uVar3 = **(ulonglong **)(uVar2 + 0x10);
}
FUN_14019c630(uVar3);
}
if (*(int *)(param_1 + 0x118) <= iVar4) {
/* WARNING: Subroutine does not return */
FUN_14016d6e0();
}
uVar2 = (ulonglong)(iVar4 + 1);
}
/* WARNING: Subroutine does not return */
FUN_14016d6e0();
}