KiSetPageAttributesTable
UINT64 __stdcall KiSetPageAttributesTable(){
int v0;
bool v1;
UINT64 result;
unsigned int v3;
__int64 v4;
char v5;
int v6;
int v7;
unsigned __int64 v8;
UINT64 v9;
int v10;
v8 = 0x7010600070106i64;
v0 = 0;
_disable();
v1 = (v10 & 0x200) != 0;
result = __readmsr(0x277u);
v3 = 0;
v9 = result;
v4 = 0i64;
while( 1 )
{
v5 = *((_BYTE *)&v9 + v4);
if( v5 == 6 && *((_BYTE *)&v8 + v4) != 6 )
break;
v6 = v0 | 1;
if( v5 == *((_BYTE *)&v8 + v4) )
v6 = v0;
++v3;
++v4;
v0 = v6;
if( v3 >= 8 )
goto LABEL_6;
}
v0 = 3;
LABEL_6:
if( v0 )
{
v7 = v0 & 2;
if( v7 )
__wbinvd();
KeFlushCurrentTbImmediately();
__writemsr(0x277u, v8);
if( v7 )
__wbinvd();
result = KeFlushCurrentTbImmediately();
}
if( v1 )
_enable();
return result;
}Referenced by:
KeRestoreProcessorSpecificFeatures
KiInitializeKernel