PopIdleArmAoAcDozeS4Timer

VOID __stdcall PopIdleArmAoAcDozeS4Timer(){
  char v0; 
  UINT64 v1; 
  unsigned __int8 v2; 
  unsigned __int64 v3; 
  EVENT_DESCRIPTOR *v4; 
  _SYSTEM_POWER_CAPABILITIES FilteredCapabilities; 
  INT64 v6; 
  UINT64 v7; 
  v7 = 0i64;
  LODWORD(v6) = 0;
  memset((INT64)&FilteredCapabilities, 0i64);
  PopFilterCapabilities((_SYSTEM_POWER_CAPABILITIES *)&PopCapabilities, &FilteredCapabilities);
  v0 = 0;
  if( PopIsDozeSupported(&FilteredCapabilities.PowerButtonPresent) && PopIdleChooseDozeS4Time(&v7, &v6) )
  {
    KeAcquireSpinLockRaiseToDpc(&PopIdleAoAcDozeS4Lock, v1);
    v3 = v2;
    if( !(_BYTE)MinState )
    {
      KeSetTimer2(&PopIdleAoAcDozeS4Timer, v7, 0i64, 0i64);
      v0 = 1;
      dword_140C231E8 = v6;
      LOBYTE(MinState) = 1;
    }
    KxReleaseSpinLock(&PopIdleAoAcDozeS4Lock);
    __writecr8(v3);
    if( v0 )
      PopTraceSystemIdleS0LowPowerDozeTimerArmed(v6, v7, v4);
  }
}

Referenced by:

PopIdleCsStateChanged
PopUmpoProcessPowerMessage
PopUpdateSmartUserPresencePredictions
PopUpdateSystemIdleContext