HvpViewMapMakeViewRangeUnCOWByCaller
VOID __stdcall HvpViewMapMakeViewRangeUnCOWByCaller(INT64 a1, INT64 a2, INT64 a3, INT64 a4){
INT64 v5;
__int64 v8;
unsigned __int64 v9;
char v10;
UINT64 NewProtectWin32;
__int64 v12;
if( a3 < a4 )
{
LODWORD(v12) = 0;
v5 = a3;
do
{
v8 = *(_QWORD *)(a2 + 24);
v9 = (unsigned __int64)(v5 - v8) >> 12;
v10 = *(_BYTE *)(v9 + a2 + 72);
if( (v10 & 2) != 0 )
{
LODWORD(NewProtectWin32) = ((~v10 & 0xFC) << 29) | 2;
CmSiProtectViewOfSection(
(UINT64)&v12,
*(VOID ***)(a1 + 24),
(VOID *)(v5 + *(_QWORD *)(a2 + 56) - v8),
0x1000ui64,
NewProtectWin32,
(__int64)&v12);
*(_BYTE *)(v9 + a2 + 72) &= 0xF5u;
}
v5 += 4096i64;
}
while( v5 < a4 );
}
}Referenced by:
HvpViewMapUnCOWAndSealRange