SdbpCheckKObject
__int64 __fastcall SdbpCheckKObject(
__int64 a1,
unsigned int a2,
const WCHAR *a3,
__int64 a4,
wchar_t *a5,
wchar_t *a6,
__int64 *a7){
unsigned int SearchDBContext;
const wchar_t **v11;
RTL_RUN_ONCE *v12;
__int64 *v14;
int v15;
_QWORD result[18];
int v17;
UINT64 FileMappingHandleOut;
__int64 v19;
v19 = a4;
memset((INT64)result, 0i64);
LODWORD(v19) = 0;
SearchDBContext = 0;
v17 = 0;
v11 = 0i64;
v12 = *(RTL_RUN_ONCE **)(a1 + 8);
FileMappingHandleOut = 0i64;
if( !a3
|| (v15 = AslFileMappingCreate(&FileMappingHandleOut, a3, (VOID *)0xFFFFFFFFFFFFFFFFi64, a5, (UINT64)a6),
v11 = (const wchar_t **)FileMappingHandleOut,
v15 >= 0) )
{
memset((INT64)result + 4, 0i64);
LODWORD(result[0]) = 26;
SearchDBContext = SdbpCreateSearchDBContext(result, v11);
if( SearchDBContext )
{
SearchDBContext = SdbpCheckForMatch(a1, (__int64)v12, a2, (__int64)result, &v17, (int *)&v19);
if( SearchDBContext )
{
v14 = a7;
if( a7 )
{
SearchDBContext = SdbpMatchAcpi(v12, a2, *a7);
if( SearchDBContext )
{
SearchDBContext = SdbpMatchOem(v12, a2, v14[1]);
if( SearchDBContext )
{
SearchDBContext = SdbpMatchBios(v12, a2, v14[2]);
if( SearchDBContext )
SearchDBContext = SdbpMatchCpu(v12, a2, v14[3]);
}
}
}
}
}
}
SdbpReleaseSearchDBContext(result);
AslFileMappingDelete((UINT64)v11);
return SearchDBContext;
}Referenced by:
SdbGetDatabaseMatchEx