MiSignalNonPagedPoolWatchers

VOID __fastcall MiSignalNonPagedPoolWatchers(INT64 a1){
  UINT64 v1; 
  UINT8 v2; 
  UINT8 v3; 
  __int64 v4; 
  unsigned __int64 v5; 
  struct _KLOCK_QUEUE_HANDLE LockHandle; 
  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock(&qword_140C51E00, &LockHandle);
  if( qword_140C50BD0 )
  {
    v4 = *(_QWORD *)MiState;
    v5 = qword_140C4C608;
    if( qword_140C4C608 >= (unsigned __int64)(*(_QWORD *)MiState - 5120i64) )
    {
      if( qword_140C50BD0->Header.SignalState )
        KeResetEvent(qword_140C50BD0, v1, v2, v3, (IRP *)LockHandle.LockQueue.Next);
    }
    else if( !qword_140C50BD0->Header.SignalState )
    {
      KeSetEvent(qword_140C50BD0, 0);
    }
    if( v5 >= v4 - 2048 )
    {
      if( !VirtualAddress->Header.SignalState )
        KeSetEvent(VirtualAddress, 0);
    }
    else if( VirtualAddress->Header.SignalState )
    {
      KeResetEvent(VirtualAddress, v1, v2, v3, (IRP *)LockHandle.LockQueue.Next);
    }
  }
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
}

Referenced by:

MiInitializeMemoryEvents
MiInitializeNonPagedPoolThresholds