PnpDispatchDevicePanel

__int64 __fastcall PnpDispatchDevicePanel(__int64 a1, const wchar_t *a2, __int64 a3, int a4, __int64 a5){
  __int64(__fastcall *v6)(__int64, __int64, int); 
  __int128 *v7; 
  int v8; 
  __int64 v10; 
  int v11; 
  int v12; 
  int v13; 
  __int64 v14; 
  int v15; 
  int v16; 
  __int128 v17; 
  v6 = 0i64;
  v7 = 0i64;
  v17 = 0i64;
  v8 = a4 - 1;
  if( !v8 )
    return CmValidateDevicePanelName(a1, a2);
  v10 = (unsigned int)(v8 - 1);
  if( !(_DWORD)v10 )
    return CmOpenDevicePanelRegKey(
             a1,
             a2,
             (__int64)a2,
             v10,
             *(_DWORD *)a5,
             *(_BYTE *)(a5 + 4),
             *(_QWORD *)(a5 + 8),
             (_DWORD *)(a5 + 16));
  v11 = v10 - 1;
  if( !v11 )
    return 3221225474i64;
  v12 = v11 - 1;
  if( !v12 )
    return 3221225474i64;
  v13 = v12 - 1;
  if( v13 )
  {
    v14 = (unsigned int)(v13 - 1);
    if( (_DWORD)v14 )
    {
      v15 = v14 - 1;
      if( v15 )
      {
        v16 = v15 - 1;
        if( v16 )
        {
          if( v16 == 1 )
            return CmSetDevicePanelMappedProperty(a1, 0i64, (__int64)a2, *(_QWORD *)(a5 + 8), *(_QWORD *)(a5 + 16));
          else
            return 3221225485i64;
        }
        else
        {
          return CmGetDevicePanelMappedProperty(
                   a1,
                   a2,
                   (__int64)a2,
                   *(_QWORD *)(a5 + 8),
                   *(_QWORD *)(a5 + 16),
                   *(_DWORD **)(a5 + 24),
                   *(GUID **)(a5 + 32),
                   *(_DWORD *)(a5 + 40),
                   *(_DWORD **)(a5 + 48));
        }
      }
      else
      {
        return CmGetDevicePanelMappedPropertyLocales(
                 a1,
                 0i64,
                 (__int64)a2,
                 *(_QWORD *)(a5 + 8),
                 *(_WORD **)(a5 + 16),
                 *(_DWORD *)(a5 + 24),
                 *(_DWORD **)(a5 + 32));
      }
    }
    else
    {
      return CmGetDevicePanelMappedPropertyKeys(
               a5,
               0i64,
               (__int64)a2,
               v14,
               *(_QWORD *)(a5 + 24),
               *(_DWORD *)(a5 + 32),
               *(unsigned int **)(a5 + 40));
    }
  }
  else
  {
    if( *(_QWORD *)a5 )
    {
      *(_QWORD *)&v17 = *(_QWORD *)a5;
      v6 = PnpCmMatchCallbackRoutine;
      v7 = &v17;
      *((_QWORD *)&v17 + 1) = *(_QWORD *)(a5 + 8);
    }
    return CmGetMatchingDevicePanelList(
             a1,
             (__int64)v6,
             (__int64)v7,
             *(_QWORD *)(a5 + 16),
             *(_DWORD *)(a5 + 24),
             *(_QWORD *)(a5 + 32),
             *(_DWORD *)(a5 + 40) & 0xFFFF0000);
  }
}

Referenced by:

No references.