HalpInitializeProfiling

VOID __stdcall HalpInitializeProfiling(INT64 Number){
  int v1; 
  __int64 v2; 
  __int32 v3; 
  __int32 v4; 
  __int64 v5; 
  CHAR first[16]; 
  INT32 v7[4]; 

  v1 = Number;
  *(_OWORD *)first = 0i64;
  *(_OWORD *)v7 = 0i64;
  if( (dword_140C4A10C & 1) == 0 )
    goto LABEL_17;
  if( !(_DWORD)Number )
  {
    v2 = __cpuid(0, 0);
    *(_DWORD *)&first[4] = EBX(v2);
    *(_DWORD *)&first[8] = EDX(v2);
    *(_DWORD *)&first[12] = ECX(v2);
    *(_DWORD *)first = EAX(v2);
    if( !strncmp(&first[4], (INT8 *)"AuthenticAMD", 0xCui64) )
    {
      HalpProfileInterface[0] = (__int64(__fastcall *)())Amd64ProfileInterface;
    }
    else if( *(_DWORD *)first >= 0xAu && !strncmp(&first[4], (INT8 *)"GenuineIntel", 0xCui64) )
    {
      v5 = __cpuid(10, 0);
      v3 = EAX(v5);
      v4 = EBX(v5);
      *(_DWORD *)&first[8] = ECX(v5);
      *(_DWORD *)&first[4] = v4;
      *(_DWORD *)&first[12] = EDX(v5);
      if( (_BYTE)v3 )
      {
        if( (v3 & 0xFF000000) != 0 && (v4 & 1) == 0 )
        {
          HalpProfileInterface[0] = (__int64(__fastcall *)())&EmonProfileInterface;
          if( (unsigned __int8)v3 >= 4u )
            dword_140C4AD00 |= 1u;
        }
      }
    }
    qword_140C50708 = 0i64;
    if( !HalpIsMicrosoftCompatibleHvLoaded() || (HalpHvCpuid(1073741827i64, v7), (v7[3] & 4) != 0) )
    {
LABEL_13:
      HalpLbrInitialize();
      goto LABEL_3;
    }
    HalpProfileInterface[0] = (__int64(__fastcall *)())DefaultProfileInterface;
LABEL_17:
    if( v1 )
      goto LABEL_3;
    goto LABEL_13;
  }
LABEL_3:
  (*(void(**)(void))HalpProfileInterface[0])();
}

Referenced by:

HalpHwPerfCntInitSystem