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

39 lines
1.1 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401c1c60 FUN_1401c1c60
* Pseudocode, not original source. */
ulonglong FUN_1401c1c60(longlong param_1,int param_2,int param_3)
{
int iVar1;
longlong lVar2;
ulonglong in_RAX;
uint uVar3;
ulonglong uVar4;
ulonglong uVar5;
ulonglong uVar6;
uVar4 = 0;
iVar1 = *(int *)(param_1 + 0x18);
uVar5 = uVar4;
uVar6 = uVar4;
if (0 < iVar1) {
do {
if (((longlong)uVar5 < 0) || (iVar1 <= (int)uVar4)) {
/* WARNING: Subroutine does not return */
FUN_14016d6e0();
}
lVar2 = *(longlong *)(param_1 + 0x10);
in_RAX = *(ulonglong *)(uVar6 + 0x10 + lVar2);
if ((*(int *)(uVar6 + lVar2) == param_2) && (*(int *)(uVar6 + 8 + lVar2) == param_3)) {
return CONCAT71((int7)(in_RAX >> 8),1);
}
uVar3 = (int)uVar4 + 1;
uVar4 = (ulonglong)uVar3;
uVar5 = uVar5 + 1;
uVar6 = uVar6 + 0x18;
} while ((int)uVar3 < iVar1);
}
return in_RAX & 0xffffffffffffff00;
}