MiReclaimUnusedUltraMdlMaps

NTSTATUS __stdcall MiReclaimUnusedUltraMdlMaps(){
  NTSTATUS result; 
  int v1; 
  unsigned int v2; 
  unsigned int v3; 
  unsigned __int64 v4; 
  PSLIST_ENTRY v5; 
  PSLIST_ENTRY v6; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  result = 0;
  memset(&LockHandle, 0, sizeof(LockHandle));
  v1 = 0;
  v2 = 0;
  if( KeNumberNodes )
  {
    do
    {
      v3 = 0;
      v4 = (unsigned __int64)v2 << 9;
      do
      {
        while( *(_WORD *)(v4 + *(&stru_140C4DB30 + 457)) > 2u )
        {
          v5 = RtlpInterlockedPopEntrySList((PSLIST_HEADER)(*(&stru_140C4DB30 + 457) + ((8i64 * v2 + v3) << 6)));
          v6 = v5;
          if( !v5 )
            break;
          ++v1;
          MiDeleteUltraMapContext((INT64)(&v5->Next + 1), (_XSTATE_CONFIGURATION *)3);
          ExFreePoolWithTag(v6, 0);
        }
        ++v3;
        v4 += 64i64;
      }
      while( v3 < 8 );
      result = (unsigned __int16)KeNumberNodes;
      ++v2;
    }
    while( v2 < (unsigned __int16)KeNumberNodes );
    if( v1 )
    {
      KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C4DB30 + 448, &LockHandle);
      *(&stru_140C4DB30 + 912) -= v1;
      KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
      result = KiIrqlFlags;
      __writecr8(LockHandle.OldIrql);
    }
  }
  return result;
}

Referenced by:

MiWorkingSetManager