ViGenericVerifyIrpStackUpward

void __fastcall ViGenericVerifyIrpStackUpward(_DWORD *a1, _BYTE *a2, __int64 a3, __int64 a4){
  _QWORD *v4; 
  const VOID *v7; 
  unsigned int v8; 
  int v9; 
  INT64 v10; 
  v4 = *(_QWORD **)a1;
  v7 = *(const VOID **)(a4 + 40);
  v8 = *(_DWORD *)(*(_QWORD *)a1 + 48i64);
  if( (a1[14] & 0x20) != 0 )
  {
    v9 = *(_DWORD *)(a3 + 4);
    if( (v9 & 0x1000000) == 0 )
    {
      if( v8 != *(_DWORD *)(a3 + 96) )
      {
        v10 = 571i64;
        *(_DWORD *)(a3 + 4) = v9 | 0x1000000;
        if( a2[1] != 0xFF )
          v10 = 531i64;
        ViErrorReport1(v10, v7, v4);
      }
      if( v4[7] != *(_QWORD *)(a3 + 104) )
      {
        *(_DWORD *)(a3 + 4) |= 0x1000000u;
        ViErrorReport1(532i64, v7, v4);
      }
    }
  }
  if( !(unsigned int)VfMajorIsValidIrpStatus((IO_STACK_LOCATION *)a2, v8) )
    ViErrorReport6(768i64, v7, v4, v8);
}

Referenced by:

No references.