ViTargetRemovingCheckContiguousMemory

VOID __fastcall ViTargetRemovingCheckContiguousMemory(UINT64 Param3, INT64 a2){
  _QWORD *v2; 
  _QWORD *v3; 
  __int64 v4; 
  _QWORD *v5; 
  UINT64 v6; 
  v2 = (_QWORD *)(Param3 + 256);
  if( (MmVerifierData & 0x800) != 0 && (_QWORD *)*v2 != v2 )
    VerifierBugCheckIfAppropriate(0xC4ui64, 0x62ui64, *(_QWORD *)(a2 + 96), Param3, *(_QWORD *)(Param3 + 240), v6);
  while( 1 )
  {
    v3 = (_QWORD *)*v2;
    if( (_QWORD *)*v2 == v2 )
      break;
    v4 = *v3;
    if( *(_QWORD **)(*v3 + 8i64) != v3 || (v5 = (_QWORD *)v3[1], (_QWORD *)*v5 != v3) )
      __fastfail(3u);
    *v5 = v4;
    *(_QWORD *)(v4 + 8) = v5;
    VfUtilFreePoolDispatchLevel(v3);
  }
}

Referenced by:

VfTargetDriversRemove