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