IoDiskIoAttributionDereference

VOID __stdcall IoDiskIoAttributionDereference(VOID *OpaqueContext){
  signed __int64 v2; 
  bool v3; 
  signed __int64 v4; 
  VOID *v5; 

  v2 = _InterlockedExchangeAdd64((volatile signed __int64 *)OpaqueContext + 4, 0xFFFFFFFFFFFFFFFFui64);
  v3 = v2 <= 1;
  v4 = v2 - 1;
  if( v3 )
  {
    if( v4 )
      __fastfail(0xEu);
    v5 = (VOID *)*((_QWORD *)OpaqueContext + 22);
    if( v5 )
      IoDiskIoAttributionDereference(v5);
    ExFreePoolWithTag(OpaqueContext, 0);
  }
}

Referenced by:

CcCompleteAsyncRead
CcCopyReadEx
CcMapAndCopyInToCache
CcPerformReadAhead
CcUninitializeCacheMap
IoDiskIoAttributionDereference
IoGetIoRateControl
IoNotifyQuotaState
IoRecordIoAttribution
IoSetDiskIoAttributionOnProcess
IopAcquireReferencesFromIoAttributionHandle
MiCheckAndUpdateIoAttribution
MiFlushSectionInternal
MiGatherMappedPages
MiSegmentDelete
MmUpdateSectionIoAttribution
PspIoRateEntryActivate
PspIoRateEntryDeactivate