diff --git a/src/ranap/RANAP_RIM-Transfer.c b/src/ranap/RANAP_RIM-Transfer.c
new file mode 100644
index 0000000..3bd8e51
--- /dev/null
+++ b/src/ranap/RANAP_RIM-Transfer.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_RIM-Transfer.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_RIM_Transfer_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_RIM_Transfer, rIMInformation),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_RIMInformation,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rIMInformation"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANAP_RIM_Transfer, rIMRoutingAddress),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANAP_RIMRoutingAddress,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"rIMRoutingAddress"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_RIM_Transfer, 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_RIM_Transfer_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_RIM_Transfer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_RIM_Transfer_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rIMInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rIMRoutingAddress */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_RIM_Transfer_specs_1 = {
+	sizeof(struct RANAP_RIM_Transfer),
+	offsetof(struct RANAP_RIM_Transfer, _asn_ctx),
+	asn_MAP_RANAP_RIM_Transfer_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_RIM_Transfer_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_RIM_Transfer = {
+	"RANAP_RIM-Transfer",
+	"RANAP_RIM-Transfer",
+	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_RIM_Transfer_tags_1,
+	sizeof(asn_DEF_RANAP_RIM_Transfer_tags_1)
+		/sizeof(asn_DEF_RANAP_RIM_Transfer_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_RIM_Transfer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_RIM_Transfer_tags_1)
+		/sizeof(asn_DEF_RANAP_RIM_Transfer_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_RIM_Transfer_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_RIM_Transfer_specs_1	/* Additional specs */
+};
+
