; LLVM IR from fritzsedlazeck/SURVIVOR :: src/snp_overlap (Overlap_snps)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"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" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<strvcfentry, std::allocator<strvcfentry>>::_Vector_impl" }
%"struct.std::_Vector_base<strvcfentry, std::allocator<strvcfentry>>::_Vector_impl" = type { %"struct.std::_Vector_base<strvcfentry, std::allocator<strvcfentry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<strvcfentry, std::allocator<strvcfentry>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%class.Parameter = type <{ %"class.std::__cxx11::basic_string", double, i32, i8, i8, i8, i8, i32, float, i32, [4 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.7", %"struct.std::pair", [2 x i8], %"struct.std::pair.12", [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.12", %"struct.std::pair.12", i32, [4 x i8] }>
%struct.strcoordinate = type { i32, %"class.std::__cxx11::basic_string" }
%"class.std::vector.7" = type { %"struct.std::_Vector_base.8" }
%"struct.std::_Vector_base.8" = 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.12" = type { i32, i32 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@.str.21 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [1 x i8], align 1

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

; Function Attrs: 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 @_Z9parse_vcfNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.std::map") align 8, ptr noundef) #1

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)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN9Parameter8InstanceEv() #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 #1 align 2

declare void @_Z9parse_vcfRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #4

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32)) #2 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) #2 align 2

declare noalias ptr @fopen(ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) #2 align 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) #1 align 2

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #6

declare i32 @fclose(ptr noundef) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z12parse_randomNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.std::vector") align 8, ptr noundef) #1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z17overlap_snps_gwasNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_iiS4_(ptr noundef %0, ptr noundef %1, i32 noundef %2, i32 noundef %3, ptr noundef %4) #1 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca %"class.std::map", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::vector", align 8
  %16 = alloca %"class.std::vector", align 8
  %17 = alloca %"class.std::vector", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca i64, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i8, align 1
  %28 = alloca i32, align 4
  %29 = alloca i8, align 1
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca i32, align 4
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %42 = alloca %"struct.std::_Rb_tree_iterator", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store i32 %2, ptr %8, align 4, !tbaa !9
  store i32 %3, ptr %9, align 4, !tbaa !9
  store ptr %4, ptr %10, align 8, !tbaa !5
  %43 = call noundef ptr @_ZN9Parameter8InstanceEv()
  %44 = getelementptr inbounds %class.Parameter, ptr %43, i32 0, i32 8
  store float 0x3FA99999A0000000, ptr %44, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 48, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %0)
  invoke void @_Z9parse_vcfNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::map") align 8 %11, ptr noundef %12)
          to label %45 unwind label %53

45:                                               ; preds = %5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #8
  call void @_ZNSt6vectorI11strvcfentrySaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #8
  %46 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #8
  %47 = call i32 @strcmp(ptr noundef %46, ptr noundef @.str.19) #9
  %48 = icmp eq i32 %47, 0
  br i1 %48, label %49, label %61

49:                                               ; preds = %45
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #8
  %50 = load i32, ptr %9, align 4, !tbaa !9
  invoke void @_Z9parse_vcfRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %50)
          to label %51 unwind label %57

51:                                               ; preds = %49
  %52 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(24) %16) #8
  call void @_ZNSt6vectorI11strvcfentrySaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  br label %74

53:                                               ; preds = %5
  %54 = landingpad { ptr, i32 }
          cleanup
  %55 = extractvalue { ptr, i32 } %54, 0
  store ptr %55, ptr %13, align 8
  %56 = extractvalue { ptr, i32 } %54, 1
  store i32 %56, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %549

57:                                               ; preds = %49
  %58 = landingpad { ptr, i32 }
          cleanup
  %59 = extractvalue { ptr, i32 } %58, 0
  store ptr %59, ptr %13, align 8
  %60 = extractvalue { ptr, i32 } %58, 1
  store i32 %60, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  br label %548

61:                                               ; preds = %45
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %62 unwind label %65

62:                                               ; preds = %61
  invoke void @_Z12parse_randomNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %17, ptr noundef %18)
          to label %63 unwind label %69

63:                                               ; preds = %62
  %64 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @_ZNSt6vectorI11strvcfentrySaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #8
  br label %74

65:                                               ; preds = %61
  %66 = landingpad { ptr, i32 }
          cleanup
  %67 = extractvalue { ptr, i32 } %66, 0
  store ptr %67, ptr %13, align 8
  %68 = extractvalue { ptr, i32 } %66, 1
  store i32 %68, ptr %14, align 4
  br label %73

69:                                               ; preds = %62
  %70 = landingpad { ptr, i32 }
          cleanup
  %71 = extractvalue { ptr, i32 } %70, 0
  store ptr %71, ptr %13, align 8
  %72 = extractvalue { ptr, i32 } %70, 1
  store i32 %72, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %73

73:                                               ; preds = %69, %65
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #8
  br label %548

74:                                               ; preds = %63, %51
  %75 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.2)
          to label %76 unwind label %87

76:                                               ; preds = %74
  %77 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #8
  %78 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %75, i64 noundef %77)
          to label %79 unwind label %87

79:                                               ; preds = %76
  %80 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %81 unwind label %87

81:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  store i64 0, ptr %19, align 8, !tbaa !19
  br label %82

82:                                               ; preds = %316, %81
  %83 = load i64, ptr %19, align 8, !tbaa !19
  %84 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #8
  %85 = icmp ult i64 %83, %84
  br i1 %85, label %91, label %86

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

87:                                               ; preds = %323, %321, %79, %76, %74
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %13, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %14, align 4
  br label %548

91:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  store i32 0, ptr %22, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %92 = load i64, ptr %19, align 8, !tbaa !19
  %93 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %92) #8
  %94 = getelementptr inbounds %struct.strvcfentry, ptr %93, i32 0, i32 1
  %95 = getelementptr inbounds %struct.strcoordinate, ptr %94, i32 0, i32 0
  %96 = load i32, ptr %95, align 8, !tbaa !20
  %97 = load i32, ptr %8, align 4, !tbaa !9
  %98 = sub nsw i32 %96, %97
  store i32 %98, ptr %23, align 4, !tbaa !9
  %99 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %100 unwind label %148

100:                                              ; preds = %91
  %101 = load i32, ptr %99, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  store i32 %101, ptr %21, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %102 = load i64, ptr %19, align 8, !tbaa !19
  %103 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %102) #8
  %104 = getelementptr inbounds %struct.strvcfentry, ptr %103, i32 0, i32 1
  %105 = getelementptr inbounds %struct.strcoordinate, ptr %104, i32 0, i32 1
  %106 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %107 unwind label %152

107:                                              ; preds = %100
  %108 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  %109 = trunc i64 %108 to i32
  store i32 %109, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %110 = load i64, ptr %19, align 8, !tbaa !19
  %111 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %110) #8
  %112 = getelementptr inbounds %struct.strvcfentry, ptr %111, i32 0, i32 2
  %113 = getelementptr inbounds %struct.strcoordinate, ptr %112, i32 0, i32 0
  %114 = load i32, ptr %113, align 8, !tbaa !39
  %115 = load i32, ptr %8, align 4, !tbaa !9
  %116 = add nsw i32 %114, %115
  store i32 %116, ptr %26, align 4, !tbaa !9
  %117 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %118 unwind label %156

118:                                              ; preds = %107
  %119 = load i32, ptr %117, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  store i32 %119, ptr %24, align 4, !tbaa !9
  %120 = load i64, ptr %19, align 8, !tbaa !19
  %121 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %120) #8
  %122 = getelementptr inbounds %struct.strvcfentry, ptr %121, i32 0, i32 3
  %123 = load i16, ptr %122, align 8, !tbaa !40
  %124 = sext i16 %123 to i32
  %125 = icmp eq i32 %124, 0
  br i1 %125, label %140, label %126

126:                                              ; preds = %118
  %127 = load i64, ptr %19, align 8, !tbaa !19
  %128 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %127) #8
  %129 = getelementptr inbounds %struct.strvcfentry, ptr %128, i32 0, i32 3
  %130 = load i16, ptr %129, align 8, !tbaa !40
  %131 = sext i16 %130 to i32
  %132 = icmp eq i32 %131, 1
  br i1 %132, label %140, label %133

133:                                              ; preds = %126
  %134 = load i64, ptr %19, align 8, !tbaa !19
  %135 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %134) #8
  %136 = getelementptr inbounds %struct.strvcfentry, ptr %135, i32 0, i32 3
  %137 = load i16, ptr %136, align 8, !tbaa !40
  %138 = sext i16 %137 to i32
  %139 = icmp eq i32 %138, 6
  br i1 %139, label %140, label %197

140:                                              ; preds = %133, %126, %118
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #8
  store i8 68, ptr %27, align 1, !tbaa !41
  %141 = load i64, ptr %19, align 8, !tbaa !19
  %142 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %141) #8
  %143 = getelementptr inbounds %struct.strvcfentry, ptr %142, i32 0, i32 3
  %144 = load i16, ptr %143, align 8, !tbaa !40
  %145 = sext i16 %144 to i32
  %146 = icmp eq i32 %145, 1
  br i1 %146, label %147, label %161

147:                                              ; preds = %140
  store i8 80, ptr %27, align 1, !tbaa !41
  br label %170

148:                                              ; preds = %91
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %13, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %320

152:                                              ; preds = %100
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %13, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %14, align 4
  br label %160

156:                                              ; preds = %107
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %13, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %160

160:                                              ; preds = %156, %152
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %319

161:                                              ; preds = %140
  %162 = load i64, ptr %19, align 8, !tbaa !19
  %163 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %162) #8
  %164 = getelementptr inbounds %struct.strvcfentry, ptr %163, i32 0, i32 3
  %165 = load i16, ptr %164, align 8, !tbaa !40
  %166 = sext i16 %165 to i32
  %167 = icmp eq i32 %166, 6
  br i1 %167, label %168, label %169

168:                                              ; preds = %161
  store i8 67, ptr %27, align 1, !tbaa !41
  br label %169

169:                                              ; preds = %168, %161
  br label %170

170:                                              ; preds = %169, %147
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %171 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %171, ptr %28, align 4, !tbaa !9
  br label %172

172:                                              ; preds = %189, %170
  %173 = load i32, ptr %28, align 4, !tbaa !9
  %174 = load i32, ptr %24, align 4, !tbaa !9
  %175 = icmp slt i32 %173, %174
  br i1 %175, label %177, label %176

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

177:                                              ; preds = %172
  %178 = load i8, ptr %27, align 1, !tbaa !41
  %179 = load i64, ptr %19, align 8, !tbaa !19
  %180 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %179) #8
  %181 = getelementptr inbounds %struct.strvcfentry, ptr %180, i32 0, i32 1
  %182 = getelementptr inbounds %struct.strcoordinate, ptr %181, i32 0, i32 1
  %183 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %182)
          to label %184 unwind label %192

184:                                              ; preds = %177
  %185 = load i32, ptr %28, align 4, !tbaa !9
  %186 = sext i32 %185 to i64
  %187 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %183, i64 noundef %186)
          to label %188 unwind label %192

188:                                              ; preds = %184
  store i8 %178, ptr %187, align 1, !tbaa !41
  br label %189

189:                                              ; preds = %188
  %190 = load i32, ptr %28, align 4, !tbaa !9
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr %28, align 4, !tbaa !9
  br label %172, !llvm.loop !42

192:                                              ; preds = %184, %177
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %13, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  br label %319

196:                                              ; preds = %176
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  br label %315

197:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #8
  store i8 86, ptr %29, align 1, !tbaa !41
  %198 = load i64, ptr %19, align 8, !tbaa !19
  %199 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %198) #8
  %200 = getelementptr inbounds %struct.strvcfentry, ptr %199, i32 0, i32 3
  %201 = load i16, ptr %200, align 8, !tbaa !40
  %202 = sext i16 %201 to i32
  %203 = icmp eq i32 %202, 3
  br i1 %203, label %204, label %205

204:                                              ; preds = %197
  store i8 84, ptr %29, align 1, !tbaa !41
  br label %223

205:                                              ; preds = %197
  %206 = load i64, ptr %19, align 8, !tbaa !19
  %207 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %206) #8
  %208 = getelementptr inbounds %struct.strvcfentry, ptr %207, i32 0, i32 3
  %209 = load i16, ptr %208, align 8, !tbaa !40
  %210 = sext i16 %209 to i32
  %211 = icmp eq i32 %210, 4
  br i1 %211, label %212, label %213

212:                                              ; preds = %205
  store i8 73, ptr %29, align 1, !tbaa !41
  br label %222

213:                                              ; preds = %205
  %214 = load i64, ptr %19, align 8, !tbaa !19
  %215 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %214) #8
  %216 = getelementptr inbounds %struct.strvcfentry, ptr %215, i32 0, i32 3
  %217 = load i16, ptr %216, align 8, !tbaa !40
  %218 = sext i16 %217 to i32
  %219 = icmp eq i32 %218, 5
  br i1 %219, label %220, label %221

220:                                              ; preds = %213
  store i8 85, ptr %29, align 1, !tbaa !41
  br label %221

221:                                              ; preds = %220, %213
  br label %222

222:                                              ; preds = %221, %212
  br label %223

223:                                              ; preds = %222, %204
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %224 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %224, ptr %30, align 4, !tbaa !9
  br label %225

225:                                              ; preds = %265, %223
  %226 = load i32, ptr %30, align 4, !tbaa !9
  %227 = load i64, ptr %19, align 8, !tbaa !19
  %228 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %227) #8
  %229 = getelementptr inbounds %struct.strvcfentry, ptr %228, i32 0, i32 1
  %230 = getelementptr inbounds %struct.strcoordinate, ptr %229, i32 0, i32 0
  %231 = load i32, ptr %230, align 8, !tbaa !20
  %232 = load i32, ptr %8, align 4, !tbaa !9
  %233 = add nsw i32 %231, %232
  %234 = icmp slt i32 %226, %233
  br i1 %234, label %235, label %246

235:                                              ; preds = %225
  %236 = load i32, ptr %30, align 4, !tbaa !9
  %237 = load i64, ptr %19, align 8, !tbaa !19
  %238 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %237) #8
  %239 = getelementptr inbounds %struct.strvcfentry, ptr %238, i32 0, i32 1
  %240 = getelementptr inbounds %struct.strcoordinate, ptr %239, i32 0, i32 1
  %241 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %240)
          to label %242 unwind label %249

242:                                              ; preds = %235
  %243 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %241) #8
  %244 = trunc i64 %243 to i32
  %245 = icmp slt i32 %236, %244
  br label %246

246:                                              ; preds = %242, %225
  %247 = phi i1 [ false, %225 ], [ %245, %242 ]
  br i1 %247, label %253, label %248

248:                                              ; preds = %246
  store i32 8, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %268

249:                                              ; preds = %260, %253, %235
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %13, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %314

253:                                              ; preds = %246
  %254 = load i8, ptr %29, align 1, !tbaa !41
  %255 = load i64, ptr %19, align 8, !tbaa !19
  %256 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %255) #8
  %257 = getelementptr inbounds %struct.strvcfentry, ptr %256, i32 0, i32 1
  %258 = getelementptr inbounds %struct.strcoordinate, ptr %257, i32 0, i32 1
  %259 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %258)
          to label %260 unwind label %249

260:                                              ; preds = %253
  %261 = load i32, ptr %30, align 4, !tbaa !9
  %262 = sext i32 %261 to i64
  %263 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %259, i64 noundef %262)
          to label %264 unwind label %249

264:                                              ; preds = %260
  store i8 %254, ptr %263, align 1, !tbaa !41
  br label %265

265:                                              ; preds = %264
  %266 = load i32, ptr %30, align 4, !tbaa !9
  %267 = add nsw i32 %266, 1
  store i32 %267, ptr %30, align 4, !tbaa !9
  br label %225, !llvm.loop !44

268:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %269 = load i32, ptr %24, align 4, !tbaa !9
  store i32 %269, ptr %31, align 4, !tbaa !9
  br label %270

270:                                              ; preds = %310, %268
  %271 = load i32, ptr %31, align 4, !tbaa !9
  %272 = load i64, ptr %19, align 8, !tbaa !19
  %273 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %272) #8
  %274 = getelementptr inbounds %struct.strvcfentry, ptr %273, i32 0, i32 2
  %275 = getelementptr inbounds %struct.strcoordinate, ptr %274, i32 0, i32 0
  %276 = load i32, ptr %275, align 8, !tbaa !39
  %277 = load i32, ptr %8, align 4, !tbaa !9
  %278 = add nsw i32 %276, %277
  %279 = icmp slt i32 %271, %278
  br i1 %279, label %280, label %291

280:                                              ; preds = %270
  %281 = load i32, ptr %31, align 4, !tbaa !9
  %282 = load i64, ptr %19, align 8, !tbaa !19
  %283 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %282) #8
  %284 = getelementptr inbounds %struct.strvcfentry, ptr %283, i32 0, i32 2
  %285 = getelementptr inbounds %struct.strcoordinate, ptr %284, i32 0, i32 1
  %286 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %285)
          to label %287 unwind label %294

287:                                              ; preds = %280
  %288 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %286) #8
  %289 = trunc i64 %288 to i32
  %290 = icmp slt i32 %281, %289
  br label %291

291:                                              ; preds = %287, %270
  %292 = phi i1 [ false, %270 ], [ %290, %287 ]
  br i1 %292, label %298, label %293

293:                                              ; preds = %291
  store i32 11, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %313

294:                                              ; preds = %305, %298, %280
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %13, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %314

298:                                              ; preds = %291
  %299 = load i8, ptr %29, align 1, !tbaa !41
  %300 = load i64, ptr %19, align 8, !tbaa !19
  %301 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %300) #8
  %302 = getelementptr inbounds %struct.strvcfentry, ptr %301, i32 0, i32 2
  %303 = getelementptr inbounds %struct.strcoordinate, ptr %302, i32 0, i32 1
  %304 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %303)
          to label %305 unwind label %294

305:                                              ; preds = %298
  %306 = load i32, ptr %31, align 4, !tbaa !9
  %307 = sext i32 %306 to i64
  %308 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %304, i64 noundef %307)
          to label %309 unwind label %294

309:                                              ; preds = %305
  store i8 %299, ptr %308, align 1, !tbaa !41
  br label %310

310:                                              ; preds = %309
  %311 = load i32, ptr %31, align 4, !tbaa !9
  %312 = add nsw i32 %311, 1
  store i32 %312, ptr %31, align 4, !tbaa !9
  br label %270, !llvm.loop !45

313:                                              ; preds = %293
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  br label %315

314:                                              ; preds = %294, %249
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  br label %319

315:                                              ; preds = %313, %196
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %316

316:                                              ; preds = %315
  %317 = load i64, ptr %19, align 8, !tbaa !19
  %318 = add i64 %317, 1
  store i64 %318, ptr %19, align 8, !tbaa !19
  br label %82, !llvm.loop !46

319:                                              ; preds = %314, %192, %160
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %320

320:                                              ; preds = %319, %148
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %548

321:                                              ; preds = %86
  %322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.20)
          to label %323 unwind label %87

323:                                              ; preds = %321
  %324 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %322, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %325 unwind label %87

325:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  %326 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  %327 = invoke noalias ptr @fopen(ptr noundef %326, ptr noundef @.str.4)
          to label %328 unwind label %359

328:                                              ; preds = %325
  store ptr %327, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  store i32 0, ptr %33, align 4, !tbaa !9
  br label %329

329:                                              ; preds = %540, %328
  %330 = load ptr, ptr @_ZSt3cin, align 8, !tbaa !47
  %331 = getelementptr i8, ptr %330, i64 -24
  %332 = load i64, ptr %331, align 8
  %333 = getelementptr inbounds i8, ptr @_ZSt3cin, i64 %332
  %334 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %333)
          to label %335 unwind label %363

335:                                              ; preds = %329
  %336 = xor i1 %334, true
  br i1 %336, label %337, label %542

337:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  %338 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %339 unwind label %367

339:                                              ; preds = %337
  %340 = load ptr, ptr @_ZSt3cin, align 8, !tbaa !47
  %341 = getelementptr i8, ptr %340, i64 -24
  %342 = load i64, ptr %341, align 8
  %343 = getelementptr inbounds i8, ptr @_ZSt3cin, i64 %342
  %344 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv(ptr noundef nonnull align 8 dereferenceable(264) %343)
          to label %345 unwind label %367

345:                                              ; preds = %339
  br i1 %344, label %536, label %346

346:                                              ; preds = %345
  %347 = load i32, ptr %33, align 4, !tbaa !9
  %348 = icmp eq i32 %347, 0
  br i1 %348, label %349, label %371

349:                                              ; preds = %346
  %350 = load ptr, ptr %32, align 8, !tbaa !5
  %351 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  %352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %350, ptr noundef @.str.17, ptr noundef %351) #8
  %353 = load ptr, ptr %32, align 8, !tbaa !5
  %354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %353, ptr noundef @.str.16, i32 noundef 9) #8
  %355 = load ptr, ptr %32, align 8, !tbaa !5
  %356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %355, ptr noundef @.str.17, ptr noundef @.str.21) #8
  %357 = load ptr, ptr %32, align 8, !tbaa !5
  %358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %357, ptr noundef @.str.16, i32 noundef 10) #8
  br label %533

359:                                              ; preds = %325
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %13, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %14, align 4
  br label %547

363:                                              ; preds = %542, %329
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %13, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %14, align 4
  br label %546

367:                                              ; preds = %339, %337
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %13, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %14, align 4
  br label %541

371:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %372 unwind label %409

372:                                              ; preds = %371
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  store i32 0, ptr %37, align 4, !tbaa !9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %373 unwind label %413

373:                                              ; preds = %372
  invoke void @_Z9parse_posNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiRS4_(ptr noundef %38, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %374 unwind label %417

374:                                              ; preds = %373
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  %375 = load ptr, ptr %32, align 8, !tbaa !5
  %376 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  %377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %375, ptr noundef @.str.17, ptr noundef %376) #8
  %378 = load ptr, ptr %32, align 8, !tbaa !5
  %379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %378, ptr noundef @.str.16, i32 noundef 9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %380 unwind label %421

380:                                              ; preds = %374
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %381 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %382 unwind label %425

382:                                              ; preds = %380
  %383 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %41, i32 0, i32 0
  store ptr %381, ptr %383, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %384 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %11) #8
  %385 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %42, i32 0, i32 0
  store ptr %384, ptr %385, align 8
  %386 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  br i1 %386, label %387, label %394

387:                                              ; preds = %382
  %388 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %389 unwind label %429

389:                                              ; preds = %387
  %390 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %388) #8
  %391 = load i32, ptr %37, align 4, !tbaa !9
  %392 = sext i32 %391 to i64
  %393 = icmp ugt i64 %390, %392
  br label %394

394:                                              ; preds = %389, %382
  %395 = phi i1 [ false, %382 ], [ %393, %389 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br i1 %395, label %396, label %523

396:                                              ; preds = %394
  %397 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %398 unwind label %434

398:                                              ; preds = %396
  %399 = load i32, ptr %37, align 4, !tbaa !9
  %400 = sext i32 %399 to i64
  %401 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %397, i64 noundef %400)
          to label %402 unwind label %434

402:                                              ; preds = %398
  %403 = load i8, ptr %401, align 1, !tbaa !41
  %404 = sext i8 %403 to i32
  %405 = icmp eq i32 %404, 84
  br i1 %405, label %406, label %438

406:                                              ; preds = %402
  %407 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.8)
          to label %408 unwind label %434

408:                                              ; preds = %406
  br label %522

409:                                              ; preds = %371
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %13, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %14, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #8
  br label %532

413:                                              ; preds = %372
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %13, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %14, align 4
  br label %531

417:                                              ; preds = %373
  %418 = landingpad { ptr, i32 }
          cleanup
  %419 = extractvalue { ptr, i32 } %418, 0
  store ptr %419, ptr %13, align 8
  %420 = extractvalue { ptr, i32 } %418, 1
  store i32 %420, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %531

421:                                              ; preds = %374
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %13, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %14, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  br label %530

425:                                              ; preds = %380
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %13, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %14, align 4
  br label %433

429:                                              ; preds = %387
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %13, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %433

433:                                              ; preds = %429, %425
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br label %529

434:                                              ; preds = %513, %505, %503, %500, %492, %490, %487, %479, %477, %474, %466, %464, %461, %453, %451, %448, %440, %438, %406, %398, %396
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %13, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %14, align 4
  br label %529

438:                                              ; preds = %402
  %439 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %440 unwind label %434

440:                                              ; preds = %438
  %441 = load i32, ptr %37, align 4, !tbaa !9
  %442 = sext i32 %441 to i64
  %443 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %439, i64 noundef %442)
          to label %444 unwind label %434

444:                                              ; preds = %440
  %445 = load i8, ptr %443, align 1, !tbaa !41
  %446 = sext i8 %445 to i32
  %447 = icmp eq i32 %446, 73
  br i1 %447, label %448, label %451

448:                                              ; preds = %444
  %449 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.9)
          to label %450 unwind label %434

450:                                              ; preds = %448
  br label %521

451:                                              ; preds = %444
  %452 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %453 unwind label %434

453:                                              ; preds = %451
  %454 = load i32, ptr %37, align 4, !tbaa !9
  %455 = sext i32 %454 to i64
  %456 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %452, i64 noundef %455)
          to label %457 unwind label %434

457:                                              ; preds = %453
  %458 = load i8, ptr %456, align 1, !tbaa !41
  %459 = sext i8 %458 to i32
  %460 = icmp eq i32 %459, 85
  br i1 %460, label %461, label %464

461:                                              ; preds = %457
  %462 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.10)
          to label %463 unwind label %434

463:                                              ; preds = %461
  br label %520

464:                                              ; preds = %457
  %465 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %466 unwind label %434

466:                                              ; preds = %464
  %467 = load i32, ptr %37, align 4, !tbaa !9
  %468 = sext i32 %467 to i64
  %469 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %465, i64 noundef %468)
          to label %470 unwind label %434

470:                                              ; preds = %466
  %471 = load i8, ptr %469, align 1, !tbaa !41
  %472 = sext i8 %471 to i32
  %473 = icmp eq i32 %472, 68
  br i1 %473, label %474, label %477

474:                                              ; preds = %470
  %475 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.11)
          to label %476 unwind label %434

476:                                              ; preds = %474
  br label %519

477:                                              ; preds = %470
  %478 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %479 unwind label %434

479:                                              ; preds = %477
  %480 = load i32, ptr %37, align 4, !tbaa !9
  %481 = sext i32 %480 to i64
  %482 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %478, i64 noundef %481)
          to label %483 unwind label %434

483:                                              ; preds = %479
  %484 = load i8, ptr %482, align 1, !tbaa !41
  %485 = sext i8 %484 to i32
  %486 = icmp eq i32 %485, 80
  br i1 %486, label %487, label %490

487:                                              ; preds = %483
  %488 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.12)
          to label %489 unwind label %434

489:                                              ; preds = %487
  br label %518

490:                                              ; preds = %483
  %491 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %492 unwind label %434

492:                                              ; preds = %490
  %493 = load i32, ptr %37, align 4, !tbaa !9
  %494 = sext i32 %493 to i64
  %495 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %491, i64 noundef %494)
          to label %496 unwind label %434

496:                                              ; preds = %492
  %497 = load i8, ptr %495, align 1, !tbaa !41
  %498 = sext i8 %497 to i32
  %499 = icmp eq i32 %498, 67
  br i1 %499, label %500, label %503

500:                                              ; preds = %496
  %501 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.13)
          to label %502 unwind label %434

502:                                              ; preds = %500
  br label %517

503:                                              ; preds = %496
  %504 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %505 unwind label %434

505:                                              ; preds = %503
  %506 = load i32, ptr %37, align 4, !tbaa !9
  %507 = sext i32 %506 to i64
  %508 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %504, i64 noundef %507)
          to label %509 unwind label %434

509:                                              ; preds = %505
  %510 = load i8, ptr %508, align 1, !tbaa !41
  %511 = sext i8 %510 to i32
  %512 = icmp eq i32 %511, 86
  br i1 %512, label %513, label %516

513:                                              ; preds = %509
  %514 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.14)
          to label %515 unwind label %434

515:                                              ; preds = %513
  br label %516

516:                                              ; preds = %515, %509
  br label %517

517:                                              ; preds = %516, %502
  br label %518

518:                                              ; preds = %517, %489
  br label %519

519:                                              ; preds = %518, %476
  br label %520

520:                                              ; preds = %519, %463
  br label %521

521:                                              ; preds = %520, %450
  br label %522

522:                                              ; preds = %521, %408
  br label %523

523:                                              ; preds = %522, %394
  %524 = load ptr, ptr %32, align 8, !tbaa !5
  %525 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %524, ptr noundef @.str.17, ptr noundef %525) #8
  %527 = load ptr, ptr %32, align 8, !tbaa !5
  %528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %527, ptr noundef @.str.16, i32 noundef 10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  br label %533

529:                                              ; preds = %434, %433
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %530

530:                                              ; preds = %529, %421
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  br label %531

531:                                              ; preds = %530, %417, %413
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %532

532:                                              ; preds = %531, %409
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  br label %541

533:                                              ; preds = %523, %349
  %534 = load i32, ptr %33, align 4, !tbaa !9
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr %33, align 4, !tbaa !9
  br label %537

536:                                              ; preds = %345
  store i32 15, ptr %20, align 4
  br label %538

537:                                              ; preds = %533
  store i32 0, ptr %20, align 4
  br label %538

538:                                              ; preds = %537, %536
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  %539 = load i32, ptr %20, align 4
  switch i32 %539, label %555 [
    i32 0, label %540
    i32 15, label %542
  ]

540:                                              ; preds = %538
  br label %329, !llvm.loop !49

541:                                              ; preds = %532, %367
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  br label %546

542:                                              ; preds = %538, %335
  %543 = load ptr, ptr %32, align 8, !tbaa !5
  %544 = invoke i32 @fclose(ptr noundef %543)
          to label %545 unwind label %363

545:                                              ; preds = %542
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @_ZNSt6vectorI11strvcfentrySaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #8
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %11) #8
  ret void

546:                                              ; preds = %541, %363
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %547

547:                                              ; preds = %546, %359
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %548

548:                                              ; preds = %547, %320, %87, %73, %57
  call void @_ZNSt6vectorI11strvcfentrySaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #8
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #8
  br label %549

549:                                              ; preds = %548, %53
  call void @llvm.lifetime.end.p0(i64 48, ptr %11) #8
  br label %550

550:                                              ; preds = %549
  %551 = load ptr, ptr %13, align 8
  %552 = load i32, ptr %14, align 4
  %553 = insertvalue { ptr, i32 } poison, ptr %551, 0
  %554 = insertvalue { ptr, i32 } %553, i32 %552, 1
  resume { ptr, i32 } %554

555:                                              ; preds = %538
  unreachable
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #3

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #3 = { 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 #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #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, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !18, i64 52}
!12 = !{!"_ZTS9Parameter", !13, i64 0, !16, i64 32, !10, i64 40, !17, i64 44, !17, i64 45, !17, i64 46, !10, i64 48, !18, i64 52, !10, i64 56}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !14, i64 0, !15, i64 8, !7, i64 16}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!15 = !{!"long", !7, i64 0}
!16 = !{!"double", !7, i64 0}
!17 = !{!"bool", !7, i64 0}
!18 = !{!"float", !7, i64 0}
!19 = !{!15, !15, i64 0}
!20 = !{!21, !10, i64 32}
!21 = !{!"_ZTS11strvcfentry", !13, i64 0, !22, i64 32, !22, i64 72, !23, i64 112, !24, i64 120, !10, i64 168, !10, i64 172, !32, i64 176, !36, i64 200, !37, i64 204, !13, i64 216, !10, i64 248, !13, i64 256, !16, i64 288, !13, i64 296, !10, i64 328, !38, i64 336, !37, i64 400, !37, i64 408, !10, i64 416}
!22 = !{!"_ZTS13strcoordinate", !10, i64 0, !13, i64 8}
!23 = !{!"short", !7, i64 0}
!24 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !25, i64 0}
!25 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !26, i64 0}
!26 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !27, i64 0, !29, i64 8}
!27 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !28, i64 0}
!28 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!29 = !{!"_ZTSSt15_Rb_tree_header", !30, i64 0, !15, i64 32}
!30 = !{!"_ZTSSt18_Rb_tree_node_base", !31, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!31 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!32 = !{!"_ZTSSt6vectorIiSaIiEE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!"_ZTSSt4pairIbbE", !17, i64 0, !17, i64 1}
!37 = !{!"_ZTSSt4pairIiiE", !10, i64 0, !10, i64 4}
!38 = !{!"_ZTSSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E", !13, i64 0, !13, i64 32}
!39 = !{!21, !10, i64 72}
!40 = !{!21, !23, i64 112}
!41 = !{!7, !7, i64 0}
!42 = distinct !{!42, !43}
!43 = !{!"llvm.loop.mustprogress"}
!44 = distinct !{!44, !43}
!45 = distinct !{!45, !43}
!46 = distinct !{!46, !43}
!47 = !{!48, !48, i64 0}
!48 = !{!"vtable pointer", !8, i64 0}
!49 = distinct !{!49, !43}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"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" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<strvcfentry, std::allocator<strvcfentry>>::_Vector_impl" }
%"struct.std::_Vector_base<strvcfentry, std::allocator<strvcfentry>>::_Vector_impl" = type { %"struct.std::_Vector_base<strvcfentry, std::allocator<strvcfentry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<strvcfentry, std::allocator<strvcfentry>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"struct.std::_Rb_tree_iterator" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@.str.21 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [1 x i8], align 1

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

; Function Attrs: mustprogress 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 @_Z9parse_vcfNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.std::map") align 8, ptr noundef) local_unnamed_addr #1

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 #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN9Parameter8InstanceEv() 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 #1 align 2

declare void @_Z9parse_vcfRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #4

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 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 #2 align 2

; Function Attrs: nofree nounwind
declare noalias noundef ptr @fopen(ptr nocapture noundef readonly, ptr nocapture noundef readonly) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2 align 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 #1 align 2

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #6

; Function Attrs: nofree nounwind
declare noundef i32 @fclose(ptr nocapture noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9parse_posNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiRS4_(ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z12parse_randomNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.std::vector") align 8, ptr noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z17overlap_snps_gwasNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_iiS4_(ptr noundef %0, ptr noundef %1, i32 noundef %2, i32 noundef %3, ptr noundef %4) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::map", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::vector", align 8
  %9 = alloca %"class.std::vector", align 8
  %10 = alloca %"class.std::vector", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca i32, align 4
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %24 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %25 = tail call noundef ptr @_ZN9Parameter8InstanceEv()
  %26 = getelementptr inbounds i8, ptr %25, i64 52
  store float 0x3FA99999A0000000, ptr %26, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %0)
  invoke void @_Z9parse_vcfNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::map") align 8 %6, ptr noundef nonnull %7)
          to label %27 unwind label %34

27:                                               ; preds = %5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #8
  call void @_ZNSt6vectorI11strvcfentrySaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  %28 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #8
  %29 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %28, ptr noundef nonnull dereferenceable(1) @.str.19) #9
  %30 = icmp eq i32 %29, 0
  br i1 %30, label %31, label %38

31:                                               ; preds = %27
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #8
  invoke void @_Z9parse_vcfRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %3)
          to label %32 unwind label %36

32:                                               ; preds = %31
  %33 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @_ZNSt6vectorI11strvcfentrySaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #8
  br label %47

34:                                               ; preds = %5
  %35 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %322

36:                                               ; preds = %31
  %37 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #8
  br label %321

38:                                               ; preds = %27
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %39 unwind label %42

39:                                               ; preds = %38
  invoke void @_Z12parse_randomNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %10, ptr noundef nonnull %11)
          to label %40 unwind label %44

40:                                               ; preds = %39
  %41 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  call void @_ZNSt6vectorI11strvcfentrySaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  br label %47

42:                                               ; preds = %38
  %43 = landingpad { ptr, i32 }
          cleanup
  br label %46

44:                                               ; preds = %39
  %45 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  br label %46

46:                                               ; preds = %44, %42
  %.pn = phi { ptr, i32 } [ %45, %44 ], [ %43, %42 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  br label %321

47:                                               ; preds = %40, %32
  %48 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.2)
          to label %49 unwind label %56

49:                                               ; preds = %47
  %50 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  %51 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %48, i64 noundef %50)
          to label %52 unwind label %56

52:                                               ; preds = %49
  %53 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader unwind label %56

.preheader:                                       ; preds = %52
  %54 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  %.not = icmp eq i64 %54, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph111

._crit_edge:                                      ; preds = %.critedge2, %.preheader
  %55 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.20)
          to label %185 unwind label %56

56:                                               ; preds = %185, %._crit_edge, %52, %49, %47
  %57 = landingpad { ptr, i32 }
          cleanup
  br label %321

.lr.ph111:                                        ; preds = %.preheader, %.critedge2
  %.079109 = phi i64 [ %182, %.critedge2 ], [ 0, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #8
  store i32 0, ptr %12, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #8
  %58 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %59 = getelementptr inbounds i8, ptr %58, i64 32
  %60 = load i32, ptr %59, align 8, !tbaa !18
  %61 = sub nsw i32 %60, %2
  store i32 %61, ptr %13, align 4, !tbaa !17
  %62 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13)
  %63 = load i32, ptr %62, align 4, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #8
  %64 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %65 = getelementptr inbounds i8, ptr %64, i64 40
  %66 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %67 unwind label %95

67:                                               ; preds = %.lr.ph111
  %68 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  %69 = trunc i64 %68 to i32
  store i32 %69, ptr %14, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #8
  %70 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %71 = getelementptr inbounds i8, ptr %70, i64 72
  %72 = load i32, ptr %71, align 8, !tbaa !37
  %73 = add nsw i32 %72, %2
  store i32 %73, ptr %15, align 4, !tbaa !17
  %74 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %15)
  %75 = load i32, ptr %74, align 4, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  %76 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %77 = getelementptr inbounds i8, ptr %76, i64 112
  %78 = load i16, ptr %77, align 8, !tbaa !38
  %79 = icmp eq i16 %78, 0
  br i1 %79, label %90, label %80

80:                                               ; preds = %67
  %81 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %82 = getelementptr inbounds i8, ptr %81, i64 112
  %83 = load i16, ptr %82, align 8, !tbaa !38
  %84 = icmp eq i16 %83, 1
  br i1 %84, label %90, label %85

85:                                               ; preds = %80
  %86 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %87 = getelementptr inbounds i8, ptr %86, i64 112
  %88 = load i16, ptr %87, align 8, !tbaa !38
  %89 = icmp eq i16 %88, 6
  br i1 %89, label %90, label %112

90:                                               ; preds = %85, %80, %67
  %91 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %92 = getelementptr inbounds i8, ptr %91, i64 112
  %93 = load i16, ptr %92, align 8, !tbaa !38
  %94 = icmp eq i16 %93, 1
  br i1 %94, label %102, label %97

95:                                               ; preds = %.lr.ph111
  %96 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  br label %321

97:                                               ; preds = %90
  %98 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %99 = getelementptr inbounds i8, ptr %98, i64 112
  %100 = load i16, ptr %99, align 8, !tbaa !38
  %101 = icmp eq i16 %100, 6
  %spec.select = select i1 %101, i8 67, i8 68
  br label %102

102:                                              ; preds = %97, %90
  %.066 = phi i8 [ 80, %90 ], [ %spec.select, %97 ]
  %103 = icmp slt i32 %63, %75
  br i1 %103, label %.lr.ph108.preheader, label %.critedge2

.lr.ph108.preheader:                              ; preds = %102
  %104 = sext i32 %63 to i64
  %wide.trip.count = sext i32 %75 to i64
  br label %.lr.ph108

.lr.ph108:                                        ; preds = %.lr.ph108.preheader, %108
  %indvars.iv117 = phi i64 [ %104, %.lr.ph108.preheader ], [ %indvars.iv.next118, %108 ]
  %105 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %106 = getelementptr inbounds i8, ptr %105, i64 40
  %107 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %108 unwind label %110

108:                                              ; preds = %.lr.ph108
  %109 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %107, i64 noundef %indvars.iv117)
  store i8 %.066, ptr %109, align 1, !tbaa !39
  %indvars.iv.next118 = add nsw i64 %indvars.iv117, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next118, %wide.trip.count
  br i1 %exitcond.not, label %.critedge2, label %.lr.ph108, !llvm.loop !40

110:                                              ; preds = %.lr.ph108
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %321

112:                                              ; preds = %85
  %113 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %114 = getelementptr inbounds i8, ptr %113, i64 112
  %115 = load i16, ptr %114, align 8, !tbaa !38
  %116 = icmp eq i16 %115, 3
  br i1 %116, label %127, label %117

117:                                              ; preds = %112
  %118 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %119 = getelementptr inbounds i8, ptr %118, i64 112
  %120 = load i16, ptr %119, align 8, !tbaa !38
  %121 = icmp eq i16 %120, 4
  br i1 %121, label %127, label %122

122:                                              ; preds = %117
  %123 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %124 = getelementptr inbounds i8, ptr %123, i64 112
  %125 = load i16, ptr %124, align 8, !tbaa !38
  %126 = icmp eq i16 %125, 5
  %spec.select97 = select i1 %126, i8 85, i8 86
  br label %127

127:                                              ; preds = %122, %117, %112
  %.064 = phi i8 [ 84, %112 ], [ 73, %117 ], [ %spec.select97, %122 ]
  %128 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %129 = getelementptr inbounds i8, ptr %128, i64 32
  %130 = load i32, ptr %129, align 8, !tbaa !18
  %131 = add nsw i32 %130, %2
  %132 = icmp slt i32 %63, %131
  br i1 %132, label %.lr.ph.preheader, label %.critedge

.lr.ph.preheader:                                 ; preds = %127
  %133 = sext i32 %63 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %153
  %indvars.iv = phi i64 [ %133, %.lr.ph.preheader ], [ %indvars.iv.next, %153 ]
  %134 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %135 = getelementptr inbounds i8, ptr %134, i64 40
  %136 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %135)
          to label %137 unwind label %147

137:                                              ; preds = %.lr.ph
  %138 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %136) #8
  %sext = shl i64 %138, 32
  %139 = ashr exact i64 %sext, 32
  %140 = icmp slt i64 %indvars.iv, %139
  br i1 %140, label %149, label %.critedge

.critedge:                                        ; preds = %137, %153, %127
  %141 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %142 = getelementptr inbounds i8, ptr %141, i64 72
  %143 = load i32, ptr %142, align 8, !tbaa !37
  %144 = add nsw i32 %143, %2
  %145 = icmp slt i32 %75, %144
  br i1 %145, label %.lr.ph105.preheader, label %.critedge2

.lr.ph105.preheader:                              ; preds = %.critedge
  %146 = sext i32 %75 to i64
  br label %.lr.ph105

147:                                              ; preds = %149, %.lr.ph
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %321

149:                                              ; preds = %137
  %150 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %151 = getelementptr inbounds i8, ptr %150, i64 40
  %152 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %153 unwind label %147

153:                                              ; preds = %149
  %154 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %152, i64 noundef %indvars.iv)
  store i8 %.064, ptr %154, align 1, !tbaa !39
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %155 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %156 = getelementptr inbounds i8, ptr %155, i64 32
  %157 = load i32, ptr %156, align 8, !tbaa !18
  %158 = add nsw i32 %157, %2
  %159 = sext i32 %158 to i64
  %160 = icmp slt i64 %indvars.iv.next, %159
  br i1 %160, label %.lr.ph, label %.critedge, !llvm.loop !42

.lr.ph105:                                        ; preds = %.lr.ph105.preheader, %174
  %indvars.iv114 = phi i64 [ %146, %.lr.ph105.preheader ], [ %indvars.iv.next115, %174 ]
  %161 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %162 = getelementptr inbounds i8, ptr %161, i64 80
  %163 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %162)
          to label %164 unwind label %168

164:                                              ; preds = %.lr.ph105
  %165 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  %sext120 = shl i64 %165, 32
  %166 = ashr exact i64 %sext120, 32
  %167 = icmp slt i64 %indvars.iv114, %166
  br i1 %167, label %170, label %.critedge2

168:                                              ; preds = %170, %.lr.ph105
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %321

170:                                              ; preds = %164
  %171 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %172 = getelementptr inbounds i8, ptr %171, i64 80
  %173 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %172)
          to label %174 unwind label %168

174:                                              ; preds = %170
  %175 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %173, i64 noundef %indvars.iv114)
  store i8 %.064, ptr %175, align 1, !tbaa !39
  %indvars.iv.next115 = add nsw i64 %indvars.iv114, 1
  %176 = call noundef nonnull align 8 dereferenceable(420) ptr @_ZNSt6vectorI11strvcfentrySaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %.079109) #8
  %177 = getelementptr inbounds i8, ptr %176, i64 72
  %178 = load i32, ptr %177, align 8, !tbaa !37
  %179 = add nsw i32 %178, %2
  %180 = sext i32 %179 to i64
  %181 = icmp slt i64 %indvars.iv.next115, %180
  br i1 %181, label %.lr.ph105, label %.critedge2, !llvm.loop !43

.critedge2:                                       ; preds = %174, %164, %108, %.critedge, %102
  %182 = add nuw i64 %.079109, 1
  %183 = call noundef i64 @_ZNKSt6vectorI11strvcfentrySaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  %184 = icmp ult i64 %182, %183
  br i1 %184, label %.lr.ph111, label %._crit_edge, !llvm.loop !44

185:                                              ; preds = %._crit_edge
  %186 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %187 unwind label %56

187:                                              ; preds = %185
  %188 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  %189 = call noalias ptr @fopen(ptr noundef %188, ptr noundef nonnull @.str.4)
  br label %190

190:                                              ; preds = %317, %187
  %.0 = phi i32 [ 0, %187 ], [ %318, %317 ]
  %191 = load ptr, ptr @_ZSt3cin, align 8, !tbaa !45
  %192 = getelementptr i8, ptr %191, i64 -24
  %193 = load i64, ptr %192, align 8
  %194 = getelementptr inbounds i8, ptr @_ZSt3cin, i64 %193
  %195 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %194)
          to label %196 unwind label %213

196:                                              ; preds = %190
  br i1 %195, label %.loopexit, label %197

197:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  %198 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %199 unwind label %215

199:                                              ; preds = %197
  %200 = load ptr, ptr @_ZSt3cin, align 8, !tbaa !45
  %201 = getelementptr i8, ptr %200, i64 -24
  %202 = load i64, ptr %201, align 8
  %203 = getelementptr inbounds i8, ptr @_ZSt3cin, i64 %202
  %204 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv(ptr noundef nonnull align 8 dereferenceable(264) %203)
  br i1 %204, label %.thread, label %205

.thread:                                          ; preds = %199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  br label %.loopexit

205:                                              ; preds = %199
  %206 = icmp eq i32 %.0, 0
  br i1 %206, label %207, label %217

207:                                              ; preds = %205
  %208 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  %209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull @.str.17, ptr noundef %208) #8
  %210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull @.str.16, i32 noundef 9) #8
  %211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.21) #8
  %212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull @.str.16, i32 noundef 10) #8
  br label %317

213:                                              ; preds = %190
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %321

215:                                              ; preds = %197
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %319

217:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %218 unwind label %244

218:                                              ; preds = %217
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #8
  store i32 0, ptr %19, align 4, !tbaa !17
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %219 unwind label %246

219:                                              ; preds = %218
  invoke void @_Z9parse_posNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERiRS4_(ptr noundef nonnull %20, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %220 unwind label %248

220:                                              ; preds = %219
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  %221 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  %222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull @.str.17, ptr noundef %221) #8
  %223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull @.str.16, i32 noundef 9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %224 unwind label %250

224:                                              ; preds = %220
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  %225 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %226 unwind label %252

226:                                              ; preds = %224
  store ptr %225, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  %227 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %6) #8
  store ptr %227, ptr %24, align 8
  %228 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  br i1 %228, label %229, label %.critedge4

229:                                              ; preds = %226
  %230 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %231 unwind label %254

231:                                              ; preds = %229
  %232 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %230) #8
  %233 = load i32, ptr %19, align 4, !tbaa !17
  %234 = sext i32 %233 to i64
  %235 = icmp ugt i64 %232, %234
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br i1 %235, label %236, label %309

236:                                              ; preds = %231
  %237 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %238 unwind label %257

238:                                              ; preds = %236
  %239 = load i32, ptr %19, align 4, !tbaa !17
  %240 = sext i32 %239 to i64
  %241 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %237, i64 noundef %240)
  %242 = load i8, ptr %241, align 1, !tbaa !39
  %243 = icmp eq i8 %242, 84
  br i1 %243, label %.invoke, label %259

244:                                              ; preds = %217
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  br label %316

246:                                              ; preds = %218
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %315

248:                                              ; preds = %219
  %249 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %315

250:                                              ; preds = %220
  %251 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  br label %314

252:                                              ; preds = %224
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %256

254:                                              ; preds = %229
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  br label %256

256:                                              ; preds = %254, %252
  %.pn82 = phi { ptr, i32 } [ %255, %254 ], [ %253, %252 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br label %313

257:                                              ; preds = %.invoke, %299, %291, %283, %275, %267, %259, %236
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %313

259:                                              ; preds = %238
  %260 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %261 unwind label %257

261:                                              ; preds = %259
  %262 = load i32, ptr %19, align 4, !tbaa !17
  %263 = sext i32 %262 to i64
  %264 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %260, i64 noundef %263)
  %265 = load i8, ptr %264, align 1, !tbaa !39
  %266 = icmp eq i8 %265, 73
  br i1 %266, label %.invoke, label %267

267:                                              ; preds = %261
  %268 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %269 unwind label %257

269:                                              ; preds = %267
  %270 = load i32, ptr %19, align 4, !tbaa !17
  %271 = sext i32 %270 to i64
  %272 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %268, i64 noundef %271)
  %273 = load i8, ptr %272, align 1, !tbaa !39
  %274 = icmp eq i8 %273, 85
  br i1 %274, label %.invoke, label %275

275:                                              ; preds = %269
  %276 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %277 unwind label %257

277:                                              ; preds = %275
  %278 = load i32, ptr %19, align 4, !tbaa !17
  %279 = sext i32 %278 to i64
  %280 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %276, i64 noundef %279)
  %281 = load i8, ptr %280, align 1, !tbaa !39
  %282 = icmp eq i8 %281, 68
  br i1 %282, label %.invoke, label %283

283:                                              ; preds = %277
  %284 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %285 unwind label %257

285:                                              ; preds = %283
  %286 = load i32, ptr %19, align 4, !tbaa !17
  %287 = sext i32 %286 to i64
  %288 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %284, i64 noundef %287)
  %289 = load i8, ptr %288, align 1, !tbaa !39
  %290 = icmp eq i8 %289, 80
  br i1 %290, label %.invoke, label %291

291:                                              ; preds = %285
  %292 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %293 unwind label %257

293:                                              ; preds = %291
  %294 = load i32, ptr %19, align 4, !tbaa !17
  %295 = sext i32 %294 to i64
  %296 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %292, i64 noundef %295)
  %297 = load i8, ptr %296, align 1, !tbaa !39
  %298 = icmp eq i8 %297, 67
  br i1 %298, label %.invoke, label %299

299:                                              ; preds = %293
  %300 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %301 unwind label %257

301:                                              ; preds = %299
  %302 = load i32, ptr %19, align 4, !tbaa !17
  %303 = sext i32 %302 to i64
  %304 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %300, i64 noundef %303)
  %305 = load i8, ptr %304, align 1, !tbaa !39
  %306 = icmp eq i8 %305, 86
  br i1 %306, label %.invoke, label %309

.invoke:                                          ; preds = %238, %301, %293, %285, %277, %269, %261
  %307 = phi ptr [ @.str.9, %261 ], [ @.str.10, %269 ], [ @.str.11, %277 ], [ @.str.12, %285 ], [ @.str.13, %293 ], [ @.str.14, %301 ], [ @.str.8, %238 ]
  %308 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull %307)
          to label %309 unwind label %257

.critedge4:                                       ; preds = %226
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br label %309

309:                                              ; preds = %.invoke, %301, %.critedge4, %231
  %310 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  %311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull @.str.17, ptr noundef %310) #8
  %312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull @.str.16, i32 noundef 10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  br label %317

313:                                              ; preds = %257, %256
  %.pn84 = phi { ptr, i32 } [ %258, %257 ], [ %.pn82, %256 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %314

314:                                              ; preds = %313, %250
  %.pn84.pn = phi { ptr, i32 } [ %.pn84, %313 ], [ %251, %250 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  br label %315

315:                                              ; preds = %314, %248, %246
  %.pn84.pn.pn = phi { ptr, i32 } [ %.pn84.pn, %314 ], [ %249, %248 ], [ %247, %246 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %316

316:                                              ; preds = %315, %244
  %.pn84.pn.pn.pn = phi { ptr, i32 } [ %.pn84.pn.pn, %315 ], [ %245, %244 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  br label %319

317:                                              ; preds = %207, %309
  %318 = add nuw nsw i32 %.0, 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  br label %190

319:                                              ; preds = %316, %215
  %.pn84.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn84.pn.pn.pn, %316 ], [ %216, %215 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  br label %321

.loopexit:                                        ; preds = %196, %.thread
  %320 = call i32 @fclose(ptr noundef %189)
  call void @_ZNSt6vectorI11strvcfentrySaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %6) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #8
  ret void

321:                                              ; preds = %213, %319, %95, %110, %168, %147, %56, %46, %36
  %.pn93.pn = phi { ptr, i32 } [ %57, %56 ], [ %37, %36 ], [ %.pn, %46 ], [ %111, %110 ], [ %96, %95 ], [ %148, %147 ], [ %169, %168 ], [ %.pn84.pn.pn.pn.pn, %319 ], [ %214, %213 ]
  call void @_ZNSt6vectorI11strvcfentrySaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %6) #8
  br label %322

322:                                              ; preds = %321, %34
  %.pn93.pn.pn = phi { ptr, i32 } [ %.pn93.pn, %321 ], [ %35, %34 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #8
  resume { ptr, i32 } %.pn93.pn.pn
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #3 = { 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 #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #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, !16, i64 52}
!6 = !{!"_ZTS9Parameter", !7, i64 0, !13, i64 32, !14, i64 40, !15, i64 44, !15, i64 45, !15, i64 46, !14, i64 48, !16, i64 52, !14, i64 56}
!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 = !{!"double", !10, i64 0}
!14 = !{!"int", !10, i64 0}
!15 = !{!"bool", !10, i64 0}
!16 = !{!"float", !10, i64 0}
!17 = !{!14, !14, i64 0}
!18 = !{!19, !14, i64 32}
!19 = !{!"_ZTS11strvcfentry", !7, i64 0, !20, i64 32, !20, i64 72, !21, i64 112, !22, i64 120, !14, i64 168, !14, i64 172, !30, i64 176, !34, i64 200, !35, i64 204, !7, i64 216, !14, i64 248, !7, i64 256, !13, i64 288, !7, i64 296, !14, i64 328, !36, i64 336, !35, i64 400, !35, i64 408, !14, i64 416}
!20 = !{!"_ZTS13strcoordinate", !14, i64 0, !7, i64 8}
!21 = !{!"short", !10, i64 0}
!22 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !23, i64 0}
!23 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !24, i64 0}
!24 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !25, i64 0, !27, i64 8}
!25 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !26, i64 0}
!26 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!27 = !{!"_ZTSSt15_Rb_tree_header", !28, i64 0, !12, i64 32}
!28 = !{!"_ZTSSt18_Rb_tree_node_base", !29, i64 0, !9, i64 8, !9, i64 16, !9, i64 24}
!29 = !{!"_ZTSSt14_Rb_tree_color", !10, i64 0}
!30 = !{!"_ZTSSt6vectorIiSaIiEE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!34 = !{!"_ZTSSt4pairIbbE", !15, i64 0, !15, i64 1}
!35 = !{!"_ZTSSt4pairIiiE", !14, i64 0, !14, i64 4}
!36 = !{!"_ZTSSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E", !7, i64 0, !7, i64 32}
!37 = !{!19, !14, i64 72}
!38 = !{!19, !21, i64 112}
!39 = !{!10, !10, i64 0}
!40 = distinct !{!40, !41}
!41 = !{!"llvm.loop.mustprogress"}
!42 = distinct !{!42, !41}
!43 = distinct !{!43, !41}
!44 = distinct !{!44, !41}
!45 = !{!46, !46, i64 0}
!46 = !{!"vtable pointer", !11, i64 0}


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