SdbFindFirstStringIndexedTag

INT64 __fastcall SdbFindFirstStringIndexedTag(RTL_RUN_ONCE *a1, INT16 a2, INT16 a3, WCHAR *a4, INT64 a5){
  int v6; 
  int v7; 
  int Index; 
  UINT64 v10; 
  UINT64 IndexKeyFromString; 
  UINT64 v12; 
  unsigned int FirstIndexedRecord; 
  int v15; 
  int v16; 
  UINT64 dwIndexFlags[3]; 
  LODWORD(dwIndexFlags[0]) = 0;
  v6 = (unsigned __int16)a3;
  v7 = (unsigned __int16)a2;
  Index = SdbGetIndex(a1, a2, a3, dwIndexFlags);
  *(_DWORD *)a5 = Index;
  if( !Index )
  {
    v16 = v6;
    v15 = v7;
    AslLogCallPrintf(1ui64, "SdbFindFirstStringIndexedTag", 0xEBui64, "Index not found 0x%lx Key 0x%lx", v15, v16);
    return 0i64;
  }
  v10 = LODWORD(dwIndexFlags[0]);
  *(_DWORD *)(a5 + 20) = dwIndexFlags[0];
  *(_WORD *)(a5 + 12) = v6;
  *(_QWORD *)(a5 + 32) = a4;
  IndexKeyFromString = SdbMakeIndexKeyFromStringEx(a4, v10);
  v12 = *(unsigned int *)a5;
  *(_QWORD *)(a5 + 24) = IndexKeyFromString;
  FirstIndexedRecord = SdbpGetFirstIndexedRecord((INT64)a1, v12, IndexKeyFromString, (_DWORD *)a5);
  if( !FirstIndexedRecord )
    return 0i64;
  return SdbpFindMatchingName(a1, FirstIndexedRecord, a5);
}

Referenced by:

KsepDbGetShimInfo
SdbGetDatabaseMatchEx
SdbpSearchDB