HalpCmciSetProcessorConfigIntel

CHAR __stdcall HalpCmciSetProcessorConfigIntel(INT64 a1, CHAR a2, INT64 a3){
  __int64 v5; 
  __int64 v7; 
  unsigned int v8; 
  __int64 v9; 
  __int64 v10; 

  LOBYTE(v5) = byte_140C50568[0];
  v7 = a2 != 0 ? 0x40000000 : 0;
  if( !byte_140C50568[0] )
  {
    v5 = __readmsr(0x179u);
    byte_140C50568[0] = v5;
  }
  if( byte_140C50568[0] )
  {
    v8 = 640;
    v9 = byte_140C50568[0];
    do
    {
      LOBYTE(v5) = qword_140C49C10(a3, v8, v7);
      if( a2 )
      {
        v5 = ((__int64(__fastcall *)(INT64, _QWORD, _QWORD))qword_140C49C20)(a3, v8, 0i64);
        if( (v5 & 0x40000000) != 0 )
        {
          v10 = *(_DWORD *)(a1 + 68) & 0x3FFF;
          if( (*(_DWORD *)(a1 + 68) & 0x3FFF) == 0 )
            v10 = 1i64;
          LOBYTE(v5) = qword_140C49C10(a3, v8, v10 | v5 & 0xFFFFFFFFFFFFC000ui64);
        }
      }
      ++v8;
      --v9;
    }
    while( v9 );
  }
  return v5;
}

Referenced by:

HalpCmciSetProcessorConfig