MiCompareTbFlushTimeStamp

UINT8 __stdcall MiCompareTbFlushTimeStamp(UINT64 OldStamp, UINT64 Mask){
  int v2; 
  int v3; 
  int v4; 
  unsigned int v5; 
  signed __int32 v7[10]; 
  UINT64 SpinCount; 
  v2 = Mask;
  v3 = OldStamp & 1;
  v4 = OldStamp;
  while( 1 )
  {
    _InterlockedOr(v7, 0);
    v5 = v2 & (KiTbFlushTimeStamp - v4);
    if( v5 > 2 || !v3 && v5 >= 2 )
      return 0;
    if( (KiTbFlushTimeStamp & 1) == 0 )
      break;
    LODWORD(SpinCount) = 0;
    _InterlockedOr(v7, 0);
    while( _bittest((const signed __int32 *)&KiTbFlushTimeStamp, 0) )
      KeYieldProcessorEx(&SpinCount);
    if( !v3 )
      return 0;
  }
  return 1;
}

Referenced by:

MiAttachSession
MiFlushTbAsNeeded
MiObtainSystemCacheView
MmMapViewInSystemCache