MiCollapseRunTopDown
__int64 __fastcall MiCollapseRunTopDown(__int64 a1){
unsigned __int64 v1;
unsigned __int64 v3;
unsigned __int64 v4;
unsigned __int64 v5;
char v6;
__int64 v7;
__int64 v9;
v1 = *(_QWORD *)(a1 + 8);
v3 = *(_QWORD *)(a1 + 24);
if( v1 - 1 > v3 )
{
v1 = v3 + 1;
*(_QWORD *)(a1 + 8) = v3 + 1;
}
v4 = *(_QWORD *)a1;
v5 = *(_QWORD *)(a1 + 16);
if( *(_QWORD *)a1 < v5 )
{
*(_QWORD *)a1 = v5;
v4 = v5;
}
if( v4 < v1 )
{
v6 = *(_BYTE *)(a1 + 48);
while( v6 || *(_QWORD *)(a1 + 40) <= v1 - v4 )
{
v7 = *(_QWORD *)(a1 + 32);
if( !v7 )
return 1i64;
v9 = ~(v7 - 1);
if( (((v1 - 1) ^ (v1 - *(_QWORD *)(a1 + 40))) & v9) == 0 )
return 1i64;
if( (v9 & v1) != v1 )
*(_QWORD *)(a1 + 8) = v9 & v1;
if( (v9 & v4) == v4 || (*(_QWORD *)a1 = v9 & (v4 + v7 - 1), (v9 & (v4 + v7 - 1)) != 0) )
{
v4 = *(_QWORD *)a1;
v1 = *(_QWORD *)(a1 + 8);
if( *(_QWORD *)a1 < v1 )
continue;
}
return 0i64;
}
}
return 0i64;
}Referenced by:
MiFindContiguousPages
MiFindRebuildCandidate