HvlPrepareForHibernate

__int64 __fastcall HvlPrepareForHibernate(_OWORD *a1, _QWORD *a2, _QWORD *a3, _QWORD *a4, _QWORD *a5){
  unsigned int v5; 
  _OWORD *v10; 
  _QWORD *v11; 
  __int16 v12; 
  __int128 PageInfo[2]; 
  _HVLP_HYPERCALL_PAGE_INFO v15[4]; 
  __int128 v16; 

  v5 = 0;
  *(_OWORD *)v15 = 0i64;
  v16 = 0i64;
  memset(PageInfo, 0, sizeof(PageInfo));
  v10 = HvlpAcquireHypercallPage((PHYSICAL_ADDRESS *)v15, 1ui64, 0i64, 0x58ui64);
  v11 = HvlpAcquireHypercallPage((PHYSICAL_ADDRESS *)PageInfo, 2ui64, 0i64, 0x20ui64);
  memset(v10, 0i64, 0x58u);
  *v10 = *a1;
  v10[1] = a1[1];
  v10[2] = a1[2];
  v10[3] = a1[3];
  v10[4] = a1[4];
  HvcallInitiateHypercall();
  if( v12 )
  {
    v5 = -1073741823;
  }
  else
  {
    *a2 = *v11;
    *a3 = v11[1];
    *a4 = v11[2];
    *a5 = v11[3];
  }
  HvlpReleaseHypercallPage((_HVLP_HYPERCALL_PAGE_INFO *)PageInfo);
  HvlpReleaseHypercallPage(v15);
  return v5;
}

Referenced by:

PopSaveHiberContext