CcReleaseByteRangeFromWrite

VOID __stdcall CcReleaseByteRangeFromWrite(
        _SHARED_CACHE_MAP *SharedCacheMap,
        _LARGE_INTEGER *FileOffset,
        UINT64 Length,
        _BCB *FirstBcb,
        UINT8 VerifyRequired){
  __int64 v5; 
  _BCB *v6; 
  unsigned int v7; 
  __int64 v10; 
  _LARGE_INTEGER v11; 
  unsigned int v12; 
  _LARGE_INTEGER FileOffseta; 

  v5 = 0i64;
  v6 = FirstBcb;
  v7 = Length;
  if( FirstBcb )
  {
    if( *(_WORD *)FirstBcb != 765 )
      KeBugCheckEx(0x34u, (PVOID)0x14B4, (PVOID)0xFFFFFFFFC0000420i64, 0i64, 0i64);
    do
    {
      v10 = *((_QWORD *)v6 + 2);
      if( *(_WORD *)v6 == 765 )
      {
        v5 = *((_QWORD *)v6 + 1);
        if( (*((_DWORD *)SharedCacheMap + 38) & 0x200) != 0 )
          CcUnpinFileDataEx(v6, (*((_DWORD *)SharedCacheMap + 38) & 2) != 0, SET_CLEAN);
        if( VerifyRequired )
          CcSetDirtyPinnedData(v6, 0i64);
        CcUnpinFileDataEx(v6, 1u, UNPIN);
      }
      v6 = (_BCB *)(v10 - 16);
    }
    while( FileOffset->QuadPart != v5 );
  }
  else if( VerifyRequired )
  {
    v11 = *FileOffset;
    FileOffseta = *FileOffset;
    if( (_DWORD)Length )
    {
      do
      {
        if( (v11.QuadPart & 0xFFFFFFFFFE000000ui64) < ((v11.QuadPart + v7 - 1i64) & 0xFFFFFFFFFE000000ui64) )
          v12 = ((v11.anonymous_0.LowPart + 0x1FFFFFF) & 0xFE000000) - v11.anonymous_0.LowPart;
        else
          v12 = v7;
        if( v12 > 0x2000000 )
          KeBugCheckEx(0x34u, (PVOID)0x14A1, (PVOID)0xFFFFFFFFC0000420i64, 0i64, 0i64);
        CcSetDirtyInMask(SharedCacheMap, &FileOffseta, v12, 0i64);
        v11.QuadPart += v12;
        FileOffseta = v11;
        v7 -= v12;
      }
      while( v7 );
    }
  }
}

Referenced by:

CcFlushCachePriv
CcNotifyOfMappedWriteComplete