; LLVM IR from kacperks/Fractal_Engine :: Engine/Thirdparty/cmake/Engine/Thirdparty/cmake/openal-soft/core (ambdec)

; 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.al::optional" = type { %"struct.al::optional_storage" }
%"struct.al::optional_storage" = type { %"struct.al::optstore_helper" }
%"struct.al::optstore_helper" = type { %"struct.al::optstore_base" }
%"struct.al::optstore_base" = type { i8, %union.anon }
%union.anon = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.0 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.0 = type { i64, [8 x i8] }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.1 }
%union.anon.1 = type { i32 }
%"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::__cxx11::basic_istringstream" = type { %"class.std::basic_istream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::fpos" = type { i64, %struct.__mbstate_t }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.3" }
%"struct.std::_Head_base.3" = type { ptr }
%"class.std::unique_ptr.4" = type { %"struct.std::__uniq_ptr_data.5" }
%"struct.std::__uniq_ptr_data.5" = type { %"class.std::__uniq_ptr_impl.6" }
%"class.std::__uniq_ptr_impl.6" = type { %"class.std::tuple.7" }
%"class.std::tuple.7" = type { %"struct.std::_Tuple_impl.8" }
%"struct.std::_Tuple_impl.8" = type { %"struct.std::_Head_base.11" }
%"struct.std::_Head_base.11" = type { ptr }
%"struct.al::nullopt_t" = type { i8 }
%struct.AmbDecConf = type { %"class.std::__cxx11::basic_string", i32, i32, i32, i32, float, float, i64, %"class.std::unique_ptr", %"class.std::unique_ptr.4", [4 x float], ptr, [4 x float], ptr }
%"struct.std::array" = type { [16 x float] }

@.str = external hidden unnamed_addr constant [20 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [21 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
define dso_local void @_ZN10AmbDecConf4loadB5cxx11EPKc(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(128) %1, ptr noundef %2) #0 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %"class.std::basic_ifstream", align 8
  %8 = alloca i32, align 4
  %9 = alloca i8, align 1
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_istringstream", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::fpos", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::fpos", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::fpos", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::fpos", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::unique_ptr", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::fpos", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::fpos", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca i64, align 8
  %47 = alloca %"class.std::fpos", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca i1, align 1
  %51 = alloca %"class.std::__cxx11::basic_istringstream", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca i64, align 8
  %55 = alloca %"class.std::fpos", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::unique_ptr.4", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca i1, align 1
  %62 = alloca i1, align 1
  %63 = alloca i1, align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_istringstream", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca i64, align 8
  %70 = alloca %"class.std::fpos", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"struct.al::nullopt_t", align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca i64, align 8
  %76 = alloca %"class.std::fpos", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %4, align 8
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %79 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 520, ptr %7) #8
  %80 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %7, ptr noundef %80, i32 noundef 8)
          to label %81 unwind label %689

81:                                               ; preds = %3
  %82 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %7)
          to label %83 unwind label %689

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

84:                                               ; preds = %83
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA20_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(20) @.str)
          to label %85 unwind label %689

85:                                               ; preds = %84
  store i32 1, ptr %8, align 4
  br label %688

86:                                               ; preds = %83
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #8
  store i8 0, ptr %9, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #8
  store i8 0, ptr %10, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #8
  store i8 0, ptr %11, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %87

87:                                               ; preds = %684, %86
  %88 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_117read_clipped_lineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %89 unwind label %689

89:                                               ; preds = %87
  br i1 %88, label %90, label %685

90:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 384, ptr %13) #8
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(120) %13, ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef 8)
          to label %91 unwind label %689

91:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #8
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %92 unwind label %689

92:                                               ; preds = %91
  %93 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br i1 %93, label %94, label %97

94:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef @.str.1, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %95 unwind label %689

95:                                               ; preds = %94
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %96 unwind label %689

96:                                               ; preds = %95
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  store i32 1, ptr %8, align 4
  br label %682

97:                                               ; preds = %92
  %98 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.2)
          to label %99 unwind label %689

99:                                               ; preds = %97
  br i1 %98, label %100, label %104

100:                                              ; preds = %99
  %101 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 0
  %102 = invoke noundef i32 @_ZN12_GLOBAL__N_18readlineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %103 unwind label %689

103:                                              ; preds = %100
  br label %658

104:                                              ; preds = %99
  %105 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.3)
          to label %106 unwind label %689

106:                                              ; preds = %104
  br i1 %105, label %107, label %144

107:                                              ; preds = %106
  %108 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 1
  %109 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 4 dereferenceable(4) %108)
          to label %110 unwind label %689

110:                                              ; preds = %107
  %111 = load ptr, ptr %13, align 8, !tbaa !11
  %112 = getelementptr i8, ptr %111, i64 -24
  %113 = load i64, ptr %112, align 8
  %114 = getelementptr inbounds i8, ptr %13, i64 %113
  %115 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %114)
          to label %116 unwind label %689

116:                                              ; preds = %110
  br i1 %115, label %134, label %117

117:                                              ; preds = %116
  %118 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %119 unwind label %689

119:                                              ; preds = %117
  %120 = call i32 @isspace(i32 noundef %118) #9
  %121 = icmp ne i32 %120, 0
  br i1 %121, label %134, label %122

122:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #8
  %123 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %124 unwind label %689

124:                                              ; preds = %122
  %125 = getelementptr inbounds { i64, i64 }, ptr %18, i32 0, i32 0
  %126 = extractvalue { i64, i64 } %123, 0
  store i64 %126, ptr %125, align 8
  %127 = getelementptr inbounds { i64, i64 }, ptr %18, i32 0, i32 1
  %128 = extractvalue { i64, i64 } %123, 1
  store i64 %128, ptr %127, align 8
  %129 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %18)
          to label %130 unwind label %689

130:                                              ; preds = %124
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %129, i64 noundef -1)
          to label %131 unwind label %689

131:                                              ; preds = %130
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef @.str.4, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %132 unwind label %689

132:                                              ; preds = %131
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %133 unwind label %689

133:                                              ; preds = %132
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #8
  store i32 1, ptr %8, align 4
  br label %682

134:                                              ; preds = %119, %116
  %135 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 1
  %136 = load i32, ptr %135, align 8, !tbaa !13
  %137 = icmp ne i32 %136, 3
  br i1 %137, label %138, label %143

138:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #8
  %139 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 1
  %140 = load i32, ptr %139, align 8, !tbaa !13
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %20, i32 noundef %140) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %141 unwind label %689

141:                                              ; preds = %138
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %142 unwind label %689

142:                                              ; preds = %141
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  store i32 1, ptr %8, align 4
  br label %682

143:                                              ; preds = %134
  br label %657

144:                                              ; preds = %106
  %145 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.6)
          to label %146 unwind label %689

146:                                              ; preds = %144
  br i1 %145, label %147, label %194

147:                                              ; preds = %146
  %148 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 2
  %149 = load i32, ptr %148, align 4, !tbaa !33
  %150 = icmp ne i32 %149, 0
  br i1 %150, label %151, label %153

151:                                              ; preds = %147
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA31_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(31) @.str.7)
          to label %152 unwind label %689

152:                                              ; preds = %151
  store i32 1, ptr %8, align 4
  br label %682

153:                                              ; preds = %147
  %154 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef @_ZSt3hexRSt8ios_base)
          to label %155 unwind label %689

155:                                              ; preds = %153
  %156 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 2
  %157 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 4 dereferenceable(4) %156)
          to label %158 unwind label %689

158:                                              ; preds = %155
  %159 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(16) %157, ptr noundef @_ZSt3decRSt8ios_base)
          to label %160 unwind label %689

160:                                              ; preds = %158
  %161 = load ptr, ptr %13, align 8, !tbaa !11
  %162 = getelementptr i8, ptr %161, i64 -24
  %163 = load i64, ptr %162, align 8
  %164 = getelementptr inbounds i8, ptr %13, i64 %163
  %165 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %164)
          to label %166 unwind label %689

166:                                              ; preds = %160
  br i1 %165, label %184, label %167

167:                                              ; preds = %166
  %168 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %169 unwind label %689

169:                                              ; preds = %167
  %170 = call i32 @isspace(i32 noundef %168) #9
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %184, label %172

172:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #8
  %173 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %174 unwind label %689

174:                                              ; preds = %172
  %175 = getelementptr inbounds { i64, i64 }, ptr %23, i32 0, i32 0
  %176 = extractvalue { i64, i64 } %173, 0
  store i64 %176, ptr %175, align 8
  %177 = getelementptr inbounds { i64, i64 }, ptr %23, i32 0, i32 1
  %178 = extractvalue { i64, i64 } %173, 1
  store i64 %178, ptr %177, align 8
  %179 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %180 unwind label %689

180:                                              ; preds = %174
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %179, i64 noundef -1)
          to label %181 unwind label %689

181:                                              ; preds = %180
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef @.str.8, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %182 unwind label %689

182:                                              ; preds = %181
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %183 unwind label %689

183:                                              ; preds = %182
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  store i32 1, ptr %8, align 4
  br label %682

184:                                              ; preds = %169, %166
  %185 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 2
  %186 = load i32, ptr %185, align 4, !tbaa !33
  %187 = icmp ne i32 %186, 0
  br i1 %187, label %193, label %188

188:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  %189 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 2
  %190 = load i32, ptr %189, align 4, !tbaa !33
  call void @_ZNSt7__cxx119to_stringEj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, i32 noundef %190) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef @.str.9, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %191 unwind label %689

191:                                              ; preds = %188
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %192 unwind label %689

192:                                              ; preds = %191
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  store i32 1, ptr %8, align 4
  br label %682

193:                                              ; preds = %184
  br label %656

194:                                              ; preds = %146
  %195 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.10)
          to label %196 unwind label %689

196:                                              ; preds = %194
  br i1 %195, label %197, label %244

197:                                              ; preds = %196
  %198 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 3
  %199 = load i32, ptr %198, align 8, !tbaa !34
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %201, label %203

201:                                              ; preds = %197
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA21_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(21) @.str.11)
          to label %202 unwind label %689

202:                                              ; preds = %201
  store i32 1, ptr %8, align 4
  br label %682

203:                                              ; preds = %197
  %204 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 3
  %205 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 4 dereferenceable(4) %204)
          to label %206 unwind label %689

206:                                              ; preds = %203
  %207 = load ptr, ptr %13, align 8, !tbaa !11
  %208 = getelementptr i8, ptr %207, i64 -24
  %209 = load i64, ptr %208, align 8
  %210 = getelementptr inbounds i8, ptr %13, i64 %209
  %211 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %210)
          to label %212 unwind label %689

212:                                              ; preds = %206
  br i1 %211, label %230, label %213

213:                                              ; preds = %212
  %214 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %215 unwind label %689

215:                                              ; preds = %213
  %216 = call i32 @isspace(i32 noundef %214) #9
  %217 = icmp ne i32 %216, 0
  br i1 %217, label %230, label %218

218:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #8
  %219 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %220 unwind label %689

220:                                              ; preds = %218
  %221 = getelementptr inbounds { i64, i64 }, ptr %28, i32 0, i32 0
  %222 = extractvalue { i64, i64 } %219, 0
  store i64 %222, ptr %221, align 8
  %223 = getelementptr inbounds { i64, i64 }, ptr %28, i32 0, i32 1
  %224 = extractvalue { i64, i64 } %219, 1
  store i64 %224, ptr %223, align 8
  %225 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %28)
          to label %226 unwind label %689

226:                                              ; preds = %220
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %225, i64 noundef -1)
          to label %227 unwind label %689

227:                                              ; preds = %226
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef @.str.12, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %228 unwind label %689

228:                                              ; preds = %227
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %229 unwind label %689

229:                                              ; preds = %228
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  store i32 1, ptr %8, align 4
  br label %682

230:                                              ; preds = %215, %212
  %231 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 3
  %232 = load i32, ptr %231, align 8, !tbaa !34
  %233 = icmp ne i32 %232, 1
  br i1 %233, label %234, label %243

234:                                              ; preds = %230
  %235 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 3
  %236 = load i32, ptr %235, align 8, !tbaa !34
  %237 = icmp ne i32 %236, 2
  br i1 %237, label %238, label %243

238:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  %239 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 3
  %240 = load i32, ptr %239, align 8, !tbaa !34
  call void @_ZNSt7__cxx119to_stringEj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, i32 noundef %240) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef @.str.13, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %241 unwind label %689

241:                                              ; preds = %238
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %242 unwind label %689

242:                                              ; preds = %241
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  store i32 1, ptr %8, align 4
  br label %682

243:                                              ; preds = %234, %230
  br label %655

244:                                              ; preds = %196
  %245 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.14)
          to label %246 unwind label %689

246:                                              ; preds = %244
  br i1 %245, label %247, label %296

247:                                              ; preds = %246
  %248 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %249 = load i64, ptr %248, align 8, !tbaa !35
  %250 = icmp ne i64 %249, 0
  br i1 %250, label %251, label %253

251:                                              ; preds = %247
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(19) @.str.15)
          to label %252 unwind label %689

252:                                              ; preds = %251
  store i32 1, ptr %8, align 4
  br label %682

253:                                              ; preds = %247
  %254 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %255 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERm(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(8) %254)
          to label %256 unwind label %689

256:                                              ; preds = %253
  %257 = load ptr, ptr %13, align 8, !tbaa !11
  %258 = getelementptr i8, ptr %257, i64 -24
  %259 = load i64, ptr %258, align 8
  %260 = getelementptr inbounds i8, ptr %13, i64 %259
  %261 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %260)
          to label %262 unwind label %689

262:                                              ; preds = %256
  br i1 %261, label %280, label %263

263:                                              ; preds = %262
  %264 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %265 unwind label %689

265:                                              ; preds = %263
  %266 = call i32 @isspace(i32 noundef %264) #9
  %267 = icmp ne i32 %266, 0
  br i1 %267, label %280, label %268

268:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #8
  %269 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %270 unwind label %689

270:                                              ; preds = %268
  %271 = getelementptr inbounds { i64, i64 }, ptr %33, i32 0, i32 0
  %272 = extractvalue { i64, i64 } %269, 0
  store i64 %272, ptr %271, align 8
  %273 = getelementptr inbounds { i64, i64 }, ptr %33, i32 0, i32 1
  %274 = extractvalue { i64, i64 } %269, 1
  store i64 %274, ptr %273, align 8
  %275 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %276 unwind label %689

276:                                              ; preds = %270
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %275, i64 noundef -1)
          to label %277 unwind label %689

277:                                              ; preds = %276
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef @.str.16, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %278 unwind label %689

278:                                              ; preds = %277
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %279 unwind label %689

279:                                              ; preds = %278
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  store i32 1, ptr %8, align 4
  br label %682

280:                                              ; preds = %265, %262
  %281 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %282 = load i64, ptr %281, align 8, !tbaa !35
  %283 = icmp ne i64 %282, 0
  br i1 %283, label %290, label %284

284:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #8
  %285 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %286 = load i64, ptr %285, align 8, !tbaa !35
  invoke void @_ZNSt7__cxx119to_stringEm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, i64 noundef %286)
          to label %287 unwind label %689

287:                                              ; preds = %284
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef @.str.17, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %288 unwind label %689

288:                                              ; preds = %287
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %289 unwind label %689

289:                                              ; preds = %288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  store i32 1, ptr %8, align 4
  br label %682

290:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  %291 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %292 = load i64, ptr %291, align 8, !tbaa !35
  invoke void @_ZSt11make_uniqueIA_N10AmbDecConf11SpeakerConfEENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind writable sret(%"class.std::unique_ptr") align 8 %36, i64 noundef %292)
          to label %293 unwind label %689

293:                                              ; preds = %290
  %294 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 8
  %295 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIA_N10AmbDecConf11SpeakerConfESt14default_deleteIS2_EEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @_ZNSt10unique_ptrIA_N10AmbDecConf11SpeakerConfESt14default_deleteIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  br label %654

296:                                              ; preds = %246
  %297 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.18)
          to label %298 unwind label %689

298:                                              ; preds = %296
  br i1 %297, label %299, label %324

299:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #8
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %300 unwind label %689

300:                                              ; preds = %299
  %301 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.19)
          to label %302 unwind label %689

302:                                              ; preds = %300
  br i1 %301, label %303, label %305

303:                                              ; preds = %302
  %304 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 4
  store i32 0, ptr %304, align 4, !tbaa !36
  br label %320

305:                                              ; preds = %302
  %306 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.20)
          to label %307 unwind label %689

307:                                              ; preds = %305
  br i1 %306, label %308, label %310

308:                                              ; preds = %307
  %309 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 4
  store i32 1, ptr %309, align 4, !tbaa !36
  br label %319

310:                                              ; preds = %307
  %311 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.21)
          to label %312 unwind label %689

312:                                              ; preds = %310
  br i1 %311, label %313, label %315

313:                                              ; preds = %312
  %314 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 4
  store i32 2, ptr %314, align 4, !tbaa !36
  br label %318

315:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %316 unwind label %689

316:                                              ; preds = %315
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %317 unwind label %689

317:                                              ; preds = %316
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  store i32 1, ptr %8, align 4
  br label %321

318:                                              ; preds = %313
  br label %319

319:                                              ; preds = %318, %308
  br label %320

320:                                              ; preds = %319, %303
  store i32 0, ptr %8, align 4
  br label %321

321:                                              ; preds = %320, %317
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  %322 = load i32, ptr %8, align 4
  switch i32 %322, label %682 [
    i32 0, label %323
  ]

323:                                              ; preds = %321
  br label %653

324:                                              ; preds = %298
  %325 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.23)
          to label %326 unwind label %689

326:                                              ; preds = %324
  br i1 %325, label %327, label %355

327:                                              ; preds = %326
  %328 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 5
  %329 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 4 dereferenceable(4) %328)
          to label %330 unwind label %689

330:                                              ; preds = %327
  %331 = load ptr, ptr %13, align 8, !tbaa !11
  %332 = getelementptr i8, ptr %331, i64 -24
  %333 = load i64, ptr %332, align 8
  %334 = getelementptr inbounds i8, ptr %13, i64 %333
  %335 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %334)
          to label %336 unwind label %689

336:                                              ; preds = %330
  br i1 %335, label %354, label %337

337:                                              ; preds = %336
  %338 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %339 unwind label %689

339:                                              ; preds = %337
  %340 = call i32 @isspace(i32 noundef %338) #9
  %341 = icmp ne i32 %340, 0
  br i1 %341, label %354, label %342

342:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #8
  %343 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %344 unwind label %689

344:                                              ; preds = %342
  %345 = getelementptr inbounds { i64, i64 }, ptr %41, i32 0, i32 0
  %346 = extractvalue { i64, i64 } %343, 0
  store i64 %346, ptr %345, align 8
  %347 = getelementptr inbounds { i64, i64 }, ptr %41, i32 0, i32 1
  %348 = extractvalue { i64, i64 } %343, 1
  store i64 %348, ptr %347, align 8
  %349 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %41)
          to label %350 unwind label %689

350:                                              ; preds = %344
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %349, i64 noundef -1)
          to label %351 unwind label %689

351:                                              ; preds = %350
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %352 unwind label %689

352:                                              ; preds = %351
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %353 unwind label %689

353:                                              ; preds = %352
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  store i32 1, ptr %8, align 4
  br label %682

354:                                              ; preds = %339, %336
  br label %652

355:                                              ; preds = %326
  %356 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.25)
          to label %357 unwind label %689

357:                                              ; preds = %355
  br i1 %356, label %358, label %386

358:                                              ; preds = %357
  %359 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 6
  %360 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 4 dereferenceable(4) %359)
          to label %361 unwind label %689

361:                                              ; preds = %358
  %362 = load ptr, ptr %13, align 8, !tbaa !11
  %363 = getelementptr i8, ptr %362, i64 -24
  %364 = load i64, ptr %363, align 8
  %365 = getelementptr inbounds i8, ptr %13, i64 %364
  %366 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %365)
          to label %367 unwind label %689

367:                                              ; preds = %361
  br i1 %366, label %385, label %368

368:                                              ; preds = %367
  %369 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %370 unwind label %689

370:                                              ; preds = %368
  %371 = call i32 @isspace(i32 noundef %369) #9
  %372 = icmp ne i32 %371, 0
  br i1 %372, label %385, label %373

373:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #8
  %374 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %375 unwind label %689

375:                                              ; preds = %373
  %376 = getelementptr inbounds { i64, i64 }, ptr %44, i32 0, i32 0
  %377 = extractvalue { i64, i64 } %374, 0
  store i64 %377, ptr %376, align 8
  %378 = getelementptr inbounds { i64, i64 }, ptr %44, i32 0, i32 1
  %379 = extractvalue { i64, i64 } %374, 1
  store i64 %379, ptr %378, align 8
  %380 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %44)
          to label %381 unwind label %689

381:                                              ; preds = %375
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %380, i64 noundef -1)
          to label %382 unwind label %689

382:                                              ; preds = %381
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef @.str.26, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %383 unwind label %689

383:                                              ; preds = %382
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %384 unwind label %689

384:                                              ; preds = %383
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  store i32 1, ptr %8, align 4
  br label %682

385:                                              ; preds = %370, %367
  br label %651

386:                                              ; preds = %357
  %387 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.27)
          to label %388 unwind label %689

388:                                              ; preds = %386
  br i1 %387, label %398, label %389

389:                                              ; preds = %388
  %390 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.28)
          to label %391 unwind label %689

391:                                              ; preds = %389
  br i1 %390, label %398, label %392

392:                                              ; preds = %391
  %393 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.29)
          to label %394 unwind label %689

394:                                              ; preds = %392
  br i1 %393, label %398, label %395

395:                                              ; preds = %394
  %396 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.30)
          to label %397 unwind label %689

397:                                              ; preds = %395
  br i1 %396, label %398, label %400

398:                                              ; preds = %397, %394, %391, %388
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %399 unwind label %689

399:                                              ; preds = %398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %650

400:                                              ; preds = %397
  %401 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.31)
          to label %402 unwind label %689

402:                                              ; preds = %400
  br i1 %401, label %403, label %459

403:                                              ; preds = %402
  %404 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %405 = load i64, ptr %404, align 8, !tbaa !35
  %406 = icmp ne i64 %405, 0
  br i1 %406, label %409, label %407

407:                                              ; preds = %403
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA33_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(33) @.str.32)
          to label %408 unwind label %689

408:                                              ; preds = %407
  store i32 1, ptr %8, align 4
  br label %682

409:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #8
  %410 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %411 unwind label %689

411:                                              ; preds = %409
  %412 = getelementptr inbounds { i64, i64 }, ptr %47, i32 0, i32 0
  %413 = extractvalue { i64, i64 } %410, 0
  store i64 %413, ptr %412, align 8
  %414 = getelementptr inbounds { i64, i64 }, ptr %47, i32 0, i32 1
  %415 = extractvalue { i64, i64 } %410, 1
  store i64 %415, ptr %414, align 8
  %416 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %417 unwind label %689

417:                                              ; preds = %411
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #8
  store i64 %416, ptr %46, align 8, !tbaa !37
  %418 = load i64, ptr %46, align 8, !tbaa !37
  %419 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %418)
          to label %420 unwind label %689

420:                                              ; preds = %417
  br i1 %419, label %426, label %421

421:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #8
  %422 = load i64, ptr %46, align 8, !tbaa !37
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %422, i64 noundef -1)
          to label %423 unwind label %689

423:                                              ; preds = %421
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef @.str.33, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %424 unwind label %689

424:                                              ; preds = %423
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %425 unwind label %689

425:                                              ; preds = %424
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  store i32 1, ptr %8, align 4
  br label %456

426:                                              ; preds = %420
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  store i1 false, ptr %50, align 1
  %427 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 8
  %428 = call noundef ptr @_ZNKSt10unique_ptrIA_N10AmbDecConf11SpeakerConfESt14default_deleteIS2_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %427) #8
  %429 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %430 = load i64, ptr %429, align 8, !tbaa !35
  invoke void @_ZN12_GLOBAL__N_120load_ambdec_speakersEPN10AmbDecConf11SpeakerConfEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef %428, i64 noundef %430, ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %431 unwind label %689

431:                                              ; preds = %426
  %432 = call noundef zeroext i1 @_ZNK2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br i1 %432, label %433, label %434

433:                                              ; preds = %431
  store i1 true, ptr %50, align 1
  store i32 1, ptr %8, align 4
  br label %435

434:                                              ; preds = %431
  store i32 0, ptr %8, align 4
  br label %435

435:                                              ; preds = %434, %433
  %436 = load i1, ptr %50, align 1
  br i1 %436, label %438, label %437

437:                                              ; preds = %435
  call void @_ZN2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br label %438

438:                                              ; preds = %437, %435
  %439 = load i32, ptr %8, align 4
  switch i32 %439, label %456 [
    i32 0, label %440
  ]

440:                                              ; preds = %438
  store i8 1, ptr %9, align 1, !tbaa !9
  %441 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_117read_clipped_lineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %442 unwind label %689

442:                                              ; preds = %440
  br i1 %441, label %445, label %443

443:                                              ; preds = %442
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA23_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(23) @.str.34)
          to label %444 unwind label %689

444:                                              ; preds = %443
  store i32 1, ptr %8, align 4
  br label %456

445:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 384, ptr %51) #8
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(120) %51, ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef 8)
          to label %446 unwind label %689

446:                                              ; preds = %445
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %447 unwind label %689

447:                                              ; preds = %446
  %448 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.35)
          to label %449 unwind label %689

449:                                              ; preds = %447
  br i1 %448, label %450, label %453

450:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef @.str.36, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %451 unwind label %689

451:                                              ; preds = %450
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %452 unwind label %689

452:                                              ; preds = %451
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  store i32 1, ptr %8, align 4
  br label %455

453:                                              ; preds = %449
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS4_(ptr noundef nonnull align 8 dereferenceable(120) %13, ptr noundef nonnull align 8 dereferenceable(120) %51)
          to label %454 unwind label %689

454:                                              ; preds = %453
  store i32 0, ptr %8, align 4
  br label %455

455:                                              ; preds = %454, %452
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(120) %51) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr %51) #8
  br label %456

456:                                              ; preds = %455, %444, %438, %425
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  %457 = load i32, ptr %8, align 4
  switch i32 %457, label %682 [
    i32 0, label %458
  ]

458:                                              ; preds = %456
  br label %649

459:                                              ; preds = %402
  %460 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.37)
          to label %461 unwind label %689

461:                                              ; preds = %459
  br i1 %460, label %468, label %462

462:                                              ; preds = %461
  %463 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.38)
          to label %464 unwind label %689

464:                                              ; preds = %462
  br i1 %463, label %468, label %465

465:                                              ; preds = %464
  %466 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.39)
          to label %467 unwind label %689

467:                                              ; preds = %465
  br i1 %466, label %468, label %608

468:                                              ; preds = %467, %464, %461
  %469 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %470 = load i64, ptr %469, align 8, !tbaa !35
  %471 = icmp ne i64 %470, 0
  br i1 %471, label %474, label %472

472:                                              ; preds = %468
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA31_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(31) @.str.40)
          to label %473 unwind label %689

473:                                              ; preds = %472
  store i32 1, ptr %8, align 4
  br label %682

474:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #8
  %475 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %476 unwind label %689

476:                                              ; preds = %474
  %477 = getelementptr inbounds { i64, i64 }, ptr %55, i32 0, i32 0
  %478 = extractvalue { i64, i64 } %475, 0
  store i64 %478, ptr %477, align 8
  %479 = getelementptr inbounds { i64, i64 }, ptr %55, i32 0, i32 1
  %480 = extractvalue { i64, i64 } %475, 1
  store i64 %480, ptr %479, align 8
  %481 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %55)
          to label %482 unwind label %689

482:                                              ; preds = %476
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #8
  store i64 %481, ptr %54, align 8, !tbaa !37
  %483 = load i64, ptr %54, align 8, !tbaa !37
  %484 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %483)
          to label %485 unwind label %689

485:                                              ; preds = %482
  br i1 %484, label %491, label %486

486:                                              ; preds = %485
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #8
  %487 = load i64, ptr %54, align 8, !tbaa !37
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %487, i64 noundef -1)
          to label %488 unwind label %689

488:                                              ; preds = %486
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef @.str.33, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %489 unwind label %689

489:                                              ; preds = %488
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %490 unwind label %689

490:                                              ; preds = %489
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  store i32 1, ptr %8, align 4
  br label %605

491:                                              ; preds = %485
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  %492 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 9
  %493 = call noundef zeroext i1 @_ZNKSt10unique_ptrIA_St5arrayIfLm16EESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %492) #8
  br i1 %493, label %518, label %494

494:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %495 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %496 = load i64, ptr %495, align 8, !tbaa !35
  %497 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 3
  %498 = load i32, ptr %497, align 8, !tbaa !34
  %499 = zext i32 %498 to i64
  %500 = mul i64 %496, %499
  invoke void @_ZSt11make_uniqueIA_St5arrayIfLm16EEENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.4") align 8 %58, i64 noundef %500)
          to label %501 unwind label %689

501:                                              ; preds = %494
  %502 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 9
  %503 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIA_St5arrayIfLm16EESt14default_deleteIS2_EEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(8) %502, ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  call void @_ZNSt10unique_ptrIA_St5arrayIfLm16EESt14default_deleteIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  %504 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 9
  %505 = call noundef ptr @_ZNKSt10unique_ptrIA_St5arrayIfLm16EESt14default_deleteIS2_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %504) #8
  %506 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 11
  store ptr %505, ptr %506, align 8, !tbaa !38
  %507 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 11
  %508 = load ptr, ptr %507, align 8, !tbaa !38
  %509 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %510 = load i64, ptr %509, align 8, !tbaa !35
  %511 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 3
  %512 = load i32, ptr %511, align 8, !tbaa !34
  %513 = sub i32 %512, 1
  %514 = zext i32 %513 to i64
  %515 = mul i64 %510, %514
  %516 = getelementptr inbounds %"struct.std::array", ptr %508, i64 %515
  %517 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 13
  store ptr %516, ptr %517, align 8, !tbaa !39
  br label %518

518:                                              ; preds = %501, %491
  %519 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 3
  %520 = load i32, ptr %519, align 8, !tbaa !34
  %521 = icmp eq i32 %520, 1
  br i1 %521, label %522, label %545

522:                                              ; preds = %518
  %523 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.39)
          to label %524 unwind label %689

524:                                              ; preds = %522
  br i1 %523, label %525, label %529

525:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef @.str.41, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %526 unwind label %689

526:                                              ; preds = %525
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.42)
          to label %527 unwind label %689

527:                                              ; preds = %526
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %528 unwind label %689

528:                                              ; preds = %527
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  store i32 1, ptr %8, align 4
  br label %605

529:                                              ; preds = %524
  store i1 false, ptr %61, align 1
  %530 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 12
  %531 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 13
  %532 = load ptr, ptr %531, align 8, !tbaa !39
  %533 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %534 = load i64, ptr %533, align 8, !tbaa !35
  invoke void @_ZN12_GLOBAL__N_118load_ambdec_matrixERA4_fPSt5arrayIfLm16EEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 4 dereferenceable(16) %530, ptr noundef %532, i64 noundef %534, ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %535 unwind label %689

535:                                              ; preds = %529
  %536 = call noundef zeroext i1 @_ZNK2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br i1 %536, label %537, label %538

537:                                              ; preds = %535
  store i1 true, ptr %61, align 1
  store i32 1, ptr %8, align 4
  br label %539

538:                                              ; preds = %535
  store i32 0, ptr %8, align 4
  br label %539

539:                                              ; preds = %538, %537
  %540 = load i1, ptr %61, align 1
  br i1 %540, label %542, label %541

541:                                              ; preds = %539
  call void @_ZN2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br label %542

542:                                              ; preds = %541, %539
  %543 = load i32, ptr %8, align 4
  switch i32 %543, label %605 [
    i32 0, label %544
  ]

544:                                              ; preds = %542
  store i8 1, ptr %10, align 1, !tbaa !9
  br label %589

545:                                              ; preds = %518
  %546 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.37)
          to label %547 unwind label %689

547:                                              ; preds = %545
  br i1 %546, label %548, label %564

548:                                              ; preds = %547
  store i1 false, ptr %62, align 1
  %549 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 10
  %550 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 11
  %551 = load ptr, ptr %550, align 8, !tbaa !38
  %552 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %553 = load i64, ptr %552, align 8, !tbaa !35
  invoke void @_ZN12_GLOBAL__N_118load_ambdec_matrixERA4_fPSt5arrayIfLm16EEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 4 dereferenceable(16) %549, ptr noundef %551, i64 noundef %553, ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %554 unwind label %689

554:                                              ; preds = %548
  %555 = call noundef zeroext i1 @_ZNK2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br i1 %555, label %556, label %557

556:                                              ; preds = %554
  store i1 true, ptr %62, align 1
  store i32 1, ptr %8, align 4
  br label %558

557:                                              ; preds = %554
  store i32 0, ptr %8, align 4
  br label %558

558:                                              ; preds = %557, %556
  %559 = load i1, ptr %62, align 1
  br i1 %559, label %561, label %560

560:                                              ; preds = %558
  call void @_ZN2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br label %561

561:                                              ; preds = %560, %558
  %562 = load i32, ptr %8, align 4
  switch i32 %562, label %605 [
    i32 0, label %563
  ]

563:                                              ; preds = %561
  store i8 1, ptr %11, align 1, !tbaa !9
  br label %588

564:                                              ; preds = %547
  %565 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.38)
          to label %566 unwind label %689

566:                                              ; preds = %564
  br i1 %565, label %567, label %583

567:                                              ; preds = %566
  store i1 false, ptr %63, align 1
  %568 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 12
  %569 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 13
  %570 = load ptr, ptr %569, align 8, !tbaa !39
  %571 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 7
  %572 = load i64, ptr %571, align 8, !tbaa !35
  invoke void @_ZN12_GLOBAL__N_118load_ambdec_matrixERA4_fPSt5arrayIfLm16EEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 4 dereferenceable(16) %568, ptr noundef %570, i64 noundef %572, ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %573 unwind label %689

573:                                              ; preds = %567
  %574 = call noundef zeroext i1 @_ZNK2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br i1 %574, label %575, label %576

575:                                              ; preds = %573
  store i1 true, ptr %63, align 1
  store i32 1, ptr %8, align 4
  br label %577

576:                                              ; preds = %573
  store i32 0, ptr %8, align 4
  br label %577

577:                                              ; preds = %576, %575
  %578 = load i1, ptr %63, align 1
  br i1 %578, label %580, label %579

579:                                              ; preds = %577
  call void @_ZN2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br label %580

580:                                              ; preds = %579, %577
  %581 = load i32, ptr %8, align 4
  switch i32 %581, label %605 [
    i32 0, label %582
  ]

582:                                              ; preds = %580
  store i8 1, ptr %10, align 1, !tbaa !9
  br label %587

583:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef @.str.41, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %584 unwind label %689

584:                                              ; preds = %583
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.43)
          to label %585 unwind label %689

585:                                              ; preds = %584
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %586 unwind label %689

586:                                              ; preds = %585
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  store i32 1, ptr %8, align 4
  br label %605

587:                                              ; preds = %582
  br label %588

588:                                              ; preds = %587, %563
  br label %589

589:                                              ; preds = %588, %544
  %590 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_117read_clipped_lineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %591 unwind label %689

591:                                              ; preds = %589
  br i1 %590, label %594, label %592

592:                                              ; preds = %591
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA23_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(23) @.str.34)
          to label %593 unwind label %689

593:                                              ; preds = %592
  store i32 1, ptr %8, align 4
  br label %605

594:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 384, ptr %66) #8
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(120) %66, ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef 8)
          to label %595 unwind label %689

595:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #8
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(16) %66)
          to label %596 unwind label %689

596:                                              ; preds = %595
  %597 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.35)
          to label %598 unwind label %689

598:                                              ; preds = %596
  br i1 %597, label %599, label %602

599:                                              ; preds = %598
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef @.str.44, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %600 unwind label %689

600:                                              ; preds = %599
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %601 unwind label %689

601:                                              ; preds = %600
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  store i32 1, ptr %8, align 4
  br label %604

602:                                              ; preds = %598
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS4_(ptr noundef nonnull align 8 dereferenceable(120) %13, ptr noundef nonnull align 8 dereferenceable(120) %66)
          to label %603 unwind label %689

603:                                              ; preds = %602
  store i32 0, ptr %8, align 4
  br label %604

604:                                              ; preds = %603, %601
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(120) %66) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr %66) #8
  br label %605

605:                                              ; preds = %604, %593, %586, %580, %561, %542, %528, %490
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  %606 = load i32, ptr %8, align 4
  switch i32 %606, label %682 [
    i32 0, label %607
  ]

607:                                              ; preds = %605
  br label %648

608:                                              ; preds = %467
  %609 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.45)
          to label %610 unwind label %689

610:                                              ; preds = %608
  br i1 %609, label %611, label %645

611:                                              ; preds = %610
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %70) #8
  %612 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %613 unwind label %689

613:                                              ; preds = %611
  %614 = getelementptr inbounds { i64, i64 }, ptr %70, i32 0, i32 0
  %615 = extractvalue { i64, i64 } %612, 0
  store i64 %615, ptr %614, align 8
  %616 = getelementptr inbounds { i64, i64 }, ptr %70, i32 0, i32 1
  %617 = extractvalue { i64, i64 } %612, 1
  store i64 %617, ptr %616, align 8
  %618 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %70)
          to label %619 unwind label %689

619:                                              ; preds = %613
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #8
  store i64 %618, ptr %69, align 8, !tbaa !37
  %620 = load i64, ptr %69, align 8, !tbaa !37
  %621 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %620)
          to label %622 unwind label %689

622:                                              ; preds = %619
  br i1 %621, label %628, label %623

623:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #8
  %624 = load i64, ptr %69, align 8, !tbaa !37
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %624, i64 noundef -1)
          to label %625 unwind label %689

625:                                              ; preds = %623
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef @.str.46, ptr noundef nonnull align 8 dereferenceable(32) %72)
          to label %626 unwind label %689

626:                                              ; preds = %625
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %627 unwind label %689

627:                                              ; preds = %626
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  store i32 1, ptr %8, align 4
  br label %644

628:                                              ; preds = %622
  %629 = load i8, ptr %9, align 1, !tbaa !9, !range !40, !noundef !41
  %630 = trunc i8 %629 to i1
  br i1 %630, label %631, label %641

631:                                              ; preds = %628
  %632 = load i8, ptr %10, align 1, !tbaa !9, !range !40, !noundef !41
  %633 = trunc i8 %632 to i1
  br i1 %633, label %634, label %641

634:                                              ; preds = %631
  %635 = getelementptr inbounds %struct.AmbDecConf, ptr %79, i32 0, i32 3
  %636 = load i32, ptr %635, align 8, !tbaa !34
  %637 = icmp eq i32 %636, 2
  br i1 %637, label %638, label %643

638:                                              ; preds = %634
  %639 = load i8, ptr %11, align 1, !tbaa !9, !range !40, !noundef !41
  %640 = trunc i8 %639 to i1
  br i1 %640, label %643, label %641

641:                                              ; preds = %638, %631, %628
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(19) @.str.47)
          to label %642 unwind label %689

642:                                              ; preds = %641
  store i32 1, ptr %8, align 4
  br label %644

643:                                              ; preds = %638, %634
  call void @_ZN2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ENS_9nullopt_tE(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  store i32 1, ptr %8, align 4
  br label %644

644:                                              ; preds = %643, %642, %627
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  br label %682

645:                                              ; preds = %610
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef @.str.48, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %646 unwind label %689

646:                                              ; preds = %645
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %647 unwind label %689

647:                                              ; preds = %646
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  store i32 1, ptr %8, align 4
  br label %682

648:                                              ; preds = %607
  br label %649

649:                                              ; preds = %648, %458
  br label %650

650:                                              ; preds = %649, %399
  br label %651

651:                                              ; preds = %650, %385
  br label %652

652:                                              ; preds = %651, %354
  br label %653

653:                                              ; preds = %652, %323
  br label %654

654:                                              ; preds = %653, %293
  br label %655

655:                                              ; preds = %654, %243
  br label %656

656:                                              ; preds = %655, %193
  br label %657

657:                                              ; preds = %656, %143
  br label %658

658:                                              ; preds = %657, %103
  %659 = load ptr, ptr %13, align 8, !tbaa !11
  %660 = getelementptr i8, ptr %659, i64 -24
  %661 = load i64, ptr %660, align 8
  %662 = getelementptr inbounds i8, ptr %13, i64 %661
  invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %662, i32 noundef 0)
          to label %663 unwind label %689

663:                                              ; preds = %658
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %76) #8
  %664 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %665 unwind label %689

665:                                              ; preds = %663
  %666 = getelementptr inbounds { i64, i64 }, ptr %76, i32 0, i32 0
  %667 = extractvalue { i64, i64 } %664, 0
  store i64 %667, ptr %666, align 8
  %668 = getelementptr inbounds { i64, i64 }, ptr %76, i32 0, i32 1
  %669 = extractvalue { i64, i64 } %664, 1
  store i64 %669, ptr %668, align 8
  %670 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %76)
          to label %671 unwind label %689

671:                                              ; preds = %665
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #8
  store i64 %670, ptr %75, align 8, !tbaa !37
  %672 = load i64, ptr %75, align 8, !tbaa !37
  %673 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %672)
          to label %674 unwind label %689

674:                                              ; preds = %671
  br i1 %673, label %680, label %675

675:                                              ; preds = %674
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #8
  %676 = load i64, ptr %75, align 8, !tbaa !37
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %12, i64 noundef %676, i64 noundef -1)
          to label %677 unwind label %689

677:                                              ; preds = %675
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef @.str.33, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %678 unwind label %689

678:                                              ; preds = %677
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %679 unwind label %689

679:                                              ; preds = %678
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  store i32 1, ptr %8, align 4
  br label %681

680:                                              ; preds = %674
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  store i32 0, ptr %8, align 4
  br label %681

681:                                              ; preds = %680, %679
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  br label %682

682:                                              ; preds = %681, %647, %644, %605, %473, %456, %408, %384, %353, %321, %289, %279, %252, %242, %229, %202, %192, %183, %152, %142, %133, %96
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  call void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(120) %13) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr %13) #8
  %683 = load i32, ptr %8, align 4
  switch i32 %683, label %687 [
    i32 0, label %684
  ]

684:                                              ; preds = %682
  br label %87, !llvm.loop !42

685:                                              ; preds = %89
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA23_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(23) @.str.34)
          to label %686 unwind label %689

686:                                              ; preds = %685
  store i32 1, ptr %8, align 4
  br label %687

687:                                              ; preds = %686, %682
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #8
  br label %688

688:                                              ; preds = %687, %85
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %7) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %7) #8
  ret void

689:                                              ; preds = %685, %678, %677, %675, %671, %665, %663, %658, %646, %645, %641, %626, %625, %623, %619, %613, %611, %608, %602, %600, %599, %596, %595, %594, %592, %589, %585, %584, %583, %567, %564, %548, %545, %529, %527, %526, %525, %522, %494, %489, %488, %486, %482, %476, %474, %472, %465, %462, %459, %453, %451, %450, %447, %446, %445, %443, %440, %426, %424, %423, %421, %417, %411, %409, %407, %400, %398, %395, %392, %389, %386, %383, %382, %381, %375, %373, %368, %361, %358, %355, %352, %351, %350, %344, %342, %337, %330, %327, %324, %316, %315, %310, %305, %300, %299, %296, %290, %288, %287, %284, %278, %277, %276, %270, %268, %263, %256, %253, %251, %244, %241, %238, %228, %227, %226, %220, %218, %213, %206, %203, %201, %194, %191, %188, %182, %181, %180, %174, %172, %167, %160, %158, %155, %153, %151, %144, %141, %138, %132, %131, %130, %124, %122, %117, %110, %107, %104, %100, %97, %95, %94, %91, %90, %87, %84, %81, %3
  %690 = landingpad { ptr, i32 }
          catch ptr null
  %691 = extractvalue { ptr, i32 } %690, 0
  call void @__clang_call_terminate(ptr %691) #10
  unreachable
}

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA20_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(20)) #4

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN12_GLOBAL__N_117read_clipped_lineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #6

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

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

declare noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) #2 align 2

declare { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16)) #6

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA31_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(31)) #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3hexRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA21_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(21)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(19)) #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIA_N10AmbDecConf11SpeakerConfEENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr") align 8, i64 noundef) #4

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA33_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(33)) #4

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #0

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_120load_ambdec_speakersEPN10AmbDecConf11SpeakerConfEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA23_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(23)) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS4_(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef nonnull align 8 dereferenceable(120)) #2 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIA_St5arrayIfLm16EEENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.4") align 8, i64 noundef) #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_118load_ambdec_matrixERA4_fPSt5arrayIfLm16EEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 4 dereferenceable(16), ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #2

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

declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264), i32 noundef) #6

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"vtable pointer", !8, i64 0}
!13 = !{!14, !18, i64 32}
!14 = !{!"_ZTS10AmbDecConf", !15, i64 0, !18, i64 32, !18, i64 36, !18, i64 40, !19, i64 44, !20, i64 48, !20, i64 52, !17, i64 56, !21, i64 64, !27, i64 72, !7, i64 80, !6, i64 96, !7, i64 104, !6, i64 120}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !16, i64 0, !17, i64 8, !7, i64 16}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!17 = !{!"long", !7, i64 0}
!18 = !{!"int", !7, i64 0}
!19 = !{!"_ZTS11AmbDecScale", !7, i64 0}
!20 = !{!"float", !7, i64 0}
!21 = !{!"_ZTSSt10unique_ptrIA_N10AmbDecConf11SpeakerConfESt14default_deleteIS2_EE", !22, i64 0}
!22 = !{!"_ZTSSt15__uniq_ptr_dataIN10AmbDecConf11SpeakerConfESt14default_deleteIA_S1_ELb1ELb1EE", !23, i64 0}
!23 = !{!"_ZTSSt15__uniq_ptr_implIN10AmbDecConf11SpeakerConfESt14default_deleteIA_S1_EE", !24, i64 0}
!24 = !{!"_ZTSSt5tupleIJPN10AmbDecConf11SpeakerConfESt14default_deleteIA_S1_EEE", !25, i64 0}
!25 = !{!"_ZTSSt11_Tuple_implILm0EJPN10AmbDecConf11SpeakerConfESt14default_deleteIA_S1_EEE", !26, i64 0}
!26 = !{!"_ZTSSt10_Head_baseILm0EPN10AmbDecConf11SpeakerConfELb0EE", !6, i64 0}
!27 = !{!"_ZTSSt10unique_ptrIA_St5arrayIfLm16EESt14default_deleteIS2_EE", !28, i64 0}
!28 = !{!"_ZTSSt15__uniq_ptr_dataISt5arrayIfLm16EESt14default_deleteIA_S1_ELb1ELb1EE", !29, i64 0}
!29 = !{!"_ZTSSt15__uniq_ptr_implISt5arrayIfLm16EESt14default_deleteIA_S1_EE", !30, i64 0}
!30 = !{!"_ZTSSt5tupleIJPSt5arrayIfLm16EESt14default_deleteIA_S1_EEE", !31, i64 0}
!31 = !{!"_ZTSSt11_Tuple_implILm0EJPSt5arrayIfLm16EESt14default_deleteIA_S1_EEE", !32, i64 0}
!32 = !{!"_ZTSSt10_Head_baseILm0EPSt5arrayIfLm16EELb0EE", !6, i64 0}
!33 = !{!14, !18, i64 36}
!34 = !{!14, !18, i64 40}
!35 = !{!14, !17, i64 56}
!36 = !{!14, !19, i64 44}
!37 = !{!17, !17, i64 0}
!38 = !{!14, !6, i64 96}
!39 = !{!14, !6, i64 120}
!40 = !{i8 0, i8 2}
!41 = !{}
!42 = distinct !{!42, !43}
!43 = !{!"llvm.loop.mustprogress"}


; 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.al::optional" = type { %"struct.al::optional_storage" }
%"struct.al::optional_storage" = type { %"struct.al::optstore_helper" }
%"struct.al::optstore_helper" = type { %"struct.al::optstore_base" }
%"struct.al::optstore_base" = type { i8, %union.anon }
%union.anon = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.0 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.0 = type { i64, [8 x i8] }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.1 }
%union.anon.1 = type { i32 }
%"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::__cxx11::basic_istringstream" = type { %"class.std::basic_istream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::fpos" = type { i64, %struct.__mbstate_t }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.3" }
%"struct.std::_Head_base.3" = type { ptr }
%"class.std::unique_ptr.4" = type { %"struct.std::__uniq_ptr_data.5" }
%"struct.std::__uniq_ptr_data.5" = type { %"class.std::__uniq_ptr_impl.6" }
%"class.std::__uniq_ptr_impl.6" = type { %"class.std::tuple.7" }
%"class.std::tuple.7" = type { %"struct.std::_Tuple_impl.8" }
%"struct.std::_Tuple_impl.8" = type { %"struct.std::_Head_base.11" }
%"struct.std::_Head_base.11" = type { ptr }
%"struct.std::array" = type { [16 x float] }

@.str = external hidden unnamed_addr constant [20 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [21 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
define dso_local void @_ZN10AmbDecConf4loadB5cxx11EPKc(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(128) %1, ptr noundef %2) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::basic_ifstream", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_istringstream", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::fpos", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::fpos", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::fpos", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::fpos", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::unique_ptr", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::fpos", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::fpos", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::fpos", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_istringstream", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::fpos", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::unique_ptr.4", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_istringstream", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::fpos", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::fpos", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %4) #8
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %4, ptr noundef %2, i32 noundef 8)
          to label %63 unwind label %.loopexit.split-lp

63:                                               ; preds = %3
  %64 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %4)
  br i1 %64, label %66, label %65

65:                                               ; preds = %63
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA20_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(20) @.str)
          to label %452 unwind label %.loopexit.split-lp

66:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  %67 = getelementptr inbounds i8, ptr %56, i64 8
  %68 = getelementptr inbounds i8, ptr %1, i64 40
  %69 = getelementptr inbounds i8, ptr %1, i64 56
  %70 = getelementptr inbounds i8, ptr %45, i64 8
  %71 = getelementptr inbounds i8, ptr %1, i64 72
  %72 = getelementptr inbounds i8, ptr %1, i64 96
  %73 = getelementptr inbounds i8, ptr %1, i64 120
  %74 = getelementptr inbounds i8, ptr %1, i64 104
  %75 = getelementptr inbounds i8, ptr %1, i64 80
  %76 = getelementptr inbounds i8, ptr %39, i64 8
  %77 = getelementptr inbounds i8, ptr %1, i64 64
  %78 = getelementptr inbounds i8, ptr %1, i64 52
  %79 = getelementptr inbounds i8, ptr %37, i64 8
  %80 = getelementptr inbounds i8, ptr %1, i64 48
  %81 = getelementptr inbounds i8, ptr %34, i64 8
  %82 = getelementptr inbounds i8, ptr %1, i64 44
  %83 = getelementptr inbounds i8, ptr %26, i64 8
  %84 = getelementptr inbounds i8, ptr %21, i64 8
  %85 = getelementptr inbounds i8, ptr %1, i64 36
  %86 = getelementptr inbounds i8, ptr %16, i64 8
  %87 = getelementptr inbounds i8, ptr %1, i64 32
  %88 = getelementptr inbounds i8, ptr %11, i64 8
  %89 = getelementptr inbounds i8, ptr %60, i64 8
  br label %90

90:                                               ; preds = %.critedge66.thread, %66
  %.044 = phi i1 [ false, %66 ], [ %.448, %.critedge66.thread ]
  %.038 = phi i1 [ false, %66 ], [ %.442, %.critedge66.thread ]
  %.031 = phi i1 [ false, %66 ], [ %.334, %.critedge66.thread ]
  %91 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_117read_clipped_lineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %92 unwind label %.loopexit

92:                                               ; preds = %90
  br i1 %91, label %93, label %451

93:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %6) #8
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(120) %6, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 8)
          to label %94 unwind label %.loopexit

94:                                               ; preds = %93
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %95 unwind label %.loopexit

95:                                               ; preds = %94
  %96 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br i1 %96, label %97, label %100

97:                                               ; preds = %95
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull @.str.1, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %98 unwind label %.loopexit

98:                                               ; preds = %97
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %99 unwind label %.loopexit

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

100:                                              ; preds = %95
  %101 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.2)
  br i1 %101, label %102, label %104

102:                                              ; preds = %100
  %103 = invoke noundef i32 @_ZN12_GLOBAL__N_18readlineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %434 unwind label %.loopexit

104:                                              ; preds = %100
  %105 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.3)
  br i1 %105, label %106, label %132

106:                                              ; preds = %104
  %107 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 4 dereferenceable(4) %87)
          to label %108 unwind label %.loopexit

108:                                              ; preds = %106
  %109 = load ptr, ptr %6, align 8, !tbaa !5
  %110 = getelementptr i8, ptr %109, i64 -24
  %111 = load i64, ptr %110, align 8
  %112 = getelementptr inbounds i8, ptr %6, i64 %111
  %113 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %112)
  br i1 %113, label %127, label %114

114:                                              ; preds = %108
  %115 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %116 unwind label %.loopexit

116:                                              ; preds = %114
  %117 = call i32 @isspace(i32 noundef %115) #9
  %.not63 = icmp eq i32 %117, 0
  br i1 %.not63, label %118, label %127

118:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #8
  %119 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %120 unwind label %.loopexit

120:                                              ; preds = %118
  %121 = extractvalue { i64, i64 } %119, 0
  store i64 %121, ptr %11, align 8
  %122 = extractvalue { i64, i64 } %119, 1
  store i64 %122, ptr %88, align 8
  %123 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %123, i64 noundef -1)
          to label %124 unwind label %.loopexit

124:                                              ; preds = %120
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull @.str.4, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %125 unwind label %.loopexit

125:                                              ; preds = %124
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %126 unwind label %.loopexit

126:                                              ; preds = %125
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  br label %.critedge66.thread

127:                                              ; preds = %116, %108
  %128 = load i32, ptr %87, align 8, !tbaa !8
  %.not64 = icmp eq i32 %128, 3
  br i1 %.not64, label %434, label %129

129:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, i32 noundef %128) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %130 unwind label %.loopexit

130:                                              ; preds = %129
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %131 unwind label %.loopexit

131:                                              ; preds = %130
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  br label %.critedge66.thread

132:                                              ; preds = %104
  %133 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.6)
  br i1 %133, label %134, label %167

134:                                              ; preds = %132
  %135 = load i32, ptr %85, align 4, !tbaa !30
  %.not60 = icmp eq i32 %135, 0
  br i1 %.not60, label %137, label %.invoke

.invoke:                                          ; preds = %340, %134
  %136 = phi ptr [ @.str.7, %134 ], [ @.str.40, %340 ]
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA31_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(31) %136)
          to label %.critedge66.thread unwind label %.loopexit

137:                                              ; preds = %134
  %138 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull @_ZSt3hexRSt8ios_base)
          to label %139 unwind label %.loopexit

139:                                              ; preds = %137
  %140 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 4 dereferenceable(4) %85)
          to label %141 unwind label %.loopexit

141:                                              ; preds = %139
  %142 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(16) %140, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %143 unwind label %.loopexit

143:                                              ; preds = %141
  %144 = load ptr, ptr %6, align 8, !tbaa !5
  %145 = getelementptr i8, ptr %144, i64 -24
  %146 = load i64, ptr %145, align 8
  %147 = getelementptr inbounds i8, ptr %6, i64 %146
  %148 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %147)
  br i1 %148, label %162, label %149

149:                                              ; preds = %143
  %150 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %151 unwind label %.loopexit

151:                                              ; preds = %149
  %152 = call i32 @isspace(i32 noundef %150) #9
  %.not61 = icmp eq i32 %152, 0
  br i1 %.not61, label %153, label %162

153:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #8
  %154 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %155 unwind label %.loopexit

155:                                              ; preds = %153
  %156 = extractvalue { i64, i64 } %154, 0
  store i64 %156, ptr %16, align 8
  %157 = extractvalue { i64, i64 } %154, 1
  store i64 %157, ptr %86, align 8
  %158 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %16)
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %158, i64 noundef -1)
          to label %159 unwind label %.loopexit

159:                                              ; preds = %155
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull @.str.8, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %160 unwind label %.loopexit

160:                                              ; preds = %159
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %161 unwind label %.loopexit

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

162:                                              ; preds = %151, %143
  %163 = load i32, ptr %85, align 4, !tbaa !30
  %.not62 = icmp eq i32 %163, 0
  br i1 %.not62, label %164, label %434

164:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #8
  call void @_ZNSt7__cxx119to_stringEj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, i32 noundef 0) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull @.str.9, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %165 unwind label %.loopexit

165:                                              ; preds = %164
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %166 unwind label %.loopexit

166:                                              ; preds = %165
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  br label %.critedge66.thread

167:                                              ; preds = %132
  %168 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.10)
  br i1 %168, label %169, label %198

169:                                              ; preds = %167
  %170 = load i32, ptr %68, align 8, !tbaa !31
  %.not56 = icmp eq i32 %170, 0
  br i1 %.not56, label %172, label %171

171:                                              ; preds = %169
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA21_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(21) @.str.11)
          to label %.critedge66.thread unwind label %.loopexit

172:                                              ; preds = %169
  %173 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 4 dereferenceable(4) %68)
          to label %174 unwind label %.loopexit

174:                                              ; preds = %172
  %175 = load ptr, ptr %6, align 8, !tbaa !5
  %176 = getelementptr i8, ptr %175, i64 -24
  %177 = load i64, ptr %176, align 8
  %178 = getelementptr inbounds i8, ptr %6, i64 %177
  %179 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %178)
  br i1 %179, label %193, label %180

180:                                              ; preds = %174
  %181 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %182 unwind label %.loopexit

182:                                              ; preds = %180
  %183 = call i32 @isspace(i32 noundef %181) #9
  %.not57 = icmp eq i32 %183, 0
  br i1 %.not57, label %184, label %193

184:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #8
  %185 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %186 unwind label %.loopexit

186:                                              ; preds = %184
  %187 = extractvalue { i64, i64 } %185, 0
  store i64 %187, ptr %21, align 8
  %188 = extractvalue { i64, i64 } %185, 1
  store i64 %188, ptr %84, align 8
  %189 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %189, i64 noundef -1)
          to label %190 unwind label %.loopexit

190:                                              ; preds = %186
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull @.str.12, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %191 unwind label %.loopexit

191:                                              ; preds = %190
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %192 unwind label %.loopexit

192:                                              ; preds = %191
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  br label %.critedge66.thread

193:                                              ; preds = %182, %174
  %194 = load i32, ptr %68, align 8, !tbaa !31
  %.off = add i32 %194, -1
  %switch = icmp ult i32 %.off, 2
  br i1 %switch, label %434, label %195

195:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #8
  call void @_ZNSt7__cxx119to_stringEj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, i32 noundef %194) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull @.str.13, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %196 unwind label %.loopexit

196:                                              ; preds = %195
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %197 unwind label %.loopexit

197:                                              ; preds = %196
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  br label %.critedge66.thread

198:                                              ; preds = %167
  %199 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.14)
  br i1 %199, label %200, label %233

200:                                              ; preds = %198
  %201 = load i64, ptr %69, align 8, !tbaa !32
  %.not53 = icmp eq i64 %201, 0
  br i1 %.not53, label %203, label %.invoke83

.invoke83:                                        ; preds = %425, %427, %200
  %202 = phi ptr [ @.str.15, %200 ], [ @.str.47, %427 ], [ @.str.47, %425 ]
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(19) %202)
          to label %.critedge66.thread unwind label %.loopexit

203:                                              ; preds = %200
  %204 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERm(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %205 unwind label %.loopexit

205:                                              ; preds = %203
  %206 = load ptr, ptr %6, align 8, !tbaa !5
  %207 = getelementptr i8, ptr %206, i64 -24
  %208 = load i64, ptr %207, align 8
  %209 = getelementptr inbounds i8, ptr %6, i64 %208
  %210 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %209)
  br i1 %210, label %224, label %211

211:                                              ; preds = %205
  %212 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %213 unwind label %.loopexit

213:                                              ; preds = %211
  %214 = call i32 @isspace(i32 noundef %212) #9
  %.not54 = icmp eq i32 %214, 0
  br i1 %.not54, label %215, label %224

215:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #8
  %216 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %217 unwind label %.loopexit

217:                                              ; preds = %215
  %218 = extractvalue { i64, i64 } %216, 0
  store i64 %218, ptr %26, align 8
  %219 = extractvalue { i64, i64 } %216, 1
  store i64 %219, ptr %83, align 8
  %220 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %26)
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %220, i64 noundef -1)
          to label %221 unwind label %.loopexit

221:                                              ; preds = %217
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull @.str.16, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %222 unwind label %.loopexit

222:                                              ; preds = %221
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %223 unwind label %.loopexit

223:                                              ; preds = %222
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  br label %.critedge66.thread

224:                                              ; preds = %213, %205
  %225 = load i64, ptr %69, align 8, !tbaa !32
  %.not55 = icmp eq i64 %225, 0
  br i1 %.not55, label %226, label %230

226:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #8
  invoke void @_ZNSt7__cxx119to_stringEm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, i64 noundef 0)
          to label %227 unwind label %.loopexit

227:                                              ; preds = %226
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull @.str.17, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %228 unwind label %.loopexit

228:                                              ; preds = %227
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %229 unwind label %.loopexit

229:                                              ; preds = %228
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %.critedge66.thread

230:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #8
  invoke void @_ZSt11make_uniqueIA_N10AmbDecConf11SpeakerConfEENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr") align 8 %29, i64 noundef %225)
          to label %231 unwind label %.loopexit

231:                                              ; preds = %230
  %232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIA_N10AmbDecConf11SpeakerConfESt14default_deleteIS2_EEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  call void @_ZNSt10unique_ptrIA_N10AmbDecConf11SpeakerConfESt14default_deleteIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  br label %434

233:                                              ; preds = %198
  %234 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.18)
  br i1 %234, label %235, label %245

235:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %236 unwind label %.loopexit

236:                                              ; preds = %235
  %237 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.19)
  br i1 %237, label %244, label %238

238:                                              ; preds = %236
  %239 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.20)
  br i1 %239, label %244, label %240

240:                                              ; preds = %238
  %241 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.21)
  br i1 %241, label %244, label %242

242:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %243 unwind label %.loopexit

243:                                              ; preds = %242
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %.critedge unwind label %.loopexit

.critedge:                                        ; preds = %243
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %.critedge66.thread

244:                                              ; preds = %240, %238, %236
  %.sink = phi i32 [ 0, %236 ], [ 1, %238 ], [ 2, %240 ]
  store i32 %.sink, ptr %82, align 4, !tbaa !33
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %434

245:                                              ; preds = %233
  %246 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.23)
  br i1 %246, label %247, label %268

247:                                              ; preds = %245
  %248 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 4 dereferenceable(4) %80)
          to label %249 unwind label %.loopexit

249:                                              ; preds = %247
  %250 = load ptr, ptr %6, align 8, !tbaa !5
  %251 = getelementptr i8, ptr %250, i64 -24
  %252 = load i64, ptr %251, align 8
  %253 = getelementptr inbounds i8, ptr %6, i64 %252
  %254 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %253)
  br i1 %254, label %434, label %255

255:                                              ; preds = %249
  %256 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %257 unwind label %.loopexit

257:                                              ; preds = %255
  %258 = call i32 @isspace(i32 noundef %256) #9
  %.not52 = icmp eq i32 %258, 0
  br i1 %.not52, label %259, label %434

259:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #8
  %260 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %261 unwind label %.loopexit

261:                                              ; preds = %259
  %262 = extractvalue { i64, i64 } %260, 0
  store i64 %262, ptr %34, align 8
  %263 = extractvalue { i64, i64 } %260, 1
  store i64 %263, ptr %81, align 8
  %264 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %264, i64 noundef -1)
          to label %265 unwind label %.loopexit

265:                                              ; preds = %261
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %266 unwind label %.loopexit

266:                                              ; preds = %265
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %267 unwind label %.loopexit

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

268:                                              ; preds = %245
  %269 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.25)
  br i1 %269, label %270, label %291

270:                                              ; preds = %268
  %271 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 4 dereferenceable(4) %78)
          to label %272 unwind label %.loopexit

272:                                              ; preds = %270
  %273 = load ptr, ptr %6, align 8, !tbaa !5
  %274 = getelementptr i8, ptr %273, i64 -24
  %275 = load i64, ptr %274, align 8
  %276 = getelementptr inbounds i8, ptr %6, i64 %275
  %277 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %276)
  br i1 %277, label %434, label %278

278:                                              ; preds = %272
  %279 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %280 unwind label %.loopexit

280:                                              ; preds = %278
  %281 = call i32 @isspace(i32 noundef %279) #9
  %.not51 = icmp eq i32 %281, 0
  br i1 %.not51, label %282, label %434

282:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #8
  %283 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %284 unwind label %.loopexit

284:                                              ; preds = %282
  %285 = extractvalue { i64, i64 } %283, 0
  store i64 %285, ptr %37, align 8
  %286 = extractvalue { i64, i64 } %283, 1
  store i64 %286, ptr %79, align 8
  %287 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %37)
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %287, i64 noundef -1)
          to label %288 unwind label %.loopexit

288:                                              ; preds = %284
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull @.str.26, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %289 unwind label %.loopexit

289:                                              ; preds = %288
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %290 unwind label %.loopexit

290:                                              ; preds = %289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  br label %.critedge66.thread

291:                                              ; preds = %268
  %292 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.27)
  br i1 %292, label %299, label %293

293:                                              ; preds = %291
  %294 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.28)
  br i1 %294, label %299, label %295

295:                                              ; preds = %293
  %296 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.29)
  br i1 %296, label %299, label %297

297:                                              ; preds = %295
  %298 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.30)
  br i1 %298, label %299, label %301

299:                                              ; preds = %297, %295, %293, %291
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %300 unwind label %.loopexit

300:                                              ; preds = %299
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %434

301:                                              ; preds = %297
  %302 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.31)
  br i1 %302, label %303, label %334

303:                                              ; preds = %301
  %304 = load i64, ptr %69, align 8, !tbaa !32
  %.not50 = icmp eq i64 %304, 0
  br i1 %.not50, label %305, label %306

305:                                              ; preds = %303
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA33_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(33) @.str.32)
          to label %.critedge66.thread unwind label %.loopexit

306:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #8
  %307 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %308 unwind label %.loopexit

308:                                              ; preds = %306
  %309 = extractvalue { i64, i64 } %307, 0
  store i64 %309, ptr %39, align 8
  %310 = extractvalue { i64, i64 } %307, 1
  store i64 %310, ptr %76, align 8
  %311 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #8
  %312 = call noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %311)
  br i1 %312, label %317, label %313

313:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #8
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %311, i64 noundef -1)
          to label %314 unwind label %.loopexit

314:                                              ; preds = %313
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull @.str.33, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %315 unwind label %.loopexit

315:                                              ; preds = %314
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %316 unwind label %.loopexit

316:                                              ; preds = %315
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  br label %.critedge66.thread

317:                                              ; preds = %308
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  %318 = call noundef ptr @_ZNKSt10unique_ptrIA_N10AmbDecConf11SpeakerConfESt14default_deleteIS2_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %77) #8
  %319 = load i64, ptr %69, align 8, !tbaa !32
  invoke void @_ZN12_GLOBAL__N_120load_ambdec_speakersEPN10AmbDecConf11SpeakerConfEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef %318, i64 noundef %319, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %320 unwind label %.loopexit

320:                                              ; preds = %317
  %321 = call noundef zeroext i1 @_ZNK2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br i1 %321, label %.critedge66.thread, label %322

322:                                              ; preds = %320
  call void @_ZN2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  %323 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_117read_clipped_lineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %324 unwind label %.loopexit

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

325:                                              ; preds = %324
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA23_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(23) @.str.34)
          to label %.critedge66.thread unwind label %.loopexit

326:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %42) #8
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(120) %42, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 8)
          to label %327 unwind label %.loopexit

327:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #8
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %328 unwind label %.loopexit

328:                                              ; preds = %327
  %329 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.35)
  br i1 %329, label %330, label %333

330:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull @.str.36, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %331 unwind label %.loopexit

331:                                              ; preds = %330
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %332 unwind label %.loopexit

332:                                              ; preds = %331
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  br label %.critedge66

333:                                              ; preds = %328
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS4_(ptr noundef nonnull align 8 dereferenceable(120) %6, ptr noundef nonnull align 8 dereferenceable(120) %42)
          to label %.critedge66 unwind label %.loopexit

.critedge66:                                      ; preds = %332, %333
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  call void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(120) %42) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %42) #8
  br i1 %329, label %.critedge66.thread, label %434

334:                                              ; preds = %301
  %335 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.37)
  br i1 %335, label %340, label %336

336:                                              ; preds = %334
  %337 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.38)
  br i1 %337, label %340, label %338

338:                                              ; preds = %336
  %339 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.39)
  br i1 %339, label %340, label %412

340:                                              ; preds = %338, %336, %334
  %341 = load i64, ptr %69, align 8, !tbaa !32
  %.not = icmp eq i64 %341, 0
  br i1 %.not, label %.invoke, label %342

342:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #8
  %343 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %344 unwind label %.loopexit

344:                                              ; preds = %342
  %345 = extractvalue { i64, i64 } %343, 0
  store i64 %345, ptr %45, align 8
  %346 = extractvalue { i64, i64 } %343, 1
  store i64 %346, ptr %70, align 8
  %347 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %45)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #8
  %348 = call noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %347)
  br i1 %348, label %353, label %349

349:                                              ; preds = %344
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #8
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %347, i64 noundef -1)
          to label %350 unwind label %.loopexit

350:                                              ; preds = %349
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull @.str.33, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %351 unwind label %.loopexit

351:                                              ; preds = %350
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %352 unwind label %.loopexit

352:                                              ; preds = %351
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  br label %.critedge66.thread

353:                                              ; preds = %344
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  %354 = call noundef zeroext i1 @_ZNKSt10unique_ptrIA_St5arrayIfLm16EESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  %.pre = load i32, ptr %68, align 8, !tbaa !31
  br i1 %354, label %368, label %355

355:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #8
  %356 = load i64, ptr %69, align 8, !tbaa !32
  %357 = zext i32 %.pre to i64
  %358 = mul i64 %356, %357
  invoke void @_ZSt11make_uniqueIA_St5arrayIfLm16EEENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.4") align 8 %48, i64 noundef %358)
          to label %359 unwind label %.loopexit

359:                                              ; preds = %355
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIA_St5arrayIfLm16EESt14default_deleteIS2_EEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  call void @_ZNSt10unique_ptrIA_St5arrayIfLm16EESt14default_deleteIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #8
  %361 = call noundef ptr @_ZNKSt10unique_ptrIA_St5arrayIfLm16EESt14default_deleteIS2_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %71) #8
  store ptr %361, ptr %72, align 8, !tbaa !34
  %362 = load i64, ptr %69, align 8, !tbaa !32
  %363 = load i32, ptr %68, align 8, !tbaa !31
  %364 = add i32 %363, -1
  %365 = zext i32 %364 to i64
  %366 = mul i64 %362, %365
  %367 = getelementptr inbounds %"struct.std::array", ptr %361, i64 %366
  store ptr %367, ptr %73, align 8, !tbaa !35
  br label %368

368:                                              ; preds = %359, %353
  %369 = phi i32 [ %363, %359 ], [ %.pre, %353 ]
  %370 = icmp eq i32 %369, 1
  br i1 %370, label %371, label %382

371:                                              ; preds = %368
  %372 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.39)
  br i1 %372, label %373, label %377

373:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull @.str.41, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %374 unwind label %.loopexit

374:                                              ; preds = %373
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @.str.42)
          to label %375 unwind label %.loopexit

375:                                              ; preds = %374
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %376 unwind label %.loopexit

376:                                              ; preds = %375
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  br label %.critedge66.thread

377:                                              ; preds = %371
  %378 = load ptr, ptr %73, align 8, !tbaa !35
  %379 = load i64, ptr %69, align 8, !tbaa !32
  invoke void @_ZN12_GLOBAL__N_118load_ambdec_matrixERA4_fPSt5arrayIfLm16EEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 4 dereferenceable(16) %74, ptr noundef %378, i64 noundef %379, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %380 unwind label %.loopexit

380:                                              ; preds = %377
  %381 = call noundef zeroext i1 @_ZNK2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br i1 %381, label %.critedge66.thread, label %400

382:                                              ; preds = %368
  %383 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.37)
  br i1 %383, label %384, label %389

384:                                              ; preds = %382
  %385 = load ptr, ptr %72, align 8, !tbaa !34
  %386 = load i64, ptr %69, align 8, !tbaa !32
  invoke void @_ZN12_GLOBAL__N_118load_ambdec_matrixERA4_fPSt5arrayIfLm16EEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 4 dereferenceable(16) %75, ptr noundef %385, i64 noundef %386, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %387 unwind label %.loopexit

387:                                              ; preds = %384
  %388 = call noundef zeroext i1 @_ZNK2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br i1 %388, label %.critedge66.thread, label %400

389:                                              ; preds = %382
  %390 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.38)
  br i1 %390, label %391, label %396

391:                                              ; preds = %389
  %392 = load ptr, ptr %73, align 8, !tbaa !35
  %393 = load i64, ptr %69, align 8, !tbaa !32
  invoke void @_ZN12_GLOBAL__N_118load_ambdec_matrixERA4_fPSt5arrayIfLm16EEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 4 dereferenceable(16) %74, ptr noundef %392, i64 noundef %393, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %394 unwind label %.loopexit

394:                                              ; preds = %391
  %395 = call noundef zeroext i1 @_ZNK2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br i1 %395, label %.critedge66.thread, label %400

396:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull @.str.41, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %397 unwind label %.loopexit

397:                                              ; preds = %396
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.43)
          to label %398 unwind label %.loopexit

398:                                              ; preds = %397
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %399 unwind label %.loopexit

399:                                              ; preds = %398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  br label %.critedge66.thread

400:                                              ; preds = %394, %387, %380
  %.145 = phi i1 [ %.044, %380 ], [ true, %387 ], [ %.044, %394 ]
  %.139 = phi i1 [ true, %380 ], [ %.038, %387 ], [ true, %394 ]
  call void @_ZN2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  %401 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_117read_clipped_lineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %402 unwind label %.loopexit

402:                                              ; preds = %400
  br i1 %401, label %404, label %403

403:                                              ; preds = %402
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA23_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(23) @.str.34)
          to label %.critedge66.thread unwind label %.loopexit

404:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %53) #8
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(120) %53, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 8)
          to label %405 unwind label %.loopexit

405:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #8
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(16) %53)
          to label %406 unwind label %.loopexit

406:                                              ; preds = %405
  %407 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.35)
  br i1 %407, label %408, label %411

408:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull @.str.44, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %409 unwind label %.loopexit

409:                                              ; preds = %408
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind nonnull writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %410 unwind label %.loopexit

410:                                              ; preds = %409
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  br label %.critedge68

411:                                              ; preds = %406
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS4_(ptr noundef nonnull align 8 dereferenceable(120) %6, ptr noundef nonnull align 8 dereferenceable(120) %53)
          to label %.critedge68 unwind label %.loopexit

.critedge68:                                      ; preds = %410, %411
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(120) %53) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %53) #8
  br i1 %407, label %.critedge66.thread, label %434

412:                                              ; preds = %338
  %413 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.45)
  br i1 %413, label %414, label %431

414:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %56) #8
  %415 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %416 unwind label %.loopexit

416:                                              ; preds = %414
  %417 = extractvalue { i64, i64 } %415, 0
  store i64 %417, ptr %56, align 8
  %418 = extractvalue { i64, i64 } %415, 1
  store i64 %418, ptr %67, align 8
  %419 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %56)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #8
  %420 = call noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %419)
  br i1 %420, label %425, label %421

421:                                              ; preds = %416
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #8
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %419, i64 noundef -1)
          to label %422 unwind label %.loopexit

422:                                              ; preds = %421
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull @.str.46, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %423 unwind label %.loopexit

423:                                              ; preds = %422
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %424 unwind label %.loopexit

424:                                              ; preds = %423
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  br label %.critedge66.thread

425:                                              ; preds = %416
  %426 = select i1 %.031, i1 %.038, i1 false
  br i1 %426, label %427, label %.invoke83

427:                                              ; preds = %425
  %428 = load i32, ptr %68, align 8, !tbaa !31
  %429 = icmp ne i32 %428, 2
  %brmerge81 = select i1 %429, i1 true, i1 %.044
  br i1 %brmerge81, label %430, label %.invoke83

430:                                              ; preds = %427
  call void @_ZN2al8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ENS_9nullopt_tE(ptr noundef nonnull align 8 dereferenceable(40) %0) #8
  br label %.critedge66.thread

431:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull @.str.48, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %432 unwind label %.loopexit

432:                                              ; preds = %431
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %433 unwind label %.loopexit

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

434:                                              ; preds = %193, %244, %127, %280, %272, %.critedge66, %.critedge68, %300, %249, %257, %231, %162, %102
  %.347 = phi i1 [ %.044, %102 ], [ %.044, %127 ], [ %.044, %162 ], [ %.044, %231 ], [ %.044, %244 ], [ %.044, %249 ], [ %.044, %257 ], [ %.044, %272 ], [ %.044, %280 ], [ %.044, %300 ], [ %.044, %.critedge66 ], [ %.145, %.critedge68 ], [ %.044, %193 ]
  %.341 = phi i1 [ %.038, %102 ], [ %.038, %127 ], [ %.038, %162 ], [ %.038, %231 ], [ %.038, %244 ], [ %.038, %249 ], [ %.038, %257 ], [ %.038, %272 ], [ %.038, %280 ], [ %.038, %300 ], [ %.038, %.critedge66 ], [ %.139, %.critedge68 ], [ %.038, %193 ]
  %.233 = phi i1 [ %.031, %102 ], [ %.031, %127 ], [ %.031, %162 ], [ %.031, %231 ], [ %.031, %244 ], [ %.031, %249 ], [ %.031, %257 ], [ %.031, %272 ], [ %.031, %280 ], [ %.031, %300 ], [ true, %.critedge66 ], [ %.031, %.critedge68 ], [ %.031, %193 ]
  %435 = load ptr, ptr %6, align 8, !tbaa !5
  %436 = getelementptr i8, ptr %435, i64 -24
  %437 = load i64, ptr %436, align 8
  %438 = getelementptr inbounds i8, ptr %6, i64 %437
  invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %438, i32 noundef 0)
          to label %439 unwind label %.loopexit

439:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %60) #8
  %440 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %441 unwind label %.loopexit

441:                                              ; preds = %439
  %442 = extractvalue { i64, i64 } %440, 0
  store i64 %442, ptr %60, align 8
  %443 = extractvalue { i64, i64 } %440, 1
  store i64 %443, ptr %89, align 8
  %444 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #8
  %445 = call noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %444)
  br i1 %445, label %450, label %446

446:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #8
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 noundef %444, i64 noundef -1)
          to label %447 unwind label %.loopexit

447:                                              ; preds = %446
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull @.str.33, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %448 unwind label %.loopexit

448:                                              ; preds = %447
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %449 unwind label %.loopexit

449:                                              ; preds = %448
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  br label %.critedge66.thread

450:                                              ; preds = %441
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  br label %.critedge66.thread

.critedge66.thread:                               ; preds = %.invoke83, %.invoke, %394, %387, %380, %403, %352, %399, %376, %320, %325, %316, %449, %450, %424, %430, %305, %.critedge, %171, %.critedge66, %.critedge68, %433, %290, %267, %229, %223, %197, %192, %166, %161, %131, %126, %99
  %.448 = phi i1 [ %.044, %99 ], [ %.044, %131 ], [ %.044, %126 ], [ %.044, %166 ], [ %.044, %161 ], [ %.044, %197 ], [ %.044, %192 ], [ %.044, %229 ], [ %.044, %223 ], [ %.044, %267 ], [ %.044, %290 ], [ %.044, %.critedge66 ], [ %.145, %.critedge68 ], [ %.044, %433 ], [ %.044, %171 ], [ %.044, %.critedge ], [ %.044, %305 ], [ %.044, %430 ], [ %.044, %424 ], [ %.347, %450 ], [ %.347, %449 ], [ %.044, %316 ], [ %.044, %325 ], [ %.044, %320 ], [ %.044, %394 ], [ %.044, %387 ], [ %.044, %380 ], [ %.145, %403 ], [ %.044, %352 ], [ %.044, %399 ], [ %.044, %376 ], [ %.044, %.invoke ], [ %.044, %.invoke83 ]
  %.442 = phi i1 [ %.038, %99 ], [ %.038, %131 ], [ %.038, %126 ], [ %.038, %166 ], [ %.038, %161 ], [ %.038, %197 ], [ %.038, %192 ], [ %.038, %229 ], [ %.038, %223 ], [ %.038, %267 ], [ %.038, %290 ], [ %.038, %.critedge66 ], [ %.139, %.critedge68 ], [ %.038, %433 ], [ %.038, %171 ], [ %.038, %.critedge ], [ %.038, %305 ], [ true, %430 ], [ %.038, %424 ], [ %.341, %450 ], [ %.341, %449 ], [ %.038, %316 ], [ %.038, %325 ], [ %.038, %320 ], [ %.038, %394 ], [ %.038, %387 ], [ %.038, %380 ], [ %.139, %403 ], [ %.038, %352 ], [ %.038, %399 ], [ %.038, %376 ], [ %.038, %.invoke ], [ %.038, %.invoke83 ]
  %.334 = phi i1 [ %.031, %99 ], [ %.031, %131 ], [ %.031, %126 ], [ %.031, %166 ], [ %.031, %161 ], [ %.031, %197 ], [ %.031, %192 ], [ %.031, %229 ], [ %.031, %223 ], [ %.031, %267 ], [ %.031, %290 ], [ true, %.critedge66 ], [ %.031, %.critedge68 ], [ %.031, %433 ], [ %.031, %171 ], [ %.031, %.critedge ], [ %.031, %305 ], [ true, %430 ], [ %.031, %424 ], [ %.233, %450 ], [ %.233, %449 ], [ %.031, %316 ], [ true, %325 ], [ %.031, %320 ], [ %.031, %394 ], [ %.031, %387 ], [ %.031, %380 ], [ %.031, %403 ], [ %.031, %352 ], [ %.031, %399 ], [ %.031, %376 ], [ %.031, %.invoke ], [ %.031, %.invoke83 ]
  %cond = phi i1 [ false, %99 ], [ false, %131 ], [ false, %126 ], [ false, %166 ], [ false, %161 ], [ false, %197 ], [ false, %192 ], [ false, %229 ], [ false, %223 ], [ false, %267 ], [ false, %290 ], [ false, %.critedge66 ], [ false, %.critedge68 ], [ false, %433 ], [ false, %171 ], [ false, %.critedge ], [ false, %305 ], [ false, %430 ], [ false, %424 ], [ true, %450 ], [ false, %449 ], [ false, %316 ], [ false, %325 ], [ false, %320 ], [ false, %394 ], [ false, %387 ], [ false, %380 ], [ false, %403 ], [ false, %352 ], [ false, %399 ], [ false, %376 ], [ false, %.invoke ], [ false, %.invoke83 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(120) %6) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %6) #8
  br i1 %cond, label %90, label %.loopexit82, !llvm.loop !36

451:                                              ; preds = %92
  invoke void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA23_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind writable sret(%"class.al::optional") align 8 %0, ptr noundef nonnull align 1 dereferenceable(23) @.str.34)
          to label %.loopexit82 unwind label %.loopexit.split-lp

.loopexit82:                                      ; preds = %.critedge66.thread, %451
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  br label %452

452:                                              ; preds = %65, %.loopexit82
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %4) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %4) #8
  ret void

.loopexit:                                        ; preds = %.invoke83, %.invoke, %90, %93, %94, %97, %98, %102, %106, %114, %118, %120, %124, %125, %129, %130, %137, %139, %141, %149, %153, %155, %159, %160, %164, %165, %171, %172, %180, %184, %186, %190, %191, %195, %196, %203, %211, %215, %217, %221, %222, %226, %227, %228, %230, %235, %242, %243, %247, %255, %259, %261, %265, %266, %270, %278, %282, %284, %288, %289, %299, %305, %306, %313, %314, %315, %317, %322, %325, %326, %327, %330, %331, %333, %342, %349, %350, %351, %355, %373, %374, %375, %377, %384, %391, %396, %397, %398, %400, %403, %404, %405, %408, %409, %411, %414, %421, %422, %423, %431, %432, %434, %439, %446, %447, %448
  %lpad.loopexit = landingpad { ptr, i32 }
          catch ptr null
  br label %453

.loopexit.split-lp:                               ; preds = %3, %65, %451
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          catch ptr null
  br label %453

453:                                              ; preds = %.loopexit.split-lp, %.loopexit
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  %454 = extractvalue { ptr, i32 } %lpad.phi, 0
  call void @__clang_call_terminate(ptr %454) #10
  unreachable
}

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA20_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(20)) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN12_GLOBAL__N_117read_clipped_lineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_8optionalINSt5decayIT_E4typeEEEOS9_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #6

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isspace(i32 noundef) local_unnamed_addr #7

declare noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) local_unnamed_addr #2 align 2

declare { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA31_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(31)) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3hexRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA21_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(21)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(19)) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIA_N10AmbDecConf11SpeakerConfEENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr") align 8, i64 noundef) local_unnamed_addr #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA33_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(33)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_120load_ambdec_speakersEPN10AmbDecConf11SpeakerConfEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2al13make_optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA23_KcEEENS_8optionalIT_EEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 1 dereferenceable(23)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIA_St5arrayIfLm16EEENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.4") align 8, i64 noundef) local_unnamed_addr #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_118load_ambdec_matrixERA4_fPSt5arrayIfLm16EEmRSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.al::optional") align 8, ptr noundef nonnull align 4 dereferenceable(16), ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264), i32 noundef) local_unnamed_addr #6

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !15, i64 32}
!9 = !{!"_ZTS10AmbDecConf", !10, i64 0, !15, i64 32, !15, i64 36, !15, i64 40, !16, i64 44, !17, i64 48, !17, i64 52, !14, i64 56, !18, i64 64, !24, i64 72, !13, i64 80, !12, i64 96, !13, i64 104, !12, i64 120}
!10 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !11, i64 0, !14, i64 8, !13, i64 16}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!12 = !{!"any pointer", !13, i64 0}
!13 = !{!"omnipotent char", !7, i64 0}
!14 = !{!"long", !13, i64 0}
!15 = !{!"int", !13, i64 0}
!16 = !{!"_ZTS11AmbDecScale", !13, i64 0}
!17 = !{!"float", !13, i64 0}
!18 = !{!"_ZTSSt10unique_ptrIA_N10AmbDecConf11SpeakerConfESt14default_deleteIS2_EE", !19, i64 0}
!19 = !{!"_ZTSSt15__uniq_ptr_dataIN10AmbDecConf11SpeakerConfESt14default_deleteIA_S1_ELb1ELb1EE", !20, i64 0}
!20 = !{!"_ZTSSt15__uniq_ptr_implIN10AmbDecConf11SpeakerConfESt14default_deleteIA_S1_EE", !21, i64 0}
!21 = !{!"_ZTSSt5tupleIJPN10AmbDecConf11SpeakerConfESt14default_deleteIA_S1_EEE", !22, i64 0}
!22 = !{!"_ZTSSt11_Tuple_implILm0EJPN10AmbDecConf11SpeakerConfESt14default_deleteIA_S1_EEE", !23, i64 0}
!23 = !{!"_ZTSSt10_Head_baseILm0EPN10AmbDecConf11SpeakerConfELb0EE", !12, i64 0}
!24 = !{!"_ZTSSt10unique_ptrIA_St5arrayIfLm16EESt14default_deleteIS2_EE", !25, i64 0}
!25 = !{!"_ZTSSt15__uniq_ptr_dataISt5arrayIfLm16EESt14default_deleteIA_S1_ELb1ELb1EE", !26, i64 0}
!26 = !{!"_ZTSSt15__uniq_ptr_implISt5arrayIfLm16EESt14default_deleteIA_S1_EE", !27, i64 0}
!27 = !{!"_ZTSSt5tupleIJPSt5arrayIfLm16EESt14default_deleteIA_S1_EEE", !28, i64 0}
!28 = !{!"_ZTSSt11_Tuple_implILm0EJPSt5arrayIfLm16EESt14default_deleteIA_S1_EEE", !29, i64 0}
!29 = !{!"_ZTSSt10_Head_baseILm0EPSt5arrayIfLm16EELb0EE", !12, i64 0}
!30 = !{!9, !15, i64 36}
!31 = !{!9, !15, i64 40}
!32 = !{!9, !14, i64 56}
!33 = !{!9, !16, i64 44}
!34 = !{!9, !12, i64 96}
!35 = !{!9, !12, i64 120}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}


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