RtlClearBitsEx
VOID __stdcall RtlClearBitsEx(_RTL_BITMAP_EX *BitMapHeader, UINT64 StartingIndex, UINT64 NumberToClear){
UINT64 v4;
_BYTE *v5;
UINT64 v6;
char v7;
if( NumberToClear )
{
v4 = StartingIndex & 7;
v5 = (char *)BitMapHeader->Buffer + (StartingIndex >> 3);
v6 = NumberToClear;
if( v4 + NumberToClear <= 8 )
{
v7 = ~(byte_14001DA00[NumberToClear] << v4);
LABEL_4:
*v5 &= v7;
return;
}
if( (_DWORD)v4 )
{
*v5++ &= byte_14001DA00[v4];
v6 = NumberToClear - (unsigned int)(8 - v4);
}
if( v6 > 8 )
{
memset(v5, 0i64, v6 >> 3);
v5 += v6 >> 3;
v6 &= 7u;
}
if( v6 )
{
v7 = byte_14001A768[v6];
goto LABEL_4;
}
}
}Referenced by:
ExpSaPageGroupFreeMemory
IopAddPageRangeToPageMaps
IopLiveDumpDiscardVirtualAddressRange
IopRemovePageFromPageMap
MiActOnMirrorBitmap
MiActOnPartitionNodePages
MiAddRangeToPartitionTree
MiClearRangeInPartitionTree
MiClearVadCellBits
MiCopyToCfgBitMap
MiDeleteAweInfoPages
MiExtendDynamicBitMap
MiFreeToSubAllocatedRegion
MiHotRemoveHugeRange
MiInitializeDriverImages
MiMakeSystemRangeAvailable
MiMarkRetpolineBits
MiMarkSystemVaAllocated
MiMirrorOmitPagesFromCopy
MiObtainRelocationBits
MiReleaseSessionVa
MiReturnImageBase
MiUpdateLargePageBitMap
RtlFindSetBitsAndClearEx
RtlShiftLeftBitMapEx
RtlpHpFixedVsFree