CmOpenDeviceInterfaceRegKey

__int64 __fastcall CmOpenDeviceInterfaceRegKey(
        __int64 a1,
        const WCHAR *a2,
        unsigned int a3,
        __int64 a4,
        int a5,
        char a6,
        __int64 a7,
        _DWORD *a8){
  __int64(__fastcall *v11)(__int64, const WCHAR *, __int64); 
  int v12; 
  int v13; 
  int v14; 
  int v16; 
  int v17; 
  int v18; 
  INT64 result[2]; 
  int v20; 
  int v21; 
  int v22; 
  char v23; 
  void **v24; 
  int v25[14]; 
  memset((INT64)result, 0i64);
  v11 = *(__int64(__fastcall **)(__int64, const WCHAR *, __int64))(a1 + 504);
  v21 = 0;
  v22 = a5;
  v20 = a3;
  v23 = a6;
  v24 = (void **)a7;
  if( v11 )
  {
    v12 = v11(a1, a2, 3i64);
    if( v12 == -1073741822 )
    {
      v11 = 0i64;
    }
    else
    {
      if( v12 == -1073741536 )
      {
LABEL_12:
        v14 = result[0];
        goto LABEL_5;
      }
      if( v12 )
        return(unsigned int)-1073741595;
    }
  }
  v13 = CmOpenDeviceInterfaceRegKeyWorker(a1, a2, v20, v21, v22, v23, v24, v25);
  v14 = v13;
  if( v11 )
  {
    LODWORD(result[0]) = v13;
    v16 = v11(a1, a2, 3i64);
    v17 = v16;
    if( v16 != -1073741822 )
    {
      if( v16 != -1073741536 )
      {
        v18 = v14;
        if( v17 )
          v18 = -1073741595;
        v14 = v18;
        goto LABEL_5;
      }
      goto LABEL_12;
    }
  }
LABEL_5:
  if( v14 >= 0 && a8 )
    *a8 = v25[0];
  return(unsigned int)v14;
}

Referenced by:

CmCreateDeviceInterfaceWorker
CmDeleteDeviceInterfaceMappedPropertyFromRegValue
CmDeleteDeviceInterfaceRegKeyWorker
CmGetDeviceInterfaceMappedPropertyFromRegValue
CmOpenDeviceInterfaceRegKeyWorker
CmSetDeviceInterfaceMappedPropertyFromRegValue
IoGetDeviceInterfaceAlias
IoOpenDeviceInterfaceRegistryKey
IopGetDeviceInterfaces
PiCMOpenDeviceInterfaceKey
PiDevCfgConfigureDeviceInterface
PnpDispatchDeviceInterface