diff --git a/src/ranap/RANAP_HorizontalWithVerticalVelocity.c b/src/ranap/RANAP_HorizontalWithVerticalVelocity.c
new file mode 100644
index 0000000..bf3e129
--- /dev/null
+++ b/src/ranap/RANAP_HorizontalWithVerticalVelocity.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_HorizontalWithVerticalVelocity.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_HorizontalWithVerticalVelocity_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalWithVerticalVelocity, horizontalSpeedAndBearing),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_HorizontalSpeedAndBearing,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"horizontalSpeedAndBearing"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_HorizontalWithVerticalVelocity, veritcalVelocity),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_VerticalVelocity,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"veritcalVelocity"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_HorizontalWithVerticalVelocity, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_HorizontalWithVerticalVelocity_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_HorizontalWithVerticalVelocity_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* horizontalSpeedAndBearing */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* veritcalVelocity */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_HorizontalWithVerticalVelocity_specs_1 = {
+	sizeof(struct RANAP_HorizontalWithVerticalVelocity),
+	offsetof(struct RANAP_HorizontalWithVerticalVelocity, _asn_ctx),
+	asn_MAP_RANAP_HorizontalWithVerticalVelocity_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_HorizontalWithVerticalVelocity_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_HorizontalWithVerticalVelocity = {
+	"RANAP_HorizontalWithVerticalVelocity",
+	"RANAP_HorizontalWithVerticalVelocity",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1,
+	sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1)
+		/sizeof(asn_DEF_RANAP_HorizontalWithVerticalVelocity_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_HorizontalWithVerticalVelocity_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_HorizontalWithVerticalVelocity_specs_1	/* Additional specs */
+};
+
