PopPdcIdleResiliencyCallback

INT64 __fastcall PopPdcIdleResiliencyCallback(INT64 a1, UINT8 a2){
  int v2; 
  unsigned int v3; 
  __int64 v4; 
  __int64 v5; 
  __int64 v6; 
  __int64 v7; 
  INT64 Time; 
  INT64 v9; 
  int Data; 
  v2 = a2;
  v3 = a1;
  PopAcquirePolicyLock();
  PopPdcIdleResiliency = v2;
  Data = v2;
  PopSetPowerSettingValueAcDc(&GUID_PDC_IDLE_RESILIENCY_ENGAGED, 4ui64, &Data);
  PopCheckResiliencyScenarios();
  PopAccumulateNonActivatedCpuTime(v2, &qword_140C4FCA8, &qword_140C4FCB0);
  Time = PpmQueryTime(v5, v4, v6, v7);
  v9 = Time;
  if( (_BYTE)v2 )
  {
    qword_140C4FC78 = Time;
    if( (PopFxDeviceAccountingLevel & 4) != 0 )
      PopFxResumeDeviceAccounting();
    PpmIdleCsVetoAccountingResiliencyUpdate(1u);
    PopUpdateNonAttributedCpuTimeReference(0);
    PopDripsWatchdogStartWatchdog();
    PpmDisableHighPerfRequestDeferredExpiration(1);
    PopFxBeginDeviceIRPhaseAccounting(v9);
  }
  else
  {
    SourceTime += Time - qword_140C4FC78;
    PopFxEndDeviceIRPhaseAccounting(Time);
    if( (PopFxDeviceAccountingLevel & 4) != 0 )
      PopFxPauseDeviceAccounting();
    PpmIdleCsVetoAccountingResiliencyUpdate(0);
    PopUpdateNonAttributedCpuTimeReference(1u);
    PopDripsWatchdogStopWatchdog();
    PpmDisableHighPerfRequestDeferredExpiration(0);
  }
  PopReleasePolicyLock();
  PopIdleWakeNotifyIdleResiliencyState(v2);
  return PopDirectedDripsIdleResiliencyCallback(v3, v2);
}

Referenced by:

PdcPoResiliencyClient