HalpTscFallback

VOID __stdcall HalpTscFallback(PVOID Argument){
  int v2; 
  int v3[8]; 
  int v4; 
  _disable();
  v2 = v4 & 0x200;
  if( _InterlockedExchangeAdd((volatile signed __int32 *)Argument, 0xFFFFFFFF) == 1 )
  {
    *((LARGE_INTEGER *)Argument + 1) = KeQueryPerformanceCounter(0i64);
    HalpTimerSelectFallbackPerformanceCounter();
    KUSER_SHARED_DATA.QpcBypassEnabled = 0;
    _InterlockedDecrement((volatile signed __int32 *)Argument);
  }
  else
  {
    do
      _mm_pause();
    while( *(_DWORD *)Argument != -1 );
    _InterlockedOr(v3, 0);
  }
  HalCalibratePerformanceCounter((INT64 *)((char *)Argument + 4), *((_QWORD *)Argument + 1));
  if( v2 )
    _enable();
}

Referenced by:

No references.