MiScheduleZeroPageThreads

_LARGE_INTEGER __stdcall MiScheduleZeroPageThreads(INT64 a1){
  _LARGE_INTEGER result; 
  _LARGE_INTEGER v3; 
  unsigned int i; 
  UINT64 v5; 
  __int64 v6; 
  __int64 v7; 
  int v8; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  result.QuadPart = 0i64;
  memset(&LockHandle, 0, sizeof(LockHandle));
  if( *(_BYTE *)(a1 + 6297) )
  {
    result.QuadPart = KeQueryPerformanceCounter(0i64);
    v3 = result;
    for( i = 0; i < (unsigned __int16)KeNumberNodes; ++i )
    {
      v5 = *(_QWORD *)(a1 + 16) + 4544i64 * i;
      if( *(_BYTE *)(v5 + 4490) )
      {
        v6 = *(_QWORD *)(v5 + 4432);
        v7 = *(_QWORD *)(v6 + 48);
        if( v3.QuadPart <= v7 )
        {
          ++dword_140C2A050;
        }
        else if( 1000000 * (v3.QuadPart - v7) / *(&stru_140C4DB30 + 36) < 0x10000 )
        {
          ++dword_140C2A054;
        }
        else
        {
          KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)(v6 + 24), &LockHandle);
          if( *(_DWORD *)(v6 + 136) )
          {
            if( v7 == *(_QWORD *)(v6 + 48) )
            {
              MiReduceZeroingThreads((_MI_ZERO_THREAD_CONTEXT *)v6, v5);
              if( v8 == 7 )
                ++dword_140C2A05C;
              else
                ++dword_140C2A060;
              *(_QWORD *)(v6 + 48) = KeQueryPerformanceCounter(0i64);
            }
            else
            {
              ++dword_140C2A058;
            }
          }
          KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
          __writecr8(LockHandle.OldIrql);
        }
      }
      else
      {
        ++dword_140C2A04C;
      }
      result.QuadPart = (unsigned __int16)KeNumberNodes;
    }
  }
  return result;
}

Referenced by:

MiWorkingSetManager