HvlpSetupPageListIteration
INT64 *__fastcall HvlpSetupPageListIteration(INT64 a1, CHAR a2){
int *v3;
PVOID v4;
PVOID v5;
INT64 *result;
v3 = &HvlpIteratorCrashdump;
if( !(_DWORD)a1 )
v3 = &HvlpIteratorHibernate;
*v3 = 0;
if( (_DWORD)a1 == 1 )
{
v4 = HvlpFallbackScratchPage;
v5 = HvlpHibernateScratchPage;
}
else
{
v4 = HvlpHibernateScratchPage;
v5 = HvlpFallbackScratchPage;
}
if( !v4 )
v4 = v5;
*((_QWORD *)v3 + 1) = v4;
if( !v4 )
return 0i64;
*((PHYSICAL_ADDRESS *)v3 + 2) = MmGetPhysicalAddress(v4);
result = (INT64 *)v3;
*((_BYTE *)v3 + 3) = a2;
*((_BYTE *)v3 + 2) = 1;
return result;
}Referenced by:
HvlpStartPageListIteration
HvlpStartSecurePageListIteration