KeLoadMTRR

NTSTATUS __fastcall KeLoadMTRR(INT64 a1){
  bool v2; 
  unsigned __int64 v3; 
  unsigned __int64 v4; 
  unsigned __int64 v5; 
  unsigned int v6; 
  __int64 v7; 
  unsigned int v8; 
  _QWORD *v9; 
  __int64 v10; 
  unsigned int v12; 
  UINT64 *v13; 
  UINT64 Buffer[12]; 
  int v15; 

  if( byte_140C2B130 )
  {
    if( !KiCompareVarMtrr() )
      KeMtrrComparisonFailed = 1;
    if( qword_140C2B140 )
    {
      KiReadFixedMtrr(Buffer);
      if( !KeGetCurrentPrcb()->Number )
      {
        v12 = 0;
        v13 = Buffer;
        while( *(UINT64 *)((char *)v13 + (_BYTE *)qword_140C2B140 - (_BYTE *)Buffer) == *v13 )
        {
          ++v12;
          ++v13;
          if( v12 >= 0xB )
            goto LABEL_6;
        }
        KeMtrrComparisonFailed = 1;
      }
    }
LABEL_6:
    _disable();
    v2 = (v15 & 0x200) != 0;
    KiLockStepExecution(a1);
    v3 = __readcr0();
    __writecr0(v3 & 0xFFFFFFFF9FFFFFFFui64 | 0x40000000);
    __wbinvd();
    v4 = __readcr4();
    if( (v4 & 0x80) != 0 )
      __writecr4(v4 & 0xFFFFFFFFFFFFFF7Fui64);
    else
      KeFlushCurrentTbImmediately();
    v5 = KiMtrrInfo & 0xFFFFFFFFFFFFF7FFui64;
    __writemsr(0x2FFu, KiMtrrInfo & 0xFFFFFFFFFFFFF7FFui64);
    v6 = 0;
    if( (_BYTE)qword_140C2B128 )
    {
      v7 = 0i64;
      v8 = 513;
      do
      {
        v9 = qword_140C2B138;
        v10 = 2 * v7;
        __writemsr(v8 - 1, *((_QWORD *)qword_140C2B138 + v10));
        __writemsr(v8, v9[v10 + 1]);
        v7 = ++v6;
        v8 += 2;
      }
      while( v6 < (unsigned __int64)(unsigned __int8)qword_140C2B128 );
    }
    if( qword_140C2B140 )
      KiWriteFixedMtrr((UINT64 *)qword_140C2B140);
    __writemsr(0x2FFu, v5 | 0x800);
    __wbinvd();
    KeFlushCurrentTbImmediately();
    __writecr0(v3);
    if( (v4 & 0x80) != 0 )
      __writecr4(v4);
    KiLockStepExecution(a1);
    if( v2 )
      _enable();
  }
  return 0;
}

Referenced by:

HalpPostSleepMP
KiLoadMTRRTarget