MiInitializeTopLevelBitmap
VOID __stdcall MiInitializeTopLevelBitmap(){
char *v0;
INT64 i;
struct _RTL_BITMAP BitMapHeader;
*(&BitMapHeader.SizeOfBitMap + 1) = 0;
dword_140C4DFB8 = (unsigned __int8)ExGenRandom(1i64);
xmmword_140C4DF98 = 0i64;
BitMapHeader.SizeOfBitMap = 256;
xmmword_140C4DFA8 = 0i64;
BitMapHeader.Buffer = (unsigned int *)&xmmword_140C4DF98;
v0 = (char *)MmGetPml4eBase() + 2048;
for( i = (INT64)v0; (i & 0xFFF) != 0; i += 8i64 )
{
if( MI_READ_PTE_LOCK_FREE(i) )
RtlSetBits(&BitMapHeader, (i - (__int64)v0) >> 3, 1ui64);
}
RtlSetBits(&BitMapHeader, (unsigned int)((i - (__int64)v0) >> 3) - 1, 1ui64);
if( (MiFlags & 0x200000) == 0 )
*((_DWORD *)&xmmword_140C4DF98 + 7) &= ~0x2000u;
}Referenced by:
MiInitializeSystemVa