CcDereferenceSharedCacheMapFileObject

VOID __fastcall CcDereferenceSharedCacheMapFileObject(INT64 a1, UINT64 a2){
  signed __int64 v2; 
  signed __int64 v3; 
  _m_prefetchw((const void *)(a1 + 96));
  v2 = *(_QWORD *)(a1 + 96);
  if( (a2 ^ v2) >= 0xF )
  {
LABEL_4:
    ObDereferenceObjectDeferDeleteWithTag((PVOID)a2, 0x746C6644ui64);
  }
  else
  {
    while( 1 )
    {
      v3 = v2;
      v2 = _InterlockedCompareExchange64((volatile signed __int64 *)(a1 + 96), v2 + 1, v2);
      if( v3 == v2 )
        break;
      if( (a2 ^ v2) >= 0xF )
        goto LABEL_4;
    }
  }
}

Referenced by:

CcDeleteSharedCacheMap
CcGetDirtyPagesHelper
CcIsFatalWriteError
CcPerfLogFlushCache
CcPerfLogFlushSection
CcPerfLogWorkItemEnqueue
CcPurgeAndClearCacheSection
CcUnmapAndPurge
CcUnmapVacb
CcUnpinRepinnedBcb
CcWriteBehindInternal