MiEmptyTargetedWorkingSet

INT64 __fastcall MiEmptyTargetedWorkingSet(INT64 a1){
  _QWORD *v2; 
  __int64 v3; 
  _QWORD *v4; 
  INT64 result; 
  struct _KLOCK_QUEUE_HANDLE LockHandle; 
  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock(&WorkerRoutine, &LockHandle);
  v2 = (_QWORD *)(a1 + 24);
  v3 = *(_QWORD *)(a1 + 24);
  if( v3 )
  {
    v4 = *(_QWORD **)(a1 + 32);
    if( *(_QWORD **)(v3 + 8) != v2 || (_QWORD *)*v4 != v2 )
      __fastfail(3u);
    *v4 = v3;
    *(_QWORD *)(v3 + 8) = v4;
    *v2 = 0i64;
    *(_BYTE *)(a1 + 185) = *(_BYTE *)(a1 + 185) & 0xF9 | 2;
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
    __writecr8(LockHandle.OldIrql);
    MiEmptyWorkingSetInitiate(a1, 0, 0i64, -1i64);
    KeAcquireInStackQueuedSpinLock(&WorkerRoutine, &LockHandle);
    *(_BYTE *)(a1 + 185) &= 0xF9u;
    MiReturnWsToExpansionList((_MMSUPPORT_INSTANCE *)a1, 0i64);
  }
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  result = (unsigned int)KiIrqlFlags;
  __writecr8(LockHandle.OldIrql);
  return result;
}

Referenced by:

MiTrimAllSystemPagableMemory