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

67 lines
1.8 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14019f460 FUN_14019f460
* Pseudocode, not original source. */
void FUN_14019f460(longlong *param_1,longlong param_2)
{
char cVar1;
int iVar2;
longlong lVar3;
longlong lVar4;
int iVar5;
longlong lVar6;
longlong *plVar7;
longlong lVar8;
int iVar9;
undefined1 local_68 [80];
cVar1 = (**(code **)(*param_1 + 0x90))();
if (cVar1 != '\0') {
FUN_14016d300(local_68,PTR_u_Already_async_callback_may_occur_140344fd8);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_68,(ThrowInfo *)&DAT_1403417f8);
}
iVar5 = 0;
lVar6 = 0;
if (0 < (int)param_1[4]) {
plVar7 = param_1 + 1;
while( true ) {
if ((lVar6 < 0) || ((int)param_1[4] <= iVar5)) {
/* WARNING: Subroutine does not return */
FUN_14016d6e0();
}
if (*(longlong *)(param_1[3] + lVar6 * 8) == param_2) break;
iVar5 = iVar5 + 1;
lVar6 = lVar6 + 1;
if ((int)param_1[4] <= iVar5) {
return;
}
}
if (iVar5 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
iVar2 = (int)param_1[4] - iVar5;
iVar9 = 1;
if (iVar2 < 2) {
iVar9 = iVar2;
}
iVar5 = ((int)param_1[4] - iVar9) - iVar5;
if (0 < iVar5) {
lVar8 = (longlong)iVar5;
lVar6 = lVar6 * 8;
do {
lVar3 = FUN_14016ab80(plVar7);
lVar4 = FUN_14016ab80(plVar7);
*(undefined8 *)(lVar4 + lVar6) = *(undefined8 *)((longlong)iVar9 * 8 + lVar3 + lVar6);
lVar6 = lVar6 + 8;
lVar8 = lVar8 + -1;
} while (lVar8 != 0);
}
FUN_14016add0(plVar7,(int)param_1[4] - iVar9);
*(undefined8 *)(param_2 + 8) = 0;
}
return;
}