CmGetInterfaceClassMappedPropertyFromComposite

__int64 __fastcall CmGetInterfaceClassMappedPropertyFromComposite(
        __int64 a1,
        __int64 a2,
        __int64 a3,
        __int64 a4,
        int *a5,
        unsigned __int64 a6,
        int a7,
        _DWORD *a8){
  int *v8; 
  unsigned int v9; 
  _DWORD *v10; 
  unsigned __int64 v12; 
  int v13; 
  unsigned int v14; 
  __int64 v15; 
  unsigned int ObjectProperty; 
  ULONG v18; 
  v8 = a5;
  v9 = 0;
  v10 = a8;
  v18 = 0;
  v12 = a6;
  *a5 = 0;
  *v10 = 0;
  if( v12 )
  {
    v13 = a7;
    v12 &= -(__int64)(a7 != 0);
  }
  else
  {
    v13 = 0;
  }
  v14 = *(_DWORD *)(a4 + 16);
  if( v14 >= 2 )
  {
    if( v14 == 10 )
    {
      v15 = *(_QWORD *)a4 - *(_QWORD *)&DEVPKEY_NAME.fmtid.Data1;
      if( *(_QWORD *)a4 == *(_QWORD *)&DEVPKEY_NAME.fmtid.Data1 )
        v15 = *(_QWORD *)(a4 + 8) - *(_QWORD *)DEVPKEY_NAME.fmtid.Data4;
      if( !v15 )
      {
        ObjectProperty = PnpGetObjectProperty(
                           a1,
                           a2,
                           4i64,
                           a3,
                           0i64,
                           (__int64)&DEVPKEY_DeviceInterfaceClass_Name,
                           v8,
                           v12,
                           v13,
                           &v18,
                           0);
        v9 = ObjectProperty;
        if( !ObjectProperty || ObjectProperty == -1073741789 )
          *v10 = v18;
      }
    }
  }
  else
  {
    return(unsigned int)-1073741264;
  }
  return v9;
}

Referenced by:

CmGetInterfaceClassMappedProperty
CmGetInterfaceClassMappedPropertyKeys