CmGetDevicePanelMappedProperty

NTSTATUS __fastcall CmGetDevicePanelMappedProperty(
        __int64 a1,
        const wchar_t *a2,
        __int64 a3,
        __int64 r9_0,
        __int64 a5,
        _DWORD *a6,
        UINT64 *a4,
        unsigned int a8,
        _DWORD *a9){
  NTSTATUS result; 
  int v11; 
  __int64 v12; 
  _GUID *v13; 
  UINT64 *v14; 
  UINT64 *v15; 

  result = -1073741802;
  *a9 = 0;
  if( !r9_0 )
  {
    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 -1073741789;
          v13 = (_GUID *)a4;
          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 -1073741789;
          v15 = a4;
          v14 = 0i64;
          return CmSplitDevicePanelId(a2, v13, v15, v14);
        }
        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 -1073741789;
          v14 = a4;
LABEL_21:
          v15 = 0i64;
          return CmSplitDevicePanelId(a2, v13, v15, v14);
        }
        break;
    }
  }
  return result;
}

Referenced by:

PnpDispatchDevicePanel