/* 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; }