PopSystemIdleWorker

NTSTATUS __stdcall PopSystemIdleWorker(){
  int v1; 
  UINT64 v3; 

  v3 = 0i64;
  if( !PopPlatformAoAc )
    KeBugCheckEx(0xA0u, (PVOID)0xA, (PVOID)0x100, 0i64, 0i64);
  PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 15);
  while( _BitScanForward((unsigned int *)&v1, *(&PopIrpWorkerControlEvent + 56)) )
  {
    _InterlockedAnd((_DWORD *)&PopIrpWorkerControlEvent + 56, ~(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((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 15);
  PopIdleDetection();
  PopExecuteSystemIdleAction((_LOADER_PARAMETER_BLOCK *)(unsigned int)dword_140C0F288);
  PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 15);
  LODWORD(dword_140C0F288) = 0;
  PopReleaseRwLock((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 15);
  return 0;
}

Referenced by:

No references.