/* This routine provides the ability to read raw unsigned data from the code stream. */
UINT64 VmReadCode64(IN VM_CONTEXT *VmPtr, IN UINT32 Offset)
/* This routine provides the ability to read raw unsigned data from the code stream. */
UINT64 VmReadCode64(IN VM_CONTEXT *VmPtr, IN UINT32 Offset)
{
  UINT64  Data64;
  UINT32  Data32;
  UINT8   *Ptr;
  if (ADDRESS_IS_ALIGNED ((UINTN)VmPtr->Ip + Offset, sizeof (UINT64))) {
    return *(UINT64 *)(VmPtr->Ip + Offset);
  }
  Ptr            = (UINT8 *)&Data64;
  Data32         = VmReadCode32 (VmPtr, Offset);
  *(UINT32 *)Ptr = Data32;
  Ptr           += sizeof (Data32);
  Data32         = VmReadCode32 (VmPtr, Offset + sizeof (UINT32));
  *(UINT32 *)Ptr = Data32;
  return Data64;
}