ViGenericVerifyNewIrp

VOID __fastcall ViGenericVerifyNewIrp(INT64 a1, UINT64 a2, INT64 a3, INT64 a4, const VOID *a5){
  __int64 v7; 
  int v8; 
  int v9; 
  _QWORD *v10; 
  UINT64 v11; 
  char pszDest[96]; 
  if( *(_OWORD *)(a2 + 72) != 0i64 && ((*(_DWORD *)(a2 + 16) & 0x440) == 0 || (*(_DWORD *)(a2 + 16) & 0x402) == 0) )
  {
    v7 = *(_QWORD *)(a2 + 184);
    v8 = *(char *)(a2 + 67) - 1;
    v9 = *(char *)(a2 + 66);
    if( v8 > v9 )
    {
LABEL_7:
      v11 = *(unsigned __int8 *)(a1 + 60);
      if( (_BYTE)v11 )
      {
        ViErrorDisplayDescription(770);
        if( (int)RtlStringCbPrintfA(pszDest, 0x5Bui64, (INT8 *)"CulpritAddress = %p, Irp = %p, IRQL = %u.\n") >= 0 )
          VfUtilDbgPrint(pszDest);
        ViErrorFinishReport(770i64, (UINT64)a5, a2, v11);
      }
    }
    else
    {
      v10 = (_QWORD *)(v7 - 16);
      while( !*v10 )
      {
        v10 += 9;
        if( ++v8 > v9 )
          goto LABEL_7;
      }
    }
  }
}

Referenced by:

No references.