HvlPrepareForHibernate

INT64 __fastcall HvlPrepareForHibernate(_OWORD *a1, _QWORD *a2, _QWORD *a3, _QWORD *a4, _QWORD *a5){
  unsigned int v5; 
  LONGLONG *v10; 
  LONGLONG *v11; 
  __int16 v12; 
  __int128 v14[2]; 
  __int128 v15[2]; 
  v5 = 0;
  memset(v15, 0, sizeof(v15));
  memset(v14, 0, sizeof(v14));
  v10 = HvlpAcquireHypercallPage((PHYSICAL_ADDRESS *)v15, 1, 0i64, 88i64);
  v11 = HvlpAcquireHypercallPage((PHYSICAL_ADDRESS *)v14, 2, 0i64, 32i64);
  memset((INT64)v10, 0i64);
  *(_OWORD *)v10 = *a1;
  *((_OWORD *)v10 + 1) = a1[1];
  *((_OWORD *)v10 + 2) = a1[2];
  *((_OWORD *)v10 + 3) = a1[3];
  *((_OWORD *)v10 + 4) = a1[4];
  HvcallInitiateHypercall();
  if( v12 )
  {
    v5 = -1073741823;
  }
  else
  {
    *a2 = *v11;
    *a3 = v11[1];
    *a4 = v11[2];
    *a5 = v11[3];
  }
  HvlpReleaseHypercallPage((unsigned int *)v14);
  HvlpReleaseHypercallPage((unsigned int *)v15);
  return v5;
}

Referenced by:

PopSaveHiberContext