; LLVM IR from sp-nitech/SPTK :: src/main (vprod)

; 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::__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 }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.0 }
%union.anon.0 = type { i32 }
%"class.sptk::ProductAccumulation" = type <{ ptr, i32, i8, i8, [2 x i8] }>
%"class.sptk::ProductAccumulation::Buffer" = type { ptr, i32, %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.1" = type { i8 }

@.str = external hidden unnamed_addr constant [9 x i8], align 1
@ya_optarg = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [58 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@ya_optind = external global i32, align 4
@.str.6 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@.str.9 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [23 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i8, align 1
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca i32, align 4
  %29 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca ptr, align 8
  %33 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.std::basic_ifstream", align 8
  %37 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca ptr, align 8
  %41 = alloca %"class.sptk::ProductAccumulation", align 8
  %42 = alloca %"class.sptk::ProductAccumulation::Buffer", align 8
  %43 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::vector", align 8
  %47 = alloca %"class.std::allocator.1", align 1
  %48 = alloca %"class.std::vector", align 8
  %49 = alloca %"class.std::allocator.1", align 1
  %50 = alloca i32, align 4
  %51 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca i32, align 4
  %61 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  store i32 1, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  store i32 -1, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #7
  store i8 0, ptr %8, align 1, !tbaa !11
  br label %70

70:                                               ; preds = %206, %2
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  %71 = load i32, ptr %4, align 4, !tbaa !5
  %72 = load ptr, ptr %5, align 8, !tbaa !9
  %73 = call i32 @ya_getopt_long(i32 noundef %71, ptr noundef %72, ptr noundef @.str, ptr noundef null, ptr noundef null)
  store i32 %73, ptr %9, align 4, !tbaa !5
  %74 = load i32, ptr %9, align 4, !tbaa !5
  %75 = icmp eq i32 -1, %74
  br i1 %75, label %76, label %77

76:                                               ; preds = %70
  store i32 2, ptr %10, align 4
  br label %204

77:                                               ; preds = %70
  %78 = load i32, ptr %9, align 4, !tbaa !5
  switch i32 %78, label %202 [
    i32 108, label %79
    i32 109, label %118
    i32 116, label %161
    i32 99, label %200
    i32 104, label %201
  ]

79:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #7
  %80 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef %80, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %81 unwind label %94

81:                                               ; preds = %79
  %82 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef %6)
          to label %83 unwind label %98

83:                                               ; preds = %81
  br i1 %82, label %84, label %87

84:                                               ; preds = %83
  %85 = load i32, ptr %6, align 4, !tbaa !5
  %86 = icmp sle i32 %85, 0
  br label %87

87:                                               ; preds = %84, %83
  %88 = phi i1 [ true, %83 ], [ %86, %84 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  br i1 %88, label %89, label %117

89:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 376, ptr %15) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %15)
  %90 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.1)
          to label %91 unwind label %103

91:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %92 unwind label %107

92:                                               ; preds = %91
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(112) %15)
          to label %93 unwind label %111

93:                                               ; preds = %92
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %15) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %15) #7
  br label %204

94:                                               ; preds = %79
  %95 = landingpad { ptr, i32 }
          cleanup
  %96 = extractvalue { ptr, i32 } %95, 0
  store ptr %96, ptr %13, align 8
  %97 = extractvalue { ptr, i32 } %95, 1
  store i32 %97, ptr %14, align 4
  br label %102

98:                                               ; preds = %81
  %99 = landingpad { ptr, i32 }
          cleanup
  %100 = extractvalue { ptr, i32 } %99, 0
  store ptr %100, ptr %13, align 8
  %101 = extractvalue { ptr, i32 } %99, 1
  store i32 %101, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %102

102:                                              ; preds = %98, %94
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  br label %207

103:                                              ; preds = %89
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %13, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %14, align 4
  br label %116

107:                                              ; preds = %91
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %13, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %14, align 4
  br label %115

111:                                              ; preds = %92
  %112 = landingpad { ptr, i32 }
          cleanup
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %13, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %115

115:                                              ; preds = %111, %107
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #7
  br label %116

116:                                              ; preds = %115, %103
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %15) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %15) #7
  br label %207

117:                                              ; preds = %87
  br label %203

118:                                              ; preds = %77
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #7
  %119 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef %119, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %120 unwind label %135

120:                                              ; preds = %118
  %121 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef %6)
          to label %122 unwind label %139

122:                                              ; preds = %120
  br i1 %121, label %123, label %126

123:                                              ; preds = %122
  %124 = load i32, ptr %6, align 4, !tbaa !5
  %125 = icmp slt i32 %124, 0
  br label %126

126:                                              ; preds = %123, %122
  %127 = phi i1 [ true, %122 ], [ %125, %123 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  br i1 %127, label %128, label %158

128:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 376, ptr %20) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %20)
  %129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef @.str.3)
          to label %130 unwind label %144

130:                                              ; preds = %128
  %131 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef @.str.4)
          to label %132 unwind label %144

132:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %133 unwind label %148

133:                                              ; preds = %132
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(112) %20)
          to label %134 unwind label %152

134:                                              ; preds = %133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %20) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %20) #7
  br label %204

135:                                              ; preds = %118
  %136 = landingpad { ptr, i32 }
          cleanup
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %13, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %14, align 4
  br label %143

139:                                              ; preds = %120
  %140 = landingpad { ptr, i32 }
          cleanup
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %13, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %143

143:                                              ; preds = %139, %135
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  br label %207

144:                                              ; preds = %130, %128
  %145 = landingpad { ptr, i32 }
          cleanup
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %13, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %14, align 4
  br label %157

148:                                              ; preds = %132
  %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
  br label %156

152:                                              ; preds = %133
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %156

156:                                              ; preds = %152, %148
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #7
  br label %157

157:                                              ; preds = %156, %144
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %20) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %20) #7
  br label %207

158:                                              ; preds = %126
  %159 = load i32, ptr %6, align 4, !tbaa !5
  %160 = add nsw i32 %159, 1
  store i32 %160, ptr %6, align 4, !tbaa !5
  br label %203

161:                                              ; preds = %77
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #7
  %162 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef %162, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %163 unwind label %176

163:                                              ; preds = %161
  %164 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef %7)
          to label %165 unwind label %180

165:                                              ; preds = %163
  br i1 %164, label %166, label %169

166:                                              ; preds = %165
  %167 = load i32, ptr %7, align 4, !tbaa !5
  %168 = icmp sle i32 %167, 0
  br label %169

169:                                              ; preds = %166, %165
  %170 = phi i1 [ true, %165 ], [ %168, %166 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  br i1 %170, label %171, label %199

171:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 376, ptr %25) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %25)
  %172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef @.str.5)
          to label %173 unwind label %185

173:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %174 unwind label %189

174:                                              ; preds = %173
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(112) %25)
          to label %175 unwind label %193

175:                                              ; preds = %174
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %25) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %25) #7
  br label %204

176:                                              ; preds = %161
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %13, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %14, align 4
  br label %184

180:                                              ; preds = %163
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %13, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %184

184:                                              ; preds = %180, %176
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  br label %207

185:                                              ; preds = %171
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %13, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %14, align 4
  br label %198

189:                                              ; preds = %173
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %13, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %14, align 4
  br label %197

193:                                              ; preds = %174
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %13, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %197

197:                                              ; preds = %193, %189
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  br label %198

198:                                              ; preds = %197, %185
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %25) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %25) #7
  br label %207

199:                                              ; preds = %169
  br label %203

200:                                              ; preds = %77
  store i8 1, ptr %8, align 1, !tbaa !11
  br label %203

201:                                              ; preds = %77
  call void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef @_ZSt4cout)
  store i32 0, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %204

202:                                              ; preds = %77
  call void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef @_ZSt4cerr)
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %204

203:                                              ; preds = %200, %199, %158, %117
  store i32 0, ptr %10, align 4
  br label %204

204:                                              ; preds = %203, %202, %201, %175, %134, %93, %76
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  %205 = load i32, ptr %10, align 4
  switch i32 %205, label %611 [
    i32 0, label %206
    i32 2, label %208
  ]

206:                                              ; preds = %204
  br label %70, !llvm.loop !13

207:                                              ; preds = %198, %184, %157, %143, %116, %102
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %613

208:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  %209 = load i32, ptr %4, align 4, !tbaa !5
  %210 = load i32, ptr @ya_optind, align 4, !tbaa !5
  %211 = sub nsw i32 %209, %210
  store i32 %211, ptr %28, align 4, !tbaa !5
  %212 = load i32, ptr %28, align 4, !tbaa !5
  %213 = icmp slt i32 1, %212
  br i1 %213, label %214, label %233

214:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 376, ptr %29) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %29)
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef @.str.6)
          to label %216 unwind label %219

216:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %217 unwind label %223

217:                                              ; preds = %216
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(112) %29)
          to label %218 unwind label %227

218:                                              ; preds = %217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %29) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %29) #7
  br label %609

219:                                              ; preds = %214
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %13, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %14, align 4
  br label %232

223:                                              ; preds = %216
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %13, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %14, align 4
  br label %231

227:                                              ; preds = %217
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %13, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %231

231:                                              ; preds = %227, %223
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  br label %232

232:                                              ; preds = %231, %219
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %29) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %29) #7
  br label %610

233:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %234 = load i32, ptr %28, align 4, !tbaa !5
  %235 = icmp eq i32 0, %234
  br i1 %235, label %236, label %237

236:                                              ; preds = %233
  br label %243

237:                                              ; preds = %233
  %238 = load ptr, ptr %5, align 8, !tbaa !9
  %239 = load i32, ptr @ya_optind, align 4, !tbaa !5
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds ptr, ptr %238, i64 %240
  %242 = load ptr, ptr %241, align 8, !tbaa !9
  br label %243

243:                                              ; preds = %237, %236
  %244 = phi ptr [ null, %236 ], [ %242, %237 ]
  store ptr %244, ptr %32, align 8, !tbaa !9
  %245 = call noundef zeroext i1 @_ZN4sptk13SetBinaryModeEv()
  br i1 %245, label %265, label %246

246:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 376, ptr %33) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %33)
  %247 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef @.str.7)
          to label %248 unwind label %251

248:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %249 unwind label %255

249:                                              ; preds = %248
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(112) %33)
          to label %250 unwind label %259

250:                                              ; preds = %249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %33) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %33) #7
  br label %607

251:                                              ; preds = %246
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  store ptr %253, ptr %13, align 8
  %254 = extractvalue { ptr, i32 } %252, 1
  store i32 %254, ptr %14, align 4
  br label %264

255:                                              ; preds = %248
  %256 = landingpad { ptr, i32 }
          cleanup
  %257 = extractvalue { ptr, i32 } %256, 0
  store ptr %257, ptr %13, align 8
  %258 = extractvalue { ptr, i32 } %256, 1
  store i32 %258, ptr %14, align 4
  br label %263

259:                                              ; preds = %249
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %13, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %263

263:                                              ; preds = %259, %255
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  br label %264

264:                                              ; preds = %263, %251
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %33) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %33) #7
  br label %608

265:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 520, ptr %36) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(256) %36)
  %266 = load ptr, ptr %32, align 8, !tbaa !9
  %267 = icmp ne ptr null, %266
  br i1 %267, label %268, label %312

268:                                              ; preds = %265
  %269 = load ptr, ptr %32, align 8, !tbaa !9
  %270 = invoke noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef 8, i32 noundef 4)
          to label %271 unwind label %288

271:                                              ; preds = %268
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %36, ptr noundef %269, i32 noundef %270)
          to label %272 unwind label %288

272:                                              ; preds = %271
  %273 = load ptr, ptr %36, align 8, !tbaa !15
  %274 = getelementptr i8, ptr %273, i64 -24
  %275 = load i64, ptr %274, align 8
  %276 = getelementptr inbounds i8, ptr %36, i64 %275
  %277 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv(ptr noundef nonnull align 8 dereferenceable(264) %276)
          to label %278 unwind label %288

278:                                              ; preds = %272
  br i1 %277, label %279, label %311

279:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 376, ptr %37) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %37)
          to label %280 unwind label %292

280:                                              ; preds = %279
  %281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef @.str.8)
          to label %282 unwind label %296

282:                                              ; preds = %280
  %283 = load ptr, ptr %32, align 8, !tbaa !9
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %281, ptr noundef %283)
          to label %285 unwind label %296

285:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %286 unwind label %300

286:                                              ; preds = %285
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(112) %37)
          to label %287 unwind label %304

287:                                              ; preds = %286
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %37) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %37) #7
  br label %605

288:                                              ; preds = %272, %271, %268
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %13, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %14, align 4
  br label %606

292:                                              ; preds = %279
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %13, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %14, align 4
  br label %310

296:                                              ; preds = %282, %280
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %13, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %14, align 4
  br label %309

300:                                              ; preds = %285
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %13, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %14, align 4
  br label %308

304:                                              ; preds = %286
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %13, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %308

308:                                              ; preds = %304, %300
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  br label %309

309:                                              ; preds = %308, %296
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %37) #7
  br label %310

310:                                              ; preds = %309, %292
  call void @llvm.lifetime.end.p0(i64 376, ptr %37) #7
  br label %606

311:                                              ; preds = %278
  br label %312

312:                                              ; preds = %311, %265
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %313 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %36)
          to label %314 unwind label %331

314:                                              ; preds = %312
  br i1 %313, label %315, label %316

315:                                              ; preds = %314
  br label %317

316:                                              ; preds = %314
  br label %317

317:                                              ; preds = %316, %315
  %318 = phi ptr [ %36, %315 ], [ @_ZSt3cin, %316 ]
  store ptr %318, ptr %40, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #7
  %319 = load i32, ptr %6, align 4, !tbaa !5
  %320 = sub nsw i32 %319, 1
  invoke void @_ZN4sptk19ProductAccumulationC1Eib(ptr noundef nonnull align 8 dereferenceable(14) %41, i32 noundef %320, i1 noundef zeroext false)
          to label %321 unwind label %335

321:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 40, ptr %42) #7
  invoke void @_ZN4sptk19ProductAccumulation6BufferC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %42)
          to label %322 unwind label %339

322:                                              ; preds = %321
  %323 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation7IsValidEv(ptr noundef nonnull align 8 dereferenceable(14) %41)
          to label %324 unwind label %343

324:                                              ; preds = %322
  br i1 %323, label %366, label %325

325:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 376, ptr %43) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %43)
          to label %326 unwind label %347

326:                                              ; preds = %325
  %327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef @.str.9)
          to label %328 unwind label %351

328:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %329 unwind label %355

329:                                              ; preds = %328
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(112) %43)
          to label %330 unwind label %359

330:                                              ; preds = %329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %43) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %43) #7
  br label %600

331:                                              ; preds = %312
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %13, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %14, align 4
  br label %604

335:                                              ; preds = %317
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %13, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %14, align 4
  br label %603

339:                                              ; preds = %321
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %13, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %14, align 4
  br label %602

343:                                              ; preds = %322
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %13, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %14, align 4
  br label %601

347:                                              ; preds = %325
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %13, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %14, align 4
  br label %365

351:                                              ; preds = %326
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %13, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %14, align 4
  br label %364

355:                                              ; preds = %328
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %13, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %14, align 4
  br label %363

359:                                              ; preds = %329
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %363

363:                                              ; preds = %359, %355
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  br label %364

364:                                              ; preds = %363, %351
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %43) #7
  br label %365

365:                                              ; preds = %364, %347
  call void @llvm.lifetime.end.p0(i64 376, ptr %43) #7
  br label %601

366:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #7
  %367 = load i32, ptr %6, align 4, !tbaa !5
  %368 = sext i32 %367 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #7
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %368, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %369 unwind label %379

369:                                              ; preds = %366
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %48) #7
  %370 = load i32, ptr %6, align 4, !tbaa !5
  %371 = sext i32 %370 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #7
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %371, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %372 unwind label %383

372:                                              ; preds = %369
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  store i32 1, ptr %50, align 4, !tbaa !5
  br label %373

373:                                              ; preds = %491, %372
  %374 = load i32, ptr %6, align 4, !tbaa !5
  %375 = load ptr, ptr %40, align 8, !tbaa !9
  %376 = invoke noundef zeroext i1 @_ZN4sptk10ReadStreamIdEEbbiiiPSt6vectorIT_SaIS2_EEPSiPi(i1 noundef zeroext false, i32 noundef 0, i32 noundef 0, i32 noundef %374, ptr noundef %46, ptr noundef %375, ptr noundef null)
          to label %377 unwind label %387

377:                                              ; preds = %373
  br i1 %376, label %391, label %378

378:                                              ; preds = %377
  store i32 5, ptr %10, align 4
  br label %494

379:                                              ; preds = %366
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %13, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %14, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  br label %599

383:                                              ; preds = %369
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %13, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %14, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #7
  br label %598

387:                                              ; preds = %487, %455, %427, %391, %373
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %13, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %14, align 4
  br label %496

391:                                              ; preds = %377
  %392 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation3RunERKSt6vectorIdSaIdEEPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14) %41, ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef %42)
          to label %393 unwind label %387

393:                                              ; preds = %391
  br i1 %392, label %419, label %394

394:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 376, ptr %51) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %395 unwind label %400

395:                                              ; preds = %394
  %396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef @.str.10)
          to label %397 unwind label %404

397:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %398 unwind label %408

398:                                              ; preds = %397
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %399 unwind label %412

399:                                              ; preds = %398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %51) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %51) #7
  br label %494

400:                                              ; preds = %394
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %13, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %14, align 4
  br label %418

404:                                              ; preds = %395
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %13, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %14, align 4
  br label %417

408:                                              ; preds = %397
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %13, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %14, align 4
  br label %416

412:                                              ; preds = %398
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %13, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %416

416:                                              ; preds = %412, %408
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  br label %417

417:                                              ; preds = %416, %404
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %51) #7
  br label %418

418:                                              ; preds = %417, %400
  call void @llvm.lifetime.end.p0(i64 376, ptr %51) #7
  br label %496

419:                                              ; preds = %393
  %420 = load i32, ptr %7, align 4, !tbaa !5
  %421 = icmp ne i32 -1, %420
  br i1 %421, label %422, label %490

422:                                              ; preds = %419
  %423 = load i32, ptr %50, align 4, !tbaa !5
  %424 = load i32, ptr %7, align 4, !tbaa !5
  %425 = srem i32 %423, %424
  %426 = icmp eq i32 0, %425
  br i1 %426, label %427, label %490

427:                                              ; preds = %422
  %428 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetProductERKNS0_6BufferEPSt6vectorIdSaIdEE(ptr noundef nonnull align 8 dereferenceable(14) %41, ptr noundef nonnull align 8 dereferenceable(40) %42, ptr noundef %48)
          to label %429 unwind label %387

429:                                              ; preds = %427
  br i1 %428, label %455, label %430

430:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 376, ptr %54) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %54)
          to label %431 unwind label %436

431:                                              ; preds = %430
  %432 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef @.str.10)
          to label %433 unwind label %440

433:                                              ; preds = %431
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %434 unwind label %444

434:                                              ; preds = %433
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(112) %54)
          to label %435 unwind label %448

435:                                              ; preds = %434
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %54) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %54) #7
  br label %494

436:                                              ; preds = %430
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %13, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %14, align 4
  br label %454

440:                                              ; preds = %431
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %13, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %14, align 4
  br label %453

444:                                              ; preds = %433
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %13, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %14, align 4
  br label %452

448:                                              ; preds = %434
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %13, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %452

452:                                              ; preds = %448, %444
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  br label %453

453:                                              ; preds = %452, %440
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %54) #7
  br label %454

454:                                              ; preds = %453, %436
  call void @llvm.lifetime.end.p0(i64 376, ptr %54) #7
  br label %496

455:                                              ; preds = %429
  %456 = load i32, ptr %6, align 4, !tbaa !5
  %457 = invoke noundef zeroext i1 @_ZN4sptk11WriteStreamIdEEbiiRKSt6vectorIT_SaIS2_EEPSoPi(i32 noundef 0, i32 noundef %456, ptr noundef nonnull align 8 dereferenceable(24) %48, ptr noundef @_ZSt4cout, ptr noundef null)
          to label %458 unwind label %387

458:                                              ; preds = %455
  br i1 %457, label %484, label %459

459:                                              ; preds = %458
  call void @llvm.lifetime.start.p0(i64 376, ptr %57) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %57)
          to label %460 unwind label %465

460:                                              ; preds = %459
  %461 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef @.str.11)
          to label %462 unwind label %469

462:                                              ; preds = %460
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %463 unwind label %473

463:                                              ; preds = %462
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(112) %57)
          to label %464 unwind label %477

464:                                              ; preds = %463
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %57) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %57) #7
  br label %494

465:                                              ; preds = %459
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %13, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %14, align 4
  br label %483

469:                                              ; preds = %460
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %13, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %14, align 4
  br label %482

473:                                              ; preds = %462
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %13, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %14, align 4
  br label %481

477:                                              ; preds = %463
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %13, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %481

481:                                              ; preds = %477, %473
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #7
  br label %482

482:                                              ; preds = %481, %469
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %57) #7
  br label %483

483:                                              ; preds = %482, %465
  call void @llvm.lifetime.end.p0(i64 376, ptr %57) #7
  br label %496

484:                                              ; preds = %458
  %485 = load i8, ptr %8, align 1, !tbaa !11, !range !17, !noundef !18
  %486 = trunc i8 %485 to i1
  br i1 %486, label %489, label %487

487:                                              ; preds = %484
  invoke void @_ZNK4sptk19ProductAccumulation5ClearEPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14) %41, ptr noundef %42)
          to label %488 unwind label %387

488:                                              ; preds = %487
  br label %489

489:                                              ; preds = %488, %484
  br label %490

490:                                              ; preds = %489, %422, %419
  br label %491

491:                                              ; preds = %490
  %492 = load i32, ptr %50, align 4, !tbaa !5
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr %50, align 4, !tbaa !5
  br label %373, !llvm.loop !19

494:                                              ; preds = %464, %435, %399, %378
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  %495 = load i32, ptr %10, align 4
  switch i32 %495, label %596 [
    i32 5, label %497
  ]

496:                                              ; preds = %483, %454, %418, %387
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %597

497:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  %498 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetNumDataERKNS0_6BufferEPi(ptr noundef nonnull align 8 dereferenceable(14) %41, ptr noundef nonnull align 8 dereferenceable(40) %42, ptr noundef %60)
          to label %499 unwind label %506

499:                                              ; preds = %497
  br i1 %498, label %529, label %500

500:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 376, ptr %61) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %61)
          to label %501 unwind label %510

501:                                              ; preds = %500
  %502 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef @.str.10)
          to label %503 unwind label %514

503:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %504 unwind label %518

504:                                              ; preds = %503
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(112) %61)
          to label %505 unwind label %522

505:                                              ; preds = %504
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %61) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %61) #7
  br label %594

506:                                              ; preds = %563, %535, %497
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %13, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %14, align 4
  br label %595

510:                                              ; preds = %500
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %13, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %14, align 4
  br label %528

514:                                              ; preds = %501
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %13, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %14, align 4
  br label %527

518:                                              ; preds = %503
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %13, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %14, align 4
  br label %526

522:                                              ; preds = %504
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %13, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %526

526:                                              ; preds = %522, %518
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  br label %527

527:                                              ; preds = %526, %514
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %61) #7
  br label %528

528:                                              ; preds = %527, %510
  call void @llvm.lifetime.end.p0(i64 376, ptr %61) #7
  br label %595

529:                                              ; preds = %499
  %530 = load i32, ptr %7, align 4, !tbaa !5
  %531 = icmp eq i32 -1, %530
  br i1 %531, label %532, label %593

532:                                              ; preds = %529
  %533 = load i32, ptr %60, align 4, !tbaa !5
  %534 = icmp slt i32 0, %533
  br i1 %534, label %535, label %593

535:                                              ; preds = %532
  %536 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetProductERKNS0_6BufferEPSt6vectorIdSaIdEE(ptr noundef nonnull align 8 dereferenceable(14) %41, ptr noundef nonnull align 8 dereferenceable(40) %42, ptr noundef %48)
          to label %537 unwind label %506

537:                                              ; preds = %535
  br i1 %536, label %563, label %538

538:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 376, ptr %64) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %64)
          to label %539 unwind label %544

539:                                              ; preds = %538
  %540 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef @.str.12)
          to label %541 unwind label %548

541:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %542 unwind label %552

542:                                              ; preds = %541
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(112) %64)
          to label %543 unwind label %556

543:                                              ; preds = %542
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %64) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %64) #7
  br label %594

544:                                              ; preds = %538
  %545 = landingpad { ptr, i32 }
          cleanup
  %546 = extractvalue { ptr, i32 } %545, 0
  store ptr %546, ptr %13, align 8
  %547 = extractvalue { ptr, i32 } %545, 1
  store i32 %547, ptr %14, align 4
  br label %562

548:                                              ; preds = %539
  %549 = landingpad { ptr, i32 }
          cleanup
  %550 = extractvalue { ptr, i32 } %549, 0
  store ptr %550, ptr %13, align 8
  %551 = extractvalue { ptr, i32 } %549, 1
  store i32 %551, ptr %14, align 4
  br label %561

552:                                              ; preds = %541
  %553 = landingpad { ptr, i32 }
          cleanup
  %554 = extractvalue { ptr, i32 } %553, 0
  store ptr %554, ptr %13, align 8
  %555 = extractvalue { ptr, i32 } %553, 1
  store i32 %555, ptr %14, align 4
  br label %560

556:                                              ; preds = %542
  %557 = landingpad { ptr, i32 }
          cleanup
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %13, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %560

560:                                              ; preds = %556, %552
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  br label %561

561:                                              ; preds = %560, %548
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %64) #7
  br label %562

562:                                              ; preds = %561, %544
  call void @llvm.lifetime.end.p0(i64 376, ptr %64) #7
  br label %595

563:                                              ; preds = %537
  %564 = load i32, ptr %6, align 4, !tbaa !5
  %565 = invoke noundef zeroext i1 @_ZN4sptk11WriteStreamIdEEbiiRKSt6vectorIT_SaIS2_EEPSoPi(i32 noundef 0, i32 noundef %564, ptr noundef nonnull align 8 dereferenceable(24) %48, ptr noundef @_ZSt4cout, ptr noundef null)
          to label %566 unwind label %506

566:                                              ; preds = %563
  br i1 %565, label %592, label %567

567:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 376, ptr %67) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %67)
          to label %568 unwind label %573

568:                                              ; preds = %567
  %569 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef @.str.13)
          to label %570 unwind label %577

570:                                              ; preds = %568
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %571 unwind label %581

571:                                              ; preds = %570
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(112) %67)
          to label %572 unwind label %585

572:                                              ; preds = %571
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %67) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %67) #7
  br label %594

573:                                              ; preds = %567
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %13, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %14, align 4
  br label %591

577:                                              ; preds = %568
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %13, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %14, align 4
  br label %590

581:                                              ; preds = %570
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %13, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %14, align 4
  br label %589

585:                                              ; preds = %571
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %13, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %589

589:                                              ; preds = %585, %581
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  br label %590

590:                                              ; preds = %589, %577
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %67) #7
  br label %591

591:                                              ; preds = %590, %573
  call void @llvm.lifetime.end.p0(i64 376, ptr %67) #7
  br label %595

592:                                              ; preds = %566
  br label %593

593:                                              ; preds = %592, %532, %529
  store i32 0, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %594

594:                                              ; preds = %593, %572, %543, %505
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br label %596

595:                                              ; preds = %591, %562, %528, %506
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br label %597

596:                                              ; preds = %594, %494
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #7
  br label %600

597:                                              ; preds = %595, %496
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #7
  br label %598

598:                                              ; preds = %597, %383
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #7
  br label %599

599:                                              ; preds = %598, %379
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #7
  br label %601

600:                                              ; preds = %596, %330
  call void @_ZN4sptk19ProductAccumulation6BufferD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %42) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #7
  call void @_ZN4sptk19ProductAccumulationD2Ev(ptr noundef nonnull align 8 dereferenceable(14) %41) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %605

601:                                              ; preds = %599, %365, %343
  call void @_ZN4sptk19ProductAccumulation6BufferD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %42) #7
  br label %602

602:                                              ; preds = %601, %339
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #7
  call void @_ZN4sptk19ProductAccumulationD2Ev(ptr noundef nonnull align 8 dereferenceable(14) %41) #7
  br label %603

603:                                              ; preds = %602, %335
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #7
  br label %604

604:                                              ; preds = %603, %331
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %606

605:                                              ; preds = %600, %287
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %36) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr %36) #7
  br label %607

606:                                              ; preds = %604, %310, %288
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %36) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr %36) #7
  br label %608

607:                                              ; preds = %605, %250
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %609

608:                                              ; preds = %606, %264
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %610

609:                                              ; preds = %607, %218
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %611

610:                                              ; preds = %608, %232
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %613

611:                                              ; preds = %609, %204
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  %612 = load i32, ptr %3, align 4
  ret i32 %612

613:                                              ; preds = %610, %207
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %614

614:                                              ; preds = %613
  %615 = load ptr, ptr %13, align 8
  %616 = load i32, ptr %14, align 4
  %617 = insertvalue { ptr, i32 } poison, ptr %615, 0
  %618 = insertvalue { ptr, i32 } %617, i32 %616, 1
  resume { ptr, i32 } %618
}

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

declare i32 @ya_getopt_long(i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #2

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #4 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) #5

declare void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112)) #2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef) #4

declare noundef zeroext i1 @_ZN4sptk13SetBinaryModeEv() #2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(256)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef, i32 noundef) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef, i32 noundef) #6

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

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

declare void @_ZN4sptk19ProductAccumulationC1Eib(ptr noundef nonnull align 8 dereferenceable(14), i32 noundef, i1 noundef zeroext) unnamed_addr #2

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

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

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

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

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

declare noundef zeroext i1 @_ZN4sptk10ReadStreamIdEEbbiiiPSt6vectorIT_SaIS2_EEPSiPi(i1 noundef zeroext, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare noundef zeroext i1 @_ZNK4sptk19ProductAccumulation3RunERKSt6vectorIdSaIdEEPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) #2

declare noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetProductERKNS0_6BufferEPSt6vectorIdSaIdEE(ptr noundef nonnull align 8 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) #2

declare noundef zeroext i1 @_ZN4sptk11WriteStreamIdEEbiiRKSt6vectorIT_SaIS2_EEPSoPi(i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef) #2

declare void @_ZNK4sptk19ProductAccumulation5ClearEPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14), ptr noundef) #2

declare noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetNumDataERKNS0_6BufferEPi(ptr noundef nonnull align 8 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) #2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!16, !16, i64 0}
!16 = !{!"vtable pointer", !8, i64 0}
!17 = !{i8 0, i8 2}
!18 = !{}
!19 = distinct !{!19, !14}


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

%"class.std::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::__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 }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.0 }
%union.anon.0 = type { i32 }
%"class.sptk::ProductAccumulation" = type <{ ptr, i32, i8, i8, [2 x i8] }>
%"class.sptk::ProductAccumulation::Buffer" = type { ptr, i32, %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.1" = type { i8 }

@.str = external hidden unnamed_addr constant [9 x i8], align 1
@ya_optarg = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [58 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@ya_optind = external local_unnamed_addr global i32, align 4
@.str.6 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@.str.9 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [23 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 0, 2) i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.std::basic_ifstream", align 8
  %27 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca %"class.sptk::ProductAccumulation", align 8
  %31 = alloca %"class.sptk::ProductAccumulation::Buffer", align 8
  %32 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca %"class.std::vector", align 8
  %36 = alloca %"class.std::allocator.1", align 1
  %37 = alloca %"class.std::vector", align 8
  %38 = alloca %"class.std::allocator.1", align 1
  %39 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca i32, align 4
  %49 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator", align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #7
  store i32 1, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #7
  store i32 -1, ptr %4, align 4, !tbaa !5
  br label %.outer

.outer:                                           ; preds = %58, %2
  %.021.ph = phi i1 [ false, %2 ], [ true, %58 ]
  br label %58

58:                                               ; preds = %.backedge, %.outer
  %59 = call i32 @ya_getopt_long(i32 noundef %0, ptr noundef %1, ptr noundef nonnull @.str, ptr noundef null, ptr noundef null)
  switch i32 %59, label %141 [
    i32 -1, label %142
    i32 108, label %60
    i32 109, label %85
    i32 116, label %115
    i32 99, label %.outer
    i32 104, label %140
  ]

60:                                               ; preds = %58
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #7
  %61 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef %61, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %62 unwind label %72

62:                                               ; preds = %60
  %63 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull %3)
          to label %64 unwind label %74

64:                                               ; preds = %62
  %65 = load i32, ptr %3, align 4
  %66 = icmp sgt i32 %65, 0
  %.not102 = select i1 %63, i1 %66, i1 false
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  br i1 %.not102, label %.backedge, label %67

67:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %7) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %7)
  %68 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull @.str.1)
          to label %69 unwind label %77

69:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %70 unwind label %79

70:                                               ; preds = %69
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(112) %7)
          to label %71 unwind label %81

71:                                               ; preds = %70
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %7) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %7) #7
  br label %.thread

72:                                               ; preds = %60
  %73 = landingpad { ptr, i32 }
          cleanup
  br label %76

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

76:                                               ; preds = %74, %72
  %.pn100 = phi { ptr, i32 } [ %75, %74 ], [ %73, %72 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  br label %417

77:                                               ; preds = %67
  %78 = landingpad { ptr, i32 }
          cleanup
  br label %84

79:                                               ; preds = %69
  %80 = landingpad { ptr, i32 }
          cleanup
  br label %83

81:                                               ; preds = %70
  %82 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  br label %83

83:                                               ; preds = %81, %79
  %.pn103 = phi { ptr, i32 } [ %82, %81 ], [ %80, %79 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br label %84

84:                                               ; preds = %83, %77
  %.pn103.pn = phi { ptr, i32 } [ %.pn103, %83 ], [ %78, %77 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %7) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %7) #7
  br label %417

85:                                               ; preds = %58
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  %86 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %86, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %87 unwind label %99

87:                                               ; preds = %85
  %88 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull %3)
          to label %89 unwind label %101

89:                                               ; preds = %87
  %90 = load i32, ptr %3, align 4
  %91 = icmp sgt i32 %90, -1
  %.not96 = select i1 %88, i1 %91, i1 false
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  br i1 %.not96, label %112, label %92

92:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %12) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %12)
  %93 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.3)
          to label %94 unwind label %104

94:                                               ; preds = %92
  %95 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull @.str.4)
          to label %96 unwind label %104

96:                                               ; preds = %94
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %97 unwind label %106

97:                                               ; preds = %96
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(112) %12)
          to label %98 unwind label %108

98:                                               ; preds = %97
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %12) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %12) #7
  br label %.thread

99:                                               ; preds = %85
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %103

101:                                              ; preds = %87
  %102 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %103

103:                                              ; preds = %101, %99
  %.pn94 = phi { ptr, i32 } [ %102, %101 ], [ %100, %99 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  br label %417

104:                                              ; preds = %94, %92
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %111

106:                                              ; preds = %96
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %110

108:                                              ; preds = %97
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %110

110:                                              ; preds = %108, %106
  %.pn97 = phi { ptr, i32 } [ %109, %108 ], [ %107, %106 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br label %111

111:                                              ; preds = %110, %104
  %.pn97.pn = phi { ptr, i32 } [ %.pn97, %110 ], [ %105, %104 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %12) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %12) #7
  br label %417

112:                                              ; preds = %89
  %113 = load i32, ptr %3, align 4, !tbaa !5
  %114 = add nsw i32 %113, 1
  store i32 %114, ptr %3, align 4, !tbaa !5
  br label %.backedge

.backedge:                                        ; preds = %112, %64, %119
  br label %58

115:                                              ; preds = %58
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  %116 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %116, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %117 unwind label %127

117:                                              ; preds = %115
  %118 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull %4)
          to label %119 unwind label %129

119:                                              ; preds = %117
  %120 = load i32, ptr %4, align 4
  %121 = icmp sgt i32 %120, 0
  %.not90 = select i1 %118, i1 %121, i1 false
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br i1 %.not90, label %.backedge, label %122

122:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %17) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %17)
  %123 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull @.str.5)
          to label %124 unwind label %132

124:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %125 unwind label %134

125:                                              ; preds = %124
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(112) %17)
          to label %126 unwind label %136

126:                                              ; preds = %125
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %17) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %17) #7
  br label %.thread

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

129:                                              ; preds = %117
  %130 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %131

131:                                              ; preds = %129, %127
  %.pn = phi { ptr, i32 } [ %130, %129 ], [ %128, %127 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %417

132:                                              ; preds = %122
  %133 = landingpad { ptr, i32 }
          cleanup
  br label %139

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

136:                                              ; preds = %125
  %137 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %138

138:                                              ; preds = %136, %134
  %.pn91 = phi { ptr, i32 } [ %137, %136 ], [ %135, %134 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %139

139:                                              ; preds = %138, %132
  %.pn91.pn = phi { ptr, i32 } [ %.pn91, %138 ], [ %133, %132 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %17) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %17) #7
  br label %417

140:                                              ; preds = %58
  call void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef nonnull @_ZSt4cout)
  br label %.thread

141:                                              ; preds = %58
  call void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef nonnull @_ZSt4cerr)
  br label %.thread

142:                                              ; preds = %58
  %143 = load i32, ptr @ya_optind, align 4, !tbaa !5
  %144 = sub nsw i32 %0, %143
  %145 = icmp sgt i32 %144, 1
  br i1 %145, label %146, label %159

146:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %20) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %20)
  %147 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull @.str.6)
          to label %148 unwind label %151

148:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %149 unwind label %153

149:                                              ; preds = %148
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(112) %20)
          to label %150 unwind label %155

150:                                              ; preds = %149
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %20) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %20) #7
  br label %.thread

151:                                              ; preds = %146
  %152 = landingpad { ptr, i32 }
          cleanup
  br label %158

153:                                              ; preds = %148
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %157

155:                                              ; preds = %149
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %157

157:                                              ; preds = %155, %153
  %.pn153 = phi { ptr, i32 } [ %156, %155 ], [ %154, %153 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %158

158:                                              ; preds = %157, %151
  %.pn153.pn = phi { ptr, i32 } [ %.pn153, %157 ], [ %152, %151 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %20) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %20) #7
  br label %417

159:                                              ; preds = %142
  %160 = icmp eq i32 %143, %0
  br i1 %160, label %165, label %161

161:                                              ; preds = %159
  %162 = sext i32 %143 to i64
  %163 = getelementptr inbounds ptr, ptr %1, i64 %162
  %164 = load ptr, ptr %163, align 8, !tbaa !9
  br label %165

165:                                              ; preds = %159, %161
  %166 = phi ptr [ %164, %161 ], [ null, %159 ]
  %167 = call noundef zeroext i1 @_ZN4sptk13SetBinaryModeEv()
  br i1 %167, label %181, label %168

168:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %23) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %23)
  %169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.7)
          to label %170 unwind label %173

170:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %171 unwind label %175

171:                                              ; preds = %170
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(112) %23)
          to label %172 unwind label %177

172:                                              ; preds = %171
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %23) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %23) #7
  br label %.thread

173:                                              ; preds = %168
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %180

175:                                              ; preds = %170
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %179

177:                                              ; preds = %171
  %178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %179

179:                                              ; preds = %177, %175
  %.pn107 = phi { ptr, i32 } [ %178, %177 ], [ %176, %175 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %180

180:                                              ; preds = %179, %173
  %.pn107.pn = phi { ptr, i32 } [ %.pn107, %179 ], [ %174, %173 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %23) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %23) #7
  br label %417

181:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %26) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(256) %26)
  %.not = icmp eq ptr %166, null
  br i1 %.not, label %212, label %182

182:                                              ; preds = %181
  %183 = call noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef 8, i32 noundef 4)
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %26, ptr noundef nonnull %166, i32 noundef %183)
          to label %184 unwind label %199

184:                                              ; preds = %182
  %185 = load ptr, ptr %26, align 8, !tbaa !11
  %186 = getelementptr i8, ptr %185, i64 -24
  %187 = load i64, ptr %186, align 8
  %188 = getelementptr inbounds i8, ptr %26, i64 %187
  %189 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv(ptr noundef nonnull align 8 dereferenceable(264) %188)
          to label %190 unwind label %199

190:                                              ; preds = %184
  br i1 %189, label %191, label %212

191:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %27) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %27)
          to label %192 unwind label %201

192:                                              ; preds = %191
  %193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull @.str.8)
          to label %194 unwind label %203

194:                                              ; preds = %192
  %195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef nonnull %166)
          to label %196 unwind label %203

196:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %197 unwind label %205

197:                                              ; preds = %196
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(112) %27)
          to label %198 unwind label %207

198:                                              ; preds = %197
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %27) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %27) #7
  br label %415

199:                                              ; preds = %184, %182
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %416

201:                                              ; preds = %191
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %211

203:                                              ; preds = %194, %192
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %210

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

207:                                              ; preds = %197
  %208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %209

209:                                              ; preds = %207, %205
  %.pn147 = phi { ptr, i32 } [ %208, %207 ], [ %206, %205 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  br label %210

210:                                              ; preds = %209, %203
  %.pn147.pn = phi { ptr, i32 } [ %.pn147, %209 ], [ %204, %203 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %27) #7
  br label %211

211:                                              ; preds = %210, %201
  %.pn147.pn.pn = phi { ptr, i32 } [ %.pn147.pn, %210 ], [ %202, %201 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %27) #7
  br label %416

212:                                              ; preds = %190, %181
  %213 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %26)
  %214 = select i1 %213, ptr %26, ptr @_ZSt3cin
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #7
  %215 = load i32, ptr %3, align 4, !tbaa !5
  %216 = add nsw i32 %215, -1
  invoke void @_ZN4sptk19ProductAccumulationC1Eib(ptr noundef nonnull align 8 dereferenceable(14) %30, i32 noundef %216, i1 noundef zeroext false)
          to label %217 unwind label %225

217:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %31) #7
  call void @_ZN4sptk19ProductAccumulation6BufferC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31)
  %218 = call noundef zeroext i1 @_ZNK4sptk19ProductAccumulation7IsValidEv(ptr noundef nonnull align 8 dereferenceable(14) %30)
  br i1 %218, label %238, label %219

219:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %32) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %32)
          to label %220 unwind label %227

220:                                              ; preds = %219
  %221 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull @.str.9)
          to label %222 unwind label %229

222:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %223 unwind label %231

223:                                              ; preds = %222
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(112) %32)
          to label %224 unwind label %233

224:                                              ; preds = %223
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %32) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %32) #7
  br label %412

225:                                              ; preds = %212
  %226 = landingpad { ptr, i32 }
          cleanup
  br label %414

227:                                              ; preds = %219
  %228 = landingpad { ptr, i32 }
          cleanup
  br label %237

229:                                              ; preds = %220
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %236

231:                                              ; preds = %222
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %235

233:                                              ; preds = %223
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %235

235:                                              ; preds = %233, %231
  %.pn110 = phi { ptr, i32 } [ %234, %233 ], [ %232, %231 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  br label %236

236:                                              ; preds = %235, %229
  %.pn110.pn = phi { ptr, i32 } [ %.pn110, %235 ], [ %230, %229 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %32) #7
  br label %237

237:                                              ; preds = %236, %227
  %.pn110.pn.pn = phi { ptr, i32 } [ %.pn110.pn, %236 ], [ %228, %227 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %32) #7
  br label %413

238:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #7
  %239 = load i32, ptr %3, align 4, !tbaa !5
  %240 = sext i32 %239 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #7
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %240, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %241 unwind label %269

241:                                              ; preds = %238
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #7
  %242 = load i32, ptr %3, align 4, !tbaa !5
  %243 = sext i32 %242 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #7
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %243, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %244 unwind label %271

244:                                              ; preds = %241
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  br i1 %.021.ph, label %.split.us, label %.split

.split.us:                                        ; preds = %244, %263
  %.0.us = phi i32 [ %264, %263 ], [ 1, %244 ]
  %245 = load i32, ptr %3, align 4, !tbaa !5
  %246 = invoke noundef zeroext i1 @_ZN4sptk10ReadStreamIdEEbbiiiPSt6vectorIT_SaIS2_EEPSiPi(i1 noundef zeroext false, i32 noundef 0, i32 noundef 0, i32 noundef %245, ptr noundef nonnull %35, ptr noundef nonnull %214, ptr noundef null)
          to label %247 unwind label %.split182.us

247:                                              ; preds = %.split.us
  br i1 %246, label %248, label %.split184.us

248:                                              ; preds = %247
  %249 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation3RunERKSt6vectorIdSaIdEEPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14) %30, ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull %31)
          to label %250 unwind label %.split182.us

250:                                              ; preds = %248
  br i1 %249, label %251, label %.split186.us

251:                                              ; preds = %250
  %252 = load i32, ptr %4, align 4, !tbaa !5
  %.not118.us = icmp eq i32 %252, -1
  br i1 %.not118.us, label %263, label %253

253:                                              ; preds = %251
  %254 = srem i32 %.0.us, %252
  %255 = icmp eq i32 %254, 0
  br i1 %255, label %256, label %263

256:                                              ; preds = %253
  %257 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetProductERKNS0_6BufferEPSt6vectorIdSaIdEE(ptr noundef nonnull align 8 dereferenceable(14) %30, ptr noundef nonnull align 8 dereferenceable(40) %31, ptr noundef nonnull %37)
          to label %258 unwind label %.split182.us

258:                                              ; preds = %256
  br i1 %257, label %259, label %.split188.us

259:                                              ; preds = %258
  %260 = load i32, ptr %3, align 4, !tbaa !5
  %261 = invoke noundef zeroext i1 @_ZN4sptk11WriteStreamIdEEbiiRKSt6vectorIT_SaIS2_EEPSoPi(i32 noundef 0, i32 noundef %260, ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull @_ZSt4cout, ptr noundef null)
          to label %262 unwind label %.split182.us

262:                                              ; preds = %259
  br i1 %261, label %263, label %.split190.us

263:                                              ; preds = %262, %253, %251
  %264 = add nuw nsw i32 %.0.us, 1
  br label %.split.us, !llvm.loop !13

.split182.us:                                     ; preds = %259, %256, %248, %.split.us
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %409

.split:                                           ; preds = %244, %338
  %.0 = phi i32 [ %339, %338 ], [ 1, %244 ]
  %266 = load i32, ptr %3, align 4, !tbaa !5
  %267 = invoke noundef zeroext i1 @_ZN4sptk10ReadStreamIdEEbbiiiPSt6vectorIT_SaIS2_EEPSiPi(i1 noundef zeroext false, i32 noundef 0, i32 noundef 0, i32 noundef %266, ptr noundef nonnull %35, ptr noundef nonnull %214, ptr noundef null)
          to label %268 unwind label %.split182

268:                                              ; preds = %.split
  br i1 %267, label %274, label %.split184.us

269:                                              ; preds = %238
  %270 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  br label %411

271:                                              ; preds = %241
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  br label %410

.split182:                                        ; preds = %337, %317, %298, %274, %.split
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %409

274:                                              ; preds = %268
  %275 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation3RunERKSt6vectorIdSaIdEEPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14) %30, ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull %31)
          to label %276 unwind label %.split182

276:                                              ; preds = %274
  br i1 %275, label %293, label %.split186.us

.split186.us:                                     ; preds = %276, %250
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %39) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %39)
          to label %277 unwind label %282

277:                                              ; preds = %.split186.us
  %278 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull @.str.10)
          to label %279 unwind label %284

279:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %280 unwind label %286

280:                                              ; preds = %279
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(112) %39)
          to label %281 unwind label %288

281:                                              ; preds = %280
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %39) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %39) #7
  br label %.thread168

282:                                              ; preds = %.split186.us
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %292

284:                                              ; preds = %277
  %285 = landingpad { ptr, i32 }
          cleanup
  br label %291

286:                                              ; preds = %279
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %290

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

290:                                              ; preds = %288, %286
  %.pn114 = phi { ptr, i32 } [ %289, %288 ], [ %287, %286 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  br label %291

291:                                              ; preds = %290, %284
  %.pn114.pn = phi { ptr, i32 } [ %.pn114, %290 ], [ %285, %284 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %39) #7
  br label %292

292:                                              ; preds = %291, %282
  %.pn114.pn.pn = phi { ptr, i32 } [ %.pn114.pn, %291 ], [ %283, %282 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %39) #7
  br label %409

293:                                              ; preds = %276
  %294 = load i32, ptr %4, align 4, !tbaa !5
  %.not118 = icmp eq i32 %294, -1
  br i1 %.not118, label %338, label %295

295:                                              ; preds = %293
  %296 = srem i32 %.0, %294
  %297 = icmp eq i32 %296, 0
  br i1 %297, label %298, label %338

298:                                              ; preds = %295
  %299 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetProductERKNS0_6BufferEPSt6vectorIdSaIdEE(ptr noundef nonnull align 8 dereferenceable(14) %30, ptr noundef nonnull align 8 dereferenceable(40) %31, ptr noundef nonnull %37)
          to label %300 unwind label %.split182

300:                                              ; preds = %298
  br i1 %299, label %317, label %.split188.us

.split188.us:                                     ; preds = %300, %258
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %42) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %42)
          to label %301 unwind label %306

301:                                              ; preds = %.split188.us
  %302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull @.str.10)
          to label %303 unwind label %308

303:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %304 unwind label %310

304:                                              ; preds = %303
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(112) %42)
          to label %305 unwind label %312

305:                                              ; preds = %304
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %42) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %42) #7
  br label %.thread168

306:                                              ; preds = %.split188.us
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %316

308:                                              ; preds = %301
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %315

310:                                              ; preds = %303
  %311 = landingpad { ptr, i32 }
          cleanup
  br label %314

312:                                              ; preds = %304
  %313 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %314

314:                                              ; preds = %312, %310
  %.pn119 = phi { ptr, i32 } [ %313, %312 ], [ %311, %310 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  br label %315

315:                                              ; preds = %314, %308
  %.pn119.pn = phi { ptr, i32 } [ %.pn119, %314 ], [ %309, %308 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %42) #7
  br label %316

316:                                              ; preds = %315, %306
  %.pn119.pn.pn = phi { ptr, i32 } [ %.pn119.pn, %315 ], [ %307, %306 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %42) #7
  br label %409

317:                                              ; preds = %300
  %318 = load i32, ptr %3, align 4, !tbaa !5
  %319 = invoke noundef zeroext i1 @_ZN4sptk11WriteStreamIdEEbiiRKSt6vectorIT_SaIS2_EEPSoPi(i32 noundef 0, i32 noundef %318, ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull @_ZSt4cout, ptr noundef null)
          to label %320 unwind label %.split182

320:                                              ; preds = %317
  br i1 %319, label %337, label %.split190.us

.split190.us:                                     ; preds = %320, %262
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %45) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %45)
          to label %321 unwind label %326

321:                                              ; preds = %.split190.us
  %322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull @.str.11)
          to label %323 unwind label %328

323:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %324 unwind label %330

324:                                              ; preds = %323
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(112) %45)
          to label %325 unwind label %332

325:                                              ; preds = %324
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %45) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %45) #7
  br label %.thread168

326:                                              ; preds = %.split190.us
  %327 = landingpad { ptr, i32 }
          cleanup
  br label %336

328:                                              ; preds = %321
  %329 = landingpad { ptr, i32 }
          cleanup
  br label %335

330:                                              ; preds = %323
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %334

332:                                              ; preds = %324
  %333 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %334

334:                                              ; preds = %332, %330
  %.pn123 = phi { ptr, i32 } [ %333, %332 ], [ %331, %330 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  br label %335

335:                                              ; preds = %334, %328
  %.pn123.pn = phi { ptr, i32 } [ %.pn123, %334 ], [ %329, %328 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %45) #7
  br label %336

336:                                              ; preds = %335, %326
  %.pn123.pn.pn = phi { ptr, i32 } [ %.pn123.pn, %335 ], [ %327, %326 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %45) #7
  br label %409

337:                                              ; preds = %320
  invoke void @_ZNK4sptk19ProductAccumulation5ClearEPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14) %30, ptr noundef nonnull %31)
          to label %338 unwind label %.split182

338:                                              ; preds = %293, %295, %337
  %339 = add nuw nsw i32 %.0, 1
  br label %.split, !llvm.loop !13

.split184.us:                                     ; preds = %268, %247
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #7
  %340 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetNumDataERKNS0_6BufferEPi(ptr noundef nonnull align 8 dereferenceable(14) %30, ptr noundef nonnull align 8 dereferenceable(40) %31, ptr noundef nonnull %48)
          to label %341 unwind label %348

341:                                              ; preds = %.split184.us
  br i1 %340, label %361, label %342

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %49) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %49)
          to label %343 unwind label %350

343:                                              ; preds = %342
  %344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull @.str.10)
          to label %345 unwind label %352

345:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %346 unwind label %354

346:                                              ; preds = %345
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(112) %49)
          to label %347 unwind label %356

347:                                              ; preds = %346
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %49) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %49) #7
  br label %407

348:                                              ; preds = %386, %366, %.split184.us
  %349 = landingpad { ptr, i32 }
          cleanup
  br label %408

350:                                              ; preds = %342
  %351 = landingpad { ptr, i32 }
          cleanup
  br label %360

352:                                              ; preds = %343
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %359

354:                                              ; preds = %345
  %355 = landingpad { ptr, i32 }
          cleanup
  br label %358

356:                                              ; preds = %346
  %357 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %358

358:                                              ; preds = %356, %354
  %.pn127 = phi { ptr, i32 } [ %357, %356 ], [ %355, %354 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  br label %359

359:                                              ; preds = %358, %352
  %.pn127.pn = phi { ptr, i32 } [ %.pn127, %358 ], [ %353, %352 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %49) #7
  br label %360

360:                                              ; preds = %359, %350
  %.pn127.pn.pn = phi { ptr, i32 } [ %.pn127.pn, %359 ], [ %351, %350 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %49) #7
  br label %408

361:                                              ; preds = %341
  %362 = load i32, ptr %4, align 4, !tbaa !5
  %363 = icmp eq i32 %362, -1
  %364 = load i32, ptr %48, align 4
  %365 = icmp sgt i32 %364, 0
  %or.cond = select i1 %363, i1 %365, i1 false
  br i1 %or.cond, label %366, label %407

366:                                              ; preds = %361
  %367 = invoke noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetProductERKNS0_6BufferEPSt6vectorIdSaIdEE(ptr noundef nonnull align 8 dereferenceable(14) %30, ptr noundef nonnull align 8 dereferenceable(40) %31, ptr noundef nonnull %37)
          to label %368 unwind label %348

368:                                              ; preds = %366
  br i1 %367, label %386, label %369

369:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %52) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %52)
          to label %370 unwind label %375

370:                                              ; preds = %369
  %371 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull @.str.12)
          to label %372 unwind label %377

372:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %373 unwind label %379

373:                                              ; preds = %372
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(112) %52)
          to label %374 unwind label %381

374:                                              ; preds = %373
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %52) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %52) #7
  br label %407

375:                                              ; preds = %369
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %385

377:                                              ; preds = %370
  %378 = landingpad { ptr, i32 }
          cleanup
  br label %384

379:                                              ; preds = %372
  %380 = landingpad { ptr, i32 }
          cleanup
  br label %383

381:                                              ; preds = %373
  %382 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %383

383:                                              ; preds = %381, %379
  %.pn131 = phi { ptr, i32 } [ %382, %381 ], [ %380, %379 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  br label %384

384:                                              ; preds = %383, %377
  %.pn131.pn = phi { ptr, i32 } [ %.pn131, %383 ], [ %378, %377 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %52) #7
  br label %385

385:                                              ; preds = %384, %375
  %.pn131.pn.pn = phi { ptr, i32 } [ %.pn131.pn, %384 ], [ %376, %375 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %52) #7
  br label %408

386:                                              ; preds = %368
  %387 = load i32, ptr %3, align 4, !tbaa !5
  %388 = invoke noundef zeroext i1 @_ZN4sptk11WriteStreamIdEEbiiRKSt6vectorIT_SaIS2_EEPSoPi(i32 noundef 0, i32 noundef %387, ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull @_ZSt4cout, ptr noundef null)
          to label %389 unwind label %348

389:                                              ; preds = %386
  br i1 %388, label %407, label %390

390:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %55) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %55)
          to label %391 unwind label %396

391:                                              ; preds = %390
  %392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull @.str.13)
          to label %393 unwind label %398

393:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %57) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %394 unwind label %400

394:                                              ; preds = %393
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(112) %55)
          to label %395 unwind label %402

395:                                              ; preds = %394
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %55) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %55) #7
  br label %407

396:                                              ; preds = %390
  %397 = landingpad { ptr, i32 }
          cleanup
  br label %406

398:                                              ; preds = %391
  %399 = landingpad { ptr, i32 }
          cleanup
  br label %405

400:                                              ; preds = %393
  %401 = landingpad { ptr, i32 }
          cleanup
  br label %404

402:                                              ; preds = %394
  %403 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %404

404:                                              ; preds = %402, %400
  %.pn135 = phi { ptr, i32 } [ %403, %402 ], [ %401, %400 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  br label %405

405:                                              ; preds = %404, %398
  %.pn135.pn = phi { ptr, i32 } [ %.pn135, %404 ], [ %399, %398 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %55) #7
  br label %406

406:                                              ; preds = %405, %396
  %.pn135.pn.pn = phi { ptr, i32 } [ %.pn135.pn, %405 ], [ %397, %396 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %55) #7
  br label %408

407:                                              ; preds = %361, %389, %395, %374, %347
  %.3 = phi i32 [ 1, %395 ], [ 1, %374 ], [ 1, %347 ], [ 0, %389 ], [ 0, %361 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #7
  br label %.thread168

408:                                              ; preds = %406, %385, %360, %348
  %.pn135.pn.pn.pn = phi { ptr, i32 } [ %.pn135.pn.pn, %406 ], [ %349, %348 ], [ %.pn131.pn.pn, %385 ], [ %.pn127.pn.pn, %360 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #7
  br label %409

.thread168:                                       ; preds = %281, %305, %325, %407
  %.4 = phi i32 [ %.3, %407 ], [ 1, %325 ], [ 1, %305 ], [ 1, %281 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #7
  br label %412

409:                                              ; preds = %.split182, %.split182.us, %292, %316, %336, %408
  %.pn140.pn = phi { ptr, i32 } [ %.pn135.pn.pn.pn, %408 ], [ %.pn123.pn.pn, %336 ], [ %.pn119.pn.pn, %316 ], [ %.pn114.pn.pn, %292 ], [ %273, %.split182 ], [ %265, %.split182.us ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #7
  br label %410

410:                                              ; preds = %409, %271
  %.pn140.pn.pn = phi { ptr, i32 } [ %.pn140.pn, %409 ], [ %272, %271 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  br label %411

411:                                              ; preds = %410, %269
  %.pn140.pn.pn.pn = phi { ptr, i32 } [ %.pn140.pn.pn, %410 ], [ %270, %269 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #7
  br label %413

412:                                              ; preds = %.thread168, %224
  %.5 = phi i32 [ %.4, %.thread168 ], [ 1, %224 ]
  call void @_ZN4sptk19ProductAccumulation6BufferD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #7
  call void @_ZN4sptk19ProductAccumulationD2Ev(ptr noundef nonnull align 8 dereferenceable(14) %30) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #7
  br label %415

413:                                              ; preds = %411, %237
  %.pn140.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn140.pn.pn.pn, %411 ], [ %.pn110.pn.pn, %237 ]
  call void @_ZN4sptk19ProductAccumulation6BufferD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #7
  call void @_ZN4sptk19ProductAccumulationD2Ev(ptr noundef nonnull align 8 dereferenceable(14) %30) #7
  br label %414

414:                                              ; preds = %413, %225
  %.pn140.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn140.pn.pn.pn.pn, %413 ], [ %226, %225 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #7
  br label %416

415:                                              ; preds = %412, %198
  %.6 = phi i32 [ 1, %198 ], [ %.5, %412 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %26) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %26) #7
  br label %.thread

416:                                              ; preds = %414, %211, %199
  %.pn147.pn.pn.pn = phi { ptr, i32 } [ %.pn147.pn.pn, %211 ], [ %.pn140.pn.pn.pn.pn.pn, %414 ], [ %200, %199 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %26) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %26) #7
  br label %417

.thread:                                          ; preds = %71, %98, %126, %140, %141, %150, %415, %172
  %.9 = phi i32 [ 1, %150 ], [ %.6, %415 ], [ 1, %172 ], [ 1, %71 ], [ 1, %98 ], [ 1, %126 ], [ 0, %140 ], [ 1, %141 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  ret i32 %.9

417:                                              ; preds = %158, %416, %180, %76, %84, %103, %111, %131, %139
  %.pn153.pn.pn.pn = phi { ptr, i32 } [ %.pn91.pn, %139 ], [ %.pn, %131 ], [ %.pn97.pn, %111 ], [ %.pn94, %103 ], [ %.pn103.pn, %84 ], [ %.pn100, %76 ], [ %.pn153.pn, %158 ], [ %.pn147.pn.pn.pn, %416 ], [ %.pn107.pn, %180 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  resume { ptr, i32 } %.pn153.pn.pn.pn
}

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

declare i32 @ya_getopt_long(i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #2

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #4 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 #5

declare void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef) local_unnamed_addr #4

declare noundef zeroext i1 @_ZN4sptk13SetBinaryModeEv() local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(256)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef, i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef, i32 noundef) local_unnamed_addr #6

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

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

declare void @_ZN4sptk19ProductAccumulationC1Eib(ptr noundef nonnull align 8 dereferenceable(14), i32 noundef, i1 noundef zeroext) unnamed_addr #2

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

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

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

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

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

declare noundef zeroext i1 @_ZN4sptk10ReadStreamIdEEbbiiiPSt6vectorIT_SaIS2_EEPSiPi(i1 noundef zeroext, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZNK4sptk19ProductAccumulation3RunERKSt6vectorIdSaIdEEPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetProductERKNS0_6BufferEPSt6vectorIdSaIdEE(ptr noundef nonnull align 8 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZN4sptk11WriteStreamIdEEbiiRKSt6vectorIT_SaIS2_EEPSoPi(i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZNK4sptk19ProductAccumulation5ClearEPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14), ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZNK4sptk19ProductAccumulation10GetNumDataERKNS0_6BufferEPi(ptr noundef nonnull align 8 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"vtable pointer", !8, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass