; LLVM IR from maliput/maliput :: src/maliput/utility (generate_obj)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.std::pair.25" = type { %"class.maliput::utility::mesh::GeoMesh", %"struct.maliput::utility::Material" }
%"class.maliput::utility::mesh::GeoMesh" = type { %"class.maliput::utility::mesh::UniqueIndexer", %"class.maliput::utility::mesh::UniqueIndexer.37", %"class.std::vector.58" }
%"class.maliput::utility::mesh::UniqueIndexer" = type { %"class.std::unordered_map", %"class.std::vector.32" }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::vector.32" = type { %"struct.std::_Vector_base.33" }
%"struct.std::_Vector_base.33" = type { %"struct.std::_Vector_base<const maliput::utility::mesh::GeoVertex *, std::allocator<const maliput::utility::mesh::GeoVertex *>>::_Vector_impl" }
%"struct.std::_Vector_base<const maliput::utility::mesh::GeoVertex *, std::allocator<const maliput::utility::mesh::GeoVertex *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const maliput::utility::mesh::GeoVertex *, std::allocator<const maliput::utility::mesh::GeoVertex *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const maliput::utility::mesh::GeoVertex *, std::allocator<const maliput::utility::mesh::GeoVertex *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.maliput::utility::mesh::UniqueIndexer.37" = type { %"class.std::unordered_map.38", %"class.std::vector.53" }
%"class.std::unordered_map.38" = type { %"class.std::_Hashtable.39" }
%"class.std::_Hashtable.39" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.53" = type { %"struct.std::_Vector_base.54" }
%"struct.std::_Vector_base.54" = type { %"struct.std::_Vector_base<const maliput::utility::mesh::GeoNormal *, std::allocator<const maliput::utility::mesh::GeoNormal *>>::_Vector_impl" }
%"struct.std::_Vector_base<const maliput::utility::mesh::GeoNormal *, std::allocator<const maliput::utility::mesh::GeoNormal *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const maliput::utility::mesh::GeoNormal *, std::allocator<const maliput::utility::mesh::GeoNormal *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const maliput::utility::mesh::GeoNormal *, std::allocator<const maliput::utility::mesh::GeoNormal *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.58" = type { %"struct.std::_Vector_base.59" }
%"struct.std::_Vector_base.59" = type { %"struct.std::_Vector_base<maliput::utility::mesh::IndexFace, std::allocator<maliput::utility::mesh::IndexFace>>::_Vector_impl" }
%"struct.std::_Vector_base<maliput::utility::mesh::IndexFace, std::allocator<maliput::utility::mesh::IndexFace>>::_Vector_impl" = type { %"struct.std::_Vector_base<maliput::utility::mesh::IndexFace, std::allocator<maliput::utility::mesh::IndexFace>>::_Vector_impl_data" }
%"struct.std::_Vector_base<maliput::utility::mesh::IndexFace, std::allocator<maliput::utility::mesh::IndexFace>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.maliput::utility::Material" = type { %"class.std::__cxx11::basic_string", %"class.maliput::math::Vector3", %"class.maliput::math::Vector3", %"class.maliput::math::Vector3", double, double }
%"class.maliput::math::Vector3" = type { %"class.maliput::math::VectorBase" }
%"class.maliput::math::VectorBase" = type { %"struct.std::array" }
%"struct.std::array" = type { [3 x double] }
%"struct.maliput::utility::RoadGeometryMesh" = type { %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76" }
%"class.std::map.76" = type { %"class.std::_Rb_tree.77" }
%"class.std::_Rb_tree.77" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::pair<maliput::utility::mesh::GeoMesh, maliput::utility::Material>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::pair<maliput::utility::mesh::GeoMesh, maliput::utility::Material>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::pair<maliput::utility::mesh::GeoMesh, maliput::utility::Material>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::pair<maliput::utility::mesh::GeoMesh, maliput::utility::Material>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.maliput::api::TypeSpecificIdentifier.73" = type { %"class.std::__cxx11::basic_string" }
%"class.maliput::api::TypeSpecificIdentifier" = type { %"class.std::__cxx11::basic_string" }
%"class.maliput::api::TypeSpecificIdentifier.72" = type { %"class.std::__cxx11::basic_string" }
%"class.std::allocator.0" = type { i8 }
%"struct.maliput::utility::ObjFeatures" = type { double, double, i8, i8, i8, i8, i8, i8, double, double, double, double, double, double, double, %"class.maliput::api::InertialPosition", %"class.std::vector.63" }
%"class.maliput::api::InertialPosition" = type { %"class.maliput::math::Vector3" }
%"class.std::vector.63" = type { %"struct.std::_Vector_base.64" }
%"struct.std::_Vector_base.64" = type { %"struct.std::_Vector_base<maliput::api::TypeSpecificIdentifier<maliput::api::Segment>, std::allocator<maliput::api::TypeSpecificIdentifier<maliput::api::Segment>>>::_Vector_impl" }
%"struct.std::_Vector_base<maliput::api::TypeSpecificIdentifier<maliput::api::Segment>, std::allocator<maliput::api::TypeSpecificIdentifier<maliput::api::Segment>>>::_Vector_impl" = type { %"struct.std::_Vector_base<maliput::api::TypeSpecificIdentifier<maliput::api::Segment>, std::allocator<maliput::api::TypeSpecificIdentifier<maliput::api::Segment>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<maliput::api::TypeSpecificIdentifier<maliput::api::Segment>, std::allocator<maliput::api::TypeSpecificIdentifier<maliput::api::Segment>>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZN7maliput7utility12_GLOBAL__N_113kBlandAsphaltB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@_ZN7maliput7utility12_GLOBAL__N_112kHBoundsHazeB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@_ZN7maliput7utility12_GLOBAL__N_119kGrayedBlandAsphaltB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@_ZN7maliput7utility12_GLOBAL__N_19kSidewalkB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@.str.34 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [29 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(120) ptr @_ZN7maliput7utility17GetMaterialByNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_4LaneEEERKNS0_12MaterialTypeE(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.25") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_11BranchPointEEERKNS0_12MaterialTypeE(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.25") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7maliput3api7Segment4laneEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7maliput7utility21BuildRoadGeometryMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesE(ptr dead_on_unwind noalias writable sret(%"struct.maliput::utility::RoadGeometryMesh") align 8 %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(128) %2) #2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i1, align 1
  %8 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %12 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %13 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %14 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %15 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %16 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %17 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %18 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca %"class.maliput::api::TypeSpecificIdentifier.73", align 8
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca %"struct.std::pair.25", align 8
  %28 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %32 = alloca %"struct.std::pair.25", align 8
  %33 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %34 = alloca i32, align 4
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca %"struct.std::pair.25", align 8
  %40 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %41 = alloca i32, align 4
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %44 = alloca %"struct.std::pair.25", align 8
  %45 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %46 = alloca i32, align 4
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %49 = alloca i32, align 4
  %50 = alloca ptr, align 8
  %51 = alloca %"struct.std::pair.25", align 8
  %52 = alloca %"class.maliput::api::TypeSpecificIdentifier.72", align 8
  %53 = alloca i32, align 4
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.maliput::api::TypeSpecificIdentifier.72", align 8
  %56 = alloca %"struct.std::pair.25", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator.0", align 1
  %59 = alloca %"struct.std::pair.25", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator.0", align 1
  %62 = alloca %"struct.std::pair.25", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator.0", align 1
  %65 = alloca %"struct.std::pair.25", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator.0", align 1
  store ptr %0, ptr %4, align 8
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  store i1 false, ptr %7, align 1
  call void @_ZN7maliput7utility16RoadGeometryMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(432) %0) #5
  call void @llvm.lifetime.start.p0(i64 184, ptr %8) #5
  invoke void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %8)
          to label %68 unwind label %87

68:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 184, ptr %11) #5
  invoke void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %11)
          to label %69 unwind label %91

69:                                               ; preds = %68
  call void @llvm.lifetime.start.p0(i64 184, ptr %12) #5
  invoke void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %12)
          to label %70 unwind label %95

70:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 184, ptr %13) #5
  invoke void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %13)
          to label %71 unwind label %99

71:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 184, ptr %14) #5
  invoke void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %14)
          to label %72 unwind label %103

72:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 184, ptr %15) #5
  invoke void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %15)
          to label %73 unwind label %107

73:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 184, ptr %16) #5
  invoke void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %16)
          to label %74 unwind label %111

74:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 184, ptr %17) #5
  invoke void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %17)
          to label %75 unwind label %115

75:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 184, ptr %18) #5
  invoke void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %18)
          to label %76 unwind label %119

76:                                               ; preds = %75
  %77 = invoke noundef ptr @_ZN7maliput3logEv()
          to label %78 unwind label %123

78:                                               ; preds = %76
  invoke void @_ZN7maliput6common6Logger5traceIJA36_cEEEvDpRKT_(ptr noundef nonnull align 8 dereferenceable(12) %77, ptr noundef nonnull align 1 dereferenceable(36) @.str.73)
          to label %79 unwind label %123

79:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %80

80:                                               ; preds = %390, %79
  %81 = load i32, ptr %19, align 4, !tbaa !9
  %82 = load ptr, ptr %5, align 8, !tbaa !5
  %83 = invoke noundef i32 @_ZNK7maliput3api12RoadGeometry13num_junctionsEv(ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %84 unwind label %127

84:                                               ; preds = %80
  %85 = icmp slt i32 %81, %83
  br i1 %85, label %131, label %86

86:                                               ; preds = %84
  store i32 2, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  br label %395

87:                                               ; preds = %3
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %9, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %10, align 4
  br label %570

91:                                               ; preds = %68
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %9, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %10, align 4
  br label %569

95:                                               ; preds = %69
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %9, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %10, align 4
  br label %568

99:                                               ; preds = %70
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %9, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %10, align 4
  br label %567

103:                                              ; preds = %71
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %9, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %10, align 4
  br label %566

107:                                              ; preds = %72
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %9, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %10, align 4
  br label %565

111:                                              ; preds = %73
  %112 = landingpad { ptr, i32 }
          cleanup
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %9, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %10, align 4
  br label %564

115:                                              ; preds = %74
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %9, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %10, align 4
  br label %563

119:                                              ; preds = %75
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %9, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %10, align 4
  br label %562

123:                                              ; preds = %502, %500, %78, %76
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %9, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %10, align 4
  br label %561

127:                                              ; preds = %80
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %9, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %10, align 4
  br label %394

131:                                              ; preds = %84
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %132 = load ptr, ptr %5, align 8, !tbaa !5
  %133 = load i32, ptr %19, align 4, !tbaa !9
  %134 = invoke noundef ptr @_ZNK7maliput3api12RoadGeometry8junctionEi(ptr noundef nonnull align 8 dereferenceable(8) %132, i32 noundef %133)
          to label %135 unwind label %143

135:                                              ; preds = %131
  store ptr %134, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %136

136:                                              ; preds = %384, %135
  %137 = load i32, ptr %22, align 4, !tbaa !9
  %138 = load ptr, ptr %21, align 8, !tbaa !5
  %139 = invoke noundef i32 @_ZNK7maliput3api8Junction12num_segmentsEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %140 unwind label %147

140:                                              ; preds = %136
  %141 = icmp slt i32 %137, %139
  br i1 %141, label %151, label %142

142:                                              ; preds = %140
  store i32 5, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  br label %389

143:                                              ; preds = %131
  %144 = landingpad { ptr, i32 }
          cleanup
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %9, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %10, align 4
  br label %393

147:                                              ; preds = %136
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %9, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %10, align 4
  br label %388

151:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %152 = load ptr, ptr %21, align 8, !tbaa !5
  %153 = load i32, ptr %22, align 4, !tbaa !9
  %154 = invoke noundef ptr @_ZNK7maliput3api8Junction7segmentEi(ptr noundef nonnull align 8 dereferenceable(8) %152, i32 noundef %153)
          to label %155 unwind label %173

155:                                              ; preds = %151
  store ptr %154, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #5
  %156 = load ptr, ptr %23, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api7Segment2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier.73") align 8 %24, ptr noundef nonnull align 8 dereferenceable(8) %156)
          to label %157 unwind label %177

157:                                              ; preds = %155
  %158 = load ptr, ptr %6, align 8, !tbaa !5
  %159 = getelementptr inbounds %"struct.maliput::utility::ObjFeatures", ptr %158, i32 0, i32 16
  %160 = invoke noundef zeroext i1 @_ZN7maliput7utility12_GLOBAL__N_125IsSegmentRenderedNormallyERKNS_3api22TypeSpecificIdentifierINS2_7SegmentEEERKSt6vectorIS5_SaIS5_EE(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(24) %159)
          to label %161 unwind label %181

161:                                              ; preds = %157
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_7SegmentEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #5
  br i1 %160, label %162, label %279

162:                                              ; preds = %161
  %163 = load ptr, ptr %23, align 8, !tbaa !5
  %164 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN7maliput7utility12_GLOBAL__N_113RenderSegmentEPKNS_3api7SegmentERKNS0_11ObjFeaturesEPNS0_4mesh7GeoMeshESB_SB_SB_SB_(ptr noundef %163, ptr noundef nonnull align 8 dereferenceable(128) %164, ptr noundef %8, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %18)
          to label %165 unwind label %173

165:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  store i32 0, ptr %25, align 4, !tbaa !9
  br label %166

166:                                              ; preds = %221, %165
  %167 = load i32, ptr %25, align 4, !tbaa !9
  %168 = load ptr, ptr %23, align 8, !tbaa !5
  %169 = invoke noundef i32 @_ZNK7maliput3api7Segment9num_lanesEv(ptr noundef nonnull align 8 dereferenceable(8) %168)
          to label %170 unwind label %186

170:                                              ; preds = %166
  %171 = icmp slt i32 %167, %169
  br i1 %171, label %190, label %172

172:                                              ; preds = %170
  store i32 8, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %278

173:                                              ; preds = %279, %162, %151
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %9, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %10, align 4
  br label %387

177:                                              ; preds = %155
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %9, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %10, align 4
  br label %185

181:                                              ; preds = %157
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %9, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %10, align 4
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_7SegmentEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  br label %185

185:                                              ; preds = %181, %177
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #5
  br label %387

186:                                              ; preds = %166
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %9, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %10, align 4
  br label %277

190:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  %191 = load ptr, ptr %23, align 8, !tbaa !5
  %192 = load i32, ptr %25, align 4, !tbaa !9
  %193 = invoke noundef ptr @_ZNK7maliput3api7Segment4laneEi(ptr noundef nonnull align 8 dereferenceable(8) %191, i32 noundef %192)
          to label %194 unwind label %224

194:                                              ; preds = %190
  store ptr %193, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 304, ptr %27) #5
  %195 = load ptr, ptr %5, align 8, !tbaa !5
  %196 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #5
  %197 = load ptr, ptr %26, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %28, ptr noundef nonnull align 8 dereferenceable(8) %197)
          to label %198 unwind label %228

198:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  store i32 1, ptr %29, align 4, !tbaa !11
  invoke void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_4LaneEEERKNS0_12MaterialTypeE(ptr dead_on_unwind writable sret(%"struct.std::pair.25") align 8 %27, ptr noundef %195, ptr noundef nonnull align 8 dereferenceable(128) %196, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %199 unwind label %232

199:                                              ; preds = %198
  %200 = getelementptr inbounds %"struct.maliput::utility::RoadGeometryMesh", ptr %0, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #5
  %201 = load ptr, ptr %26, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %31, ptr noundef nonnull align 8 dereferenceable(8) %201)
          to label %202 unwind label %236

202:                                              ; preds = %199
  invoke void @_ZN7maliput7utility12_GLOBAL__N_17LaneKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %203 unwind label %240

203:                                              ; preds = %202
  %204 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %200, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %205 unwind label %244

205:                                              ; preds = %203
  %206 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %204, ptr noundef nonnull align 8 dereferenceable(304) %27)
          to label %207 unwind label %244

207:                                              ; preds = %205
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 304, ptr %32) #5
  %208 = load ptr, ptr %5, align 8, !tbaa !5
  %209 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #5
  %210 = load ptr, ptr %26, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %33, ptr noundef nonnull align 8 dereferenceable(8) %210)
          to label %211 unwind label %252

211:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  store i32 2, ptr %34, align 4, !tbaa !11
  invoke void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_4LaneEEERKNS0_12MaterialTypeE(ptr dead_on_unwind writable sret(%"struct.std::pair.25") align 8 %32, ptr noundef %208, ptr noundef nonnull align 8 dereferenceable(128) %209, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 4 dereferenceable(4) %34)
          to label %212 unwind label %256

212:                                              ; preds = %211
  %213 = getelementptr inbounds %"struct.maliput::utility::RoadGeometryMesh", ptr %0, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #5
  %214 = load ptr, ptr %26, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %36, ptr noundef nonnull align 8 dereferenceable(8) %214)
          to label %215 unwind label %260

215:                                              ; preds = %212
  invoke void @_ZN7maliput7utility12_GLOBAL__N_19MarkerKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %216 unwind label %264

216:                                              ; preds = %215
  %217 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %213, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %218 unwind label %268

218:                                              ; preds = %216
  %219 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %217, ptr noundef nonnull align 8 dereferenceable(304) %32)
          to label %220 unwind label %268

220:                                              ; preds = %218
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  br label %221

221:                                              ; preds = %220
  %222 = load i32, ptr %25, align 4, !tbaa !9
  %223 = add nsw i32 %222, 1
  store i32 %223, ptr %25, align 4, !tbaa !9
  br label %166, !llvm.loop !13

224:                                              ; preds = %190
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %9, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %10, align 4
  br label %276

228:                                              ; preds = %194
  %229 = landingpad { ptr, i32 }
          cleanup
  %230 = extractvalue { ptr, i32 } %229, 0
  store ptr %230, ptr %9, align 8
  %231 = extractvalue { ptr, i32 } %229, 1
  store i32 %231, ptr %10, align 4
  br label %251

232:                                              ; preds = %198
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  store ptr %234, ptr %9, align 8
  %235 = extractvalue { ptr, i32 } %233, 1
  store i32 %235, ptr %10, align 4
  br label %250

236:                                              ; preds = %199
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %9, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %10, align 4
  br label %249

240:                                              ; preds = %202
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %9, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %10, align 4
  br label %248

244:                                              ; preds = %205, %203
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %9, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  br label %248

248:                                              ; preds = %244, %240
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #5
  br label %249

249:                                              ; preds = %248, %236
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %27) #5
  br label %250

250:                                              ; preds = %249, %232
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  br label %251

251:                                              ; preds = %250, %228
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %27) #5
  br label %276

252:                                              ; preds = %207
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %9, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %10, align 4
  br label %275

256:                                              ; preds = %211
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %9, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %10, align 4
  br label %274

260:                                              ; preds = %212
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %9, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %10, align 4
  br label %273

264:                                              ; preds = %215
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %9, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %10, align 4
  br label %272

268:                                              ; preds = %218, %216
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %9, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  br label %272

272:                                              ; preds = %268, %264
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  br label %273

273:                                              ; preds = %272, %260
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %32) #5
  br label %274

274:                                              ; preds = %273, %256
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  br label %275

275:                                              ; preds = %274, %252
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %32) #5
  br label %276

276:                                              ; preds = %275, %251, %224
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  br label %277

277:                                              ; preds = %276, %186
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %387

278:                                              ; preds = %172
  br label %383

279:                                              ; preds = %161
  %280 = load ptr, ptr %23, align 8, !tbaa !5
  %281 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN7maliput7utility12_GLOBAL__N_113RenderSegmentEPKNS_3api7SegmentERKNS0_11ObjFeaturesEPNS0_4mesh7GeoMeshESB_SB_SB_SB_(ptr noundef %280, ptr noundef nonnull align 8 dereferenceable(128) %281, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %13, ptr noundef %18)
          to label %282 unwind label %173

282:                                              ; preds = %279
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %283

283:                                              ; preds = %325, %282
  %284 = load i32, ptr %37, align 4, !tbaa !9
  %285 = load ptr, ptr %23, align 8, !tbaa !5
  %286 = invoke noundef i32 @_ZNK7maliput3api7Segment9num_lanesEv(ptr noundef nonnull align 8 dereferenceable(8) %285)
          to label %287 unwind label %290

287:                                              ; preds = %283
  %288 = icmp slt i32 %284, %286
  br i1 %288, label %294, label %289

289:                                              ; preds = %287
  store i32 11, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  br label %382

290:                                              ; preds = %283
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %9, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %10, align 4
  br label %381

294:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  %295 = load ptr, ptr %23, align 8, !tbaa !5
  %296 = load i32, ptr %37, align 4, !tbaa !9
  %297 = invoke noundef ptr @_ZNK7maliput3api7Segment4laneEi(ptr noundef nonnull align 8 dereferenceable(8) %295, i32 noundef %296)
          to label %298 unwind label %328

298:                                              ; preds = %294
  store ptr %297, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 304, ptr %39) #5
  %299 = load ptr, ptr %5, align 8, !tbaa !5
  %300 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #5
  %301 = load ptr, ptr %38, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %40, ptr noundef nonnull align 8 dereferenceable(8) %301)
          to label %302 unwind label %332

302:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  store i32 6, ptr %41, align 4, !tbaa !11
  invoke void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_4LaneEEERKNS0_12MaterialTypeE(ptr dead_on_unwind writable sret(%"struct.std::pair.25") align 8 %39, ptr noundef %299, ptr noundef nonnull align 8 dereferenceable(128) %300, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %303 unwind label %336

303:                                              ; preds = %302
  %304 = getelementptr inbounds %"struct.maliput::utility::RoadGeometryMesh", ptr %0, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #5
  %305 = load ptr, ptr %38, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %43, ptr noundef nonnull align 8 dereferenceable(8) %305)
          to label %306 unwind label %340

306:                                              ; preds = %303
  invoke void @_ZN7maliput7utility12_GLOBAL__N_113GrayedLaneKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %307 unwind label %344

307:                                              ; preds = %306
  %308 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %304, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %309 unwind label %348

309:                                              ; preds = %307
  %310 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %308, ptr noundef nonnull align 8 dereferenceable(304) %39)
          to label %311 unwind label %348

311:                                              ; preds = %309
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 304, ptr %44) #5
  %312 = load ptr, ptr %5, align 8, !tbaa !5
  %313 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #5
  %314 = load ptr, ptr %38, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %45, ptr noundef nonnull align 8 dereferenceable(8) %314)
          to label %315 unwind label %356

315:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  store i32 7, ptr %46, align 4, !tbaa !11
  invoke void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_4LaneEEERKNS0_12MaterialTypeE(ptr dead_on_unwind writable sret(%"struct.std::pair.25") align 8 %44, ptr noundef %312, ptr noundef nonnull align 8 dereferenceable(128) %313, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 4 dereferenceable(4) %46)
          to label %316 unwind label %360

316:                                              ; preds = %315
  %317 = getelementptr inbounds %"struct.maliput::utility::RoadGeometryMesh", ptr %0, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #5
  %318 = load ptr, ptr %38, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %48, ptr noundef nonnull align 8 dereferenceable(8) %318)
          to label %319 unwind label %364

319:                                              ; preds = %316
  invoke void @_ZN7maliput7utility12_GLOBAL__N_115GrayedMarkerKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %320 unwind label %368

320:                                              ; preds = %319
  %321 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %317, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %322 unwind label %372

322:                                              ; preds = %320
  %323 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %321, ptr noundef nonnull align 8 dereferenceable(304) %44)
          to label %324 unwind label %372

324:                                              ; preds = %322
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  br label %325

325:                                              ; preds = %324
  %326 = load i32, ptr %37, align 4, !tbaa !9
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr %37, align 4, !tbaa !9
  br label %283, !llvm.loop !15

328:                                              ; preds = %294
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %9, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %10, align 4
  br label %380

332:                                              ; preds = %298
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %9, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %10, align 4
  br label %355

336:                                              ; preds = %302
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %9, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %10, align 4
  br label %354

340:                                              ; preds = %303
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %9, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %10, align 4
  br label %353

344:                                              ; preds = %306
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %9, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %10, align 4
  br label %352

348:                                              ; preds = %309, %307
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %9, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #5
  br label %352

352:                                              ; preds = %348, %344
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #5
  br label %353

353:                                              ; preds = %352, %340
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %39) #5
  br label %354

354:                                              ; preds = %353, %336
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #5
  br label %355

355:                                              ; preds = %354, %332
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %39) #5
  br label %380

356:                                              ; preds = %311
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %9, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %10, align 4
  br label %379

360:                                              ; preds = %315
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %9, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %10, align 4
  br label %378

364:                                              ; preds = %316
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %9, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %10, align 4
  br label %377

368:                                              ; preds = %319
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %9, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %10, align 4
  br label %376

372:                                              ; preds = %322, %320
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %9, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #5
  br label %376

376:                                              ; preds = %372, %368
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #5
  br label %377

377:                                              ; preds = %376, %364
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %44) #5
  br label %378

378:                                              ; preds = %377, %360
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #5
  br label %379

379:                                              ; preds = %378, %356
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %44) #5
  br label %380

380:                                              ; preds = %379, %355, %328
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  br label %381

381:                                              ; preds = %380, %290
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  br label %387

382:                                              ; preds = %289
  br label %383

383:                                              ; preds = %382, %278
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  br label %384

384:                                              ; preds = %383
  %385 = load i32, ptr %22, align 4, !tbaa !9
  %386 = add nsw i32 %385, 1
  store i32 %386, ptr %22, align 4, !tbaa !9
  br label %136, !llvm.loop !16

387:                                              ; preds = %381, %277, %185, %173
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  br label %388

388:                                              ; preds = %387, %147
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  br label %393

389:                                              ; preds = %142
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %390

390:                                              ; preds = %389
  %391 = load i32, ptr %19, align 4, !tbaa !9
  %392 = add nsw i32 %391, 1
  store i32 %392, ptr %19, align 4, !tbaa !9
  br label %80, !llvm.loop !17

393:                                              ; preds = %388, %143
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %394

394:                                              ; preds = %393, %127
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  br label %561

395:                                              ; preds = %86
  %396 = load ptr, ptr %6, align 8, !tbaa !5
  %397 = getelementptr inbounds %"struct.maliput::utility::ObjFeatures", ptr %396, i32 0, i32 5
  %398 = load i8, ptr %397, align 1, !tbaa !18, !range !30, !noundef !31
  %399 = trunc i8 %398 to i1
  br i1 %399, label %400, label %464

400:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  store i32 0, ptr %49, align 4, !tbaa !9
  br label %401

401:                                              ; preds = %430, %400
  %402 = load i32, ptr %49, align 4, !tbaa !9
  %403 = load ptr, ptr %5, align 8, !tbaa !5
  %404 = invoke noundef i32 @_ZNK7maliput3api12RoadGeometry17num_branch_pointsEv(ptr noundef nonnull align 8 dereferenceable(8) %403)
          to label %405 unwind label %408

405:                                              ; preds = %401
  %406 = icmp slt i32 %402, %404
  br i1 %406, label %412, label %407

407:                                              ; preds = %405
  store i32 14, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  br label %463

408:                                              ; preds = %401
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %9, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %10, align 4
  br label %462

412:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  %413 = load ptr, ptr %5, align 8, !tbaa !5
  %414 = load i32, ptr %49, align 4, !tbaa !9
  %415 = invoke noundef ptr @_ZNK7maliput3api12RoadGeometry12branch_pointEi(ptr noundef nonnull align 8 dereferenceable(8) %413, i32 noundef %414)
          to label %416 unwind label %433

416:                                              ; preds = %412
  store ptr %415, ptr %50, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 304, ptr %51) #5
  %417 = load ptr, ptr %5, align 8, !tbaa !5
  %418 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #5
  %419 = load ptr, ptr %50, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api11BranchPoint2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier.72") align 8 %52, ptr noundef nonnull align 8 dereferenceable(8) %419)
          to label %420 unwind label %437

420:                                              ; preds = %416
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #5
  store i32 4, ptr %53, align 4, !tbaa !11
  invoke void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_11BranchPointEEERKNS0_12MaterialTypeE(ptr dead_on_unwind writable sret(%"struct.std::pair.25") align 8 %51, ptr noundef %417, ptr noundef nonnull align 8 dereferenceable(128) %418, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 4 dereferenceable(4) %53)
          to label %421 unwind label %441

421:                                              ; preds = %420
  %422 = getelementptr inbounds %"struct.maliput::utility::RoadGeometryMesh", ptr %0, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #5
  %423 = load ptr, ptr %50, align 8, !tbaa !5
  invoke void @_ZNK7maliput3api11BranchPoint2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier.72") align 8 %55, ptr noundef nonnull align 8 dereferenceable(8) %423)
          to label %424 unwind label %445

424:                                              ; preds = %421
  invoke void @_ZN7maliput7utility12_GLOBAL__N_114BranchPointKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_11BranchPointEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %425 unwind label %449

425:                                              ; preds = %424
  %426 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %422, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %427 unwind label %453

427:                                              ; preds = %425
  %428 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %426, ptr noundef nonnull align 8 dereferenceable(304) %51)
          to label %429 unwind label %453

429:                                              ; preds = %427
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_11BranchPointEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_11BranchPointEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  br label %430

430:                                              ; preds = %429
  %431 = load i32, ptr %49, align 4, !tbaa !9
  %432 = add nsw i32 %431, 1
  store i32 %432, ptr %49, align 4, !tbaa !9
  br label %401, !llvm.loop !32

433:                                              ; preds = %412
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %9, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %10, align 4
  br label %461

437:                                              ; preds = %416
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %9, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %10, align 4
  br label %460

441:                                              ; preds = %420
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %9, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %10, align 4
  br label %459

445:                                              ; preds = %421
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %9, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %10, align 4
  br label %458

449:                                              ; preds = %424
  %450 = landingpad { ptr, i32 }
          cleanup
  %451 = extractvalue { ptr, i32 } %450, 0
  store ptr %451, ptr %9, align 8
  %452 = extractvalue { ptr, i32 } %450, 1
  store i32 %452, ptr %10, align 4
  br label %457

453:                                              ; preds = %427, %425
  %454 = landingpad { ptr, i32 }
          cleanup
  %455 = extractvalue { ptr, i32 } %454, 0
  store ptr %455, ptr %9, align 8
  %456 = extractvalue { ptr, i32 } %454, 1
  store i32 %456, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #5
  br label %457

457:                                              ; preds = %453, %449
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_11BranchPointEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #5
  br label %458

458:                                              ; preds = %457, %445
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %51) #5
  br label %459

459:                                              ; preds = %458, %441
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_11BranchPointEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #5
  br label %460

460:                                              ; preds = %459, %437
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %51) #5
  br label %461

461:                                              ; preds = %460, %433
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  br label %462

462:                                              ; preds = %461, %408
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  br label %561

463:                                              ; preds = %407
  br label %464

464:                                              ; preds = %463, %395
  call void @llvm.lifetime.start.p0(i64 304, ptr %56) #5
  %465 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN7maliput7utility17GetMaterialByNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) @_ZN7maliput7utility12_GLOBAL__N_113kBlandAsphaltB5cxx11E)
          to label %466 unwind label %505

466:                                              ; preds = %464
  invoke void @_ZSt9make_pairIN7maliput7utility4mesh7GeoMeshERKNS1_8MaterialEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS8_INS9_IT0_E4typeEE6__typeEEOSA_OSF_(ptr dead_on_unwind writable sret(%"struct.std::pair.25") align 8 %56, ptr noundef nonnull align 8 dereferenceable(184) %8, ptr noundef nonnull align 8 dereferenceable(120) %465)
          to label %467 unwind label %505

467:                                              ; preds = %466
  %468 = getelementptr inbounds %"struct.maliput::utility::RoadGeometryMesh", ptr %0, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %469 unwind label %509

469:                                              ; preds = %467
  %470 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %468, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %471 unwind label %513

471:                                              ; preds = %469
  %472 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %470, ptr noundef nonnull align 8 dereferenceable(304) %56)
          to label %473 unwind label %513

473:                                              ; preds = %471
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %56) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 304, ptr %59) #5
  %474 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN7maliput7utility17GetMaterialByNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) @_ZN7maliput7utility12_GLOBAL__N_119kGrayedBlandAsphaltB5cxx11E)
          to label %475 unwind label %519

475:                                              ; preds = %473
  invoke void @_ZSt9make_pairIN7maliput7utility4mesh7GeoMeshERKNS1_8MaterialEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS8_INS9_IT0_E4typeEE6__typeEEOSA_OSF_(ptr dead_on_unwind writable sret(%"struct.std::pair.25") align 8 %59, ptr noundef nonnull align 8 dereferenceable(184) %15, ptr noundef nonnull align 8 dereferenceable(120) %474)
          to label %476 unwind label %519

476:                                              ; preds = %475
  %477 = getelementptr inbounds %"struct.maliput::utility::RoadGeometryMesh", ptr %0, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %478 unwind label %523

478:                                              ; preds = %476
  %479 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %477, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %480 unwind label %527

480:                                              ; preds = %478
  %481 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %479, ptr noundef nonnull align 8 dereferenceable(304) %59)
          to label %482 unwind label %527

482:                                              ; preds = %480
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %59) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 304, ptr %62) #5
  %483 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN7maliput7utility17GetMaterialByNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) @_ZN7maliput7utility12_GLOBAL__N_112kHBoundsHazeB5cxx11E)
          to label %484 unwind label %533

484:                                              ; preds = %482
  invoke void @_ZSt9make_pairIN7maliput7utility4mesh7GeoMeshERKNS1_8MaterialEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS8_INS9_IT0_E4typeEE6__typeEEOSA_OSF_(ptr dead_on_unwind writable sret(%"struct.std::pair.25") align 8 %62, ptr noundef nonnull align 8 dereferenceable(184) %13, ptr noundef nonnull align 8 dereferenceable(120) %483)
          to label %485 unwind label %533

485:                                              ; preds = %484
  %486 = getelementptr inbounds %"struct.maliput::utility::RoadGeometryMesh", ptr %0, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %487 unwind label %537

487:                                              ; preds = %485
  %488 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %486, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %489 unwind label %541

489:                                              ; preds = %487
  %490 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %488, ptr noundef nonnull align 8 dereferenceable(304) %62)
          to label %491 unwind label %541

491:                                              ; preds = %489
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %62) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 304, ptr %65) #5
  %492 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN7maliput7utility17GetMaterialByNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) @_ZN7maliput7utility12_GLOBAL__N_19kSidewalkB5cxx11E)
          to label %493 unwind label %547

493:                                              ; preds = %491
  invoke void @_ZSt9make_pairIN7maliput7utility4mesh7GeoMeshERKNS1_8MaterialEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS8_INS9_IT0_E4typeEE6__typeEEOSA_OSF_(ptr dead_on_unwind writable sret(%"struct.std::pair.25") align 8 %65, ptr noundef nonnull align 8 dereferenceable(184) %18, ptr noundef nonnull align 8 dereferenceable(120) %492)
          to label %494 unwind label %547

494:                                              ; preds = %493
  %495 = getelementptr inbounds %"struct.maliput::utility::RoadGeometryMesh", ptr %0, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %496 unwind label %551

496:                                              ; preds = %494
  %497 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %495, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %498 unwind label %555

498:                                              ; preds = %496
  %499 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %497, ptr noundef nonnull align 8 dereferenceable(304) %65)
          to label %500 unwind label %555

500:                                              ; preds = %498
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %65) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr %65) #5
  %501 = invoke noundef ptr @_ZN7maliput3logEv()
          to label %502 unwind label %123

502:                                              ; preds = %500
  invoke void @_ZN7maliput6common6Logger5traceIJA29_cEEEvDpRKT_(ptr noundef nonnull align 8 dereferenceable(12) %501, ptr noundef nonnull align 1 dereferenceable(29) @.str.77)
          to label %503 unwind label %123

503:                                              ; preds = %502
  store i1 true, ptr %7, align 1
  store i32 1, ptr %20, align 4
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %18) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr %18) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %17) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr %17) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %16) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr %16) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %15) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr %15) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %14) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr %14) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %13) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr %13) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %12) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr %12) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %11) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr %11) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %8) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr %8) #5
  %504 = load i1, ptr %7, align 1
  br i1 %504, label %572, label %571

505:                                              ; preds = %466, %464
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %9, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %10, align 4
  br label %518

509:                                              ; preds = %467
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %9, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %10, align 4
  br label %517

513:                                              ; preds = %471, %469
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %9, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #5
  br label %517

517:                                              ; preds = %513, %509
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %56) #5
  br label %518

518:                                              ; preds = %517, %505
  call void @llvm.lifetime.end.p0(i64 304, ptr %56) #5
  br label %561

519:                                              ; preds = %475, %473
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %9, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %10, align 4
  br label %532

523:                                              ; preds = %476
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %9, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %10, align 4
  br label %531

527:                                              ; preds = %480, %478
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %9, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #5
  br label %531

531:                                              ; preds = %527, %523
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %59) #5
  br label %532

532:                                              ; preds = %531, %519
  call void @llvm.lifetime.end.p0(i64 304, ptr %59) #5
  br label %561

533:                                              ; preds = %484, %482
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %9, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %10, align 4
  br label %546

537:                                              ; preds = %485
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %9, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %10, align 4
  br label %545

541:                                              ; preds = %489, %487
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %9, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #5
  br label %545

545:                                              ; preds = %541, %537
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %62) #5
  br label %546

546:                                              ; preds = %545, %533
  call void @llvm.lifetime.end.p0(i64 304, ptr %62) #5
  br label %561

547:                                              ; preds = %493, %491
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %9, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %10, align 4
  br label %560

551:                                              ; preds = %494
  %552 = landingpad { ptr, i32 }
          cleanup
  %553 = extractvalue { ptr, i32 } %552, 0
  store ptr %553, ptr %9, align 8
  %554 = extractvalue { ptr, i32 } %552, 1
  store i32 %554, ptr %10, align 4
  br label %559

555:                                              ; preds = %498, %496
  %556 = landingpad { ptr, i32 }
          cleanup
  %557 = extractvalue { ptr, i32 } %556, 0
  store ptr %557, ptr %9, align 8
  %558 = extractvalue { ptr, i32 } %556, 1
  store i32 %558, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #5
  br label %559

559:                                              ; preds = %555, %551
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %65) #5
  br label %560

560:                                              ; preds = %559, %547
  call void @llvm.lifetime.end.p0(i64 304, ptr %65) #5
  br label %561

561:                                              ; preds = %560, %546, %532, %518, %462, %394, %123
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %18) #5
  br label %562

562:                                              ; preds = %561, %119
  call void @llvm.lifetime.end.p0(i64 184, ptr %18) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %17) #5
  br label %563

563:                                              ; preds = %562, %115
  call void @llvm.lifetime.end.p0(i64 184, ptr %17) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %16) #5
  br label %564

564:                                              ; preds = %563, %111
  call void @llvm.lifetime.end.p0(i64 184, ptr %16) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %15) #5
  br label %565

565:                                              ; preds = %564, %107
  call void @llvm.lifetime.end.p0(i64 184, ptr %15) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %14) #5
  br label %566

566:                                              ; preds = %565, %103
  call void @llvm.lifetime.end.p0(i64 184, ptr %14) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %13) #5
  br label %567

567:                                              ; preds = %566, %99
  call void @llvm.lifetime.end.p0(i64 184, ptr %13) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %12) #5
  br label %568

568:                                              ; preds = %567, %95
  call void @llvm.lifetime.end.p0(i64 184, ptr %12) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %11) #5
  br label %569

569:                                              ; preds = %568, %91
  call void @llvm.lifetime.end.p0(i64 184, ptr %11) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %8) #5
  br label %570

570:                                              ; preds = %569, %87
  call void @llvm.lifetime.end.p0(i64 184, ptr %8) #5
  call void @_ZN7maliput7utility16RoadGeometryMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(432) %0) #5
  br label %573

571:                                              ; preds = %503
  call void @_ZN7maliput7utility16RoadGeometryMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(432) %0) #5
  br label %572

572:                                              ; preds = %571, %503
  ret void

573:                                              ; preds = %570
  %574 = load ptr, ptr %9, align 8
  %575 = load i32, ptr %10, align 4
  %576 = insertvalue { ptr, i32 } poison, ptr %574, 0
  %577 = insertvalue { ptr, i32 } %576, i32 %575, 1
  resume { ptr, i32 } %577
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput7utility16RoadGeometryMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(432)) unnamed_addr #3 align 2

declare noundef ptr @_ZN7maliput3logEv() #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7maliput6common6Logger5traceIJA36_cEEEvDpRKT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(36)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK7maliput3api12RoadGeometry13num_junctionsEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7maliput3api12RoadGeometry8junctionEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK7maliput3api8Junction12num_segmentsEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7maliput3api8Junction7segmentEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN7maliput7utility12_GLOBAL__N_125IsSegmentRenderedNormallyERKNS_3api22TypeSpecificIdentifierINS2_7SegmentEEERKSt6vectorIS5_SaIS5_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7maliput3api7Segment2idEv(ptr dead_on_unwind noalias writable sret(%"class.maliput::api::TypeSpecificIdentifier.73") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput3api22TypeSpecificIdentifierINS0_7SegmentEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_113RenderSegmentEPKNS_3api7SegmentERKNS0_11ObjFeaturesEPNS0_4mesh7GeoMeshESB_SB_SB_SB_(ptr noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK7maliput3api7Segment9num_lanesEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

declare void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_17LaneKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304), ptr noundef nonnull align 8 dereferenceable(304)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_19MarkerKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_113GrayedLaneKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_115GrayedMarkerKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK7maliput3api12RoadGeometry17num_branch_pointsEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7maliput3api12RoadGeometry12branch_pointEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7maliput3api11BranchPoint2idEv(ptr dead_on_unwind noalias writable sret(%"class.maliput::api::TypeSpecificIdentifier.72") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_114BranchPointKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_11BranchPointEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput3api22TypeSpecificIdentifierINS0_11BranchPointEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIN7maliput7utility4mesh7GeoMeshERKNS1_8MaterialEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS8_INS9_IT0_E4typeEE6__typeEEOSA_OSF_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.25") align 8, ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(120)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7maliput6common6Logger5traceIJA29_cEEEvDpRKT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(29)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput7utility16RoadGeometryMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(432)) unnamed_addr #3 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN7maliput7utility12MaterialTypeE", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = !{!19, !21, i64 19}
!19 = !{!"_ZTSN7maliput7utility11ObjFeaturesE", !20, i64 0, !20, i64 8, !21, i64 16, !21, i64 17, !21, i64 18, !21, i64 19, !21, i64 20, !21, i64 21, !20, i64 24, !20, i64 32, !20, i64 40, !20, i64 48, !20, i64 56, !20, i64 64, !20, i64 72, !22, i64 80, !26, i64 104}
!20 = !{!"double", !7, i64 0}
!21 = !{!"bool", !7, i64 0}
!22 = !{!"_ZTSN7maliput3api16InertialPositionE", !23, i64 0}
!23 = !{!"_ZTSN7maliput4math7Vector3E", !24, i64 0}
!24 = !{!"_ZTSN7maliput4math10VectorBaseILm3ENS0_7Vector3EEE", !25, i64 0}
!25 = !{!"_ZTSSt5arrayIdLm3EE", !7, i64 0}
!26 = !{!"_ZTSSt6vectorIN7maliput3api22TypeSpecificIdentifierINS1_7SegmentEEESaIS4_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIN7maliput3api22TypeSpecificIdentifierINS1_7SegmentEEESaIS4_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIN7maliput3api22TypeSpecificIdentifierINS1_7SegmentEEESaIS4_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIN7maliput3api22TypeSpecificIdentifierINS1_7SegmentEEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!30 = !{i8 0, i8 2}
!31 = !{}
!32 = distinct !{!32, !14}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.std::pair.25" = type { %"class.maliput::utility::mesh::GeoMesh", %"struct.maliput::utility::Material" }
%"class.maliput::utility::mesh::GeoMesh" = type { %"class.maliput::utility::mesh::UniqueIndexer", %"class.maliput::utility::mesh::UniqueIndexer.37", %"class.std::vector.58" }
%"class.maliput::utility::mesh::UniqueIndexer" = type { %"class.std::unordered_map", %"class.std::vector.32" }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::vector.32" = type { %"struct.std::_Vector_base.33" }
%"struct.std::_Vector_base.33" = type { %"struct.std::_Vector_base<const maliput::utility::mesh::GeoVertex *, std::allocator<const maliput::utility::mesh::GeoVertex *>>::_Vector_impl" }
%"struct.std::_Vector_base<const maliput::utility::mesh::GeoVertex *, std::allocator<const maliput::utility::mesh::GeoVertex *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const maliput::utility::mesh::GeoVertex *, std::allocator<const maliput::utility::mesh::GeoVertex *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const maliput::utility::mesh::GeoVertex *, std::allocator<const maliput::utility::mesh::GeoVertex *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.maliput::utility::mesh::UniqueIndexer.37" = type { %"class.std::unordered_map.38", %"class.std::vector.53" }
%"class.std::unordered_map.38" = type { %"class.std::_Hashtable.39" }
%"class.std::_Hashtable.39" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.53" = type { %"struct.std::_Vector_base.54" }
%"struct.std::_Vector_base.54" = type { %"struct.std::_Vector_base<const maliput::utility::mesh::GeoNormal *, std::allocator<const maliput::utility::mesh::GeoNormal *>>::_Vector_impl" }
%"struct.std::_Vector_base<const maliput::utility::mesh::GeoNormal *, std::allocator<const maliput::utility::mesh::GeoNormal *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const maliput::utility::mesh::GeoNormal *, std::allocator<const maliput::utility::mesh::GeoNormal *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const maliput::utility::mesh::GeoNormal *, std::allocator<const maliput::utility::mesh::GeoNormal *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.58" = type { %"struct.std::_Vector_base.59" }
%"struct.std::_Vector_base.59" = type { %"struct.std::_Vector_base<maliput::utility::mesh::IndexFace, std::allocator<maliput::utility::mesh::IndexFace>>::_Vector_impl" }
%"struct.std::_Vector_base<maliput::utility::mesh::IndexFace, std::allocator<maliput::utility::mesh::IndexFace>>::_Vector_impl" = type { %"struct.std::_Vector_base<maliput::utility::mesh::IndexFace, std::allocator<maliput::utility::mesh::IndexFace>>::_Vector_impl_data" }
%"struct.std::_Vector_base<maliput::utility::mesh::IndexFace, std::allocator<maliput::utility::mesh::IndexFace>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.maliput::utility::Material" = type { %"class.std::__cxx11::basic_string", %"class.maliput::math::Vector3", %"class.maliput::math::Vector3", %"class.maliput::math::Vector3", double, double }
%"class.maliput::math::Vector3" = type { %"class.maliput::math::VectorBase" }
%"class.maliput::math::VectorBase" = type { %"struct.std::array" }
%"struct.std::array" = type { [3 x double] }
%"struct.maliput::utility::RoadGeometryMesh" = type { %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76", %"class.std::map.76" }
%"class.std::map.76" = type { %"class.std::_Rb_tree.77" }
%"class.std::_Rb_tree.77" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::pair<maliput::utility::mesh::GeoMesh, maliput::utility::Material>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::pair<maliput::utility::mesh::GeoMesh, maliput::utility::Material>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::pair<maliput::utility::mesh::GeoMesh, maliput::utility::Material>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::pair<maliput::utility::mesh::GeoMesh, maliput::utility::Material>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.maliput::api::TypeSpecificIdentifier.73" = type { %"class.std::__cxx11::basic_string" }
%"class.maliput::api::TypeSpecificIdentifier" = type { %"class.std::__cxx11::basic_string" }
%"class.maliput::api::TypeSpecificIdentifier.72" = type { %"class.std::__cxx11::basic_string" }
%"class.std::allocator.0" = type { i8 }

@_ZN7maliput7utility12_GLOBAL__N_113kBlandAsphaltB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@_ZN7maliput7utility12_GLOBAL__N_112kHBoundsHazeB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@_ZN7maliput7utility12_GLOBAL__N_119kGrayedBlandAsphaltB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@_ZN7maliput7utility12_GLOBAL__N_19kSidewalkB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@.str.34 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [29 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(120) ptr @_ZN7maliput7utility17GetMaterialByNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_4LaneEEERKNS0_12MaterialTypeE(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.25") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_11BranchPointEEERKNS0_12MaterialTypeE(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.25") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7maliput3api7Segment4laneEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7maliput7utility21BuildRoadGeometryMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesE(ptr dead_on_unwind noalias nonnull writable sret(%"struct.maliput::utility::RoadGeometryMesh") align 8 %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(128) %2) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %5 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %6 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %7 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %8 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %9 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %10 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %11 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %12 = alloca %"class.maliput::utility::mesh::GeoMesh", align 8
  %13 = alloca %"class.maliput::api::TypeSpecificIdentifier.73", align 8
  %14 = alloca %"struct.std::pair.25", align 8
  %15 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %19 = alloca %"struct.std::pair.25", align 8
  %20 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %24 = alloca %"struct.std::pair.25", align 8
  %25 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %26 = alloca i32, align 4
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %29 = alloca %"struct.std::pair.25", align 8
  %30 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %31 = alloca i32, align 4
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.maliput::api::TypeSpecificIdentifier", align 8
  %34 = alloca %"struct.std::pair.25", align 8
  %35 = alloca %"class.maliput::api::TypeSpecificIdentifier.72", align 8
  %36 = alloca i32, align 4
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.maliput::api::TypeSpecificIdentifier.72", align 8
  %39 = alloca %"struct.std::pair.25", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator.0", align 1
  %42 = alloca %"struct.std::pair.25", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator.0", align 1
  %45 = alloca %"struct.std::pair.25", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator.0", align 1
  %48 = alloca %"struct.std::pair.25", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.0", align 1
  tail call void @_ZN7maliput7utility16RoadGeometryMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(432) %0) #5
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %4) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %4)
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %5) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %5)
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %6) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %6)
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %7) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %7)
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %8) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %8)
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %9) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %9)
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %10) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %10)
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %11) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %11)
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %12) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %12)
  %51 = invoke noundef ptr @_ZN7maliput3logEv()
          to label %52 unwind label %67

52:                                               ; preds = %3
  invoke void @_ZN7maliput6common6Logger5traceIJA36_cEEEvDpRKT_(ptr noundef nonnull align 8 dereferenceable(12) %51, ptr noundef nonnull align 1 dereferenceable(36) @.str.73)
          to label %.preheader153 unwind label %67

.preheader153:                                    ; preds = %52
  %53 = getelementptr inbounds i8, ptr %2, i64 104
  %54 = getelementptr inbounds i8, ptr %0, i64 240
  %55 = getelementptr inbounds i8, ptr %0, i64 288
  %56 = getelementptr inbounds i8, ptr %0, i64 144
  %57 = getelementptr inbounds i8, ptr %0, i64 192
  br label %58

58:                                               ; preds = %.preheader153, %76
  %.097 = phi i32 [ %77, %76 ], [ 0, %.preheader153 ]
  %59 = invoke noundef i32 @_ZNK7maliput3api12RoadGeometry13num_junctionsEv(ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %60 unwind label %69

60:                                               ; preds = %58
  %61 = icmp slt i32 %.097, %59
  br i1 %61, label %71, label %62

62:                                               ; preds = %60
  %63 = getelementptr inbounds i8, ptr %2, i64 19
  %64 = load i8, ptr %63, align 1, !tbaa !5, !range !20, !noundef !21
  %65 = trunc nuw i8 %64 to i1
  br i1 %65, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %62
  %66 = getelementptr inbounds i8, ptr %0, i64 336
  br label %208

67:                                               ; preds = %278, %276, %52, %3
  %68 = landingpad { ptr, i32 }
          cleanup
  br label %312

69:                                               ; preds = %58
  %70 = landingpad { ptr, i32 }
          cleanup
  br label %312

71:                                               ; preds = %60
  %72 = invoke noundef ptr @_ZNK7maliput3api12RoadGeometry8junctionEi(ptr noundef nonnull align 8 dereferenceable(8) %1, i32 noundef %.097)
          to label %.preheader152 unwind label %78

.preheader152:                                    ; preds = %71, %.loopexit149
  %.098 = phi i32 [ %207, %.loopexit149 ], [ 0, %71 ]
  %73 = invoke noundef i32 @_ZNK7maliput3api8Junction12num_segmentsEv(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %74 unwind label %80

74:                                               ; preds = %.preheader152
  %75 = icmp slt i32 %.098, %73
  br i1 %75, label %82, label %76

76:                                               ; preds = %74
  %77 = add nuw nsw i32 %.097, 1
  br label %58, !llvm.loop !22

78:                                               ; preds = %71
  %79 = landingpad { ptr, i32 }
          cleanup
  br label %312

80:                                               ; preds = %.preheader152
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %312

82:                                               ; preds = %74
  %83 = invoke noundef ptr @_ZNK7maliput3api8Junction7segmentEi(ptr noundef nonnull align 8 dereferenceable(8) %72, i32 noundef %.098)
          to label %84 unwind label %92

84:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #5
  invoke void @_ZNK7maliput3api7Segment2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier.73") align 8 %13, ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %85 unwind label %94

85:                                               ; preds = %84
  %86 = invoke noundef zeroext i1 @_ZN7maliput7utility12_GLOBAL__N_125IsSegmentRenderedNormallyERKNS_3api22TypeSpecificIdentifierINS2_7SegmentEEERKSt6vectorIS5_SaIS5_EE(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %87 unwind label %96

87:                                               ; preds = %85
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_7SegmentEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  br i1 %86, label %88, label %151

88:                                               ; preds = %87
  invoke void @_ZN7maliput7utility12_GLOBAL__N_113RenderSegmentEPKNS_3api7SegmentERKNS0_11ObjFeaturesEPNS0_4mesh7GeoMeshESB_SB_SB_SB_(ptr noundef nonnull %83, ptr noundef nonnull align 8 dereferenceable(128) %2, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %12)
          to label %.preheader148 unwind label %92

.preheader148:                                    ; preds = %88, %119
  %.096 = phi i32 [ %120, %119 ], [ 0, %88 ]
  %89 = invoke noundef i32 @_ZNK7maliput3api7Segment9num_lanesEv(ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %90 unwind label %99

90:                                               ; preds = %.preheader148
  %91 = icmp slt i32 %.096, %89
  br i1 %91, label %101, label %.loopexit149

92:                                               ; preds = %151, %88, %82
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %312

94:                                               ; preds = %84
  %95 = landingpad { ptr, i32 }
          cleanup
  br label %98

96:                                               ; preds = %85
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_7SegmentEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  br label %98

98:                                               ; preds = %96, %94
  %.pn117 = phi { ptr, i32 } [ %97, %96 ], [ %95, %94 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  br label %312

99:                                               ; preds = %.preheader148
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %312

101:                                              ; preds = %90
  %102 = invoke noundef ptr @_ZNK7maliput3api7Segment4laneEi(ptr noundef nonnull align 8 dereferenceable(8) %83, i32 noundef %.096)
          to label %103 unwind label %121

103:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %15, ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %104 unwind label %123

104:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #5
  store i32 1, ptr %16, align 4, !tbaa !24
  invoke void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_4LaneEEERKNS0_12MaterialTypeE(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.25") align 8 %14, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(128) %2, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %105 unwind label %125

105:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %18, ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %106 unwind label %127

106:                                              ; preds = %105
  invoke void @_ZN7maliput7utility12_GLOBAL__N_17LaneKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %107 unwind label %129

107:                                              ; preds = %106
  %108 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %56, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %109 unwind label %131

109:                                              ; preds = %107
  %110 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %108, ptr noundef nonnull align 8 dereferenceable(304) %14)
          to label %111 unwind label %131

111:                                              ; preds = %109
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %20, ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %112 unwind label %137

112:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  store i32 2, ptr %21, align 4, !tbaa !24
  invoke void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_4LaneEEERKNS0_12MaterialTypeE(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.25") align 8 %19, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(128) %2, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %113 unwind label %139

113:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %23, ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %114 unwind label %141

114:                                              ; preds = %113
  invoke void @_ZN7maliput7utility12_GLOBAL__N_19MarkerKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %115 unwind label %143

115:                                              ; preds = %114
  %116 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %57, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %117 unwind label %145

117:                                              ; preds = %115
  %118 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %116, ptr noundef nonnull align 8 dereferenceable(304) %19)
          to label %119 unwind label %145

119:                                              ; preds = %117
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %19) #5
  %120 = add nuw nsw i32 %.096, 1
  br label %.preheader148, !llvm.loop !26

121:                                              ; preds = %101
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %312

123:                                              ; preds = %103
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %136

125:                                              ; preds = %104
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %135

127:                                              ; preds = %105
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %134

129:                                              ; preds = %106
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %133

131:                                              ; preds = %109, %107
  %132 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  br label %133

133:                                              ; preds = %131, %129
  %.pn131 = phi { ptr, i32 } [ %132, %131 ], [ %130, %129 ]
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  br label %134

134:                                              ; preds = %133, %127
  %.pn131.pn = phi { ptr, i32 } [ %.pn131, %133 ], [ %128, %127 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %14) #5
  br label %135

135:                                              ; preds = %134, %125
  %.pn131.pn.pn = phi { ptr, i32 } [ %.pn131.pn, %134 ], [ %126, %125 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  br label %136

136:                                              ; preds = %135, %123
  %.pn131.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn, %135 ], [ %124, %123 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %14) #5
  br label %312

137:                                              ; preds = %111
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %150

139:                                              ; preds = %112
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %149

141:                                              ; preds = %113
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %148

143:                                              ; preds = %114
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %147

145:                                              ; preds = %117, %115
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br label %147

147:                                              ; preds = %145, %143
  %.pn136 = phi { ptr, i32 } [ %146, %145 ], [ %144, %143 ]
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  br label %148

148:                                              ; preds = %147, %141
  %.pn136.pn = phi { ptr, i32 } [ %.pn136, %147 ], [ %142, %141 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %19) #5
  br label %149

149:                                              ; preds = %148, %139
  %.pn136.pn.pn = phi { ptr, i32 } [ %.pn136.pn, %148 ], [ %140, %139 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  br label %150

150:                                              ; preds = %149, %137
  %.pn136.pn.pn.pn = phi { ptr, i32 } [ %.pn136.pn.pn, %149 ], [ %138, %137 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %19) #5
  br label %312

151:                                              ; preds = %87
  invoke void @_ZN7maliput7utility12_GLOBAL__N_113RenderSegmentEPKNS_3api7SegmentERKNS0_11ObjFeaturesEPNS0_4mesh7GeoMeshESB_SB_SB_SB_(ptr noundef nonnull %83, ptr noundef nonnull align 8 dereferenceable(128) %2, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %7, ptr noundef nonnull %12)
          to label %.preheader150 unwind label %92

.preheader150:                                    ; preds = %151, %175
  %.055 = phi i32 [ %176, %175 ], [ 0, %151 ]
  %152 = invoke noundef i32 @_ZNK7maliput3api7Segment9num_lanesEv(ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %153 unwind label %155

153:                                              ; preds = %.preheader150
  %154 = icmp slt i32 %.055, %152
  br i1 %154, label %157, label %.loopexit149

155:                                              ; preds = %.preheader150
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %312

157:                                              ; preds = %153
  %158 = invoke noundef ptr @_ZNK7maliput3api7Segment4laneEi(ptr noundef nonnull align 8 dereferenceable(8) %83, i32 noundef %.055)
          to label %159 unwind label %177

159:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %25, ptr noundef nonnull align 8 dereferenceable(8) %158)
          to label %160 unwind label %179

160:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #5
  store i32 6, ptr %26, align 4, !tbaa !24
  invoke void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_4LaneEEERKNS0_12MaterialTypeE(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.25") align 8 %24, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(128) %2, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %161 unwind label %181

161:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %28, ptr noundef nonnull align 8 dereferenceable(8) %158)
          to label %162 unwind label %183

162:                                              ; preds = %161
  invoke void @_ZN7maliput7utility12_GLOBAL__N_113GrayedLaneKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %163 unwind label %185

163:                                              ; preds = %162
  %164 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %54, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %165 unwind label %187

165:                                              ; preds = %163
  %166 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %164, ptr noundef nonnull align 8 dereferenceable(304) %24)
          to label %167 unwind label %187

167:                                              ; preds = %165
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %30, ptr noundef nonnull align 8 dereferenceable(8) %158)
          to label %168 unwind label %193

168:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #5
  store i32 7, ptr %31, align 4, !tbaa !24
  invoke void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_4LaneEEERKNS0_12MaterialTypeE(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.25") align 8 %29, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(128) %2, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %169 unwind label %195

169:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #5
  invoke void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8 %33, ptr noundef nonnull align 8 dereferenceable(8) %158)
          to label %170 unwind label %197

170:                                              ; preds = %169
  invoke void @_ZN7maliput7utility12_GLOBAL__N_115GrayedMarkerKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %171 unwind label %199

171:                                              ; preds = %170
  %172 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %55, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %173 unwind label %201

173:                                              ; preds = %171
  %174 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %172, ptr noundef nonnull align 8 dereferenceable(304) %29)
          to label %175 unwind label %201

175:                                              ; preds = %173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %29) #5
  %176 = add nuw nsw i32 %.055, 1
  br label %.preheader150, !llvm.loop !27

177:                                              ; preds = %157
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %312

179:                                              ; preds = %159
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %192

181:                                              ; preds = %160
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %191

183:                                              ; preds = %161
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %190

185:                                              ; preds = %162
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %189

187:                                              ; preds = %165, %163
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  br label %189

189:                                              ; preds = %187, %185
  %.pn119 = phi { ptr, i32 } [ %188, %187 ], [ %186, %185 ]
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  br label %190

190:                                              ; preds = %189, %183
  %.pn119.pn = phi { ptr, i32 } [ %.pn119, %189 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %24) #5
  br label %191

191:                                              ; preds = %190, %181
  %.pn119.pn.pn = phi { ptr, i32 } [ %.pn119.pn, %190 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  br label %192

192:                                              ; preds = %191, %179
  %.pn119.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn, %191 ], [ %180, %179 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %24) #5
  br label %312

193:                                              ; preds = %167
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %206

195:                                              ; preds = %168
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %205

197:                                              ; preds = %169
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %204

199:                                              ; preds = %170
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %203

201:                                              ; preds = %173, %171
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  br label %203

203:                                              ; preds = %201, %199
  %.pn124 = phi { ptr, i32 } [ %202, %201 ], [ %200, %199 ]
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  br label %204

204:                                              ; preds = %203, %197
  %.pn124.pn = phi { ptr, i32 } [ %.pn124, %203 ], [ %198, %197 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %29) #5
  br label %205

205:                                              ; preds = %204, %195
  %.pn124.pn.pn = phi { ptr, i32 } [ %.pn124.pn, %204 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  br label %206

206:                                              ; preds = %205, %193
  %.pn124.pn.pn.pn = phi { ptr, i32 } [ %.pn124.pn.pn, %205 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %29) #5
  br label %312

.loopexit149:                                     ; preds = %153, %90
  %207 = add nuw nsw i32 %.098, 1
  br label %.preheader152, !llvm.loop !28

208:                                              ; preds = %.preheader, %224
  %.0 = phi i32 [ %225, %224 ], [ 0, %.preheader ]
  %209 = invoke noundef i32 @_ZNK7maliput3api12RoadGeometry17num_branch_pointsEv(ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %210 unwind label %212

210:                                              ; preds = %208
  %211 = icmp slt i32 %.0, %209
  br i1 %211, label %214, label %.loopexit

212:                                              ; preds = %208
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %312

214:                                              ; preds = %210
  %215 = invoke noundef ptr @_ZNK7maliput3api12RoadGeometry12branch_pointEi(ptr noundef nonnull align 8 dereferenceable(8) %1, i32 noundef %.0)
          to label %216 unwind label %226

216:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #5
  invoke void @_ZNK7maliput3api11BranchPoint2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier.72") align 8 %35, ptr noundef nonnull align 8 dereferenceable(8) %215)
          to label %217 unwind label %228

217:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  store i32 4, ptr %36, align 4, !tbaa !24
  invoke void @_ZN7maliput7utility9BuildMeshEPKNS_3api12RoadGeometryERKNS0_11ObjFeaturesERKNS1_22TypeSpecificIdentifierINS1_11BranchPointEEERKNS0_12MaterialTypeE(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.25") align 8 %34, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(128) %2, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 4 dereferenceable(4) %36)
          to label %218 unwind label %230

218:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #5
  invoke void @_ZNK7maliput3api11BranchPoint2idEv(ptr dead_on_unwind nonnull writable sret(%"class.maliput::api::TypeSpecificIdentifier.72") align 8 %38, ptr noundef nonnull align 8 dereferenceable(8) %215)
          to label %219 unwind label %232

219:                                              ; preds = %218
  invoke void @_ZN7maliput7utility12_GLOBAL__N_114BranchPointKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_11BranchPointEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %220 unwind label %234

220:                                              ; preds = %219
  %221 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %66, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %222 unwind label %236

222:                                              ; preds = %220
  %223 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %221, ptr noundef nonnull align 8 dereferenceable(304) %34)
          to label %224 unwind label %236

224:                                              ; preds = %222
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_11BranchPointEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_11BranchPointEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %34) #5
  %225 = add nuw nsw i32 %.0, 1
  br label %208, !llvm.loop !29

226:                                              ; preds = %214
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %312

228:                                              ; preds = %216
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %241

230:                                              ; preds = %217
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %240

232:                                              ; preds = %218
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %239

234:                                              ; preds = %219
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %238

236:                                              ; preds = %222, %220
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #5
  br label %238

238:                                              ; preds = %236, %234
  %.pn110 = phi { ptr, i32 } [ %237, %236 ], [ %235, %234 ]
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_11BranchPointEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #5
  br label %239

239:                                              ; preds = %238, %232
  %.pn110.pn = phi { ptr, i32 } [ %.pn110, %238 ], [ %233, %232 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %34) #5
  br label %240

240:                                              ; preds = %239, %230
  %.pn110.pn.pn = phi { ptr, i32 } [ %.pn110.pn, %239 ], [ %231, %230 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @_ZN7maliput3api22TypeSpecificIdentifierINS0_11BranchPointEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  br label %241

241:                                              ; preds = %240, %228
  %.pn110.pn.pn.pn = phi { ptr, i32 } [ %.pn110.pn.pn, %240 ], [ %229, %228 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %34) #5
  br label %312

.loopexit:                                        ; preds = %210, %62
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %39) #5
  %242 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN7maliput7utility17GetMaterialByNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) @_ZN7maliput7utility12_GLOBAL__N_113kBlandAsphaltB5cxx11E)
          to label %243 unwind label %280

243:                                              ; preds = %.loopexit
  invoke void @_ZSt9make_pairIN7maliput7utility4mesh7GeoMeshERKNS1_8MaterialEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS8_INS9_IT0_E4typeEE6__typeEEOSA_OSF_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.25") align 8 %39, ptr noundef nonnull align 8 dereferenceable(184) %4, ptr noundef nonnull align 8 dereferenceable(120) %242)
          to label %244 unwind label %280

244:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %245 unwind label %282

245:                                              ; preds = %244
  %246 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %247 unwind label %284

247:                                              ; preds = %245
  %248 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %246, ptr noundef nonnull align 8 dereferenceable(304) %39)
          to label %249 unwind label %284

249:                                              ; preds = %247
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %39) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %42) #5
  %250 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN7maliput7utility17GetMaterialByNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) @_ZN7maliput7utility12_GLOBAL__N_119kGrayedBlandAsphaltB5cxx11E)
          to label %251 unwind label %288

251:                                              ; preds = %249
  invoke void @_ZSt9make_pairIN7maliput7utility4mesh7GeoMeshERKNS1_8MaterialEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS8_INS9_IT0_E4typeEE6__typeEEOSA_OSF_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.25") align 8 %42, ptr noundef nonnull align 8 dereferenceable(184) %9, ptr noundef nonnull align 8 dereferenceable(120) %250)
          to label %252 unwind label %288

252:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %253 unwind label %290

253:                                              ; preds = %252
  %254 = getelementptr inbounds i8, ptr %0, i64 48
  %255 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %254, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %256 unwind label %292

256:                                              ; preds = %253
  %257 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %255, ptr noundef nonnull align 8 dereferenceable(304) %42)
          to label %258 unwind label %292

258:                                              ; preds = %256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %42) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %45) #5
  %259 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN7maliput7utility17GetMaterialByNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) @_ZN7maliput7utility12_GLOBAL__N_112kHBoundsHazeB5cxx11E)
          to label %260 unwind label %296

260:                                              ; preds = %258
  invoke void @_ZSt9make_pairIN7maliput7utility4mesh7GeoMeshERKNS1_8MaterialEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS8_INS9_IT0_E4typeEE6__typeEEOSA_OSF_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.25") align 8 %45, ptr noundef nonnull align 8 dereferenceable(184) %7, ptr noundef nonnull align 8 dereferenceable(120) %259)
          to label %261 unwind label %296

261:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %262 unwind label %298

262:                                              ; preds = %261
  %263 = getelementptr inbounds i8, ptr %0, i64 96
  %264 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %263, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %265 unwind label %300

265:                                              ; preds = %262
  %266 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %264, ptr noundef nonnull align 8 dereferenceable(304) %45)
          to label %267 unwind label %300

267:                                              ; preds = %265
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %45) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %45) #5
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %48) #5
  %268 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN7maliput7utility17GetMaterialByNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) @_ZN7maliput7utility12_GLOBAL__N_19kSidewalkB5cxx11E)
          to label %269 unwind label %304

269:                                              ; preds = %267
  invoke void @_ZSt9make_pairIN7maliput7utility4mesh7GeoMeshERKNS1_8MaterialEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS8_INS9_IT0_E4typeEE6__typeEEOSA_OSF_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.25") align 8 %48, ptr noundef nonnull align 8 dereferenceable(184) %12, ptr noundef nonnull align 8 dereferenceable(120) %268)
          to label %270 unwind label %304

270:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %271 unwind label %306

271:                                              ; preds = %270
  %272 = getelementptr inbounds i8, ptr %0, i64 384
  %273 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %272, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %274 unwind label %308

274:                                              ; preds = %271
  %275 = invoke noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304) %273, ptr noundef nonnull align 8 dereferenceable(304) %48)
          to label %276 unwind label %308

276:                                              ; preds = %274
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %48) #5
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %48) #5
  %277 = invoke noundef ptr @_ZN7maliput3logEv()
          to label %278 unwind label %67

278:                                              ; preds = %276
  invoke void @_ZN7maliput6common6Logger5traceIJA29_cEEEvDpRKT_(ptr noundef nonnull align 8 dereferenceable(12) %277, ptr noundef nonnull align 1 dereferenceable(29) @.str.77)
          to label %279 unwind label %67

279:                                              ; preds = %278
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %12) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %12) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %11) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %11) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %10) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %10) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %9) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %9) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %8) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %8) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %7) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %7) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %6) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %6) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %5) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %5) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %4) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %4) #5
  ret void

280:                                              ; preds = %243, %.loopexit
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %287

282:                                              ; preds = %244
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %286

284:                                              ; preds = %247, %245
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #5
  br label %286

286:                                              ; preds = %284, %282
  %.pn = phi { ptr, i32 } [ %285, %284 ], [ %283, %282 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %39) #5
  br label %287

287:                                              ; preds = %286, %280
  %.pn.pn = phi { ptr, i32 } [ %.pn, %286 ], [ %281, %280 ]
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %39) #5
  br label %312

288:                                              ; preds = %251, %249
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %295

290:                                              ; preds = %252
  %291 = landingpad { ptr, i32 }
          cleanup
  br label %294

292:                                              ; preds = %256, %253
  %293 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #5
  br label %294

294:                                              ; preds = %292, %290
  %.pn101 = phi { ptr, i32 } [ %293, %292 ], [ %291, %290 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %42) #5
  br label %295

295:                                              ; preds = %294, %288
  %.pn101.pn = phi { ptr, i32 } [ %.pn101, %294 ], [ %289, %288 ]
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %42) #5
  br label %312

296:                                              ; preds = %260, %258
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %303

298:                                              ; preds = %261
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %302

300:                                              ; preds = %265, %262
  %301 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #5
  br label %302

302:                                              ; preds = %300, %298
  %.pn104 = phi { ptr, i32 } [ %301, %300 ], [ %299, %298 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %45) #5
  br label %303

303:                                              ; preds = %302, %296
  %.pn104.pn = phi { ptr, i32 } [ %.pn104, %302 ], [ %297, %296 ]
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %45) #5
  br label %312

304:                                              ; preds = %269, %267
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %311

306:                                              ; preds = %270
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %310

308:                                              ; preds = %274, %271
  %309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #5
  br label %310

310:                                              ; preds = %308, %306
  %.pn107 = phi { ptr, i32 } [ %309, %308 ], [ %307, %306 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #5
  call void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304) %48) #5
  br label %311

311:                                              ; preds = %310, %304
  %.pn107.pn = phi { ptr, i32 } [ %.pn107, %310 ], [ %305, %304 ]
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %48) #5
  br label %312

312:                                              ; preds = %212, %241, %226, %69, %80, %155, %206, %192, %177, %99, %150, %136, %121, %98, %92, %78, %311, %303, %295, %287, %67
  %.pn136.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %68, %67 ], [ %.pn107.pn, %311 ], [ %.pn104.pn, %303 ], [ %.pn101.pn, %295 ], [ %.pn.pn, %287 ], [ %70, %69 ], [ %79, %78 ], [ %81, %80 ], [ %93, %92 ], [ %.pn117, %98 ], [ %100, %99 ], [ %.pn136.pn.pn.pn, %150 ], [ %.pn131.pn.pn.pn, %136 ], [ %122, %121 ], [ %156, %155 ], [ %.pn124.pn.pn.pn, %206 ], [ %.pn119.pn.pn.pn, %192 ], [ %178, %177 ], [ %213, %212 ], [ %.pn110.pn.pn.pn, %241 ], [ %227, %226 ]
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %12) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %12) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %11) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %11) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %10) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %10) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %9) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %9) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %8) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %8) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %7) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %7) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %6) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %6) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %5) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %5) #5
  call void @_ZN7maliput7utility4mesh7GeoMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %4) #5
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %4) #5
  call void @_ZN7maliput7utility16RoadGeometryMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(432) %0) #5
  resume { ptr, i32 } %.pn136.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput7utility16RoadGeometryMeshC2Ev(ptr noundef nonnull align 8 dereferenceable(432)) unnamed_addr #3 align 2

declare noundef ptr @_ZN7maliput3logEv() local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7maliput6common6Logger5traceIJA36_cEEEvDpRKT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(36)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK7maliput3api12RoadGeometry13num_junctionsEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7maliput3api12RoadGeometry8junctionEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK7maliput3api8Junction12num_segmentsEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7maliput3api8Junction7segmentEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN7maliput7utility12_GLOBAL__N_125IsSegmentRenderedNormallyERKNS_3api22TypeSpecificIdentifierINS2_7SegmentEEERKSt6vectorIS5_SaIS5_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7maliput3api7Segment2idEv(ptr dead_on_unwind noalias writable sret(%"class.maliput::api::TypeSpecificIdentifier.73") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput3api22TypeSpecificIdentifierINS0_7SegmentEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_113RenderSegmentEPKNS_3api7SegmentERKNS0_11ObjFeaturesEPNS0_4mesh7GeoMeshESB_SB_SB_SB_(ptr noundef, ptr noundef nonnull align 8 dereferenceable(128), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK7maliput3api7Segment9num_lanesEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

declare void @_ZNK7maliput3api4Lane2idEv(ptr dead_on_unwind writable sret(%"class.maliput::api::TypeSpecificIdentifier") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN7maliput7utility4mesh7GeoMeshENS8_8MaterialEESt4lessIS5_ESaIS6_IKS5_SC_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_17LaneKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(304) ptr @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(304), ptr noundef nonnull align 8 dereferenceable(304)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput3api22TypeSpecificIdentifierINS0_4LaneEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIN7maliput7utility4mesh7GeoMeshENS1_8MaterialEED2Ev(ptr noundef nonnull align 8 dereferenceable(304)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_19MarkerKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_113GrayedLaneKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_115GrayedMarkerKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_4LaneEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK7maliput3api12RoadGeometry17num_branch_pointsEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7maliput3api12RoadGeometry12branch_pointEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7maliput3api11BranchPoint2idEv(ptr dead_on_unwind noalias writable sret(%"class.maliput::api::TypeSpecificIdentifier.72") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN7maliput7utility12_GLOBAL__N_114BranchPointKeyB5cxx11ERKNS_3api22TypeSpecificIdentifierINS2_11BranchPointEEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput3api22TypeSpecificIdentifierINS0_11BranchPointEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIN7maliput7utility4mesh7GeoMeshERKNS1_8MaterialEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS8_INS9_IT0_E4typeEE6__typeEEOSA_OSF_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.25") align 8, ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7maliput6common6Logger5traceIJA29_cEEEvDpRKT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(29)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7maliput7utility16RoadGeometryMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(432)) unnamed_addr #3 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !10, i64 19}
!6 = !{!"_ZTSN7maliput7utility11ObjFeaturesE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 17, !10, i64 18, !10, i64 19, !10, i64 20, !10, i64 21, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !11, i64 80, !15, i64 104}
!7 = !{!"double", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"bool", !8, i64 0}
!11 = !{!"_ZTSN7maliput3api16InertialPositionE", !12, i64 0}
!12 = !{!"_ZTSN7maliput4math7Vector3E", !13, i64 0}
!13 = !{!"_ZTSN7maliput4math10VectorBaseILm3ENS0_7Vector3EEE", !14, i64 0}
!14 = !{!"_ZTSSt5arrayIdLm3EE", !8, i64 0}
!15 = !{!"_ZTSSt6vectorIN7maliput3api22TypeSpecificIdentifierINS1_7SegmentEEESaIS4_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIN7maliput3api22TypeSpecificIdentifierINS1_7SegmentEEESaIS4_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN7maliput3api22TypeSpecificIdentifierINS1_7SegmentEEESaIS4_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIN7maliput3api22TypeSpecificIdentifierINS1_7SegmentEEESaIS4_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!19 = !{!"any pointer", !8, i64 0}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.mustprogress"}
!24 = !{!25, !25, i64 0}
!25 = !{!"_ZTSN7maliput7utility12MaterialTypeE", !8, i64 0}
!26 = distinct !{!26, !23}
!27 = distinct !{!27, !23}
!28 = distinct !{!28, !23}
!29 = distinct !{!29, !23}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass