PopDeepSleepClearDisengageReason

VOID __stdcall PopDeepSleepClearDisengageReason(POP_DEEP_SLEEP_DISENGAGE_REASON Reason){
  int v2; 
  unsigned __int8 v3; 
  NPTEXTMETRIC *v4; 
  INT64 v5; 
  unsigned __int64 v6; 

  v2 = 1 << Reason;
  v3 = KeAcquireSpinLockRaiseToDpc((UINT64 *)&PopIrpWorkerControlEvent + 27);
  v5 = *(&PopIrpWorkerControlEvent + 52);
  v6 = v3;
  *(&PopIrpWorkerControlEvent + 52) &= ~v2;
  if( (_DWORD)v5 != *(&PopIrpWorkerControlEvent + 52) )
  {
    PopDiagTraceClearDeepSleepConstraint((unsigned int)Reason, v5, v4);
    PopDeepSleepResiliencyPhaseAccountingUpdate((PVOID)(unsigned int)Reason);
    if( !*(&PopIrpWorkerControlEvent + 52) )
    {
      if( (PopAggressiveStandbyAppliedActions & 2) != 0 )
      {
        KeSetForceIdle();
        PopIsForceIdleSet = 1;
      }
      if( !*(&PopIrpWorkerControlEvent + 144) )
      {
        *(&PopIrpWorkerControlEvent + 144) = 1;
        ExQueueWorkItem((PWORK_QUEUE_ITEM)&PopIrpWorkerControlEvent + 5, DelayedWorkQueue);
      }
    }
  }
  KxReleaseSpinLock((UINT64 *)&PopIrpWorkerControlEvent + 27);
  __writecr8(v6);
}

Referenced by:

PopCheckResiliencyScenarios
PopDecrementPowerSettingPendingUpdates
PopDequeueQuerySetIrp
PopDirectedDripsHandleResiliencyNotification
PopDirectedDripsWorkerRoutine
PopEnforceResiliencyScenarios
PopFxPlatformStateAvailable
PopIdleAoAcDozeToS4
PopPowerInformationInternal
PopSetPowerActionState