HvpViewMapConvertLockedPagesToCOWByPolicy
INT64 __fastcall HvpViewMapConvertLockedPagesToCOWByPolicy(INT64 a1){
__int64 v2;
INT64 v3;
unsigned __int64 v4;
unsigned __int64 v5;
INT64 result;
v2 = 4096i64;
if( *(__int64 *)(a1 + 8) <= 4096 )
{
LABEL_17:
*(_DWORD *)(a1 + 32) &= ~4u;
return 0i64;
}
else
{
v3 = a1 + 40;
while( 1 )
{
v4 = *(_QWORD *)v3;
if( (*(_BYTE *)(a1 + 48) & 1) != 0 && v4 )
v4 ^= v3;
while( v4 )
{
if( v2 >= *(_QWORD *)(v4 + 40) )
{
if( v2 < *(_QWORD *)(v4 + 48) )
break;
v5 = *(_QWORD *)(v4 + 8);
}
else
{
v5 = *(_QWORD *)v4;
}
if( (*(_BYTE *)(a1 + 48) & 1) != 0 && v5 )
v4 ^= v5;
else
v4 = v5;
}
result = HvpMappedViewConvertLockedPagesToCOWByPolicy(a1, (_QWORD *)v4);
if( (int)result < 0 )
break;
v2 = *(_QWORD *)(v4 + 48);
if( v2 >= *(_QWORD *)(a1 + 8) )
goto LABEL_17;
}
}
return result;
}Referenced by:
HvHiveConvertLockedPagesToCowByPolicy