ViPnpVerifyMinorWasProcessedProperly

void __fastcall ViPnpVerifyMinorWasProcessedProperly(__int64 a1, __int64 a2, int a3, int a4, const void *a5, int a6){
  unsigned __int8 v6; 
  INT64 v9; 
  _DWORD *v10; 
  __int64 i; 
  void *v12; 
  void *v13; 
  void *v14; 
  INT64 v15; 
  v6 = *(_BYTE *)(a2 + 1);
  if( v6 > 0xCu )
  {
    if( v6 < 0xFu )
      return;
    if( v6 > 0x12u )
    {
      if( v6 == 19 )
      {
        if( *(_DWORD *)(a2 + 8) > 3u )
          return;
      }
      else if( v6 != 21 )
      {
        return;
      }
    }
    goto LABEL_41;
  }
  if( v6 >= 0xAu )
  {
LABEL_41:
    if( !a3 || a4 != 2 )
      return;
    v15 = 536i64;
LABEL_44:
    VfErrorReport1(v15, a5, (const void *)a1);
    return;
  }
  if( v6 <= 1u )
    goto LABEL_32;
  if( v6 == 2 )
  {
    if( a6 || a4 == 2 )
      return;
    v15 = 774i64;
    goto LABEL_44;
  }
  if( v6 <= 6u )
  {
LABEL_32:
    if( a6 || a4 )
      return;
    v15 = 535i64;
    goto LABEL_44;
  }
  if( v6 != 7 )
    return;
  if( *(_DWORD *)(a2 + 8) != 4 )
    goto LABEL_17;
  if( a3 )
  {
    if( a4 == 2 )
    {
      v9 = 536i64;
LABEL_16:
      VfErrorReport1(v9, a5, (const void *)a1);
    }
  }
  else
  {
    if( !a4 )
    {
      v9 = 554i64;
      goto LABEL_16;
    }
    if( *(int *)(a1 + 48) >= 0 && !*(_QWORD *)(a1 + 56) )
    {
      v9 = 555i64;
      goto LABEL_16;
    }
  }
LABEL_17:
  if( !VfIoDisabled && *(_DWORD *)(a1 + 48) >= VfIoDisabled )
  {
    v10 = *(_DWORD **)(a1 + 56);
    if( v10 )
    {
      if( *(_DWORD *)(a2 + 8) <= 4u )
      {
        if( MmIsNonPagedSystemAddressValid(*(PVOID *)(a1 + 56)) )
        {
          for( i = 0i64; (unsigned int)i < *v10; i = (unsigned int)(i + 1) )
          {
            v12 = *(void **)&v10[2 * i + 2];
            if( !(unsigned int)IovUtilIsDeviceObjectMarked((__int64)v12, 5) )
            {
              LODWORD(v13) = IovUtilGetBottomDeviceObjectWithTag(v12);
              v14 = v13;
              if( v13 != v12 )
                ViErrorReport10(584i64, a5, (const VOID *)a1, v12);
              IovUtilMarkDeviceObject((__int64)v12, 5);
              ObfDereferenceObjectWithTag(v14, 0x49667256ui64);
            }
          }
        }
      }
    }
  }
}

Referenced by:

VfPnpVerifyIrpStackDownward
VfPnpVerifyIrpStackUpward