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

51 lines
1.3 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401f98c0 FUN_1401f98c0
* Pseudocode, not original source. */
void FUN_1401f98c0(longlong param_1)
{
int iVar1;
longlong *plVar2;
longlong lVar3;
int iVar4;
FUN_14016db50(param_1 + 0x10);
if (*(int *)(param_1 + 0x48) == 0) {
FUN_1401f70a0(param_1);
}
*(int *)(param_1 + 0x48) = *(int *)(param_1 + 0x48) + 1;
iVar4 = 0;
while( true ) {
if (iVar4 == *(int *)(param_1 + 0x118)) {
FUN_1401f97c0(param_1);
FUN_1401f5eb0(param_1);
FUN_14016dbe0(param_1 + 0x10);
return;
}
if ((iVar4 < 0) || (*(int *)(param_1 + 0x118) <= iVar4)) break;
plVar2 = *(longlong **)(*(longlong *)(param_1 + 0x110) + (longlong)iVar4 * 8);
lVar3 = 0;
if (plVar2 != (longlong *)0x0) {
lVar3 = *plVar2;
}
iVar1 = *(int *)(lVar3 + 0x18);
if (iVar1 == 0) {
FUN_1401f6af0(param_1);
}
else if (iVar1 == 1) {
FUN_1401f6cc0(param_1);
}
else if (iVar1 == 2) {
FUN_1401f79c0(param_1);
}
if (*(int *)(param_1 + 0x118) <= iVar4) {
/* WARNING: Subroutine does not return */
FUN_14016d6e0();
}
iVar4 = iVar4 + 1;
}
/* WARNING: Subroutine does not return */
FUN_14016d6e0();
}