; LLVM IR from gem5/gem5 :: ext/mcpat/cacti (io)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%class.InputParameter = type { i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i8, i8, i32, i32, i8, double, double, i8, i32, i32, i8 }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.1 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [10 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN14InputParameter9parse_cfgERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(368) %0, ptr noundef nonnull align 8 dereferenceable(32) %1) #0 align 2 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca [5000 x i8], align 16
  %7 = alloca [5000 x i8], align 16
  %8 = alloca [5000 x i8], align 16
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %9 = load ptr, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #8
  %10 = load ptr, ptr %4, align 8, !tbaa !5
  %11 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  %12 = call noalias ptr @fopen(ptr noundef %11, ptr noundef @.str)
  store ptr %12, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 5000, ptr %6) #8
  call void @llvm.lifetime.start.p0(i64 5000, ptr %7) #8
  call void @llvm.lifetime.start.p0(i64 5000, ptr %8) #8
  %13 = load ptr, ptr %5, align 8, !tbaa !5
  %14 = icmp ne ptr %13, null
  br i1 %14, label %19, label %15

15:                                               ; preds = %2
  %16 = load ptr, ptr %4, align 8, !tbaa !5
  %17 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %16)
  %18 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef @.str.1)
  call void @exit(i32 noundef -1) #9
  unreachable

19:                                               ; preds = %2
  br label %20

20:                                               ; preds = %778, %774, %766, %758, %750, %742, %734, %644, %630, %571, %554, %536, %534, %528, %515, %501, %476, %463, %426, %413, %408, %377, %332, %301, %256, %225, %204, %152, %143, %131, %122, %114, %105, %97, %89, %81, %73, %65, %56, %47, %38, %29, %19
  %21 = load ptr, ptr %5, align 8, !tbaa !5
  %22 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %23 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef %21, ptr noundef @.str.2, ptr noundef %22)
  %24 = icmp ne i32 %23, -1
  br i1 %24, label %25, label %779

25:                                               ; preds = %20
  %26 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %27 = call i32 @strncmp(ptr noundef @.str.3, ptr noundef %26, i64 noundef 5) #10
  %28 = icmp ne i32 %27, 0
  br i1 %28, label %34, label %29

29:                                               ; preds = %25
  %30 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %31 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %32 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 0
  %33 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %30, ptr noundef @.str.4, ptr noundef %31, ptr noundef %32) #8
  br label %20, !llvm.loop !9

34:                                               ; preds = %25
  %35 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %36 = call i32 @strncmp(ptr noundef @.str.5, ptr noundef %35, i64 noundef 10) #10
  %37 = icmp ne i32 %36, 0
  br i1 %37, label %43, label %38

38:                                               ; preds = %34
  %39 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %40 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %41 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 35
  %42 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %39, ptr noundef @.str.6, ptr noundef %40, ptr noundef %41) #8
  br label %20, !llvm.loop !9

43:                                               ; preds = %34
  %44 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %45 = call i32 @strncmp(ptr noundef @.str.7, ptr noundef %44, i64 noundef 13) #10
  %46 = icmp ne i32 %45, 0
  br i1 %46, label %52, label %47

47:                                               ; preds = %43
  %48 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %49 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %50 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 33
  %51 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %48, ptr noundef @.str.8, ptr noundef %49, ptr noundef %50) #8
  br label %20, !llvm.loop !9

52:                                               ; preds = %43
  %53 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %54 = call i32 @strncmp(ptr noundef @.str.9, ptr noundef %53, i64 noundef 24) #10
  %55 = icmp ne i32 %54, 0
  br i1 %55, label %61, label %56

56:                                               ; preds = %52
  %57 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %58 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %59 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 34
  %60 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %57, ptr noundef @.str.10, ptr noundef %58, ptr noundef %59) #8
  br label %20, !llvm.loop !9

61:                                               ; preds = %52
  %62 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %63 = call i32 @strncmp(ptr noundef @.str.11, ptr noundef %62, i64 noundef 6) #10
  %64 = icmp ne i32 %63, 0
  br i1 %64, label %69, label %65

65:                                               ; preds = %61
  %66 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %67 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 1
  %68 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %66, ptr noundef @.str.12, ptr noundef %67) #8
  br label %20, !llvm.loop !9

69:                                               ; preds = %61
  %70 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %71 = call i32 @strncmp(ptr noundef @.str.13, ptr noundef %70, i64 noundef 14) #10
  %72 = icmp ne i32 %71, 0
  br i1 %72, label %77, label %73

73:                                               ; preds = %69
  %74 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %75 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 2
  %76 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %74, ptr noundef @.str.14, ptr noundef %75) #8
  br label %20, !llvm.loop !9

77:                                               ; preds = %69
  %78 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %79 = call i32 @strncmp(ptr noundef @.str.15, ptr noundef %78, i64 noundef 11) #10
  %80 = icmp ne i32 %79, 0
  br i1 %80, label %85, label %81

81:                                               ; preds = %77
  %82 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %83 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 14
  %84 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %82, ptr noundef @.str.16, ptr noundef %83) #8
  br label %20, !llvm.loop !9

85:                                               ; preds = %77
  %86 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %87 = call i32 @strncmp(ptr noundef @.str.17, ptr noundef %86, i64 noundef 14) #10
  %88 = icmp ne i32 %87, 0
  br i1 %88, label %93, label %89

89:                                               ; preds = %85
  %90 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %91 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 15
  %92 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %90, ptr noundef @.str.18, ptr noundef %91) #8
  br label %20, !llvm.loop !9

93:                                               ; preds = %85
  %94 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %95 = call i32 @strncmp(ptr noundef @.str.19, ptr noundef %94, i64 noundef 16) #10
  %96 = icmp ne i32 %95, 0
  br i1 %96, label %101, label %97

97:                                               ; preds = %93
  %98 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %99 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 16
  %100 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %98, ptr noundef @.str.20, ptr noundef %99) #8
  br label %20, !llvm.loop !9

101:                                              ; preds = %93
  %102 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %103 = call i32 @strncmp(ptr noundef @.str.21, ptr noundef %102, i64 noundef 13) #10
  %104 = icmp ne i32 %103, 0
  br i1 %104, label %110, label %105

105:                                              ; preds = %101
  %106 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %107 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %108 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 17
  %109 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %106, ptr noundef @.str.22, ptr noundef %107, ptr noundef %108) #8
  br label %20, !llvm.loop !9

110:                                              ; preds = %101
  %111 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %112 = call i32 @strncmp(ptr noundef @.str.23, ptr noundef %111, i64 noundef 7) #10
  %113 = icmp ne i32 %112, 0
  br i1 %113, label %118, label %114

114:                                              ; preds = %110
  %115 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %116 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 18
  %117 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %115, ptr noundef @.str.24, ptr noundef %116) #8
  br label %20, !llvm.loop !9

118:                                              ; preds = %110
  %119 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %120 = call i32 @strncmp(ptr noundef @.str.25, ptr noundef %119, i64 noundef 9) #10
  %121 = icmp ne i32 %120, 0
  br i1 %121, label %127, label %122

122:                                              ; preds = %118
  %123 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %124 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %125 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 3
  %126 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %123, ptr noundef @.str.26, ptr noundef %124, ptr noundef %125) #8
  br label %20, !llvm.loop !9

127:                                              ; preds = %118
  %128 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %129 = call i32 @strncmp(ptr noundef @.str.27, ptr noundef %128, i64 noundef 11) #10
  %130 = icmp ne i32 %129, 0
  br i1 %130, label %139, label %131

131:                                              ; preds = %127
  %132 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %133 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 13
  %134 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %132, ptr noundef @.str.28, ptr noundef %133) #8
  %135 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 13
  %136 = load double, ptr %135, align 8, !tbaa !11
  %137 = fmul double %136, 1.000000e+03
  %138 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 12
  store double %137, ptr %138, align 8, !tbaa !17
  br label %20, !llvm.loop !9

139:                                              ; preds = %127
  %140 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %141 = call i32 @strncmp(ptr noundef @.str.29, ptr noundef %140, i64 noundef 13) #10
  %142 = icmp ne i32 %141, 0
  br i1 %142, label %148, label %143

143:                                              ; preds = %139
  %144 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %145 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %146 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 4
  %147 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %144, ptr noundef @.str.30, ptr noundef %145, ptr noundef %146) #8
  br label %20, !llvm.loop !9

148:                                              ; preds = %139
  %149 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %150 = call i32 @strncmp(ptr noundef @.str.31, ptr noundef %149, i64 noundef 22) #10
  %151 = icmp ne i32 %150, 0
  br i1 %151, label %157, label %152

152:                                              ; preds = %148
  %153 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %154 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %155 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 26
  %156 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %153, ptr noundef @.str.32, ptr noundef %154, ptr noundef %155) #8
  br label %20, !llvm.loop !9

157:                                              ; preds = %148
  %158 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %159 = call i32 @strncmp(ptr noundef @.str.33, ptr noundef %158, i64 noundef 11) #10
  %160 = icmp ne i32 %159, 0
  br i1 %160, label %205, label %161

161:                                              ; preds = %157
  %162 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %163 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %164 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %165 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %162, ptr noundef @.str.34, ptr noundef %163, ptr noundef %164) #8
  %166 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %167 = call i32 @strncmp(ptr noundef @.str.35, ptr noundef %166, i64 noundef 6) #10
  %168 = icmp ne i32 %167, 0
  br i1 %168, label %171, label %169

169:                                              ; preds = %161
  %170 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 20
  store i8 1, ptr %170, align 1, !tbaa !18
  br label %173

171:                                              ; preds = %161
  %172 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 20
  store i8 0, ptr %172, align 1, !tbaa !18
  br label %173

173:                                              ; preds = %171, %169
  %174 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %175 = call i32 @strncmp(ptr noundef @.str.36, ptr noundef %174, i64 noundef 12) #10
  %176 = icmp ne i32 %175, 0
  br i1 %176, label %179, label %177

177:                                              ; preds = %173
  %178 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 19
  store i8 1, ptr %178, align 4, !tbaa !19
  br label %181

179:                                              ; preds = %173
  %180 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 19
  store i8 0, ptr %180, align 4, !tbaa !19
  br label %181

181:                                              ; preds = %179, %177
  %182 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %183 = call i32 @strncmp(ptr noundef @.str.37, ptr noundef %182, i64 noundef 4) #10
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %187, label %185

185:                                              ; preds = %181
  %186 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 22
  store i8 1, ptr %186, align 1, !tbaa !20
  br label %189

187:                                              ; preds = %181
  %188 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 22
  store i8 0, ptr %188, align 1, !tbaa !20
  br label %189

189:                                              ; preds = %187, %185
  %190 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %191 = call i32 @strncmp(ptr noundef @.str.38, ptr noundef %190, i64 noundef 4) #10
  %192 = icmp ne i32 %191, 0
  br i1 %192, label %195, label %193

193:                                              ; preds = %189
  %194 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 21
  store i8 1, ptr %194, align 2, !tbaa !21
  br label %204

195:                                              ; preds = %189
  %196 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 19
  %197 = load i8, ptr %196, align 4, !tbaa !19, !range !22, !noundef !23
  %198 = trunc i8 %197 to i1
  br i1 %198, label %201, label %199

199:                                              ; preds = %195
  %200 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 21
  store i8 0, ptr %200, align 2, !tbaa !21
  br label %203

201:                                              ; preds = %195
  %202 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 21
  store i8 1, ptr %202, align 2, !tbaa !21
  br label %203

203:                                              ; preds = %201, %199
  br label %204

204:                                              ; preds = %203, %193
  br label %20, !llvm.loop !9

205:                                              ; preds = %157
  %206 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %207 = call i32 @strncmp(ptr noundef @.str.39, ptr noundef %206, i64 noundef 9) #10
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %226, label %209

209:                                              ; preds = %205
  %210 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %211 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %212 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %213 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %210, ptr noundef @.str.40, ptr noundef %211, ptr noundef %212) #8
  %214 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %215 = call i32 @strncmp(ptr noundef @.str.41, ptr noundef %214, i64 noundef 8) #10
  %216 = icmp ne i32 %215, 0
  br i1 %216, label %220, label %217

217:                                              ; preds = %209
  %218 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 5
  store i8 0, ptr %218, align 4, !tbaa !24
  %219 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 6
  store i32 42, ptr %219, align 8, !tbaa !25
  br label %225

220:                                              ; preds = %209
  %221 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 5
  store i8 1, ptr %221, align 4, !tbaa !24
  %222 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %223 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 6
  %224 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %222, ptr noundef @.str.42, ptr noundef %223) #8
  br label %225

225:                                              ; preds = %220, %217
  br label %20, !llvm.loop !9

226:                                              ; preds = %205
  %227 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %228 = call i32 @strncmp(ptr noundef @.str.43, ptr noundef %227, i64 noundef 12) #10
  %229 = icmp ne i32 %228, 0
  br i1 %229, label %257, label %230

230:                                              ; preds = %226
  %231 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %232 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %233 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %234 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %231, ptr noundef @.str.44, ptr noundef %232, ptr noundef %233) #8
  %235 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %236 = call i32 @strncmp(ptr noundef @.str.45, ptr noundef %235, i64 noundef 4) #10
  %237 = icmp ne i32 %236, 0
  br i1 %237, label %240, label %238

238:                                              ; preds = %230
  %239 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 7
  store i32 2, ptr %239, align 4, !tbaa !26
  br label %256

240:                                              ; preds = %230
  %241 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %242 = call i32 @strncmp(ptr noundef @.str.46, ptr noundef %241, i64 noundef 10) #10
  %243 = icmp ne i32 %242, 0
  br i1 %243, label %246, label %244

244:                                              ; preds = %240
  %245 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 7
  store i32 1, ptr %245, align 4, !tbaa !26
  br label %255

246:                                              ; preds = %240
  %247 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %248 = call i32 @strncmp(ptr noundef @.str.47, ptr noundef %247, i64 noundef 6) #10
  %249 = icmp ne i32 %248, 0
  br i1 %249, label %252, label %250

250:                                              ; preds = %246
  %251 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 7
  store i32 0, ptr %251, align 4, !tbaa !26
  br label %254

252:                                              ; preds = %246
  %253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.48)
  call void @exit(i32 noundef 0) #9
  unreachable

254:                                              ; preds = %250
  br label %255

255:                                              ; preds = %254, %244
  br label %256

256:                                              ; preds = %255, %238
  br label %20, !llvm.loop !9

257:                                              ; preds = %226
  %258 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %259 = call i32 @strncmp(ptr noundef @.str.49, ptr noundef %258, i64 noundef 21) #10
  %260 = icmp ne i32 %259, 0
  br i1 %260, label %302, label %261

261:                                              ; preds = %257
  %262 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %263 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %264 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %265 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %262, ptr noundef @.str.50, ptr noundef %263, ptr noundef %264) #8
  %266 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %267 = call i32 @strncmp(ptr noundef @.str.51, ptr noundef %266, i64 noundef 7) #10
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %271, label %269

269:                                              ; preds = %261
  %270 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 29
  store i32 0, ptr %270, align 8, !tbaa !27
  br label %301

271:                                              ; preds = %261
  %272 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %273 = call i32 @strncmp(ptr noundef @.str.52, ptr noundef %272, i64 noundef 9) #10
  %274 = icmp ne i32 %273, 0
  br i1 %274, label %277, label %275

275:                                              ; preds = %271
  %276 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 29
  store i32 1, ptr %276, align 8, !tbaa !27
  br label %300

277:                                              ; preds = %271
  %278 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %279 = call i32 @strncmp(ptr noundef @.str.53, ptr noundef %278, i64 noundef 8) #10
  %280 = icmp ne i32 %279, 0
  br i1 %280, label %283, label %281

281:                                              ; preds = %277
  %282 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 29
  store i32 2, ptr %282, align 8, !tbaa !27
  br label %299

283:                                              ; preds = %277
  %284 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %285 = call i32 @strncmp(ptr noundef @.str.54, ptr noundef %284, i64 noundef 7) #10
  %286 = icmp ne i32 %285, 0
  br i1 %286, label %289, label %287

287:                                              ; preds = %283
  %288 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 29
  store i32 3, ptr %288, align 8, !tbaa !27
  br label %298

289:                                              ; preds = %283
  %290 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %291 = call i32 @strncmp(ptr noundef @.str.55, ptr noundef %290, i64 noundef 9) #10
  %292 = icmp ne i32 %291, 0
  br i1 %292, label %295, label %293

293:                                              ; preds = %289
  %294 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 29
  store i32 4, ptr %294, align 8, !tbaa !27
  br label %297

295:                                              ; preds = %289
  %296 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.56)
  call void @exit(i32 noundef 0) #9
  unreachable

297:                                              ; preds = %293
  br label %298

298:                                              ; preds = %297, %287
  br label %299

299:                                              ; preds = %298, %281
  br label %300

300:                                              ; preds = %299, %275
  br label %301

301:                                              ; preds = %300, %269
  br label %20, !llvm.loop !9

302:                                              ; preds = %257
  %303 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %304 = call i32 @strncmp(ptr noundef @.str.57, ptr noundef %303, i64 noundef 27) #10
  %305 = icmp ne i32 %304, 0
  br i1 %305, label %333, label %306

306:                                              ; preds = %302
  %307 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %308 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %309 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %310 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %307, ptr noundef @.str.58, ptr noundef %308, ptr noundef %309) #8
  %311 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %312 = call i32 @strncmp(ptr noundef @.str.51, ptr noundef %311, i64 noundef 7) #10
  %313 = icmp ne i32 %312, 0
  br i1 %313, label %316, label %314

314:                                              ; preds = %306
  %315 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 30
  store i32 0, ptr %315, align 4, !tbaa !28
  br label %332

316:                                              ; preds = %306
  %317 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %318 = call i32 @strncmp(ptr noundef @.str.52, ptr noundef %317, i64 noundef 9) #10
  %319 = icmp ne i32 %318, 0
  br i1 %319, label %322, label %320

320:                                              ; preds = %316
  %321 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 30
  store i32 1, ptr %321, align 4, !tbaa !28
  br label %331

322:                                              ; preds = %316
  %323 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %324 = call i32 @strncmp(ptr noundef @.str.53, ptr noundef %323, i64 noundef 8) #10
  %325 = icmp ne i32 %324, 0
  br i1 %325, label %328, label %326

326:                                              ; preds = %322
  %327 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 30
  store i32 2, ptr %327, align 4, !tbaa !28
  br label %330

328:                                              ; preds = %322
  %329 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.56)
  call void @exit(i32 noundef 0) #9
  unreachable

330:                                              ; preds = %326
  br label %331

331:                                              ; preds = %330, %320
  br label %332

332:                                              ; preds = %331, %314
  br label %20, !llvm.loop !9

333:                                              ; preds = %302
  %334 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %335 = call i32 @strncmp(ptr noundef @.str.59, ptr noundef %334, i64 noundef 20) #10
  %336 = icmp ne i32 %335, 0
  br i1 %336, label %378, label %337

337:                                              ; preds = %333
  %338 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %339 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %340 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %341 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %338, ptr noundef @.str.60, ptr noundef %339, ptr noundef %340) #8
  %342 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %343 = call i32 @strncmp(ptr noundef @.str.51, ptr noundef %342, i64 noundef 7) #10
  %344 = icmp ne i32 %343, 0
  br i1 %344, label %347, label %345

345:                                              ; preds = %337
  %346 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 31
  store i32 0, ptr %346, align 8, !tbaa !29
  br label %377

347:                                              ; preds = %337
  %348 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %349 = call i32 @strncmp(ptr noundef @.str.52, ptr noundef %348, i64 noundef 9) #10
  %350 = icmp ne i32 %349, 0
  br i1 %350, label %353, label %351

351:                                              ; preds = %347
  %352 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 31
  store i32 1, ptr %352, align 8, !tbaa !29
  br label %376

353:                                              ; preds = %347
  %354 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %355 = call i32 @strncmp(ptr noundef @.str.53, ptr noundef %354, i64 noundef 8) #10
  %356 = icmp ne i32 %355, 0
  br i1 %356, label %359, label %357

357:                                              ; preds = %353
  %358 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 31
  store i32 2, ptr %358, align 8, !tbaa !29
  br label %375

359:                                              ; preds = %353
  %360 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %361 = call i32 @strncmp(ptr noundef @.str.54, ptr noundef %360, i64 noundef 7) #10
  %362 = icmp ne i32 %361, 0
  br i1 %362, label %365, label %363

363:                                              ; preds = %359
  %364 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 31
  store i32 3, ptr %364, align 8, !tbaa !29
  br label %374

365:                                              ; preds = %359
  %366 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %367 = call i32 @strncmp(ptr noundef @.str.55, ptr noundef %366, i64 noundef 9) #10
  %368 = icmp ne i32 %367, 0
  br i1 %368, label %371, label %369

369:                                              ; preds = %365
  %370 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 31
  store i32 4, ptr %370, align 8, !tbaa !29
  br label %373

371:                                              ; preds = %365
  %372 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.56)
  call void @exit(i32 noundef 0) #9
  unreachable

373:                                              ; preds = %369
  br label %374

374:                                              ; preds = %373, %363
  br label %375

375:                                              ; preds = %374, %357
  br label %376

376:                                              ; preds = %375, %351
  br label %377

377:                                              ; preds = %376, %345
  br label %20, !llvm.loop !9

378:                                              ; preds = %333
  %379 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %380 = call i32 @strncmp(ptr noundef @.str.61, ptr noundef %379, i64 noundef 26) #10
  %381 = icmp ne i32 %380, 0
  br i1 %381, label %409, label %382

382:                                              ; preds = %378
  %383 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %384 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %385 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %386 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %383, ptr noundef @.str.62, ptr noundef %384, ptr noundef %385) #8
  %387 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %388 = call i32 @strncmp(ptr noundef @.str.51, ptr noundef %387, i64 noundef 7) #10
  %389 = icmp ne i32 %388, 0
  br i1 %389, label %392, label %390

390:                                              ; preds = %382
  %391 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 32
  store i32 0, ptr %391, align 4, !tbaa !30
  br label %408

392:                                              ; preds = %382
  %393 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %394 = call i32 @strncmp(ptr noundef @.str.52, ptr noundef %393, i64 noundef 9) #10
  %395 = icmp ne i32 %394, 0
  br i1 %395, label %398, label %396

396:                                              ; preds = %392
  %397 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 32
  store i32 1, ptr %397, align 4, !tbaa !30
  br label %407

398:                                              ; preds = %392
  %399 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %400 = call i32 @strncmp(ptr noundef @.str.53, ptr noundef %399, i64 noundef 8) #10
  %401 = icmp ne i32 %400, 0
  br i1 %401, label %404, label %402

402:                                              ; preds = %398
  %403 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 32
  store i32 2, ptr %403, align 4, !tbaa !30
  br label %406

404:                                              ; preds = %398
  %405 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.56)
  call void @exit(i32 noundef 0) #9
  unreachable

406:                                              ; preds = %402
  br label %407

407:                                              ; preds = %406, %396
  br label %408

408:                                              ; preds = %407, %390
  br label %20, !llvm.loop !9

409:                                              ; preds = %378
  %410 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %411 = call i32 @strncmp(ptr noundef @.str.63, ptr noundef %410, i64 noundef 7) #10
  %412 = icmp ne i32 %411, 0
  br i1 %412, label %422, label %413

413:                                              ; preds = %409
  %414 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %415 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %416 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 54
  %417 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 55
  %418 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 56
  %419 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 57
  %420 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 58
  %421 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %414, ptr noundef @.str.64, ptr noundef %415, ptr noundef %416, ptr noundef %417, ptr noundef %418, ptr noundef %419, ptr noundef %420) #8
  br label %20, !llvm.loop !9

422:                                              ; preds = %409
  %423 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %424 = call i32 @strncmp(ptr noundef @.str.65, ptr noundef %423, i64 noundef 8) #10
  %425 = icmp ne i32 %424, 0
  br i1 %425, label %435, label %426

426:                                              ; preds = %422
  %427 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %428 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %429 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 64
  %430 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 65
  %431 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 66
  %432 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 67
  %433 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 68
  %434 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %427, ptr noundef @.str.64, ptr noundef %428, ptr noundef %429, ptr noundef %430, ptr noundef %431, ptr noundef %432, ptr noundef %433) #8
  br label %20, !llvm.loop !9

435:                                              ; preds = %422
  %436 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %437 = call i32 @strncmp(ptr noundef @.str.66, ptr noundef %436, i64 noundef 9) #10
  %438 = icmp ne i32 %437, 0
  br i1 %438, label %459, label %439

439:                                              ; preds = %435
  %440 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %441 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %442 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %443 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %440, ptr noundef @.str.67, ptr noundef %441, ptr noundef %442) #8
  %444 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %445 = call i32 @strncmp(ptr noundef @.str.68, ptr noundef %444, i64 noundef 4) #10
  %446 = icmp ne i32 %445, 0
  br i1 %446, label %449, label %447

447:                                              ; preds = %439
  %448 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 74
  store i32 2, ptr %448, align 4, !tbaa !31
  br label %458

449:                                              ; preds = %439
  %450 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %451 = call i32 @strncmp(ptr noundef @.str.69, ptr noundef %450, i64 noundef 2) #10
  %452 = icmp ne i32 %451, 0
  br i1 %452, label %455, label %453

453:                                              ; preds = %449
  %454 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 74
  store i32 1, ptr %454, align 4, !tbaa !31
  br label %457

455:                                              ; preds = %449
  %456 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 74
  store i32 0, ptr %456, align 4, !tbaa !31
  br label %457

457:                                              ; preds = %455, %453
  br label %458

458:                                              ; preds = %457, %447
  br label %459

459:                                              ; preds = %458, %435
  %460 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %461 = call i32 @strncmp(ptr noundef @.str.70, ptr noundef %460, i64 noundef 11) #10
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %472, label %463

463:                                              ; preds = %459
  %464 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %465 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %466 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 59
  %467 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 60
  %468 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 61
  %469 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 62
  %470 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 63
  %471 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %464, ptr noundef @.str.64, ptr noundef %465, ptr noundef %466, ptr noundef %467, ptr noundef %468, ptr noundef %469, ptr noundef %470) #8
  br label %20, !llvm.loop !9

472:                                              ; preds = %459
  %473 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %474 = call i32 @strncmp(ptr noundef @.str.71, ptr noundef %473, i64 noundef 12) #10
  %475 = icmp ne i32 %474, 0
  br i1 %475, label %485, label %476

476:                                              ; preds = %472
  %477 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %478 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %479 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 69
  %480 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 70
  %481 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 71
  %482 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 72
  %483 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 73
  %484 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %477, ptr noundef @.str.64, ptr noundef %478, ptr noundef %479, ptr noundef %480, ptr noundef %481, ptr noundef %482, ptr noundef %483) #8
  br label %20, !llvm.loop !9

485:                                              ; preds = %472
  %486 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %487 = call i32 @strncmp(ptr noundef @.str.72, ptr noundef %486, i64 noundef 12) #10
  %488 = icmp ne i32 %487, 0
  br i1 %488, label %502, label %489

489:                                              ; preds = %485
  %490 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %491 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %492 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %493 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %490, ptr noundef @.str.73, ptr noundef %491, ptr noundef %492) #8
  %494 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %495 = call i32 @strncmp(ptr noundef @.str.74, ptr noundef %494, i64 noundef 3) #10
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %499, label %497

497:                                              ; preds = %489
  %498 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 75
  store i32 0, ptr %498, align 8, !tbaa !32
  br label %501

499:                                              ; preds = %489
  %500 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 75
  store i32 1, ptr %500, align 8, !tbaa !32
  br label %501

501:                                              ; preds = %499, %497
  br label %20, !llvm.loop !9

502:                                              ; preds = %485
  %503 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %504 = call i32 @strncmp(ptr noundef @.str.75, ptr noundef %503, i64 noundef 10) #10
  %505 = icmp ne i32 %504, 0
  br i1 %505, label %516, label %506

506:                                              ; preds = %502
  %507 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %508 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 52
  %509 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %507, ptr noundef @.str.76, ptr noundef %508) #8
  %510 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 52
  %511 = load i32, ptr %510, align 4, !tbaa !33
  %512 = icmp ne i32 %511, 0
  br i1 %512, label %513, label %515

513:                                              ; preds = %506
  %514 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 53
  store i32 1, ptr %514, align 8, !tbaa !34
  br label %515

515:                                              ; preds = %513, %506
  br label %20, !llvm.loop !9

516:                                              ; preds = %502
  %517 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %518 = call i32 @strncmp(ptr noundef @.str.77, ptr noundef %517, i64 noundef 16) #10
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %538, label %520

520:                                              ; preds = %516
  %521 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %522 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %523 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %524 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %521, ptr noundef @.str.78, ptr noundef %522, ptr noundef %523) #8
  %525 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %526 = call i32 @strncmp(ptr noundef @.str.79, ptr noundef %525, i64 noundef 6) #10
  %527 = icmp ne i32 %526, 0
  br i1 %527, label %530, label %528

528:                                              ; preds = %520
  %529 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 37
  store i32 2, ptr %529, align 8, !tbaa !35
  br label %20, !llvm.loop !9

530:                                              ; preds = %520
  %531 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %532 = call i32 @strncmp(ptr noundef @.str.80, ptr noundef %531, i64 noundef 5) #10
  %533 = icmp ne i32 %532, 0
  br i1 %533, label %536, label %534

534:                                              ; preds = %530
  %535 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 37
  store i32 0, ptr %535, align 8, !tbaa !35
  br label %20, !llvm.loop !9

536:                                              ; preds = %530
  %537 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 37
  store i32 1, ptr %537, align 8, !tbaa !35
  br label %20, !llvm.loop !9

538:                                              ; preds = %516
  %539 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %540 = call i32 @strncmp(ptr noundef @.str.81, ptr noundef %539, i64 noundef 17) #10
  %541 = icmp ne i32 %540, 0
  br i1 %541, label %555, label %542

542:                                              ; preds = %538
  %543 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %544 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %545 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %546 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %543, ptr noundef @.str.78, ptr noundef %544, ptr noundef %545) #8
  %547 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %548 = call i32 @strncmp(ptr noundef @.str.79, ptr noundef %547, i64 noundef 6) #10
  %549 = icmp ne i32 %548, 0
  br i1 %549, label %552, label %550

550:                                              ; preds = %542
  %551 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 38
  store i32 2, ptr %551, align 4, !tbaa !36
  br label %554

552:                                              ; preds = %542
  %553 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 38
  store i32 1, ptr %553, align 4, !tbaa !36
  br label %554

554:                                              ; preds = %552, %550
  br label %20, !llvm.loop !9

555:                                              ; preds = %538
  %556 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %557 = call i32 @strncmp(ptr noundef @.str.82, ptr noundef %556, i64 noundef 24) #10
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %572, label %559

559:                                              ; preds = %555
  %560 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %561 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %562 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %563 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %560, ptr noundef @.str.83, ptr noundef %561, ptr noundef %562) #8
  %564 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %565 = call i32 @strncmp(ptr noundef @.str.84, ptr noundef %564, i64 noundef 10) #10
  %566 = icmp ne i32 %565, 0
  br i1 %566, label %569, label %567

567:                                              ; preds = %559
  %568 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 36
  store i32 0, ptr %568, align 4, !tbaa !37
  br label %571

569:                                              ; preds = %559
  %570 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 36
  store i32 1, ptr %570, align 4, !tbaa !37
  br label %571

571:                                              ; preds = %569, %567
  br label %20, !llvm.loop !9

572:                                              ; preds = %555
  %573 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %574 = call i32 @strncmp(ptr noundef @.str.85, ptr noundef %573, i64 noundef 16) #10
  %575 = icmp ne i32 %574, 0
  br i1 %575, label %631, label %576

576:                                              ; preds = %572
  %577 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %578 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %579 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %580 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %577, ptr noundef @.str.78, ptr noundef %578, ptr noundef %579) #8
  %581 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %582 = call i32 @strncmp(ptr noundef @.str.41, ptr noundef %581, i64 noundef 7) #10
  %583 = icmp ne i32 %582, 0
  br i1 %583, label %587, label %584

584:                                              ; preds = %576
  %585 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 40
  store i32 0, ptr %585, align 4, !tbaa !38
  %586 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 39
  store i32 0, ptr %586, align 8, !tbaa !39
  br label %630

587:                                              ; preds = %576
  %588 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %589 = call i32 @strncmp(ptr noundef @.str.86, ptr noundef %588, i64 noundef 9) #10
  %590 = icmp ne i32 %589, 0
  br i1 %590, label %594, label %591

591:                                              ; preds = %587
  %592 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 40
  store i32 1, ptr %592, align 4, !tbaa !38
  %593 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 39
  store i32 2, ptr %593, align 8, !tbaa !39
  br label %629

594:                                              ; preds = %587
  %595 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %596 = call i32 @strncmp(ptr noundef @.str.87, ptr noundef %595, i64 noundef 9) #10
  %597 = icmp ne i32 %596, 0
  br i1 %597, label %601, label %598

598:                                              ; preds = %594
  %599 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 40
  store i32 1, ptr %599, align 4, !tbaa !38
  %600 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 39
  store i32 3, ptr %600, align 8, !tbaa !39
  br label %628

601:                                              ; preds = %594
  %602 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %603 = call i32 @strncmp(ptr noundef @.str.88, ptr noundef %602, i64 noundef 9) #10
  %604 = icmp ne i32 %603, 0
  br i1 %604, label %608, label %605

605:                                              ; preds = %601
  %606 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 40
  store i32 1, ptr %606, align 4, !tbaa !38
  %607 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 39
  store i32 4, ptr %607, align 8, !tbaa !39
  br label %627

608:                                              ; preds = %601
  %609 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %610 = call i32 @strncmp(ptr noundef @.str.89, ptr noundef %609, i64 noundef 8) #10
  %611 = icmp ne i32 %610, 0
  br i1 %611, label %615, label %612

612:                                              ; preds = %608
  %613 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 40
  store i32 1, ptr %613, align 4, !tbaa !38
  %614 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 39
  store i32 1, ptr %614, align 8, !tbaa !39
  br label %626

615:                                              ; preds = %608
  %616 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %617 = call i32 @strncmp(ptr noundef @.str.90, ptr noundef %616, i64 noundef 6) #10
  %618 = icmp ne i32 %617, 0
  br i1 %618, label %622, label %619

619:                                              ; preds = %615
  %620 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 40
  store i32 1, ptr %620, align 4, !tbaa !38
  %621 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 39
  store i32 0, ptr %621, align 8, !tbaa !39
  br label %625

622:                                              ; preds = %615
  %623 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 39
  store i32 5, ptr %623, align 8, !tbaa !39
  %624 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 40
  store i32 1, ptr %624, align 4, !tbaa !38
  br label %625

625:                                              ; preds = %622, %619
  br label %626

626:                                              ; preds = %625, %612
  br label %627

627:                                              ; preds = %626, %605
  br label %628

628:                                              ; preds = %627, %598
  br label %629

629:                                              ; preds = %628, %591
  br label %630

630:                                              ; preds = %629, %584
  br label %20, !llvm.loop !9

631:                                              ; preds = %572
  %632 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %633 = call i32 @strncmp(ptr noundef @.str.91, ptr noundef %632, i64 noundef 5) #10
  %634 = icmp ne i32 %633, 0
  br i1 %634, label %645, label %635

635:                                              ; preds = %631
  %636 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %637 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 51
  %638 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %636, ptr noundef @.str.92, ptr noundef %637) #8
  %639 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 51
  %640 = load i32, ptr %639, align 8, !tbaa !40
  %641 = icmp sgt i32 %640, 16
  br i1 %641, label %642, label %644

642:                                              ; preds = %635
  %643 = call i32 (ptr, ...) @printf(ptr noundef @.str.93)
  br label %644

644:                                              ; preds = %642, %635
  br label %20, !llvm.loop !9

645:                                              ; preds = %631
  %646 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %647 = call i32 @strncmp(ptr noundef @.str.94, ptr noundef %646, i64 noundef 12) #10
  %648 = icmp ne i32 %647, 0
  br i1 %648, label %662, label %649

649:                                              ; preds = %645
  %650 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %651 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %652 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %653 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %650, ptr noundef @.str.95, ptr noundef %651, ptr noundef %652) #8
  %654 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %655 = call i32 @strncmp(ptr noundef @.str.96, ptr noundef %654, i64 noundef 2) #10
  %656 = icmp ne i32 %655, 0
  br i1 %656, label %659, label %657

657:                                              ; preds = %649
  %658 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 50
  store i32 0, ptr %658, align 4, !tbaa !41
  br label %661

659:                                              ; preds = %649
  %660 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 50
  store i32 1, ptr %660, align 4, !tbaa !41
  br label %661

661:                                              ; preds = %659, %657
  br label %662

662:                                              ; preds = %661, %645
  %663 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %664 = call i32 @strncmp(ptr noundef @.str.97, ptr noundef %663, i64 noundef 12) #10
  %665 = icmp ne i32 %664, 0
  br i1 %665, label %679, label %666

666:                                              ; preds = %662
  %667 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %668 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %669 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %670 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %667, ptr noundef @.str.98, ptr noundef %668, ptr noundef %669) #8
  %671 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %672 = call i32 @strncmp(ptr noundef @.str.99, ptr noundef %671, i64 noundef 8) #10
  %673 = icmp ne i32 %672, 0
  br i1 %673, label %676, label %674

674:                                              ; preds = %666
  %675 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 83
  store i32 1, ptr %675, align 4, !tbaa !42
  br label %678

676:                                              ; preds = %666
  %677 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 83
  store i32 0, ptr %677, align 4, !tbaa !42
  br label %678

678:                                              ; preds = %676, %674
  br label %679

679:                                              ; preds = %678, %662
  %680 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %681 = call i32 @strncmp(ptr noundef @.str.100, ptr noundef %680, i64 noundef 8) #10
  %682 = icmp ne i32 %681, 0
  br i1 %682, label %696, label %683

683:                                              ; preds = %679
  %684 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %685 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %686 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %687 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %684, ptr noundef @.str.101, ptr noundef %685, ptr noundef %686) #8
  %688 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %689 = call i32 @strncmp(ptr noundef @.str.102, ptr noundef %688, i64 noundef 4) #10
  %690 = icmp ne i32 %689, 0
  br i1 %690, label %693, label %691

691:                                              ; preds = %683
  %692 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 84
  store i8 1, ptr %692, align 8, !tbaa !43
  br label %695

693:                                              ; preds = %683
  %694 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 84
  store i8 0, ptr %694, align 8, !tbaa !43
  br label %695

695:                                              ; preds = %693, %691
  br label %696

696:                                              ; preds = %695, %679
  %697 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %698 = call i32 @strncmp(ptr noundef @.str.103, ptr noundef %697, i64 noundef 23) #10
  %699 = icmp ne i32 %698, 0
  br i1 %699, label %713, label %700

700:                                              ; preds = %696
  %701 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %702 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %703 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %704 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %701, ptr noundef @.str.104, ptr noundef %702, ptr noundef %703) #8
  %705 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %706 = call i32 @strncmp(ptr noundef @.str.102, ptr noundef %705, i64 noundef 4) #10
  %707 = icmp ne i32 %706, 0
  br i1 %707, label %710, label %708

708:                                              ; preds = %700
  %709 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 41
  store i8 1, ptr %709, align 8, !tbaa !44
  br label %712

710:                                              ; preds = %700
  %711 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 41
  store i8 0, ptr %711, align 8, !tbaa !44
  br label %712

712:                                              ; preds = %710, %708
  br label %713

713:                                              ; preds = %712, %696
  %714 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %715 = call i32 @strncmp(ptr noundef @.str.105, ptr noundef %714, i64 noundef 19) #10
  %716 = icmp ne i32 %715, 0
  br i1 %716, label %730, label %717

717:                                              ; preds = %713
  %718 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %719 = getelementptr inbounds [5000 x i8], ptr %7, i64 0, i64 0
  %720 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %721 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %718, ptr noundef @.str.106, ptr noundef %719, ptr noundef %720) #8
  %722 = getelementptr inbounds [5000 x i8], ptr %8, i64 0, i64 0
  %723 = call i32 @strncmp(ptr noundef @.str.102, ptr noundef %722, i64 noundef 4) #10
  %724 = icmp ne i32 %723, 0
  br i1 %724, label %727, label %725

725:                                              ; preds = %717
  %726 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 49
  store i8 1, ptr %726, align 8, !tbaa !45
  br label %729

727:                                              ; preds = %717
  %728 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 49
  store i8 0, ptr %728, align 8, !tbaa !45
  br label %729

729:                                              ; preds = %727, %725
  br label %730

730:                                              ; preds = %729, %713
  %731 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %732 = call i32 @strncmp(ptr noundef @.str.107, ptr noundef %731, i64 noundef 5) #10
  %733 = icmp ne i32 %732, 0
  br i1 %733, label %738, label %734

734:                                              ; preds = %730
  %735 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %736 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 43
  %737 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %735, ptr noundef @.str.108, ptr noundef %736) #8
  br label %20, !llvm.loop !9

738:                                              ; preds = %730
  %739 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %740 = call i32 @strncmp(ptr noundef @.str.109, ptr noundef %739, i64 noundef 5) #10
  %741 = icmp ne i32 %740, 0
  br i1 %741, label %746, label %742

742:                                              ; preds = %738
  %743 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %744 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 44
  %745 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %743, ptr noundef @.str.110, ptr noundef %744) #8
  br label %20, !llvm.loop !9

746:                                              ; preds = %738
  %747 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %748 = call i32 @strncmp(ptr noundef @.str.111, ptr noundef %747, i64 noundef 5) #10
  %749 = icmp ne i32 %748, 0
  br i1 %749, label %754, label %750

750:                                              ; preds = %746
  %751 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %752 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 45
  %753 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %751, ptr noundef @.str.112, ptr noundef %752) #8
  br label %20, !llvm.loop !9

754:                                              ; preds = %746
  %755 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %756 = call i32 @strncmp(ptr noundef @.str.113, ptr noundef %755, i64 noundef 7) #10
  %757 = icmp ne i32 %756, 0
  br i1 %757, label %762, label %758

758:                                              ; preds = %754
  %759 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %760 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 46
  %761 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %759, ptr noundef @.str.114, ptr noundef %760) #8
  br label %20, !llvm.loop !9

762:                                              ; preds = %754
  %763 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %764 = call i32 @strncmp(ptr noundef @.str.115, ptr noundef %763, i64 noundef 7) #10
  %765 = icmp ne i32 %764, 0
  br i1 %765, label %770, label %766

766:                                              ; preds = %762
  %767 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %768 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 47
  %769 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %767, ptr noundef @.str.116, ptr noundef %768) #8
  br label %20, !llvm.loop !9

770:                                              ; preds = %762
  %771 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %772 = call i32 @strncmp(ptr noundef @.str.117, ptr noundef %771, i64 noundef 5) #10
  %773 = icmp ne i32 %772, 0
  br i1 %773, label %778, label %774

774:                                              ; preds = %770
  %775 = getelementptr inbounds [5000 x i8], ptr %6, i64 0, i64 0
  %776 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 48
  %777 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %775, ptr noundef @.str.118, ptr noundef %776) #8
  br label %20, !llvm.loop !9

778:                                              ; preds = %770
  br label %20, !llvm.loop !9

779:                                              ; preds = %20
  %780 = getelementptr inbounds %class.InputParameter, ptr %9, i32 0, i32 23
  store i8 1, ptr %780, align 8, !tbaa !46
  %781 = load ptr, ptr %5, align 8, !tbaa !5
  %782 = call i32 @fclose(ptr noundef %781)
  call void @llvm.lifetime.end.p0(i64 5000, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 5000, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 5000, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  ret void
}

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

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

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

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

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #5

declare i32 @__isoc99_fscanf(ptr noundef, ptr noundef, ...) #2

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

; Function Attrs: nounwind
declare i32 @__isoc99_sscanf(ptr noundef, ptr noundef, ...) #7

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

declare i32 @fclose(ptr noundef) #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!12, !15, i64 56}
!12 = !{!"_ZTS14InputParameter", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !14, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36, !13, i64 40, !13, i64 44, !15, i64 48, !15, i64 56, !13, i64 64, !13, i64 68, !13, i64 72, !13, i64 76, !13, i64 80, !14, i64 84, !14, i64 85, !14, i64 86, !14, i64 87, !14, i64 88, !13, i64 92, !13, i64 96, !13, i64 100, !13, i64 104, !13, i64 108, !13, i64 112, !13, i64 116, !13, i64 120, !13, i64 124, !13, i64 128, !13, i64 132, !13, i64 136, !13, i64 140, !13, i64 144, !13, i64 148, !16, i64 152, !13, i64 156, !14, i64 160, !13, i64 164, !13, i64 168, !13, i64 172, !13, i64 176, !13, i64 180, !13, i64 184, !13, i64 188, !14, i64 192, !13, i64 196, !13, i64 200, !13, i64 204, !13, i64 208, !13, i64 212, !13, i64 216, !13, i64 220, !13, i64 224, !13, i64 228, !13, i64 232, !13, i64 236, !13, i64 240, !13, i64 244, !13, i64 248, !13, i64 252, !13, i64 256, !13, i64 260, !13, i64 264, !13, i64 268, !13, i64 272, !13, i64 276, !13, i64 280, !13, i64 284, !13, i64 288, !13, i64 292, !13, i64 296, !14, i64 300, !13, i64 304, !13, i64 308, !13, i64 312, !14, i64 316, !14, i64 317, !13, i64 320, !13, i64 324, !14, i64 328, !15, i64 336, !15, i64 344, !14, i64 352, !13, i64 356, !13, i64 360, !14, i64 364}
!13 = !{!"int", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"double", !7, i64 0}
!16 = !{!"_ZTS9Wire_type", !7, i64 0}
!17 = !{!12, !15, i64 48}
!18 = !{!12, !14, i64 85}
!19 = !{!12, !14, i64 84}
!20 = !{!12, !14, i64 87}
!21 = !{!12, !14, i64 86}
!22 = !{i8 0, i8 2}
!23 = !{}
!24 = !{!12, !14, i64 20}
!25 = !{!12, !13, i64 24}
!26 = !{!12, !13, i64 28}
!27 = !{!12, !13, i64 112}
!28 = !{!12, !13, i64 116}
!29 = !{!12, !13, i64 120}
!30 = !{!12, !13, i64 124}
!31 = !{!12, !13, i64 292}
!32 = !{!12, !13, i64 296}
!33 = !{!12, !13, i64 204}
!34 = !{!12, !13, i64 208}
!35 = !{!12, !13, i64 144}
!36 = !{!12, !13, i64 148}
!37 = !{!12, !13, i64 140}
!38 = !{!12, !13, i64 156}
!39 = !{!12, !16, i64 152}
!40 = !{!12, !13, i64 200}
!41 = !{!12, !13, i64 196}
!42 = !{!12, !13, i64 324}
!43 = !{!12, !14, i64 328}
!44 = !{!12, !14, i64 160}
!45 = !{!12, !14, i64 192}
!46 = !{!12, !14, i64 88}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.1 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [10 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN14InputParameter9parse_cfgERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(368) %0, ptr noundef nonnull align 8 dereferenceable(32) %1) local_unnamed_addr #0 align 2 {
  %3 = alloca [5000 x i8], align 16
  %4 = alloca [5000 x i8], align 16
  %5 = alloca [5000 x i8], align 16
  %6 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #8
  %7 = tail call noalias ptr @fopen(ptr noundef %6, ptr noundef nonnull @.str)
  call void @llvm.lifetime.start.p0(i64 5000, ptr nonnull %3) #8
  call void @llvm.lifetime.start.p0(i64 5000, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 5000, ptr nonnull %5) #8
  %.not = icmp eq ptr %7, null
  br i1 %.not, label %76, label %.preheader

.preheader:                                       ; preds = %2
  %8 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef nonnull %7, ptr noundef nonnull @.str.2, ptr noundef nonnull %3)
  %.not695 = icmp eq i32 %8, -1
  br i1 %.not695, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader
  %9 = getelementptr inbounds i8, ptr %0, i64 292
  %10 = getelementptr inbounds i8, ptr %0, i64 196
  %11 = getelementptr inbounds i8, ptr %0, i64 324
  %12 = getelementptr inbounds i8, ptr %0, i64 328
  %13 = getelementptr inbounds i8, ptr %0, i64 160
  %14 = getelementptr inbounds i8, ptr %0, i64 192
  %15 = getelementptr inbounds i8, ptr %0, i64 188
  %16 = getelementptr inbounds i8, ptr %0, i64 184
  %17 = getelementptr inbounds i8, ptr %0, i64 180
  %18 = getelementptr inbounds i8, ptr %0, i64 176
  %19 = getelementptr inbounds i8, ptr %0, i64 172
  %20 = getelementptr inbounds i8, ptr %0, i64 168
  %21 = getelementptr inbounds i8, ptr %0, i64 200
  %22 = getelementptr inbounds i8, ptr %0, i64 152
  %23 = getelementptr inbounds i8, ptr %0, i64 156
  %24 = getelementptr inbounds i8, ptr %0, i64 140
  %25 = getelementptr inbounds i8, ptr %0, i64 148
  %26 = getelementptr inbounds i8, ptr %0, i64 144
  %27 = getelementptr inbounds i8, ptr %0, i64 204
  %28 = getelementptr inbounds i8, ptr %0, i64 208
  %29 = getelementptr inbounds i8, ptr %0, i64 296
  %30 = getelementptr inbounds i8, ptr %0, i64 272
  %31 = getelementptr inbounds i8, ptr %0, i64 276
  %32 = getelementptr inbounds i8, ptr %0, i64 280
  %33 = getelementptr inbounds i8, ptr %0, i64 284
  %34 = getelementptr inbounds i8, ptr %0, i64 288
  %35 = getelementptr inbounds i8, ptr %0, i64 232
  %36 = getelementptr inbounds i8, ptr %0, i64 236
  %37 = getelementptr inbounds i8, ptr %0, i64 240
  %38 = getelementptr inbounds i8, ptr %0, i64 244
  %39 = getelementptr inbounds i8, ptr %0, i64 248
  %40 = getelementptr inbounds i8, ptr %0, i64 252
  %41 = getelementptr inbounds i8, ptr %0, i64 256
  %42 = getelementptr inbounds i8, ptr %0, i64 260
  %43 = getelementptr inbounds i8, ptr %0, i64 264
  %44 = getelementptr inbounds i8, ptr %0, i64 268
  %45 = getelementptr inbounds i8, ptr %0, i64 212
  %46 = getelementptr inbounds i8, ptr %0, i64 216
  %47 = getelementptr inbounds i8, ptr %0, i64 220
  %48 = getelementptr inbounds i8, ptr %0, i64 224
  %49 = getelementptr inbounds i8, ptr %0, i64 228
  %50 = getelementptr inbounds i8, ptr %0, i64 124
  %51 = getelementptr inbounds i8, ptr %0, i64 120
  %52 = getelementptr inbounds i8, ptr %0, i64 116
  %53 = getelementptr inbounds i8, ptr %0, i64 112
  %54 = getelementptr inbounds i8, ptr %0, i64 28
  %55 = getelementptr inbounds i8, ptr %0, i64 20
  %56 = getelementptr inbounds i8, ptr %0, i64 24
  %57 = getelementptr inbounds i8, ptr %0, i64 85
  %58 = getelementptr inbounds i8, ptr %0, i64 84
  %59 = getelementptr inbounds i8, ptr %0, i64 87
  %60 = getelementptr inbounds i8, ptr %0, i64 86
  %61 = getelementptr inbounds i8, ptr %0, i64 100
  %62 = getelementptr inbounds i8, ptr %0, i64 16
  %63 = getelementptr inbounds i8, ptr %0, i64 56
  %64 = getelementptr inbounds i8, ptr %0, i64 48
  %65 = getelementptr inbounds i8, ptr %0, i64 12
  %66 = getelementptr inbounds i8, ptr %0, i64 80
  %67 = getelementptr inbounds i8, ptr %0, i64 76
  %68 = getelementptr inbounds i8, ptr %0, i64 72
  %69 = getelementptr inbounds i8, ptr %0, i64 68
  %70 = getelementptr inbounds i8, ptr %0, i64 64
  %71 = getelementptr inbounds i8, ptr %0, i64 8
  %72 = getelementptr inbounds i8, ptr %0, i64 4
  %73 = getelementptr inbounds i8, ptr %0, i64 132
  %74 = getelementptr inbounds i8, ptr %0, i64 128
  %75 = getelementptr inbounds i8, ptr %0, i64 136
  br label %79

76:                                               ; preds = %2
  %77 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %1)
  %78 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull @.str.1)
  tail call void @exit(i32 noundef -1) #9
  unreachable

79:                                               ; preds = %.lr.ph, %.backedge
  %80 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 5) #10
  %.not7 = icmp eq i32 %80, 0
  br i1 %.not7, label %81, label %84

81:                                               ; preds = %79
  %82 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.4, ptr noundef nonnull %4, ptr noundef nonnull %0) #8
  br label %.backedge

.backedge:                                        ; preds = %329, %333, %310, %316, %322, %326, %325, %319, %313, %303, %304, %296, %297, %277, %280, %273, %274, %236, %242, %239, %216, %222, %228, %225, %219, %202, %208, %205, %182, %188, %194, %191, %185, %168, %174, %171, %160, %161, %151, %154, %153, %81, %86, %90, %94, %98, %102, %106, %110, %114, %118, %122, %126, %130, %136, %140, %247, %251, %262, %266, %286, %289, %290, %357, %361, %365, %369, %373, %377, %375
  %83 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef nonnull %7, ptr noundef nonnull @.str.2, ptr noundef nonnull %3)
  %.not6 = icmp eq i32 %83, -1
  br i1 %.not6, label %._crit_edge, label %79, !llvm.loop !5

84:                                               ; preds = %79
  %85 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.5, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 10) #10
  %.not8 = icmp eq i32 %85, 0
  br i1 %.not8, label %86, label %88

86:                                               ; preds = %84
  %87 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.6, ptr noundef nonnull %4, ptr noundef nonnull %75) #8
  br label %.backedge

88:                                               ; preds = %84
  %89 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.7, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 13) #10
  %.not9 = icmp eq i32 %89, 0
  br i1 %.not9, label %90, label %92

90:                                               ; preds = %88
  %91 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.8, ptr noundef nonnull %4, ptr noundef nonnull %74) #8
  br label %.backedge

92:                                               ; preds = %88
  %93 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.9, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 24) #10
  %.not10 = icmp eq i32 %93, 0
  br i1 %.not10, label %94, label %96

94:                                               ; preds = %92
  %95 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.10, ptr noundef nonnull %4, ptr noundef nonnull %73) #8
  br label %.backedge

96:                                               ; preds = %92
  %97 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.11, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 6) #10
  %.not11 = icmp eq i32 %97, 0
  br i1 %.not11, label %98, label %100

98:                                               ; preds = %96
  %99 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.12, ptr noundef nonnull %72) #8
  br label %.backedge

100:                                              ; preds = %96
  %101 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.13, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 14) #10
  %.not12 = icmp eq i32 %101, 0
  br i1 %.not12, label %102, label %104

102:                                              ; preds = %100
  %103 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.14, ptr noundef nonnull %71) #8
  br label %.backedge

104:                                              ; preds = %100
  %105 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.15, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 11) #10
  %.not13 = icmp eq i32 %105, 0
  br i1 %.not13, label %106, label %108

106:                                              ; preds = %104
  %107 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.16, ptr noundef nonnull %70) #8
  br label %.backedge

108:                                              ; preds = %104
  %109 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.17, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 14) #10
  %.not14 = icmp eq i32 %109, 0
  br i1 %.not14, label %110, label %112

110:                                              ; preds = %108
  %111 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.18, ptr noundef nonnull %69) #8
  br label %.backedge

112:                                              ; preds = %108
  %113 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.19, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 16) #10
  %.not15 = icmp eq i32 %113, 0
  br i1 %.not15, label %114, label %116

114:                                              ; preds = %112
  %115 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.20, ptr noundef nonnull %68) #8
  br label %.backedge

116:                                              ; preds = %112
  %117 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.21, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 13) #10
  %.not16 = icmp eq i32 %117, 0
  br i1 %.not16, label %118, label %120

118:                                              ; preds = %116
  %119 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.22, ptr noundef nonnull %4, ptr noundef nonnull %67) #8
  br label %.backedge

120:                                              ; preds = %116
  %121 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.23, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 7) #10
  %.not17 = icmp eq i32 %121, 0
  br i1 %.not17, label %122, label %124

122:                                              ; preds = %120
  %123 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.24, ptr noundef nonnull %66) #8
  br label %.backedge

124:                                              ; preds = %120
  %125 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.25, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 9) #10
  %.not18 = icmp eq i32 %125, 0
  br i1 %.not18, label %126, label %128

126:                                              ; preds = %124
  %127 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.26, ptr noundef nonnull %4, ptr noundef nonnull %65) #8
  br label %.backedge

128:                                              ; preds = %124
  %129 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.27, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 11) #10
  %.not19 = icmp eq i32 %129, 0
  br i1 %.not19, label %130, label %134

130:                                              ; preds = %128
  %131 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.28, ptr noundef nonnull %63) #8
  %132 = load double, ptr %63, align 8, !tbaa !7
  %133 = fmul double %132, 1.000000e+03
  store double %133, ptr %64, align 8, !tbaa !15
  br label %.backedge

134:                                              ; preds = %128
  %135 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.29, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 13) #10
  %.not20 = icmp eq i32 %135, 0
  br i1 %.not20, label %136, label %138

136:                                              ; preds = %134
  %137 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.30, ptr noundef nonnull %4, ptr noundef nonnull %62) #8
  br label %.backedge

138:                                              ; preds = %134
  %139 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.31, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 22) #10
  %.not21 = icmp eq i32 %139, 0
  br i1 %.not21, label %140, label %142

140:                                              ; preds = %138
  %141 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.32, ptr noundef nonnull %4, ptr noundef nonnull %61) #8
  br label %.backedge

142:                                              ; preds = %138
  %143 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.33, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 11) #10
  %.not22 = icmp eq i32 %143, 0
  br i1 %.not22, label %144, label %155

144:                                              ; preds = %142
  %145 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.34, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %146 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.35, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 6) #10
  %.not23 = icmp eq i32 %146, 0
  %spec.select = zext i1 %.not23 to i8
  store i8 %spec.select, ptr %57, align 1, !tbaa !16
  %147 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.36, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 12) #10
  %.not24 = icmp eq i32 %147, 0
  %148 = zext i1 %.not24 to i8
  store i8 %148, ptr %58, align 4, !tbaa !17
  %149 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.37, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 4) #10
  %.not25 = icmp eq i32 %149, 0
  %storemerge97 = zext i1 %.not25 to i8
  store i8 %storemerge97, ptr %59, align 1, !tbaa !18
  %150 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.38, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 4) #10
  %.not26 = icmp eq i32 %150, 0
  br i1 %.not26, label %151, label %152

151:                                              ; preds = %144
  store i8 1, ptr %60, align 2, !tbaa !19
  br label %.backedge

152:                                              ; preds = %144
  br i1 %.not24, label %154, label %153

153:                                              ; preds = %152
  store i8 0, ptr %60, align 2, !tbaa !19
  br label %.backedge

154:                                              ; preds = %152
  store i8 1, ptr %60, align 2, !tbaa !19
  br label %.backedge

155:                                              ; preds = %142
  %156 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.39, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 9) #10
  %.not27 = icmp eq i32 %156, 0
  br i1 %.not27, label %157, label %163

157:                                              ; preds = %155
  %158 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.40, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %159 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.41, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 8) #10
  %.not28 = icmp eq i32 %159, 0
  br i1 %.not28, label %160, label %161

160:                                              ; preds = %157
  store i8 0, ptr %55, align 4, !tbaa !20
  store i32 42, ptr %56, align 8, !tbaa !21
  br label %.backedge

161:                                              ; preds = %157
  store i8 1, ptr %55, align 4, !tbaa !20
  %162 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.42, ptr noundef nonnull %56) #8
  br label %.backedge

163:                                              ; preds = %155
  %164 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.43, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 12) #10
  %.not29 = icmp eq i32 %164, 0
  br i1 %.not29, label %165, label %177

165:                                              ; preds = %163
  %166 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.44, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %167 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.45, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 4) #10
  %.not30 = icmp eq i32 %167, 0
  br i1 %.not30, label %168, label %169

168:                                              ; preds = %165
  store i32 2, ptr %54, align 4, !tbaa !22
  br label %.backedge

169:                                              ; preds = %165
  %170 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.46, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 10) #10
  %.not31 = icmp eq i32 %170, 0
  br i1 %.not31, label %171, label %172

171:                                              ; preds = %169
  store i32 1, ptr %54, align 4, !tbaa !22
  br label %.backedge

172:                                              ; preds = %169
  %173 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.47, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 6) #10
  %.not32 = icmp eq i32 %173, 0
  br i1 %.not32, label %174, label %175

174:                                              ; preds = %172
  store i32 0, ptr %54, align 4, !tbaa !22
  br label %.backedge

175:                                              ; preds = %172
  %176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.48)
  call void @exit(i32 noundef 0) #9
  unreachable

177:                                              ; preds = %163
  %178 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.49, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 21) #10
  %.not33 = icmp eq i32 %178, 0
  br i1 %.not33, label %179, label %197

179:                                              ; preds = %177
  %180 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.50, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %181 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.51, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 7) #10
  %.not34 = icmp eq i32 %181, 0
  br i1 %.not34, label %182, label %183

182:                                              ; preds = %179
  store i32 0, ptr %53, align 8, !tbaa !23
  br label %.backedge

183:                                              ; preds = %179
  %184 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.52, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 9) #10
  %.not35 = icmp eq i32 %184, 0
  br i1 %.not35, label %185, label %186

185:                                              ; preds = %183
  store i32 1, ptr %53, align 8, !tbaa !23
  br label %.backedge

186:                                              ; preds = %183
  %187 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.53, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 8) #10
  %.not36 = icmp eq i32 %187, 0
  br i1 %.not36, label %188, label %189

188:                                              ; preds = %186
  store i32 2, ptr %53, align 8, !tbaa !23
  br label %.backedge

189:                                              ; preds = %186
  %190 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.54, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 7) #10
  %.not37 = icmp eq i32 %190, 0
  br i1 %.not37, label %191, label %192

191:                                              ; preds = %189
  store i32 3, ptr %53, align 8, !tbaa !23
  br label %.backedge

192:                                              ; preds = %189
  %193 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.55, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 9) #10
  %.not38 = icmp eq i32 %193, 0
  br i1 %.not38, label %194, label %195

194:                                              ; preds = %192
  store i32 4, ptr %53, align 8, !tbaa !23
  br label %.backedge

195:                                              ; preds = %192
  %196 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.56)
  call void @exit(i32 noundef 0) #9
  unreachable

197:                                              ; preds = %177
  %198 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.57, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 27) #10
  %.not39 = icmp eq i32 %198, 0
  br i1 %.not39, label %199, label %211

199:                                              ; preds = %197
  %200 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.58, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %201 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.51, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 7) #10
  %.not40 = icmp eq i32 %201, 0
  br i1 %.not40, label %202, label %203

202:                                              ; preds = %199
  store i32 0, ptr %52, align 4, !tbaa !24
  br label %.backedge

203:                                              ; preds = %199
  %204 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.52, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 9) #10
  %.not41 = icmp eq i32 %204, 0
  br i1 %.not41, label %205, label %206

205:                                              ; preds = %203
  store i32 1, ptr %52, align 4, !tbaa !24
  br label %.backedge

206:                                              ; preds = %203
  %207 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.53, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 8) #10
  %.not42 = icmp eq i32 %207, 0
  br i1 %.not42, label %208, label %209

208:                                              ; preds = %206
  store i32 2, ptr %52, align 4, !tbaa !24
  br label %.backedge

209:                                              ; preds = %206
  %210 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.56)
  call void @exit(i32 noundef 0) #9
  unreachable

211:                                              ; preds = %197
  %212 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.59, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 20) #10
  %.not43 = icmp eq i32 %212, 0
  br i1 %.not43, label %213, label %231

213:                                              ; preds = %211
  %214 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.60, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %215 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.51, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 7) #10
  %.not44 = icmp eq i32 %215, 0
  br i1 %.not44, label %216, label %217

216:                                              ; preds = %213
  store i32 0, ptr %51, align 8, !tbaa !25
  br label %.backedge

217:                                              ; preds = %213
  %218 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.52, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 9) #10
  %.not45 = icmp eq i32 %218, 0
  br i1 %.not45, label %219, label %220

219:                                              ; preds = %217
  store i32 1, ptr %51, align 8, !tbaa !25
  br label %.backedge

220:                                              ; preds = %217
  %221 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.53, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 8) #10
  %.not46 = icmp eq i32 %221, 0
  br i1 %.not46, label %222, label %223

222:                                              ; preds = %220
  store i32 2, ptr %51, align 8, !tbaa !25
  br label %.backedge

223:                                              ; preds = %220
  %224 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.54, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 7) #10
  %.not47 = icmp eq i32 %224, 0
  br i1 %.not47, label %225, label %226

225:                                              ; preds = %223
  store i32 3, ptr %51, align 8, !tbaa !25
  br label %.backedge

226:                                              ; preds = %223
  %227 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.55, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 9) #10
  %.not48 = icmp eq i32 %227, 0
  br i1 %.not48, label %228, label %229

228:                                              ; preds = %226
  store i32 4, ptr %51, align 8, !tbaa !25
  br label %.backedge

229:                                              ; preds = %226
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.56)
  call void @exit(i32 noundef 0) #9
  unreachable

231:                                              ; preds = %211
  %232 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.61, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 26) #10
  %.not49 = icmp eq i32 %232, 0
  br i1 %.not49, label %233, label %245

233:                                              ; preds = %231
  %234 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.62, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %235 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.51, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 7) #10
  %.not50 = icmp eq i32 %235, 0
  br i1 %.not50, label %236, label %237

236:                                              ; preds = %233
  store i32 0, ptr %50, align 4, !tbaa !26
  br label %.backedge

237:                                              ; preds = %233
  %238 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.52, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 9) #10
  %.not51 = icmp eq i32 %238, 0
  br i1 %.not51, label %239, label %240

239:                                              ; preds = %237
  store i32 1, ptr %50, align 4, !tbaa !26
  br label %.backedge

240:                                              ; preds = %237
  %241 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.53, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 8) #10
  %.not52 = icmp eq i32 %241, 0
  br i1 %.not52, label %242, label %243

242:                                              ; preds = %240
  store i32 2, ptr %50, align 4, !tbaa !26
  br label %.backedge

243:                                              ; preds = %240
  %244 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.56)
  call void @exit(i32 noundef 0) #9
  unreachable

245:                                              ; preds = %231
  %246 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.63, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 7) #10
  %.not53 = icmp eq i32 %246, 0
  br i1 %.not53, label %247, label %249

247:                                              ; preds = %245
  %248 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.64, ptr noundef nonnull %4, ptr noundef nonnull %45, ptr noundef nonnull %46, ptr noundef nonnull %47, ptr noundef nonnull %48, ptr noundef nonnull %49) #8
  br label %.backedge

249:                                              ; preds = %245
  %250 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.65, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 8) #10
  %.not54 = icmp eq i32 %250, 0
  br i1 %.not54, label %251, label %253

251:                                              ; preds = %249
  %252 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.64, ptr noundef nonnull %4, ptr noundef nonnull %40, ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef nonnull %44) #8
  br label %.backedge

253:                                              ; preds = %249
  %254 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.66, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 9) #10
  %.not55 = icmp eq i32 %254, 0
  br i1 %.not55, label %255, label %260

255:                                              ; preds = %253
  %256 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.67, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %257 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.68, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 4) #10
  %.not56 = icmp eq i32 %257, 0
  br i1 %.not56, label %.sink.split, label %258

258:                                              ; preds = %255
  %259 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.69, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 2) #10
  %.not57 = icmp eq i32 %259, 0
  %. = zext i1 %.not57 to i32
  br label %.sink.split

.sink.split:                                      ; preds = %258, %255
  %.sink = phi i32 [ 2, %255 ], [ %., %258 ]
  store i32 %.sink, ptr %9, align 4, !tbaa !27
  br label %260

260:                                              ; preds = %.sink.split, %253
  %261 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.70, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 11) #10
  %.not58 = icmp eq i32 %261, 0
  br i1 %.not58, label %262, label %264

262:                                              ; preds = %260
  %263 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.64, ptr noundef nonnull %4, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %39) #8
  br label %.backedge

264:                                              ; preds = %260
  %265 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.71, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 12) #10
  %.not59 = icmp eq i32 %265, 0
  br i1 %.not59, label %266, label %268

266:                                              ; preds = %264
  %267 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.64, ptr noundef nonnull %4, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34) #8
  br label %.backedge

268:                                              ; preds = %264
  %269 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.72, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 12) #10
  %.not60 = icmp eq i32 %269, 0
  br i1 %.not60, label %270, label %275

270:                                              ; preds = %268
  %271 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.73, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %272 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.74, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 3) #10
  %.not61 = icmp eq i32 %272, 0
  br i1 %.not61, label %273, label %274

273:                                              ; preds = %270
  store i32 0, ptr %29, align 8, !tbaa !28
  br label %.backedge

274:                                              ; preds = %270
  store i32 1, ptr %29, align 8, !tbaa !28
  br label %.backedge

275:                                              ; preds = %268
  %276 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.75, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 10) #10
  %.not62 = icmp eq i32 %276, 0
  br i1 %.not62, label %277, label %281

277:                                              ; preds = %275
  %278 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.76, ptr noundef nonnull %27) #8
  %279 = load i32, ptr %27, align 4, !tbaa !29
  %.not63 = icmp eq i32 %279, 0
  br i1 %.not63, label %.backedge, label %280

280:                                              ; preds = %277
  store i32 1, ptr %28, align 8, !tbaa !30
  br label %.backedge

281:                                              ; preds = %275
  %282 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.77, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 16) #10
  %.not64 = icmp eq i32 %282, 0
  br i1 %.not64, label %283, label %291

283:                                              ; preds = %281
  %284 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.78, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %285 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.79, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 6) #10
  %.not65 = icmp eq i32 %285, 0
  br i1 %.not65, label %286, label %287

286:                                              ; preds = %283
  store i32 2, ptr %26, align 8, !tbaa !31
  br label %.backedge

287:                                              ; preds = %283
  %288 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.80, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 5) #10
  %.not66 = icmp eq i32 %288, 0
  br i1 %.not66, label %289, label %290

289:                                              ; preds = %287
  store i32 0, ptr %26, align 8, !tbaa !31
  br label %.backedge

290:                                              ; preds = %287
  store i32 1, ptr %26, align 8, !tbaa !31
  br label %.backedge

291:                                              ; preds = %281
  %292 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.81, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 17) #10
  %.not67 = icmp eq i32 %292, 0
  br i1 %.not67, label %293, label %298

293:                                              ; preds = %291
  %294 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.78, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %295 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.79, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 6) #10
  %.not68 = icmp eq i32 %295, 0
  br i1 %.not68, label %296, label %297

296:                                              ; preds = %293
  store i32 2, ptr %25, align 4, !tbaa !32
  br label %.backedge

297:                                              ; preds = %293
  store i32 1, ptr %25, align 4, !tbaa !32
  br label %.backedge

298:                                              ; preds = %291
  %299 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.82, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 24) #10
  %.not69 = icmp eq i32 %299, 0
  br i1 %.not69, label %300, label %305

300:                                              ; preds = %298
  %301 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.83, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %302 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.84, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 10) #10
  %.not70 = icmp eq i32 %302, 0
  br i1 %.not70, label %303, label %304

303:                                              ; preds = %300
  store i32 0, ptr %24, align 4, !tbaa !33
  br label %.backedge

304:                                              ; preds = %300
  store i32 1, ptr %24, align 4, !tbaa !33
  br label %.backedge

305:                                              ; preds = %298
  %306 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.85, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 16) #10
  %.not71 = icmp eq i32 %306, 0
  br i1 %.not71, label %307, label %327

307:                                              ; preds = %305
  %308 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.78, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %309 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.41, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 7) #10
  %.not72 = icmp eq i32 %309, 0
  br i1 %.not72, label %310, label %311

310:                                              ; preds = %307
  store i32 0, ptr %23, align 4, !tbaa !34
  store i32 0, ptr %22, align 8, !tbaa !35
  br label %.backedge

311:                                              ; preds = %307
  %312 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.86, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 9) #10
  %.not73 = icmp eq i32 %312, 0
  br i1 %.not73, label %313, label %314

313:                                              ; preds = %311
  store i32 1, ptr %23, align 4, !tbaa !34
  store i32 2, ptr %22, align 8, !tbaa !35
  br label %.backedge

314:                                              ; preds = %311
  %315 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.87, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 9) #10
  %.not74 = icmp eq i32 %315, 0
  br i1 %.not74, label %316, label %317

316:                                              ; preds = %314
  store i32 1, ptr %23, align 4, !tbaa !34
  store i32 3, ptr %22, align 8, !tbaa !35
  br label %.backedge

317:                                              ; preds = %314
  %318 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.88, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 9) #10
  %.not75 = icmp eq i32 %318, 0
  br i1 %.not75, label %319, label %320

319:                                              ; preds = %317
  store i32 1, ptr %23, align 4, !tbaa !34
  store i32 4, ptr %22, align 8, !tbaa !35
  br label %.backedge

320:                                              ; preds = %317
  %321 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.89, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 8) #10
  %.not76 = icmp eq i32 %321, 0
  br i1 %.not76, label %322, label %323

322:                                              ; preds = %320
  store i32 1, ptr %23, align 4, !tbaa !34
  store i32 1, ptr %22, align 8, !tbaa !35
  br label %.backedge

323:                                              ; preds = %320
  %324 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.90, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 6) #10
  %.not77 = icmp eq i32 %324, 0
  br i1 %.not77, label %325, label %326

325:                                              ; preds = %323
  store i32 1, ptr %23, align 4, !tbaa !34
  store i32 0, ptr %22, align 8, !tbaa !35
  br label %.backedge

326:                                              ; preds = %323
  store i32 5, ptr %22, align 8, !tbaa !35
  store i32 1, ptr %23, align 4, !tbaa !34
  br label %.backedge

327:                                              ; preds = %305
  %328 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.91, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 5) #10
  %.not78 = icmp eq i32 %328, 0
  br i1 %.not78, label %329, label %335

329:                                              ; preds = %327
  %330 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.92, ptr noundef nonnull %21) #8
  %331 = load i32, ptr %21, align 8, !tbaa !36
  %332 = icmp sgt i32 %331, 16
  br i1 %332, label %333, label %.backedge

333:                                              ; preds = %329
  %334 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.93)
  br label %.backedge

335:                                              ; preds = %327
  %336 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.94, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 12) #10
  %.not79 = icmp eq i32 %336, 0
  br i1 %.not79, label %.sink.split98, label %339

.sink.split98:                                    ; preds = %335
  %337 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.95, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %338 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.96, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 2) #10
  %.not80 = icmp ne i32 %338, 0
  %.108 = zext i1 %.not80 to i32
  store i32 %.108, ptr %10, align 4, !tbaa !37
  br label %339

339:                                              ; preds = %.sink.split98, %335
  %340 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.97, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 12) #10
  %.not81 = icmp eq i32 %340, 0
  br i1 %.not81, label %.sink.split100, label %343

.sink.split100:                                   ; preds = %339
  %341 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.98, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %342 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.99, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 8) #10
  %.not82 = icmp eq i32 %342, 0
  %.109 = zext i1 %.not82 to i32
  store i32 %.109, ptr %11, align 4, !tbaa !38
  br label %343

343:                                              ; preds = %.sink.split100, %339
  %344 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.100, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 8) #10
  %.not83 = icmp eq i32 %344, 0
  br i1 %.not83, label %.sink.split102, label %347

.sink.split102:                                   ; preds = %343
  %345 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.101, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %346 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.102, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 4) #10
  %.not84 = icmp eq i32 %346, 0
  %.110 = zext i1 %.not84 to i8
  store i8 %.110, ptr %12, align 8, !tbaa !39
  br label %347

347:                                              ; preds = %.sink.split102, %343
  %348 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.103, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 23) #10
  %.not85 = icmp eq i32 %348, 0
  br i1 %.not85, label %.sink.split104, label %351

.sink.split104:                                   ; preds = %347
  %349 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.104, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %350 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.102, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 4) #10
  %.not86 = icmp eq i32 %350, 0
  %.111 = zext i1 %.not86 to i8
  store i8 %.111, ptr %13, align 8, !tbaa !40
  br label %351

351:                                              ; preds = %.sink.split104, %347
  %352 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.105, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 19) #10
  %.not87 = icmp eq i32 %352, 0
  br i1 %.not87, label %.sink.split106, label %355

.sink.split106:                                   ; preds = %351
  %353 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.106, ptr noundef nonnull %4, ptr noundef nonnull %5) #8
  %354 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.102, ptr noundef nonnull dereferenceable(1) %5, i64 noundef 4) #10
  %.not88 = icmp eq i32 %354, 0
  %.112 = zext i1 %.not88 to i8
  store i8 %.112, ptr %14, align 8, !tbaa !41
  br label %355

355:                                              ; preds = %.sink.split106, %351
  %356 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.107, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 5) #10
  %.not89 = icmp eq i32 %356, 0
  br i1 %.not89, label %357, label %359

357:                                              ; preds = %355
  %358 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.108, ptr noundef nonnull %20) #8
  br label %.backedge

359:                                              ; preds = %355
  %360 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.109, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 5) #10
  %.not90 = icmp eq i32 %360, 0
  br i1 %.not90, label %361, label %363

361:                                              ; preds = %359
  %362 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.110, ptr noundef nonnull %19) #8
  br label %.backedge

363:                                              ; preds = %359
  %364 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.111, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 5) #10
  %.not91 = icmp eq i32 %364, 0
  br i1 %.not91, label %365, label %367

365:                                              ; preds = %363
  %366 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.112, ptr noundef nonnull %18) #8
  br label %.backedge

367:                                              ; preds = %363
  %368 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.113, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 7) #10
  %.not92 = icmp eq i32 %368, 0
  br i1 %.not92, label %369, label %371

369:                                              ; preds = %367
  %370 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.114, ptr noundef nonnull %17) #8
  br label %.backedge

371:                                              ; preds = %367
  %372 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.115, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 7) #10
  %.not93 = icmp eq i32 %372, 0
  br i1 %.not93, label %373, label %375

373:                                              ; preds = %371
  %374 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.116, ptr noundef nonnull %16) #8
  br label %.backedge

375:                                              ; preds = %371
  %376 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) @.str.117, ptr noundef nonnull dereferenceable(1) %3, i64 noundef 5) #10
  %.not94 = icmp eq i32 %376, 0
  br i1 %.not94, label %377, label %.backedge

377:                                              ; preds = %375
  %378 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %3, ptr noundef nonnull @.str.118, ptr noundef nonnull %15) #8
  br label %.backedge

._crit_edge:                                      ; preds = %.backedge, %.preheader
  %379 = getelementptr inbounds i8, ptr %0, i64 88
  store i8 1, ptr %379, align 8, !tbaa !42
  %380 = call i32 @fclose(ptr noundef nonnull %7)
  call void @llvm.lifetime.end.p0(i64 5000, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 5000, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 5000, ptr nonnull %3) #8
  ret void
}

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

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

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

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

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #5

declare i32 @__isoc99_fscanf(ptr noundef, ptr noundef, ...) local_unnamed_addr #6

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = distinct !{!5, !6}
!6 = !{!"llvm.loop.mustprogress"}
!7 = !{!8, !13, i64 56}
!8 = !{!"_ZTS14InputParameter", !9, i64 0, !9, i64 4, !9, i64 8, !9, i64 12, !9, i64 16, !12, i64 20, !9, i64 24, !9, i64 28, !9, i64 32, !9, i64 36, !9, i64 40, !9, i64 44, !13, i64 48, !13, i64 56, !9, i64 64, !9, i64 68, !9, i64 72, !9, i64 76, !9, i64 80, !12, i64 84, !12, i64 85, !12, i64 86, !12, i64 87, !12, i64 88, !9, i64 92, !9, i64 96, !9, i64 100, !9, i64 104, !9, i64 108, !9, i64 112, !9, i64 116, !9, i64 120, !9, i64 124, !9, i64 128, !9, i64 132, !9, i64 136, !9, i64 140, !9, i64 144, !9, i64 148, !14, i64 152, !9, i64 156, !12, i64 160, !9, i64 164, !9, i64 168, !9, i64 172, !9, i64 176, !9, i64 180, !9, i64 184, !9, i64 188, !12, i64 192, !9, i64 196, !9, i64 200, !9, i64 204, !9, i64 208, !9, i64 212, !9, i64 216, !9, i64 220, !9, i64 224, !9, i64 228, !9, i64 232, !9, i64 236, !9, i64 240, !9, i64 244, !9, i64 248, !9, i64 252, !9, i64 256, !9, i64 260, !9, i64 264, !9, i64 268, !9, i64 272, !9, i64 276, !9, i64 280, !9, i64 284, !9, i64 288, !9, i64 292, !9, i64 296, !12, i64 300, !9, i64 304, !9, i64 308, !9, i64 312, !12, i64 316, !12, i64 317, !9, i64 320, !9, i64 324, !12, i64 328, !13, i64 336, !13, i64 344, !12, i64 352, !9, i64 356, !9, i64 360, !12, i64 364}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"bool", !10, i64 0}
!13 = !{!"double", !10, i64 0}
!14 = !{!"_ZTS9Wire_type", !10, i64 0}
!15 = !{!8, !13, i64 48}
!16 = !{!8, !12, i64 85}
!17 = !{!8, !12, i64 84}
!18 = !{!8, !12, i64 87}
!19 = !{!8, !12, i64 86}
!20 = !{!8, !12, i64 20}
!21 = !{!8, !9, i64 24}
!22 = !{!8, !9, i64 28}
!23 = !{!8, !9, i64 112}
!24 = !{!8, !9, i64 116}
!25 = !{!8, !9, i64 120}
!26 = !{!8, !9, i64 124}
!27 = !{!8, !9, i64 292}
!28 = !{!8, !9, i64 296}
!29 = !{!8, !9, i64 204}
!30 = !{!8, !9, i64 208}
!31 = !{!8, !9, i64 144}
!32 = !{!8, !9, i64 148}
!33 = !{!8, !9, i64 140}
!34 = !{!8, !9, i64 156}
!35 = !{!8, !14, i64 152}
!36 = !{!8, !9, i64 200}
!37 = !{!8, !9, i64 196}
!38 = !{!8, !9, i64 324}
!39 = !{!8, !12, i64 328}
!40 = !{!8, !12, i64 160}
!41 = !{!8, !12, i64 192}
!42 = !{!8, !12, i64 88}


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