PopDeepSleepClearDisengageReason

INT64 __fastcall PopDeepSleepClearDisengageReason(INT64 a1){
  UINT64 v1; 
  unsigned int v2; 
  int v3; 
  EVENT_DESCRIPTOR *v4; 
  INT64 v5; 
  unsigned __int8 v6; 
  unsigned __int64 v7; 
  INT64 result; 
  v2 = a1;
  v3 = 1 << a1;
  KeAcquireSpinLockRaiseToDpc(&PopDeepSleepDisengageReasonLock, v1);
  v5 = (unsigned int)PopDeepSleepDisengageReasonMask;
  v7 = v6;
  LODWORD(PopDeepSleepDisengageReasonMask) = PopDeepSleepDisengageReasonMask & ~v3;
  if( (_DWORD)v5 != (_DWORD)PopDeepSleepDisengageReasonMask )
  {
    PopDiagTraceClearDeepSleepConstraint(v2, v5, v4);
    PopDeepSleepResiliencyPhaseAccountingUpdate(v2, 0);
    if( !(_DWORD)PopDeepSleepDisengageReasonMask )
    {
      if( (PopAggressiveStandbyAppliedActions & 2) != 0 )
      {
        KeSetForceIdle();
        PopIsForceIdleSet = 1;
      }
      if( !PopDeepSleepEvaluateWorkItemQueued )
      {
        PopDeepSleepEvaluateWorkItemQueued = 1;
        ExQueueWorkItem(&PopDeepSleepEvaluateWorkItem, DelayedWorkQueue);
      }
    }
  }
  KxReleaseSpinLock(&PopDeepSleepDisengageReasonLock);
  result = (unsigned int)KiIrqlFlags;
  __writecr8(v7);
  return result;
}

Referenced by:

PopCheckResiliencyScenarios
PopDecrementPowerSettingPendingUpdates
PopDequeueQuerySetIrp
PopDirectedDripsHandleResiliencyNotification
PopDirectedDripsWorkerRoutine
PopEnforceResiliencyScenarios
PopFxPlatformStateAvailable
PopIdleAoAcDozeToS4
PopPowerInformationInternal
PopSetPowerActionState
PpmUpdatePlatformIdleVeto