HvlpSlowFlushPasidAddressList
PSLIST_ENTRY __fastcall HvlpSlowFlushPasidAddressList(UINT64 a1, UINT64 a2, UINT64 a3, INT64 a4){
__int64 v4;
unsigned int v6;
unsigned int v7;
LONGLONG *v8;
__int64 *v10;
INT64 v11;
__int64 v12;
__int128 v13[3];
v4 = (unsigned int)a3;
v6 = a2;
v7 = a1;
memset(v13, 0, 32);
v8 = HvlpAcquireHypercallPage((PHYSICAL_ADDRESS *)v13, 5, 0i64, 0i64);
if( !v8 )
return(PSLIST_ENTRY)HvlpFlushPasidAddressSpace(v7, v6);
v8[1] = 0i64;
v10 = v8 + 2;
*((_DWORD *)v8 + 1) = v7;
*(_DWORD *)v8 = v6;
if( (_DWORD)v4 )
{
v11 = a4 - (_QWORD)v10;
v12 = v4;
do
{
*v10 = *(__int64 *)((char *)v10 + v11) & 0x800 | (*(__int64 *)((char *)v10 + v11)
+ (*(__int64 *)((char *)v10 + v11) & 0xC00));
++v10;
--v12;
}
while( v12 );
}
HvcallInitiateHypercall();
return HvlpReleaseHypercallPage((unsigned int *)v13);
}Referenced by:
HvlSvmFlushPasid