; LLVM IR from fdabrandao/vpsolver :: src/afg2mps.ll (Z9swig_mainiPPc)

; 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.Arcflow = type <{ i8, [7 x i8], %"class.std::set", %class.NodeSet, %"class.std::vector.8", %"class.std::map", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", %"class.std::vector", i32, [4 x i8], i64, %class.Instance, i32, i32, i32, [4 x i8], %"class.std::vector.8", %"class.std::vector.23", i32, [4 x i8] }>
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<Arc, Arc, std::_Identity<Arc>, std::less<Arc>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<Arc, Arc, std::_Identity<Arc>, std::less<Arc>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%class.NodeSet = type { %"class.std::map", %"class.std::vector" }
%"class.std::map" = type { %"class.std::_Rb_tree.0" }
%"class.std::_Rb_tree.0" = type { %"struct.std::_Rb_tree<std::vector<int>, std::pair<const std::vector<int>, int>, std::_Select1st<std::pair<const std::vector<int>, int>>, std::less<std::vector<int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::vector<int>, std::pair<const std::vector<int>, int>, std::_Select1st<std::pair<const std::vector<int>, int>>, std::less<std::vector<int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl" }
%"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl" = type { %"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.Instance = type { i32, i32, i32, i32, i32, %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", i32, i8, i8, i8, %"class.std::vector.18", %"class.std::vector.8", %"class.std::vector.8" }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl" }
%"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl" = type { %"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.MPS = type { ptr, i32, i32, [80 x i8] }
%"class.std::allocator.10" = type { i8 }
%class.Arc = type { i32, i32, i32 }
%class.Item = type { %"class.std::vector.8", %"class.std::vector.8", i32, i32, i32, i32, i32, i32 }

@.str = external hidden unnamed_addr constant [57 x i8], align 1
@stdout = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [36 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.2 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [4 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z9swig_mainiPPc(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 ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca [256 x i8], align 16
  %9 = alloca %class.Arcflow, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca [256 x i8], align 16
  %13 = alloca %class.MPS, align 8
  %14 = alloca [80 x i8], align 16
  %15 = alloca [80 x i8], align 16
  %16 = alloca [80 x i8], align 16
  %17 = alloca i32, align 4
  %18 = alloca i8, align 1
  %19 = alloca [256 x i8], align 16
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::vector.8", align 8
  %22 = alloca %"class.std::vector.8", align 8
  %23 = alloca %"class.std::allocator.10", align 1
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  %31 = call i32 (ptr, ...) @printf(ptr noundef @.str)
  %32 = load ptr, ptr @stdout, align 8, !tbaa !9
  %33 = call i32 @setvbuf(ptr noundef %32, ptr noundef null, i32 noundef 2, i64 noundef 0) #8
  %34 = load i32, ptr %4, align 4, !tbaa !5
  %35 = icmp ne i32 %34, 3
  br i1 %35, label %36, label %38

36:                                               ; preds = %2
  %37 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  store i32 1, ptr %3, align 4
  br label %501

38:                                               ; preds = %2
  %39 = load ptr, ptr %5, align 8, !tbaa !9
  %40 = getelementptr inbounds ptr, ptr %39, i64 1
  %41 = load ptr, ptr %40, align 8, !tbaa !9
  %42 = invoke noundef zeroext i1 @_Z9check_extPKcS0_(ptr noundef %41, ptr noundef @.str.2)
          to label %43 unwind label %50

43:                                               ; preds = %38
  br i1 %42, label %63, label %44

44:                                               ; preds = %43
  call void @llvm.lifetime.start.p0(i64 256, ptr %8) #8
  %45 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  %46 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %45, i64 noundef 256, ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef @.str.5, i32 noundef 74) #8
  %47 = call ptr @__cxa_allocate_exception(i64 16) #8
  %48 = getelementptr inbounds [256 x i8], ptr %8, i64 0, i64 0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef %48)
          to label %49 unwind label %54

49:                                               ; preds = %44
  invoke void @__cxa_throw(ptr %47, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %511 unwind label %58

50:                                               ; preds = %38
  %51 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %52 = extractvalue { ptr, i32 } %51, 0
  store ptr %52, ptr %6, align 8
  %53 = extractvalue { ptr, i32 } %51, 1
  store i32 %53, ptr %7, align 4
  br label %471

54:                                               ; preds = %44
  %55 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %56 = extractvalue { ptr, i32 } %55, 0
  store ptr %56, ptr %6, align 8
  %57 = extractvalue { ptr, i32 } %55, 1
  store i32 %57, ptr %7, align 4
  call void @__cxa_free_exception(ptr %47) #8
  br label %62

58:                                               ; preds = %49
  %59 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %60 = extractvalue { ptr, i32 } %59, 0
  store ptr %60, ptr %6, align 8
  %61 = extractvalue { ptr, i32 } %59, 1
  store i32 %61, ptr %7, align 4
  br label %62

62:                                               ; preds = %58, %54
  call void @llvm.lifetime.end.p0(i64 256, ptr %8) #8
  br label %471

63:                                               ; preds = %43
  call void @llvm.lifetime.start.p0(i64 608, ptr %9) #8
  %64 = load ptr, ptr %5, align 8, !tbaa !9
  %65 = getelementptr inbounds ptr, ptr %64, i64 1
  %66 = load ptr, ptr %65, align 8, !tbaa !9
  invoke void @_ZN7ArcflowC1EPKc(ptr noundef nonnull align 8 dereferenceable(604) %9, ptr noundef %66)
          to label %67 unwind label %78

67:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  %68 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 14
  store ptr %68, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %69 = load ptr, ptr %5, align 8, !tbaa !9
  %70 = getelementptr inbounds ptr, ptr %69, i64 2
  %71 = load ptr, ptr %70, align 8, !tbaa !9
  %72 = invoke noalias ptr @fopen(ptr noundef %71, ptr noundef @.str.6)
          to label %73 unwind label %82

73:                                               ; preds = %67
  store ptr %72, ptr %11, align 8, !tbaa !9
  %74 = load ptr, ptr %11, align 8, !tbaa !9
  %75 = icmp eq ptr %74, null
  br i1 %75, label %76, label %86

76:                                               ; preds = %73
  invoke void @perror(ptr noundef @.str.7)
          to label %77 unwind label %82

77:                                               ; preds = %76
  br label %86

78:                                               ; preds = %63
  %79 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %6, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %7, align 4
  br label %470

82:                                               ; preds = %104, %76, %67
  %83 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %6, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %7, align 4
  br label %469

86:                                               ; preds = %77, %73
  %87 = load ptr, ptr %11, align 8, !tbaa !9
  %88 = icmp ne ptr %87, null
  br i1 %88, label %104, label %89

89:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 256, ptr %12) #8
  %90 = getelementptr inbounds [256 x i8], ptr %12, i64 0, i64 0
  %91 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %90, i64 noundef 256, ptr noundef @.str.3, ptr noundef @.str.8, ptr noundef @.str.5, i32 noundef 82) #8
  %92 = call ptr @__cxa_allocate_exception(i64 16) #8
  %93 = getelementptr inbounds [256 x i8], ptr %12, i64 0, i64 0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr noundef %93)
          to label %94 unwind label %95

94:                                               ; preds = %89
  invoke void @__cxa_throw(ptr %92, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %511 unwind label %99

95:                                               ; preds = %89
  %96 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %6, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %7, align 4
  call void @__cxa_free_exception(ptr %92) #8
  br label %103

99:                                               ; preds = %94
  %100 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %6, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %7, align 4
  br label %103

103:                                              ; preds = %99, %95
  call void @llvm.lifetime.end.p0(i64 256, ptr %12) #8
  br label %469

104:                                              ; preds = %86
  %105 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.9)
          to label %106 unwind label %82

106:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 96, ptr %13) #8
  %107 = load ptr, ptr %11, align 8, !tbaa !9
  invoke void @_ZN3MPSC2EP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(96) %13, ptr noundef %107)
          to label %108 unwind label %119

108:                                              ; preds = %106
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 4, ptr noundef @.str.10, ptr noundef @.str.11, ptr noundef @.str.11, ptr noundef @.str.12)
          to label %109 unwind label %119

109:                                              ; preds = %108
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 1, ptr noundef @.str.13)
          to label %110 unwind label %119

110:                                              ; preds = %109
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 3, ptr noundef @.str.11, ptr noundef @.str.14, ptr noundef @.str.15)
          to label %111 unwind label %119

111:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 80, ptr %14) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 0, ptr %17, align 4, !tbaa !5
  br label %112

112:                                              ; preds = %175, %111
  %113 = load i32, ptr %17, align 4, !tbaa !5
  %114 = load ptr, ptr %10, align 8, !tbaa !9
  %115 = getelementptr inbounds %class.Instance, ptr %114, i32 0, i32 3
  %116 = load i32, ptr %115, align 4, !tbaa !11
  %117 = icmp slt i32 %113, %116
  br i1 %117, label %123, label %118

118:                                              ; preds = %112
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %179

119:                                              ; preds = %110, %109, %108, %106
  %120 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %6, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %7, align 4
  br label %468

123:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #8
  %124 = load ptr, ptr %10, align 8, !tbaa !9
  %125 = getelementptr inbounds %class.Instance, ptr %124, i32 0, i32 13
  %126 = load i32, ptr %17, align 4, !tbaa !5
  %127 = sext i32 %126 to i64
  %128 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %125, i64 noundef %127) #8
  %129 = load i8, ptr %128, align 1, !tbaa !30
  store i8 %129, ptr %18, align 1, !tbaa !30
  %130 = load i8, ptr %18, align 1, !tbaa !30
  %131 = sext i8 %130 to i32
  %132 = icmp eq i32 %131, 62
  br i1 %132, label %152, label %133

133:                                              ; preds = %123
  %134 = load i8, ptr %18, align 1, !tbaa !30
  %135 = sext i8 %134 to i32
  %136 = icmp eq i32 %135, 61
  br i1 %136, label %152, label %137

137:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 256, ptr %19) #8
  %138 = getelementptr inbounds [256 x i8], ptr %19, i64 0, i64 0
  %139 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %138, i64 noundef 256, ptr noundef @.str.3, ptr noundef @.str.16, ptr noundef @.str.5, i32 noundef 99) #8
  %140 = call ptr @__cxa_allocate_exception(i64 16) #8
  %141 = getelementptr inbounds [256 x i8], ptr %19, i64 0, i64 0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %140, ptr noundef %141)
          to label %142 unwind label %143

142:                                              ; preds = %137
  invoke void @__cxa_throw(ptr %140, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %511 unwind label %147

143:                                              ; preds = %137
  %144 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %6, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %7, align 4
  call void @__cxa_free_exception(ptr %140) #8
  br label %151

147:                                              ; preds = %142
  %148 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %6, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %7, align 4
  br label %151

151:                                              ; preds = %147, %143
  call void @llvm.lifetime.end.p0(i64 256, ptr %19) #8
  br label %178

152:                                              ; preds = %133, %123
  %153 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  %154 = load i32, ptr %17, align 4, !tbaa !5
  %155 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %153, i64 noundef 80, ptr noundef @.str.17, i32 noundef %154) #8
  %156 = load i8, ptr %18, align 1, !tbaa !30
  %157 = sext i8 %156 to i32
  %158 = icmp eq i32 %157, 61
  br i1 %158, label %159, label %171

159:                                              ; preds = %152
  %160 = load ptr, ptr %10, align 8, !tbaa !9
  %161 = getelementptr inbounds %class.Instance, ptr %160, i32 0, i32 11
  %162 = load i8, ptr %161, align 1, !tbaa !31, !range !32, !noundef !33
  %163 = trunc i8 %162 to i1
  br i1 %163, label %171, label %164

164:                                              ; preds = %159
  %165 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 3, ptr noundef @.str.11, ptr noundef @.str.18, ptr noundef %165)
          to label %166 unwind label %167

166:                                              ; preds = %164
  br label %174

167:                                              ; preds = %171, %164
  %168 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %6, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %7, align 4
  br label %178

171:                                              ; preds = %159, %152
  %172 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 3, ptr noundef @.str.11, ptr noundef @.str.19, ptr noundef %172)
          to label %173 unwind label %167

173:                                              ; preds = %171
  br label %174

174:                                              ; preds = %173, %166
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #8
  br label %175

175:                                              ; preds = %174
  %176 = load i32, ptr %17, align 4, !tbaa !5
  %177 = add nsw i32 %176, 1
  store i32 %177, ptr %17, align 4, !tbaa !5
  br label %112, !llvm.loop !34

178:                                              ; preds = %167, %151
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %467

179:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  store i32 0, ptr %20, align 4, !tbaa !5
  br label %180

180:                                              ; preds = %192, %179
  %181 = load i32, ptr %20, align 4, !tbaa !5
  %182 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 15
  %183 = load i32, ptr %182, align 8, !tbaa !36
  %184 = icmp slt i32 %181, %183
  br i1 %184, label %186, label %185

185:                                              ; preds = %180
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %199

186:                                              ; preds = %180
  %187 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  %188 = load i32, ptr %20, align 4, !tbaa !5
  %189 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %187, i64 noundef 80, ptr noundef @.str.20, i32 noundef %188) #8
  %190 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 3, ptr noundef @.str.11, ptr noundef @.str.18, ptr noundef %190)
          to label %191 unwind label %195

191:                                              ; preds = %186
  br label %192

192:                                              ; preds = %191
  %193 = load i32, ptr %20, align 4, !tbaa !5
  %194 = add nsw i32 %193, 1
  store i32 %194, ptr %20, align 4, !tbaa !5
  br label %180, !llvm.loop !57

195:                                              ; preds = %186
  %196 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %6, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %467

199:                                              ; preds = %185
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 1, ptr noundef @.str.21)
          to label %200 unwind label %208

200:                                              ; preds = %199
  %201 = load ptr, ptr %10, align 8, !tbaa !9
  %202 = getelementptr inbounds %class.Instance, ptr %201, i32 0, i32 12
  %203 = load i8, ptr %202, align 2, !tbaa !58
  %204 = sext i8 %203 to i32
  %205 = icmp eq i32 %204, 73
  br i1 %205, label %206, label %212

206:                                              ; preds = %200
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 6, ptr noundef @.str.11, ptr noundef @.str.11, ptr noundef @.str.22, ptr noundef @.str.23, ptr noundef @.str.11, ptr noundef @.str.24)
          to label %207 unwind label %208

207:                                              ; preds = %206
  br label %212

208:                                              ; preds = %206, %199
  %209 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %6, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %7, align 4
  br label %467

212:                                              ; preds = %207, %200
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #8
  %213 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 16
  %214 = load i32, ptr %213, align 4, !tbaa !59
  %215 = sext i32 %214 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %215, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %216 unwind label %223

216:                                              ; preds = %212
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  store i32 0, ptr %24, align 4, !tbaa !5
  br label %217

217:                                              ; preds = %381, %216
  %218 = load i32, ptr %24, align 4, !tbaa !5
  %219 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 16
  %220 = load i32, ptr %219, align 4, !tbaa !59
  %221 = icmp slt i32 %218, %220
  br i1 %221, label %227, label %222

222:                                              ; preds = %217
  store i32 8, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %385

223:                                              ; preds = %212
  %224 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %6, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #8
  br label %466

227:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %228 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 20
  %229 = load i32, ptr %24, align 4, !tbaa !5
  %230 = sext i32 %229 to i64
  %231 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorI3ArcSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %228, i64 noundef %230) #8
  store ptr %231, ptr %26, align 8, !tbaa !9
  %232 = load ptr, ptr %26, align 8, !tbaa !9
  %233 = getelementptr inbounds %class.Arc, ptr %232, i32 0, i32 2
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 4 dereferenceable(4) %233)
          to label %234 unwind label %273

234:                                              ; preds = %227
  %235 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  %236 = load i32, ptr %24, align 4, !tbaa !5
  %237 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %235, i64 noundef 80, ptr noundef @.str.25, i32 noundef %236) #8
  %238 = getelementptr inbounds [80 x i8], ptr %15, i64 0, i64 0
  %239 = load ptr, ptr %26, align 8, !tbaa !9
  %240 = getelementptr inbounds %class.Arc, ptr %239, i32 0, i32 0
  %241 = load i32, ptr %240, align 4, !tbaa !60
  %242 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %238, i64 noundef 80, ptr noundef @.str.20, i32 noundef %241) #8
  %243 = getelementptr inbounds [80 x i8], ptr %16, i64 0, i64 0
  %244 = load ptr, ptr %26, align 8, !tbaa !9
  %245 = getelementptr inbounds %class.Arc, ptr %244, i32 0, i32 1
  %246 = load i32, ptr %245, align 4, !tbaa !62
  %247 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %243, i64 noundef 80, ptr noundef @.str.20, i32 noundef %246) #8
  %248 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  %249 = getelementptr inbounds [80 x i8], ptr %15, i64 0, i64 0
  %250 = getelementptr inbounds [80 x i8], ptr %16, i64 0, i64 0
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 7, ptr noundef @.str.11, ptr noundef @.str.11, ptr noundef %248, ptr noundef %249, ptr noundef @.str.26, ptr noundef %250, ptr noundef @.str.27)
          to label %251 unwind label %273

251:                                              ; preds = %234
  %252 = load ptr, ptr %26, align 8, !tbaa !9
  %253 = getelementptr inbounds %class.Arc, ptr %252, i32 0, i32 2
  %254 = load i32, ptr %253, align 4, !tbaa !63
  %255 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 21
  %256 = load i32, ptr %255, align 8, !tbaa !64
  %257 = icmp ne i32 %254, %256
  br i1 %257, label %258, label %277

258:                                              ; preds = %251
  %259 = getelementptr inbounds [80 x i8], ptr %15, i64 0, i64 0
  %260 = load ptr, ptr %10, align 8, !tbaa !9
  %261 = getelementptr inbounds %class.Instance, ptr %260, i32 0, i32 8
  %262 = load ptr, ptr %26, align 8, !tbaa !9
  %263 = getelementptr inbounds %class.Arc, ptr %262, i32 0, i32 2
  %264 = load i32, ptr %263, align 4, !tbaa !63
  %265 = sext i32 %264 to i64
  %266 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorI4ItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %261, i64 noundef %265) #8
  %267 = getelementptr inbounds %class.Item, ptr %266, i32 0, i32 3
  %268 = load i32, ptr %267, align 4, !tbaa !65
  %269 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %259, i64 noundef 80, ptr noundef @.str.17, i32 noundef %268) #8
  %270 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  %271 = getelementptr inbounds [80 x i8], ptr %15, i64 0, i64 0
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 5, ptr noundef @.str.11, ptr noundef @.str.11, ptr noundef %270, ptr noundef %271, ptr noundef @.str.27)
          to label %272 unwind label %273

272:                                              ; preds = %258
  br label %277

273:                                              ; preds = %258, %234, %227
  %274 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %6, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %7, align 4
  br label %384

277:                                              ; preds = %272, %251
  %278 = load ptr, ptr %26, align 8, !tbaa !9
  %279 = getelementptr inbounds %class.Arc, ptr %278, i32 0, i32 1
  %280 = load i32, ptr %279, align 4, !tbaa !62
  %281 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 17
  %282 = load i32, ptr %281, align 8, !tbaa !67
  %283 = icmp eq i32 %280, %282
  br i1 %283, label %284, label %347

284:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  store i32 0, ptr %27, align 4, !tbaa !5
  br label %285

285:                                              ; preds = %342, %284
  %286 = load i32, ptr %27, align 4, !tbaa !5
  %287 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 19
  %288 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %287) #8
  %289 = trunc i64 %288 to i32
  %290 = icmp slt i32 %286, %289
  br i1 %290, label %292, label %291

291:                                              ; preds = %285
  store i32 11, ptr %25, align 4
  br label %345

292:                                              ; preds = %285
  %293 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 19
  %294 = load i32, ptr %27, align 4, !tbaa !5
  %295 = sext i32 %294 to i64
  %296 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %293, i64 noundef %295) #8
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = load ptr, ptr %26, align 8, !tbaa !9
  %299 = getelementptr inbounds %class.Arc, ptr %298, i32 0, i32 0
  %300 = load i32, ptr %299, align 4, !tbaa !60
  %301 = icmp eq i32 %297, %300
  br i1 %301, label %302, label %341

302:                                              ; preds = %292
  %303 = load ptr, ptr %10, align 8, !tbaa !9
  %304 = getelementptr inbounds %class.Instance, ptr %303, i32 0, i32 7
  %305 = load i32, ptr %27, align 4, !tbaa !5
  %306 = sext i32 %305 to i64
  %307 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %304, i64 noundef %306) #8
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = icmp sge i32 %308, 0
  br i1 %309, label %310, label %317

310:                                              ; preds = %302
  %311 = load ptr, ptr %10, align 8, !tbaa !9
  %312 = getelementptr inbounds %class.Instance, ptr %311, i32 0, i32 7
  %313 = load i32, ptr %27, align 4, !tbaa !5
  %314 = sext i32 %313 to i64
  %315 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %312, i64 noundef %314) #8
  %316 = load i32, ptr %315, align 4, !tbaa !5
  br label %321

317:                                              ; preds = %302
  %318 = load ptr, ptr %10, align 8, !tbaa !9
  %319 = getelementptr inbounds %class.Instance, ptr %318, i32 0, i32 4
  %320 = load i32, ptr %319, align 8, !tbaa !68
  br label %321

321:                                              ; preds = %317, %310
  %322 = phi i32 [ %316, %310 ], [ %320, %317 ]
  %323 = load i32, ptr %24, align 4, !tbaa !5
  %324 = sext i32 %323 to i64
  %325 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %324) #8
  store i32 %322, ptr %325, align 4, !tbaa !5
  %326 = getelementptr inbounds [80 x i8], ptr %15, i64 0, i64 0
  %327 = load ptr, ptr %10, align 8, !tbaa !9
  %328 = getelementptr inbounds %class.Instance, ptr %327, i32 0, i32 6
  %329 = load i32, ptr %27, align 4, !tbaa !5
  %330 = sext i32 %329 to i64
  %331 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %328, i64 noundef %330) #8
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %326, i64 noundef 80, ptr noundef @.str.28, i32 noundef %332) #8
  %334 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  %335 = getelementptr inbounds [80 x i8], ptr %15, i64 0, i64 0
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 5, ptr noundef @.str.11, ptr noundef @.str.11, ptr noundef %334, ptr noundef @.str.15, ptr noundef %335)
          to label %336 unwind label %337

336:                                              ; preds = %321
  store i32 11, ptr %25, align 4
  br label %345

337:                                              ; preds = %321
  %338 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %6, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %384

341:                                              ; preds = %292
  br label %342

342:                                              ; preds = %341
  %343 = load i32, ptr %27, align 4, !tbaa !5
  %344 = add nsw i32 %343, 1
  store i32 %344, ptr %27, align 4, !tbaa !5
  br label %285, !llvm.loop !69

345:                                              ; preds = %336, %291
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %346

346:                                              ; preds = %345
  br label %380

347:                                              ; preds = %277
  %348 = load ptr, ptr %26, align 8, !tbaa !9
  %349 = getelementptr inbounds %class.Arc, ptr %348, i32 0, i32 2
  %350 = load i32, ptr %349, align 4, !tbaa !63
  %351 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 21
  %352 = load i32, ptr %351, align 8, !tbaa !64
  %353 = icmp ne i32 %350, %352
  br i1 %353, label %354, label %372

354:                                              ; preds = %347
  %355 = load ptr, ptr %10, align 8, !tbaa !9
  %356 = getelementptr inbounds %class.Instance, ptr %355, i32 0, i32 11
  %357 = load i8, ptr %356, align 1, !tbaa !31, !range !32, !noundef !33
  %358 = trunc i8 %357 to i1
  br i1 %358, label %372, label %359

359:                                              ; preds = %354
  %360 = load ptr, ptr %10, align 8, !tbaa !9
  %361 = getelementptr inbounds %class.Instance, ptr %360, i32 0, i32 8
  %362 = load ptr, ptr %26, align 8, !tbaa !9
  %363 = getelementptr inbounds %class.Arc, ptr %362, i32 0, i32 2
  %364 = load i32, ptr %363, align 4, !tbaa !63
  %365 = sext i32 %364 to i64
  %366 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorI4ItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %361, i64 noundef %365) #8
  %367 = getelementptr inbounds %class.Item, ptr %366, i32 0, i32 6
  %368 = load i32, ptr %367, align 8, !tbaa !70
  %369 = load i32, ptr %24, align 4, !tbaa !5
  %370 = sext i32 %369 to i64
  %371 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %370) #8
  store i32 %368, ptr %371, align 4, !tbaa !5
  br label %379

372:                                              ; preds = %354, %347
  %373 = load ptr, ptr %10, align 8, !tbaa !9
  %374 = getelementptr inbounds %class.Instance, ptr %373, i32 0, i32 4
  %375 = load i32, ptr %374, align 8, !tbaa !68
  %376 = load i32, ptr %24, align 4, !tbaa !5
  %377 = sext i32 %376 to i64
  %378 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %377) #8
  store i32 %375, ptr %378, align 4, !tbaa !5
  br label %379

379:                                              ; preds = %372, %359
  br label %380

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

381:                                              ; preds = %380
  %382 = load i32, ptr %24, align 4, !tbaa !5
  %383 = add nsw i32 %382, 1
  store i32 %383, ptr %24, align 4, !tbaa !5
  br label %217, !llvm.loop !71

384:                                              ; preds = %337, %273
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %465

385:                                              ; preds = %222
  %386 = load ptr, ptr %10, align 8, !tbaa !9
  %387 = getelementptr inbounds %class.Instance, ptr %386, i32 0, i32 12
  %388 = load i8, ptr %387, align 2, !tbaa !58
  %389 = sext i8 %388 to i32
  %390 = icmp eq i32 %389, 73
  br i1 %390, label %391, label %397

391:                                              ; preds = %385
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 6, ptr noundef @.str.11, ptr noundef @.str.11, ptr noundef @.str.22, ptr noundef @.str.23, ptr noundef @.str.11, ptr noundef @.str.29)
          to label %392 unwind label %393

392:                                              ; preds = %391
  br label %397

393:                                              ; preds = %462, %459, %458, %428, %397, %391
  %394 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %6, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %7, align 4
  br label %465

397:                                              ; preds = %392, %385
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 1, ptr noundef @.str.30)
          to label %398 unwind label %393

398:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  store i32 0, ptr %28, align 4, !tbaa !5
  br label %399

399:                                              ; preds = %421, %398
  %400 = load i32, ptr %28, align 4, !tbaa !5
  %401 = load ptr, ptr %10, align 8, !tbaa !9
  %402 = getelementptr inbounds %class.Instance, ptr %401, i32 0, i32 3
  %403 = load i32, ptr %402, align 4, !tbaa !11
  %404 = icmp slt i32 %400, %403
  br i1 %404, label %406, label %405

405:                                              ; preds = %399
  store i32 14, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %428

406:                                              ; preds = %399
  %407 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  %408 = load i32, ptr %28, align 4, !tbaa !5
  %409 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %407, i64 noundef 80, ptr noundef @.str.17, i32 noundef %408) #8
  %410 = getelementptr inbounds [80 x i8], ptr %15, i64 0, i64 0
  %411 = load ptr, ptr %10, align 8, !tbaa !9
  %412 = getelementptr inbounds %class.Instance, ptr %411, i32 0, i32 15
  %413 = load i32, ptr %28, align 4, !tbaa !5
  %414 = sext i32 %413 to i64
  %415 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %412, i64 noundef %414) #8
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %410, i64 noundef 80, ptr noundef @.str.28, i32 noundef %416) #8
  %418 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  %419 = getelementptr inbounds [80 x i8], ptr %15, i64 0, i64 0
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 5, ptr noundef @.str.11, ptr noundef @.str.11, ptr noundef @.str.31, ptr noundef %418, ptr noundef %419)
          to label %420 unwind label %424

420:                                              ; preds = %406
  br label %421

421:                                              ; preds = %420
  %422 = load i32, ptr %28, align 4, !tbaa !5
  %423 = add nsw i32 %422, 1
  store i32 %423, ptr %28, align 4, !tbaa !5
  br label %399, !llvm.loop !72

424:                                              ; preds = %406
  %425 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %6, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %465

428:                                              ; preds = %405
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 1, ptr noundef @.str.32)
          to label %429 unwind label %393

429:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  store i32 0, ptr %29, align 4, !tbaa !5
  br label %430

430:                                              ; preds = %451, %429
  %431 = load i32, ptr %29, align 4, !tbaa !5
  %432 = getelementptr inbounds %class.Arcflow, ptr %9, i32 0, i32 16
  %433 = load i32, ptr %432, align 4, !tbaa !59
  %434 = icmp slt i32 %431, %433
  br i1 %434, label %436, label %435

435:                                              ; preds = %430
  store i32 17, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %458

436:                                              ; preds = %430
  %437 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  %438 = load i32, ptr %29, align 4, !tbaa !5
  %439 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %437, i64 noundef 80, ptr noundef @.str.25, i32 noundef %438) #8
  %440 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 5, ptr noundef @.str.11, ptr noundef @.str.33, ptr noundef @.str.34, ptr noundef %440, ptr noundef @.str.35)
          to label %441 unwind label %454

441:                                              ; preds = %436
  %442 = getelementptr inbounds [80 x i8], ptr %15, i64 0, i64 0
  %443 = load i32, ptr %29, align 4, !tbaa !5
  %444 = sext i32 %443 to i64
  %445 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %444) #8
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %442, i64 noundef 80, ptr noundef @.str.28, i32 noundef %446) #8
  %448 = getelementptr inbounds [80 x i8], ptr %14, i64 0, i64 0
  %449 = getelementptr inbounds [80 x i8], ptr %15, i64 0, i64 0
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 5, ptr noundef @.str.11, ptr noundef @.str.36, ptr noundef @.str.34, ptr noundef %448, ptr noundef %449)
          to label %450 unwind label %454

450:                                              ; preds = %441
  br label %451

451:                                              ; preds = %450
  %452 = load i32, ptr %29, align 4, !tbaa !5
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr %29, align 4, !tbaa !5
  br label %430, !llvm.loop !73

454:                                              ; preds = %441, %436
  %455 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %6, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %465

458:                                              ; preds = %435
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %13, i32 noundef 1, ptr noundef @.str.37)
          to label %459 unwind label %393

459:                                              ; preds = %458
  %460 = load ptr, ptr %11, align 8, !tbaa !9
  %461 = invoke i32 @fclose(ptr noundef %460)
          to label %462 unwind label %393

462:                                              ; preds = %459
  %463 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.38)
          to label %464 unwind label %393

464:                                              ; preds = %462
  store i32 0, ptr %3, align 4
  store i32 1, ptr %25, align 4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @_ZN7ArcflowD2Ev(ptr noundef nonnull align 8 dereferenceable(604) %9) #8
  call void @llvm.lifetime.end.p0(i64 608, ptr %9) #8
  br label %501

465:                                              ; preds = %454, %424, %393, %384
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  br label %466

466:                                              ; preds = %465, %223
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #8
  br label %467

467:                                              ; preds = %466, %208, %195, %178
  call void @llvm.lifetime.end.p0(i64 80, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr %14) #8
  br label %468

468:                                              ; preds = %467, %119
  call void @llvm.lifetime.end.p0(i64 96, ptr %13) #8
  br label %469

469:                                              ; preds = %468, %103, %82
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @_ZN7ArcflowD2Ev(ptr noundef nonnull align 8 dereferenceable(604) %9) #8
  br label %470

470:                                              ; preds = %469, %78
  call void @llvm.lifetime.end.p0(i64 608, ptr %9) #8
  br label %471

471:                                              ; preds = %470, %62, %50
  %472 = load i32, ptr %7, align 4
  %473 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt13runtime_error) #8
  %474 = icmp eq i32 %472, %473
  br i1 %474, label %475, label %485

475:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %476 = load ptr, ptr %6, align 8
  %477 = call ptr @__cxa_begin_catch(ptr %476) #8
  store ptr %477, ptr %30, align 8
  %478 = load ptr, ptr %30, align 8, !tbaa !9
  %479 = load ptr, ptr %478, align 8, !tbaa !74
  %480 = getelementptr inbounds ptr, ptr %479, i64 2
  %481 = load ptr, ptr %480, align 8
  %482 = call noundef ptr %481(ptr noundef nonnull align 8 dereferenceable(16) %478) #8
  %483 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.40, ptr noundef %482)
          to label %484 unwind label %495

484:                                              ; preds = %475
  store i32 1, ptr %3, align 4
  store i32 1, ptr %25, align 4
  call void @__cxa_end_catch()
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %501

485:                                              ; preds = %471
  %486 = load ptr, ptr %6, align 8
  %487 = call ptr @__cxa_begin_catch(ptr %486) #8
  %488 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.39)
          to label %489 unwind label %490

489:                                              ; preds = %485
  store i32 1, ptr %3, align 4
  store i32 1, ptr %25, align 4
  call void @__cxa_end_catch()
  br label %501

490:                                              ; preds = %485
  %491 = landingpad { ptr, i32 }
          cleanup
  %492 = extractvalue { ptr, i32 } %491, 0
  store ptr %492, ptr %6, align 8
  %493 = extractvalue { ptr, i32 } %491, 1
  store i32 %493, ptr %7, align 4
  invoke void @__cxa_end_catch()
          to label %494 unwind label %508

494:                                              ; preds = %490
  br label %503

495:                                              ; preds = %475
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %6, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %7, align 4
  invoke void @__cxa_end_catch()
          to label %499 unwind label %508

499:                                              ; preds = %495
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %503

500:                                              ; No predecessors!
  unreachable

501:                                              ; preds = %489, %484, %464, %36
  %502 = load i32, ptr %3, align 4
  ret i32 %502

503:                                              ; preds = %499, %494
  %504 = load ptr, ptr %6, align 8
  %505 = load i32, ptr %7, align 4
  %506 = insertvalue { ptr, i32 } poison, ptr %504, 0
  %507 = insertvalue { ptr, i32 } %506, i32 %505, 1
  resume { ptr, i32 } %507

508:                                              ; preds = %495, %490
  %509 = landingpad { ptr, i32 }
          catch ptr null
  %510 = extractvalue { ptr, i32 } %509, 0
  call void @__clang_call_terminate(ptr %510) #10
  unreachable

511:                                              ; preds = %142, %94, %49
  unreachable
}

declare i32 @printf(ptr noundef, ...) #1

; Function Attrs: nounwind
declare i32 @setvbuf(ptr noundef, ptr noundef, i32 noundef, i64 noundef) #2

declare noundef zeroext i1 @_Z9check_extPKcS0_(ptr noundef, ptr noundef) #1

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nounwind
declare i32 @snprintf(ptr noundef, i64 noundef, ptr noundef, ...) #2

declare ptr @__cxa_allocate_exception(i64)

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #1

declare void @__cxa_free_exception(ptr)

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2

declare void @__cxa_throw(ptr, ptr, ptr)

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

declare void @_ZN7ArcflowC1EPKc(ptr noundef nonnull align 8 dereferenceable(604), ptr noundef) unnamed_addr #1

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

declare void @perror(ptr noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3MPSC2EP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96), i32 noundef, ...) #0 align 2

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

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

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

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

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

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

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

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

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

declare i32 @fclose(ptr noundef) #1

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

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

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #6

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #7

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

attributes #0 = { 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 #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind memory(none) }
attributes #7 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn }
attributes #10 = { noreturn 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, !6, i64 12}
!12 = !{!"_ZTS8Instance", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !13, i64 24, !17, i64 48, !17, i64 72, !21, i64 96, !6, i64 120, !25, i64 124, !25, i64 125, !7, i64 126, !26, i64 128, !17, i64 152, !17, i64 176}
!13 = !{!"_ZTSSt6vectorIS_IiSaIiEESaIS1_EE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!17 = !{!"_ZTSSt6vectorIiSaIiEE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!21 = !{!"_ZTSSt6vectorI4ItemSaIS0_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseI4ItemSaIS0_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseI4ItemSaIS0_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseI4ItemSaIS0_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!25 = !{!"bool", !7, i64 0}
!26 = !{!"_ZTSSt6vectorIcSaIcEE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!30 = !{!7, !7, i64 0}
!31 = !{!12, !25, i64 125}
!32 = !{i8 0, i8 2}
!33 = !{}
!34 = distinct !{!34, !35}
!35 = !{!"llvm.loop.mustprogress"}
!36 = !{!37, !6, i64 536}
!37 = !{!"_ZTS7Arcflow", !25, i64 0, !38, i64 8, !47, i64 56, !17, i64 128, !48, i64 152, !17, i64 200, !17, i64 224, !17, i64 248, !21, i64 272, !13, i64 296, !6, i64 320, !46, i64 328, !12, i64 336, !6, i64 536, !6, i64 540, !6, i64 544, !17, i64 552, !53, i64 576, !6, i64 600}
!38 = !{!"_ZTSSt3setI3ArcSt4lessIS0_ESaIS0_EE", !39, i64 0}
!39 = !{!"_ZTSSt8_Rb_treeI3ArcS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE", !40, i64 0}
!40 = !{!"_ZTSNSt8_Rb_treeI3ArcS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEE", !41, i64 0, !43, i64 8}
!41 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI3ArcEE", !42, i64 0}
!42 = !{!"_ZTSSt4lessI3ArcE"}
!43 = !{!"_ZTSSt15_Rb_tree_header", !44, i64 0, !46, i64 32}
!44 = !{!"_ZTSSt18_Rb_tree_node_base", !45, i64 0, !10, i64 8, !10, i64 16, !10, i64 24}
!45 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!46 = !{!"long", !7, i64 0}
!47 = !{!"_ZTS7NodeSet", !48, i64 0, !13, i64 48}
!48 = !{!"_ZTSSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEE", !49, i64 0}
!49 = !{!"_ZTSSt8_Rb_treeISt6vectorIiSaIiEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !50, i64 0}
!50 = !{!"_ZTSNSt8_Rb_treeISt6vectorIiSaIiEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !51, i64 0, !43, i64 8}
!51 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt6vectorIiSaIiEEEE", !52, i64 0}
!52 = !{!"_ZTSSt4lessISt6vectorIiSaIiEEE"}
!53 = !{!"_ZTSSt6vectorI3ArcSaIS0_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseI3ArcSaIS0_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseI3ArcSaIS0_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseI3ArcSaIS0_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!57 = distinct !{!57, !35}
!58 = !{!12, !7, i64 126}
!59 = !{!37, !6, i64 540}
!60 = !{!61, !6, i64 0}
!61 = !{!"_ZTS3Arc", !6, i64 0, !6, i64 4, !6, i64 8}
!62 = !{!61, !6, i64 4}
!63 = !{!61, !6, i64 8}
!64 = !{!37, !6, i64 600}
!65 = !{!66, !6, i64 52}
!66 = !{!"_ZTS4Item", !17, i64 0, !17, i64 24, !6, i64 48, !6, i64 52, !6, i64 56, !6, i64 60, !6, i64 64, !6, i64 68}
!67 = !{!37, !6, i64 544}
!68 = !{!12, !6, i64 16}
!69 = distinct !{!69, !35}
!70 = !{!66, !6, i64 64}
!71 = distinct !{!71, !35}
!72 = distinct !{!72, !35}
!73 = distinct !{!73, !35}
!74 = !{!75, !75, i64 0}
!75 = !{!"vtable pointer", !8, i64 0}


; 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.Arcflow = type <{ i8, [7 x i8], %"class.std::set", %class.NodeSet, %"class.std::vector.8", %"class.std::map", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", %"class.std::vector", i32, [4 x i8], i64, %class.Instance, i32, i32, i32, [4 x i8], %"class.std::vector.8", %"class.std::vector.23", i32, [4 x i8] }>
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<Arc, Arc, std::_Identity<Arc>, std::less<Arc>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<Arc, Arc, std::_Identity<Arc>, std::less<Arc>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%class.NodeSet = type { %"class.std::map", %"class.std::vector" }
%"class.std::map" = type { %"class.std::_Rb_tree.0" }
%"class.std::_Rb_tree.0" = type { %"struct.std::_Rb_tree<std::vector<int>, std::pair<const std::vector<int>, int>, std::_Select1st<std::pair<const std::vector<int>, int>>, std::less<std::vector<int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::vector<int>, std::pair<const std::vector<int>, int>, std::_Select1st<std::pair<const std::vector<int>, int>>, std::less<std::vector<int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl" }
%"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl" = type { %"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Item, std::allocator<Item>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.Instance = type { i32, i32, i32, i32, i32, %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", i32, i8, i8, i8, %"class.std::vector.18", %"class.std::vector.8", %"class.std::vector.8" }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl" }
%"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl" = type { %"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Arc, std::allocator<Arc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.MPS = type { ptr, i32, i32, [80 x i8] }
%"class.std::allocator.10" = type { i8 }

@.str = external hidden unnamed_addr constant [57 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [36 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.2 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [4 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef range(i32 0, 2) i32 @_Z9swig_mainiPPc(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca [256 x i8], align 16
  %4 = alloca %class.Arcflow, align 8
  %5 = alloca [256 x i8], align 16
  %6 = alloca %class.MPS, align 8
  %7 = alloca [80 x i8], align 16
  %8 = alloca [80 x i8], align 16
  %9 = alloca [80 x i8], align 16
  %10 = alloca [256 x i8], align 16
  %11 = alloca %"class.std::vector.8", align 8
  %12 = alloca %"class.std::vector.8", align 8
  %13 = alloca %"class.std::allocator.10", align 1
  %14 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str)
  %15 = load ptr, ptr @stdout, align 8, !tbaa !5
  %16 = tail call i32 @setvbuf(ptr noundef %15, ptr noundef null, i32 noundef 2, i64 noundef 0) #8
  %.not = icmp eq i32 %0, 3
  br i1 %.not, label %19, label %17

17:                                               ; preds = %2
  %18 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  br label %249

19:                                               ; preds = %2
  %20 = getelementptr inbounds i8, ptr %1, i64 8
  %21 = load ptr, ptr %20, align 8, !tbaa !5
  %22 = invoke noundef zeroext i1 @_Z9check_extPKcS0_(ptr noundef %21, ptr noundef nonnull @.str.2)
          to label %23 unwind label %28

23:                                               ; preds = %19
  br i1 %22, label %35, label %24

24:                                               ; preds = %23
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %3) #8
  %25 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %3, i64 noundef 256, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, i32 noundef 74) #8
  %26 = tail call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull %3)
          to label %27 unwind label %30

27:                                               ; preds = %24
  invoke void @__cxa_throw(ptr nonnull %26, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %250 unwind label %32

28:                                               ; preds = %19
  %29 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %237

30:                                               ; preds = %24
  %31 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  call void @__cxa_free_exception(ptr %26) #8
  br label %34

32:                                               ; preds = %27
  %33 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %34

34:                                               ; preds = %32, %30
  %.pn = phi { ptr, i32 } [ %33, %32 ], [ %31, %30 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %3) #8
  br label %237

35:                                               ; preds = %23
  call void @llvm.lifetime.start.p0(i64 608, ptr nonnull %4) #8
  %36 = load ptr, ptr %20, align 8, !tbaa !5
  invoke void @_ZN7ArcflowC1EPKc(ptr noundef nonnull align 8 dereferenceable(604) %4, ptr noundef %36)
          to label %37 unwind label %44

37:                                               ; preds = %35
  %38 = getelementptr inbounds i8, ptr %1, i64 16
  %39 = load ptr, ptr %38, align 8, !tbaa !5
  %40 = call noalias ptr @fopen(ptr noundef %39, ptr noundef nonnull @.str.6)
  %cond = icmp eq ptr %40, null
  br i1 %cond, label %41, label %52

41:                                               ; preds = %37
  call void @perror(ptr noundef nonnull @.str.7) #10
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %5) #8
  %42 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %5, i64 noundef 256, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.5, i32 noundef 82) #8
  %43 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull %5)
          to label %46 unwind label %47

44:                                               ; preds = %35
  %45 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %236

46:                                               ; preds = %41
  invoke void @__cxa_throw(ptr nonnull %43, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %250 unwind label %49

47:                                               ; preds = %41
  %48 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  call void @__cxa_free_exception(ptr %43) #8
  br label %51

49:                                               ; preds = %46
  %50 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %51

51:                                               ; preds = %49, %47
  %.pn93 = phi { ptr, i32 } [ %50, %49 ], [ %48, %47 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %5) #8
  br label %235

52:                                               ; preds = %37
  %53 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.9)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %6) #8
  call void @_ZN3MPSC2EP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(96) %6, ptr noundef nonnull %40)
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 4, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12)
          to label %54 unwind label %65

54:                                               ; preds = %52
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 1, ptr noundef nonnull @.str.13)
          to label %55 unwind label %65

55:                                               ; preds = %54
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 3, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.15)
          to label %56 unwind label %65

56:                                               ; preds = %55
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %9) #8
  %57 = getelementptr inbounds i8, ptr %4, i64 348
  %58 = load i32, ptr %57, align 4, !tbaa !9
  %59 = icmp sgt i32 %58, 0
  br i1 %59, label %.lr.ph, label %.preheader112

.lr.ph:                                           ; preds = %56
  %60 = getelementptr inbounds i8, ptr %4, i64 464
  %61 = getelementptr inbounds i8, ptr %4, i64 461
  br label %67

.preheader112:                                    ; preds = %88, %56
  %62 = getelementptr inbounds i8, ptr %4, i64 536
  %63 = load i32, ptr %62, align 8, !tbaa !29
  %64 = icmp sgt i32 %63, 0
  br i1 %64, label %.lr.ph118, label %._crit_edge

65:                                               ; preds = %55, %54, %52
  %66 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %234

67:                                               ; preds = %.lr.ph, %88
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %88 ]
  %68 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIcSaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %indvars.iv) #8
  %69 = load i8, ptr %68, align 1, !tbaa !50
  %70 = add i8 %69, -61
  %or.cond = icmp ult i8 %70, 2
  br i1 %or.cond, label %.invoke, label %71

71:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %10) #8
  %72 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %10, i64 noundef 256, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.5, i32 noundef 99) #8
  %73 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull %10)
          to label %74 unwind label %75

74:                                               ; preds = %71
  invoke void @__cxa_throw(ptr nonnull %73, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %250 unwind label %77

75:                                               ; preds = %71
  %76 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  call void @__cxa_free_exception(ptr %73) #8
  br label %79

77:                                               ; preds = %74
  %78 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %79

79:                                               ; preds = %77, %75
  %.pn101 = phi { ptr, i32 } [ %78, %77 ], [ %76, %75 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %10) #8
  br label %233

.invoke:                                          ; preds = %67
  %80 = icmp eq i8 %69, 61
  %81 = trunc nuw nsw i64 %indvars.iv to i32
  %82 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %7, i64 noundef 80, ptr noundef nonnull @.str.17, i32 noundef %81) #8
  %83 = load i8, ptr %61, align 1, !range !51
  %84 = trunc nuw i8 %83 to i1
  %spec.select = select i1 %84, ptr @.str.19, ptr @.str.18
  %85 = select i1 %80, ptr %spec.select, ptr @.str.19
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 3, ptr noundef nonnull @.str.11, ptr noundef nonnull %85, ptr noundef nonnull %7)
          to label %88 unwind label %86

86:                                               ; preds = %.invoke
  %87 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %233

88:                                               ; preds = %.invoke
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %89 = load i32, ptr %57, align 4, !tbaa !9
  %90 = sext i32 %89 to i64
  %91 = icmp slt i64 %indvars.iv.next, %90
  br i1 %91, label %67, label %.preheader112, !llvm.loop !52

._crit_edge:                                      ; preds = %93, %.preheader112
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 1, ptr noundef nonnull @.str.21)
          to label %99 unwind label %104

.lr.ph118:                                        ; preds = %.preheader112, %93
  %.074117 = phi i32 [ %94, %93 ], [ 0, %.preheader112 ]
  %92 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %7, i64 noundef 80, ptr noundef nonnull @.str.20, i32 noundef %.074117) #8
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 3, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.18, ptr noundef nonnull %7)
          to label %93 unwind label %97

93:                                               ; preds = %.lr.ph118
  %94 = add nuw nsw i32 %.074117, 1
  %95 = load i32, ptr %62, align 8, !tbaa !29
  %96 = icmp slt i32 %94, %95
  br i1 %96, label %.lr.ph118, label %._crit_edge, !llvm.loop !54

97:                                               ; preds = %.lr.ph118
  %98 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %233

99:                                               ; preds = %._crit_edge
  %100 = getelementptr inbounds i8, ptr %4, i64 462
  %101 = load i8, ptr %100, align 2, !tbaa !55
  %102 = icmp eq i8 %101, 73
  br i1 %102, label %103, label %106

103:                                              ; preds = %99
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 6, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.24)
          to label %106 unwind label %104

104:                                              ; preds = %103, %._crit_edge
  %105 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %233

106:                                              ; preds = %103, %99
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #8
  %107 = getelementptr inbounds i8, ptr %4, i64 540
  %108 = load i32, ptr %107, align 4, !tbaa !56
  %109 = sext i32 %108 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %109, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %110 unwind label %124

110:                                              ; preds = %106
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #8
  %111 = load i32, ptr %107, align 4, !tbaa !56
  %112 = icmp sgt i32 %111, 0
  br i1 %112, label %.lr.ph123, label %._crit_edge124

.lr.ph123:                                        ; preds = %110
  %113 = getelementptr inbounds i8, ptr %4, i64 576
  %114 = getelementptr inbounds i8, ptr %4, i64 600
  %115 = getelementptr inbounds i8, ptr %4, i64 432
  %116 = getelementptr inbounds i8, ptr %4, i64 544
  %117 = getelementptr inbounds i8, ptr %4, i64 461
  %118 = getelementptr inbounds i8, ptr %4, i64 352
  %119 = getelementptr inbounds i8, ptr %4, i64 552
  %120 = getelementptr inbounds i8, ptr %4, i64 408
  %121 = getelementptr inbounds i8, ptr %4, i64 384
  br label %126

._crit_edge124:                                   ; preds = %.loopexit, %110
  %122 = load i8, ptr %100, align 2, !tbaa !55
  %123 = icmp eq i8 %122, 73
  br i1 %123, label %195, label %198

124:                                              ; preds = %106
  %125 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #8
  br label %232

126:                                              ; preds = %.lr.ph123, %.loopexit
  %indvars.iv136 = phi i64 [ 0, %.lr.ph123 ], [ %indvars.iv.next137, %.loopexit ]
  %127 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorI3ArcSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %113, i64 noundef %indvars.iv136) #8
  %128 = getelementptr inbounds i8, ptr %127, i64 8
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 4 dereferenceable(4) %128)
          to label %129 unwind label %146

129:                                              ; preds = %126
  %130 = trunc nuw nsw i64 %indvars.iv136 to i32
  %131 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %7, i64 noundef 80, ptr noundef nonnull @.str.25, i32 noundef %130) #8
  %132 = load i32, ptr %127, align 4, !tbaa !57
  %133 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %8, i64 noundef 80, ptr noundef nonnull @.str.20, i32 noundef %132) #8
  %134 = getelementptr inbounds i8, ptr %127, i64 4
  %135 = load i32, ptr %134, align 4, !tbaa !59
  %136 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %9, i64 noundef 80, ptr noundef nonnull @.str.20, i32 noundef %135) #8
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 7, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.11, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull @.str.26, ptr noundef nonnull %9, ptr noundef nonnull @.str.27)
          to label %137 unwind label %146

137:                                              ; preds = %129
  %138 = load i32, ptr %128, align 4, !tbaa !60
  %139 = load i32, ptr %114, align 8, !tbaa !61
  %.not95 = icmp eq i32 %138, %139
  br i1 %.not95, label %148, label %140

140:                                              ; preds = %137
  %141 = sext i32 %138 to i64
  %142 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorI4ItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %115, i64 noundef %141) #8
  %143 = getelementptr inbounds i8, ptr %142, i64 52
  %144 = load i32, ptr %143, align 4, !tbaa !62
  %145 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %8, i64 noundef 80, ptr noundef nonnull @.str.17, i32 noundef %144) #8
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 5, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.11, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull @.str.27)
          to label %148 unwind label %146

146:                                              ; preds = %140, %129, %126
  %147 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %231

148:                                              ; preds = %140, %137
  %149 = load i32, ptr %134, align 4, !tbaa !59
  %150 = load i32, ptr %116, align 8, !tbaa !64
  %151 = icmp eq i32 %149, %150
  br i1 %151, label %.preheader111, label %180

.preheader111:                                    ; preds = %148
  %152 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %119) #8
  %153 = trunc i64 %152 to i32
  %154 = icmp sgt i32 %153, 0
  br i1 %154, label %.lr.ph120, label %.loopexit

155:                                              ; preds = %.lr.ph120
  %indvars.iv.next134 = add nuw nsw i64 %indvars.iv133, 1
  %156 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %119) #8
  %sext = shl i64 %156, 32
  %157 = ashr exact i64 %sext, 32
  %158 = icmp slt i64 %indvars.iv.next134, %157
  br i1 %158, label %.lr.ph120, label %.loopexit, !llvm.loop !65

.lr.ph120:                                        ; preds = %.preheader111, %155
  %indvars.iv133 = phi i64 [ %indvars.iv.next134, %155 ], [ 0, %.preheader111 ]
  %159 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %119, i64 noundef %indvars.iv133) #8
  %160 = load i32, ptr %159, align 4, !tbaa !66
  %161 = load i32, ptr %127, align 4, !tbaa !57
  %162 = icmp eq i32 %160, %161
  br i1 %162, label %163, label %155

163:                                              ; preds = %.lr.ph120
  %164 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %120, i64 noundef %indvars.iv133) #8
  %165 = load i32, ptr %164, align 4, !tbaa !66
  %166 = icmp sgt i32 %165, -1
  br i1 %166, label %167, label %170

167:                                              ; preds = %163
  %168 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %120, i64 noundef %indvars.iv133) #8
  %169 = load i32, ptr %168, align 4, !tbaa !66
  br label %172

170:                                              ; preds = %163
  %171 = load i32, ptr %118, align 8, !tbaa !67
  br label %172

172:                                              ; preds = %170, %167
  %173 = phi i32 [ %169, %167 ], [ %171, %170 ]
  %174 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %indvars.iv136) #8
  store i32 %173, ptr %174, align 4, !tbaa !66
  %175 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %121, i64 noundef %indvars.iv133) #8
  %176 = load i32, ptr %175, align 4, !tbaa !66
  %177 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %8, i64 noundef 80, ptr noundef nonnull @.str.28, i32 noundef %176) #8
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 5, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.11, ptr noundef nonnull %7, ptr noundef nonnull @.str.15, ptr noundef nonnull %8)
          to label %.loopexit unwind label %178

178:                                              ; preds = %172
  %179 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %231

180:                                              ; preds = %148
  %181 = load i32, ptr %128, align 4, !tbaa !60
  %182 = load i32, ptr %114, align 8, !tbaa !61
  %.not96 = icmp eq i32 %181, %182
  br i1 %.not96, label %.loopexit.sink.split, label %183

183:                                              ; preds = %180
  %184 = load i8, ptr %117, align 1, !tbaa !68, !range !51, !noundef !69
  %185 = trunc nuw i8 %184 to i1
  br i1 %185, label %.loopexit.sink.split, label %186

186:                                              ; preds = %183
  %187 = sext i32 %181 to i64
  %188 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNSt6vectorI4ItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %115, i64 noundef %187) #8
  %189 = getelementptr inbounds i8, ptr %188, i64 64
  br label %.loopexit.sink.split

.loopexit.sink.split:                             ; preds = %180, %183, %186
  %.sink147 = phi ptr [ %189, %186 ], [ %118, %183 ], [ %118, %180 ]
  %190 = load i32, ptr %.sink147, align 8, !tbaa !66
  %191 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %indvars.iv136) #8
  store i32 %190, ptr %191, align 4, !tbaa !66
  br label %.loopexit

.loopexit:                                        ; preds = %155, %.loopexit.sink.split, %.preheader111, %172
  %indvars.iv.next137 = add nuw nsw i64 %indvars.iv136, 1
  %192 = load i32, ptr %107, align 4, !tbaa !56
  %193 = sext i32 %192 to i64
  %194 = icmp slt i64 %indvars.iv.next137, %193
  br i1 %194, label %126, label %._crit_edge124, !llvm.loop !70

195:                                              ; preds = %._crit_edge124
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 6, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.29)
          to label %198 unwind label %196

196:                                              ; preds = %._crit_edge130, %._crit_edge127, %198, %195
  %197 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %231

198:                                              ; preds = %195, %._crit_edge124
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 1, ptr noundef nonnull @.str.30)
          to label %.preheader110 unwind label %196

.preheader110:                                    ; preds = %198
  %199 = load i32, ptr %57, align 4, !tbaa !9
  %200 = icmp sgt i32 %199, 0
  br i1 %200, label %.lr.ph126, label %._crit_edge127

.lr.ph126:                                        ; preds = %.preheader110
  %201 = getelementptr inbounds i8, ptr %4, i64 512
  br label %204

._crit_edge127:                                   ; preds = %210, %.preheader110
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 1, ptr noundef nonnull @.str.32)
          to label %.preheader unwind label %196

.preheader:                                       ; preds = %._crit_edge127
  %202 = load i32, ptr %107, align 4, !tbaa !56
  %203 = icmp sgt i32 %202, 0
  br i1 %203, label %.lr.ph129, label %._crit_edge130

204:                                              ; preds = %.lr.ph126, %210
  %indvars.iv139 = phi i64 [ 0, %.lr.ph126 ], [ %indvars.iv.next140, %210 ]
  %205 = trunc nuw nsw i64 %indvars.iv139 to i32
  %206 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %7, i64 noundef 80, ptr noundef nonnull @.str.17, i32 noundef %205) #8
  %207 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %201, i64 noundef %indvars.iv139) #8
  %208 = load i32, ptr %207, align 4, !tbaa !66
  %209 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %8, i64 noundef 80, ptr noundef nonnull @.str.28, i32 noundef %208) #8
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 5, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.31, ptr noundef nonnull %7, ptr noundef nonnull %8)
          to label %210 unwind label %214

210:                                              ; preds = %204
  %indvars.iv.next140 = add nuw nsw i64 %indvars.iv139, 1
  %211 = load i32, ptr %57, align 4, !tbaa !9
  %212 = sext i32 %211 to i64
  %213 = icmp slt i64 %indvars.iv.next140, %212
  br i1 %213, label %204, label %._crit_edge127, !llvm.loop !71

214:                                              ; preds = %204
  %215 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %231

._crit_edge130:                                   ; preds = %222, %.preheader
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 1, ptr noundef nonnull @.str.37)
          to label %228 unwind label %196

.lr.ph129:                                        ; preds = %.preheader, %222
  %indvars.iv142 = phi i64 [ %indvars.iv.next143, %222 ], [ 0, %.preheader ]
  %216 = trunc nuw nsw i64 %indvars.iv142 to i32
  %217 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %7, i64 noundef 80, ptr noundef nonnull @.str.25, i32 noundef %216) #8
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 5, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.34, ptr noundef nonnull %7, ptr noundef nonnull @.str.35)
          to label %218 unwind label %226

218:                                              ; preds = %.lr.ph129
  %219 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %indvars.iv142) #8
  %220 = load i32, ptr %219, align 4, !tbaa !66
  %221 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %8, i64 noundef 80, ptr noundef nonnull @.str.28, i32 noundef %220) #8
  invoke void (ptr, i32, ...) @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96) %6, i32 noundef 5, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.34, ptr noundef nonnull %7, ptr noundef nonnull %8)
          to label %222 unwind label %226

222:                                              ; preds = %218
  %indvars.iv.next143 = add nuw nsw i64 %indvars.iv142, 1
  %223 = load i32, ptr %107, align 4, !tbaa !56
  %224 = sext i32 %223 to i64
  %225 = icmp slt i64 %indvars.iv.next143, %224
  br i1 %225, label %.lr.ph129, label %._crit_edge130, !llvm.loop !72

226:                                              ; preds = %218, %.lr.ph129
  %227 = landingpad { ptr, i32 }
          catch ptr @_ZTISt13runtime_error
          catch ptr null
  br label %231

228:                                              ; preds = %._crit_edge130
  %229 = call i32 @fclose(ptr noundef nonnull %40)
  %230 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.38)
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %6) #8
  call void @_ZN7ArcflowD2Ev(ptr noundef nonnull align 8 dereferenceable(604) %4) #8
  call void @llvm.lifetime.end.p0(i64 608, ptr nonnull %4) #8
  br label %249

231:                                              ; preds = %146, %178, %226, %214, %196
  %.pn97.pn = phi { ptr, i32 } [ %215, %214 ], [ %227, %226 ], [ %197, %196 ], [ %179, %178 ], [ %147, %146 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  br label %232

232:                                              ; preds = %231, %124
  %.pn97.pn.pn = phi { ptr, i32 } [ %.pn97.pn, %231 ], [ %125, %124 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #8
  br label %233

233:                                              ; preds = %79, %86, %232, %104, %97
  %.pn103.pn = phi { ptr, i32 } [ %98, %97 ], [ %.pn97.pn.pn, %232 ], [ %105, %104 ], [ %87, %86 ], [ %.pn101, %79 ]
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %7) #8
  br label %234

234:                                              ; preds = %233, %65
  %.pn103.pn.pn = phi { ptr, i32 } [ %.pn103.pn, %233 ], [ %66, %65 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %6) #8
  br label %235

235:                                              ; preds = %234, %51
  %.pn103.pn.pn.pn = phi { ptr, i32 } [ %.pn103.pn.pn, %234 ], [ %.pn93, %51 ]
  call void @_ZN7ArcflowD2Ev(ptr noundef nonnull align 8 dereferenceable(604) %4) #8
  br label %236

236:                                              ; preds = %235, %44
  %.pn103.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn103.pn.pn.pn, %235 ], [ %45, %44 ]
  call void @llvm.lifetime.end.p0(i64 608, ptr nonnull %4) #8
  br label %237

237:                                              ; preds = %236, %34, %28
  %.pn103.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn103.pn.pn.pn.pn, %236 ], [ %.pn, %34 ], [ %29, %28 ]
  %.11 = extractvalue { ptr, i32 } %.pn103.pn.pn.pn.pn.pn, 0
  %.1186 = extractvalue { ptr, i32 } %.pn103.pn.pn.pn.pn.pn, 1
  %238 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt13runtime_error) #8
  %239 = icmp eq i32 %.1186, %238
  %240 = call ptr @__cxa_begin_catch(ptr %.11) #8
  br i1 %239, label %241, label %247

241:                                              ; preds = %237
  %242 = load ptr, ptr %240, align 8, !tbaa !73
  %243 = getelementptr inbounds i8, ptr %242, i64 16
  %244 = load ptr, ptr %243, align 8
  %245 = call noundef ptr %244(ptr noundef nonnull align 8 dereferenceable(16) %240) #8
  %246 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.40, ptr noundef %245)
  call void @__cxa_end_catch()
  br label %249

247:                                              ; preds = %237
  %248 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.39)
  call void @__cxa_end_catch()
  br label %249

249:                                              ; preds = %247, %241, %228, %17
  %.0 = phi i32 [ 1, %17 ], [ 1, %241 ], [ 1, %247 ], [ 0, %228 ]
  ret i32 %.0

250:                                              ; preds = %74, %46, %27
  unreachable
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @setvbuf(ptr nocapture noundef, ptr noundef, i32 noundef, i64 noundef) local_unnamed_addr #1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nofree nounwind
declare noundef i32 @snprintf(ptr noalias nocapture noundef writeonly, i64 noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #2

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

declare void @_ZN7ArcflowC1EPKc(ptr noundef nonnull align 8 dereferenceable(604), ptr noundef) unnamed_addr #2

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

; Function Attrs: nofree nounwind
declare void @perror(ptr nocapture noundef readonly) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3MPSC2EP8_IO_FILE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3MPS5writeEiz(ptr noundef nonnull align 8 dereferenceable(96), i32 noundef, ...) local_unnamed_addr #0 align 2

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7ArcflowD2Ev(ptr noundef nonnull align 8 dereferenceable(604)) unnamed_addr #6 align 2

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #7

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 12}
!10 = !{!"_ZTS8Instance", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !12, i64 24, !16, i64 48, !16, i64 72, !20, i64 96, !11, i64 120, !24, i64 124, !24, i64 125, !7, i64 126, !25, i64 128, !16, i64 152, !16, i64 176}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTSSt6vectorIS_IiSaIiEESaIS1_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!16 = !{!"_ZTSSt6vectorIiSaIiEE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"_ZTSSt6vectorI4ItemSaIS0_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseI4ItemSaIS0_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseI4ItemSaIS0_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseI4ItemSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!"bool", !7, i64 0}
!25 = !{!"_ZTSSt6vectorIcSaIcEE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIcSaIcEE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIcSaIcEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!29 = !{!30, !11, i64 536}
!30 = !{!"_ZTS7Arcflow", !24, i64 0, !31, i64 8, !40, i64 56, !16, i64 128, !41, i64 152, !16, i64 200, !16, i64 224, !16, i64 248, !20, i64 272, !12, i64 296, !11, i64 320, !39, i64 328, !10, i64 336, !11, i64 536, !11, i64 540, !11, i64 544, !16, i64 552, !46, i64 576, !11, i64 600}
!31 = !{!"_ZTSSt3setI3ArcSt4lessIS0_ESaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSSt8_Rb_treeI3ArcS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSNSt8_Rb_treeI3ArcS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE13_Rb_tree_implIS4_Lb1EEE", !34, i64 0, !36, i64 8}
!34 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI3ArcEE", !35, i64 0}
!35 = !{!"_ZTSSt4lessI3ArcE"}
!36 = !{!"_ZTSSt15_Rb_tree_header", !37, i64 0, !39, i64 32}
!37 = !{!"_ZTSSt18_Rb_tree_node_base", !38, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!38 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!39 = !{!"long", !7, i64 0}
!40 = !{!"_ZTS7NodeSet", !41, i64 0, !12, i64 48}
!41 = !{!"_ZTSSt3mapISt6vectorIiSaIiEEiSt4lessIS2_ESaISt4pairIKS2_iEEE", !42, i64 0}
!42 = !{!"_ZTSSt8_Rb_treeISt6vectorIiSaIiEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !43, i64 0}
!43 = !{!"_ZTSNSt8_Rb_treeISt6vectorIiSaIiEESt4pairIKS2_iESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !44, i64 0, !36, i64 8}
!44 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt6vectorIiSaIiEEEE", !45, i64 0}
!45 = !{!"_ZTSSt4lessISt6vectorIiSaIiEEE"}
!46 = !{!"_ZTSSt6vectorI3ArcSaIS0_EE", !47, i64 0}
!47 = !{!"_ZTSSt12_Vector_baseI3ArcSaIS0_EE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseI3ArcSaIS0_EE12_Vector_implE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseI3ArcSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!50 = !{!7, !7, i64 0}
!51 = !{i8 0, i8 2}
!52 = distinct !{!52, !53}
!53 = !{!"llvm.loop.mustprogress"}
!54 = distinct !{!54, !53}
!55 = !{!10, !7, i64 126}
!56 = !{!30, !11, i64 540}
!57 = !{!58, !11, i64 0}
!58 = !{!"_ZTS3Arc", !11, i64 0, !11, i64 4, !11, i64 8}
!59 = !{!58, !11, i64 4}
!60 = !{!58, !11, i64 8}
!61 = !{!30, !11, i64 600}
!62 = !{!63, !11, i64 52}
!63 = !{!"_ZTS4Item", !16, i64 0, !16, i64 24, !11, i64 48, !11, i64 52, !11, i64 56, !11, i64 60, !11, i64 64, !11, i64 68}
!64 = !{!30, !11, i64 544}
!65 = distinct !{!65, !53}
!66 = !{!11, !11, i64 0}
!67 = !{!10, !11, i64 16}
!68 = !{!10, !24, i64 125}
!69 = !{}
!70 = distinct !{!70, !53}
!71 = distinct !{!71, !53}
!72 = distinct !{!72, !53}
!73 = !{!74, !74, i64 0}
!74 = !{!"vtable pointer", !8, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass