HvlGetPpmStatsForProcessor

INT64 __fastcall HvlGetPpmStatsForProcessor(__int64 a1, _QWORD *a2, _QWORD *a3){
  __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  __int64 v9; 
  __int64 v10; 
  INT64 ReferenceTime; 
  __int64 v13; 
  if( (struct _KPRCB *)a1 == KeGetCurrentPrcb() )
  {
    v6 = HIDWORD(xmmword_140CED0E0);
    v7 = *(_QWORD *)(a1 + 33616);
    do
    {
      v8 = *(_QWORD *)(v7 + 8 * v6);
      *a3 = *(_QWORD *)(*(_QWORD *)(a1 + 33616) + 8i64 * (unsigned int)xmmword_140CED0F0);
    }
    while( v8 != *(_QWORD *)(v7 + 8 * v6) );
    v9 = DWORD1(xmmword_140CED0F0);
    v10 = *(_QWORD *)(a1 + 33616);
    do
    {
      *a2 = *(_QWORD *)(v10 + 8 * v9);
      ReferenceTime = HvlGetReferenceTime();
    }
    while( *a2 != *(_QWORD *)(v10 + 8 * v9) );
  }
  else
  {
    ReferenceTime = HvlGetReferenceTime();
    v13 = (unsigned int)xmmword_140CED0F0;
    *a2 = ReferenceTime - *(_QWORD *)(*(_QWORD *)(a1 + 33616) + 8i64 * DWORD1(xmmword_140CED0E0));
    *a3 = *(_QWORD *)(*(_QWORD *)(a1 + 33616) + 8 * v13);
  }
  return ReferenceTime;
}

Referenced by:

PpmUpdatePerformanceFeedback