SdbGetEntryFlags

INT64 __stdcall SdbGetEntryFlags(_GUID *pGuid, UINT64 *lpdwFlags){
  int v3; 
  const WCHAR *v4; 
  const WCHAR *v5; 
  int AppCompatFlagsByExeID; 
  int v7; 
  UINT64 dwFlags[2]; 
  __int16 GuidOut[40]; 
  *(_DWORD *)lpdwFlags = 0;
  v3 = AslGuidToString((WCHAR *)GuidOut, (GUID *)0x27);
  if( v3 < 0 )
  {
    AslLogCallPrintf(1ui64, "SdbGetEntryFlags", 0x7Dui64, "Failed to convert EXE id to string [%x]", v3);
  }
  else
  {
    LODWORD(dwFlags[0]) = 0;
    if( (int)SdbpQueryAppCompatFlagsByExeID(v4, (const WCHAR *)GuidOut, 1i64, dwFlags) >= 0 )
      *(_DWORD *)lpdwFlags = dwFlags[0];
    LODWORD(dwFlags[0]) = 0;
    AppCompatFlagsByExeID = SdbpQueryAppCompatFlagsByExeID(v5, (const WCHAR *)GuidOut, 0i64, dwFlags);
    v7 = *(_DWORD *)lpdwFlags;
    if( AppCompatFlagsByExeID >= 0 )
      LOWORD(v7) = LOWORD(dwFlags[0]) | v7;
    *(_DWORD *)lpdwFlags = v7 & 0xFFF;
  }
  return 1i64;
}

Referenced by:

SdbReadEntryInformation
SdbpGetExeEntryFlags