PpmResetPlatformIdleAccounting

VOID __stdcall PpmResetPlatformIdleAccounting(_PLATFORM_IDLE_ACCOUNTING *Accounting){
  unsigned int StateCount; 
  unsigned int ResetCount; 
  unsigned __int64 *p_MinTime; 
  __int64 v5; 
  unsigned __int64 *v6; 
  __int64 v7; 
  unsigned __int64 v8; 

  StateCount = Accounting->StateCount;
  ResetCount = Accounting->ResetCount;
  memset(Accounting, 0i64, 1008 * StateCount + 24);
  if( StateCount )
  {
    p_MinTime = &Accounting->State[0].IdleTimeBuckets[0].MinTime;
    v5 = StateCount;
    do
    {
      *(p_MinTime - 20) = -1i64;
      v6 = p_MinTime;
      v7 = 26i64;
      do
      {
        *v6 = -1i64;
        v6 += 4;
        --v7;
      }
      while( v7 );
      p_MinTime += 126;
      --v5;
    }
    while( v5 );
  }
  Accounting->StateCount = StateCount;
  Accounting->ResetCount = ResetCount + 1;
  v8 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
  Accounting->TimeUnit = PpmIdleBucketTimeInQpc;
  Accounting->StartTime = v8;
}

Referenced by:

PpmInstallCoordinatedIdleStates
PpmInstallPlatformIdleStates