PopCaptureSleepStudyStatistics

__int64 __fastcall PopCaptureSleepStudyStatistics(_QWORD *a1, __int64 a2, __int64 a3){
  unsigned int v3; 
  BOOL IsHibernateSupported; 
  INT8 IsLockConsoleTimeoutActive; 
  UINT64 *v9; 
  __int64 v10; 
  _KIRQL v11; 
  _SYSTEM_POWER_CONDITION v12; 
  _SYSTEM_POWER_CONDITION v13; 
  _SYSTEM_POWER_CONDITION v14; 
  _SYSTEM_POWER_CONDITION v15; 
  _SYSTEM_POWER_CONDITION v16; 
  int v17; 
  _SYSTEM_POWER_CONDITION v18; 
  NTSTATUS ModernStandbyTransitionReason; 
  UINT8 v20; 
  INT64 v21; 
  INT64 v22; 
  INT64 v23; 
  INT64 v24; 
  INT64 v25; 
  UINT8 v26; 
  INT64 v27; 
  UINT64 v28; 
  INT64 v29; 
  UINT64 v30; 
  UINT8 v31; 
  UINT64 v32; 
  char v33; 
  _KIRQL v34; 
  UINT64 v36; 
  UINT64 v37; 
  UINT64 v38; 
  UINT64 v39; 
  UINT64 v40; 
  UINT64 v41; 
  PO_S0_DISCONNECTED_REASON Reason; 
  int ReturnedLength; 
  int v44; 
  int v45; 
  int v46; 
  int v47; 
  int v48; 
  int v49; 
  INT64 v50; 
  UINT64 PreVetoCount; 
  UINT64 VetoCount; 
  __int128 v53; 
  __int128 v54; 
  SYSTEM_BATTERY_STATE PowerState; 
  _SYSTEM_POWER_CAPABILITIES FilteredCapabilities[20]; 
  UINT64 ReturnedLengtha; 

  v3 = 0;
  PreVetoCount = 0i64;
  Reason = PoS0DisconnectedReasonNone;
  LODWORD(ReturnedLengtha) = 0;
  VetoCount = 0i64;
  memset(&PowerState, 0, sizeof(PowerState));
  v53 = 0i64;
  v54 = 0i64;
  memset(FilteredCapabilities, 0i64, 0x4Cu);
  ReturnedLength = 0;
  v48 = 0;
  v47 = 0;
  IsHibernateSupported = 0;
  IsLockConsoleTimeoutActive = 0;
  v45 = 0;
  v46 = 0;
  v44 = 0;
  PopCurrentPowerStatePrecise(&PowerState);
  if( *(_OWORD *)a1 == *(_OWORD *)&CmFcpWnfTypeId.TypeId[4] )
    IsLockConsoleTimeoutActive = PopIsLockConsoleTimeoutActive();
  PopAcquirePolicyLock();
  v10 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
  if( *a1 == *(_QWORD *)&CmFcpWnfTypeId.TypeId[4].Data1 && a1[1] == *(_QWORD *)CmFcpWnfTypeId.TypeId[4].Data4 )
  {
    PopWnfCsEnterScenarioId = a2;
    PopCalculateIdleInformation((__int64)&v53, v9);
    PpmGetPlatformSelectionVetoCounts((unsigned int)PlatformIdleStateIndex, &PreVetoCount, &VetoCount);
    LODWORD(Pfn1) = PowerState.RemainingCapacity;
    qword_140C4FC50 = *((_QWORD *)&v53 + 1);
    dword_140C4FC60 = DWORD2(v54);
    qword_140C4FC58 = v53;
    InitialHwDripsResidency = v54;
    qword_140C4FCE0 = PreVetoCount;
    qword_140C4FCE8 = VetoCount;
    dword_140C4FD10 = PowerState.MaxCapacity;
    qword_140C4FC48 = v10;
    SourceTime = 0i64;
    qword_140C4FC68 = 0i64;
    qword_140C4FC70 = 0i64;
    qword_140C4FC90 = 0i64;
    qword_140C4FCC8 = 0i64;
    qword_140C4FCD0 = 0i64;
    qword_140C4FCA0 = 0i64;
    qword_140C4FCB0 = 0i64;
    CpuBusyTime = 0i64;
    qword_140C4FD20 = 0i64;
    qword_140C4FD28 = 0i64;
    qword_140C4FD30 = 0i64;
    byte_140C4FD0C = 0;
    PopNetIsDisconnectStandbyActive(&Reason);
    LOBYTE(v11) = KeAcquireSpinLockRaiseToDpc(&qword_140C22E38);
    qword_140C22E28 = 0i64;
    qword_140C22E30 = 0i64;
    PopDisplayOnPerformance = 0i64;
    dword_140C22E40 = 1;
    KeReleaseSpinLock(&qword_140C22E38, v11);
    PopGetEnergyCounter(&CsSessionEnergyCounter);
    byte_140C4FD00 = (*(&stru_140C23628 + 441) == 0) | byte_140C4FD00 & 0xFE;
    byte_140C4FD01 ^= (byte_140C4FD01 ^ PopNetIsCompliantNicPresent()) & 1;
    if( (((Reason - 1) & 0xFFFFFFFC) != 0 || Reason == PoS0DisconnectedReasonSettingPolicy)
      && PopNetCheckUserConnectivityPolicy()
      && !PopNetCheckOpportunisticDs() )
    {
      byte_140C4FD01 &= ~2u;
    }
    else
    {
      byte_140C4FD01 |= 2u;
    }
    if( PopDiagCachedAggregatorIntent )
    {
      dword_140C4FD3C = PopDiagCachedAggregatorIntent;
      dword_140C4FD40 = 6;
      PopDiagCachedAggregatorAction = 6;
      PopDiagCachedAggregatorIntent = 0;
    }
    PopGetPowerSettingValue(&GUID_ENERGY_SAVER_POLICY, v12, (VOID *)3, &ReturnedLength, v36, &ReturnedLengtha);
    byte_140C4FD01 ^= (byte_140C4FD01 ^ (4 * ReturnedLength)) & 4;
    PopGetPowerSettingValue(&GUID_VIDEO_POWERDOWN_TIMEOUT, v13, (VOID *)3, &v44, v37, &ReturnedLengtha);
    dword_140C4FCF0 = v44;
    PopGetPowerSettingValue(&GUID_VIDEO_CONSOLE_LOCK_TIMEOUT, v14, (VOID *)3, &v45, v38, &ReturnedLengtha);
    dword_140C4FCF4 = v45;
    byte_140C4FCF8 = IsLockConsoleTimeoutActive;
    PopGetPowerSettingValue(&GUID_STANDBY_TIMEOUT, v15, (VOID *)3, &v46, v39, &ReturnedLengtha);
    dword_140C4FCFC = v46;
    byte_140C4FD15 = (char)KdDebuggerEnabled;
    PopFilterCapabilities((_SYSTEM_POWER_CAPABILITIES *)&stru_140C23628 + 518, FilteredCapabilities);
    v3 = v17;
    if( v17 >= 0 )
      IsHibernateSupported = PopIsHibernateSupported(FilteredCapabilities);
    byte_140C4FD14 = IsHibernateSupported;
    PopGetPowerSettingValue(&GUID_HIBERNATE_TIMEOUT, v16, (VOID *)3, &v47, v40, &ReturnedLengtha);
    dword_140C4FD18 = v47;
    PopGetPowerSettingValue(&GUID_STANDBY_BUDGET_PERCENT, v18, (VOID *)3, &v48, v41, &ReturnedLengtha);
    dword_140C4FD1C = v48;
    _InterlockedExchange64(qword_140C4FD80, 0i64);
    if( PopFxLookupSocSubsystemsByPlatformIdleState(PlatformIdleStateIndex) )
      v3 = PopFxResetSocSubsystemAccounting((unsigned int)PlatformIdleStateIndex);
    PopFxStartDeviceAccounting();
    PpmIdleStartCsVetoAccounting();
    dword_140C4FD04 = *(&stru_140C23628 + 537);
    dword_140C4FD08 = PopAggressiveStandbyAppliedActions;
    ExStartRecordingIRTimerExpiries();
    PpmResetDripsAccountingSnapshot();
    ModernStandbyTransitionReason = PopGetModernStandbyTransitionReason(1, 0i64);
    PopDiagTraceCsEnterReason((POWER_MONITOR_REQUEST_REASON)ModernStandbyTransitionReason);
    PopSetConnectedStandbyMarker(v20);
    PopStatsNotifyPowerRequestCsState(v21, 1);
    v50 = PopWdiCurrentScenarioInstanceId;
    PopDirectedDripsNotify(0i64, &v50, v22, v23);
    PopIdleWakeNotifyModernStandbyEnter();
    v49 = 0;
    PopQueryInputSuppressionCount(&v49);
    dword_140C4FD38 = v49;
  }
  else
  {
    PopIdleWakeNotifyModernStandbyExit();
    PopCalculateCsSummary(a3, (UINT64 *)(unsigned int)PopSleepstudyStopReason);
    v50 = a3;
    PopDirectedDripsNotify(1i64, &v50, v24, v25);
    PpmIdleCaptureCsVetoAccounting(v26, (unsigned int)PlatformIdleStateIndex, v27);
    ExStopRecordingIRTimerExpiries();
    PopFxStopDeviceAccounting();
    PpmSnapDripsAccountingSnapshot(v28, 10i64 * *(_QWORD *)(a3 + 32));
    PopDiagTraceCsConsumption((int *)a3);
    PopDiagTraceCsExitReason(a3, a2);
    if( PopFxLookupSocSubsystemsByPlatformIdleState(PlatformIdleStateIndex) )
    {
      PopFxLogSocSubsystemBlockingTimes(v29, (unsigned int)PlatformIdleStateIndex, v30);
      v3 = PopFxLogSocSubsystemMetadata(v31, (unsigned int)PlatformIdleStateIndex, v32);
    }
    PopStatsNotifyPowerRequestCsState(v29, 0);
    PopGetModernStandbyTransitionReason(0, 0i64);
    PopClearConnectedStandbyMarker();
    qword_140C4FC48 = 0i64;
    v33 = KeAcquireSpinLockRaiseToDpc(&qword_140C22E38);
    dword_140C22E40 = 0;
    LOBYTE(v34) = v33;
    KeReleaseSpinLock(&qword_140C22E38, v34);
  }
  PopReleasePolicyLock();
  return v3;
}

Referenced by:

PopSleepstudyCaptureSessionStatistics