MiFreePatchTableProtos
INT64 __stdcall MiFreePatchTableProtos(PVOID P){
unsigned __int64 v1;
_QWORD *v3;
BOOL v4;
__int64 v5;
INT64 result;
v1 = 0i64;
v3 = P;
v4 = (dword_140C4C9F0 & 0xFFF) != 0;
v5 = ((unsigned int)dword_140C4C9F0 >> 12) + v4;
if( ((unsigned int)dword_140C4C9F0 >> 12) + v4 )
{
do
{
if( !MI_READ_PTE_LOCK_FREE((INT64)v3) )
break;
*v3++ = ZeroPte;
--v5;
}
while( v5 );
}
if( 8 * v5 )
{
do
{
MiUnlockPagedAddress((char *)P + v1);
v1 += 4096i64;
}
while( v1 < 8 * v5 );
}
ExFreePoolWithTag(P, 0);
return result;
}Referenced by:
MiUnloadSystemImage
MmLoadSystemImageEx