HalUpdateTimerCapabilities

NTSTATUS __stdcall HalUpdateTimerCapabilities(PVOID TimerData){
  int v1; 
  int v2; 
  int v3; 
  ULONG_PTR *v5; 
  ULONG_PTR *v6; 
  int v7; 
  int v8; 
  bool v9; 
  v3 = v1;
  if( ((v2 | v1) & 0xFFFF9FFF) == 0 && (v1 & v2) == 0 && TimerData )
  {
    v5 = (ULONG_PTR *)HalpRegisteredTimers;
    do
    {
      if( v5 == &HalpRegisteredTimers )
      {
        HalpTimerLastProblem = 13;
        return -1073741275;
      }
      v6 = v5;
      v5 = (ULONG_PTR *)*v5;
    }
    while( (PVOID)v6[9] != TimerData );
    v7 = *((_DWORD *)v6 + 56);
    v8 = ~v2 & (v3 | v7);
    v9 = v6 == (ULONG_PTR *)HalpPerformanceCounter;
    *((_DWORD *)v6 + 56) = v8;
    if( v9
      && *((_DWORD *)v6 + 57) == 5
      && ((((unsigned __int16)v3 ^ (unsigned __int16)v7) & 0x2000) != 0
       || (v8 & 0x4000) != 0 && (unsigned __int8)HalpTimerDeepestIdleState > 1u) )
    {
      HalpTscProcessorFeatureFallback = 1;
    }
    return 0;
  }
  else
  {
    HalpTimerLastProblem = 12;
    return -1073741811;
  }
}

Referenced by:

HalpArtInitialize
HalpTscInitialize