PpmResetPerfTimes

__int64 __fastcall PpmResetPerfTimes(__int64 a1, __int64 a2){
  __int64 v2; 
  _OWORD *v3; 
  _KPRCB *v4; 
  UINT64 v5; 
  __int64 result; 
  v2 = *(_QWORD *)(a1 + 16);
  if( v2 )
  {
    v3 = (_OWORD *)(v2 + 32);
    if( *(_BYTE *)(a1 + 60) )
    {
      v4 = (_KPRCB *)(a1 - 33128);
      PpmResetPerformanceAccumulation((LARGE_INTEGER *)(a1 - 33128));
      LOBYTE(v5) = 1;
      PpmSnapPerformanceAccumulation(v4, v5, 0i64, 0i64, (_PROC_PERF_CHECK_SNAP *)(v2 + 32));
    }
    else
    {
      LOBYTE(a2) = 1;
      PpmHvSnapPerformanceAccumulation((_QWORD *)a1, a2, 0i64, (_QWORD *)(v2 + 32));
    }
    *(_OWORD *)(v2 + 224) = *v3;
    *(_OWORD *)(v2 + 240) = *(_OWORD *)(v2 + 48);
    *(_OWORD *)(v2 + 256) = *(_OWORD *)(v2 + 64);
    *(_OWORD *)(v2 + 272) = *(_OWORD *)(v2 + 80);
    *(_OWORD *)(v2 + 288) = *(_OWORD *)(v2 + 96);
    *(_OWORD *)(v2 + 304) = *(_OWORD *)(v2 + 112);
    *(_QWORD *)(v2 + 8) = *(_QWORD *)v3;
    *(_QWORD *)v2 = *(_QWORD *)(v2 + 40);
    *(_QWORD *)(v2 + 16) = *(_QWORD *)(v2 + 48);
    result = *(unsigned int *)(v2 + 120);
    *(_DWORD *)(v2 + 24) = result;
  }
  return result;
}

Referenced by:

PpmCheckProcessorInit
PpmCheckReset
PpmCheckResetProcessors
PpmResetPerfEngineForProcessorEx