; LLVM IR from fritzsedlazeck/SURVIVOR :: src/vcfs (Merge_VCF)

; 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"

%struct.strcoordinate = type { i32, %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.strvcfentry = type <{ %"class.std::__cxx11::basic_string", %struct.strcoordinate, %struct.strcoordinate, i16, [6 x i8], %"class.std::map", i32, i32, %"class.std::vector.4", %"struct.std::pair", [2 x i8], %"struct.std::pair.9", [4 x i8], %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"struct.std::pair.14", %"struct.std::pair.9", %"struct.std::pair.9", i32, [4 x i8] }>
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { i8, i8 }
%"struct.std::pair.14" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"struct.std::pair.9" = type { i32, i32 }
%"class.std::allocator.0" = type { i8 }

@.str.1 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [2 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

declare i32 @__gxx_personality_v0(...)

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

; 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

; 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z10parse_stopPKc(ptr dead_on_unwind noalias writable sret(%struct.strcoordinate) align 8, ptr noundef) #2

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strncmp(ptr noundef, ptr noundef, i64 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #4

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN13strcoordinateD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i16 @_Z8get_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9parse_posPc(ptr dead_on_unwind noalias writable sret(%struct.strcoordinate) align 8, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local i16 @_Z19parse_strands_lumpyPc(ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_Z8parse_DRPc(ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15get_most_effectNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i32 noundef) #2

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #6

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z15parse_vcf_entryNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%struct.strvcfentry) align 8 %0, ptr noundef %1) #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i8, align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca i64, align 8
  %13 = alloca %"struct.std::pair", align 1
  %14 = alloca %struct.strcoordinate, align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.0", align 1
  %17 = alloca i64, align 8
  %18 = alloca %"struct.std::pair.9", align 4
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.0", align 1
  %21 = alloca %struct.strcoordinate, align 8
  %22 = alloca i64, align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %3, align 8
  store ptr %1, ptr %4, align 8, !tbaa !5
  store i1 false, ptr %5, align 1
  call void @_ZN11strvcfentryC2Ev(ptr noundef nonnull align 8 dereferenceable(420) %0)
  %25 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  store i16 -1, ptr %25, align 8, !tbaa !9
  %26 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %27 = getelementptr inbounds %struct.strcoordinate, ptr %26, i32 0, i32 0
  store i32 -1, ptr %27, align 8, !tbaa !34
  %28 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 1
  %29 = getelementptr inbounds %struct.strcoordinate, ptr %28, i32 0, i32 0
  store i32 -1, ptr %29, align 8, !tbaa !35
  %30 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef 0)
          to label %31 unwind label %74

31:                                               ; preds = %2
  %32 = load i8, ptr %30, align 1, !tbaa !36
  %33 = sext i8 %32 to i32
  %34 = icmp ne i32 %33, 35
  br i1 %34, label %35, label %741

35:                                               ; preds = %31
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  store i32 0, ptr %8, align 4, !tbaa !37
  %36 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 6
  store i32 0, ptr %36, align 8, !tbaa !38
  %37 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %38 = getelementptr inbounds %struct.strcoordinate, ptr %37, i32 0, i32 0
  store i32 -1, ptr %38, align 8, !tbaa !34
  %39 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  store i16 -1, ptr %39, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #8
  store i8 0, ptr %9, align 1, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  %40 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 13
  %41 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.31)
          to label %42 unwind label %78

42:                                               ; preds = %35
  %43 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %44 = getelementptr inbounds %"struct.std::pair", ptr %43, i32 0, i32 0
  store i8 1, ptr %44, align 8, !tbaa !40
  %45 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %46 = getelementptr inbounds %"struct.std::pair", ptr %45, i32 0, i32 1
  store i8 1, ptr %46, align 1, !tbaa !41
  %47 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 11
  %48 = getelementptr inbounds %"struct.std::pair.9", ptr %47, i32 0, i32 0
  store i32 -1, ptr %48, align 4, !tbaa !42
  %49 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 11
  %50 = getelementptr inbounds %"struct.std::pair.9", ptr %49, i32 0, i32 1
  store i32 -1, ptr %50, align 4, !tbaa !43
  %51 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  store i32 -1, ptr %51, align 8, !tbaa !44
  %52 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 17
  store double -1.000000e+00, ptr %52, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  store i64 0, ptr %12, align 8, !tbaa !46
  br label %53

53:                                               ; preds = %560, %42
  %54 = load i64, ptr %12, align 8, !tbaa !46
  %55 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #8
  %56 = icmp ult i64 %54, %55
  br i1 %56, label %57, label %71

57:                                               ; preds = %53
  %58 = load i64, ptr %12, align 8, !tbaa !46
  %59 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %58)
          to label %60 unwind label %82

60:                                               ; preds = %57
  %61 = load i8, ptr %59, align 1, !tbaa !36
  %62 = sext i8 %61 to i32
  %63 = icmp ne i32 %62, 0
  br i1 %63, label %64, label %71

64:                                               ; preds = %60
  %65 = load i64, ptr %12, align 8, !tbaa !46
  %66 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %65)
          to label %67 unwind label %82

67:                                               ; preds = %64
  %68 = load i8, ptr %66, align 1, !tbaa !36
  %69 = sext i8 %68 to i32
  %70 = icmp ne i32 %69, 10
  br label %71

71:                                               ; preds = %67, %60, %53
  %72 = phi i1 [ false, %60 ], [ false, %53 ], [ %70, %67 ]
  br i1 %72, label %86, label %73

73:                                               ; preds = %71
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  br label %564

74:                                               ; preds = %2
  %75 = landingpad { ptr, i32 }
          cleanup
  %76 = extractvalue { ptr, i32 } %75, 0
  store ptr %76, ptr %6, align 8
  %77 = extractvalue { ptr, i32 } %75, 1
  store i32 %77, ptr %7, align 4
  br label %745

78:                                               ; preds = %689, %35
  %79 = landingpad { ptr, i32 }
          cleanup
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %6, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %7, align 4
  br label %740

82:                                               ; preds = %549, %544, %541, %518, %510, %491, %483, %449, %395, %387, %367, %363, %357, %345, %339, %327, %321, %315, %291, %287, %281, %271, %265, %254, %248, %237, %231, %216, %210, %188, %160, %153, %150, %143, %136, %133, %126, %116, %108, %99, %96, %89, %64, %57
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %6, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %7, align 4
  br label %563

86:                                               ; preds = %71
  %87 = load i32, ptr %8, align 4, !tbaa !37
  %88 = icmp eq i32 %87, 0
  br i1 %88, label %89, label %105

89:                                               ; preds = %86
  %90 = load i64, ptr %12, align 8, !tbaa !46
  %91 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %90)
          to label %92 unwind label %82

92:                                               ; preds = %89
  %93 = load i8, ptr %91, align 1, !tbaa !36
  %94 = sext i8 %93 to i32
  %95 = icmp ne i32 %94, 9
  br i1 %95, label %96, label %105

96:                                               ; preds = %92
  %97 = load i64, ptr %12, align 8, !tbaa !46
  %98 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %97)
          to label %99 unwind label %82

99:                                               ; preds = %96
  %100 = load i8, ptr %98, align 1, !tbaa !36
  %101 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 1
  %102 = getelementptr inbounds %struct.strcoordinate, ptr %101, i32 0, i32 1
  %103 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %102, i8 noundef signext %100)
          to label %104 unwind label %82

104:                                              ; preds = %99
  br label %105

105:                                              ; preds = %104, %92, %86
  %106 = load i32, ptr %8, align 4, !tbaa !37
  %107 = icmp eq i32 %106, 1
  br i1 %107, label %108, label %123

108:                                              ; preds = %105
  %109 = load i64, ptr %12, align 8, !tbaa !46
  %110 = sub i64 %109, 1
  %111 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %110)
          to label %112 unwind label %82

112:                                              ; preds = %108
  %113 = load i8, ptr %111, align 1, !tbaa !36
  %114 = sext i8 %113 to i32
  %115 = icmp eq i32 %114, 9
  br i1 %115, label %116, label %123

116:                                              ; preds = %112
  %117 = load i64, ptr %12, align 8, !tbaa !46
  %118 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %117)
          to label %119 unwind label %82

119:                                              ; preds = %116
  %120 = call i32 @atoi(ptr noundef %118) #9
  %121 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 1
  %122 = getelementptr inbounds %struct.strcoordinate, ptr %121, i32 0, i32 0
  store i32 %120, ptr %122, align 8, !tbaa !35
  br label %123

123:                                              ; preds = %119, %112, %105
  %124 = load i32, ptr %8, align 4, !tbaa !37
  %125 = icmp eq i32 %124, 3
  br i1 %125, label %126, label %140

126:                                              ; preds = %123
  %127 = load i64, ptr %12, align 8, !tbaa !46
  %128 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %127)
          to label %129 unwind label %82

129:                                              ; preds = %126
  %130 = load i8, ptr %128, align 1, !tbaa !36
  %131 = sext i8 %130 to i32
  %132 = icmp ne i32 %131, 9
  br i1 %132, label %133, label %140

133:                                              ; preds = %129
  %134 = load i64, ptr %12, align 8, !tbaa !46
  %135 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %134)
          to label %136 unwind label %82

136:                                              ; preds = %133
  %137 = load i8, ptr %135, align 1, !tbaa !36
  %138 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %10, i8 noundef signext %137)
          to label %139 unwind label %82

139:                                              ; preds = %136
  br label %140

140:                                              ; preds = %139, %129, %123
  %141 = load i32, ptr %8, align 4, !tbaa !37
  %142 = icmp eq i32 %141, 4
  br i1 %142, label %143, label %157

143:                                              ; preds = %140
  %144 = load i64, ptr %12, align 8, !tbaa !46
  %145 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %144)
          to label %146 unwind label %82

146:                                              ; preds = %143
  %147 = load i8, ptr %145, align 1, !tbaa !36
  %148 = sext i8 %147 to i32
  %149 = icmp ne i32 %148, 9
  br i1 %149, label %150, label %157

150:                                              ; preds = %146
  %151 = load i64, ptr %12, align 8, !tbaa !46
  %152 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %151)
          to label %153 unwind label %82

153:                                              ; preds = %150
  %154 = load i8, ptr %152, align 1, !tbaa !36
  %155 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %11, i8 noundef signext %154)
          to label %156 unwind label %82

156:                                              ; preds = %153
  br label %157

157:                                              ; preds = %156, %146, %140
  %158 = load i32, ptr %8, align 4, !tbaa !37
  %159 = icmp eq i32 %158, 4
  br i1 %159, label %160, label %180

160:                                              ; preds = %157
  %161 = load i64, ptr %12, align 8, !tbaa !46
  %162 = sub i64 %161, 1
  %163 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %162)
          to label %164 unwind label %82

164:                                              ; preds = %160
  %165 = load i8, ptr %163, align 1, !tbaa !36
  %166 = sext i8 %165 to i32
  %167 = icmp eq i32 %166, 9
  br i1 %167, label %168, label %180

168:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 2, ptr %13) #8
  %169 = load i64, ptr %12, align 8, !tbaa !46
  %170 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %169)
          to label %171 unwind label %176

171:                                              ; preds = %168
  %172 = invoke i16 @_Z19parse_strands_lumpyPc(ptr noundef %170)
          to label %173 unwind label %176

173:                                              ; preds = %171
  store i16 %172, ptr %13, align 1
  %174 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %175 = call noundef nonnull align 1 dereferenceable(2) ptr @_ZNSt4pairIbbEaSEOS0_(ptr noundef nonnull align 1 dereferenceable(2) %174, ptr noundef nonnull align 1 dereferenceable(2) %13) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %13) #8
  br label %180

176:                                              ; preds = %171, %168
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %6, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %13) #8
  br label %563

180:                                              ; preds = %173, %164, %157
  %181 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %182 = getelementptr inbounds %struct.strcoordinate, ptr %181, i32 0, i32 0
  %183 = load i32, ptr %182, align 8, !tbaa !34
  %184 = icmp eq i32 %183, -1
  br i1 %184, label %185, label %207

185:                                              ; preds = %180
  %186 = load i32, ptr %8, align 4, !tbaa !37
  %187 = icmp eq i32 %186, 7
  br i1 %187, label %188, label %207

188:                                              ; preds = %185
  %189 = load i64, ptr %12, align 8, !tbaa !46
  %190 = sub i64 %189, 1
  %191 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %190)
          to label %192 unwind label %82

192:                                              ; preds = %188
  %193 = load i8, ptr %191, align 1, !tbaa !36
  %194 = sext i8 %193 to i32
  %195 = icmp eq i32 %194, 9
  br i1 %195, label %196, label %207

196:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 40, ptr %14) #8
  %197 = load i64, ptr %12, align 8, !tbaa !46
  %198 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %197)
          to label %199 unwind label %203

199:                                              ; preds = %196
  invoke void @_Z10parse_stopPKc(ptr dead_on_unwind writable sret(%struct.strcoordinate) align 8 %14, ptr noundef %198)
          to label %200 unwind label %203

200:                                              ; preds = %199
  %201 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %202 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN13strcoordinateaSEOS_(ptr noundef nonnull align 8 dereferenceable(40) %201, ptr noundef nonnull align 8 dereferenceable(40) %14) #8
  call void @_ZN13strcoordinateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %14) #8
  br label %207

203:                                              ; preds = %199, %196
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %6, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %14) #8
  br label %563

207:                                              ; preds = %200, %192, %185, %180
  %208 = load i32, ptr %8, align 4, !tbaa !37
  %209 = icmp eq i32 %208, 7
  br i1 %209, label %210, label %228

210:                                              ; preds = %207
  %211 = load i64, ptr %12, align 8, !tbaa !46
  %212 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %211)
          to label %213 unwind label %82

213:                                              ; preds = %210
  %214 = call i32 @strncmp(ptr noundef %212, ptr noundef @.str.32, i64 noundef 7) #9
  %215 = icmp eq i32 %214, 0
  br i1 %215, label %216, label %228

216:                                              ; preds = %213
  %217 = load i64, ptr %12, align 8, !tbaa !46
  %218 = add i64 %217, 7
  %219 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %218)
          to label %220 unwind label %82

220:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %219, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %221 unwind label %224

221:                                              ; preds = %220
  %222 = call noundef signext i16 @_Z8get_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %15)
  %223 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  store i16 %222, ptr %223, align 8, !tbaa !9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #8
  br label %228

224:                                              ; preds = %220
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %6, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #8
  br label %563

228:                                              ; preds = %221, %213, %207
  %229 = load i32, ptr %8, align 4, !tbaa !37
  %230 = icmp eq i32 %229, 7
  br i1 %230, label %231, label %245

231:                                              ; preds = %228
  %232 = load i64, ptr %12, align 8, !tbaa !46
  %233 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %232)
          to label %234 unwind label %82

234:                                              ; preds = %231
  %235 = call i32 @strncmp(ptr noundef %233, ptr noundef @.str.20, i64 noundef 4) #9
  %236 = icmp eq i32 %235, 0
  br i1 %236, label %237, label %245

237:                                              ; preds = %234
  %238 = load i64, ptr %12, align 8, !tbaa !46
  %239 = add i64 %238, 4
  %240 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %239)
          to label %241 unwind label %82

241:                                              ; preds = %237
  %242 = call i32 @atoi(ptr noundef %240) #9
  %243 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 11
  %244 = getelementptr inbounds %"struct.std::pair.9", ptr %243, i32 0, i32 1
  store i32 %242, ptr %244, align 4, !tbaa !43
  br label %245

245:                                              ; preds = %241, %234, %228
  %246 = load i32, ptr %8, align 4, !tbaa !37
  %247 = icmp eq i32 %246, 7
  br i1 %247, label %248, label %262

248:                                              ; preds = %245
  %249 = load i64, ptr %12, align 8, !tbaa !46
  %250 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %249)
          to label %251 unwind label %82

251:                                              ; preds = %248
  %252 = call i32 @strncmp(ptr noundef %250, ptr noundef @.str.21, i64 noundef 4) #9
  %253 = icmp eq i32 %252, 0
  br i1 %253, label %254, label %262

254:                                              ; preds = %251
  %255 = load i64, ptr %12, align 8, !tbaa !46
  %256 = add i64 %255, 4
  %257 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %256)
          to label %258 unwind label %82

258:                                              ; preds = %254
  %259 = call i32 @atoi(ptr noundef %257) #9
  %260 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 11
  %261 = getelementptr inbounds %"struct.std::pair.9", ptr %260, i32 0, i32 1
  store i32 %259, ptr %261, align 4, !tbaa !43
  br label %262

262:                                              ; preds = %258, %251, %245
  %263 = load i32, ptr %8, align 4, !tbaa !37
  %264 = icmp eq i32 %263, 7
  br i1 %264, label %265, label %278

265:                                              ; preds = %262
  %266 = load i64, ptr %12, align 8, !tbaa !46
  %267 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %266)
          to label %268 unwind label %82

268:                                              ; preds = %265
  %269 = call i32 @strncmp(ptr noundef %267, ptr noundef @.str.33, i64 noundef 4) #9
  %270 = icmp eq i32 %269, 0
  br i1 %270, label %271, label %278

271:                                              ; preds = %268
  %272 = load i64, ptr %12, align 8, !tbaa !46
  %273 = add i64 %272, 4
  %274 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %273)
          to label %275 unwind label %82

275:                                              ; preds = %271
  %276 = call double @atof(ptr noundef %274) #9
  %277 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 17
  store double %276, ptr %277, align 8, !tbaa !45
  br label %278

278:                                              ; preds = %275, %268, %262
  %279 = load i32, ptr %8, align 4, !tbaa !37
  %280 = icmp eq i32 %279, 7
  br i1 %280, label %281, label %308

281:                                              ; preds = %278
  %282 = load i64, ptr %12, align 8, !tbaa !46
  %283 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %282)
          to label %284 unwind label %82

284:                                              ; preds = %281
  %285 = call i32 @strncmp(ptr noundef %283, ptr noundef @.str.34, i64 noundef 4) #9
  %286 = icmp eq i32 %285, 0
  br i1 %286, label %287, label %308

287:                                              ; preds = %284
  store i8 1, ptr %9, align 1, !tbaa !39
  %288 = load i64, ptr %12, align 8, !tbaa !46
  %289 = add i64 %288, 4
  %290 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %289)
          to label %291 unwind label %82

291:                                              ; preds = %287
  %292 = load i8, ptr %290, align 1, !tbaa !36
  %293 = sext i8 %292 to i32
  %294 = icmp ne i32 %293, 53
  %295 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %296 = getelementptr inbounds %"struct.std::pair", ptr %295, i32 0, i32 0
  %297 = zext i1 %294 to i8
  store i8 %297, ptr %296, align 8, !tbaa !40
  %298 = load i64, ptr %12, align 8, !tbaa !46
  %299 = add i64 %298, 7
  %300 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %299)
          to label %301 unwind label %82

301:                                              ; preds = %291
  %302 = load i8, ptr %300, align 1, !tbaa !36
  %303 = sext i8 %302 to i32
  %304 = icmp ne i32 %303, 53
  %305 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %306 = getelementptr inbounds %"struct.std::pair", ptr %305, i32 0, i32 1
  %307 = zext i1 %304 to i8
  store i8 %307, ptr %306, align 1, !tbaa !41
  br label %308

308:                                              ; preds = %301, %284, %278
  %309 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  %310 = load i32, ptr %309, align 8, !tbaa !44
  %311 = icmp eq i32 %310, -1
  br i1 %311, label %312, label %336

312:                                              ; preds = %308
  %313 = load i32, ptr %8, align 4, !tbaa !37
  %314 = icmp eq i32 %313, 7
  br i1 %314, label %315, label %336

315:                                              ; preds = %312
  %316 = load i64, ptr %12, align 8, !tbaa !46
  %317 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %316)
          to label %318 unwind label %82

318:                                              ; preds = %315
  %319 = call i32 @strncmp(ptr noundef %317, ptr noundef @.str.35, i64 noundef 7) #9
  %320 = icmp eq i32 %319, 0
  br i1 %320, label %327, label %321

321:                                              ; preds = %318
  %322 = load i64, ptr %12, align 8, !tbaa !46
  %323 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %322)
          to label %324 unwind label %82

324:                                              ; preds = %321
  %325 = call i32 @strncmp(ptr noundef %323, ptr noundef @.str.36, i64 noundef 7) #9
  %326 = icmp eq i32 %325, 0
  br i1 %326, label %327, label %336

327:                                              ; preds = %324, %318
  %328 = load i64, ptr %12, align 8, !tbaa !46
  %329 = add i64 %328, 7
  %330 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %329)
          to label %331 unwind label %82

331:                                              ; preds = %327
  %332 = call double @atof(ptr noundef %330) #9
  %333 = fptosi double %332 to i32
  %334 = call i32 @llvm.abs.i32(i32 %333, i1 true)
  %335 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  store i32 %334, ptr %335, align 8, !tbaa !44
  br label %336

336:                                              ; preds = %331, %324, %312, %308
  %337 = load i32, ptr %8, align 4, !tbaa !37
  %338 = icmp eq i32 %337, 7
  br i1 %338, label %339, label %354

339:                                              ; preds = %336
  %340 = load i64, ptr %12, align 8, !tbaa !46
  %341 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %340)
          to label %342 unwind label %82

342:                                              ; preds = %339
  %343 = call i32 @strncmp(ptr noundef %341, ptr noundef @.str.37, i64 noundef 6) #9
  %344 = icmp eq i32 %343, 0
  br i1 %344, label %345, label %354

345:                                              ; preds = %342
  %346 = load i64, ptr %12, align 8, !tbaa !46
  %347 = add i64 %346, 6
  %348 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %347)
          to label %349 unwind label %82

349:                                              ; preds = %345
  %350 = call double @atof(ptr noundef %348) #9
  %351 = fptosi double %350 to i32
  %352 = call i32 @llvm.abs.i32(i32 %351, i1 true)
  %353 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  store i32 %352, ptr %353, align 8, !tbaa !44
  br label %354

354:                                              ; preds = %349, %342, %336
  %355 = load i32, ptr %8, align 4, !tbaa !37
  %356 = icmp eq i32 %355, 7
  br i1 %356, label %357, label %384

357:                                              ; preds = %354
  %358 = load i64, ptr %12, align 8, !tbaa !46
  %359 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %358)
          to label %360 unwind label %82

360:                                              ; preds = %357
  %361 = call i32 @strncmp(ptr noundef %359, ptr noundef @.str.38, i64 noundef 9) #9
  %362 = icmp eq i32 %361, 0
  br i1 %362, label %363, label %384

363:                                              ; preds = %360
  store i8 1, ptr %9, align 1, !tbaa !39
  %364 = load i64, ptr %12, align 8, !tbaa !46
  %365 = add i64 %364, 9
  %366 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %365)
          to label %367 unwind label %82

367:                                              ; preds = %363
  %368 = load i8, ptr %366, align 1, !tbaa !36
  %369 = sext i8 %368 to i32
  %370 = icmp eq i32 %369, 43
  %371 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %372 = getelementptr inbounds %"struct.std::pair", ptr %371, i32 0, i32 0
  %373 = zext i1 %370 to i8
  store i8 %373, ptr %372, align 8, !tbaa !40
  %374 = load i64, ptr %12, align 8, !tbaa !46
  %375 = add i64 %374, 10
  %376 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %375)
          to label %377 unwind label %82

377:                                              ; preds = %367
  %378 = load i8, ptr %376, align 1, !tbaa !36
  %379 = sext i8 %378 to i32
  %380 = icmp eq i32 %379, 43
  %381 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %382 = getelementptr inbounds %"struct.std::pair", ptr %381, i32 0, i32 1
  %383 = zext i1 %380 to i8
  store i8 %383, ptr %382, align 1, !tbaa !41
  br label %384

384:                                              ; preds = %377, %360, %354
  %385 = load i32, ptr %8, align 4, !tbaa !37
  %386 = icmp sge i32 %385, 9
  br i1 %386, label %387, label %446

387:                                              ; preds = %384
  %388 = load i64, ptr %12, align 8, !tbaa !46
  %389 = sub i64 %388, 1
  %390 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %389)
          to label %391 unwind label %82

391:                                              ; preds = %387
  %392 = load i8, ptr %390, align 1, !tbaa !36
  %393 = sext i8 %392 to i32
  %394 = icmp eq i32 %393, 9
  br i1 %394, label %395, label %446

395:                                              ; preds = %391
  %396 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 13
  %397 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %396, i64 noundef 0)
          to label %398 unwind label %82

398:                                              ; preds = %395
  %399 = load i8, ptr %397, align 1, !tbaa !36
  %400 = sext i8 %399 to i32
  %401 = icmp eq i32 %400, 46
  br i1 %401, label %402, label %446

402:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %403 = load i64, ptr %12, align 8, !tbaa !46
  store i64 %403, ptr %17, align 8, !tbaa !46
  %404 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 13
  %405 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef @.str.1)
          to label %406 unwind label %438

406:                                              ; preds = %402
  br label %407

407:                                              ; preds = %442, %406
  %408 = load i64, ptr %17, align 8, !tbaa !46
  %409 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %408)
          to label %410 unwind label %438

410:                                              ; preds = %407
  %411 = load i8, ptr %409, align 1, !tbaa !36
  %412 = sext i8 %411 to i32
  %413 = icmp ne i32 %412, 0
  br i1 %413, label %414, label %421

414:                                              ; preds = %410
  %415 = load i64, ptr %17, align 8, !tbaa !46
  %416 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %415)
          to label %417 unwind label %438

417:                                              ; preds = %414
  %418 = load i8, ptr %416, align 1, !tbaa !36
  %419 = sext i8 %418 to i32
  %420 = icmp ne i32 %419, 58
  br label %421

421:                                              ; preds = %417, %410
  %422 = phi i1 [ false, %410 ], [ %420, %417 ]
  br i1 %422, label %423, label %445

423:                                              ; preds = %421
  %424 = load i64, ptr %17, align 8, !tbaa !46
  %425 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %424)
          to label %426 unwind label %438

426:                                              ; preds = %423
  %427 = load i8, ptr %425, align 1, !tbaa !36
  %428 = sext i8 %427 to i32
  %429 = icmp ne i32 %428, 9
  br i1 %429, label %430, label %442

430:                                              ; preds = %426
  %431 = load i64, ptr %17, align 8, !tbaa !46
  %432 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %431)
          to label %433 unwind label %438

433:                                              ; preds = %430
  %434 = load i8, ptr %432, align 1, !tbaa !36
  %435 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 13
  %436 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %435, i8 noundef signext %434)
          to label %437 unwind label %438

437:                                              ; preds = %433
  br label %442

438:                                              ; preds = %433, %430, %423, %414, %407, %402
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %6, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br label %563

442:                                              ; preds = %437, %426
  %443 = load i64, ptr %17, align 8, !tbaa !46
  %444 = add i64 %443, 1
  store i64 %444, ptr %17, align 8, !tbaa !46
  br label %407, !llvm.loop !47

445:                                              ; preds = %421
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br label %446

446:                                              ; preds = %445, %398, %391, %384
  %447 = load i32, ptr %8, align 4, !tbaa !37
  %448 = icmp eq i32 %447, 8
  br i1 %448, label %449, label %480

449:                                              ; preds = %446
  %450 = load i64, ptr %12, align 8, !tbaa !46
  %451 = sub i64 %450, 1
  %452 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %451)
          to label %453 unwind label %82

453:                                              ; preds = %449
  %454 = load i8, ptr %452, align 1, !tbaa !36
  %455 = sext i8 %454 to i32
  %456 = icmp eq i32 %455, 9
  br i1 %456, label %457, label %480

457:                                              ; preds = %453
  %458 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 11
  %459 = getelementptr inbounds %"struct.std::pair.9", ptr %458, i32 0, i32 0
  %460 = load i32, ptr %459, align 4, !tbaa !42
  %461 = icmp eq i32 %460, -1
  br i1 %461, label %467, label %462

462:                                              ; preds = %457
  %463 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 11
  %464 = getelementptr inbounds %"struct.std::pair.9", ptr %463, i32 0, i32 1
  %465 = load i32, ptr %464, align 4, !tbaa !43
  %466 = icmp eq i32 %465, -1
  br i1 %466, label %467, label %479

467:                                              ; preds = %462, %457
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %468 = load i64, ptr %12, align 8, !tbaa !46
  %469 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %468)
          to label %470 unwind label %475

470:                                              ; preds = %467
  %471 = invoke i64 @_Z8parse_DRPc(ptr noundef %469)
          to label %472 unwind label %475

472:                                              ; preds = %470
  store i64 %471, ptr %18, align 4
  %473 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 11
  %474 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSEOS0_(ptr noundef nonnull align 4 dereferenceable(8) %473, ptr noundef nonnull align 4 dereferenceable(8) %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %479

475:                                              ; preds = %470, %467
  %476 = landingpad { ptr, i32 }
          cleanup
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %6, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %563

479:                                              ; preds = %472, %462
  br label %480

480:                                              ; preds = %479, %453, %446
  %481 = load i32, ptr %8, align 4, !tbaa !37
  %482 = icmp eq i32 %481, 4
  br i1 %482, label %483, label %502

483:                                              ; preds = %480
  %484 = load i64, ptr %12, align 8, !tbaa !46
  %485 = sub i64 %484, 1
  %486 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %485)
          to label %487 unwind label %82

487:                                              ; preds = %483
  %488 = load i8, ptr %486, align 1, !tbaa !36
  %489 = sext i8 %488 to i32
  %490 = icmp eq i32 %489, 60
  br i1 %490, label %491, label %502

491:                                              ; preds = %487
  %492 = load i64, ptr %12, align 8, !tbaa !46
  %493 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %492)
          to label %494 unwind label %82

494:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef %493, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %495 unwind label %498

495:                                              ; preds = %494
  %496 = call noundef signext i16 @_Z8get_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %19)
  %497 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  store i16 %496, ptr %497, align 8, !tbaa !9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  br label %502

498:                                              ; preds = %494
  %499 = landingpad { ptr, i32 }
          cleanup
  %500 = extractvalue { ptr, i32 } %499, 0
  store ptr %500, ptr %6, align 8
  %501 = extractvalue { ptr, i32 } %499, 1
  store i32 %501, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  br label %563

502:                                              ; preds = %495, %487, %480
  %503 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %504 = getelementptr inbounds %struct.strcoordinate, ptr %503, i32 0, i32 0
  %505 = load i32, ptr %504, align 8, !tbaa !34
  %506 = icmp eq i32 %505, -1
  br i1 %506, label %507, label %538

507:                                              ; preds = %502
  %508 = load i32, ptr %8, align 4, !tbaa !37
  %509 = icmp eq i32 %508, 4
  br i1 %509, label %510, label %538

510:                                              ; preds = %507
  %511 = load i64, ptr %12, align 8, !tbaa !46
  %512 = sub i64 %511, 1
  %513 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %512)
          to label %514 unwind label %82

514:                                              ; preds = %510
  %515 = load i8, ptr %513, align 1, !tbaa !36
  %516 = sext i8 %515 to i32
  %517 = icmp eq i32 %516, 91
  br i1 %517, label %526, label %518

518:                                              ; preds = %514
  %519 = load i64, ptr %12, align 8, !tbaa !46
  %520 = sub i64 %519, 1
  %521 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %520)
          to label %522 unwind label %82

522:                                              ; preds = %518
  %523 = load i8, ptr %521, align 1, !tbaa !36
  %524 = sext i8 %523 to i32
  %525 = icmp eq i32 %524, 93
  br i1 %525, label %526, label %538

526:                                              ; preds = %522, %514
  call void @llvm.lifetime.start.p0(i64 40, ptr %21) #8
  %527 = load i64, ptr %12, align 8, !tbaa !46
  %528 = sub i64 %527, 1
  %529 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %528)
          to label %530 unwind label %534

530:                                              ; preds = %526
  invoke void @_Z9parse_posPc(ptr dead_on_unwind writable sret(%struct.strcoordinate) align 8 %21, ptr noundef %529)
          to label %531 unwind label %534

531:                                              ; preds = %530
  %532 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %533 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN13strcoordinateaSEOS_(ptr noundef nonnull align 8 dereferenceable(40) %532, ptr noundef nonnull align 8 dereferenceable(40) %21) #8
  call void @_ZN13strcoordinateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %21) #8
  br label %538

534:                                              ; preds = %530, %526
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %6, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %21) #8
  br label %563

538:                                              ; preds = %531, %522, %507, %502
  %539 = load i32, ptr %8, align 4, !tbaa !37
  %540 = icmp slt i32 %539, 9
  br i1 %540, label %541, label %549

541:                                              ; preds = %538
  %542 = load i64, ptr %12, align 8, !tbaa !46
  %543 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %542)
          to label %544 unwind label %82

544:                                              ; preds = %541
  %545 = load i8, ptr %543, align 1, !tbaa !36
  %546 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 0
  %547 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %546, i8 noundef signext %545)
          to label %548 unwind label %82

548:                                              ; preds = %544
  br label %549

549:                                              ; preds = %548, %538
  %550 = load i64, ptr %12, align 8, !tbaa !46
  %551 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %550)
          to label %552 unwind label %82

552:                                              ; preds = %549
  %553 = load i8, ptr %551, align 1, !tbaa !36
  %554 = sext i8 %553 to i32
  %555 = icmp eq i32 %554, 9
  br i1 %555, label %556, label %559

556:                                              ; preds = %552
  %557 = load i32, ptr %8, align 4, !tbaa !37
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %8, align 4, !tbaa !37
  br label %559

559:                                              ; preds = %556, %552
  br label %560

560:                                              ; preds = %559
  %561 = load i64, ptr %12, align 8, !tbaa !46
  %562 = add i64 %561, 1
  store i64 %562, ptr %12, align 8, !tbaa !46
  br label %53, !llvm.loop !49

563:                                              ; preds = %534, %498, %475, %438, %224, %203, %176, %82
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  br label %740

564:                                              ; preds = %73
  %565 = load i8, ptr %9, align 1, !tbaa !39, !range !50, !noundef !51
  %566 = trunc i8 %565 to i1
  br i1 %566, label %599, label %567

567:                                              ; preds = %564
  %568 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  %569 = load i16, ptr %568, align 8, !tbaa !9
  %570 = sext i16 %569 to i32
  %571 = icmp eq i32 %570, 0
  br i1 %571, label %577, label %572

572:                                              ; preds = %567
  %573 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  %574 = load i16, ptr %573, align 8, !tbaa !9
  %575 = sext i16 %574 to i32
  %576 = icmp eq i32 %575, 4
  br i1 %576, label %577, label %582

577:                                              ; preds = %572, %567
  %578 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %579 = getelementptr inbounds %"struct.std::pair", ptr %578, i32 0, i32 0
  store i8 1, ptr %579, align 8, !tbaa !40
  %580 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %581 = getelementptr inbounds %"struct.std::pair", ptr %580, i32 0, i32 1
  store i8 0, ptr %581, align 1, !tbaa !41
  br label %598

582:                                              ; preds = %572
  %583 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  %584 = load i16, ptr %583, align 8, !tbaa !9
  %585 = sext i16 %584 to i32
  %586 = icmp eq i32 %585, 1
  br i1 %586, label %587, label %592

587:                                              ; preds = %582
  %588 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %589 = getelementptr inbounds %"struct.std::pair", ptr %588, i32 0, i32 0
  store i8 0, ptr %589, align 8, !tbaa !40
  %590 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %591 = getelementptr inbounds %"struct.std::pair", ptr %590, i32 0, i32 1
  store i8 1, ptr %591, align 1, !tbaa !41
  br label %597

592:                                              ; preds = %582
  %593 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %594 = getelementptr inbounds %"struct.std::pair", ptr %593, i32 0, i32 0
  store i8 1, ptr %594, align 8, !tbaa !40
  %595 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 9
  %596 = getelementptr inbounds %"struct.std::pair", ptr %595, i32 0, i32 1
  store i8 1, ptr %596, align 1, !tbaa !41
  br label %597

597:                                              ; preds = %592, %587
  br label %598

598:                                              ; preds = %597, %577
  br label %599

599:                                              ; preds = %598, %564
  %600 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %601 = getelementptr inbounds %struct.strcoordinate, ptr %600, i32 0, i32 0
  %602 = load i32, ptr %601, align 8, !tbaa !34
  %603 = icmp eq i32 %602, -1
  br i1 %603, label %604, label %617

604:                                              ; preds = %599
  %605 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  %606 = load i32, ptr %605, align 8, !tbaa !44
  %607 = icmp ne i32 %606, -1
  br i1 %607, label %608, label %617

608:                                              ; preds = %604
  %609 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 1
  %610 = getelementptr inbounds %struct.strcoordinate, ptr %609, i32 0, i32 0
  %611 = load i32, ptr %610, align 8, !tbaa !35
  %612 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  %613 = load i32, ptr %612, align 8, !tbaa !44
  %614 = add nsw i32 %611, %613
  %615 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %616 = getelementptr inbounds %struct.strcoordinate, ptr %615, i32 0, i32 0
  store i32 %614, ptr %616, align 8, !tbaa !34
  br label %617

617:                                              ; preds = %608, %604, %599
  %618 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %619 = getelementptr inbounds %struct.strcoordinate, ptr %618, i32 0, i32 0
  %620 = load i32, ptr %619, align 8, !tbaa !34
  %621 = icmp eq i32 %620, -1
  br i1 %621, label %622, label %685

622:                                              ; preds = %617
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %623 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.39, i64 noundef 0) #8
  store i64 %623, ptr %22, align 8, !tbaa !46
  %624 = load i64, ptr %22, align 8, !tbaa !46
  %625 = icmp ne i64 %624, -1
  br i1 %625, label %626, label %641

626:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %627 unwind label %632

627:                                              ; preds = %626
  %628 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  %629 = trunc i64 %628 to i32
  invoke void @_Z15get_most_effectNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef %24, i32 noundef %629)
          to label %630 unwind label %636

630:                                              ; preds = %627
  %631 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %641

632:                                              ; preds = %626
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %6, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %7, align 4
  br label %640

636:                                              ; preds = %627
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %6, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %640

640:                                              ; preds = %636, %632
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %684

641:                                              ; preds = %630, %622
  %642 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 1
  %643 = getelementptr inbounds %struct.strcoordinate, ptr %642, i32 0, i32 1
  %644 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %645 = getelementptr inbounds %struct.strcoordinate, ptr %644, i32 0, i32 1
  %646 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %645, ptr noundef nonnull align 8 dereferenceable(32) %643)
          to label %647 unwind label %668

647:                                              ; preds = %641
  %648 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  %649 = trunc i64 %648 to i32
  %650 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  %651 = trunc i64 %650 to i32
  %652 = sub nsw i32 %649, %651
  %653 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  store i32 %652, ptr %653, align 8, !tbaa !44
  %654 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 1
  %655 = getelementptr inbounds %struct.strcoordinate, ptr %654, i32 0, i32 0
  %656 = load i32, ptr %655, align 8, !tbaa !35
  %657 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  %658 = load i32, ptr %657, align 8, !tbaa !44
  %659 = call i32 @llvm.abs.i32(i32 %658, i1 true)
  %660 = add nsw i32 %656, %659
  %661 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %662 = getelementptr inbounds %struct.strcoordinate, ptr %661, i32 0, i32 0
  store i32 %660, ptr %662, align 8, !tbaa !34
  %663 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  %664 = load i32, ptr %663, align 8, !tbaa !44
  %665 = icmp sgt i32 %664, 0
  br i1 %665, label %666, label %672

666:                                              ; preds = %647
  %667 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  store i16 0, ptr %667, align 8, !tbaa !9
  br label %683

668:                                              ; preds = %641
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %6, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %7, align 4
  br label %684

672:                                              ; preds = %647
  %673 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  %674 = load i32, ptr %673, align 8, !tbaa !44
  %675 = icmp slt i32 %674, 0
  br i1 %675, label %676, label %682

676:                                              ; preds = %672
  %677 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  store i16 4, ptr %677, align 8, !tbaa !9
  %678 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  %679 = load i32, ptr %678, align 8, !tbaa !44
  %680 = call i32 @llvm.abs.i32(i32 %679, i1 true)
  %681 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  store i32 %680, ptr %681, align 8, !tbaa !44
  br label %682

682:                                              ; preds = %676, %672
  br label %683

683:                                              ; preds = %682, %666
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %685

684:                                              ; preds = %668, %640
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %740

685:                                              ; preds = %683, %617
  %686 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %687 = getelementptr inbounds %struct.strcoordinate, ptr %686, i32 0, i32 1
  %688 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %687) #8
  br i1 %688, label %689, label %696

689:                                              ; preds = %685
  %690 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 1
  %691 = getelementptr inbounds %struct.strcoordinate, ptr %690, i32 0, i32 1
  %692 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %693 = getelementptr inbounds %struct.strcoordinate, ptr %692, i32 0, i32 1
  %694 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %693, ptr noundef nonnull align 8 dereferenceable(32) %691)
          to label %695 unwind label %78

695:                                              ; preds = %689
  br label %696

696:                                              ; preds = %695, %685
  %697 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  %698 = load i32, ptr %697, align 8, !tbaa !44
  %699 = icmp eq i32 %698, -1
  br i1 %699, label %700, label %710

700:                                              ; preds = %696
  %701 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 1
  %702 = getelementptr inbounds %struct.strcoordinate, ptr %701, i32 0, i32 0
  %703 = load i32, ptr %702, align 8, !tbaa !35
  %704 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %705 = getelementptr inbounds %struct.strcoordinate, ptr %704, i32 0, i32 0
  %706 = load i32, ptr %705, align 8, !tbaa !34
  %707 = sub nsw i32 %703, %706
  %708 = call i32 @llvm.abs.i32(i32 %707, i1 true)
  %709 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 14
  store i32 %708, ptr %709, align 8, !tbaa !44
  br label %710

710:                                              ; preds = %700, %696
  %711 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 1
  %712 = getelementptr inbounds %struct.strcoordinate, ptr %711, i32 0, i32 1
  %713 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %712) #8
  %714 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %715 = getelementptr inbounds %struct.strcoordinate, ptr %714, i32 0, i32 1
  %716 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %715) #8
  %717 = call i32 @strcmp(ptr noundef %713, ptr noundef %716) #9
  %718 = icmp ne i32 %717, 0
  br i1 %718, label %719, label %739

719:                                              ; preds = %710
  %720 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  %721 = load i16, ptr %720, align 8, !tbaa !9
  %722 = sext i16 %721 to i32
  %723 = icmp eq i32 %722, 5
  br i1 %723, label %724, label %738

724:                                              ; preds = %719
  %725 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 2
  %726 = getelementptr inbounds %struct.strcoordinate, ptr %725, i32 0, i32 1
  %727 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %726) #8
  %728 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 1
  %729 = getelementptr inbounds %struct.strcoordinate, ptr %728, i32 0, i32 1
  %730 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %729) #8
  %731 = call i32 @strcmp(ptr noundef %727, ptr noundef %730) #9
  %732 = icmp eq i32 %731, 0
  br i1 %732, label %733, label %735

733:                                              ; preds = %724
  %734 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  store i16 2, ptr %734, align 8, !tbaa !9
  br label %737

735:                                              ; preds = %724
  %736 = getelementptr inbounds %struct.strvcfentry, ptr %0, i32 0, i32 3
  store i16 3, ptr %736, align 8, !tbaa !9
  br label %737

737:                                              ; preds = %735, %733
  br label %738

738:                                              ; preds = %737, %719
  br label %739

739:                                              ; preds = %738, %710
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %741

740:                                              ; preds = %684, %563, %78
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %745

741:                                              ; preds = %739, %31
  store i1 true, ptr %5, align 1
  %742 = load i1, ptr %5, align 1
  br i1 %742, label %744, label %743

743:                                              ; preds = %741
  call void @_ZN11strvcfentryD2Ev(ptr noundef nonnull align 8 dereferenceable(420) %0) #8
  br label %744

744:                                              ; preds = %743, %741
  ret void

745:                                              ; preds = %740, %74
  call void @_ZN11strvcfentryD2Ev(ptr noundef nonnull align 8 dereferenceable(420) %0) #8
  br label %746

746:                                              ; preds = %745
  %747 = load ptr, ptr %6, align 8
  %748 = load i32, ptr %7, align 4
  %749 = insertvalue { ptr, i32 } poison, ptr %747, 0
  %750 = insertvalue { ptr, i32 } %749, i32 %748, 1
  resume { ptr, i32 } %750
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11strvcfentryC2Ev(ptr noundef nonnull align 8 dereferenceable(420)) unnamed_addr #7 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare double @atof(ptr noundef nonnull) #4

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

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

; 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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN11strvcfentryD2Ev(ptr noundef nonnull align 8 dereferenceable(420)) unnamed_addr #5 align 2

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

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 = { nounwind willreturn memory(read) "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 = { inlinehint mustprogress nounwind willreturn memory(read) 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 #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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { 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 #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(read) }

!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, !16, i64 112}
!10 = !{!"_ZTS11strvcfentry", !11, i64 0, !14, i64 32, !14, i64 72, !16, i64 112, !17, i64 120, !15, i64 168, !15, i64 172, !25, i64 176, !29, i64 200, !31, i64 204, !11, i64 216, !15, i64 248, !11, i64 256, !32, i64 288, !11, i64 296, !15, i64 328, !33, i64 336, !31, i64 400, !31, i64 408, !15, i64 416}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !12, i64 0, !13, i64 8, !7, i64 16}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_ZTS13strcoordinate", !15, i64 0, !11, i64 8}
!15 = !{!"int", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !18, i64 0}
!18 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !19, i64 0}
!19 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !20, i64 0, !22, i64 8}
!20 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !21, i64 0}
!21 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!22 = !{!"_ZTSSt15_Rb_tree_header", !23, i64 0, !13, i64 32}
!23 = !{!"_ZTSSt18_Rb_tree_node_base", !24, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!24 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!25 = !{!"_ZTSSt6vectorIiSaIiEE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!29 = !{!"_ZTSSt4pairIbbE", !30, i64 0, !30, i64 1}
!30 = !{!"bool", !7, i64 0}
!31 = !{!"_ZTSSt4pairIiiE", !15, i64 0, !15, i64 4}
!32 = !{!"double", !7, i64 0}
!33 = !{!"_ZTSSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E", !11, i64 0, !11, i64 32}
!34 = !{!10, !15, i64 72}
!35 = !{!10, !15, i64 32}
!36 = !{!7, !7, i64 0}
!37 = !{!15, !15, i64 0}
!38 = !{!10, !15, i64 168}
!39 = !{!30, !30, i64 0}
!40 = !{!10, !30, i64 200}
!41 = !{!10, !30, i64 201}
!42 = !{!10, !15, i64 204}
!43 = !{!10, !15, i64 208}
!44 = !{!10, !15, i64 248}
!45 = !{!10, !32, i64 288}
!46 = !{!13, !13, i64 0}
!47 = distinct !{!47, !48}
!48 = !{!"llvm.loop.mustprogress"}
!49 = distinct !{!49, !48}
!50 = !{i8 0, i8 2}
!51 = !{}


; 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"

%struct.strcoordinate = type { i32, %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.strvcfentry = type <{ %"class.std::__cxx11::basic_string", %struct.strcoordinate, %struct.strcoordinate, i16, [6 x i8], %"class.std::map", i32, i32, %"class.std::vector.4", %"struct.std::pair", [2 x i8], %"struct.std::pair.9", [4 x i8], %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"struct.std::pair.14", %"struct.std::pair.9", %"struct.std::pair.9", i32, [4 x i8] }>
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { i8, i8 }
%"struct.std::pair.14" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"struct.std::pair.9" = type { i32, i32 }
%"class.std::allocator.0" = type { i8 }

@.str.1 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [2 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

declare i32 @__gxx_personality_v0(...)

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

; 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

; 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z10parse_stopPKc(ptr dead_on_unwind noalias writable sret(%struct.strcoordinate) align 8, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strncmp(ptr nocapture noundef, ptr nocapture noundef, i64 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN13strcoordinateD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i16 @_Z8get_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9parse_posPc(ptr dead_on_unwind noalias writable sret(%struct.strcoordinate) align 8, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local i16 @_Z19parse_strands_lumpyPc(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_Z8parse_DRPc(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15get_most_effectNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i32 noundef) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #6

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z15parse_vcf_entryNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias nonnull writable sret(%struct.strvcfentry) align 8 %0, ptr noundef %1) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"struct.std::pair", align 2
  %6 = alloca %struct.strcoordinate, align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator.0", align 1
  %9 = alloca %"struct.std::pair.9", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.0", align 1
  %12 = alloca %struct.strcoordinate, align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  tail call void @_ZN11strvcfentryC2Ev(ptr noundef nonnull align 8 dereferenceable(420) %0)
  %15 = getelementptr inbounds i8, ptr %0, i64 112
  store i16 -1, ptr %15, align 8, !tbaa !5
  %16 = getelementptr inbounds i8, ptr %0, i64 72
  store i32 -1, ptr %16, align 8, !tbaa !33
  %17 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 -1, ptr %17, align 8, !tbaa !34
  %18 = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef 0)
  %19 = load i8, ptr %18, align 1, !tbaa !35
  %.not = icmp eq i8 %19, 35
  br i1 %.not, label %340, label %20

20:                                               ; preds = %2
  %21 = getelementptr inbounds i8, ptr %0, i64 168
  store i32 0, ptr %21, align 8, !tbaa !36
  store i32 -1, ptr %16, align 8, !tbaa !33
  store i16 -1, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  %22 = getelementptr inbounds i8, ptr %0, i64 216
  %23 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.31)
          to label %24 unwind label %39

24:                                               ; preds = %20
  %25 = getelementptr inbounds i8, ptr %0, i64 200
  store i8 1, ptr %25, align 8, !tbaa !37
  %26 = getelementptr inbounds i8, ptr %0, i64 201
  store i8 1, ptr %26, align 1, !tbaa !38
  %27 = getelementptr inbounds i8, ptr %0, i64 204
  store i32 -1, ptr %27, align 4, !tbaa !39
  %28 = getelementptr inbounds i8, ptr %0, i64 208
  store i32 -1, ptr %28, align 8, !tbaa !40
  %29 = getelementptr inbounds i8, ptr %0, i64 248
  store i32 -1, ptr %29, align 8, !tbaa !41
  %30 = getelementptr inbounds i8, ptr %0, i64 288
  store double -1.000000e+00, ptr %30, align 8, !tbaa !42
  %31 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #8
  %.not208 = icmp eq i64 %31, 0
  br i1 %.not208, label %.critedge207, label %.lr.ph202

.lr.ph202:                                        ; preds = %24
  %32 = getelementptr inbounds i8, ptr %0, i64 40
  br label %33

33:                                               ; preds = %.lr.ph202, %.critedge5.thread.thread182
  %.097198 = phi i64 [ 0, %.lr.ph202 ], [ %262, %.critedge5.thread.thread182 ]
  %.098197 = phi i1 [ false, %.lr.ph202 ], [ %.2147153154161165, %.critedge5.thread.thread182 ]
  %.099196 = phi i32 [ 0, %.lr.ph202 ], [ %spec.select, %.critedge5.thread.thread182 ]
  %34 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %35 = load i8, ptr %34, align 1, !tbaa !35
  %.not111 = icmp eq i8 %35, 0
  br i1 %.not111, label %.critedge, label %36

36:                                               ; preds = %33
  %37 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %38 = load i8, ptr %37, align 1, !tbaa !35
  %.not112 = icmp eq i8 %38, 10
  br i1 %.not112, label %.critedge, label %43

.critedge:                                        ; preds = %36, %.critedge5.thread.thread182, %33
  %.098.lcssa = phi i1 [ %.098197, %33 ], [ %.2147153154161165, %.critedge5.thread.thread182 ], [ %.098197, %36 ]
  br i1 %.098.lcssa, label %268, label %.critedge207

39:                                               ; preds = %315, %20
  %40 = landingpad { ptr, i32 }
          cleanup
  br label %339

41:                                               ; preds = %.invoke, %.thread167, %65
  %42 = landingpad { ptr, i32 }
          cleanup
  br label %339

43:                                               ; preds = %36
  switch i32 %.099196, label %.critedge127 [
    i32 0, label %44
    i32 1, label %47
    i32 3, label %55
    i32 4, label %62
  ]

44:                                               ; preds = %43
  %45 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %46 = load i8, ptr %45, align 1, !tbaa !35
  %.not117 = icmp eq i8 %46, 9
  br i1 %.not117, label %.thread167, label %.invoke

47:                                               ; preds = %43
  %48 = add i64 %.097198, -1
  %49 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %48)
  %50 = load i8, ptr %49, align 1, !tbaa !35
  %51 = icmp eq i8 %50, 9
  br i1 %51, label %52, label %.thread167

52:                                               ; preds = %47
  %53 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %54 = call i32 @atoi(ptr nocapture noundef %53) #9
  store i32 %54, ptr %17, align 8, !tbaa !34
  br label %.thread167

55:                                               ; preds = %43
  %56 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %57 = load i8, ptr %56, align 1, !tbaa !35
  %.not118 = icmp eq i8 %57, 9
  br i1 %.not118, label %.thread167, label %.invoke

.invoke:                                          ; preds = %55, %44
  %58 = phi ptr [ %32, %44 ], [ %3, %55 ]
  %59 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %60 = load i8, ptr %59, align 1, !tbaa !35
  %61 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %58, i8 noundef signext %60)
          to label %.thread167 unwind label %41

62:                                               ; preds = %43
  %63 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %64 = load i8, ptr %63, align 1, !tbaa !35
  %.not119 = icmp eq i8 %64, 9
  br i1 %.not119, label %69, label %65

65:                                               ; preds = %62
  %66 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %67 = load i8, ptr %66, align 1, !tbaa !35
  %68 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %4, i8 noundef signext %67)
          to label %69 unwind label %41

69:                                               ; preds = %62, %65
  %70 = add i64 %.097198, -1
  %71 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %70)
  %72 = load i8, ptr %71, align 1, !tbaa !35
  %73 = icmp eq i8 %72, 9
  br i1 %73, label %74, label %.critedge5.thread.thread172

74:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #8
  %75 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %76 = invoke i16 @_Z19parse_strands_lumpyPc(ptr noundef nonnull %75)
          to label %77 unwind label %79

77:                                               ; preds = %74
  store i16 %76, ptr %5, align 2
  %78 = call noundef nonnull align 1 dereferenceable(2) ptr @_ZNSt4pairIbbEaSEOS0_(ptr noundef nonnull align 1 dereferenceable(2) %25, ptr noundef nonnull align 1 dereferenceable(2) %5) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #8
  br label %.critedge5.thread.thread172

79:                                               ; preds = %74
  %80 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #8
  br label %339

.critedge127:                                     ; preds = %43
  %81 = load i32, ptr %16, align 8, !tbaa !33
  %82 = icmp eq i32 %81, -1
  %83 = icmp eq i32 %.099196, 7
  %or.cond = select i1 %82, i1 %83, i1 false
  br i1 %or.cond, label %84, label %95

84:                                               ; preds = %.critedge127
  %85 = add i64 %.097198, -1
  %86 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %85)
  %87 = load i8, ptr %86, align 1, !tbaa !35
  %88 = icmp eq i8 %87, 9
  br i1 %88, label %89, label %.thread148

89:                                               ; preds = %84
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #8
  %90 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  invoke void @_Z10parse_stopPKc(ptr dead_on_unwind nonnull writable sret(%struct.strcoordinate) align 8 %6, ptr noundef nonnull %90)
          to label %91 unwind label %93

91:                                               ; preds = %89
  %92 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN13strcoordinateaSEOS_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(40) %6) #8
  call void @_ZN13strcoordinateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #8
  br label %.thread148

93:                                               ; preds = %89
  %94 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #8
  br label %339

95:                                               ; preds = %.critedge127
  br i1 %83, label %.thread148, label %.critedge134

.thread148:                                       ; preds = %84, %91, %95
  %96 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %97 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %96, ptr noundef nonnull dereferenceable(1) @.str.32, i64 noundef 7) #9
  %98 = icmp eq i32 %97, 0
  br i1 %98, label %99, label %106

99:                                               ; preds = %.thread148
  %100 = add i64 %.097198, 7
  %101 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %100)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull %101, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %102 unwind label %104

102:                                              ; preds = %99
  %103 = call noundef signext i16 @_Z8get_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %7)
  store i16 %103, ptr %15, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8
  br label %106

104:                                              ; preds = %99
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8
  br label %339

106:                                              ; preds = %.thread148, %102
  %107 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %108 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %107, ptr noundef nonnull dereferenceable(1) @.str.20, i64 noundef 4) #9
  %109 = icmp eq i32 %108, 0
  br i1 %109, label %110, label %.critedge129

110:                                              ; preds = %106
  %111 = add i64 %.097198, 4
  %112 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %111)
  %113 = call i32 @atoi(ptr nocapture noundef %112) #9
  store i32 %113, ptr %28, align 8, !tbaa !40
  br label %.critedge129

.critedge129:                                     ; preds = %106, %110
  %114 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %115 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %114, ptr noundef nonnull dereferenceable(1) @.str.21, i64 noundef 4) #9
  %116 = icmp eq i32 %115, 0
  br i1 %116, label %117, label %.critedge130

117:                                              ; preds = %.critedge129
  %118 = add i64 %.097198, 4
  %119 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %118)
  %120 = call i32 @atoi(ptr nocapture noundef %119) #9
  store i32 %120, ptr %28, align 8, !tbaa !40
  br label %.critedge130

.critedge130:                                     ; preds = %.critedge129, %117
  %121 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %122 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %121, ptr noundef nonnull dereferenceable(1) @.str.33, i64 noundef 4) #9
  %123 = icmp eq i32 %122, 0
  br i1 %123, label %124, label %.critedge131

124:                                              ; preds = %.critedge130
  %125 = add i64 %.097198, 4
  %126 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %125)
  %127 = call double @atof(ptr noundef %126) #9
  store double %127, ptr %30, align 8, !tbaa !42
  br label %.critedge131

.critedge131:                                     ; preds = %.critedge130, %124
  %128 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %129 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %128, ptr noundef nonnull dereferenceable(1) @.str.34, i64 noundef 4) #9
  %130 = icmp eq i32 %129, 0
  br i1 %130, label %131, label %.critedge132

131:                                              ; preds = %.critedge131
  %132 = add i64 %.097198, 4
  %133 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %132)
  %134 = load i8, ptr %133, align 1, !tbaa !35
  %135 = icmp ne i8 %134, 53
  %136 = zext i1 %135 to i8
  store i8 %136, ptr %25, align 8, !tbaa !37
  %137 = add i64 %.097198, 7
  %138 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %137)
  %139 = load i8, ptr %138, align 1, !tbaa !35
  %140 = icmp ne i8 %139, 53
  %141 = zext i1 %140 to i8
  store i8 %141, ptr %26, align 1, !tbaa !38
  br label %.critedge132

.critedge132:                                     ; preds = %131, %.critedge131
  %.1 = phi i1 [ true, %131 ], [ %.098197, %.critedge131 ]
  %142 = load i32, ptr %29, align 8, !tbaa !41
  %143 = icmp eq i32 %142, -1
  %or.cond3 = select i1 %143, i1 %83, i1 false
  br i1 %or.cond3, label %144, label %158

144:                                              ; preds = %.critedge132
  %145 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %146 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %145, ptr noundef nonnull dereferenceable(1) @.str.35, i64 noundef 7) #9
  %147 = icmp eq i32 %146, 0
  br i1 %147, label %152, label %148

148:                                              ; preds = %144
  %149 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %150 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %149, ptr noundef nonnull dereferenceable(1) @.str.36, i64 noundef 7) #9
  %151 = icmp eq i32 %150, 0
  br i1 %151, label %152, label %158

152:                                              ; preds = %148, %144
  %153 = add i64 %.097198, 7
  %154 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %153)
  %155 = call double @atof(ptr noundef %154) #9
  %156 = fptosi double %155 to i32
  %157 = call i32 @llvm.abs.i32(i32 %156, i1 true)
  store i32 %157, ptr %29, align 8, !tbaa !41
  br label %158

158:                                              ; preds = %152, %148, %.critedge132
  %159 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %160 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %159, ptr noundef nonnull dereferenceable(1) @.str.37, i64 noundef 6) #9
  %161 = icmp eq i32 %160, 0
  br i1 %161, label %162, label %168

162:                                              ; preds = %158
  %163 = add i64 %.097198, 6
  %164 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %163)
  %165 = call double @atof(ptr noundef %164) #9
  %166 = fptosi double %165 to i32
  %167 = call i32 @llvm.abs.i32(i32 %166, i1 true)
  store i32 %167, ptr %29, align 8, !tbaa !41
  br label %168

168:                                              ; preds = %158, %162
  %169 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %170 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %169, ptr noundef nonnull dereferenceable(1) @.str.38, i64 noundef 9) #9
  %171 = icmp eq i32 %170, 0
  br i1 %171, label %172, label %.thread167

172:                                              ; preds = %168
  %173 = add i64 %.097198, 9
  %174 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %173)
  %175 = load i8, ptr %174, align 1, !tbaa !35
  %176 = icmp eq i8 %175, 43
  %177 = zext i1 %176 to i8
  store i8 %177, ptr %25, align 8, !tbaa !37
  %178 = add i64 %.097198, 10
  %179 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %178)
  %180 = load i8, ptr %179, align 1, !tbaa !35
  %181 = icmp eq i8 %180, 43
  %182 = zext i1 %181 to i8
  store i8 %182, ptr %26, align 1, !tbaa !38
  br label %.thread167

.critedge134:                                     ; preds = %95
  %183 = icmp ugt i32 %.099196, 8
  br i1 %183, label %184, label %.critedge5

184:                                              ; preds = %.critedge134
  %185 = add i64 %.097198, -1
  %186 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %185)
  %187 = load i8, ptr %186, align 1, !tbaa !35
  %188 = icmp eq i8 %187, 9
  br i1 %188, label %189, label %.critedge5.thread.thread182

189:                                              ; preds = %184
  %190 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %22, i64 noundef 0)
  %191 = load i8, ptr %190, align 1, !tbaa !35
  %192 = icmp eq i8 %191, 46
  br i1 %192, label %193, label %.critedge5.thread.thread182

193:                                              ; preds = %189
  %194 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.1)
          to label %.preheader unwind label %.loopexit.split-lp

.preheader:                                       ; preds = %193
  %195 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %196 = load i8, ptr %195, align 1, !tbaa !35
  %.not120193 = icmp eq i8 %196, 0
  br i1 %.not120193, label %.critedge5.thread.thread182, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader, %206
  %.0194 = phi i64 [ %207, %206 ], [ %.097198, %.preheader ]
  %197 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.0194)
  %198 = load i8, ptr %197, align 1, !tbaa !35
  %.not121 = icmp eq i8 %198, 58
  br i1 %.not121, label %.critedge5, label %199

199:                                              ; preds = %.lr.ph
  %200 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.0194)
  %201 = load i8, ptr %200, align 1, !tbaa !35
  %.not122 = icmp eq i8 %201, 9
  br i1 %.not122, label %206, label %202

202:                                              ; preds = %199
  %203 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.0194)
  %204 = load i8, ptr %203, align 1, !tbaa !35
  %205 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %22, i8 noundef signext %204)
          to label %206 unwind label %.loopexit

.loopexit:                                        ; preds = %202
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %339

.loopexit.split-lp:                               ; preds = %193
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %339

206:                                              ; preds = %202, %199
  %207 = add i64 %.0194, 1
  %208 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %207)
  %209 = load i8, ptr %208, align 1, !tbaa !35
  %.not120 = icmp eq i8 %209, 0
  br i1 %.not120, label %.critedge5, label %.lr.ph, !llvm.loop !43

.critedge5:                                       ; preds = %206, %.lr.ph, %.critedge134
  %210 = icmp eq i32 %.099196, 8
  br i1 %210, label %211, label %.critedge5.thread

211:                                              ; preds = %.critedge5
  %212 = add i64 %.097198, -1
  %213 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %212)
  %214 = load i8, ptr %213, align 1, !tbaa !35
  %215 = icmp eq i8 %214, 9
  br i1 %215, label %216, label %.thread167

216:                                              ; preds = %211
  %217 = load i32, ptr %27, align 4, !tbaa !39
  %218 = icmp eq i32 %217, -1
  %219 = load i32, ptr %28, align 8
  %220 = icmp eq i32 %219, -1
  %or.cond9 = select i1 %218, i1 true, i1 %220
  br i1 %or.cond9, label %221, label %.thread167

221:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #8
  %222 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %223 = invoke i64 @_Z8parse_DRPc(ptr noundef nonnull %222)
          to label %224 unwind label %226

224:                                              ; preds = %221
  store i64 %223, ptr %9, align 8
  %225 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt4pairIiiEaSEOS0_(ptr noundef nonnull align 4 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(8) %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  br label %.thread167

226:                                              ; preds = %221
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  br label %339

.critedge5.thread.thread172:                      ; preds = %77, %69
  %228 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %70)
  %229 = load i8, ptr %228, align 1, !tbaa !35
  %230 = icmp eq i8 %229, 60
  br i1 %230, label %231, label %237

231:                                              ; preds = %.critedge5.thread.thread172
  %232 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull %232, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %233 unwind label %235

233:                                              ; preds = %231
  %234 = call noundef signext i16 @_Z8get_typeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %10)
  store i16 %234, ptr %15, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #8
  br label %237

235:                                              ; preds = %231
  %236 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #8
  br label %339

237:                                              ; preds = %233, %.critedge5.thread.thread172
  %238 = load i32, ptr %16, align 8, !tbaa !33
  %239 = icmp eq i32 %238, -1
  br i1 %239, label %240, label %.thread167

240:                                              ; preds = %237
  %241 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %70)
  %242 = load i8, ptr %241, align 1, !tbaa !35
  %243 = icmp eq i8 %242, 91
  br i1 %243, label %248, label %244

244:                                              ; preds = %240
  %245 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %70)
  %246 = load i8, ptr %245, align 1, !tbaa !35
  %247 = icmp eq i8 %246, 93
  br i1 %247, label %248, label %.thread167

248:                                              ; preds = %244, %240
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #8
  %249 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %70)
  invoke void @_Z9parse_posPc(ptr dead_on_unwind nonnull writable sret(%struct.strcoordinate) align 8 %12, ptr noundef nonnull %249)
          to label %250 unwind label %252

250:                                              ; preds = %248
  %251 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN13strcoordinateaSEOS_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(40) %12) #8
  call void @_ZN13strcoordinateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #8
  br label %.thread167

252:                                              ; preds = %248
  %253 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #8
  br label %339

.critedge5.thread:                                ; preds = %.critedge5
  %254 = icmp ult i32 %.099196, 9
  br i1 %254, label %.thread167, label %.critedge5.thread.thread182

.thread167:                                       ; preds = %.invoke, %216, %211, %224, %168, %172, %55, %44, %52, %47, %237, %244, %250, %.critedge5.thread
  %.2147153154161166 = phi i1 [ %.098197, %.critedge5.thread ], [ %.098197, %224 ], [ %.098197, %250 ], [ %.098197, %244 ], [ %.098197, %237 ], [ %.098197, %47 ], [ %.098197, %52 ], [ %.098197, %44 ], [ %.098197, %55 ], [ %.1, %168 ], [ true, %172 ], [ %.098197, %211 ], [ %.098197, %216 ], [ %.098197, %.invoke ]
  %255 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %256 = load i8, ptr %255, align 1, !tbaa !35
  %257 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext %256)
          to label %.critedge5.thread.thread182 unwind label %41

.critedge5.thread.thread182:                      ; preds = %.preheader, %184, %189, %.thread167, %.critedge5.thread
  %.2147153154161165 = phi i1 [ %.2147153154161166, %.thread167 ], [ %.098197, %.critedge5.thread ], [ %.098197, %189 ], [ %.098197, %184 ], [ %.098197, %.preheader ]
  %258 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef %.097198)
  %259 = load i8, ptr %258, align 1, !tbaa !35
  %260 = icmp eq i8 %259, 9
  %261 = zext i1 %260 to i32
  %spec.select = add nuw nsw i32 %.099196, %261
  %262 = add nuw i64 %.097198, 1
  %263 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #8
  %264 = icmp ult i64 %262, %263
  br i1 %264, label %33, label %.critedge, !llvm.loop !45

.critedge207:                                     ; preds = %24, %.critedge
  %265 = load i16, ptr %15, align 8
  %266 = and i16 %265, -5
  %or.cond15 = icmp ne i16 %266, 0
  %267 = icmp ne i16 %265, 1
  %.sink211 = zext i1 %267 to i8
  %.sink = zext i1 %or.cond15 to i8
  store i8 %.sink211, ptr %25, align 8, !tbaa !37
  store i8 %.sink, ptr %26, align 1, !tbaa !38
  br label %268

268:                                              ; preds = %.critedge207, %.critedge
  %269 = load i32, ptr %16, align 8, !tbaa !33
  %270 = icmp eq i32 %269, -1
  %271 = load i32, ptr %29, align 8
  %272 = icmp ne i32 %271, -1
  %or.cond18 = select i1 %270, i1 %272, i1 false
  br i1 %or.cond18, label %273, label %276

273:                                              ; preds = %268
  %274 = load i32, ptr %17, align 8, !tbaa !34
  %275 = add nsw i32 %274, %271
  store i32 %275, ptr %16, align 8, !tbaa !33
  br label %276

276:                                              ; preds = %273, %268
  %277 = phi i32 [ %275, %273 ], [ %269, %268 ]
  %278 = icmp eq i32 %277, -1
  br i1 %278, label %279, label %312

279:                                              ; preds = %276
  %280 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.39, i64 noundef 0) #8
  %.not113 = icmp eq i64 %280, -1
  br i1 %.not113, label %292, label %281

281:                                              ; preds = %279
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %282 unwind label %287

282:                                              ; preds = %281
  %283 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  %284 = trunc i64 %283 to i32
  invoke void @_Z15get_most_effectNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull %14, i32 noundef %284)
          to label %285 unwind label %289

285:                                              ; preds = %282
  %286 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  br label %292

287:                                              ; preds = %281
  %288 = landingpad { ptr, i32 }
          cleanup
  br label %291

289:                                              ; preds = %282
  %290 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %291

291:                                              ; preds = %289, %287
  %.pn = phi { ptr, i32 } [ %290, %289 ], [ %288, %287 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  br label %339

292:                                              ; preds = %285, %279
  %293 = getelementptr inbounds i8, ptr %0, i64 40
  %294 = getelementptr inbounds i8, ptr %0, i64 80
  %295 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %294, ptr noundef nonnull align 8 dereferenceable(32) %293)
          to label %296 unwind label %307

296:                                              ; preds = %292
  %297 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  %298 = trunc i64 %297 to i32
  %299 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  %300 = trunc i64 %299 to i32
  %301 = sub nsw i32 %298, %300
  store i32 %301, ptr %29, align 8, !tbaa !41
  %302 = load i32, ptr %17, align 8, !tbaa !34
  %303 = call i32 @llvm.abs.i32(i32 %301, i1 true)
  %304 = add nsw i32 %303, %302
  store i32 %304, ptr %16, align 8, !tbaa !33
  %305 = icmp sgt i32 %301, 0
  br i1 %305, label %306, label %309

306:                                              ; preds = %296
  store i16 0, ptr %15, align 8, !tbaa !5
  br label %312

307:                                              ; preds = %292
  %308 = landingpad { ptr, i32 }
          cleanup
  br label %339

309:                                              ; preds = %296
  %310 = icmp slt i32 %301, 0
  br i1 %310, label %311, label %312

311:                                              ; preds = %309
  store i16 4, ptr %15, align 8, !tbaa !5
  store i32 %303, ptr %29, align 8, !tbaa !41
  br label %312

312:                                              ; preds = %306, %311, %309, %276
  %313 = getelementptr inbounds i8, ptr %0, i64 80
  %314 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %313) #8
  br i1 %314, label %315, label %318

315:                                              ; preds = %312
  %316 = getelementptr inbounds i8, ptr %0, i64 40
  %317 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef nonnull align 8 dereferenceable(32) %316)
          to label %318 unwind label %39

318:                                              ; preds = %315, %312
  %319 = load i32, ptr %29, align 8, !tbaa !41
  %320 = icmp eq i32 %319, -1
  br i1 %320, label %321, label %326

321:                                              ; preds = %318
  %322 = load i32, ptr %17, align 8, !tbaa !34
  %323 = load i32, ptr %16, align 8, !tbaa !33
  %324 = sub nsw i32 %322, %323
  %325 = call i32 @llvm.abs.i32(i32 %324, i1 true)
  store i32 %325, ptr %29, align 8, !tbaa !41
  br label %326

326:                                              ; preds = %321, %318
  %327 = getelementptr inbounds i8, ptr %0, i64 40
  %328 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %327) #8
  %329 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %313) #8
  %330 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %328, ptr noundef nonnull dereferenceable(1) %329) #9
  %331 = icmp ne i32 %330, 0
  %332 = load i16, ptr %15, align 8
  %333 = icmp eq i16 %332, 5
  %or.cond22 = select i1 %331, i1 %333, i1 false
  br i1 %or.cond22, label %.sink.split212, label %338

.sink.split212:                                   ; preds = %326
  %334 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %313) #8
  %335 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %327) #8
  %336 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %334, ptr noundef nonnull dereferenceable(1) %335) #9
  %337 = icmp eq i32 %336, 0
  %.214 = select i1 %337, i16 2, i16 3
  store i16 %.214, ptr %15, align 8, !tbaa !5
  br label %338

338:                                              ; preds = %.sink.split212, %326
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #8
  br label %340

339:                                              ; preds = %.loopexit, %.loopexit.split-lp, %291, %307, %41, %79, %93, %104, %226, %235, %252, %39
  %.pn123.pn = phi { ptr, i32 } [ %40, %39 ], [ %42, %41 ], [ %253, %252 ], [ %236, %235 ], [ %227, %226 ], [ %105, %104 ], [ %94, %93 ], [ %80, %79 ], [ %308, %307 ], [ %.pn, %291 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #8
  call void @_ZN11strvcfentryD2Ev(ptr noundef nonnull align 8 dereferenceable(420) %0) #8
  resume { ptr, i32 } %.pn123.pn

340:                                              ; preds = %2, %338
  ret void
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN11strvcfentryC2Ev(ptr noundef nonnull align 8 dereferenceable(420)) unnamed_addr #7 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(2) ptr @_ZNSt4pairIbbEaSEOS0_(ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare double @atof(ptr nocapture noundef nonnull) local_unnamed_addr #4

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

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

; 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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN11strvcfentryD2Ev(ptr noundef nonnull align 8 dereferenceable(420)) unnamed_addr #5 align 2

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

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 = { mustprogress nofree nounwind willreturn memory(argmem: read) "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 = { inlinehint mustprogress nofree nounwind willreturn memory(read) 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 #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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { 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 #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(read) }

!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, !15, i64 112}
!6 = !{!"_ZTS11strvcfentry", !7, i64 0, !13, i64 32, !13, i64 72, !15, i64 112, !16, i64 120, !14, i64 168, !14, i64 172, !24, i64 176, !28, i64 200, !30, i64 204, !7, i64 216, !14, i64 248, !7, i64 256, !31, i64 288, !7, i64 296, !14, i64 328, !32, i64 336, !30, i64 400, !30, i64 408, !14, i64 416}
!7 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !8, i64 0, !12, i64 8, !10, i64 16}
!8 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !9, i64 0}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"long", !10, i64 0}
!13 = !{!"_ZTS13strcoordinate", !14, i64 0, !7, i64 8}
!14 = !{!"int", !10, i64 0}
!15 = !{!"short", !10, i64 0}
!16 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !17, i64 0}
!17 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !18, i64 0}
!18 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !19, i64 0, !21, i64 8}
!19 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !20, i64 0}
!20 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!21 = !{!"_ZTSSt15_Rb_tree_header", !22, i64 0, !12, i64 32}
!22 = !{!"_ZTSSt18_Rb_tree_node_base", !23, i64 0, !9, i64 8, !9, i64 16, !9, i64 24}
!23 = !{!"_ZTSSt14_Rb_tree_color", !10, i64 0}
!24 = !{!"_ZTSSt6vectorIiSaIiEE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!28 = !{!"_ZTSSt4pairIbbE", !29, i64 0, !29, i64 1}
!29 = !{!"bool", !10, i64 0}
!30 = !{!"_ZTSSt4pairIiiE", !14, i64 0, !14, i64 4}
!31 = !{!"double", !10, i64 0}
!32 = !{!"_ZTSSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E", !7, i64 0, !7, i64 32}
!33 = !{!6, !14, i64 72}
!34 = !{!6, !14, i64 32}
!35 = !{!10, !10, i64 0}
!36 = !{!6, !14, i64 168}
!37 = !{!6, !29, i64 200}
!38 = !{!6, !29, i64 201}
!39 = !{!6, !14, i64 204}
!40 = !{!6, !14, i64 208}
!41 = !{!6, !14, i64 248}
!42 = !{!6, !31, i64 288}
!43 = distinct !{!43, !44}
!44 = !{!"llvm.loop.mustprogress"}
!45 = distinct !{!45, !44}


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass