MiFreeLargeInitializationCodePages
VOID __fastcall MiFreeLargeInitializationCodePages(INT64 a1, INT64 a2, UINT64 a3){
int v5;
UINT64 v6;
INT64 i;
unsigned __int64 v8;
LOBYTE(v5) = MiIsPfnFromSlabAllocation(a1);
if( v5 )
{
for( i = 48 * a3 + a1; a3; --a3 )
{
i -= 48i64;
v8 = MiLockPageInline((_MMPFN *)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(v8);
}
}
else
{
MiAddExpansionNonPagedPool(v6, a3);
}
}Referenced by:
MiFreeInitializationCode