KiWriteFixedMtrr
VOID __stdcall KiWriteFixedMtrr(UINT64 *Buffer){
unsigned __int64 v1;
unsigned __int64 v2;
v1 = 0i64;
if( byte_140C2B131 == 1 )
{
v1 = __readmsr(0xC0010010) & 0xFFFFFFFFFFF3FFFFui64 | 0x80000;
}
else
{
if( KeGetCurrentPrcb()->CpuVendor != 1 )
goto LABEL_3;
v2 = __readmsr(0xC0010010);
v1 = v2;
if( (v2 & 0xC0000) == 0 )
goto LABEL_3;
v1 = v2 & 0xFFFFFFFFFFF3FFFFui64;
}
__writemsr(0xC0010010, v1);
LABEL_3:
__writemsr(0x250u, *Buffer);
__writemsr(0x258u, Buffer[1]);
__writemsr(0x259u, Buffer[2]);
__writemsr(0x268u, Buffer[3]);
__writemsr(0x269u, Buffer[4]);
__writemsr(0x26Au, Buffer[5]);
__writemsr(0x26Bu, Buffer[6]);
__writemsr(0x26Cu, Buffer[7]);
__writemsr(0x26Du, Buffer[8]);
__writemsr(0x26Eu, Buffer[9]);
__writemsr(0x26Fu, Buffer[10]);
if( byte_140C2B131 == 1 )
__writemsr(0xC0010010, v1 & 0xFFFFFFFFFFF3FFFFui64 | 0x40000);
}Referenced by:
KeLoadMTRR