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