HalpTimerConfigureQpcBypass

VOID __stdcall HalpTimerConfigureQpcBypass(){
  int v0; 
  int v1; 
  char v2; 
  INT64 *Timer; 
  unsigned __int64 v4; 
  int v5; 
  int v6[8]; 
  UINT8 v7; 
  __int64 v8; 

  v8 = 0i64;
  v7 = 0;
  NtQuerySystemInformation(0xC5ui64, (INT64)&v8, 8, 0i64);
  v1 = v0;
  v2 = 0;
  Timer = HalpFindTimer(5, 0, 0, 0, 1);
  if( Timer )
  {
    if( (Timer[28] & 0x1000000) != 0 )
    {
      v2 = 0x80;
    }
    else if( HalpGetCpuInfo(0i64, 0i64, 0i64, &v7) )
    {
      if( v7 == 2 )
      {
        v2 = 32;
      }
      else
      {
        v2 = 0;
        if( v7 == 1 )
          v2 = 16;
      }
    }
  }
  v4 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc(&qword_140C4A3F8);
  v5 = *(_DWORD *)(HalpPerformanceCounter + 228);
  if( (v5 == 5 || v5 == 8) && v1 >= 0 && v8 )
  {
    KUSER_SHARED_DATA.QpcShift = 0;
    _InterlockedOr(v6, 0);
    KUSER_SHARED_DATA.QpcBypassEnabled = v2 | 3;
  }
  else
  {
    KUSER_SHARED_DATA.QpcData = 0;
  }
  KxReleaseSpinLock(&qword_140C4A3F8);
  __writecr8(v4);
}

Referenced by:

No references.