MiLocateLowestConflictingVad
INT64 **__fastcall MiLocateLowestConflictingVad(INT64 a1, UINT64 a2, UINT64 a3){
INT64 **result;
unsigned __int64 v4;
INT64 **v5;
INT64 *v6;
void *v7;
INT64 i;
result = MiCheckForConflictingVad(a1, a2, a3);
v5 = result;
if( result )
{
while( 1 )
{
v6 = *v5;
v7 = v5;
if( *v5 )
{
for( ; v6[1]; v6 = (INT64 *)v6[1] )
;
}
else
{
for( i = (INT64)v5[2]; ; i = v6[2] )
{
v6 = (INT64 *)(i & 0xFFFFFFFFFFFFFFFCui64);
if( !v6 || (void *)v6[1] == v7 )
break;
v7 = v6;
}
}
if( !v6
|| (((*((unsigned int *)v6 + 7) | ((unsigned __int64)*((unsigned __int8 *)v6 + 33) << 32)) << 12) | 0xFFF) < v4 )
{
break;
}
v5 = (INT64 **)v6;
}
return v5;
}
return result;
}Referenced by:
MiUpdateVadBits