PpmUpdatePlatformIdleAccounting

INT64 __fastcall PpmUpdatePlatformIdleAccounting(INT64 a1, UINT64 a2){
  INT64 result; 
  __int64 *v3; 
  result = 0i64;
  v3 = &PpmIdleIntervalLimits;
  do
  {
    if( a2 < *v3 )
      break;
    result = (unsigned int)(result + 1);
    v3 += 3;
  }
  while( (unsigned int)result < 0x1A );
  if( (unsigned int)result >= 0x1A )
  {
    ++*(_DWORD *)(a1 + 40);
  }
  else
  {
    result *= 32i64;
    *(_QWORD *)(result + a1 + 176) += a2;
    ++*(_DWORD *)(result + a1 + 200);
    if( a2 < *(_QWORD *)(result + a1 + 184) )
      *(_QWORD *)(result + a1 + 184) = a2;
    if( a2 > *(_QWORD *)(result + a1 + 192) )
      *(_QWORD *)(result + a1 + 192) = a2;
  }
  if( a2 < *(_QWORD *)(a1 + 24) )
    *(_QWORD *)(a1 + 24) = a2;
  if( a2 > *(_QWORD *)(a1 + 16) )
    *(_QWORD *)(a1 + 16) = a2;
  return result;
}

Referenced by:

PpmExitCoordinatedIdle