CmGetDevicePanelMappedProperty

__int64 __fastcall CmGetDevicePanelMappedProperty(
        __int64 a1,
        const wchar_t *a2,
        __int64 a3,
        __int64 a4,
        __int64 a5,
        _DWORD *a6,
        GUID *a7,
        unsigned int a8,
        _DWORD *a9){
  __int64 result; 
  int v11; 
  __int64 v12; 
  GUID *v13; 
  GUID *v14; 
  GUID *v15; 
  result = 3221225494i64;
  *a9 = 0;
  if( !a4 )
  {
    v11 = *(_DWORD *)(a5 + 16);
    switch( v11 )
    {
      case 2:
        v12 = *(_QWORD *)a5 - DEVPKEY_DevicePanel_ContainerId;
        if( *(_QWORD *)a5 == DEVPKEY_DevicePanel_ContainerId )
          v12 = *(_QWORD *)(a5 + 8) + 0x488426EC2804D35Ai64;
        if( !v12 )
        {
          *a6 = 13;
          *a9 = 16;
          if( a8 < 0x10 )
            return 3221225507i64;
          v13 = a7;
          v14 = 0i64;
          goto LABEL_21;
        }
        break;
      case 3:
        v13 = (GUID *)(*(_QWORD *)a5 - DEVPKEY_DevicePanel_Group);
        if( *(_QWORD *)a5 == DEVPKEY_DevicePanel_Group )
          v13 = (GUID *)(*(_QWORD *)(a5 + 8) + 0x488426EC2804D35Ai64);
        if( !v13 )
        {
          *a6 = 7;
          *a9 = 4;
          if( a8 < 4 )
            return 3221225507i64;
          v15 = a7;
          v14 = 0i64;
          return CmSplitDevicePanelId(a2, v13, &v15->Data1, &v14->Data1);
        }
        break;
      case 4:
        v13 = (GUID *)(*(_QWORD *)a5 - DEVPKEY_DevicePanel_Side);
        if( *(_QWORD *)a5 == DEVPKEY_DevicePanel_Side )
          v13 = (GUID *)(*(_QWORD *)(a5 + 8) + 0x488426EC2804D35Ai64);
        if( !v13 )
        {
          *a6 = 7;
          *a9 = 4;
          if( a8 < 4 )
            return 3221225507i64;
          v14 = a7;
LABEL_21:
          v15 = 0i64;
          return CmSplitDevicePanelId(a2, v13, &v15->Data1, &v14->Data1);
        }
        break;
    }
  }
  return result;
}

Referenced by:

PnpDispatchDevicePanel