CcRemoveExternalCache

VOID __stdcall CcRemoveExternalCache(_CC_EXTERNAL_CACHE_INFO *CacheInfo){
  unsigned __int8 v2; 
  _LIST_ENTRY *Blink; 
  _LIST_ENTRY *p_Links; 
  unsigned __int64 v5; 
  _LIST_ENTRY *Flink; 

  v2 = KeAcquireSpinLockRaiseToDpc((UINT64 *)&CmpDummyThreadEvent + 385);
  Blink = CacheInfo->Links.Blink;
  p_Links = &CacheInfo->Links;
  v5 = v2;
  Flink = p_Links->Flink;
  if( p_Links->Flink->Blink != p_Links || Blink->Flink != p_Links )
    __fastfail(3u);
  Blink->Flink = Flink;
  Flink->Blink = Blink;
  if( (unsigned int)(*(&CmpDummyThreadEvent + 720) - 1) >= *(&CmpDummyThreadEvent + 720) )
    KeBugCheckEx(0x34u, (PVOID)0x138C, (PVOID)0xFFFFFFFFC0000420i64, 0i64, 0i64);
  --*(&CmpDummyThreadEvent + 720);
  KxReleaseSpinLock((UINT64 *)&CmpDummyThreadEvent + 385);
  __writecr8(v5);
}

Referenced by:

CcUnregisterExternalCache