; LLVM IR from Try/Tempest :: Engine/thirdparty/openal-soft/core/ambdec.ll (ZN10AmbDecConf4loadB5cxx11EPKc)

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

%"class.std::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload.base", [7 x i8] }
%"struct.std::_Optional_payload.base" = type { %"struct.std::_Optional_payload_base.base" }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage", i8 }>
%"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::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.10 }
%union.anon.10 = 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::filesystem::__cxx11::path" = type { %"class.std::__cxx11::basic_string", %"struct.std::filesystem::__cxx11::path::_List" }
%"struct.std::filesystem::__cxx11::path::_List" = type { %"class.std::unique_ptr" }
%"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.12" }
%"struct.std::_Head_base.12" = type { ptr }
%"class.std::allocator" = type { i8 }
%"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.al::span" = type { ptr, i64 }
%"class.std::fpos" = type { i64, %struct.__mbstate_t }
%"struct.std::nullopt_t" = type { i8 }
%struct.AmbDecConf = type { %"class.std::__cxx11::basic_string", i32, i32, i32, i32, float, float, %"class.std::vector", %"class.std::vector.3", %"struct.std::array", %"class.al::span", %"struct.std::array", %"class.al::span" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<AmbDecConf::SpeakerConf, std::allocator<AmbDecConf::SpeakerConf>>::_Vector_impl" }
%"struct.std::_Vector_base<AmbDecConf::SpeakerConf, std::allocator<AmbDecConf::SpeakerConf>>::_Vector_impl" = type { %"struct.std::_Vector_base<AmbDecConf::SpeakerConf, std::allocator<AmbDecConf::SpeakerConf>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AmbDecConf::SpeakerConf, std::allocator<AmbDecConf::SpeakerConf>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<std::array<float, 16>, std::allocator<std::array<float, 16>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::array<float, 16>, std::allocator<std::array<float, 16>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::array<float, 16>, std::allocator<std::array<float, 16>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::array<float, 16>, std::allocator<std::array<float, 16>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::array" = type { [4 x float] }
%"struct.AmbDecConf::SpeakerConf" = type { %"class.std::__cxx11::basic_string", float, float, float, %"class.std::__cxx11::basic_string" }

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

; 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 nounwind uwtable
define dso_local void @_ZN10AmbDecConf4loadB5cxx11EPKc(ptr dead_on_unwind noalias writable sret(%"class.std::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(168) %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 %"class.std::filesystem::__cxx11::path", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_istringstream", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca %"class.al::span", align 8
  %25 = alloca ptr, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca float, align 4
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  %34 = alloca i64, align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.al::span", align 8
  %38 = alloca %"class.al::span", align 8
  %39 = alloca %"class.al::span", align 8
  %40 = alloca %"class.al::span", align 8
  %41 = alloca i64, align 8
  %42 = alloca %"class.std::fpos", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"struct.std::nullopt_t", align 1
  %45 = alloca i64, align 8
  %46 = alloca %"class.std::fpos", align 8
  %47 = 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
  %48 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 520, ptr %7) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %8) #10
  invoke void @_ZNSt10filesystem7__cxx116u8pathIPKcNS0_4pathEcEES4_RKT_(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8 %8, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %49 unwind label %689

49:                                               ; preds = %3
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1INSt10filesystem7__cxx114pathES6_EERKT_St13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %7, ptr noundef nonnull align 8 dereferenceable(40) %8, i32 noundef 8)
          to label %50 unwind label %689

50:                                               ; preds = %49
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #10
  %51 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %7)
          to label %52 unwind label %689

52:                                               ; preds = %50
  br i1 %51, label %58, label %53

53:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %54 unwind label %689

54:                                               ; preds = %53
  %55 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef %55)
          to label %56 unwind label %689

56:                                               ; preds = %54
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.1)
          to label %57 unwind label %689

57:                                               ; preds = %56
  call void @_ZNSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS5_TnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS6_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES9_ISA_ISt10in_place_tSH_EESt16is_constructibleIS5_JSD_EESt14is_convertibleISD_S5_EEEbE4typeELb1EEEOSD_(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #10
  store i32 1, ptr %13, align 4
  br label %688

58:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  store i32 0, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  store i64 0, ptr %15, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  store i64 0, ptr %16, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  store i64 0, ptr %17, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  store i64 0, ptr %18, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  br label %59

59:                                               ; preds = %683, %681, %58
  %60 = load ptr, ptr %7, align 8, !tbaa !12
  %61 = getelementptr i8, ptr %60, i64 -24
  %62 = load i64, ptr %61, align 8
  %63 = getelementptr inbounds i8, ptr %7, i64 %62
  %64 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %63)
          to label %65 unwind label %689

65:                                               ; preds = %59
  br i1 %64, label %66, label %75

66:                                               ; preds = %65
  %67 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %68 unwind label %689

68:                                               ; preds = %66
  %69 = load ptr, ptr %67, align 8, !tbaa !12
  %70 = getelementptr i8, ptr %69, i64 -24
  %71 = load i64, ptr %70, align 8
  %72 = getelementptr inbounds i8, ptr %67, i64 %71
  %73 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv(ptr noundef nonnull align 8 dereferenceable(264) %72)
          to label %74 unwind label %689

74:                                               ; preds = %68
  br label %75

75:                                               ; preds = %74, %65
  %76 = phi i1 [ false, %65 ], [ %73, %74 ]
  br i1 %76, label %77, label %684

77:                                               ; preds = %75
  %78 = load i64, ptr %18, align 8, !tbaa !10
  %79 = add i64 %78, 1
  store i64 %79, ptr %18, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 384, ptr %20) #10
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(120) %20, ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef 8)
          to label %80 unwind label %689

80:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #10
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %81 unwind label %689

81:                                               ; preds = %80
  %82 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  br i1 %82, label %89, label %83

83:                                               ; preds = %81
  %84 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %21, i64 noundef 0)
          to label %85 unwind label %689

85:                                               ; preds = %83
  %86 = load i8, ptr %84, align 1, !tbaa !9
  %87 = sext i8 %86 to i32
  %88 = icmp eq i32 %87, 35
  br i1 %88, label %89, label %90

89:                                               ; preds = %85, %81
  store i32 2, ptr %13, align 4
  br label %681, !llvm.loop !14

90:                                               ; preds = %85
  %91 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.2)
          to label %92 unwind label %689

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

93:                                               ; preds = %92
  %94 = load i32, ptr %14, align 4, !tbaa !9
  %95 = icmp eq i32 %94, 0
  br i1 %95, label %96, label %99

96:                                               ; preds = %93
  %97 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %97, ptr noundef @.str.3)
          to label %98 unwind label %689

98:                                               ; preds = %96
  store i32 1, ptr %13, align 4
  br label %681

99:                                               ; preds = %93
  store i32 0, ptr %14, align 4, !tbaa !9
  store i32 2, ptr %13, align 4
  br label %681, !llvm.loop !14

100:                                              ; preds = %92
  %101 = load i32, ptr %14, align 4, !tbaa !9
  %102 = icmp eq i32 %101, 1
  br i1 %102, label %103, label %144

103:                                              ; preds = %100
  %104 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.4)
          to label %105 unwind label %689

105:                                              ; preds = %103
  br i1 %104, label %106, label %139

106:                                              ; preds = %105
  %107 = load i64, ptr %15, align 8, !tbaa !10
  %108 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %109 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %108) #10
  %110 = icmp eq i64 %107, %109
  br i1 %110, label %111, label %114

111:                                              ; preds = %106
  %112 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %112, ptr noundef @.str.5)
          to label %113 unwind label %689

113:                                              ; preds = %111
  store i32 1, ptr %13, align 4
  br label %681

114:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  %115 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %116 = load i64, ptr %15, align 8, !tbaa !10
  %117 = add i64 %116, 1
  store i64 %117, ptr %15, align 8, !tbaa !10
  %118 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %115, i64 noundef %116) #10
  store ptr %118, ptr %22, align 8, !tbaa !5
  %119 = load ptr, ptr %22, align 8, !tbaa !5
  %120 = getelementptr inbounds %"struct.AmbDecConf::SpeakerConf", ptr %119, i32 0, i32 0
  %121 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(32) %120)
          to label %122 unwind label %689

122:                                              ; preds = %114
  %123 = load ptr, ptr %22, align 8, !tbaa !5
  %124 = getelementptr inbounds %"struct.AmbDecConf::SpeakerConf", ptr %123, i32 0, i32 1
  %125 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 4 dereferenceable(4) %124)
          to label %126 unwind label %689

126:                                              ; preds = %122
  %127 = load ptr, ptr %22, align 8, !tbaa !5
  %128 = getelementptr inbounds %"struct.AmbDecConf::SpeakerConf", ptr %127, i32 0, i32 2
  %129 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 4 dereferenceable(4) %128)
          to label %130 unwind label %689

130:                                              ; preds = %126
  %131 = load ptr, ptr %22, align 8, !tbaa !5
  %132 = getelementptr inbounds %"struct.AmbDecConf::SpeakerConf", ptr %131, i32 0, i32 3
  %133 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 4 dereferenceable(4) %132)
          to label %134 unwind label %689

134:                                              ; preds = %130
  %135 = load ptr, ptr %22, align 8, !tbaa !5
  %136 = getelementptr inbounds %"struct.AmbDecConf::SpeakerConf", ptr %135, i32 0, i32 4
  %137 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(32) %136)
          to label %138 unwind label %689

138:                                              ; preds = %134
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  br label %143

139:                                              ; preds = %105
  %140 = load i64, ptr %18, align 8, !tbaa !10
  %141 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %140, ptr noundef @.str.6, ptr noundef %141)
          to label %142 unwind label %689

142:                                              ; preds = %139
  store i32 1, ptr %13, align 4
  br label %681

143:                                              ; preds = %138
  br label %656

144:                                              ; preds = %100
  %145 = load i32, ptr %14, align 4, !tbaa !9
  %146 = icmp eq i32 %145, 2
  br i1 %146, label %150, label %147

147:                                              ; preds = %144
  %148 = load i32, ptr %14, align 4, !tbaa !9
  %149 = icmp eq i32 %148, 3
  br i1 %149, label %150, label %260

150:                                              ; preds = %147, %144
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %151 = load i32, ptr %14, align 4, !tbaa !9
  %152 = icmp eq i32 %151, 2
  br i1 %152, label %153, label %155

153:                                              ; preds = %150
  %154 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 9
  br label %157

155:                                              ; preds = %150
  %156 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 11
  br label %157

157:                                              ; preds = %155, %153
  %158 = phi ptr [ %154, %153 ], [ %156, %155 ]
  store ptr %158, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #10
  %159 = load i32, ptr %14, align 4, !tbaa !9
  %160 = icmp eq i32 %159, 2
  br i1 %160, label %161, label %163

161:                                              ; preds = %157
  %162 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 10
  br label %165

163:                                              ; preds = %157
  %164 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 12
  br label %165

165:                                              ; preds = %163, %161
  %166 = phi ptr [ %162, %161 ], [ %164, %163 ]
  invoke void @_ZN2al4spanISt5arrayIfLm16EELm18446744073709551615EEC2IRS3_TnNSt9enable_ifIXsr7detail_E18is_valid_containerIT_S2_EEbE4typeELb1EEEOS7_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(16) %166)
          to label %167 unwind label %689

167:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %168 = load i32, ptr %14, align 4, !tbaa !9
  %169 = icmp eq i32 %168, 2
  br i1 %169, label %170, label %171

170:                                              ; preds = %167
  br label %172

171:                                              ; preds = %167
  br label %172

172:                                              ; preds = %171, %170
  %173 = phi ptr [ %16, %170 ], [ %17, %171 ]
  store ptr %173, ptr %25, align 8, !tbaa !5
  %174 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.7)
          to label %175 unwind label %689

175:                                              ; preds = %172
  br i1 %174, label %176, label %203

176:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  %177 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 2
  %178 = load i32, ptr %177, align 4, !tbaa !16
  %179 = icmp ugt i32 %178, 65535
  %180 = zext i1 %179 to i64
  %181 = select i1 %179, i32 5, i32 4
  %182 = zext i32 %181 to i64
  store i64 %182, ptr %26, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #10
  store i64 0, ptr %27, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  store float 0.000000e+00, ptr %28, align 4, !tbaa !33
  br label %183

183:                                              ; preds = %201, %176
  %184 = load i64, ptr %26, align 8, !tbaa !10
  %185 = icmp ne i64 %184, 0
  br i1 %185, label %186, label %202

186:                                              ; preds = %183
  %187 = load i64, ptr %26, align 8, !tbaa !10
  %188 = add i64 %187, -1
  store i64 %188, ptr %26, align 8, !tbaa !10
  %189 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %190 unwind label %689

190:                                              ; preds = %186
  %191 = load i64, ptr %27, align 8, !tbaa !10
  %192 = load ptr, ptr %23, align 8, !tbaa !5
  %193 = call noundef i64 @_ZSt4sizeISt5arrayIfLm4EEEDTcldtfp_4sizeEERKT_(ptr noundef nonnull align 4 dereferenceable(16) %192) #10
  %194 = icmp ult i64 %191, %193
  br i1 %194, label %195, label %201

195:                                              ; preds = %190
  %196 = load float, ptr %28, align 4, !tbaa !33
  %197 = load ptr, ptr %23, align 8, !tbaa !5
  %198 = load i64, ptr %27, align 8, !tbaa !10
  %199 = add i64 %198, 1
  store i64 %199, ptr %27, align 8, !tbaa !10
  %200 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16) %197, i64 noundef %198) #10
  store float %196, ptr %200, align 4, !tbaa !33
  br label %201

201:                                              ; preds = %195, %190
  br label %183, !llvm.loop !34

202:                                              ; preds = %183
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %256

203:                                              ; preds = %175
  %204 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.8)
          to label %205 unwind label %689

205:                                              ; preds = %203
  br i1 %204, label %206, label %251

206:                                              ; preds = %205
  %207 = load ptr, ptr %25, align 8, !tbaa !5
  %208 = load i64, ptr %207, align 8, !tbaa !10
  %209 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %210 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %209) #10
  %211 = icmp eq i64 %208, %210
  br i1 %211, label %212, label %215

212:                                              ; preds = %206
  %213 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %213, ptr noundef @.str.9)
          to label %214 unwind label %689

214:                                              ; preds = %212
  store i32 1, ptr %13, align 4
  br label %257

215:                                              ; preds = %206
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %216 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 2
  %217 = load i32, ptr %216, align 4, !tbaa !16
  store i32 %217, ptr %29, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %218 = load ptr, ptr %25, align 8, !tbaa !5
  %219 = load i64, ptr %218, align 8, !tbaa !10
  %220 = add i64 %219, 1
  store i64 %220, ptr %218, align 8, !tbaa !10
  %221 = invoke noundef nonnull align 4 dereferenceable(64) ptr @_ZNK2al4spanISt5arrayIfLm16EELm18446744073709551615EEixEm(ptr noundef nonnull align 8 dereferenceable(16) %24, i64 noundef %219)
          to label %222 unwind label %689

222:                                              ; preds = %215
  store ptr %221, ptr %30, align 8, !tbaa !5
  %223 = load ptr, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  store float 0.000000e+00, ptr %31, align 4, !tbaa !33
  invoke void @_ZNSt5arrayIfLm16EE4fillERKf(ptr noundef nonnull align 4 dereferenceable(64) %223, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %224 unwind label %689

224:                                              ; preds = %222
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  store float 0.000000e+00, ptr %32, align 4, !tbaa !33
  br label %225

225:                                              ; preds = %249, %224
  %226 = load i32, ptr %29, align 4, !tbaa !35
  %227 = icmp ne i32 %226, 0
  br i1 %227, label %228, label %250

228:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %229 = load i32, ptr %29, align 4, !tbaa !35
  %230 = call noundef i32 @_ZN2al11countr_zeroIjEENSt9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std11is_unsignedIS2_EE5valueEiE4typeES2_(i32 noundef %229) #10
  store i32 %230, ptr %33, align 4, !tbaa !35
  %231 = load i32, ptr %33, align 4, !tbaa !35
  %232 = shl i32 1, %231
  %233 = xor i32 %232, -1
  %234 = load i32, ptr %29, align 4, !tbaa !35
  %235 = and i32 %234, %233
  store i32 %235, ptr %29, align 4, !tbaa !35
  %236 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %237 unwind label %689

237:                                              ; preds = %228
  %238 = load i32, ptr %33, align 4, !tbaa !35
  %239 = zext i32 %238 to i64
  %240 = load ptr, ptr %30, align 8, !tbaa !5
  %241 = call noundef i64 @_ZNKSt5arrayIfLm16EE4sizeEv(ptr noundef nonnull align 4 dereferenceable(64) %240) #11
  %242 = icmp ult i64 %239, %241
  br i1 %242, label %243, label %249

243:                                              ; preds = %237
  %244 = load float, ptr %32, align 4, !tbaa !33
  %245 = load ptr, ptr %30, align 8, !tbaa !5
  %246 = load i32, ptr %33, align 4, !tbaa !35
  %247 = zext i32 %246 to i64
  %248 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm16EEixEm(ptr noundef nonnull align 4 dereferenceable(64) %245, i64 noundef %247) #10
  store float %244, ptr %248, align 4, !tbaa !33
  br label %249

249:                                              ; preds = %243, %237
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %225, !llvm.loop !36

250:                                              ; preds = %225
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %255

251:                                              ; preds = %205
  %252 = load i64, ptr %18, align 8, !tbaa !10
  %253 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %252, ptr noundef @.str.10, ptr noundef %253)
          to label %254 unwind label %689

254:                                              ; preds = %251
  store i32 1, ptr %13, align 4
  br label %257

255:                                              ; preds = %250
  br label %256

256:                                              ; preds = %255, %202
  store i32 0, ptr %13, align 4
  br label %257

257:                                              ; preds = %256, %254, %214
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  %258 = load i32, ptr %13, align 4
  switch i32 %258, label %681 [
    i32 0, label %259
  ]

259:                                              ; preds = %257
  br label %655

260:                                              ; preds = %147
  %261 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.11)
          to label %262 unwind label %689

262:                                              ; preds = %260
  br i1 %261, label %263, label %300

263:                                              ; preds = %262
  br label %264

264:                                              ; preds = %280, %263
  %265 = load ptr, ptr %20, align 8, !tbaa !12
  %266 = getelementptr i8, ptr %265, i64 -24
  %267 = load i64, ptr %266, align 8
  %268 = getelementptr inbounds i8, ptr %20, i64 %267
  %269 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %268)
          to label %270 unwind label %689

270:                                              ; preds = %264
  br i1 %269, label %271, label %276

271:                                              ; preds = %270
  %272 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %273 unwind label %689

273:                                              ; preds = %271
  %274 = call i32 @isspace(i32 noundef %272) #12
  %275 = icmp ne i32 %274, 0
  br label %276

276:                                              ; preds = %273, %270
  %277 = phi i1 [ false, %270 ], [ %275, %273 ]
  br i1 %277, label %278, label %281

278:                                              ; preds = %276
  %279 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi6ignoreEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %280 unwind label %689

280:                                              ; preds = %278
  br label %264, !llvm.loop !37

281:                                              ; preds = %276
  %282 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 0
  %283 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(32) %282)
          to label %284 unwind label %689

284:                                              ; preds = %281
  br label %285

285:                                              ; preds = %297, %284
  %286 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 0
  %287 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %286) #10
  br i1 %287, label %295, label %288

288:                                              ; preds = %285
  %289 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 0
  %290 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %289) #10
  %291 = load i8, ptr %290, align 1, !tbaa !9
  %292 = sext i8 %291 to i32
  %293 = call i32 @isspace(i32 noundef %292) #12
  %294 = icmp ne i32 %293, 0
  br label %295

295:                                              ; preds = %288, %285
  %296 = phi i1 [ false, %285 ], [ %294, %288 ]
  br i1 %296, label %297, label %299

297:                                              ; preds = %295
  %298 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %298) #10
  br label %285, !llvm.loop !38

299:                                              ; preds = %295
  br label %654

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

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

303:                                              ; preds = %302
  %304 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 1
  %305 = load i32, ptr %304, align 8, !tbaa !39
  %306 = icmp ne i32 %305, 0
  br i1 %306, label %307, label %310

307:                                              ; preds = %303
  %308 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %308, ptr noundef @.str.13)
          to label %309 unwind label %689

309:                                              ; preds = %307
  store i32 1, ptr %13, align 4
  br label %681

310:                                              ; preds = %303
  %311 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 1
  %312 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 4 dereferenceable(4) %311)
          to label %313 unwind label %689

313:                                              ; preds = %310
  %314 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 1
  %315 = load i32, ptr %314, align 8, !tbaa !39
  %316 = icmp ne i32 %315, 3
  br i1 %316, label %317, label %322

317:                                              ; preds = %313
  %318 = load i64, ptr %18, align 8, !tbaa !10
  %319 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 1
  %320 = load i32, ptr %319, align 8, !tbaa !39
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %318, ptr noundef @.str.14, i32 noundef %320)
          to label %321 unwind label %689

321:                                              ; preds = %317
  store i32 1, ptr %13, align 4
  br label %681

322:                                              ; preds = %313
  br label %653

323:                                              ; preds = %302
  %324 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.15)
          to label %325 unwind label %689

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

326:                                              ; preds = %325
  %327 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 2
  %328 = load i32, ptr %327, align 4, !tbaa !16
  %329 = icmp ne i32 %328, 0
  br i1 %329, label %330, label %333

330:                                              ; preds = %326
  %331 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %331, ptr noundef @.str.16)
          to label %332 unwind label %689

332:                                              ; preds = %330
  store i32 1, ptr %13, align 4
  br label %681

333:                                              ; preds = %326
  %334 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef @_ZSt3hexRSt8ios_base)
          to label %335 unwind label %689

335:                                              ; preds = %333
  %336 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 2
  %337 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %334, ptr noundef nonnull align 4 dereferenceable(4) %336)
          to label %338 unwind label %689

338:                                              ; preds = %335
  %339 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(16) %337, ptr noundef @_ZSt3decRSt8ios_base)
          to label %340 unwind label %689

340:                                              ; preds = %338
  %341 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 2
  %342 = load i32, ptr %341, align 4, !tbaa !16
  %343 = icmp ne i32 %342, 0
  br i1 %343, label %344, label %348

344:                                              ; preds = %340
  %345 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 2
  %346 = load i32, ptr %345, align 4, !tbaa !16
  %347 = icmp ugt i32 %346, 33554431
  br i1 %347, label %348, label %353

348:                                              ; preds = %344, %340
  %349 = load i64, ptr %18, align 8, !tbaa !10
  %350 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 2
  %351 = load i32, ptr %350, align 4, !tbaa !16
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %349, ptr noundef @.str.17, i32 noundef %351)
          to label %352 unwind label %689

352:                                              ; preds = %348
  store i32 1, ptr %13, align 4
  br label %681

353:                                              ; preds = %344
  %354 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 2
  %355 = load i32, ptr %354, align 4, !tbaa !16
  %356 = icmp ugt i32 %355, 65535
  br i1 %356, label %357, label %364

357:                                              ; preds = %353
  %358 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 4
  %359 = load i32, ptr %358, align 4, !tbaa !40
  %360 = icmp eq i32 %359, 3
  br i1 %360, label %361, label %364

361:                                              ; preds = %357
  %362 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %362, ptr noundef @.str.18)
          to label %363 unwind label %689

363:                                              ; preds = %361
  store i32 1, ptr %13, align 4
  br label %681

364:                                              ; preds = %357, %353
  br label %652

365:                                              ; preds = %325
  %366 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.19)
          to label %367 unwind label %689

367:                                              ; preds = %365
  br i1 %366, label %368, label %392

368:                                              ; preds = %367
  %369 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 3
  %370 = load i32, ptr %369, align 8, !tbaa !41
  %371 = icmp ne i32 %370, 0
  br i1 %371, label %372, label %375

372:                                              ; preds = %368
  %373 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %373, ptr noundef @.str.20)
          to label %374 unwind label %689

374:                                              ; preds = %372
  store i32 1, ptr %13, align 4
  br label %681

375:                                              ; preds = %368
  %376 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 3
  %377 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 4 dereferenceable(4) %376)
          to label %378 unwind label %689

378:                                              ; preds = %375
  %379 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 3
  %380 = load i32, ptr %379, align 8, !tbaa !41
  %381 = icmp ne i32 %380, 1
  br i1 %381, label %382, label %391

382:                                              ; preds = %378
  %383 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 3
  %384 = load i32, ptr %383, align 8, !tbaa !41
  %385 = icmp ne i32 %384, 2
  br i1 %385, label %386, label %391

386:                                              ; preds = %382
  %387 = load i64, ptr %18, align 8, !tbaa !10
  %388 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 3
  %389 = load i32, ptr %388, align 8, !tbaa !41
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %387, ptr noundef @.str.21, i32 noundef %389)
          to label %390 unwind label %689

390:                                              ; preds = %386
  store i32 1, ptr %13, align 4
  br label %681

391:                                              ; preds = %382, %378
  br label %651

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

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

395:                                              ; preds = %394
  %396 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %397 = call noundef zeroext i1 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %396) #10
  br i1 %397, label %401, label %398

398:                                              ; preds = %395
  %399 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %399, ptr noundef @.str.23)
          to label %400 unwind label %689

400:                                              ; preds = %398
  store i32 1, ptr %13, align 4
  br label %681

401:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  store i64 0, ptr %34, align 8, !tbaa !10
  %402 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERm(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %403 unwind label %689

403:                                              ; preds = %401
  %404 = load i64, ptr %34, align 8, !tbaa !10
  %405 = icmp ne i64 %404, 0
  br i1 %405, label %410, label %406

406:                                              ; preds = %403
  %407 = load i64, ptr %18, align 8, !tbaa !10
  %408 = load i64, ptr %34, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %407, ptr noundef @.str.24, i64 noundef %408)
          to label %409 unwind label %689

409:                                              ; preds = %406
  store i32 1, ptr %13, align 4
  br label %414

410:                                              ; preds = %403
  %411 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %412 = load i64, ptr %34, align 8, !tbaa !10
  invoke void @_ZNSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %411, i64 noundef %412)
          to label %413 unwind label %689

413:                                              ; preds = %410
  store i32 0, ptr %13, align 4
  br label %414

414:                                              ; preds = %413, %409
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  %415 = load i32, ptr %13, align 4
  switch i32 %415, label %681 [
    i32 0, label %416
  ]

416:                                              ; preds = %414
  br label %650

417:                                              ; preds = %394
  %418 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.25)
          to label %419 unwind label %689

419:                                              ; preds = %417
  br i1 %418, label %420, label %464

420:                                              ; preds = %419
  %421 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 4
  %422 = load i32, ptr %421, align 4, !tbaa !40
  %423 = icmp ne i32 %422, 0
  br i1 %423, label %424, label %427

424:                                              ; preds = %420
  %425 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %425, ptr noundef @.str.26)
          to label %426 unwind label %689

426:                                              ; preds = %424
  store i32 1, ptr %13, align 4
  br label %681

427:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #10
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %428 unwind label %689

428:                                              ; preds = %427
  %429 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.27)
          to label %430 unwind label %689

430:                                              ; preds = %428
  br i1 %429, label %431, label %433

431:                                              ; preds = %430
  %432 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 4
  store i32 1, ptr %432, align 4, !tbaa !40
  br label %449

433:                                              ; preds = %430
  %434 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.28)
          to label %435 unwind label %689

435:                                              ; preds = %433
  br i1 %434, label %436, label %438

436:                                              ; preds = %435
  %437 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 4
  store i32 2, ptr %437, align 4, !tbaa !40
  br label %448

438:                                              ; preds = %435
  %439 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.29)
          to label %440 unwind label %689

440:                                              ; preds = %438
  br i1 %439, label %441, label %443

441:                                              ; preds = %440
  %442 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 4
  store i32 3, ptr %442, align 4, !tbaa !40
  br label %447

443:                                              ; preds = %440
  %444 = load i64, ptr %18, align 8, !tbaa !10
  %445 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %444, ptr noundef @.str.30, ptr noundef %445)
          to label %446 unwind label %689

446:                                              ; preds = %443
  store i32 1, ptr %13, align 4
  br label %461

447:                                              ; preds = %441
  br label %448

448:                                              ; preds = %447, %436
  br label %449

449:                                              ; preds = %448, %431
  %450 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 2
  %451 = load i32, ptr %450, align 4, !tbaa !16
  %452 = icmp ugt i32 %451, 65535
  br i1 %452, label %453, label %460

453:                                              ; preds = %449
  %454 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 4
  %455 = load i32, ptr %454, align 4, !tbaa !40
  %456 = icmp eq i32 %455, 3
  br i1 %456, label %457, label %460

457:                                              ; preds = %453
  %458 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %458, ptr noundef @.str.18)
          to label %459 unwind label %689

459:                                              ; preds = %457
  store i32 1, ptr %13, align 4
  br label %461

460:                                              ; preds = %453, %449
  store i32 0, ptr %13, align 4
  br label %461

461:                                              ; preds = %460, %459, %446
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #10
  %462 = load i32, ptr %13, align 4
  switch i32 %462, label %681 [
    i32 0, label %463
  ]

463:                                              ; preds = %461
  br label %649

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

466:                                              ; preds = %464
  br i1 %465, label %467, label %471

467:                                              ; preds = %466
  %468 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 5
  %469 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 4 dereferenceable(4) %468)
          to label %470 unwind label %689

470:                                              ; preds = %467
  br label %648

471:                                              ; preds = %466
  %472 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.32)
          to label %473 unwind label %689

473:                                              ; preds = %471
  br i1 %472, label %474, label %478

474:                                              ; preds = %473
  %475 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 6
  %476 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 4 dereferenceable(4) %475)
          to label %477 unwind label %689

477:                                              ; preds = %474
  br label %647

478:                                              ; preds = %473
  %479 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.33)
          to label %480 unwind label %689

480:                                              ; preds = %478
  br i1 %479, label %490, label %481

481:                                              ; preds = %480
  %482 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.34)
          to label %483 unwind label %689

483:                                              ; preds = %481
  br i1 %482, label %490, label %484

484:                                              ; preds = %483
  %485 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.35)
          to label %486 unwind label %689

486:                                              ; preds = %484
  br i1 %485, label %490, label %487

487:                                              ; preds = %486
  %488 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.36)
          to label %489 unwind label %689

489:                                              ; preds = %487
  br i1 %488, label %490, label %492

490:                                              ; preds = %489, %486, %483, %480
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %491 unwind label %689

491:                                              ; preds = %490
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  br label %646

492:                                              ; preds = %489
  %493 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.37)
          to label %494 unwind label %689

494:                                              ; preds = %492
  br i1 %493, label %495, label %502

495:                                              ; preds = %494
  %496 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %497 = call noundef zeroext i1 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %496) #10
  br i1 %497, label %498, label %501

498:                                              ; preds = %495
  %499 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %499, ptr noundef @.str.38)
          to label %500 unwind label %689

500:                                              ; preds = %498
  store i32 1, ptr %13, align 4
  br label %681

501:                                              ; preds = %495
  store i32 1, ptr %14, align 4, !tbaa !9
  br label %645

502:                                              ; preds = %494
  %503 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.39)
          to label %504 unwind label %689

504:                                              ; preds = %502
  br i1 %503, label %511, label %505

505:                                              ; preds = %504
  %506 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.40)
          to label %507 unwind label %689

507:                                              ; preds = %505
  br i1 %506, label %511, label %508

508:                                              ; preds = %507
  %509 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.41)
          to label %510 unwind label %689

510:                                              ; preds = %508
  br i1 %509, label %511, label %588

511:                                              ; preds = %510, %507, %504
  %512 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %513 = call noundef zeroext i1 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %512) #10
  br i1 %513, label %514, label %517

514:                                              ; preds = %511
  %515 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %515, ptr noundef @.str.42)
          to label %516 unwind label %689

516:                                              ; preds = %514
  store i32 1, ptr %13, align 4
  br label %681

517:                                              ; preds = %511
  %518 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 2
  %519 = load i32, ptr %518, align 4, !tbaa !16
  %520 = icmp ne i32 %519, 0
  br i1 %520, label %524, label %521

521:                                              ; preds = %517
  %522 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %522, ptr noundef @.str.43)
          to label %523 unwind label %689

523:                                              ; preds = %521
  store i32 1, ptr %13, align 4
  br label %681

524:                                              ; preds = %517
  %525 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 8
  %526 = call noundef zeroext i1 @_ZNKSt6vectorISt5arrayIfLm16EESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %525) #10
  br i1 %526, label %527, label %561

527:                                              ; preds = %524
  %528 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 8
  %529 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %530 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %529) #10
  %531 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 3
  %532 = load i32, ptr %531, align 8, !tbaa !41
  %533 = zext i32 %532 to i64
  %534 = mul i64 %530, %533
  invoke void @_ZNSt6vectorISt5arrayIfLm16EESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %528, i64 noundef %534)
          to label %535 unwind label %689

535:                                              ; preds = %527
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %38) #10
  %536 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 8
  invoke void @_ZN2al4spanISt5arrayIfLm16EELm18446744073709551615EEC2IRSt6vectorIS2_SaIS2_EETnNSt9enable_ifIXsr7detail_E18is_valid_containerIT_S2_EEbE4typeELb1EEEOSA_(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull align 8 dereferenceable(24) %536)
          to label %537 unwind label %689

537:                                              ; preds = %535
  %538 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %539 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %538) #10
  %540 = call { ptr, i64 } @_ZNK2al4spanISt5arrayIfLm16EELm18446744073709551615EE5firstEm(ptr noundef nonnull align 8 dereferenceable(16) %38, i64 noundef %539) #10
  %541 = getelementptr inbounds { ptr, i64 }, ptr %37, i32 0, i32 0
  %542 = extractvalue { ptr, i64 } %540, 0
  store ptr %542, ptr %541, align 8
  %543 = getelementptr inbounds { ptr, i64 }, ptr %37, i32 0, i32 1
  %544 = extractvalue { ptr, i64 } %540, 1
  store i64 %544, ptr %543, align 8
  %545 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %545, ptr align 8 %37, i64 16, i1 false), !tbaa.struct !42
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #10
  %546 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 8
  invoke void @_ZN2al4spanISt5arrayIfLm16EELm18446744073709551615EEC2IRSt6vectorIS2_SaIS2_EETnNSt9enable_ifIXsr7detail_E18is_valid_containerIT_S2_EEbE4typeELb1EEEOSA_(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef nonnull align 8 dereferenceable(24) %546)
          to label %547 unwind label %689

547:                                              ; preds = %537
  %548 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %549 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %548) #10
  %550 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 3
  %551 = load i32, ptr %550, align 8, !tbaa !41
  %552 = sub i32 %551, 1
  %553 = zext i32 %552 to i64
  %554 = mul i64 %549, %553
  %555 = call { ptr, i64 } @_ZNK2al4spanISt5arrayIfLm16EELm18446744073709551615EE7subspanEmm(ptr noundef nonnull align 8 dereferenceable(16) %40, i64 noundef %554, i64 noundef -1) #10
  %556 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 0
  %557 = extractvalue { ptr, i64 } %555, 0
  store ptr %557, ptr %556, align 8
  %558 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 1
  %559 = extractvalue { ptr, i64 } %555, 1
  store i64 %559, ptr %558, align 8
  %560 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 12
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %560, ptr align 8 %39, i64 16, i1 false), !tbaa.struct !42
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #10
  br label %561

561:                                              ; preds = %547, %524
  %562 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 3
  %563 = load i32, ptr %562, align 8, !tbaa !41
  %564 = icmp eq i32 %563, 1
  br i1 %564, label %565, label %573

565:                                              ; preds = %561
  %566 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.41)
          to label %567 unwind label %689

567:                                              ; preds = %565
  br i1 %566, label %568, label %572

568:                                              ; preds = %567
  %569 = load i64, ptr %18, align 8, !tbaa !10
  %570 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %569, ptr noundef @.str.44, ptr noundef %570)
          to label %571 unwind label %689

571:                                              ; preds = %568
  store i32 1, ptr %13, align 4
  br label %681

572:                                              ; preds = %567
  store i32 3, ptr %14, align 4, !tbaa !9
  br label %587

573:                                              ; preds = %561
  %574 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.39)
          to label %575 unwind label %689

575:                                              ; preds = %573
  br i1 %574, label %576, label %577

576:                                              ; preds = %575
  store i32 2, ptr %14, align 4, !tbaa !9
  br label %586

577:                                              ; preds = %575
  %578 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.40)
          to label %579 unwind label %689

579:                                              ; preds = %577
  br i1 %578, label %580, label %581

580:                                              ; preds = %579
  store i32 3, ptr %14, align 4, !tbaa !9
  br label %585

581:                                              ; preds = %579
  %582 = load i64, ptr %18, align 8, !tbaa !10
  %583 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %582, ptr noundef @.str.45, ptr noundef %583)
          to label %584 unwind label %689

584:                                              ; preds = %581
  store i32 1, ptr %13, align 4
  br label %681

585:                                              ; preds = %580
  br label %586

586:                                              ; preds = %585, %576
  br label %587

587:                                              ; preds = %586, %572
  br label %644

588:                                              ; preds = %510
  %589 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.46)
          to label %590 unwind label %689

590:                                              ; preds = %588
  br i1 %589, label %591, label %640

591:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #10
  %592 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %593 unwind label %689

593:                                              ; preds = %591
  %594 = getelementptr inbounds { i64, i64 }, ptr %42, i32 0, i32 0
  %595 = extractvalue { i64, i64 } %592, 0
  store i64 %595, ptr %594, align 8
  %596 = getelementptr inbounds { i64, i64 }, ptr %42, i32 0, i32 1
  %597 = extractvalue { i64, i64 } %592, 1
  store i64 %597, ptr %596, align 8
  %598 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %599 unwind label %689

599:                                              ; preds = %593
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #10
  store i64 %598, ptr %41, align 8, !tbaa !10
  %600 = load i64, ptr %41, align 8, !tbaa !10
  %601 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %600)
          to label %602 unwind label %689

602:                                              ; preds = %599
  br i1 %601, label %609, label %603

603:                                              ; preds = %602
  %604 = load i64, ptr %18, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #10
  %605 = load i64, ptr %41, align 8, !tbaa !10
  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) %19, i64 noundef %605, i64 noundef -1)
          to label %606 unwind label %689

606:                                              ; preds = %603
  %607 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %604, ptr noundef @.str.47, ptr noundef %607)
          to label %608 unwind label %689

608:                                              ; preds = %606
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #10
  store i32 1, ptr %13, align 4
  br label %639

609:                                              ; preds = %602
  %610 = load i64, ptr %15, align 8, !tbaa !10
  %611 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %612 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %611) #10
  %613 = icmp ult i64 %610, %612
  br i1 %613, label %628, label %614

614:                                              ; preds = %609
  %615 = load i64, ptr %17, align 8, !tbaa !10
  %616 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %617 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %616) #10
  %618 = icmp ult i64 %615, %617
  br i1 %618, label %628, label %619

619:                                              ; preds = %614
  %620 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 3
  %621 = load i32, ptr %620, align 8, !tbaa !41
  %622 = icmp eq i32 %621, 2
  br i1 %622, label %623, label %631

623:                                              ; preds = %619
  %624 = load i64, ptr %16, align 8, !tbaa !10
  %625 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 7
  %626 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %625) #10
  %627 = icmp ult i64 %624, %626
  br i1 %627, label %628, label %631

628:                                              ; preds = %623, %614, %609
  %629 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %629, ptr noundef @.str.48)
          to label %630 unwind label %689

630:                                              ; preds = %628
  store i32 1, ptr %13, align 4
  br label %639

631:                                              ; preds = %623, %619
  %632 = getelementptr inbounds %struct.AmbDecConf, ptr %48, i32 0, i32 4
  %633 = load i32, ptr %632, align 4, !tbaa !40
  %634 = icmp eq i32 %633, 0
  br i1 %634, label %635, label %638

635:                                              ; preds = %631
  %636 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %636, ptr noundef @.str.49)
          to label %637 unwind label %689

637:                                              ; preds = %635
  store i32 1, ptr %13, align 4
  br label %639

638:                                              ; preds = %631
  call void @_ZNSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ESt9nullopt_t(ptr noundef nonnull align 8 dereferenceable(40) %0) #10
  store i32 1, ptr %13, align 4
  br label %639

639:                                              ; preds = %638, %637, %630, %608
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  br label %681

640:                                              ; preds = %590
  %641 = load i64, ptr %18, align 8, !tbaa !10
  %642 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %641, ptr noundef @.str.50, ptr noundef %642)
          to label %643 unwind label %689

643:                                              ; preds = %640
  store i32 1, ptr %13, align 4
  br label %681

644:                                              ; preds = %587
  br label %645

645:                                              ; preds = %644, %501
  br label %646

646:                                              ; preds = %645, %491
  br label %647

647:                                              ; preds = %646, %477
  br label %648

648:                                              ; preds = %647, %470
  br label %649

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

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

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

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

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

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

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

656:                                              ; preds = %655, %143
  %657 = load ptr, ptr %20, align 8, !tbaa !12
  %658 = getelementptr i8, ptr %657, i64 -24
  %659 = load i64, ptr %658, align 8
  %660 = getelementptr inbounds i8, ptr %20, i64 %659
  invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %660, i32 noundef 0)
          to label %661 unwind label %689

661:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #10
  %662 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %663 unwind label %689

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

669:                                              ; preds = %663
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #10
  store i64 %668, ptr %45, align 8, !tbaa !10
  %670 = load i64, ptr %45, align 8, !tbaa !10
  %671 = invoke noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %670)
          to label %672 unwind label %689

672:                                              ; preds = %669
  br i1 %671, label %679, label %673

673:                                              ; preds = %672
  %674 = load i64, ptr %18, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #10
  %675 = load i64, ptr %45, align 8, !tbaa !10
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %675, i64 noundef -1)
          to label %676 unwind label %689

676:                                              ; preds = %673
  %677 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %674, ptr noundef @.str.51, ptr noundef %677)
          to label %678 unwind label %689

678:                                              ; preds = %676
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #10
  store i32 1, ptr %13, align 4
  br label %680

679:                                              ; preds = %672
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  store i32 0, ptr %13, align 4
  br label %680

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

681:                                              ; preds = %680, %643, %639, %584, %571, %523, %516, %500, %461, %426, %414, %400, %390, %374, %363, %352, %332, %321, %309, %257, %142, %113, %99, %98, %89
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #10
  call void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(120) %20) #10
  call void @llvm.lifetime.end.p0(i64 384, ptr %20) #10
  %682 = load i32, ptr %13, align 4
  switch i32 %682, label %687 [
    i32 0, label %683
    i32 2, label %59
  ]

683:                                              ; preds = %681
  br label %59, !llvm.loop !14

684:                                              ; preds = %75
  %685 = load i64, ptr %18, align 8, !tbaa !10
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %685, ptr noundef @.str.52)
          to label %686 unwind label %689

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

687:                                              ; preds = %686, %681
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %688

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

689:                                              ; preds = %684, %676, %673, %669, %663, %661, %656, %640, %635, %628, %606, %603, %599, %593, %591, %588, %581, %577, %573, %568, %565, %537, %535, %527, %521, %514, %508, %505, %502, %498, %492, %490, %487, %484, %481, %478, %474, %471, %467, %464, %457, %443, %438, %433, %428, %427, %424, %417, %410, %406, %401, %398, %392, %386, %375, %372, %365, %361, %348, %338, %335, %333, %330, %323, %317, %310, %307, %300, %281, %278, %271, %264, %260, %251, %228, %222, %215, %212, %203, %186, %172, %165, %139, %134, %130, %126, %122, %114, %111, %103, %96, %90, %83, %80, %77, %68, %66, %59, %56, %54, %53, %50, %49, %3
  %690 = landingpad { ptr, i32 }
          catch ptr null
  %691 = extractvalue { ptr, i32 } %690, 0
  call void @__clang_call_terminate(ptr %691) #13
  unreachable
}

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; 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 nounwind uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264)) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv(ptr noundef nonnull align 8 dereferenceable(264)) #4 align 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 #4 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)) #4

; 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: mustprogress nounwind uwtable
declare noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #0 align 2

; 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 void @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind noalias writable sret(%"class.std::optional") align 8, i64 noundef, ptr noundef, ...) #4

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

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #6

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt5arrayIfLm16EE4fillERKf(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(4)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2al11countr_zeroIjEENSt9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std11is_unsignedIS2_EE5valueEiE4typeES2_(i32 noundef) #5

; Function Attrs: mustprogress nounwind willreturn memory(none) uwtable
declare dso_local noundef i64 @_ZNKSt5arrayIfLm16EE4sizeEv(ptr noundef nonnull align 4 dereferenceable(64)) #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm16EEixEm(ptr noundef nonnull align 4 dereferenceable(64), i64 noundef) #0 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32)) #0 align 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 uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #4 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)) #2

; 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)) #4 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)) #2

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

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

; 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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ESt9nullopt_t(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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32)) #0 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 void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) 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 = { 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 #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 = { 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 nounwind willreturn memory(none) 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 #8 = { 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 #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { nounwind willreturn memory(read) }
attributes #13 = { 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 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"long", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"vtable pointer", !8, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = !{!17, !20, i64 36}
!17 = !{!"_ZTS10AmbDecConf", !18, i64 0, !20, i64 32, !20, i64 36, !20, i64 40, !21, i64 44, !22, i64 48, !22, i64 52, !23, i64 56, !27, i64 80, !31, i64 104, !32, i64 120, !31, i64 136, !32, i64 152}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !19, i64 0, !11, i64 8, !7, i64 16}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!20 = !{!"int", !7, i64 0}
!21 = !{!"_ZTS11AmbDecScale", !7, i64 0}
!22 = !{!"float", !7, i64 0}
!23 = !{!"_ZTSSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIN10AmbDecConf11SpeakerConfESaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIN10AmbDecConf11SpeakerConfESaIS1_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN10AmbDecConf11SpeakerConfESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTSSt6vectorISt5arrayIfLm16EESaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseISt5arrayIfLm16EESaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseISt5arrayIfLm16EESaIS1_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseISt5arrayIfLm16EESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!"_ZTSSt5arrayIfLm4EE", !7, i64 0}
!32 = !{!"_ZTSN2al4spanISt5arrayIfLm16EELm18446744073709551615EEE", !6, i64 0, !11, i64 8}
!33 = !{!22, !22, i64 0}
!34 = distinct !{!34, !15}
!35 = !{!20, !20, i64 0}
!36 = distinct !{!36, !15}
!37 = distinct !{!37, !15}
!38 = distinct !{!38, !15}
!39 = !{!17, !20, i64 32}
!40 = !{!17, !21, i64 44}
!41 = !{!17, !20, i64 40}
!42 = !{i64 0, i64 8, !5, i64 8, i64 8, !10}


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

%"class.std::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload.base", [7 x i8] }
%"struct.std::_Optional_payload.base" = type { %"struct.std::_Optional_payload_base.base" }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage", i8 }>
%"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::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.10 }
%union.anon.10 = 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::filesystem::__cxx11::path" = type { %"class.std::__cxx11::basic_string", %"struct.std::filesystem::__cxx11::path::_List" }
%"struct.std::filesystem::__cxx11::path::_List" = type { %"class.std::unique_ptr" }
%"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.12" }
%"struct.std::_Head_base.12" = type { ptr }
%"class.std::allocator" = type { i8 }
%"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.al::span" = type { ptr, i64 }
%"class.std::fpos" = type { i64, %struct.__mbstate_t }

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

; 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 nounwind uwtable
define dso_local void @_ZN10AmbDecConf4loadB5cxx11EPKc(ptr dead_on_unwind noalias writable sret(%"class.std::optional") align 8 %0, ptr noundef nonnull align 8 dereferenceable(168) %1, ptr noundef %2) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca %"class.std::basic_ifstream", align 8
  %6 = alloca %"class.std::filesystem::__cxx11::path", 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::allocator", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_istringstream", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.al::span", align 8
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca float, align 4
  %18 = alloca i64, align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.al::span", align 8
  %22 = alloca %"class.al::span", align 8
  %23 = alloca %"class.std::fpos", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::fpos", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %2, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %5) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #9
  invoke void @_ZNSt10filesystem7__cxx116u8pathIPKcNS0_4pathEcEES4_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::filesystem::__cxx11::path") align 8 %6, ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %27 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

27:                                               ; preds = %3
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1INSt10filesystem7__cxx114pathES6_EERKT_St13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %5, ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef 8)
          to label %28 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

28:                                               ; preds = %27
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #9
  %29 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %5)
  br i1 %29, label %35, label %30

30:                                               ; preds = %28
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %31 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

31:                                               ; preds = %30
  %32 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef %32)
          to label %33 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

33:                                               ; preds = %31
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.1)
          to label %34 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

34:                                               ; preds = %33
  call void @_ZNSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS5_TnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS6_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES9_ISA_ISt10in_place_tSH_EESt16is_constructibleIS5_JSD_EESt14is_convertibleISD_S5_EEEbE4typeELb1EEEOSD_(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  br label %346

35:                                               ; preds = %28
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  %36 = load ptr, ptr %5, align 8, !tbaa !9
  %37 = getelementptr i8, ptr %36, i64 -24
  %38 = load i64, ptr %37, align 8
  %39 = getelementptr inbounds i8, ptr %5, i64 %38
  %40 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %39)
  br i1 %40, label %.lr.ph303, label %.critedge

.lr.ph303:                                        ; preds = %35
  %41 = getelementptr inbounds i8, ptr %1, i64 56
  %42 = getelementptr inbounds i8, ptr %1, i64 36
  %43 = getelementptr inbounds i8, ptr %1, i64 80
  %44 = getelementptr inbounds i8, ptr %1, i64 40
  %45 = getelementptr inbounds i8, ptr %1, i64 120
  %.sroa.412.0..sroa_idx = getelementptr inbounds i8, ptr %1, i64 128
  %46 = getelementptr inbounds i8, ptr %1, i64 152
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %1, i64 160
  %47 = getelementptr inbounds i8, ptr %1, i64 52
  %48 = getelementptr inbounds i8, ptr %1, i64 48
  %49 = getelementptr inbounds i8, ptr %1, i64 44
  %50 = getelementptr inbounds i8, ptr %1, i64 32
  %51 = getelementptr inbounds i8, ptr %25, i64 8
  br label %52

52:                                               ; preds = %.lr.ph303, %339
  %.078301 = phi i32 [ 0, %.lr.ph303 ], [ %.280, %339 ]
  %.081300 = phi i64 [ 0, %.lr.ph303 ], [ %.283, %339 ]
  %.084299 = phi i64 [ 0, %.lr.ph303 ], [ %62, %339 ]
  %.0298 = phi i64 [ 0, %.lr.ph303 ], [ %.4, %339 ]
  %.0127297 = phi i64 [ 0, %.lr.ph303 ], [ %.4131, %339 ]
  %53 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %54 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

54:                                               ; preds = %52
  %55 = load ptr, ptr %53, align 8, !tbaa !9
  %56 = getelementptr i8, ptr %55, i64 -24
  %57 = load i64, ptr %56, align 8
  %58 = getelementptr inbounds i8, ptr %53, i64 %57
  %59 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv(ptr noundef nonnull align 8 dereferenceable(264) %58)
          to label %60 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

60:                                               ; preds = %54
  br i1 %59, label %61, label %.critedge

61:                                               ; preds = %60
  %62 = add i64 %.084299, 1
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %12) #9
  invoke void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(120) %12, ptr noundef nonnull align 8 dereferenceable(32) %11, i32 noundef 8)
          to label %63 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

63:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #9
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %64 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

64:                                               ; preds = %63
  %65 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  br i1 %65, label %339, label %66, !llvm.loop !11

66:                                               ; preds = %64
  %67 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %13, i64 noundef 0)
  %68 = load i8, ptr %67, align 1, !tbaa !13
  %69 = icmp eq i8 %68, 35
  br i1 %69, label %339, label %70, !llvm.loop !11

70:                                               ; preds = %66
  %71 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.2)
  br i1 %71, label %72, label %74

72:                                               ; preds = %70
  %73 = icmp eq i32 %.078301, 0
  br i1 %73, label %.invoke539, label %339, !llvm.loop !11

74:                                               ; preds = %70
  %75 = icmp eq i32 %.078301, 1
  br i1 %75, label %76, label %97

76:                                               ; preds = %74
  %77 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.4)
  br i1 %77, label %78, label %.invoke538

78:                                               ; preds = %76
  %79 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  %80 = icmp eq i64 %.081300, %79
  br i1 %80, label %.invoke539, label %81

81:                                               ; preds = %78
  %82 = add i64 %.081300, 1
  %83 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %.081300) #9
  %84 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %85 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

85:                                               ; preds = %81
  %86 = getelementptr inbounds i8, ptr %83, i64 32
  %87 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 4 dereferenceable(4) %86)
          to label %88 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

88:                                               ; preds = %85
  %89 = getelementptr inbounds i8, ptr %83, i64 36
  %90 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 4 dereferenceable(4) %89)
          to label %91 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

91:                                               ; preds = %88
  %92 = getelementptr inbounds i8, ptr %83, i64 40
  %93 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 4 dereferenceable(4) %92)
          to label %94 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

94:                                               ; preds = %91
  %95 = getelementptr inbounds i8, ptr %83, i64 48
  %96 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %.critedge7 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

97:                                               ; preds = %74
  %98 = icmp eq i32 %.078301, 2
  %99 = and i32 %.078301, -2
  %or.cond = icmp eq i32 %99, 2
  br i1 %or.cond, label %100, label %147

100:                                              ; preds = %97
  %.v = select i1 %98, i64 104, i64 136
  %101 = getelementptr inbounds i8, ptr %1, i64 %.v
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #9
  %.v106 = select i1 %98, i64 120, i64 152
  %102 = getelementptr inbounds i8, ptr %1, i64 %.v106
  invoke void @_ZN2al4spanISt5arrayIfLm16EELm18446744073709551615EEC2IRS3_TnNSt9enable_ifIXsr7detail_E18is_valid_containerIT_S2_EEbE4typeELb1EEEOS7_(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(16) %102)
          to label %103 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

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

105:                                              ; preds = %103
  %106 = load i32, ptr %42, align 4, !tbaa !14
  %107 = icmp ugt i32 %106, 65535
  %108 = select i1 %107, i64 5, i64 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #9
  store float 0.000000e+00, ptr %15, align 4, !tbaa !32
  br label %109

109:                                              ; preds = %105, %119
  %.085296 = phi i64 [ %108, %105 ], [ %110, %119 ]
  %.086295 = phi i64 [ 0, %105 ], [ %.187, %119 ]
  %110 = add nsw i64 %.085296, -1
  %111 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %112 unwind label %.loopexit

112:                                              ; preds = %109
  %113 = call noundef i64 @_ZSt4sizeISt5arrayIfLm4EEEDTcldtfp_4sizeEERKT_(ptr noundef nonnull align 4 dereferenceable(16) %101) #9
  %114 = icmp ult i64 %.086295, %113
  br i1 %114, label %115, label %119

115:                                              ; preds = %112
  %116 = load float, ptr %15, align 4, !tbaa !32
  %117 = add nuw i64 %.086295, 1
  %118 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16) %101, i64 noundef %.086295) #9
  store float %116, ptr %118, align 4, !tbaa !32
  br label %119

119:                                              ; preds = %115, %112
  %.187 = phi i64 [ %117, %115 ], [ %.086295, %112 ]
  %.not108 = icmp eq i64 %110, 0
  br i1 %.not108, label %120, label %109, !llvm.loop !33

120:                                              ; preds = %119
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #9
  br label %146

121:                                              ; preds = %103
  %122 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.8)
  br i1 %122, label %123, label %144

123:                                              ; preds = %121
  %.sroa.speculated = select i1 %98, i64 %.0127297, i64 %.0298
  %124 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  %125 = icmp eq i64 %.sroa.speculated, %124
  br i1 %125, label %126, label %.cont

126:                                              ; preds = %123
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %62, ptr noundef nonnull @.str.9)
          to label %.critedge110 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.cont:                                            ; preds = %123
  %127 = load i32, ptr %42, align 4, !tbaa !14
  %128 = add i64 %.sroa.speculated, 1
  %spec.select = select i1 %98, i64 %128, i64 %.0127297
  %spec.select138 = select i1 %98, i64 %.0298, i64 %128
  %129 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZNK2al4spanISt5arrayIfLm16EELm18446744073709551615EEixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %.sroa.speculated)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #9
  store float 0.000000e+00, ptr %16, align 4, !tbaa !32
  invoke void @_ZNSt5arrayIfLm16EE4fillERKf(ptr noundef nonnull align 4 dereferenceable(64) %129, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %130 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

130:                                              ; preds = %.cont
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #9
  store float 0.000000e+00, ptr %17, align 4, !tbaa !32
  %.not107292 = icmp eq i32 %127, 0
  br i1 %.not107292, label %._crit_edge, label %.lr.ph294

.lr.ph294:                                        ; preds = %130, %143
  %.088293 = phi i32 [ %134, %143 ], [ %127, %130 ]
  %131 = call noundef i32 @_ZN2al11countr_zeroIjEENSt9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std11is_unsignedIS2_EE5valueEiE4typeES2_(i32 noundef %.088293) #9
  %132 = shl nuw i32 1, %131
  %133 = xor i32 %132, -1
  %134 = and i32 %.088293, %133
  %135 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %136 unwind label %.loopexit.split-lp.loopexit

136:                                              ; preds = %.lr.ph294
  %137 = zext i32 %131 to i64
  %138 = call noundef i64 @_ZNKSt5arrayIfLm16EE4sizeEv(ptr noundef nonnull align 4 dereferenceable(64) %129) #10
  %139 = icmp ugt i64 %138, %137
  br i1 %139, label %140, label %143

140:                                              ; preds = %136
  %141 = load float, ptr %17, align 4, !tbaa !32
  %142 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm16EEixEm(ptr noundef nonnull align 4 dereferenceable(64) %129, i64 noundef %137) #9
  store float %141, ptr %142, align 4, !tbaa !32
  br label %143

143:                                              ; preds = %140, %136
  %.not107 = icmp eq i32 %134, 0
  br i1 %.not107, label %._crit_edge, label %.lr.ph294, !llvm.loop !34

._crit_edge:                                      ; preds = %143, %130
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #9
  br label %146

144:                                              ; preds = %121
  %145 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %62, ptr noundef nonnull @.str.10, ptr noundef %145)
          to label %.critedge110 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

146:                                              ; preds = %120, %._crit_edge
  %.2129 = phi i64 [ %.0127297, %120 ], [ %spec.select, %._crit_edge ]
  %.2 = phi i64 [ %.0298, %120 ], [ %spec.select138, %._crit_edge ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #9
  br label %.critedge7

147:                                              ; preds = %97
  %148 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.11)
  br i1 %148, label %.preheader142, label %168

.preheader142:                                    ; preds = %147, %158
  %149 = load ptr, ptr %12, align 8, !tbaa !9
  %150 = getelementptr i8, ptr %149, i64 -24
  %151 = load i64, ptr %150, align 8
  %152 = getelementptr inbounds i8, ptr %12, i64 %151
  %153 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %152)
  br i1 %153, label %154, label %.critedge5

154:                                              ; preds = %.preheader142
  %155 = invoke noundef i32 @_ZNSi4peekEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %156 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

156:                                              ; preds = %154
  %157 = call i32 @isspace(i32 noundef %155) #11
  %.not104 = icmp eq i32 %157, 0
  br i1 %.not104, label %.critedge5, label %158

158:                                              ; preds = %156
  %159 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi6ignoreEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %.preheader142 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit, !llvm.loop !35

.critedge5:                                       ; preds = %.preheader142, %156
  %160 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %.preheader unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader:                                       ; preds = %.critedge5
  %161 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #9
  br i1 %161, label %.critedge7, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader, %166
  %162 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #9
  %163 = load i8, ptr %162, align 1, !tbaa !13
  %164 = sext i8 %163 to i32
  %165 = call i32 @isspace(i32 noundef %164) #11
  %.not105 = icmp eq i32 %165, 0
  br i1 %.not105, label %.critedge7, label %166

166:                                              ; preds = %.lr.ph
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #9
  %167 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #9
  br i1 %167, label %.critedge7, label %.lr.ph, !llvm.loop !36

168:                                              ; preds = %147
  %169 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.12)
  br i1 %169, label %170, label %176

170:                                              ; preds = %168
  %171 = load i32, ptr %50, align 8, !tbaa !37
  %.not102 = icmp eq i32 %171, 0
  br i1 %.not102, label %172, label %.invoke539

172:                                              ; preds = %170
  %173 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %174 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

174:                                              ; preds = %172
  %175 = load i32, ptr %50, align 8, !tbaa !37
  %.not103 = icmp eq i32 %175, 3
  br i1 %.not103, label %.critedge7, label %.invoke540

176:                                              ; preds = %168
  %177 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.15)
  br i1 %177, label %178, label %193

178:                                              ; preds = %176
  %179 = load i32, ptr %42, align 4, !tbaa !14
  %.not100 = icmp eq i32 %179, 0
  br i1 %.not100, label %180, label %.invoke539

180:                                              ; preds = %178
  %181 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull @_ZSt3hexRSt8ios_base)
          to label %182 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

182:                                              ; preds = %180
  %183 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %184 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

184:                                              ; preds = %182
  %185 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(16) %183, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %186 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

186:                                              ; preds = %184
  %187 = load i32, ptr %42, align 4, !tbaa !14
  %188 = add i32 %187, -33554432
  %or.cond111 = icmp ult i32 %188, -33554431
  br i1 %or.cond111, label %.invoke540, label %189

189:                                              ; preds = %186
  %190 = icmp ugt i32 %187, 65535
  %191 = load i32, ptr %49, align 4
  %192 = icmp eq i32 %191, 3
  %or.cond114 = select i1 %190, i1 %192, i1 false
  br i1 %or.cond114, label %.invoke539, label %.critedge7

193:                                              ; preds = %176
  %194 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.19)
  br i1 %194, label %195, label %203

195:                                              ; preds = %193
  %196 = load i32, ptr %44, align 8, !tbaa !38
  %.not97 = icmp eq i32 %196, 0
  br i1 %.not97, label %197, label %.invoke539

197:                                              ; preds = %195
  %198 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 4 dereferenceable(4) %44)
          to label %199 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

199:                                              ; preds = %197
  %200 = load i32, ptr %44, align 8, !tbaa !38
  %.off = add i32 %200, -1
  %switch = icmp ult i32 %.off, 2
  br i1 %switch, label %.critedge7, label %.invoke540

.invoke540:                                       ; preds = %199, %186, %174
  %201 = phi ptr [ @.str.14, %174 ], [ @.str.17, %186 ], [ @.str.21, %199 ]
  %202 = phi i32 [ %175, %174 ], [ %187, %186 ], [ %200, %199 ]
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %62, ptr noundef nonnull %201, i32 noundef %202)
          to label %.thread132 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

203:                                              ; preds = %193
  %204 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.22)
  br i1 %204, label %205, label %214

205:                                              ; preds = %203
  %206 = call noundef zeroext i1 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  br i1 %206, label %207, label %.invoke539

207:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  store i64 0, ptr %18, align 8, !tbaa !39
  %208 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERm(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %209 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

209:                                              ; preds = %207
  %210 = load i64, ptr %18, align 8, !tbaa !39
  %.not96.not = icmp eq i64 %210, 0
  br i1 %.not96.not, label %211, label %212

211:                                              ; preds = %209
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %62, ptr noundef nonnull @.str.24, i64 noundef 0)
          to label %.thread unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.thread:                                          ; preds = %211
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  br label %.thread132

212:                                              ; preds = %209
  invoke void @_ZNSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %210)
          to label %213 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

213:                                              ; preds = %212
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  br label %.critedge7

214:                                              ; preds = %203
  %215 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.25)
  br i1 %215, label %216, label %231

216:                                              ; preds = %214
  %217 = load i32, ptr %49, align 4, !tbaa !40
  %.not95 = icmp eq i32 %217, 0
  br i1 %.not95, label %218, label %.invoke539

218:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %219 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

219:                                              ; preds = %218
  %220 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.27)
  br i1 %220, label %.thread421.sink.split, label %221

221:                                              ; preds = %219
  %222 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.28)
  br i1 %222, label %.thread421.sink.split, label %223

223:                                              ; preds = %221
  %224 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.29)
  br i1 %224, label %227, label %225

225:                                              ; preds = %223
  %226 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %62, ptr noundef nonnull @.str.30, ptr noundef %226)
          to label %.critedge118 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

227:                                              ; preds = %223
  store i32 3, ptr %49, align 4, !tbaa !40
  %228 = load i32, ptr %42, align 4, !tbaa !14
  %229 = icmp ugt i32 %228, 65535
  br i1 %229, label %230, label %.thread421

230:                                              ; preds = %227
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %62, ptr noundef nonnull @.str.18)
          to label %.critedge118 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.thread421.sink.split:                            ; preds = %221, %219
  %.sink = phi i32 [ 1, %219 ], [ 2, %221 ]
  store i32 %.sink, ptr %49, align 4, !tbaa !40
  br label %.thread421

.thread421:                                       ; preds = %.thread421.sink.split, %227
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %.critedge7

231:                                              ; preds = %214
  %232 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.31)
  br i1 %232, label %.invoke, label %233

233:                                              ; preds = %231
  %234 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.32)
  br i1 %234, label %.invoke, label %237

.invoke:                                          ; preds = %233, %231
  %235 = phi ptr [ %48, %231 ], [ %47, %233 ]
  %236 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 4 dereferenceable(4) %235)
          to label %.critedge7 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

237:                                              ; preds = %233
  %238 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.33)
  br i1 %238, label %245, label %239

239:                                              ; preds = %237
  %240 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.34)
  br i1 %240, label %245, label %241

241:                                              ; preds = %239
  %242 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.35)
  br i1 %242, label %245, label %243

243:                                              ; preds = %241
  %244 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.36)
  br i1 %244, label %245, label %247

245:                                              ; preds = %243, %241, %239, %237
  invoke void @_ZN12_GLOBAL__N_19read_wordB5cxx11ERSi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %246 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

246:                                              ; preds = %245
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %.critedge7

247:                                              ; preds = %243
  %248 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.37)
  br i1 %248, label %249, label %251

249:                                              ; preds = %247
  %250 = call noundef zeroext i1 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  br i1 %250, label %.invoke539, label %.critedge7

251:                                              ; preds = %247
  %252 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.39)
  br i1 %252, label %257, label %253

253:                                              ; preds = %251
  %254 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.40)
  br i1 %254, label %257, label %255

255:                                              ; preds = %253
  %256 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.41)
  br i1 %256, label %257, label %290

257:                                              ; preds = %255, %253, %251
  %258 = call noundef zeroext i1 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  br i1 %258, label %.invoke539, label %259

259:                                              ; preds = %257
  %260 = load i32, ptr %42, align 4, !tbaa !14
  %.not = icmp eq i32 %260, 0
  br i1 %.not, label %.invoke539, label %261

261:                                              ; preds = %259
  %262 = call noundef zeroext i1 @_ZNKSt6vectorISt5arrayIfLm16EESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %43) #9
  br i1 %262, label %263, label %281

263:                                              ; preds = %261
  %264 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  %265 = load i32, ptr %44, align 8, !tbaa !38
  %266 = zext i32 %265 to i64
  %267 = mul i64 %264, %266
  invoke void @_ZNSt6vectorISt5arrayIfLm16EESaIS1_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %267)
          to label %268 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

268:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #9
  call void @_ZN2al4spanISt5arrayIfLm16EELm18446744073709551615EEC2IRSt6vectorIS2_SaIS2_EETnNSt9enable_ifIXsr7detail_E18is_valid_containerIT_S2_EEbE4typeELb1EEEOSA_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 8 dereferenceable(24) %43)
  %269 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  %270 = call { ptr, i64 } @_ZNK2al4spanISt5arrayIfLm16EELm18446744073709551615EE5firstEm(ptr noundef nonnull align 8 dereferenceable(16) %21, i64 noundef %269) #9
  %271 = extractvalue { ptr, i64 } %270, 0
  %272 = extractvalue { ptr, i64 } %270, 1
  store ptr %271, ptr %45, align 8, !tbaa !5
  store i64 %272, ptr %.sroa.412.0..sroa_idx, align 8, !tbaa !39
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #9
  call void @_ZN2al4spanISt5arrayIfLm16EELm18446744073709551615EEC2IRSt6vectorIS2_SaIS2_EETnNSt9enable_ifIXsr7detail_E18is_valid_containerIT_S2_EEbE4typeELb1EEEOSA_(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull align 8 dereferenceable(24) %43)
  %273 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  %274 = load i32, ptr %44, align 8, !tbaa !38
  %275 = add i32 %274, -1
  %276 = zext i32 %275 to i64
  %277 = mul i64 %273, %276
  %278 = call { ptr, i64 } @_ZNK2al4spanISt5arrayIfLm16EELm18446744073709551615EE7subspanEmm(ptr noundef nonnull align 8 dereferenceable(16) %22, i64 noundef %277, i64 noundef -1) #9
  %279 = extractvalue { ptr, i64 } %278, 0
  %280 = extractvalue { ptr, i64 } %278, 1
  store ptr %279, ptr %46, align 8, !tbaa !5
  store i64 %280, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !39
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #9
  br label %281

281:                                              ; preds = %268, %261
  %282 = load i32, ptr %44, align 8, !tbaa !38
  %283 = icmp eq i32 %282, 1
  br i1 %283, label %284, label %286

284:                                              ; preds = %281
  %285 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.41)
  br i1 %285, label %.invoke538, label %.critedge7

286:                                              ; preds = %281
  %287 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.39)
  br i1 %287, label %.critedge7, label %288

288:                                              ; preds = %286
  %289 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.40)
  br i1 %289, label %.critedge7, label %.invoke538

290:                                              ; preds = %255
  %291 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.46)
  br i1 %291, label %292, label %.invoke538

292:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #9
  %293 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %294 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

294:                                              ; preds = %292
  %295 = extractvalue { i64, i64 } %293, 0
  store i64 %295, ptr %23, align 8
  %296 = getelementptr inbounds i8, ptr %23, i64 8
  %297 = extractvalue { i64, i64 } %293, 1
  store i64 %297, ptr %296, align 8
  %298 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %23)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #9
  %299 = call noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %11, i64 noundef %298)
  br i1 %299, label %304, label %300

300:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #9
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %11, i64 noundef %298, i64 noundef -1)
          to label %301 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

301:                                              ; preds = %300
  %302 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %62, ptr noundef nonnull @.str.47, ptr noundef %302)
          to label %303 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

303:                                              ; preds = %301
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  br label %.thread132

304:                                              ; preds = %294
  %305 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  %306 = icmp ult i64 %.081300, %305
  br i1 %306, label %.invoke539, label %307

307:                                              ; preds = %304
  %308 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  %309 = icmp ult i64 %.0298, %308
  br i1 %309, label %.invoke539, label %310

310:                                              ; preds = %307
  %311 = load i32, ptr %44, align 8, !tbaa !38
  %312 = icmp eq i32 %311, 2
  br i1 %312, label %313, label %316

313:                                              ; preds = %310
  %314 = call noundef i64 @_ZNKSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  %315 = icmp ult i64 %.0127297, %314
  br i1 %315, label %.invoke539, label %316

316:                                              ; preds = %313, %310
  %317 = load i32, ptr %49, align 4, !tbaa !40
  %318 = icmp eq i32 %317, 0
  br i1 %318, label %.invoke539, label %320

.invoke539:                                       ; preds = %259, %257, %249, %216, %205, %195, %189, %178, %170, %78, %72, %316, %304, %307, %313
  %319 = phi ptr [ @.str.48, %313 ], [ @.str.48, %307 ], [ @.str.48, %304 ], [ @.str.49, %316 ], [ @.str.3, %72 ], [ @.str.5, %78 ], [ @.str.13, %170 ], [ @.str.16, %178 ], [ @.str.18, %189 ], [ @.str.20, %195 ], [ @.str.23, %205 ], [ @.str.26, %216 ], [ @.str.38, %249 ], [ @.str.42, %257 ], [ @.str.43, %259 ]
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %62, ptr noundef nonnull %319)
          to label %.thread132 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

320:                                              ; preds = %316
  call void @_ZNSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ESt9nullopt_t(ptr noundef nonnull align 8 dereferenceable(40) %0) #9
  br label %.thread132

.invoke538:                                       ; preds = %288, %284, %76, %290
  %321 = phi ptr [ @.str.50, %290 ], [ @.str.6, %76 ], [ @.str.44, %284 ], [ @.str.45, %288 ]
  %322 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %62, ptr noundef nonnull %321, ptr noundef %322)
          to label %.thread132 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.critedge7:                                       ; preds = %166, %.lr.ph, %.invoke, %.preheader, %213, %199, %288, %286, %284, %249, %.thread421, %146, %94, %174, %246, %189
  %.3130 = phi i64 [ %.0127297, %94 ], [ %.2129, %146 ], [ %.0127297, %174 ], [ %.0127297, %189 ], [ %.0127297, %199 ], [ %.0127297, %213 ], [ %.0127297, %.thread421 ], [ %.0127297, %246 ], [ %.0127297, %249 ], [ %.0127297, %284 ], [ %.0127297, %286 ], [ %.0127297, %288 ], [ %.0127297, %.preheader ], [ %.0127297, %.invoke ], [ %.0127297, %.lr.ph ], [ %.0127297, %166 ]
  %.3 = phi i64 [ %.0298, %94 ], [ %.2, %146 ], [ %.0298, %174 ], [ %.0298, %189 ], [ %.0298, %199 ], [ %.0298, %213 ], [ %.0298, %.thread421 ], [ %.0298, %246 ], [ %.0298, %249 ], [ %.0298, %284 ], [ %.0298, %286 ], [ %.0298, %288 ], [ %.0298, %.preheader ], [ %.0298, %.invoke ], [ %.0298, %.lr.ph ], [ %.0298, %166 ]
  %.182 = phi i64 [ %82, %94 ], [ %.081300, %146 ], [ %.081300, %174 ], [ %.081300, %189 ], [ %.081300, %199 ], [ %.081300, %213 ], [ %.081300, %.thread421 ], [ %.081300, %246 ], [ %.081300, %249 ], [ %.081300, %284 ], [ %.081300, %286 ], [ %.081300, %288 ], [ %.081300, %.preheader ], [ %.081300, %.invoke ], [ %.081300, %.lr.ph ], [ %.081300, %166 ]
  %.179 = phi i32 [ 1, %94 ], [ %.078301, %146 ], [ %.078301, %174 ], [ %.078301, %189 ], [ %.078301, %199 ], [ %.078301, %213 ], [ %.078301, %.thread421 ], [ %.078301, %246 ], [ 1, %249 ], [ 3, %284 ], [ 2, %286 ], [ 3, %288 ], [ %.078301, %.preheader ], [ %.078301, %.invoke ], [ %.078301, %.lr.ph ], [ %.078301, %166 ]
  %323 = load ptr, ptr %12, align 8, !tbaa !9
  %324 = getelementptr i8, ptr %323, i64 -24
  %325 = load i64, ptr %324, align 8
  %326 = getelementptr inbounds i8, ptr %12, i64 %325
  invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %326, i32 noundef 0)
          to label %327 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

327:                                              ; preds = %.critedge7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #9
  %328 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %329 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

329:                                              ; preds = %327
  %330 = extractvalue { i64, i64 } %328, 0
  store i64 %330, ptr %25, align 8
  %331 = extractvalue { i64, i64 } %328, 1
  store i64 %331, ptr %51, align 8
  %332 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %25)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #9
  %333 = call noundef zeroext i1 @_ZN12_GLOBAL__N_19is_at_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %11, i64 noundef %332)
  br i1 %333, label %338, label %334

334:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #9
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %11, i64 noundef %332, i64 noundef -1)
          to label %335 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

335:                                              ; preds = %334
  %336 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %62, ptr noundef nonnull @.str.51, ptr noundef %336)
          to label %337 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

337:                                              ; preds = %335
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  br label %.thread132

338:                                              ; preds = %329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %339

.critedge110:                                     ; preds = %144, %126
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #9
  br label %.thread132

.critedge118:                                     ; preds = %230, %225
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %.thread132

.thread132:                                       ; preds = %.invoke540, %.invoke539, %.invoke538, %.critedge110, %.critedge118, %320, %303, %337, %.thread
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(120) %12) #9
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %12) #9
  br label %345

339:                                              ; preds = %338, %72, %64, %66
  %.4131 = phi i64 [ %.0127297, %64 ], [ %.0127297, %66 ], [ %.0127297, %72 ], [ %.3130, %338 ]
  %.4 = phi i64 [ %.0298, %64 ], [ %.0298, %66 ], [ %.0298, %72 ], [ %.3, %338 ]
  %.283 = phi i64 [ %.081300, %64 ], [ %.081300, %66 ], [ %.081300, %72 ], [ %.182, %338 ]
  %.280 = phi i32 [ %.078301, %64 ], [ %.078301, %66 ], [ 0, %72 ], [ %.179, %338 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(120) %12) #9
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %12) #9
  %340 = load ptr, ptr %5, align 8, !tbaa !9
  %341 = getelementptr i8, ptr %340, i64 -24
  %342 = load i64, ptr %341, align 8
  %343 = getelementptr inbounds i8, ptr %5, i64 %342
  %344 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %343)
  br i1 %344, label %52, label %.critedge

.critedge:                                        ; preds = %60, %339, %35
  %.084.lcssa = phi i64 [ 0, %35 ], [ %62, %339 ], [ %.084299, %60 ]
  invoke void (ptr, i64, ptr, ...) @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind writable sret(%"class.std::optional") align 8 %0, i64 noundef %.084.lcssa, ptr noundef nonnull @.str.52)
          to label %345 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

345:                                              ; preds = %.thread132, %.critedge
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  br label %346

346:                                              ; preds = %345, %34
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %5) #9
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %5) #9
  ret void

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

.loopexit.split-lp.loopexit:                      ; preds = %.lr.ph294
  %lpad.loopexit139 = landingpad { ptr, i32 }
          catch ptr null
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit:    ; preds = %154, %158
  %lpad.loopexit143 = landingpad { ptr, i32 }
          catch ptr null
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.invoke, %327, %.critedge7, %263, %245, %218, %212, %207, %197, %184, %182, %180, %172, %.critedge5, %.cont, %100, %94, %91, %88, %85, %81, %63, %61, %54, %52
  %lpad.loopexit145 = landingpad { ptr, i32 }
          catch ptr null
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.invoke540, %.invoke539, %.invoke538, %.critedge, %335, %334, %301, %300, %292, %230, %225, %211, %144, %126, %33, %31, %30, %27, %3
  %lpad.loopexit.split-lp146 = landingpad { ptr, i32 }
          catch ptr null
  br label %.loopexit.split-lp

.loopexit.split-lp:                               ; preds = %.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit139, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit143, %.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit145, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp146, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  %347 = extractvalue { ptr, i32 } %lpad.phi, 0
  call void @__clang_call_terminate(ptr %347) #12
  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: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt10filesystem7__cxx116u8pathIPKcNS0_4pathEcEES4_RKT_(ptr dead_on_unwind noalias writable sret(%"class.std::filesystem::__cxx11::path") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #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 uwtable
declare dso_local void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1INSt10filesystem7__cxx114pathES6_EERKT_St13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) unnamed_addr #4 align 2

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

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

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

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

; 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 nounwind uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #4 align 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 #4 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 #4

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

; 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 void @_ZN12_GLOBAL__N_110make_errorB5cxx11EmPKcz(ptr dead_on_unwind noalias writable sret(%"class.std::optional") align 8, i64 noundef, ptr noundef, ...) local_unnamed_addr #4

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

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt5arrayIfLm16EE4fillERKf(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2al11countr_zeroIjEENSt9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std11is_unsignedIS2_EE5valueEiE4typeES2_(i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable
declare dso_local noundef i64 @_ZNKSt5arrayIfLm16EE4sizeEv(ptr noundef nonnull align 4 dereferenceable(64)) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm16EEixEm(ptr noundef nonnull align 4 dereferenceable(64), i64 noundef) local_unnamed_addr #0 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 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 uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #4 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)) #2

; 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 #4 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)) #2

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

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

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

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

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

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

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

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

; 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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ESt9nullopt_t(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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 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 void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) 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 = { 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 #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 = { 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 nosync nounwind willreturn memory(none) 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 #8 = { 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 #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { nounwind willreturn memory(read) }
attributes #12 = { 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 = !{!"vtable pointer", !8, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !19, i64 36}
!15 = !{!"_ZTS10AmbDecConf", !16, i64 0, !19, i64 32, !19, i64 36, !19, i64 40, !20, i64 44, !21, i64 48, !21, i64 52, !22, i64 56, !26, i64 80, !30, i64 104, !31, i64 120, !30, i64 136, !31, i64 152}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !17, i64 0, !18, i64 8, !7, i64 16}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"int", !7, i64 0}
!20 = !{!"_ZTS11AmbDecScale", !7, i64 0}
!21 = !{!"float", !7, i64 0}
!22 = !{!"_ZTSSt6vectorIN10AmbDecConf11SpeakerConfESaIS1_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIN10AmbDecConf11SpeakerConfESaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIN10AmbDecConf11SpeakerConfESaIS1_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIN10AmbDecConf11SpeakerConfESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!26 = !{!"_ZTSSt6vectorISt5arrayIfLm16EESaIS1_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseISt5arrayIfLm16EESaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseISt5arrayIfLm16EESaIS1_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseISt5arrayIfLm16EESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!30 = !{!"_ZTSSt5arrayIfLm4EE", !7, i64 0}
!31 = !{!"_ZTSN2al4spanISt5arrayIfLm16EELm18446744073709551615EEE", !6, i64 0, !18, i64 8}
!32 = !{!21, !21, i64 0}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = !{!15, !19, i64 32}
!38 = !{!15, !19, i64 40}
!39 = !{!18, !18, i64 0}
!40 = !{!15, !20, i64 44}


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