ExpRemoveGeneralLookaside

VOID __stdcall ExpRemoveGeneralLookaside(UINT64 *ListLock, _GENERAL_LOOKASIDE_POOL *Lookaside){
  PVOID *v4; 
  unsigned __int8 v5; 
  unsigned __int64 v6; 
  __int64 v7; 
  PVOID **v8; 
  KeAcquireSpinLockRaiseToDpc(ListLock, (UINT64)Lookaside);
  v4 = (PVOID *)((char *)Lookaside + 64);
  v6 = v5;
  v7 = *((_QWORD *)Lookaside + 8);
  v8 = (PVOID **)*((_QWORD *)Lookaside + 9);
  if( *(_GENERAL_LOOKASIDE_POOL **)(v7 + 8) != (_GENERAL_LOOKASIDE_POOL *)((char *)Lookaside + 64) || *v8 != v4 )
    __fastfail(3u);
  *v8 = (PVOID *)v7;
  *(_QWORD *)(v7 + 8) = v8;
  KxReleaseSpinLock(ListLock);
  __writecr8(v6);
  *((_WORD *)Lookaside + 8) = 0;
  *v4 = MmBadPointer;
}

Referenced by:

ExDeleteLookasideListEx
ExDeleteNPagedLookasideList
ExDeletePagedLookasideList