HalpTimerCalibratePerformanceCounter

__int64 __fastcall HalpTimerCalibratePerformanceCounter(INT64 a1, char *a2, void *a3, void *a4){
  __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  unsigned __int64 v9; 
  signed __int64 v10; 
  int v11; 
  unsigned __int64 v12; 
  __int64 v13; 
  signed __int64 v14; 
  __int64 v16; 
  __int64 v17; 
  __int64 v18; 
  __int64 v19; 
  unsigned __int64 v20; 
  int v21[10]; 

  if( *(_DWORD *)(a1 + 220) == 64 )
  {
    HalpTimerGetInternalData((_KDPC *)a1, a2, a3, a4);
    v17 = (*(__int64(__fastcall **)(__int64))(a1 + 112))(v16);
    v6 = *(_QWORD *)(a1 + 208);
    v14 = v17;
  }
  else
  {
    do
    {
      v6 = *(_QWORD *)(a1 + 208);
      do
      {
        v7 = *(_QWORD *)(a1 + 200);
        HalpTimerGetInternalData((_KDPC *)a1, a2, a3, a4);
        v9 = (*(__int64(__fastcall **)(__int64))(a1 + 112))(v8);
        _InterlockedOr(v21, 0);
        v10 = *(_QWORD *)(a1 + 200);
      }
      while( v7 != v10 );
    }
    while( v6 != *(_QWORD *)(a1 + 208) );
    v11 = *(_DWORD *)(a1 + 220);
    v12 = v7 ^ v9;
    if( _bittest64((const __int64 *)&v12, (unsigned __int8)(v11 - 1)) )
    {
      v18 = 1i64;
      if( v11 == 64 )
        v19 = -1i64;
      else
        v19 = (1i64 << v11) - 1;
      if( v11 != 64 )
        v18 = 1i64 << v11;
      v20 = v7 & v19;
      v14 = v9 | v7 ^ v20;
      if( v9 < v20 )
        v14 += v18;
      _InterlockedCompareExchange64((volatile signed __int64 *)(a1 + 200), v14, v10);
    }
    else
    {
      if( v11 == 64 )
        v13 = -1i64;
      else
        v13 = (1i64 << v11) - 1;
      v14 = v9 | v7 & ~v13;
    }
  }
  *(_QWORD *)(a1 + 208) = &a2[*(_QWORD *)(a1 + 208) - v6 - v14];
  HalpTimerPropagateQpcBiasUpdate(a1);
  return 0i64;
}

Referenced by:

HalCalibratePerformanceCounter
HalpTimerInitialize
HalpTimerPerformanceCounterPowerChange
HalpTimerRestorePerformanceCounter