HvTrimHive
VOID __fastcall HvTrimHive(INT64 a1, UINT64 a2, UINT64 a3){
unsigned int v3;
unsigned int v4;
INT64 CellMap;
__int64 v7;
CHAR *AnyMultiplexedVm;
__int64 v9;
__int64 v10;
if( (unsigned int)a2 < (unsigned int)a3 )
{
v3 = a3;
v4 = a2;
do
{
CellMap = HvpGetCellMap(a1, v4);
v7 = *(_QWORD *)(CellMap + 8);
if( (v7 & 2) == 0 )
{
*(_QWORD *)(CellMap + 8) = v7 | 4;
if( (v7 & 1) != 0 && (v7 & 8) != 0 )
{
AnyMultiplexedVm = MiGetAnyMultiplexedVm(2i64);
MiDeprioritizeVirtualAddresses(
v10 & 0xFFFFFFFFFFFFFFF0ui64,
(unsigned __int64)*(unsigned int *)(v9 + 16) >> 12,
(INT64)AnyMultiplexedVm,
24);
}
}
v4 += 4096;
}
while( v4 < v3 );
}
}Referenced by:
CmpTrimHive