HvlCalculateLivedumpSize

INT64 __fastcall HvlCalculateLivedumpSize(_QWORD *a1, _QWORD *a2, _QWORD *a3){
  unsigned int v3; 
  bool v4; 
  if( (HvlpRootFlags & 2) != 0 && (v3 = 0, qword_140C472C8) && HvlpHypervisorStatsPage )
  {
    v4 = VslVsmEnabled == 0;
    *a1 = (*(_QWORD *)(HvlpHypervisorStatsPage + 24)
         + 256i64
         + ((((unsigned __int64)(*(_QWORD *)(HvlpHypervisorStatsPage + 24) + 767i64) >> 9) + 511) >> 9)
         + ((unsigned __int64)(*(_QWORD *)(HvlpHypervisorStatsPage + 24) + 767i64) >> 9)
         + ((((((unsigned __int64)(*(_QWORD *)(HvlpHypervisorStatsPage + 24) + 767i64) >> 9) + 511) >> 9) + 511) >> 9)
         + 1) << 12;
    if( v4 )
    {
      *a3 = (unsigned __int64)(unsigned int)dword_140C472D8 << 12;
      *a2 = 0i64;
    }
    else
    {
      return(unsigned int)VslLiveDumpQuerySecondaryDataSize(a2, a3);
    }
  }
  else
  {
    return(unsigned int)-1073741637;
  }
  return v3;
}

Referenced by:

IopLiveDumpEstimateMemoryPages