CmGetMatchingDevicePanelList

NTSTATUS __fastcall CmGetMatchingDevicePanelList(INT64 a1, INT64 a2, INT64 a3, INT64 a4, INT64 a5, INT64 a6, INT64 a7){
  __int64(__fastcall *v11)(INT64, _QWORD, __int64, __int64, int, INT64 *); 
  int v12; 
  NTSTATUS MatchingDevicePanelListWorker; 
  NTSTATUS v14; 
  int v16; 
  int v17; 
  NTSTATUS v18; 
  UINT64 v19; 
  INT64 v20; 
  INT64 v21[12]; 

  memset(v21, 0i64, 0x58u);
  v11 = *(__int64(__fastcall **)(INT64, _QWORD, __int64, __int64, int, INT64 *))(a1 + 504);
  v21[3] = a3;
  LODWORD(v21[5]) = a5;
  v21[2] = a2;
  v21[4] = a4;
  v21[6] = a6;
  LODWORD(v21[7]) = a7;
  if( v11 )
  {
    v12 = v11(a1, 0i64, 6i64, 4i64, 1, v21);
    if( v12 == -1073741822 )
    {
      v11 = 0i64;
    }
    else
    {
      if( v12 == -1073741536 )
        return v21[0];
      if( v12 )
        return -1073741595;
    }
  }
  LODWORD(v20) = v21[7];
  LODWORD(v19) = v21[5];
  MatchingDevicePanelListWorker = CmGetMatchingDevicePanelListWorker(
                                    a1,
                                    v21[2],
                                    v21[3],
                                    (_WORD *)v21[4],
                                    v19,
                                    (UINT64 *)v21[6],
                                    v20);
  v14 = MatchingDevicePanelListWorker;
  if( !v11 )
    return v14;
  LODWORD(v21[0]) = MatchingDevicePanelListWorker;
  v16 = v11(a1, 0i64, 6i64, 4i64, 2, v21);
  v17 = v16;
  if( v16 == -1073741822 )
    return v14;
  if( v16 == -1073741536 )
    return v21[0];
  v18 = v14;
  if( v17 )
    return -1073741595;
  return v18;
}

Referenced by:

PnpDispatchDevicePanel