; LLVM IR from ronan-kerviche/glip-lib :: GLIP-Lib/src/Modules (GeometryLoader)

; 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] }
%"class.std::allocator" = type { i8 }
%"struct.Glip::Modules::OBJLoader::UnshapedData" = type <{ %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.13", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", i8, i8, [6 x i8] }>
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZTIN4Glip9ExceptionE = external constant ptr
@.str.14 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [3 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 uwtable
declare dso_local noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #1 align 2

declare ptr @__cxa_allocate_exception(i64)

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

declare void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZN4Glip9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #4

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4Glip7Modules9OBJLoader11processLineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS1_12UnshapedDataEbiS9_RSt6vectorIjSaIjEESF_SF_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(410) %1, i1 noundef zeroext %2, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7) #2 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i8, align 1
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca i32, align 4
  %36 = alloca i1, align 1
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca i32, align 4
  %44 = alloca i1, align 1
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca i32, align 4
  %51 = alloca i1, align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca i32, align 4
  %56 = alloca i1, align 1
  %57 = alloca i32, align 4
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca i32, align 4
  %62 = alloca i1, align 1
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  %63 = zext i1 %2 to i8
  store i8 %63, ptr %11, align 1, !tbaa !9
  store i32 %3, ptr %12, align 4, !tbaa !11
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store ptr %6, ptr %15, align 8, !tbaa !5
  store ptr %7, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %64 unwind label %75

64:                                               ; preds = %8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %65 unwind label %79

65:                                               ; preds = %64
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  store i64 -1, ptr %23, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  store i64 -1, ptr %24, align 8, !tbaa !13
  %66 = load ptr, ptr %9, align 8, !tbaa !5
  %67 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %17, i64 noundef 0) #7
  store i64 %67, ptr %23, align 8, !tbaa !13
  %68 = load ptr, ptr %9, align 8, !tbaa !5
  %69 = load i64, ptr %23, align 8, !tbaa !13
  %70 = add i64 %69, 1
  %71 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %21, i64 noundef %70) #7
  store i64 %71, ptr %24, align 8, !tbaa !13
  %72 = load i64, ptr %23, align 8, !tbaa !13
  %73 = icmp eq i64 %72, -1
  br i1 %73, label %74, label %83

74:                                               ; preds = %65
  store i32 1, ptr %25, align 4
  br label %557

75:                                               ; preds = %8
  %76 = landingpad { ptr, i32 }
          cleanup
  %77 = extractvalue { ptr, i32 } %76, 0
  store ptr %77, ptr %19, align 8
  %78 = extractvalue { ptr, i32 } %76, 1
  store i32 %78, ptr %20, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  br label %563

79:                                               ; preds = %64
  %80 = landingpad { ptr, i32 }
          cleanup
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %19, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %20, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #7
  br label %562

83:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #7
  %84 = load ptr, ptr %9, align 8, !tbaa !5
  %85 = load i64, ptr %23, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %86 = load i64, ptr %24, align 8, !tbaa !13
  %87 = load i64, ptr %23, align 8, !tbaa !13
  %88 = sub i64 %86, %87
  store i64 %88, ptr %27, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  store i64 1, ptr %28, align 8, !tbaa !13
  %89 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %90 unwind label %97

90:                                               ; preds = %83
  %91 = load i64, ptr %89, align 8, !tbaa !13
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %84, i64 noundef %85, i64 noundef %91)
          to label %92 unwind label %97

92:                                               ; preds = %90
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  %93 = load i64, ptr %24, align 8, !tbaa !13
  store i64 %93, ptr %23, align 8, !tbaa !13
  %94 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.15)
          to label %95 unwind label %101

95:                                               ; preds = %92
  br i1 %94, label %96, label %105

96:                                               ; preds = %95
  store i32 1, ptr %25, align 4
  br label %556

97:                                               ; preds = %90, %83
  %98 = landingpad { ptr, i32 }
          cleanup
  %99 = extractvalue { ptr, i32 } %98, 0
  store ptr %99, ptr %19, align 8
  %100 = extractvalue { ptr, i32 } %98, 1
  store i32 %100, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %561

101:                                              ; preds = %429, %424, %419, %414, %409, %404, %399, %394, %389, %349, %338, %331, %324, %321, %257, %180, %105, %92
  %102 = landingpad { ptr, i32 }
          cleanup
  %103 = extractvalue { ptr, i32 } %102, 0
  store ptr %103, ptr %19, align 8
  %104 = extractvalue { ptr, i32 } %102, 1
  store i32 %104, ptr %20, align 4
  br label %560

105:                                              ; preds = %95
  %106 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.16)
          to label %107 unwind label %101

107:                                              ; preds = %105
  br i1 %106, label %108, label %180

108:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  %109 = load ptr, ptr %9, align 8, !tbaa !5
  %110 = load i32, ptr %12, align 4, !tbaa !11
  %111 = load ptr, ptr %13, align 8, !tbaa !5
  %112 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(8) %23, i32 noundef %110, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %113 unwind label %147

113:                                              ; preds = %108
  store float %112, ptr %29, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %114 = load ptr, ptr %9, align 8, !tbaa !5
  %115 = load i32, ptr %12, align 4, !tbaa !11
  %116 = load ptr, ptr %13, align 8, !tbaa !5
  %117 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(8) %23, i32 noundef %115, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %118 unwind label %151

118:                                              ; preds = %113
  store float %117, ptr %30, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %119 = load ptr, ptr %9, align 8, !tbaa !5
  %120 = load i32, ptr %12, align 4, !tbaa !11
  %121 = load ptr, ptr %13, align 8, !tbaa !5
  %122 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull align 8 dereferenceable(8) %23, i32 noundef %120, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %123 unwind label %155

123:                                              ; preds = %118
  store float %122, ptr %31, align 4, !tbaa !15
  %124 = load ptr, ptr %10, align 8, !tbaa !5
  %125 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %124, i32 0, i32 0
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %125, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %126 unwind label %155

126:                                              ; preds = %123
  %127 = load ptr, ptr %10, align 8, !tbaa !5
  %128 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %127, i32 0, i32 1
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %128, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %129 unwind label %155

129:                                              ; preds = %126
  %130 = load ptr, ptr %10, align 8, !tbaa !5
  %131 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %130, i32 0, i32 2
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %131, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %132 unwind label %155

132:                                              ; preds = %129
  %133 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %134 = trunc i8 %133 to i1
  br i1 %134, label %135, label %176

135:                                              ; preds = %132
  %136 = load ptr, ptr %9, align 8, !tbaa !5
  %137 = load i64, ptr %23, align 8, !tbaa !13
  %138 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 8 dereferenceable(32) %17, i64 noundef %137) #7
  %139 = icmp ne i64 %138, -1
  br i1 %139, label %140, label %176

140:                                              ; preds = %135
  store i1 true, ptr %36, align 1
  %141 = call ptr @__cxa_allocate_exception(i64 152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %142 unwind label %159

142:                                              ; preds = %140
  %143 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %143)
          to label %144 unwind label %163

144:                                              ; preds = %142
  %145 = load i32, ptr %12, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  store i32 5, ptr %35, align 4, !tbaa !19
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %141, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef %34, i32 noundef %145, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %146 unwind label %167

146:                                              ; preds = %144
  store i1 false, ptr %36, align 1
  invoke void @__cxa_throw(ptr %141, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #8
          to label %569 unwind label %167

147:                                              ; preds = %108
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %19, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %20, align 4
  br label %179

151:                                              ; preds = %113
  %152 = landingpad { ptr, i32 }
          cleanup
  %153 = extractvalue { ptr, i32 } %152, 0
  store ptr %153, ptr %19, align 8
  %154 = extractvalue { ptr, i32 } %152, 1
  store i32 %154, ptr %20, align 4
  br label %178

155:                                              ; preds = %129, %126, %123, %118
  %156 = landingpad { ptr, i32 }
          cleanup
  %157 = extractvalue { ptr, i32 } %156, 0
  store ptr %157, ptr %19, align 8
  %158 = extractvalue { ptr, i32 } %156, 1
  store i32 %158, ptr %20, align 4
  br label %177

159:                                              ; preds = %140
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %19, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %20, align 4
  br label %172

163:                                              ; preds = %142
  %164 = landingpad { ptr, i32 }
          cleanup
  %165 = extractvalue { ptr, i32 } %164, 0
  store ptr %165, ptr %19, align 8
  %166 = extractvalue { ptr, i32 } %164, 1
  store i32 %166, ptr %20, align 4
  br label %171

167:                                              ; preds = %146, %144
  %168 = landingpad { ptr, i32 }
          cleanup
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %19, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %171

171:                                              ; preds = %167, %163
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %172

172:                                              ; preds = %171, %159
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  %173 = load i1, ptr %36, align 1
  br i1 %173, label %174, label %175

174:                                              ; preds = %172
  call void @__cxa_free_exception(ptr %141) #7
  br label %175

175:                                              ; preds = %174, %172
  br label %177

176:                                              ; preds = %135, %132
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %554

177:                                              ; preds = %175, %155
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %178

178:                                              ; preds = %177, %151
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %179

179:                                              ; preds = %178, %147
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %560

180:                                              ; preds = %107
  %181 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.18)
          to label %182 unwind label %101

182:                                              ; preds = %180
  br i1 %181, label %183, label %257

183:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %184 = load ptr, ptr %9, align 8, !tbaa !5
  %185 = load i32, ptr %12, align 4, !tbaa !11
  %186 = load ptr, ptr %13, align 8, !tbaa !5
  %187 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef nonnull align 8 dereferenceable(8) %23, i32 noundef %185, ptr noundef nonnull align 8 dereferenceable(32) %186)
          to label %188 unwind label %224

188:                                              ; preds = %183
  store float %187, ptr %37, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %189 = load ptr, ptr %9, align 8, !tbaa !5
  %190 = load i32, ptr %12, align 4, !tbaa !11
  %191 = load ptr, ptr %13, align 8, !tbaa !5
  %192 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef nonnull align 8 dereferenceable(8) %23, i32 noundef %190, ptr noundef nonnull align 8 dereferenceable(32) %191)
          to label %193 unwind label %228

193:                                              ; preds = %188
  store float %192, ptr %38, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %194 = load ptr, ptr %9, align 8, !tbaa !5
  %195 = load i32, ptr %12, align 4, !tbaa !11
  %196 = load ptr, ptr %13, align 8, !tbaa !5
  %197 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef nonnull align 8 dereferenceable(8) %23, i32 noundef %195, ptr noundef nonnull align 8 dereferenceable(32) %196)
          to label %198 unwind label %232

198:                                              ; preds = %193
  store float %197, ptr %39, align 4, !tbaa !15
  %199 = load ptr, ptr %10, align 8, !tbaa !5
  %200 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %199, i32 0, i32 3
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %200, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %201 unwind label %232

201:                                              ; preds = %198
  %202 = load ptr, ptr %10, align 8, !tbaa !5
  %203 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %202, i32 0, i32 4
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %203, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %204 unwind label %232

204:                                              ; preds = %201
  %205 = load ptr, ptr %10, align 8, !tbaa !5
  %206 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %205, i32 0, i32 5
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %206, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %207 unwind label %232

207:                                              ; preds = %204
  %208 = load ptr, ptr %10, align 8, !tbaa !5
  %209 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %208, i32 0, i32 17
  store i8 1, ptr %209, align 8, !tbaa !21
  %210 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %211 = trunc i8 %210 to i1
  br i1 %211, label %212, label %253

212:                                              ; preds = %207
  %213 = load ptr, ptr %9, align 8, !tbaa !5
  %214 = load i64, ptr %23, align 8, !tbaa !13
  %215 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef nonnull align 8 dereferenceable(32) %17, i64 noundef %214) #7
  %216 = icmp ne i64 %215, -1
  br i1 %216, label %217, label %253

217:                                              ; preds = %212
  store i1 true, ptr %44, align 1
  %218 = call ptr @__cxa_allocate_exception(i64 152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %219 unwind label %236

219:                                              ; preds = %217
  %220 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %220)
          to label %221 unwind label %240

221:                                              ; preds = %219
  %222 = load i32, ptr %12, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  store i32 5, ptr %43, align 4, !tbaa !19
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %218, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef %42, i32 noundef %222, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %223 unwind label %244

223:                                              ; preds = %221
  store i1 false, ptr %44, align 1
  invoke void @__cxa_throw(ptr %218, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #8
          to label %569 unwind label %244

224:                                              ; preds = %183
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %19, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %20, align 4
  br label %256

228:                                              ; preds = %188
  %229 = landingpad { ptr, i32 }
          cleanup
  %230 = extractvalue { ptr, i32 } %229, 0
  store ptr %230, ptr %19, align 8
  %231 = extractvalue { ptr, i32 } %229, 1
  store i32 %231, ptr %20, align 4
  br label %255

232:                                              ; preds = %204, %201, %198, %193
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  store ptr %234, ptr %19, align 8
  %235 = extractvalue { ptr, i32 } %233, 1
  store i32 %235, ptr %20, align 4
  br label %254

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

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

244:                                              ; preds = %223, %221
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %19, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %248

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

249:                                              ; preds = %248, %236
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  %250 = load i1, ptr %44, align 1
  br i1 %250, label %251, label %252

251:                                              ; preds = %249
  call void @__cxa_free_exception(ptr %218) #7
  br label %252

252:                                              ; preds = %251, %249
  br label %254

253:                                              ; preds = %212, %207
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %553

254:                                              ; preds = %252, %232
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %255

255:                                              ; preds = %254, %228
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %256

256:                                              ; preds = %255, %224
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %560

257:                                              ; preds = %182
  %258 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.20)
          to label %259 unwind label %101

259:                                              ; preds = %257
  br i1 %258, label %260, label %321

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  %261 = load ptr, ptr %9, align 8, !tbaa !5
  %262 = load i32, ptr %12, align 4, !tbaa !11
  %263 = load ptr, ptr %13, align 8, !tbaa !5
  %264 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef nonnull align 8 dereferenceable(8) %23, i32 noundef %262, ptr noundef nonnull align 8 dereferenceable(32) %263)
          to label %265 unwind label %293

265:                                              ; preds = %260
  store float %264, ptr %45, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  %266 = load ptr, ptr %9, align 8, !tbaa !5
  %267 = load i32, ptr %12, align 4, !tbaa !11
  %268 = load ptr, ptr %13, align 8, !tbaa !5
  %269 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %266, ptr noundef nonnull align 8 dereferenceable(8) %23, i32 noundef %267, ptr noundef nonnull align 8 dereferenceable(32) %268)
          to label %270 unwind label %297

270:                                              ; preds = %265
  store float %269, ptr %46, align 4, !tbaa !15
  %271 = load ptr, ptr %10, align 8, !tbaa !5
  %272 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %271, i32 0, i32 6
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %272, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %273 unwind label %297

273:                                              ; preds = %270
  %274 = load ptr, ptr %10, align 8, !tbaa !5
  %275 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %274, i32 0, i32 7
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %275, ptr noundef nonnull align 4 dereferenceable(4) %46)
          to label %276 unwind label %297

276:                                              ; preds = %273
  %277 = load ptr, ptr %10, align 8, !tbaa !5
  %278 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %277, i32 0, i32 18
  store i8 1, ptr %278, align 1, !tbaa !31
  %279 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %280 = trunc i8 %279 to i1
  br i1 %280, label %281, label %318

281:                                              ; preds = %276
  %282 = load ptr, ptr %9, align 8, !tbaa !5
  %283 = load i64, ptr %23, align 8, !tbaa !13
  %284 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef nonnull align 8 dereferenceable(32) %17, i64 noundef %283) #7
  %285 = icmp ne i64 %284, -1
  br i1 %285, label %286, label %318

286:                                              ; preds = %281
  store i1 true, ptr %51, align 1
  %287 = call ptr @__cxa_allocate_exception(i64 152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %288 unwind label %301

288:                                              ; preds = %286
  %289 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %289)
          to label %290 unwind label %305

290:                                              ; preds = %288
  %291 = load i32, ptr %12, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  store i32 5, ptr %50, align 4, !tbaa !19
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %287, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef %49, i32 noundef %291, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %292 unwind label %309

292:                                              ; preds = %290
  store i1 false, ptr %51, align 1
  invoke void @__cxa_throw(ptr %287, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #8
          to label %569 unwind label %309

293:                                              ; preds = %260
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %19, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %20, align 4
  br label %320

297:                                              ; preds = %273, %270, %265
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %19, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %20, align 4
  br label %319

301:                                              ; preds = %286
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %19, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %20, align 4
  br label %314

305:                                              ; preds = %288
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %19, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %20, align 4
  br label %313

309:                                              ; preds = %292, %290
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %19, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %313

313:                                              ; preds = %309, %305
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %314

314:                                              ; preds = %313, %301
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #7
  %315 = load i1, ptr %51, align 1
  br i1 %315, label %316, label %317

316:                                              ; preds = %314
  call void @__cxa_free_exception(ptr %287) #7
  br label %317

317:                                              ; preds = %316, %314
  br label %319

318:                                              ; preds = %281, %276
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %552

319:                                              ; preds = %317, %297
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %320

320:                                              ; preds = %319, %293
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %560

321:                                              ; preds = %259
  %322 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.22)
          to label %323 unwind label %101

323:                                              ; preds = %321
  br i1 %322, label %324, label %517

324:                                              ; preds = %323
  %325 = load ptr, ptr %9, align 8, !tbaa !5
  %326 = load ptr, ptr %14, align 8, !tbaa !5
  %327 = load ptr, ptr %15, align 8, !tbaa !5
  %328 = load ptr, ptr %16, align 8, !tbaa !5
  %329 = load i32, ptr %12, align 4, !tbaa !11
  %330 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4Glip7Modules9OBJLoader17readFaceComponentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmRSt6vectorIjSaIjEESE_SE_iS9_(ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(24) %326, ptr noundef nonnull align 8 dereferenceable(24) %327, ptr noundef nonnull align 8 dereferenceable(24) %328, i32 noundef %329, ptr noundef nonnull align 8 dereferenceable(32) %330)
          to label %331 unwind label %101

331:                                              ; preds = %324
  %332 = load ptr, ptr %9, align 8, !tbaa !5
  %333 = load ptr, ptr %14, align 8, !tbaa !5
  %334 = load ptr, ptr %15, align 8, !tbaa !5
  %335 = load ptr, ptr %16, align 8, !tbaa !5
  %336 = load i32, ptr %12, align 4, !tbaa !11
  %337 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4Glip7Modules9OBJLoader17readFaceComponentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmRSt6vectorIjSaIjEESE_SE_iS9_(ptr noundef nonnull align 8 dereferenceable(32) %332, ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(24) %333, ptr noundef nonnull align 8 dereferenceable(24) %334, ptr noundef nonnull align 8 dereferenceable(24) %335, i32 noundef %336, ptr noundef nonnull align 8 dereferenceable(32) %337)
          to label %338 unwind label %101

338:                                              ; preds = %331
  %339 = load ptr, ptr %9, align 8, !tbaa !5
  %340 = load ptr, ptr %14, align 8, !tbaa !5
  %341 = load ptr, ptr %15, align 8, !tbaa !5
  %342 = load ptr, ptr %16, align 8, !tbaa !5
  %343 = load i32, ptr %12, align 4, !tbaa !11
  %344 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4Glip7Modules9OBJLoader17readFaceComponentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmRSt6vectorIjSaIjEESE_SE_iS9_(ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(24) %340, ptr noundef nonnull align 8 dereferenceable(24) %341, ptr noundef nonnull align 8 dereferenceable(24) %342, i32 noundef %343, ptr noundef nonnull align 8 dereferenceable(32) %344)
          to label %345 unwind label %101

345:                                              ; preds = %338
  br label %346

346:                                              ; preds = %356, %345
  %347 = load i64, ptr %23, align 8, !tbaa !13
  %348 = icmp ne i64 %347, -1
  br i1 %348, label %349, label %357

349:                                              ; preds = %346
  %350 = load ptr, ptr %9, align 8, !tbaa !5
  %351 = load ptr, ptr %14, align 8, !tbaa !5
  %352 = load ptr, ptr %15, align 8, !tbaa !5
  %353 = load ptr, ptr %16, align 8, !tbaa !5
  %354 = load i32, ptr %12, align 4, !tbaa !11
  %355 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4Glip7Modules9OBJLoader17readFaceComponentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmRSt6vectorIjSaIjEESE_SE_iS9_(ptr noundef nonnull align 8 dereferenceable(32) %350, ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(24) %351, ptr noundef nonnull align 8 dereferenceable(24) %352, ptr noundef nonnull align 8 dereferenceable(24) %353, i32 noundef %354, ptr noundef nonnull align 8 dereferenceable(32) %355)
          to label %356 unwind label %101

356:                                              ; preds = %349
  br label %346, !llvm.loop !32

357:                                              ; preds = %346
  %358 = load ptr, ptr %14, align 8, !tbaa !5
  %359 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %358) #7
  %360 = icmp ule i64 %359, 2
  br i1 %360, label %361, label %385

361:                                              ; preds = %357
  store i1 true, ptr %56, align 1
  %362 = call ptr @__cxa_allocate_exception(i64 152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %363 unwind label %368

363:                                              ; preds = %361
  %364 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %364)
          to label %365 unwind label %372

365:                                              ; preds = %363
  %366 = load i32, ptr %12, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  store i32 5, ptr %55, align 4, !tbaa !19
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %362, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef %54, i32 noundef %366, ptr noundef nonnull align 4 dereferenceable(4) %55)
          to label %367 unwind label %376

367:                                              ; preds = %365
  store i1 false, ptr %56, align 1
  invoke void @__cxa_throw(ptr %362, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #8
          to label %569 unwind label %376

368:                                              ; preds = %361
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %19, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %20, align 4
  br label %381

372:                                              ; preds = %363
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %19, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %20, align 4
  br label %380

376:                                              ; preds = %367, %365
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %19, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %380

380:                                              ; preds = %376, %372
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %381

381:                                              ; preds = %380, %368
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  %382 = load i1, ptr %56, align 1
  br i1 %382, label %383, label %384

383:                                              ; preds = %381
  call void @__cxa_free_exception(ptr %362) #7
  br label %384

384:                                              ; preds = %383, %381
  br label %560

385:                                              ; preds = %357
  %386 = load ptr, ptr %14, align 8, !tbaa !5
  %387 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %386) #7
  %388 = icmp eq i64 %387, 3
  br i1 %388, label %389, label %435

389:                                              ; preds = %385
  %390 = load ptr, ptr %10, align 8, !tbaa !5
  %391 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %390, i32 0, i32 8
  %392 = load ptr, ptr %14, align 8, !tbaa !5
  %393 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %392, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %391, ptr noundef nonnull align 4 dereferenceable(4) %393)
          to label %394 unwind label %101

394:                                              ; preds = %389
  %395 = load ptr, ptr %10, align 8, !tbaa !5
  %396 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %395, i32 0, i32 9
  %397 = load ptr, ptr %15, align 8, !tbaa !5
  %398 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %397, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %396, ptr noundef nonnull align 4 dereferenceable(4) %398)
          to label %399 unwind label %101

399:                                              ; preds = %394
  %400 = load ptr, ptr %10, align 8, !tbaa !5
  %401 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %400, i32 0, i32 10
  %402 = load ptr, ptr %16, align 8, !tbaa !5
  %403 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %402, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %401, ptr noundef nonnull align 4 dereferenceable(4) %403)
          to label %404 unwind label %101

404:                                              ; preds = %399
  %405 = load ptr, ptr %10, align 8, !tbaa !5
  %406 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %405, i32 0, i32 11
  %407 = load ptr, ptr %14, align 8, !tbaa !5
  %408 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef 1) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %406, ptr noundef nonnull align 4 dereferenceable(4) %408)
          to label %409 unwind label %101

409:                                              ; preds = %404
  %410 = load ptr, ptr %10, align 8, !tbaa !5
  %411 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %410, i32 0, i32 12
  %412 = load ptr, ptr %15, align 8, !tbaa !5
  %413 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %412, i64 noundef 1) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %411, ptr noundef nonnull align 4 dereferenceable(4) %413)
          to label %414 unwind label %101

414:                                              ; preds = %409
  %415 = load ptr, ptr %10, align 8, !tbaa !5
  %416 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %415, i32 0, i32 13
  %417 = load ptr, ptr %16, align 8, !tbaa !5
  %418 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %417, i64 noundef 1) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %416, ptr noundef nonnull align 4 dereferenceable(4) %418)
          to label %419 unwind label %101

419:                                              ; preds = %414
  %420 = load ptr, ptr %10, align 8, !tbaa !5
  %421 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %420, i32 0, i32 14
  %422 = load ptr, ptr %14, align 8, !tbaa !5
  %423 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef 2) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %421, ptr noundef nonnull align 4 dereferenceable(4) %423)
          to label %424 unwind label %101

424:                                              ; preds = %419
  %425 = load ptr, ptr %10, align 8, !tbaa !5
  %426 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %425, i32 0, i32 15
  %427 = load ptr, ptr %15, align 8, !tbaa !5
  %428 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %427, i64 noundef 2) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %426, ptr noundef nonnull align 4 dereferenceable(4) %428)
          to label %429 unwind label %101

429:                                              ; preds = %424
  %430 = load ptr, ptr %10, align 8, !tbaa !5
  %431 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %430, i32 0, i32 16
  %432 = load ptr, ptr %16, align 8, !tbaa !5
  %433 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %432, i64 noundef 2) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %431, ptr noundef nonnull align 4 dereferenceable(4) %433)
          to label %434 unwind label %101

434:                                              ; preds = %429
  br label %512

435:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #7
  store i32 2, ptr %57, align 4, !tbaa !11
  br label %436

436:                                              ; preds = %504, %435
  %437 = load i32, ptr %57, align 4, !tbaa !11
  %438 = zext i32 %437 to i64
  %439 = load ptr, ptr %14, align 8, !tbaa !5
  %440 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %439) #7
  %441 = icmp ult i64 %438, %440
  br i1 %441, label %443, label %442

442:                                              ; preds = %436
  store i32 4, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  br label %511

443:                                              ; preds = %436
  %444 = load ptr, ptr %10, align 8, !tbaa !5
  %445 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %444, i32 0, i32 8
  %446 = load ptr, ptr %14, align 8, !tbaa !5
  %447 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %446, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %445, ptr noundef nonnull align 4 dereferenceable(4) %447)
          to label %448 unwind label %507

448:                                              ; preds = %443
  %449 = load ptr, ptr %10, align 8, !tbaa !5
  %450 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %449, i32 0, i32 9
  %451 = load ptr, ptr %15, align 8, !tbaa !5
  %452 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %451, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %450, ptr noundef nonnull align 4 dereferenceable(4) %452)
          to label %453 unwind label %507

453:                                              ; preds = %448
  %454 = load ptr, ptr %10, align 8, !tbaa !5
  %455 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %454, i32 0, i32 10
  %456 = load ptr, ptr %16, align 8, !tbaa !5
  %457 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %456, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %455, ptr noundef nonnull align 4 dereferenceable(4) %457)
          to label %458 unwind label %507

458:                                              ; preds = %453
  %459 = load ptr, ptr %10, align 8, !tbaa !5
  %460 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %459, i32 0, i32 11
  %461 = load ptr, ptr %14, align 8, !tbaa !5
  %462 = load i32, ptr %57, align 4, !tbaa !11
  %463 = sub i32 %462, 1
  %464 = zext i32 %463 to i64
  %465 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %461, i64 noundef %464) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %460, ptr noundef nonnull align 4 dereferenceable(4) %465)
          to label %466 unwind label %507

466:                                              ; preds = %458
  %467 = load ptr, ptr %10, align 8, !tbaa !5
  %468 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %467, i32 0, i32 12
  %469 = load ptr, ptr %15, align 8, !tbaa !5
  %470 = load i32, ptr %57, align 4, !tbaa !11
  %471 = sub i32 %470, 1
  %472 = zext i32 %471 to i64
  %473 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %469, i64 noundef %472) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %468, ptr noundef nonnull align 4 dereferenceable(4) %473)
          to label %474 unwind label %507

474:                                              ; preds = %466
  %475 = load ptr, ptr %10, align 8, !tbaa !5
  %476 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %475, i32 0, i32 13
  %477 = load ptr, ptr %16, align 8, !tbaa !5
  %478 = load i32, ptr %57, align 4, !tbaa !11
  %479 = sub i32 %478, 1
  %480 = zext i32 %479 to i64
  %481 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %477, i64 noundef %480) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %476, ptr noundef nonnull align 4 dereferenceable(4) %481)
          to label %482 unwind label %507

482:                                              ; preds = %474
  %483 = load ptr, ptr %10, align 8, !tbaa !5
  %484 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %483, i32 0, i32 14
  %485 = load ptr, ptr %14, align 8, !tbaa !5
  %486 = load i32, ptr %57, align 4, !tbaa !11
  %487 = zext i32 %486 to i64
  %488 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %485, i64 noundef %487) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %484, ptr noundef nonnull align 4 dereferenceable(4) %488)
          to label %489 unwind label %507

489:                                              ; preds = %482
  %490 = load ptr, ptr %10, align 8, !tbaa !5
  %491 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %490, i32 0, i32 15
  %492 = load ptr, ptr %15, align 8, !tbaa !5
  %493 = load i32, ptr %57, align 4, !tbaa !11
  %494 = zext i32 %493 to i64
  %495 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %492, i64 noundef %494) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %491, ptr noundef nonnull align 4 dereferenceable(4) %495)
          to label %496 unwind label %507

496:                                              ; preds = %489
  %497 = load ptr, ptr %10, align 8, !tbaa !5
  %498 = getelementptr inbounds %"struct.Glip::Modules::OBJLoader::UnshapedData", ptr %497, i32 0, i32 16
  %499 = load ptr, ptr %16, align 8, !tbaa !5
  %500 = load i32, ptr %57, align 4, !tbaa !11
  %501 = zext i32 %500 to i64
  %502 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %499, i64 noundef %501) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %498, ptr noundef nonnull align 4 dereferenceable(4) %502)
          to label %503 unwind label %507

503:                                              ; preds = %496
  br label %504

504:                                              ; preds = %503
  %505 = load i32, ptr %57, align 4, !tbaa !11
  %506 = add i32 %505, 1
  store i32 %506, ptr %57, align 4, !tbaa !11
  br label %436, !llvm.loop !34

507:                                              ; preds = %496, %489, %482, %474, %466, %458, %453, %448, %443
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %19, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  br label %560

511:                                              ; preds = %442
  br label %512

512:                                              ; preds = %511, %434
  br label %513

513:                                              ; preds = %512
  %514 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZNSt6vectorIjSaIjEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %514) #7
  %515 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZNSt6vectorIjSaIjEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %515) #7
  %516 = load ptr, ptr %16, align 8, !tbaa !5
  call void @_ZNSt6vectorIjSaIjEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %516) #7
  br label %551

517:                                              ; preds = %323
  %518 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %519 = trunc i8 %518 to i1
  br i1 %519, label %520, label %550

520:                                              ; preds = %517
  store i1 true, ptr %62, align 1
  %521 = call ptr @__cxa_allocate_exception(i64 152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %522 unwind label %528

522:                                              ; preds = %520
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.25)
          to label %523 unwind label %532

523:                                              ; preds = %522
  %524 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %524)
          to label %525 unwind label %536

525:                                              ; preds = %523
  %526 = load i32, ptr %12, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  store i32 5, ptr %61, align 4, !tbaa !19
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %521, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef %60, i32 noundef %526, ptr noundef nonnull align 4 dereferenceable(4) %61)
          to label %527 unwind label %540

527:                                              ; preds = %525
  store i1 false, ptr %62, align 1
  invoke void @__cxa_throw(ptr %521, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #8
          to label %569 unwind label %540

528:                                              ; preds = %520
  %529 = landingpad { ptr, i32 }
          cleanup
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %19, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, ptr %20, align 4
  br label %546

532:                                              ; preds = %522
  %533 = landingpad { ptr, i32 }
          cleanup
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %19, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %20, align 4
  br label %545

536:                                              ; preds = %523
  %537 = landingpad { ptr, i32 }
          cleanup
  %538 = extractvalue { ptr, i32 } %537, 0
  store ptr %538, ptr %19, align 8
  %539 = extractvalue { ptr, i32 } %537, 1
  store i32 %539, ptr %20, align 4
  br label %544

540:                                              ; preds = %527, %525
  %541 = landingpad { ptr, i32 }
          cleanup
  %542 = extractvalue { ptr, i32 } %541, 0
  store ptr %542, ptr %19, align 8
  %543 = extractvalue { ptr, i32 } %541, 1
  store i32 %543, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %544

544:                                              ; preds = %540, %536
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %545

545:                                              ; preds = %544, %532
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %546

546:                                              ; preds = %545, %528
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #7
  %547 = load i1, ptr %62, align 1
  br i1 %547, label %548, label %549

548:                                              ; preds = %546
  call void @__cxa_free_exception(ptr %521) #7
  br label %549

549:                                              ; preds = %548, %546
  br label %560

550:                                              ; preds = %517
  br label %551

551:                                              ; preds = %550, %513
  br label %552

552:                                              ; preds = %551, %318
  br label %553

553:                                              ; preds = %552, %253
  br label %554

554:                                              ; preds = %553, %176
  br label %555

555:                                              ; preds = %554
  store i32 0, ptr %25, align 4
  br label %556

556:                                              ; preds = %555, %96
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  br label %557

557:                                              ; preds = %556, %74
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #7
  %558 = load i32, ptr %25, align 4
  switch i32 %558, label %569 [
    i32 0, label %559
    i32 1, label %559
  ]

559:                                              ; preds = %557, %557
  ret void

560:                                              ; preds = %549, %507, %384, %320, %256, %179, %101
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %561

561:                                              ; preds = %560, %97
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %562

562:                                              ; preds = %561, %79
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %563

563:                                              ; preds = %562, %75
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #7
  br label %564

564:                                              ; preds = %563
  %565 = load ptr, ptr %19, align 8
  %566 = load i32, ptr %20, align 4
  %567 = insertvalue { ptr, i32 } poison, ptr %565, 0
  %568 = insertvalue { ptr, i32 } %567, i32 %566, 1
  resume { ptr, i32 } %568

569:                                              ; preds = %557, %527, %367, %292, %223, %146
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #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

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 = { "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 = { nounwind "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 = { 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 #6 = { inlinehint 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 #7 = { nounwind }
attributes #8 = { noreturn }

!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 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{i8 0, i8 2}
!18 = !{}
!19 = !{!20, !20, i64 0}
!20 = !{!"_ZTSN4Glip9Exception4TypeE", !7, i64 0}
!21 = !{!22, !10, i64 408}
!22 = !{!"_ZTSN4Glip7Modules9OBJLoader12UnshapedDataE", !23, i64 0, !23, i64 24, !23, i64 48, !23, i64 72, !23, i64 96, !23, i64 120, !23, i64 144, !23, i64 168, !27, i64 192, !27, i64 216, !27, i64 240, !27, i64 264, !27, i64 288, !27, i64 312, !27, i64 336, !27, i64 360, !27, i64 384, !10, i64 408, !10, i64 409}
!23 = !{!"_ZTSSt6vectorIfSaIfEE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTSSt6vectorIjSaIjEE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!22, !10, i64 409}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = distinct !{!34, !33}


; 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] }
%"class.std::allocator" = type { i8 }

@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZTIN4Glip9ExceptionE = external constant ptr
@.str.14 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [3 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 uwtable
declare dso_local noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #1 align 2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

declare void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZN4Glip9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #4

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4Glip7Modules9OBJLoader11processLineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS1_12UnshapedDataEbiS9_RSt6vectorIjSaIjEESF_SF_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(410) %1, i1 noundef zeroext %2, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca i64, align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca float, align 4
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i32, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca i32, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca i32, align 4
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca i32, align 4
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %45 unwind label %52

45:                                               ; preds = %8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %46 unwind label %54

46:                                               ; preds = %45
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  store i64 -1, ptr %13, align 8, !tbaa !5
  %47 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 noundef 0) #7
  store i64 %47, ptr %13, align 8, !tbaa !5
  %48 = add i64 %47, 1
  %49 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %11, i64 noundef %48) #7
  %50 = load i64, ptr %13, align 8, !tbaa !5
  %51 = icmp eq i64 %50, -1
  br i1 %51, label %285, label %56

52:                                               ; preds = %8
  %53 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  br label %289

54:                                               ; preds = %45
  %55 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  br label %288

56:                                               ; preds = %46
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  %57 = sub i64 %49, %50
  store i64 %57, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  store i64 1, ptr %16, align 8, !tbaa !5
  %58 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16)
  %59 = load i64, ptr %58, align 8, !tbaa !5
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %50, i64 noundef %59)
          to label %60 unwind label %62

60:                                               ; preds = %56
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  store i64 %49, ptr %13, align 8, !tbaa !5
  %61 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.15)
  br i1 %61, label %284, label %64

62:                                               ; preds = %56
  %63 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %287

.loopexit230:                                     ; preds = %184
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %286

.loopexit.split-lp:                               ; preds = %180, %181, %182, %214, %217, %220, %223, %226, %229, %232, %235, %238
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %286

64:                                               ; preds = %60
  %65 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.16)
  br i1 %65, label %66, label %103

66:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #7
  %67 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %68 unwind label %86

68:                                               ; preds = %66
  store float %67, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #7
  %69 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %70 unwind label %88

70:                                               ; preds = %68
  store float %69, ptr %18, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #7
  %71 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %72 unwind label %90

72:                                               ; preds = %70
  store float %71, ptr %19, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %73 unwind label %90

73:                                               ; preds = %72
  %74 = getelementptr inbounds i8, ptr %1, i64 24
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %75 unwind label %90

75:                                               ; preds = %73
  %76 = getelementptr inbounds i8, ptr %1, i64 48
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %76, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %77 unwind label %90

77:                                               ; preds = %75
  br i1 %2, label %78, label %99

78:                                               ; preds = %77
  %79 = load i64, ptr %13, align 8, !tbaa !5
  %80 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 noundef %79) #7
  %.not196 = icmp eq i64 %80, -1
  br i1 %.not196, label %99, label %81

81:                                               ; preds = %78
  %82 = call ptr @__cxa_allocate_exception(i64 152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %83 unwind label %.thread

83:                                               ; preds = %81
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %84 unwind label %93

84:                                               ; preds = %83
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #7
  store i32 5, ptr %23, align 4, !tbaa !11
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %82, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull %22, i32 noundef %3, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %85 unwind label %95

85:                                               ; preds = %84
  invoke void @__cxa_throw(ptr nonnull %82, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #8
          to label %290 unwind label %95

86:                                               ; preds = %66
  %87 = landingpad { ptr, i32 }
          cleanup
  br label %102

88:                                               ; preds = %68
  %89 = landingpad { ptr, i32 }
          cleanup
  br label %101

90:                                               ; preds = %75, %73, %72, %70
  %91 = landingpad { ptr, i32 }
          cleanup
  br label %100

.thread:                                          ; preds = %81
  %92 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  br label %98

93:                                               ; preds = %83
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %97

95:                                               ; preds = %85, %84
  %.0146 = phi i1 [ false, %85 ], [ true, %84 ]
  %96 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %97

97:                                               ; preds = %93, %95
  %.pn197 = phi { ptr, i32 } [ %96, %95 ], [ %94, %93 ]
  %.1147 = phi i1 [ %.0146, %95 ], [ true, %93 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  br i1 %.1147, label %98, label %100

98:                                               ; preds = %.thread, %97
  %.pn197.pn209 = phi { ptr, i32 } [ %92, %.thread ], [ %.pn197, %97 ]
  call void @__cxa_free_exception(ptr %82) #7
  br label %100

99:                                               ; preds = %78, %77
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  br label %284

100:                                              ; preds = %97, %98, %90
  %.pn197.pn.pn = phi { ptr, i32 } [ %.pn197.pn209, %98 ], [ %.pn197, %97 ], [ %91, %90 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br label %101

101:                                              ; preds = %100, %88
  %.pn197.pn.pn.pn = phi { ptr, i32 } [ %.pn197.pn.pn, %100 ], [ %89, %88 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br label %102

102:                                              ; preds = %101, %86
  %.pn197.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn197.pn.pn.pn, %101 ], [ %87, %86 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  br label %286

103:                                              ; preds = %64
  %104 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.18)
  br i1 %104, label %105, label %144

105:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #7
  %106 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %107 unwind label %127

107:                                              ; preds = %105
  store float %106, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #7
  %108 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %109 unwind label %129

109:                                              ; preds = %107
  store float %108, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #7
  %110 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %111 unwind label %131

111:                                              ; preds = %109
  store float %110, ptr %26, align 4, !tbaa !9
  %112 = getelementptr inbounds i8, ptr %1, i64 72
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %112, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %113 unwind label %131

113:                                              ; preds = %111
  %114 = getelementptr inbounds i8, ptr %1, i64 96
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %114, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %115 unwind label %131

115:                                              ; preds = %113
  %116 = getelementptr inbounds i8, ptr %1, i64 120
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %116, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %117 unwind label %131

117:                                              ; preds = %115
  %118 = getelementptr inbounds i8, ptr %1, i64 408
  store i8 1, ptr %118, align 8, !tbaa !13
  br i1 %2, label %119, label %140

119:                                              ; preds = %117
  %120 = load i64, ptr %13, align 8, !tbaa !5
  %121 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 noundef %120) #7
  %.not189 = icmp eq i64 %121, -1
  br i1 %.not189, label %140, label %122

122:                                              ; preds = %119
  %123 = call ptr @__cxa_allocate_exception(i64 152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %124 unwind label %.thread210

124:                                              ; preds = %122
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %125 unwind label %134

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #7
  store i32 5, ptr %30, align 4, !tbaa !11
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %123, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull %29, i32 noundef %3, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %126 unwind label %136

126:                                              ; preds = %125
  invoke void @__cxa_throw(ptr nonnull %123, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #8
          to label %290 unwind label %136

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

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

131:                                              ; preds = %115, %113, %111, %109
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %141

.thread210:                                       ; preds = %122
  %133 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %139

134:                                              ; preds = %124
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %138

136:                                              ; preds = %126, %125
  %.0143 = phi i1 [ false, %126 ], [ true, %125 ]
  %137 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %138

138:                                              ; preds = %134, %136
  %.pn190 = phi { ptr, i32 } [ %137, %136 ], [ %135, %134 ]
  %.1144 = phi i1 [ %.0143, %136 ], [ true, %134 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br i1 %.1144, label %139, label %141

139:                                              ; preds = %.thread210, %138
  %.pn190.pn213 = phi { ptr, i32 } [ %133, %.thread210 ], [ %.pn190, %138 ]
  call void @__cxa_free_exception(ptr %123) #7
  br label %141

140:                                              ; preds = %119, %117
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  br label %284

141:                                              ; preds = %138, %139, %131
  %.pn190.pn.pn = phi { ptr, i32 } [ %.pn190.pn213, %139 ], [ %.pn190, %138 ], [ %132, %131 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  br label %142

142:                                              ; preds = %141, %129
  %.pn190.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn, %141 ], [ %130, %129 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  br label %143

143:                                              ; preds = %142, %127
  %.pn190.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn, %142 ], [ %128, %127 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  br label %286

144:                                              ; preds = %103
  %145 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.20)
  br i1 %145, label %146, label %178

146:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #7
  %147 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %148 unwind label %164

148:                                              ; preds = %146
  store float %147, ptr %31, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #7
  %149 = invoke noundef float @_ZN4Glip7Modules9OBJLoader14readNextNumberERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmiS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %150 unwind label %166

150:                                              ; preds = %148
  store float %149, ptr %32, align 4, !tbaa !9
  %151 = getelementptr inbounds i8, ptr %1, i64 144
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %151, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %152 unwind label %166

152:                                              ; preds = %150
  %153 = getelementptr inbounds i8, ptr %1, i64 168
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %153, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %154 unwind label %166

154:                                              ; preds = %152
  %155 = getelementptr inbounds i8, ptr %1, i64 409
  store i8 1, ptr %155, align 1, !tbaa !25
  br i1 %2, label %156, label %175

156:                                              ; preds = %154
  %157 = load i64, ptr %13, align 8, !tbaa !5
  %158 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 noundef %157) #7
  %.not183 = icmp eq i64 %158, -1
  br i1 %.not183, label %175, label %159

159:                                              ; preds = %156
  %160 = call ptr @__cxa_allocate_exception(i64 152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %161 unwind label %.thread214

161:                                              ; preds = %159
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %162 unwind label %169

162:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #7
  store i32 5, ptr %36, align 4, !tbaa !11
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %160, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull %35, i32 noundef %3, ptr noundef nonnull align 4 dereferenceable(4) %36)
          to label %163 unwind label %171

163:                                              ; preds = %162
  invoke void @__cxa_throw(ptr nonnull %160, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #8
          to label %290 unwind label %171

164:                                              ; preds = %146
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %177

166:                                              ; preds = %152, %150, %148
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %176

.thread214:                                       ; preds = %159
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  br label %174

169:                                              ; preds = %161
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %173

171:                                              ; preds = %163, %162
  %.0140 = phi i1 [ false, %163 ], [ true, %162 ]
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %173

173:                                              ; preds = %169, %171
  %.pn184 = phi { ptr, i32 } [ %172, %171 ], [ %170, %169 ]
  %.1141 = phi i1 [ %.0140, %171 ], [ true, %169 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  br i1 %.1141, label %174, label %176

174:                                              ; preds = %.thread214, %173
  %.pn184.pn217 = phi { ptr, i32 } [ %168, %.thread214 ], [ %.pn184, %173 ]
  call void @__cxa_free_exception(ptr %160) #7
  br label %176

175:                                              ; preds = %156, %154
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  br label %284

176:                                              ; preds = %173, %174, %166
  %.pn184.pn.pn = phi { ptr, i32 } [ %.pn184.pn217, %174 ], [ %.pn184, %173 ], [ %167, %166 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  br label %177

177:                                              ; preds = %176, %164
  %.pn184.pn.pn.pn = phi { ptr, i32 } [ %.pn184.pn.pn, %176 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  br label %286

178:                                              ; preds = %144
  %179 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.22)
  br i1 %179, label %180, label %269

180:                                              ; preds = %178
  invoke void @_ZN4Glip7Modules9OBJLoader17readFaceComponentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmRSt6vectorIjSaIjEESE_SE_iS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %181 unwind label %.loopexit.split-lp

181:                                              ; preds = %180
  invoke void @_ZN4Glip7Modules9OBJLoader17readFaceComponentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmRSt6vectorIjSaIjEESE_SE_iS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %182 unwind label %.loopexit.split-lp

182:                                              ; preds = %181
  invoke void @_ZN4Glip7Modules9OBJLoader17readFaceComponentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmRSt6vectorIjSaIjEESE_SE_iS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %.preheader229 unwind label %.loopexit.split-lp

.preheader229:                                    ; preds = %182, %184
  %183 = load i64, ptr %13, align 8, !tbaa !5
  %.not = icmp eq i64 %183, -1
  br i1 %.not, label %185, label %184

184:                                              ; preds = %.preheader229
  invoke void @_ZN4Glip7Modules9OBJLoader17readFaceComponentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmRSt6vectorIjSaIjEESE_SE_iS9_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %.preheader229 unwind label %.loopexit230, !llvm.loop !26

185:                                              ; preds = %.preheader229
  %186 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %187 = icmp ult i64 %186, 3
  br i1 %187, label %188, label %200

188:                                              ; preds = %185
  %189 = call ptr @__cxa_allocate_exception(i64 152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %190 unwind label %.thread218

190:                                              ; preds = %188
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %191 unwind label %194

191:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #7
  store i32 5, ptr %40, align 4, !tbaa !11
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %189, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull %39, i32 noundef %3, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %192 unwind label %196

192:                                              ; preds = %191
  invoke void @__cxa_throw(ptr nonnull %189, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #8
          to label %290 unwind label %196

.thread218:                                       ; preds = %188
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  br label %199

194:                                              ; preds = %190
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %198

196:                                              ; preds = %192, %191
  %.0137 = phi i1 [ false, %192 ], [ true, %191 ]
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %198

198:                                              ; preds = %194, %196
  %.pn180 = phi { ptr, i32 } [ %197, %196 ], [ %195, %194 ]
  %.1138 = phi i1 [ %.0137, %196 ], [ true, %194 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  br i1 %.1138, label %199, label %286

199:                                              ; preds = %.thread218, %198
  %.pn180.pn221 = phi { ptr, i32 } [ %193, %.thread218 ], [ %.pn180, %198 ]
  call void @__cxa_free_exception(ptr %189) #7
  br label %286

200:                                              ; preds = %185
  %201 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %202 = icmp eq i64 %201, 3
  br i1 %202, label %214, label %.preheader

.preheader:                                       ; preds = %200
  %203 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %204 = icmp ugt i64 %203, 2
  br i1 %204, label %.lr.ph, label %.loopexit

.lr.ph:                                           ; preds = %.preheader
  %205 = getelementptr inbounds i8, ptr %1, i64 192
  %206 = getelementptr inbounds i8, ptr %1, i64 216
  %207 = getelementptr inbounds i8, ptr %1, i64 240
  %208 = getelementptr inbounds i8, ptr %1, i64 264
  %209 = getelementptr inbounds i8, ptr %1, i64 288
  %210 = getelementptr inbounds i8, ptr %1, i64 312
  %211 = getelementptr inbounds i8, ptr %1, i64 336
  %212 = getelementptr inbounds i8, ptr %1, i64 360
  %213 = getelementptr inbounds i8, ptr %1, i64 384
  br label %241

214:                                              ; preds = %200
  %215 = getelementptr inbounds i8, ptr %1, i64 192
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %215, ptr noundef nonnull align 4 dereferenceable(4) %216)
          to label %217 unwind label %.loopexit.split-lp

217:                                              ; preds = %214
  %218 = getelementptr inbounds i8, ptr %1, i64 216
  %219 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %218, ptr noundef nonnull align 4 dereferenceable(4) %219)
          to label %220 unwind label %.loopexit.split-lp

220:                                              ; preds = %217
  %221 = getelementptr inbounds i8, ptr %1, i64 240
  %222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %221, ptr noundef nonnull align 4 dereferenceable(4) %222)
          to label %223 unwind label %.loopexit.split-lp

223:                                              ; preds = %220
  %224 = getelementptr inbounds i8, ptr %1, i64 264
  %225 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %224, ptr noundef nonnull align 4 dereferenceable(4) %225)
          to label %226 unwind label %.loopexit.split-lp

226:                                              ; preds = %223
  %227 = getelementptr inbounds i8, ptr %1, i64 288
  %228 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 1) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %227, ptr noundef nonnull align 4 dereferenceable(4) %228)
          to label %229 unwind label %.loopexit.split-lp

229:                                              ; preds = %226
  %230 = getelementptr inbounds i8, ptr %1, i64 312
  %231 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef 1) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %230, ptr noundef nonnull align 4 dereferenceable(4) %231)
          to label %232 unwind label %.loopexit.split-lp

232:                                              ; preds = %229
  %233 = getelementptr inbounds i8, ptr %1, i64 336
  %234 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %233, ptr noundef nonnull align 4 dereferenceable(4) %234)
          to label %235 unwind label %.loopexit.split-lp

235:                                              ; preds = %232
  %236 = getelementptr inbounds i8, ptr %1, i64 360
  %237 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 2) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %236, ptr noundef nonnull align 4 dereferenceable(4) %237)
          to label %238 unwind label %.loopexit.split-lp

238:                                              ; preds = %235
  %239 = getelementptr inbounds i8, ptr %1, i64 384
  %240 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef 2) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %239, ptr noundef nonnull align 4 dereferenceable(4) %240)
          to label %.loopexit unwind label %.loopexit.split-lp

241:                                              ; preds = %.lr.ph, %262
  %242 = phi i64 [ 2, %.lr.ph ], [ %264, %262 ]
  %.0136231 = phi i32 [ 2, %.lr.ph ], [ %263, %262 ]
  %243 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %205, ptr noundef nonnull align 4 dereferenceable(4) %243)
          to label %244 unwind label %267

244:                                              ; preds = %241
  %245 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %206, ptr noundef nonnull align 4 dereferenceable(4) %245)
          to label %246 unwind label %267

246:                                              ; preds = %244
  %247 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef 0) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %207, ptr noundef nonnull align 4 dereferenceable(4) %247)
          to label %248 unwind label %267

248:                                              ; preds = %246
  %249 = add i32 %.0136231, -1
  %250 = zext i32 %249 to i64
  %251 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %250) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %208, ptr noundef nonnull align 4 dereferenceable(4) %251)
          to label %252 unwind label %267

252:                                              ; preds = %248
  %253 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %250) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %209, ptr noundef nonnull align 4 dereferenceable(4) %253)
          to label %254 unwind label %267

254:                                              ; preds = %252
  %255 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %250) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %210, ptr noundef nonnull align 4 dereferenceable(4) %255)
          to label %256 unwind label %267

256:                                              ; preds = %254
  %257 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %242) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %211, ptr noundef nonnull align 4 dereferenceable(4) %257)
          to label %258 unwind label %267

258:                                              ; preds = %256
  %259 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %242) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %212, ptr noundef nonnull align 4 dereferenceable(4) %259)
          to label %260 unwind label %267

260:                                              ; preds = %258
  %261 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %242) #7
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %213, ptr noundef nonnull align 4 dereferenceable(4) %261)
          to label %262 unwind label %267

262:                                              ; preds = %260
  %263 = add i32 %.0136231, 1
  %264 = zext i32 %263 to i64
  %265 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %266 = icmp ugt i64 %265, %264
  br i1 %266, label %241, label %.loopexit, !llvm.loop !28

267:                                              ; preds = %260, %258, %256, %254, %252, %248, %246, %244, %241
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %286

.loopexit:                                        ; preds = %262, %.preheader, %238
  call void @_ZNSt6vectorIjSaIjEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @_ZNSt6vectorIjSaIjEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @_ZNSt6vectorIjSaIjEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  br label %284

269:                                              ; preds = %178
  br i1 %2, label %270, label %284

270:                                              ; preds = %269
  %271 = call ptr @__cxa_allocate_exception(i64 152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %272 unwind label %.thread222

272:                                              ; preds = %270
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.25)
          to label %273 unwind label %.thread226

273:                                              ; preds = %272
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %274 unwind label %278

274:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #7
  store i32 5, ptr %44, align 4, !tbaa !11
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %271, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull %43, i32 noundef %3, ptr noundef nonnull align 4 dereferenceable(4) %44)
          to label %275 unwind label %280

275:                                              ; preds = %274
  invoke void @__cxa_throw(ptr nonnull %271, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #8
          to label %290 unwind label %280

.thread222:                                       ; preds = %270
  %276 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  br label %283

.thread226:                                       ; preds = %272
  %277 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  br label %283

278:                                              ; preds = %273
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %282

280:                                              ; preds = %275, %274
  %.0 = phi i1 [ false, %275 ], [ true, %274 ]
  %281 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %282

282:                                              ; preds = %278, %280
  %.pn = phi { ptr, i32 } [ %281, %280 ], [ %279, %278 ]
  %.1 = phi i1 [ %.0, %280 ], [ true, %278 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  br i1 %.1, label %283, label %286

283:                                              ; preds = %.thread226, %.thread222, %282
  %.pn.pn.pn225 = phi { ptr, i32 } [ %276, %.thread222 ], [ %.pn, %282 ], [ %277, %.thread226 ]
  call void @__cxa_free_exception(ptr %271) #7
  br label %286

284:                                              ; preds = %140, %.loopexit, %269, %175, %99, %60
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  br label %285

285:                                              ; preds = %46, %284
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  ret void

286:                                              ; preds = %.loopexit230, %.loopexit.split-lp, %282, %283, %198, %199, %267, %177, %143, %102
  %.pn197.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn197.pn.pn.pn.pn, %102 ], [ %.pn190.pn.pn.pn.pn, %143 ], [ %.pn184.pn.pn.pn, %177 ], [ %.pn180.pn221, %199 ], [ %.pn180, %198 ], [ %268, %267 ], [ %.pn.pn.pn225, %283 ], [ %.pn, %282 ], [ %lpad.loopexit, %.loopexit230 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %287

287:                                              ; preds = %286, %62
  %.pn197.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn197.pn.pn.pn.pn.pn, %286 ], [ %63, %62 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %288

288:                                              ; preds = %287, %54
  %.pn197.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn197.pn.pn.pn.pn.pn.pn, %287 ], [ %55, %54 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %289

289:                                              ; preds = %288, %52
  %.pn197.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn197.pn.pn.pn.pn.pn.pn.pn, %288 ], [ %53, %52 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  resume { ptr, i32 } %.pn197.pn.pn.pn.pn.pn.pn.pn.pn

290:                                              ; preds = %275, %192, %163, %126, %85
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #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

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 = { "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 = { nounwind "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 = { 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 #6 = { inlinehint 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 #7 = { nounwind }
attributes #8 = { noreturn }

!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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN4Glip9Exception4TypeE", !7, i64 0}
!13 = !{!14, !24, i64 408}
!14 = !{!"_ZTSN4Glip7Modules9OBJLoader12UnshapedDataE", !15, i64 0, !15, i64 24, !15, i64 48, !15, i64 72, !15, i64 96, !15, i64 120, !15, i64 144, !15, i64 168, !20, i64 192, !20, i64 216, !20, i64 240, !20, i64 264, !20, i64 288, !20, i64 312, !20, i64 336, !20, i64 360, !20, i64 384, !24, i64 408, !24, i64 409}
!15 = !{!"_ZTSSt6vectorIfSaIfEE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!19 = !{!"any pointer", !7, i64 0}
!20 = !{!"_ZTSSt6vectorIjSaIjEE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!24 = !{!"bool", !7, i64 0}
!25 = !{!14, !24, i64 409}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = distinct !{!28, !27}


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