MiFreeLargeInitializationCodePages
VOID __fastcall MiFreeLargeInitializationCodePages(INT64 a1, INT64 a2, UINT64 a3){
UINT64 v5;
INT64 i;
unsigned __int64 v7;
if( MiIsPfnFromSlabAllocation(a1) )
{
for( i = 48 * a3 + a1; a3; --a3 )
{
i -= 48i64;
v7 = (unsigned __int8)MiLockPageInline(i);
*(_BYTE *)(i + 34) = *(_BYTE *)(i + 34) & 0xF8 | 5;
*(_QWORD *)(i + 16) = 0i64;
MiSetOriginalPtePfnFromFreeList((UINT64 *)(i + 16));
MiReturnFreeZeroPage(i);
_InterlockedAnd64((volatile signed __int64 *)(i + 24), 0x7FFFFFFFFFFFFFFFui64);
__writecr8(v7);
}
}
else
{
MiAddExpansionNonPagedPool(v5, a3);
}
}Referenced by:
MiFreeInitializationCode