HalpTimerFindIdealClockSource

ULONG_PTR *__stdcall HalpTimerFindIdealClockSource(){
  char v0; 
  ULONG_PTR *Timer; 
  ULONG_PTR v2; 
  INT64 *v4; 
  INT64 *v5; 
  INT64 *v6; 
  INT64 *v7; 
  INT64 *v8; 

  v0 = HalpTimerPlatformClockSourceForced;
  if( !HalpTimerPlatformClockSourceForced )
  {
    Timer = (ULONG_PTR *)HalpFindTimer(8, 96, 24576, 3840, 0);
    if( Timer )
      goto LABEL_8;
  }
  Timer = (ULONG_PTR *)HalpFindTimer(11, 544, 0, 80, 0);
  if( Timer )
    goto LABEL_8;
  if( !v0 && !byte_140C4A319 && (__int64(__fastcall **)())HalpProfileInterface[0] != DefaultProfileInterface )
  {
    Timer = (ULONG_PTR *)HalpFindTimer(0, 33, 24576, 3840, 0);
    if( Timer )
      goto LABEL_8;
  }
  Timer = (ULONG_PTR *)HalpFindTimer(3, 352, 0, 0, 0);
  if( Timer )
    goto LABEL_8;
  Timer = (ULONG_PTR *)HalpFindTimer(3, 48, 0, 256, 0);
  if( Timer )
    goto LABEL_8;
  Timer = (ULONG_PTR *)HalpFindTimer(3, 96, 0, 3840, 0);
  if( Timer )
    goto LABEL_8;
  Timer = (ULONG_PTR *)HalpFindTimer(3, 48, 0, 3840, 0);
  if( Timer )
    goto LABEL_8;
  Timer = (ULONG_PTR *)HalpFindTimer(2, 304, 0, 0, 0);
  if( Timer )
    goto LABEL_8;
  Timer = (ULONG_PTR *)HalpFindTimer(6, 96, 0, 3840, 0);
  if( Timer )
    goto LABEL_8;
  v4 = HalpFindTimer(0, 32864, 24576, 3840, 0);
  Timer = (ULONG_PTR *)v4;
  if( !v4 || (unsigned __int64)v4[24] < 0x7D0 )
  {
    v5 = HalpFindTimer(0, 32816, 24576, 3840, 0);
    Timer = (ULONG_PTR *)v5;
    if( !v5 || (unsigned __int64)v5[24] < 0x7D0 )
    {
      v6 = HalpFindTimer(0, 608, 57344, 0, 0);
      Timer = (ULONG_PTR *)v6;
      if( !v6 || (unsigned __int64)v6[24] < 0x7D0 )
      {
        v7 = HalpFindTimer(0, 96, 57344, 3840, 0);
        Timer = (ULONG_PTR *)v7;
        if( !v7 || (unsigned __int64)v7[24] < 0x7D0 )
        {
          v8 = HalpFindTimer(0, 48, 57344, 3840, 0);
          Timer = (ULONG_PTR *)v8;
          if( !v8 || (unsigned __int64)v8[24] < 0x7D0 )
            Timer = 0i64;
        }
      }
    }
  }
  if( Timer )
  {
LABEL_8:
    v2 = Timer[56];
    if( (v2 & 0x50) != 0 )
      return(ULONG_PTR *)(-(__int64)((v2 & 0x20) != 0) & (unsigned __int64)Timer);
    else
      return 0i64;
  }
  return Timer;
}

Referenced by:

HalpTimerSelectRoles