IopAddPageRangeToPageMaps
void __fastcall IopAddPageRangeToPageMaps(
__int64 a1,
__int128 *a2,
unsigned __int64 a3,
unsigned __int64 a4,
unsigned int a5){
__int128 v9;
unsigned int v10;
unsigned int v11;
int v12;
INT64 v13[2];
RtlSetBitsEx((INT64)a2, a3, a4);
if( a1 )
{
if( (a5 & 0xFF0) != 0 )
{
v9 = *a2;
v10 = 56;
v11 = (unsigned __int8)(a5 >> 4);
v12 = (((unsigned __int64)(*(_QWORD *)(a1 + 48) + 7i64) >> 3) + 7) & 0xFFFFFFF8;
for( *(_OWORD *)v13 = v9; v11; v11 >>= 1 )
{
v10 += v12;
if( v10 + v12 > (unsigned __int64)(*(_QWORD *)(a1 + 32) - 0x2000i64) )
break;
v13[1] = a1 + v10;
if( (v11 & 1) != 0 )
{
RtlSetBitsEx((INT64)v13, a3, a4);
}
else if( (v11 & 0x10) != 0 )
{
RtlClearBitsEx((INT64)v13, a3, a4);
v11 &= ~0x10u;
}
}
}
}
}Referenced by:
IopAddPageToPageMap