PopSystemIdleWorker

INT64 __stdcall PopSystemIdleWorker(){
  int v1; 
  UINT64 v3; 
  v3 = 0i64;
  if( !PopPlatformAoAc )
    KeBugCheckEx(0xA0u, 0xAui64, 0x100ui64, 0i64, 0i64);
  PopAcquireRwLockExclusive(&PopSystemIdleLock);
  while( _BitScanForward((unsigned int *)&v1, PopPendingSystemIdleResetMask) )
  {
    _InterlockedAnd(&PopPendingSystemIdleResetMask, ~(1 << v1));
    if( v1 == 2 )
      PopPulseSystemIdleEvent(2ui64);
  }
  PopUpdateLastUserInputTime();
  PopIsSystemIdle((INT64)&qword_140C0F1A8, (unsigned int)dword_140C0F194, &v3, (INT64)&qword_140C0F2A8);
  LODWORD(dword_140C0F288) = PopSystemIdleContext;
  PopReleaseRwLock((UINT64)&PopSystemIdleLock);
  PopIdleDetection();
  PopExecuteSystemIdleAction((_LOADER_PARAMETER_BLOCK *)(unsigned int)dword_140C0F288);
  PopAcquireRwLockExclusive(&PopSystemIdleLock);
  LODWORD(dword_140C0F288) = 0;
  PopReleaseRwLock((UINT64)&PopSystemIdleLock);
  return 0i64;
}

Referenced by:

No references.