MiInitializePageFaultResources
INT64 __stdcall MiInitializePageFaultResources(){
unsigned int v0;
__int64 i;
__int64 v2;
unsigned int v3;
char *v4;
unsigned __int64 v5;
unsigned int *v6;
unsigned int v7;
INT64 v8;
v0 = 0;
for( i = 0i64; ; ++i )
{
v2 = 16i64 * (int)v0;
InitializeSListHead((_SLIST_HEADER *)&MiState[v2 + 9232]);
InitializeSListHead((_SLIST_HEADER *)&MiState[v2 + 9264]);
v3 = v0 != 0 ? 16 : 8;
MiState[i + 9296] = v0 != 0 ? 16 : 8;
v4 = (char *)MiAllocateInPageSupportBlock(v0, v3);
if( !v4 )
break;
*(_QWORD *)&MiState[8 * i + 9304] = v4;
v5 = (-(__int64)(v0 != 0) & 0xFFFFFFFFFFFFF880ui64) + 2368;
*(_QWORD *)&MiState[8 * i + 9320] = &v4[v5 * v3];
v6 = (unsigned int *)(v4 + 192);
do
{
v7 = *v6 | 0x40;
if( i )
v7 = *v6 & 0xFFFFFFBF;
*v6 = v7;
MiInsertInPageBlock((PSLIST_ENTRY)v6 - 12);
v6 = (unsigned int *)((char *)v6 + v5);
--v3;
}
while( v3 );
if( (int)++v0 >= 2 )
{
v8 = MiReservePtes((INT64)&qword_140C4EC80, 0x10ui64);
if( v8 )
{
qword_140C4EA80 = 0i64;
qword_140C4EA78 = v8;
return 1i64;
}
return 0i64;
}
}
return 0i64;
}Referenced by:
MiInitNucleus