MiFindNextAlignedForwardRunClearEx
unsigned __int64 __fastcall MiFindNextAlignedForwardRunClearEx(_QWORD *a1, __int64 a2, __int64 a3){
__int64 v3;
__int64 v4;
unsigned __int64 v5;
unsigned __int64 v6;
unsigned __int64 v8;
unsigned __int64 v9;
unsigned __int64 v10;
_QWORD *v11;
v3 = a1[1];
v4 = ~(a3 - 1);
v5 = (a2 + 63) & 0xFFFFFFFFFFFFFFC0ui64;
v6 = v4 & *a1;
if( v5 <= v6 )
{
v8 = 0i64;
if( v6 )
{
v9 = v5 >> 6;
while( v5 + v8 <= v6 )
{
v10 = 0i64;
if( v9 )
{
v11 = (_QWORD *)(v3 + 8 * (v8 >> 6));
do
{
if( *v11 )
break;
++v10;
++v11;
}
while( v10 < v9 );
}
if( v10 == v9 )
return v8;
v8 += v4 & ((v10 << 6) + a3 + 63);
if( v8 >= v6 )
return -1i64;
}
}
}
return -1i64;
}Referenced by:
MiObtainDynamicVa