MiBitmapRangeZeroEx
INT64 __stdcall MiBitmapRangeZeroEx(INT64 rcx0, INT64 rdx0, _QWORD *a3){
__int64 v3;
__int64 i;
unsigned int v6;
int v7;
__int64 v8;
INT64 v9;
INT64 v10;
_MMPTE *PteBase;
INT64 result;
INT64 v13;
__int128 v14[2];
v3 = *(_QWORD *)(rcx0 + 8);
memset(v14, 0, sizeof(v14));
i = 0i64;
v6 = 0;
v7 = 3;
MiFillPteHierarchy(v3 + rdx0 / 8, (UINT64 *)v14);
v8 = 3i64;
while( 1 )
{
v9 = *(&v13 + v8--);
--v7;
v10 = MI_READ_PTE_LOCK_FREE(v9);
PteBase = MmGetPteBase();
if( !v10 )
break;
if( (v10 & 0x81) == 0x81 )
i = -1i64;
if( i == -1 )
goto LABEL_9;
if( !v8 )
goto LABEL_10;
}
v6 = 1;
LABEL_9:
for( i = (((v9 + 8) << 25) - ((_QWORD)PteBase << 25)) >> 16; v7; --v7 )
i = ((i << 25) - ((_QWORD)PteBase << 25)) >> 16;
LABEL_10:
if( !i )
i = ((*(_QWORD *)&v14[0] << 25) - ((_QWORD)PteBase << 25) + 0x10000000i64) >> 16;
result = v6;
*a3 = 8 * (i - v3);
return result;
}Referenced by:
MiReturnPageTablePageCommitment