PpmEndHighPerfRequest

__int64 __fastcall PpmEndHighPerfRequest(int a1, UINT64 a2){
  __int64 v2; 
  unsigned __int8 v3; 
  unsigned __int64 v4; 
  __int64 v5; 
  __int64 v6; 
  __int64 result; 
  v2 = a1;
  KeAcquireSpinLockRaiseToDpc(&PpmHighPerfRequestLock, a2);
  v4 = v3;
  if( !PpmHighPerfDuration[v2] || PpmHighPerfDeferredEndDisabled )
  {
    PoClearPowerRequestInternal(PpmHighPerfPowerRequest, 4ui64);
  }
  else
  {
    ++PpmHighPerfDeferredEndCount;
    v5 = (unsigned int)(10000 * PpmHighPerfDuration[v2]);
    v6 = PpmHighPerfDeferredEndTime;
    if( PpmHighPerfDeferredEndTime <= (unsigned __int64)(v5 + *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart) )
    {
      v6 = v5 + *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
      PpmHighPerfDeferredEndTime = v5 + *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
    }
    KiSetTimerEx(
      (_KTIMER *)&PpmHighPerfEndTimer,
      (_LARGE_INTEGER)(*(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - v6),
      0i64,
      0,
      &PpmHighPerfEndDpc);
  }
  KxReleaseSpinLock(&PpmHighPerfRequestLock);
  result = (unsigned int)KiIrqlFlags;
  __writecr8(v4);
  return result;
}

Referenced by:

PdcPoPerfOverride
PoClearBroadcast
PopIssueActionRequest
PopSetupHighPerfPowerRequest
PopUserShutdownCancelled