KiCheckMicrocode

VOID __fastcall KiCheckMicrocode(INT64 a1){
  char v2; 
  unsigned __int32 v3; 
  unsigned __int64 v4; 
  unsigned int v5; 
  unsigned __int64 v6; 
  __int64 v7; 
  int *i; 
  ULONG_PTR v9; 
  __int64 v10; 
  unsigned __int64 v11; 
  if( KiMicrocodeTrackerEnabled
    && (!KiBootProcessorsStarted || *(_DWORD *)(a1 + 36) < (unsigned int)KiBootProcessorCount) )
  {
    v2 = *(_BYTE *)(a1 + 141);
    if( v2 == 1 )
    {
      v11 = __readmsr(0x8Bu);
      v6 = 0i64;
      v5 = v11;
      v3 = EAX(__cpuid(1, 0));
    }
    else
    {
      if( v2 != 2 )
        return;
      __writemsr(0x8Bu, 0i64);
      v3 = EAX(__cpuid(1, 0));
      v4 = __readmsr(0x8Bu);
      v5 = HIDWORD(v4);
      v6 = __readmsr(0x17u);
    }
    v7 = 0i64;
    for( i = &dword_140CFBC84; ; i += 6 )
    {
      if( !*(i - 1) )
      {
        v10 = 3 * v7;
        *(_DWORD *)&KiMicrocodeTracker[8 * v10] = 1;
        *(_DWORD *)&KiMicrocodeTracker[8 * v10 + 4] = v3;
        *(_QWORD *)&KiMicrocodeTracker[8 * v10 + 8] = v6;
        *(_DWORD *)&KiMicrocodeTracker[8 * v10 + 16] = v5;
        return;
      }
      if( *i == v3 && *(_QWORD *)(i + 1) == v6 )
        break;
      v7 = (unsigned int)(v7 + 1);
      if( (unsigned int)v7 >= 4 )
        return;
    }
    v9 = *(unsigned int *)&KiMicrocodeTracker[24 * v7 + 16];
    if( (_DWORD)v9 != v5 )
      KeBugCheckEx(0x17Eu, v3, v9, v5, *(unsigned int *)(a1 + 36));
  }
}

Referenced by:

KiInitializeKernel
KiRestoreFeatureBits