KiGetCpuVendor

INT64 __stdcall KiGetCpuVendor(){
  const INT8 *v0; 
  struct _KPRCB *CurrentPrcb; 
  __int64 v2; 
  const INT8 *v3; 
  const INT8 *v4; 
  const INT8 *v6; 
  char Str1[16]; 
  CurrentPrcb = KeGetCurrentPrcb();
  v2 = __cpuid(0, 0);
  *((_BYTE *)CurrentPrcb + 34192) = 0;
  *(_QWORD *)&Str1[4] = __PAIR64__(EDX(v2), EBX(v2));
  *(_DWORD *)&Str1[12] = ECX(v2);
  *(_DWORD *)Str1 = EAX(v2);
  *((_QWORD *)CurrentPrcb + 4274) = *(_QWORD *)&Str1[4];
  *((_DWORD *)CurrentPrcb + 8550) = *(_DWORD *)&Str1[12];
  *((_BYTE *)CurrentPrcb + 34204) = 0;
  if( !(unsigned int)strncmp(&Str1[4], (size_t)"AuthenticAMD", 0xCui64, v0, *(va_list *)Str1) )
    return 1i64;
  if( !(unsigned int)strncmp(&Str1[4], (size_t)"GenuineIntel", 0xCui64, v3, *(va_list *)Str1) )
    return 2i64;
  if( !(unsigned int)strncmp(&Str1[4], (size_t)"CentaurHauls", 0xCui64, v4, *(va_list *)Str1) )
    return 3i64;
  return !(unsigned int)strncmp(&Str1[4], (size_t)"HygonGenuine", 0xCui64, v6, *(va_list *)Str1);
}

Referenced by:

EtwSetPerformanceTraceInformation
EtwpAddMicroarchitecturalPmcToPmcGroup
EtwpAddMicroarchitecturalPmcToRegistry
EtwpLoadMicroarchitecturalProfileGroup
EtwpLoadMicroarchitecturalProfileSource
EtwpRemoveMicroarchitecturalPmcFromRegistry
HvlpProcessIommu
KiGetIptInfo
KiGetProcessorSignature
KiInitializeNxSupportDiscard
KiIsNXSupported