PopActionRetrieveInitialState

VOID __stdcall PopActionRetrieveInitialState(
        _SYSTEM_POWER_STATE *LightestSystemState,
        _SYSTEM_POWER_STATE *DeepestSystemState,
        _SYSTEM_POWER_STATE *InitialSystemState,
        UINT8 *QueryDevices){
  _SYSTEM_POWER_STATE *v4; 
  __int64 v8; 
  _SYSTEM_POWER_STATE v9; 

  v4 = LightestSystemState;
  if( (unsigned int)(SystemAction - 4) <= 2 )
  {
    *LightestSystemState = PowerSystemShutdown;
    *DeepestSystemState = PowerSystemShutdown;
  }
  else if( SystemAction == PowerActionWarmEject )
  {
    *DeepestSystemState = PowerSystemHibernate;
    PopVerifySystemPowerState(DeepestSystemState, SubstituteLightenSleep);
  }
  else
  {
    v8 = *(&stru_140C23628 + 232);
    *DeepestSystemState = *(_SYSTEM_POWER_STATE *)(*(&stru_140C23628 + 232) + 72i64);
    v9 = *(_DWORD *)(v8 + 68);
    if( v9 > *v4 )
      *v4 = v9;
  }
  if( *v4 > *DeepestSystemState )
    *DeepestSystemState = *v4;
  *QueryDevices = 1;
  if( *v4 == PowerSystemShutdown || (Flags & 0x80000000) != 0i64 && (unsigned int)(SleepReason - 1) <= 1 )
    *QueryDevices = 0;
  if( PopFastS4Check() )
  {
    *v4 = *DeepestSystemState;
    LODWORD(Flags) = Flags & 0xEFFFFFFF;
  }
  if( (Flags & 0x10000000) == 0 )
    v4 = DeepestSystemState;
  *InitialSystemState = *v4;
}

Referenced by:

PopTransitionSystemPowerStateEx