MxMarkActiveDriverBits

VOID __fastcall MxMarkActiveDriverBits(
        _MI_DYNAMIC_BITMAP *DynamicBitmap,
        _MMPTE *PointerPxe,
        _MMPTE *EndPxe,
        _MI_PTE_RANGE *PteHierarchy,
        UINT64 PagingLevel){
  unsigned __int64 v5; 
  _MMPTE *v6; 
  _MMPTE *PteBase; 
  __int64 v10; 
  unsigned __int64 v11; 
  unsigned __int64 v12; 
  UINT64 v13; 

  v5 = (unsigned __int64)PointerPxe;
  v6 = EndPxe;
  if( (unsigned __int64)PointerPxe < *(_QWORD *)&PteHierarchy[4 * (int)PagingLevel] )
    v5 = *(_QWORD *)&PteHierarchy[4 * (int)PagingLevel];
  if( (unsigned __int64)EndPxe > *(_QWORD *)&PteHierarchy[4 * (int)PagingLevel + 2] )
    v6 = *(_MMPTE **)&PteHierarchy[4 * (int)PagingLevel + 2];
  if( v5 <= (unsigned __int64)v6 )
  {
    PteBase = MmGetPteBase();
    do
    {
      if( (MI_READ_PTE_LOCK_FREE(v5) & 1) != 0 )
      {
        v10 = (__int64)((v5 << 25) - ((_QWORD)PteBase << 25)) >> 16;
        if( (_DWORD)PagingLevel == 1 )
        {
          v11 = ((((v10 << 25) - ((_QWORD)PteBase << 25)) >> 16) - (unsigned __int64)DynamicBitmap->BaseVa) >> 21;
          v12 = (unsigned __int64)DynamicBitmap->Bitmap.Buffer + (v11 >> 3);
          if( (*(_DWORD *)((_BYTE *)&PteBase->u.Long + ((v12 >> 9) & 0x7FFFFFFFF8i64)) & 0x800i64) == 0 )
          {
            MiSplitBitmapPages(MiVaDriverImages, (char *)DynamicBitmap->Bitmap.Buffer + (v11 >> 3), (v11 & 7) + 1);
            KeZeroSinglePage((VOID *)(v12 & 0xFFFFFFFFFFFFF000ui64));
          }
          if( DynamicBitmap->Bitmap.SizeOfBitMap <= v11 )
            DynamicBitmap->Bitmap.SizeOfBitMap = v11 + 1;
          _bittestandset64((signed __int64 *)DynamicBitmap->Bitmap.Buffer, v11);
        }
        else
        {
          LODWORD(v13) = PagingLevel - 1;
          MxMarkActiveDriverBits(
            DynamicBitmap,
            (_MMPTE *)((__int64)((v5 << 25) - ((_QWORD)PteBase << 25)) >> 16),
            (_MMPTE *)(v10 + 4088),
            PteHierarchy,
            v13);
        }
      }
      v5 += 8i64;
    }
    while( v5 <= (unsigned __int64)v6 );
  }
}

Referenced by:

MiInitializeDriverImages
MxMarkActiveDriverBits