HvlpEndSecurePageListIteration

INT64 *__stdcall HvlpEndSecurePageListIteration(INT64 a1, CHAR a2){
  INT64 *result; 
  size_t *v3; 
  size_t *v4; 
  VOID *v5; 
  int v6; 
  const VOID **v7; 
  size_t v8; 
  size_t Size; 

  v4 = v3;
  Size = 0;
  v5 = (VOID *)a2;
  v6 = a1;
  if( (_DWORD)a1 )
  {
    LOBYTE(result) = *(&stru_140C452E0 + 7938);
    v7 = (const VOID **)((char *)&stru_140C452E0 + 7944);
  }
  else
  {
    LOBYTE(result) = *(&stru_140C452E0 + 7906);
    v7 = (const VOID **)((char *)&stru_140C452E0 + 7912);
  }
  if( (_BYTE)result )
  {
    VslEndSecurePageIteration((_DWORD)a1 == 0, &Size);
    if( v4 )
    {
      v8 = Size;
      if( Size <= *v4 )
      {
        *v4 = Size;
        if( v8 )
          memmove(v5, *v7, v8);
      }
    }
    result = (INT64 *)((char *)&stru_140C452E0 + 7936);
    if( !v6 )
      result = (INT64 *)((char *)&stru_140C452E0 + 7904);
    result[1] = 0i64;
    *(_DWORD *)result = 0;
  }
  return result;
}

Referenced by:

HvlAddSecurePagesCallbackRoutine
HvlDiscardSecurePagesFromHibernation
HvlIterateSecurePagesForHibernation
HvlpGetEncryptedDataFromSecureKernel