HvlpGetPageList
__int64 __fastcall HvlpGetPageList(int a1, __int64 *a2, _DWORD *a3){
int *v3;
__int64 v7;
unsigned int v8;
unsigned __int16 v9;
unsigned __int64 v10;
v3 = &HvlpIteratorCrashdump;
*a2 = 0i64;
*a3 = 0;
if( !a1 )
v3 = &HvlpIteratorHibernate;
if( !*((_BYTE *)v3 + 2) )
return 0i64;
v7 = *((_QWORD *)v3 + 1);
v8 = 261;
v9 = *(_WORD *)v3;
if( *(_WORD *)v3 < *(_WORD *)(v7 + 8) )
{
LABEL_9:
v10 = *(_QWORD *)(v7 + 8i64 * v9 + 16);
*a2 = v10 & 0xFFFFFFFFFFi64;
*a3 = (v10 >> 40) + 1;
*(_WORD *)v3 = v9 + 1;
}
else
{
while( *(_QWORD *)v7 != -1i64 )
{
HvlpInvokeGetPageListHypercall((__int64)v3, *(_QWORD *)v7);
*(_WORD *)v3 = 0;
if( *(_WORD *)(v7 + 8) )
{
v9 = 0;
goto LABEL_9;
}
}
return 0;
}
return v8;
}Referenced by:
HvlAddPagesCallbackRoutine
HvlpGetEncryptedDataFromHypervisor
HvlpMarkHypervisorPagesForHibernation