MiAssembleLargePagePfnList
UINT64 __fastcall MiAssembleLargePagePfnList(INT64 a1, CHAR *a2){
unsigned int PfnPageSizeIndex;
__int64 v5;
UINT64 v6;
signed __int64 v7;
UINT64 result;
UINT64 v9;
PfnPageSizeIndex = MiGetPfnPageSizeIndex((INT64)a2);
v5 = PfnPageSizeIndex;
v6 = MiLargePageSizes[PfnPageSizeIndex];
if( v6 >= 0x200 && PfnPageSizeIndex > 1 )
{
LODWORD(v9) = 0;
v7 = (a2 - (CHAR *)MmGetPfnDb()) / 48;
MiUpdateLargePageBitMap(
*(_QWORD *)(qword_140C4E388 + 8 * ((*((_QWORD *)a2 + 5) >> 39) & 0x3FFi64)),
v7 & 0xFFFFFFFFFFFFFE00ui64,
((v7 + v6 + 511) & 0xFFFFFFFFFFFFFE00ui64) - (v7 & 0xFFFFFFFFFFFFFE00ui64),
0i64,
v9);
}
result = v6;
*(_QWORD *)a2 = *(_QWORD *)(a1 + 8 * v5);
*(_QWORD *)(a1 + 8 * v5) = a2;
return result;
}Referenced by:
MiAllocateLargeZeroPages