CmGetInstallerClassMappedPropertyFromCoInstallers

__int64 __fastcall CmGetInstallerClassMappedPropertyFromCoInstallers(
        __int64 a1,
        const WCHAR *a2,
        __int64 a3,
        _DWORD *a4,
        __int64 a5,
        int a6,
        __int64 a7){
  _DWORD *v7; 
  unsigned int v8; 
  __int64 v9; 
  int v12; 
  int CachedContextBaseKey; 
  unsigned int v14; 
  struct _UNICODE_STRING DestinationString; 
  int v17; 
  int v18; 
  HANDLE KeyHandle; 
  v18 = HIDWORD(a3);
  v7 = (_DWORD *)a7;
  v8 = 0;
  v9 = a5;
  v17 = 0;
  KeyHandle = 0i64;
  *a4 = 0;
  *v7 = 0;
  if( v9 )
  {
    v12 = a6;
    v9 &= -(__int64)(a6 != 0);
  }
  else
  {
    v12 = 0;
  }
  CachedContextBaseKey = PnpCtxGetCachedContextBaseKey(a1, 13, (__int64 *)&KeyHandle);
  if( CachedContextBaseKey < 0 )
  {
    return(unsigned int)CachedContextBaseKey;
  }
  else
  {
    LODWORD(a7) = v12;
    v14 = RegRtlQueryValue(KeyHandle, a2, &v17, (void *)v9, (__int64)&a7);
    if( v14 == -1073741772 || v14 == -1073741444 )
    {
      return(unsigned int)-1073741275;
    }
    else if( !v14 || v14 == -1073741789 )
    {
      if( v17 == 7 )
      {
        *v7 = a7;
        *a4 = 8210;
        if( v14 || !v12 )
          return(unsigned int)-1073741789;
      }
      else
      {
        DestinationString = 0i64;
        if( (int)RtlInitUnicodeStringEx(&DestinationString, (WCHAR *)a2) >= 0 )
          ZwDeleteValueKey(KeyHandle, &DestinationString);
      }
    }
    else
    {
      return v14;
    }
  }
  return v8;
}

Referenced by:

CmGetInstallerClassMappedProperty
CmGetInstallerClassMappedPropertyKeys