; LLVM IR from CerebusOSS/CereLink :: samples/TestIO (test_io)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%struct._cbsdk_config = type { i32, i32, i16, i32, i32, i16, i32, i32, i8, i32, i32, i32, i32, i32, i8 }
%"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.2" }
%"struct.std::_Head_base.2" = type { ptr }
%"class.std::unique_ptr.3" = type { %"struct.std::__uniq_ptr_data.4" }
%"struct.std::__uniq_ptr_data.4" = type { %"class.std::__uniq_ptr_impl.5" }
%"class.std::__uniq_ptr_impl.5" = type { %"class.std::tuple.6" }
%"class.std::tuple.6" = type { %"struct.std::_Tuple_impl.7" }
%"struct.std::_Tuple_impl.7" = type { %"struct.std::_Head_base.10" }
%"struct.std::_Head_base.10" = type { ptr }
%"class.std::unique_ptr.11" = type { %"struct.std::__uniq_ptr_data.12" }
%"struct.std::__uniq_ptr_data.12" = type { %"class.std::__uniq_ptr_impl.13" }
%"class.std::__uniq_ptr_impl.13" = type { %"class.std::tuple.14" }
%"class.std::tuple.14" = type { %"struct.std::_Tuple_impl.15" }
%"struct.std::_Tuple_impl.15" = type { %"struct.std::_Head_base.18" }
%"struct.std::_Head_base.18" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl" }
%"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl" = type { %"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl_data" }
%"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.24" = type { %"struct.std::_Vector_base.25" }
%"struct.std::_Vector_base.25" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.29" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.30" = type { ptr }
%"struct.std::pair" = type { %"class.__gnu_cxx::__normal_iterator.30", %"class.__gnu_cxx::__normal_iterator.30" }
%"struct.std::pair.31" = type { %"class.__gnu_cxx::__normal_iterator.29", %"class.__gnu_cxx::__normal_iterator.29" }
%struct._cbSdkTrialEvent = type { i16, [596 x i16], [596 x [6 x i32]], [596 x [6 x ptr]], [596 x ptr] }
%struct._cbSdkTrialCont = type { i16, [560 x i16], [560 x i16], [560 x i32], i32, [560 x ptr] }

@.str.26 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.34 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [21 x i8], align 1

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z8testOpenPKciS0_(ptr noundef, i32 noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13testSetConfigbb(i1 noundef zeroext, i1 noundef zeroext) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z9testClosev() #2

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #3 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca i8, align 1
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca i32, align 4
  %13 = alloca i64, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %struct._cbsdk_config, align 4
  %17 = alloca %"class.std::unique_ptr", align 8
  %18 = alloca %"class.std::unique_ptr", align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::unique_ptr.3", align 8
  %22 = alloca %"class.std::unique_ptr.3", align 8
  %23 = alloca %"class.std::unique_ptr.11", align 8
  %24 = alloca %"class.std::unique_ptr.11", align 8
  %25 = alloca [596 x %"class.std::vector"], align 16
  %26 = alloca [596 x %"class.std::vector.19"], align 16
  %27 = alloca [596 x [6 x %"class.std::vector.24"]], align 16
  %28 = alloca [596 x %"class.std::vector"], align 16
  %29 = alloca [596 x %"class.std::vector.19"], align 16
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i8, align 1
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i32, align 4
  %36 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.29", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.29", align 8
  %43 = alloca i32, align 4
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %50 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %51 = alloca i32, align 4
  %52 = alloca %"class.__gnu_cxx::__normal_iterator.29", align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator.29", align 8
  %54 = alloca i32, align 4
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i16, align 2
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i64, align 8
  %63 = alloca i32, align 4
  %64 = alloca %"struct.std::pair", align 8
  %65 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %66 = alloca %"class.__gnu_cxx::__normal_iterator.30", align 8
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca %"struct.std::pair.31", align 8
  %70 = alloca %"class.__gnu_cxx::__normal_iterator.29", align 8
  %71 = alloca %"class.__gnu_cxx::__normal_iterator.29", align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #8
  store ptr @.str.26, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  store i32 51001, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  store ptr @.str.26, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #8
  store i8 0, ptr %9, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #8
  store i8 0, ptr %10, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #8
  store i8 0, ptr %11, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  store i32 30000, ptr %12, align 4, !tbaa !5
  %74 = load i32, ptr %4, align 4, !tbaa !5
  %75 = icmp sgt i32 %74, 1
  br i1 %75, label %76, label %88

76:                                               ; preds = %2
  %77 = load ptr, ptr %5, align 8, !tbaa !9
  %78 = getelementptr inbounds ptr, ptr %77, i64 1
  %79 = load ptr, ptr %78, align 8, !tbaa !9
  %80 = getelementptr inbounds i8, ptr %79, i64 0
  %81 = load i8, ptr %80, align 1, !tbaa !13
  %82 = sext i8 %81 to i32
  %83 = icmp ne i32 %82, 45
  br i1 %83, label %84, label %88

84:                                               ; preds = %76
  %85 = load ptr, ptr %5, align 8, !tbaa !9
  %86 = getelementptr inbounds ptr, ptr %85, i64 1
  %87 = load ptr, ptr %86, align 8, !tbaa !9
  store ptr %87, ptr %6, align 8, !tbaa !9
  br label %88

88:                                               ; preds = %84, %76, %2
  %89 = load i32, ptr %4, align 4, !tbaa !5
  %90 = icmp sgt i32 %89, 2
  br i1 %90, label %91, label %105

91:                                               ; preds = %88
  %92 = load ptr, ptr %5, align 8, !tbaa !9
  %93 = getelementptr inbounds ptr, ptr %92, i64 2
  %94 = load ptr, ptr %93, align 8, !tbaa !9
  %95 = getelementptr inbounds i8, ptr %94, i64 0
  %96 = load i8, ptr %95, align 1, !tbaa !13
  %97 = sext i8 %96 to i32
  %98 = icmp ne i32 %97, 45
  br i1 %98, label %99, label %105

99:                                               ; preds = %91
  %100 = load ptr, ptr %5, align 8, !tbaa !9
  %101 = getelementptr inbounds ptr, ptr %100, i64 2
  %102 = load ptr, ptr %101, align 8, !tbaa !9
  %103 = call i64 @strtol(ptr noundef %102, ptr noundef null, i32 noundef 10) #8
  %104 = trunc i64 %103 to i32
  store i32 %104, ptr %7, align 4, !tbaa !5
  br label %105

105:                                              ; preds = %99, %91, %88
  %106 = load i32, ptr %4, align 4, !tbaa !5
  %107 = icmp sgt i32 %106, 3
  br i1 %107, label %108, label %120

108:                                              ; preds = %105
  %109 = load ptr, ptr %5, align 8, !tbaa !9
  %110 = getelementptr inbounds ptr, ptr %109, i64 3
  %111 = load ptr, ptr %110, align 8, !tbaa !9
  %112 = getelementptr inbounds i8, ptr %111, i64 0
  %113 = load i8, ptr %112, align 1, !tbaa !13
  %114 = sext i8 %113 to i32
  %115 = icmp ne i32 %114, 45
  br i1 %115, label %116, label %120

116:                                              ; preds = %108
  %117 = load ptr, ptr %5, align 8, !tbaa !9
  %118 = getelementptr inbounds ptr, ptr %117, i64 3
  %119 = load ptr, ptr %118, align 8, !tbaa !9
  store ptr %119, ptr %8, align 8, !tbaa !9
  br label %120

120:                                              ; preds = %116, %108, %105
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  store i64 1, ptr %13, align 8, !tbaa !14
  br label %121

121:                                              ; preds = %157, %120
  %122 = load i64, ptr %13, align 8, !tbaa !14
  %123 = load i32, ptr %4, align 4, !tbaa !5
  %124 = sext i32 %123 to i64
  %125 = icmp ult i64 %122, %124
  br i1 %125, label %126, label %160

126:                                              ; preds = %121
  %127 = load ptr, ptr %5, align 8, !tbaa !9
  %128 = load i64, ptr %13, align 8, !tbaa !14
  %129 = getelementptr inbounds ptr, ptr %127, i64 %128
  %130 = load ptr, ptr %129, align 8, !tbaa !9
  %131 = getelementptr inbounds i8, ptr %130, i64 0
  %132 = load i8, ptr %131, align 1, !tbaa !13
  %133 = sext i8 %132 to i32
  %134 = icmp eq i32 %133, 45
  br i1 %134, label %135, label %156

135:                                              ; preds = %126
  %136 = load ptr, ptr %5, align 8, !tbaa !9
  %137 = load i64, ptr %13, align 8, !tbaa !14
  %138 = getelementptr inbounds ptr, ptr %136, i64 %137
  %139 = load ptr, ptr %138, align 8, !tbaa !9
  %140 = getelementptr inbounds i8, ptr %139, i64 1
  %141 = load i8, ptr %140, align 1, !tbaa !13
  %142 = sext i8 %141 to i32
  switch i32 %142, label %155 [
    i32 99, label %143
    i32 101, label %144
    i32 114, label %145
  ]

143:                                              ; preds = %135
  store i8 1, ptr %9, align 1, !tbaa !11
  br label %155

144:                                              ; preds = %135
  store i8 1, ptr %10, align 1, !tbaa !11
  br label %155

145:                                              ; preds = %135
  %146 = load ptr, ptr %5, align 8, !tbaa !9
  %147 = load i64, ptr %13, align 8, !tbaa !14
  %148 = getelementptr inbounds ptr, ptr %146, i64 %147
  %149 = load ptr, ptr %148, align 8, !tbaa !9
  %150 = getelementptr inbounds i8, ptr %149, i64 2
  %151 = load i8, ptr %150, align 1, !tbaa !13
  %152 = sext i8 %151 to i32
  %153 = sub nsw i32 %152, 48
  %154 = mul nsw i32 30000, %153
  store i32 %154, ptr %12, align 4, !tbaa !5
  br label %155

155:                                              ; preds = %145, %144, %143, %135
  br label %156

156:                                              ; preds = %155, %126
  br label %157

157:                                              ; preds = %156
  %158 = load i64, ptr %13, align 8, !tbaa !14
  %159 = add i64 %158, 1
  store i64 %159, ptr %13, align 8, !tbaa !14
  br label %121, !llvm.loop !16

160:                                              ; preds = %121
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %161 = load ptr, ptr %6, align 8, !tbaa !9
  %162 = load i32, ptr %7, align 4, !tbaa !5
  %163 = load ptr, ptr %8, align 8, !tbaa !9
  %164 = call noundef i32 @_Z8testOpenPKciS0_(ptr noundef %161, i32 noundef %162, ptr noundef %163)
  store i32 %164, ptr %14, align 4, !tbaa !18
  %165 = load i32, ptr %14, align 4, !tbaa !18
  %166 = icmp slt i32 %165, 0
  br i1 %166, label %167, label %170

167:                                              ; preds = %160
  %168 = load i32, ptr %14, align 4, !tbaa !18
  %169 = call i32 (ptr, ...) @printf(ptr noundef @.str.27, i32 noundef %168)
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %15, align 4
  br label %1021

170:                                              ; preds = %160
  %171 = call i32 (ptr, ...) @printf(ptr noundef @.str.28)
  br label %172

172:                                              ; preds = %170
  %173 = load i8, ptr %9, align 1, !tbaa !11, !range !20, !noundef !21
  %174 = trunc i8 %173 to i1
  %175 = load i8, ptr %10, align 1, !tbaa !11, !range !20, !noundef !21
  %176 = trunc i8 %175 to i1
  call void @_Z13testSetConfigbb(i1 noundef zeroext %174, i1 noundef zeroext %176)
  call void @llvm.lifetime.start.p0(i64 60, ptr %16) #8
  %177 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 1
  %178 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 2
  %179 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 3
  %180 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 4
  %181 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 5
  %182 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 6
  %183 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 7
  %184 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 8
  %185 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 9
  %186 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 10
  %187 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 11
  %188 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 12
  %189 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 13
  %190 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 14
  %191 = call i32 @cbSdkGetTrialConfig(i32 noundef 0, ptr noundef %177, ptr noundef %178, ptr noundef %179, ptr noundef %180, ptr noundef %181, ptr noundef %182, ptr noundef %183, ptr noundef %184, ptr noundef %185, ptr noundef %186, ptr noundef %187, ptr noundef %188, ptr noundef %189, ptr noundef %190)
  store i32 %191, ptr %14, align 4, !tbaa !18
  %192 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 1
  store i32 1, ptr %192, align 4, !tbaa !22
  %193 = load i8, ptr %9, align 1, !tbaa !11, !range !20, !noundef !21
  %194 = trunc i8 %193 to i1
  %195 = zext i1 %194 to i64
  %196 = select i1 %194, i32 102400, i32 0
  %197 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 10
  store i32 %196, ptr %197, align 4, !tbaa !25
  %198 = load i8, ptr %10, align 1, !tbaa !11, !range !20, !noundef !21
  %199 = trunc i8 %198 to i1
  %200 = zext i1 %199 to i64
  %201 = select i1 %199, i32 16384, i32 0
  %202 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 11
  store i32 %201, ptr %202, align 4, !tbaa !26
  %203 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 1
  %204 = load i32, ptr %203, align 4, !tbaa !22
  %205 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 2
  %206 = load i16, ptr %205, align 4, !tbaa !27
  %207 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 3
  %208 = load i32, ptr %207, align 4, !tbaa !28
  %209 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 4
  %210 = load i32, ptr %209, align 4, !tbaa !29
  %211 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 5
  %212 = load i16, ptr %211, align 4, !tbaa !30
  %213 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 6
  %214 = load i32, ptr %213, align 4, !tbaa !31
  %215 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 7
  %216 = load i32, ptr %215, align 4, !tbaa !32
  %217 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 8
  %218 = load i8, ptr %217, align 4, !tbaa !33, !range !20, !noundef !21
  %219 = trunc i8 %218 to i1
  %220 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 9
  %221 = load i32, ptr %220, align 4, !tbaa !34
  %222 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 10
  %223 = load i32, ptr %222, align 4, !tbaa !25
  %224 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 11
  %225 = load i32, ptr %224, align 4, !tbaa !26
  %226 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 12
  %227 = load i32, ptr %226, align 4, !tbaa !35
  %228 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 13
  %229 = load i32, ptr %228, align 4, !tbaa !36
  %230 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 14
  %231 = load i8, ptr %230, align 4, !tbaa !37, !range !20, !noundef !21
  %232 = trunc i8 %231 to i1
  %233 = call i32 @cbSdkSetTrialConfig(i32 noundef 0, i32 noundef %204, i16 noundef zeroext %206, i32 noundef %208, i32 noundef %210, i16 noundef zeroext %212, i32 noundef %214, i32 noundef %216, i1 noundef zeroext %219, i32 noundef %221, i32 noundef %223, i32 noundef %225, i32 noundef %227, i32 noundef %229, i1 noundef zeroext %232)
  store i32 %233, ptr %14, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  call void @_ZNSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEC2IS2_vEEDn(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr null) #8
  %234 = load i8, ptr %10, align 1, !tbaa !11, !range !20, !noundef !21
  %235 = trunc i8 %234 to i1
  br i1 %235, label %236, label %243

236:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  invoke void @_ZSt11make_uniqueI16_cbSdkTrialEventJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr") align 8 %18)
          to label %237 unwind label %239

237:                                              ; preds = %236
  %238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEaSEOS3_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  call void @_ZNSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %243

239:                                              ; preds = %236
  %240 = landingpad { ptr, i32 }
          cleanup
  %241 = extractvalue { ptr, i32 } %240, 0
  store ptr %241, ptr %19, align 8
  %242 = extractvalue { ptr, i32 } %240, 1
  store i32 %242, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %1020

243:                                              ; preds = %237, %172
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  call void @_ZNSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEC2IS2_vEEDn(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr null) #8
  %244 = load i8, ptr %9, align 1, !tbaa !11, !range !20, !noundef !21
  %245 = trunc i8 %244 to i1
  br i1 %245, label %246, label %253

246:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  invoke void @_ZSt11make_uniqueI15_cbSdkTrialContJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.3") align 8 %22)
          to label %247 unwind label %249

247:                                              ; preds = %246
  %248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEaSEOS3_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @_ZNSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %253

249:                                              ; preds = %246
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %19, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %1019

253:                                              ; preds = %247, %243
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  call void @_ZNSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EEC2IS2_vEEDn(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr null) #8
  %254 = load i8, ptr %11, align 1, !tbaa !11, !range !20, !noundef !21
  %255 = trunc i8 %254 to i1
  br i1 %255, label %256, label %263

256:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  invoke void @_ZSt11make_uniqueI18_cbSdkTrialCommentJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.11") align 8 %24)
          to label %257 unwind label %259

257:                                              ; preds = %256
  %258 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EEaSEOS3_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  call void @_ZNSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %263

259:                                              ; preds = %256
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %19, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %1018

263:                                              ; preds = %257, %253
  call void @llvm.lifetime.start.p0(i64 14304, ptr %25) #8
  %264 = getelementptr inbounds [596 x %"class.std::vector"], ptr %25, i32 0, i32 0
  %265 = getelementptr inbounds %"class.std::vector", ptr %264, i64 596
  br label %266

266:                                              ; preds = %266, %263
  %267 = phi ptr [ %264, %263 ], [ %268, %266 ]
  call void @_ZNSt6vectorIsSaIsEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %267) #8
  %268 = getelementptr inbounds %"class.std::vector", ptr %267, i64 1
  %269 = icmp eq ptr %268, %265
  br i1 %269, label %270, label %266

270:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 14304, ptr %26) #8
  %271 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %26, i32 0, i32 0
  %272 = getelementptr inbounds %"class.std::vector.19", ptr %271, i64 596
  br label %273

273:                                              ; preds = %273, %270
  %274 = phi ptr [ %271, %270 ], [ %275, %273 ]
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %274) #8
  %275 = getelementptr inbounds %"class.std::vector.19", ptr %274, i64 1
  %276 = icmp eq ptr %275, %272
  br i1 %276, label %277, label %273

277:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 85824, ptr %27) #8
  %278 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %27, i32 0, i32 0, i32 0
  %279 = getelementptr inbounds %"class.std::vector.24", ptr %278, i64 3576
  br label %280

280:                                              ; preds = %280, %277
  %281 = phi ptr [ %278, %277 ], [ %282, %280 ]
  call void @_ZNSt6vectorIjSaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %281) #8
  %282 = getelementptr inbounds %"class.std::vector.24", ptr %281, i64 1
  %283 = icmp eq ptr %282, %279
  br i1 %283, label %284, label %280

284:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 14304, ptr %28) #8
  %285 = getelementptr inbounds [596 x %"class.std::vector"], ptr %28, i32 0, i32 0
  %286 = getelementptr inbounds %"class.std::vector", ptr %285, i64 596
  br label %287

287:                                              ; preds = %287, %284
  %288 = phi ptr [ %285, %284 ], [ %289, %287 ]
  call void @_ZNSt6vectorIsSaIsEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %288) #8
  %289 = getelementptr inbounds %"class.std::vector", ptr %288, i64 1
  %290 = icmp eq ptr %289, %286
  br i1 %290, label %291, label %287

291:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 14304, ptr %29) #8
  %292 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %29, i32 0, i32 0
  %293 = getelementptr inbounds %"class.std::vector.19", ptr %292, i64 596
  br label %294

294:                                              ; preds = %294, %291
  %295 = phi ptr [ %292, %291 ], [ %296, %294 ]
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %295) #8
  %296 = getelementptr inbounds %"class.std::vector.19", ptr %295, i64 1
  %297 = icmp eq ptr %296, %293
  br i1 %297, label %298, label %294

298:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  store i64 0, ptr %31, align 8, !tbaa !14
  %299 = invoke i32 @cbSdkGetTime(i32 noundef 0, ptr noundef %30)
          to label %300 unwind label %343

300:                                              ; preds = %298
  store i32 %299, ptr %14, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  store i8 49, ptr %32, align 1, !tbaa !13
  br label %301

301:                                              ; preds = %932, %300
  %302 = load i8, ptr %32, align 1, !tbaa !13
  %303 = sext i8 %302 to i32
  %304 = icmp ne i32 %303, 27
  br i1 %304, label %305, label %315

305:                                              ; preds = %301
  %306 = load i32, ptr %12, align 4, !tbaa !5
  %307 = icmp eq i32 %306, 0
  br i1 %307, label %313, label %308

308:                                              ; preds = %305
  %309 = load i64, ptr %31, align 8, !tbaa !14
  %310 = load i32, ptr %12, align 4, !tbaa !5
  %311 = zext i32 %310 to i64
  %312 = icmp ult i64 %309, %311
  br label %313

313:                                              ; preds = %308, %305
  %314 = phi i1 [ true, %305 ], [ %312, %308 ]
  br label %315

315:                                              ; preds = %313, %301
  %316 = phi i1 [ false, %301 ], [ %314, %313 ]
  br i1 %316, label %317, label %933

317:                                              ; preds = %315
  %318 = invoke i32 @cbSdkGetTime(i32 noundef 0, ptr noundef %31)
          to label %319 unwind label %347

319:                                              ; preds = %317
  store i32 %318, ptr %14, align 4, !tbaa !18
  %320 = load i64, ptr %30, align 8, !tbaa !14
  %321 = load i64, ptr %31, align 8, !tbaa !14
  %322 = sub i64 %321, %320
  store i64 %322, ptr %31, align 8, !tbaa !14
  %323 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %324 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %325 = call noundef ptr @_ZNKSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  %326 = invoke i32 @cbSdkInitTrialData(i32 noundef 0, i32 noundef 0, ptr noundef %323, ptr noundef %324, ptr noundef %325, ptr noundef null, i64 noundef 250)
          to label %327 unwind label %347

327:                                              ; preds = %319
  store i32 %326, ptr %14, align 4, !tbaa !18
  %328 = call noundef zeroext i1 @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  br i1 %328, label %329, label %508

329:                                              ; preds = %327
  %330 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %331 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %330, i32 0, i32 0
  %332 = load i16, ptr %331, align 8, !tbaa !38
  %333 = icmp ne i16 %332, 0
  br i1 %333, label %334, label %508

334:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  store i64 0, ptr %33, align 8, !tbaa !14
  br label %335

335:                                              ; preds = %502, %334
  %336 = load i64, ptr %33, align 8, !tbaa !14
  %337 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %338 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %337, i32 0, i32 0
  %339 = load i16, ptr %338, align 8, !tbaa !38
  %340 = zext i16 %339 to i64
  %341 = icmp ult i64 %336, %340
  br i1 %341, label %351, label %342

342:                                              ; preds = %335
  store i32 8, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %507

343:                                              ; preds = %298
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %19, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %20, align 4
  br label %949

347:                                              ; preds = %942, %938, %933, %615, %319, %317
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %19, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %20, align 4
  br label %948

351:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  store i64 0, ptr %34, align 8, !tbaa !14
  br label %352

352:                                              ; preds = %399, %351
  %353 = load i64, ptr %34, align 8, !tbaa !14
  %354 = icmp ult i64 %353, 6
  br i1 %354, label %356, label %355

355:                                              ; preds = %352
  store i32 11, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %411

356:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %357 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %358 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %357, i32 0, i32 2
  %359 = load i64, ptr %33, align 8, !tbaa !14
  %360 = getelementptr inbounds [596 x [6 x i32]], ptr %358, i64 0, i64 %359
  %361 = load i64, ptr %34, align 8, !tbaa !14
  %362 = getelementptr inbounds [6 x i32], ptr %360, i64 0, i64 %361
  %363 = load i32, ptr %362, align 4, !tbaa !5
  store i32 %363, ptr %35, align 4, !tbaa !5
  %364 = load i64, ptr %33, align 8, !tbaa !14
  %365 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %27, i64 0, i64 %364
  %366 = load i64, ptr %34, align 8, !tbaa !14
  %367 = getelementptr inbounds [6 x %"class.std::vector.24"], ptr %365, i64 0, i64 %366
  %368 = load i32, ptr %35, align 4, !tbaa !5
  %369 = zext i32 %368 to i64
  invoke void @_ZNSt6vectorIjSaIjEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %367, i64 noundef %369)
          to label %370 unwind label %402

370:                                              ; preds = %356
  %371 = load i64, ptr %33, align 8, !tbaa !14
  %372 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %27, i64 0, i64 %371
  %373 = load i64, ptr %34, align 8, !tbaa !14
  %374 = getelementptr inbounds [6 x %"class.std::vector.24"], ptr %372, i64 0, i64 %373
  %375 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %374) #8
  %376 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %36, i32 0, i32 0
  store ptr %375, ptr %376, align 8
  %377 = load i64, ptr %33, align 8, !tbaa !14
  %378 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %27, i64 0, i64 %377
  %379 = load i64, ptr %34, align 8, !tbaa !14
  %380 = getelementptr inbounds [6 x %"class.std::vector.24"], ptr %378, i64 0, i64 %379
  %381 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %380) #8
  %382 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %37, i32 0, i32 0
  store ptr %381, ptr %382, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  store i32 0, ptr %38, align 4, !tbaa !5
  %383 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %36, i32 0, i32 0
  %384 = load ptr, ptr %383, align 8
  %385 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %37, i32 0, i32 0
  %386 = load ptr, ptr %385, align 8
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEiEvT_S7_RKT0_(ptr %384, ptr %386, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %387 unwind label %406

387:                                              ; preds = %370
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  %388 = load i64, ptr %33, align 8, !tbaa !14
  %389 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %27, i64 0, i64 %388
  %390 = load i64, ptr %34, align 8, !tbaa !14
  %391 = getelementptr inbounds [6 x %"class.std::vector.24"], ptr %389, i64 0, i64 %390
  %392 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %391) #8
  %393 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %394 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %393, i32 0, i32 3
  %395 = load i64, ptr %33, align 8, !tbaa !14
  %396 = getelementptr inbounds [596 x [6 x ptr]], ptr %394, i64 0, i64 %395
  %397 = load i64, ptr %34, align 8, !tbaa !14
  %398 = getelementptr inbounds [6 x ptr], ptr %396, i64 0, i64 %397
  store ptr %392, ptr %398, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %399

399:                                              ; preds = %387
  %400 = load i64, ptr %34, align 8, !tbaa !14
  %401 = add i64 %400, 1
  store i64 %401, ptr %34, align 8, !tbaa !14
  br label %352, !llvm.loop !40

402:                                              ; preds = %356
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %19, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %20, align 4
  br label %410

406:                                              ; preds = %370
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %19, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %410

410:                                              ; preds = %406, %402
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %506

411:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  store i32 0, ptr %39, align 4, !tbaa !5
  %412 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %413 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %412, i32 0, i32 1
  %414 = load i64, ptr %33, align 8, !tbaa !14
  %415 = getelementptr inbounds [596 x i16], ptr %413, i64 0, i64 %414
  %416 = load i16, ptr %415, align 2, !tbaa !41
  %417 = invoke i32 @cbSdkIsChanAnyDigIn(i32 noundef 0, i16 noundef zeroext %416, ptr noundef %39)
          to label %418 unwind label %457

418:                                              ; preds = %411
  %419 = load i32, ptr %39, align 4, !tbaa !5
  %420 = icmp ne i32 %419, 0
  br i1 %420, label %421, label %501

421:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %422 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %423 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %422, i32 0, i32 2
  %424 = load i64, ptr %33, align 8, !tbaa !14
  %425 = getelementptr inbounds [596 x [6 x i32]], ptr %423, i64 0, i64 %424
  %426 = getelementptr inbounds [6 x i32], ptr %425, i64 0, i64 0
  %427 = load i32, ptr %426, align 4, !tbaa !5
  store i32 %427, ptr %40, align 4, !tbaa !5
  %428 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 8
  %429 = load i8, ptr %428, align 4, !tbaa !33, !range !20, !noundef !21
  %430 = trunc i8 %429 to i1
  br i1 %430, label %431, label %469

431:                                              ; preds = %421
  %432 = load i64, ptr %33, align 8, !tbaa !14
  %433 = getelementptr inbounds [596 x %"class.std::vector"], ptr %28, i64 0, i64 %432
  %434 = load i32, ptr %40, align 4, !tbaa !5
  %435 = zext i32 %434 to i64
  invoke void @_ZNSt6vectorIsSaIsEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %433, i64 noundef %435)
          to label %436 unwind label %461

436:                                              ; preds = %431
  %437 = load i64, ptr %33, align 8, !tbaa !14
  %438 = getelementptr inbounds [596 x %"class.std::vector"], ptr %28, i64 0, i64 %437
  %439 = call ptr @_ZNSt6vectorIsSaIsEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %438) #8
  %440 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %41, i32 0, i32 0
  store ptr %439, ptr %440, align 8
  %441 = load i64, ptr %33, align 8, !tbaa !14
  %442 = getelementptr inbounds [596 x %"class.std::vector"], ptr %28, i64 0, i64 %441
  %443 = call ptr @_ZNSt6vectorIsSaIsEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %442) #8
  %444 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %42, i32 0, i32 0
  store ptr %443, ptr %444, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  store i32 0, ptr %43, align 4, !tbaa !5
  %445 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %41, i32 0, i32 0
  %446 = load ptr, ptr %445, align 8
  %447 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %42, i32 0, i32 0
  %448 = load ptr, ptr %447, align 8
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEEiEvT_S7_RKT0_(ptr %446, ptr %448, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %449 unwind label %465

449:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  %450 = load i64, ptr %33, align 8, !tbaa !14
  %451 = getelementptr inbounds [596 x %"class.std::vector"], ptr %28, i64 0, i64 %450
  %452 = call noundef ptr @_ZNSt6vectorIsSaIsEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %451) #8
  %453 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %454 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %453, i32 0, i32 4
  %455 = load i64, ptr %33, align 8, !tbaa !14
  %456 = getelementptr inbounds [596 x ptr], ptr %454, i64 0, i64 %455
  store ptr %452, ptr %456, align 8, !tbaa !9
  br label %499

457:                                              ; preds = %411
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %19, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %20, align 4
  br label %505

461:                                              ; preds = %469, %431
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %19, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %20, align 4
  br label %500

465:                                              ; preds = %436
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %19, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %500

469:                                              ; preds = %421
  %470 = load i64, ptr %33, align 8, !tbaa !14
  %471 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %29, i64 0, i64 %470
  %472 = load i32, ptr %40, align 4, !tbaa !5
  %473 = zext i32 %472 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %471, i64 noundef %473)
          to label %474 unwind label %461

474:                                              ; preds = %469
  %475 = load i64, ptr %33, align 8, !tbaa !14
  %476 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %29, i64 0, i64 %475
  %477 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %476) #8
  %478 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %44, i32 0, i32 0
  store ptr %477, ptr %478, align 8
  %479 = load i64, ptr %33, align 8, !tbaa !14
  %480 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %29, i64 0, i64 %479
  %481 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %480) #8
  %482 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %45, i32 0, i32 0
  store ptr %481, ptr %482, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  store i32 0, ptr %46, align 4, !tbaa !5
  %483 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %44, i32 0, i32 0
  %484 = load ptr, ptr %483, align 8
  %485 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %45, i32 0, i32 0
  %486 = load ptr, ptr %485, align 8
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEiEvT_S7_RKT0_(ptr %484, ptr %486, ptr noundef nonnull align 4 dereferenceable(4) %46)
          to label %487 unwind label %495

487:                                              ; preds = %474
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  %488 = load i64, ptr %33, align 8, !tbaa !14
  %489 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %29, i64 0, i64 %488
  %490 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %489) #8
  %491 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %492 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %491, i32 0, i32 4
  %493 = load i64, ptr %33, align 8, !tbaa !14
  %494 = getelementptr inbounds [596 x ptr], ptr %492, i64 0, i64 %493
  store ptr %490, ptr %494, align 8, !tbaa !9
  br label %499

495:                                              ; preds = %474
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %19, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %500

499:                                              ; preds = %487, %449
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %501

500:                                              ; preds = %495, %465, %461
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %505

501:                                              ; preds = %499, %418
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %502

502:                                              ; preds = %501
  %503 = load i64, ptr %33, align 8, !tbaa !14
  %504 = add i64 %503, 1
  store i64 %504, ptr %33, align 8, !tbaa !14
  br label %335, !llvm.loop !42

505:                                              ; preds = %500, %457
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %506

506:                                              ; preds = %505, %410
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %948

507:                                              ; preds = %342
  br label %508

508:                                              ; preds = %507, %329, %327
  %509 = call noundef zeroext i1 @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  br i1 %509, label %510, label %615

510:                                              ; preds = %508
  %511 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %512 = getelementptr inbounds %struct._cbSdkTrialCont, ptr %511, i32 0, i32 0
  %513 = load i16, ptr %512, align 8, !tbaa !43
  %514 = zext i16 %513 to i32
  %515 = icmp sgt i32 %514, 0
  br i1 %515, label %516, label %615

516:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  store i32 0, ptr %47, align 4, !tbaa !5
  br label %517

517:                                              ; preds = %610, %516
  %518 = load i32, ptr %47, align 4, !tbaa !5
  %519 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %520 = getelementptr inbounds %struct._cbSdkTrialCont, ptr %519, i32 0, i32 0
  %521 = load i16, ptr %520, align 8, !tbaa !43
  %522 = zext i16 %521 to i32
  %523 = icmp slt i32 %518, %522
  br i1 %523, label %525, label %524

524:                                              ; preds = %517
  store i32 14, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %614

525:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %526 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %527 = getelementptr inbounds %struct._cbSdkTrialCont, ptr %526, i32 0, i32 3
  %528 = load i32, ptr %47, align 4, !tbaa !5
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds [560 x i32], ptr %527, i64 0, i64 %529
  %531 = load i32, ptr %530, align 4, !tbaa !5
  store i32 %531, ptr %48, align 4, !tbaa !5
  %532 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 8
  %533 = load i8, ptr %532, align 4, !tbaa !33, !range !20, !noundef !21
  %534 = trunc i8 %533 to i1
  br i1 %534, label %535, label %574

535:                                              ; preds = %525
  %536 = load i32, ptr %47, align 4, !tbaa !5
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %26, i64 0, i64 %537
  %539 = load i32, ptr %48, align 4, !tbaa !5
  %540 = zext i32 %539 to i64
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %538, i64 noundef %540)
          to label %541 unwind label %566

541:                                              ; preds = %535
  %542 = load i32, ptr %47, align 4, !tbaa !5
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %26, i64 0, i64 %543
  %545 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %544) #8
  %546 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %49, i32 0, i32 0
  store ptr %545, ptr %546, align 8
  %547 = load i32, ptr %47, align 4, !tbaa !5
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %26, i64 0, i64 %548
  %550 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %549) #8
  %551 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %50, i32 0, i32 0
  store ptr %550, ptr %551, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  store i32 0, ptr %51, align 4, !tbaa !5
  %552 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %49, i32 0, i32 0
  %553 = load ptr, ptr %552, align 8
  %554 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %50, i32 0, i32 0
  %555 = load ptr, ptr %554, align 8
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEiEvT_S7_RKT0_(ptr %553, ptr %555, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %556 unwind label %570

556:                                              ; preds = %541
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  %557 = load i32, ptr %47, align 4, !tbaa !5
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %26, i64 0, i64 %558
  %560 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %559) #8
  %561 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %562 = getelementptr inbounds %struct._cbSdkTrialCont, ptr %561, i32 0, i32 5
  %563 = load i32, ptr %47, align 4, !tbaa !5
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds [560 x ptr], ptr %562, i64 0, i64 %564
  store ptr %560, ptr %565, align 8, !tbaa !9
  br label %609

566:                                              ; preds = %574, %535
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %19, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %20, align 4
  br label %613

570:                                              ; preds = %541
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %19, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %613

574:                                              ; preds = %525
  %575 = load i32, ptr %47, align 4, !tbaa !5
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds [596 x %"class.std::vector"], ptr %25, i64 0, i64 %576
  %578 = load i32, ptr %48, align 4, !tbaa !5
  %579 = zext i32 %578 to i64
  invoke void @_ZNSt6vectorIsSaIsEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %577, i64 noundef %579)
          to label %580 unwind label %566

580:                                              ; preds = %574
  %581 = load i32, ptr %47, align 4, !tbaa !5
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds [596 x %"class.std::vector"], ptr %25, i64 0, i64 %582
  %584 = call ptr @_ZNSt6vectorIsSaIsEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %583) #8
  %585 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %52, i32 0, i32 0
  store ptr %584, ptr %585, align 8
  %586 = load i32, ptr %47, align 4, !tbaa !5
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds [596 x %"class.std::vector"], ptr %25, i64 0, i64 %587
  %589 = call ptr @_ZNSt6vectorIsSaIsEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %588) #8
  %590 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %53, i32 0, i32 0
  store ptr %589, ptr %590, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  store i32 0, ptr %54, align 4, !tbaa !5
  %591 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %52, i32 0, i32 0
  %592 = load ptr, ptr %591, align 8
  %593 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %53, i32 0, i32 0
  %594 = load ptr, ptr %593, align 8
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEEiEvT_S7_RKT0_(ptr %592, ptr %594, ptr noundef nonnull align 4 dereferenceable(4) %54)
          to label %595 unwind label %605

595:                                              ; preds = %580
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  %596 = load i32, ptr %47, align 4, !tbaa !5
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds [596 x %"class.std::vector"], ptr %25, i64 0, i64 %597
  %599 = call noundef ptr @_ZNSt6vectorIsSaIsEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %598) #8
  %600 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %601 = getelementptr inbounds %struct._cbSdkTrialCont, ptr %600, i32 0, i32 5
  %602 = load i32, ptr %47, align 4, !tbaa !5
  %603 = sext i32 %602 to i64
  %604 = getelementptr inbounds [560 x ptr], ptr %601, i64 0, i64 %603
  store ptr %599, ptr %604, align 8, !tbaa !9
  br label %609

605:                                              ; preds = %580
  %606 = landingpad { ptr, i32 }
          cleanup
  %607 = extractvalue { ptr, i32 } %606, 0
  store ptr %607, ptr %19, align 8
  %608 = extractvalue { ptr, i32 } %606, 1
  store i32 %608, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %613

609:                                              ; preds = %595, %556
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %610

610:                                              ; preds = %609
  %611 = load i32, ptr %47, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr %47, align 4, !tbaa !5
  br label %517, !llvm.loop !45

613:                                              ; preds = %605, %570, %566
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %948

614:                                              ; preds = %524
  br label %615

615:                                              ; preds = %614, %510, %508
  %616 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 1
  %617 = load i32, ptr %616, align 4, !tbaa !22
  %618 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %619 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %620 = call noundef ptr @_ZNKSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  %621 = invoke i32 @cbSdkGetTrialData(i32 noundef 0, i32 noundef %617, ptr noundef %618, ptr noundef %619, ptr noundef %620, ptr noundef null)
          to label %622 unwind label %347

622:                                              ; preds = %615
  store i32 %621, ptr %14, align 4, !tbaa !18
  %623 = call noundef zeroext i1 @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  br i1 %623, label %624, label %777

624:                                              ; preds = %622
  %625 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %626 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %625, i32 0, i32 0
  %627 = load i16, ptr %626, align 8, !tbaa !38
  %628 = icmp ne i16 %627, 0
  br i1 %628, label %629, label %777

629:                                              ; preds = %624
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  store i64 0, ptr %55, align 8, !tbaa !14
  br label %630

630:                                              ; preds = %771, %629
  %631 = load i64, ptr %55, align 8, !tbaa !14
  %632 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %633 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %632, i32 0, i32 0
  %634 = load i16, ptr %633, align 8, !tbaa !38
  %635 = zext i16 %634 to i64
  %636 = icmp ult i64 %631, %635
  br i1 %636, label %638, label %637

637:                                              ; preds = %630
  store i32 17, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %776

638:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  store i64 0, ptr %56, align 8, !tbaa !14
  br label %639

639:                                              ; preds = %666, %638
  %640 = load i64, ptr %56, align 8, !tbaa !14
  %641 = icmp ult i64 %640, 6
  br i1 %641, label %643, label %642

642:                                              ; preds = %639
  store i32 20, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  br label %669

643:                                              ; preds = %639
  %644 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %645 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %644, i32 0, i32 2
  %646 = load i64, ptr %55, align 8, !tbaa !14
  %647 = getelementptr inbounds [596 x [6 x i32]], ptr %645, i64 0, i64 %646
  %648 = load i64, ptr %56, align 8, !tbaa !14
  %649 = getelementptr inbounds [6 x i32], ptr %647, i64 0, i64 %648
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %652, label %665

652:                                              ; preds = %643
  %653 = load i64, ptr %55, align 8, !tbaa !14
  %654 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %27, i64 0, i64 %653
  %655 = load i64, ptr %56, align 8, !tbaa !14
  %656 = getelementptr inbounds [6 x %"class.std::vector.24"], ptr %654, i64 0, i64 %655
  %657 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %656, i64 noundef 0) #8
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.29, i32 noundef %658)
          to label %660 unwind label %661

660:                                              ; preds = %652
  br label %665

661:                                              ; preds = %652
  %662 = landingpad { ptr, i32 }
          cleanup
  %663 = extractvalue { ptr, i32 } %662, 0
  store ptr %663, ptr %19, align 8
  %664 = extractvalue { ptr, i32 } %662, 1
  store i32 %664, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  br label %775

665:                                              ; preds = %660, %643
  br label %666

666:                                              ; preds = %665
  %667 = load i64, ptr %56, align 8, !tbaa !14
  %668 = add i64 %667, 1
  store i64 %668, ptr %56, align 8, !tbaa !14
  br label %639, !llvm.loop !46

669:                                              ; preds = %642
  %670 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.30)
          to label %671 unwind label %699

671:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 2, ptr %57) #8
  %672 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %673 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %672, i32 0, i32 1
  %674 = load i64, ptr %55, align 8, !tbaa !14
  %675 = getelementptr inbounds [596 x i16], ptr %673, i64 0, i64 %674
  %676 = load i16, ptr %675, align 2, !tbaa !41
  store i16 %676, ptr %57, align 2, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #8
  store i32 0, ptr %58, align 4, !tbaa !5
  %677 = load i16, ptr %57, align 2, !tbaa !41
  %678 = invoke i32 @cbSdkIsChanAnyDigIn(i32 noundef 0, i16 noundef zeroext %677, ptr noundef %58)
          to label %679 unwind label %703

679:                                              ; preds = %671
  %680 = load i32, ptr %58, align 4, !tbaa !5
  %681 = icmp ne i32 %680, 0
  br i1 %681, label %682, label %770

682:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #8
  %683 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  %684 = getelementptr inbounds %struct._cbSdkTrialEvent, ptr %683, i32 0, i32 2
  %685 = load i64, ptr %55, align 8, !tbaa !14
  %686 = getelementptr inbounds [596 x [6 x i32]], ptr %684, i64 0, i64 %685
  %687 = getelementptr inbounds [6 x i32], ptr %686, i64 0, i64 0
  %688 = load i32, ptr %687, align 4, !tbaa !5
  store i32 %688, ptr %59, align 4, !tbaa !5
  %689 = load i32, ptr %59, align 4, !tbaa !5
  %690 = icmp ugt i32 %689, 0
  br i1 %690, label %691, label %711

691:                                              ; preds = %682
  %692 = load i64, ptr %55, align 8, !tbaa !14
  %693 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %27, i64 0, i64 %692
  %694 = getelementptr inbounds [6 x %"class.std::vector.24"], ptr %693, i64 0, i64 0
  %695 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %694, i64 noundef 0) #8
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.31, i32 noundef %696)
          to label %698 unwind label %707

698:                                              ; preds = %691
  br label %711

699:                                              ; preds = %669
  %700 = landingpad { ptr, i32 }
          cleanup
  %701 = extractvalue { ptr, i32 } %700, 0
  store ptr %701, ptr %19, align 8
  %702 = extractvalue { ptr, i32 } %700, 1
  store i32 %702, ptr %20, align 4
  br label %775

703:                                              ; preds = %671
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %19, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %20, align 4
  br label %774

707:                                              ; preds = %765, %691
  %708 = landingpad { ptr, i32 }
          cleanup
  %709 = extractvalue { ptr, i32 } %708, 0
  store ptr %709, ptr %19, align 8
  %710 = extractvalue { ptr, i32 } %708, 1
  store i32 %710, ptr %20, align 4
  br label %769

711:                                              ; preds = %698, %682
  %712 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 8
  %713 = load i8, ptr %712, align 4, !tbaa !33, !range !20, !noundef !21
  %714 = trunc i8 %713 to i1
  br i1 %714, label %715, label %738

715:                                              ; preds = %711
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #8
  store i32 0, ptr %60, align 4, !tbaa !5
  br label %716

716:                                              ; preds = %730, %715
  %717 = load i32, ptr %60, align 4, !tbaa !5
  %718 = load i32, ptr %59, align 4, !tbaa !5
  %719 = icmp ult i32 %717, %718
  br i1 %719, label %721, label %720

720:                                              ; preds = %716
  store i32 23, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  br label %737

721:                                              ; preds = %716
  %722 = load i64, ptr %55, align 8, !tbaa !14
  %723 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %29, i64 0, i64 %722
  %724 = load i32, ptr %60, align 4, !tbaa !5
  %725 = zext i32 %724 to i64
  %726 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %723, i64 noundef %725) #8
  %727 = load double, ptr %726, align 8, !tbaa !47
  %728 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.32, double noundef %727)
          to label %729 unwind label %733

729:                                              ; preds = %721
  br label %730

730:                                              ; preds = %729
  %731 = load i32, ptr %60, align 4, !tbaa !5
  %732 = add i32 %731, 1
  store i32 %732, ptr %60, align 4, !tbaa !5
  br label %716, !llvm.loop !49

733:                                              ; preds = %721
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %19, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  br label %769

737:                                              ; preds = %720
  br label %762

738:                                              ; preds = %711
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  store i32 0, ptr %61, align 4, !tbaa !5
  br label %739

739:                                              ; preds = %754, %738
  %740 = load i32, ptr %61, align 4, !tbaa !5
  %741 = load i32, ptr %59, align 4, !tbaa !5
  %742 = icmp ult i32 %740, %741
  br i1 %742, label %744, label %743

743:                                              ; preds = %739
  store i32 26, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %761

744:                                              ; preds = %739
  %745 = load i64, ptr %55, align 8, !tbaa !14
  %746 = getelementptr inbounds [596 x %"class.std::vector"], ptr %28, i64 0, i64 %745
  %747 = load i32, ptr %61, align 4, !tbaa !5
  %748 = zext i32 %747 to i64
  %749 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorIsSaIsEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %746, i64 noundef %748) #8
  %750 = load i16, ptr %749, align 2, !tbaa !41
  %751 = sext i16 %750 to i32
  %752 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.33, i32 noundef %751)
          to label %753 unwind label %757

753:                                              ; preds = %744
  br label %754

754:                                              ; preds = %753
  %755 = load i32, ptr %61, align 4, !tbaa !5
  %756 = add i32 %755, 1
  store i32 %756, ptr %61, align 4, !tbaa !5
  br label %739, !llvm.loop !50

757:                                              ; preds = %744
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %19, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %769

761:                                              ; preds = %743
  br label %762

762:                                              ; preds = %761, %737
  %763 = load i32, ptr %59, align 4, !tbaa !5
  %764 = icmp ugt i32 %763, 0
  br i1 %764, label %765, label %768

765:                                              ; preds = %762
  %766 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.30)
          to label %767 unwind label %707

767:                                              ; preds = %765
  br label %768

768:                                              ; preds = %767, %762
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %770

769:                                              ; preds = %757, %733, %707
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %774

770:                                              ; preds = %768, %679
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %57) #8
  br label %771

771:                                              ; preds = %770
  %772 = load i64, ptr %55, align 8, !tbaa !14
  %773 = add i64 %772, 1
  store i64 %773, ptr %55, align 8, !tbaa !14
  br label %630, !llvm.loop !51

774:                                              ; preds = %769, %703
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %57) #8
  br label %775

775:                                              ; preds = %774, %699, %661
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %948

776:                                              ; preds = %637
  br label %777

777:                                              ; preds = %776, %624, %622
  %778 = call noundef zeroext i1 @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  br i1 %778, label %779, label %932

779:                                              ; preds = %777
  %780 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %781 = getelementptr inbounds %struct._cbSdkTrialCont, ptr %780, i32 0, i32 0
  %782 = load i16, ptr %781, align 8, !tbaa !43
  %783 = icmp ne i16 %782, 0
  br i1 %783, label %784, label %932

784:                                              ; preds = %779
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #8
  store i64 0, ptr %62, align 8, !tbaa !14
  br label %785

785:                                              ; preds = %927, %784
  %786 = load i64, ptr %62, align 8, !tbaa !14
  %787 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %788 = getelementptr inbounds %struct._cbSdkTrialCont, ptr %787, i32 0, i32 0
  %789 = load i16, ptr %788, align 8, !tbaa !43
  %790 = zext i16 %789 to i64
  %791 = icmp ult i64 %786, %790
  br i1 %791, label %793, label %792

792:                                              ; preds = %785
  store i32 29, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  br label %931

793:                                              ; preds = %785
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #8
  %794 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %795 = getelementptr inbounds %struct._cbSdkTrialCont, ptr %794, i32 0, i32 3
  %796 = load i64, ptr %62, align 8, !tbaa !14
  %797 = getelementptr inbounds [560 x i32], ptr %795, i64 0, i64 %796
  %798 = load i32, ptr %797, align 4, !tbaa !5
  store i32 %798, ptr %63, align 4, !tbaa !5
  %799 = getelementptr inbounds %struct._cbsdk_config, ptr %16, i32 0, i32 8
  %800 = load i8, ptr %799, align 4, !tbaa !33, !range !20, !noundef !21
  %801 = trunc i8 %800 to i1
  br i1 %801, label %802, label %864

802:                                              ; preds = %793
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #8
  %803 = load i64, ptr %62, align 8, !tbaa !14
  %804 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %26, i64 0, i64 %803
  %805 = invoke ptr @_ZSt5beginISt6vectorIdSaIdEEEDTcldtfp_5beginEERT_(ptr noundef nonnull align 8 dereferenceable(24) %804)
          to label %806 unwind label %855

806:                                              ; preds = %802
  %807 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %65, i32 0, i32 0
  store ptr %805, ptr %807, align 8
  %808 = load i64, ptr %62, align 8, !tbaa !14
  %809 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %26, i64 0, i64 %808
  %810 = invoke ptr @_ZSt3endISt6vectorIdSaIdEEEDTcldtfp_3endEERT_(ptr noundef nonnull align 8 dereferenceable(24) %809)
          to label %811 unwind label %855

811:                                              ; preds = %806
  %812 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %66, i32 0, i32 0
  store ptr %810, ptr %812, align 8
  %813 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %65, i32 0, i32 0
  %814 = load ptr, ptr %813, align 8
  %815 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.30", ptr %66, i32 0, i32 0
  %816 = load ptr, ptr %815, align 8
  %817 = invoke { ptr, ptr } @_ZSt14minmax_elementIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEESt4pairIT_S8_ES8_S8_(ptr %814, ptr %816)
          to label %818 unwind label %855

818:                                              ; preds = %811
  %819 = getelementptr inbounds { ptr, ptr }, ptr %64, i32 0, i32 0
  %820 = extractvalue { ptr, ptr } %817, 0
  store ptr %820, ptr %819, align 8
  %821 = getelementptr inbounds { ptr, ptr }, ptr %64, i32 0, i32 1
  %822 = extractvalue { ptr, ptr } %817, 1
  store ptr %822, ptr %821, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #8
  %823 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16) %64) #8
  store ptr %823, ptr %67, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #8
  %824 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16) %64) #8
  store ptr %824, ptr %68, align 8, !tbaa !9
  %825 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.34)
          to label %826 unwind label %859

826:                                              ; preds = %818
  %827 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %828 = getelementptr inbounds %struct._cbSdkTrialCont, ptr %827, i32 0, i32 1
  %829 = load i64, ptr %62, align 8, !tbaa !14
  %830 = getelementptr inbounds [560 x i16], ptr %828, i64 0, i64 %829
  %831 = load i16, ptr %830, align 2, !tbaa !41
  %832 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8) %825, i16 noundef zeroext %831)
          to label %833 unwind label %859

833:                                              ; preds = %826
  %834 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %832, ptr noundef @.str.35)
          to label %835 unwind label %859

835:                                              ; preds = %833
  %836 = load i32, ptr %63, align 4, !tbaa !5
  %837 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %834, i32 noundef %836)
          to label %838 unwind label %859

838:                                              ; preds = %835
  %839 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %837, ptr noundef @.str.36)
          to label %840 unwind label %859

840:                                              ; preds = %838
  %841 = load ptr, ptr %67, align 8, !tbaa !9
  %842 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %841) #8
  %843 = load double, ptr %842, align 8, !tbaa !47
  %844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %839, double noundef %843)
          to label %845 unwind label %859

845:                                              ; preds = %840
  %846 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %844, ptr noundef @.str.37)
          to label %847 unwind label %859

847:                                              ; preds = %845
  %848 = load ptr, ptr %68, align 8, !tbaa !9
  %849 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %848) #8
  %850 = load double, ptr %849, align 8, !tbaa !47
  %851 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %846, double noundef %850)
          to label %852 unwind label %859

852:                                              ; preds = %847
  %853 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %851, i8 noundef signext 10)
          to label %854 unwind label %859

854:                                              ; preds = %852
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #8
  br label %926

855:                                              ; preds = %811, %806, %802
  %856 = landingpad { ptr, i32 }
          cleanup
  %857 = extractvalue { ptr, i32 } %856, 0
  store ptr %857, ptr %19, align 8
  %858 = extractvalue { ptr, i32 } %856, 1
  store i32 %858, ptr %20, align 4
  br label %863

859:                                              ; preds = %852, %847, %845, %840, %838, %835, %833, %826, %818
  %860 = landingpad { ptr, i32 }
          cleanup
  %861 = extractvalue { ptr, i32 } %860, 0
  store ptr %861, ptr %19, align 8
  %862 = extractvalue { ptr, i32 } %860, 1
  store i32 %862, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  br label %863

863:                                              ; preds = %859, %855
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #8
  br label %930

864:                                              ; preds = %793
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #8
  %865 = load i64, ptr %62, align 8, !tbaa !14
  %866 = getelementptr inbounds [596 x %"class.std::vector"], ptr %25, i64 0, i64 %865
  %867 = invoke ptr @_ZSt5beginISt6vectorIsSaIsEEEDTcldtfp_5beginEERT_(ptr noundef nonnull align 8 dereferenceable(24) %866)
          to label %868 unwind label %917

868:                                              ; preds = %864
  %869 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %70, i32 0, i32 0
  store ptr %867, ptr %869, align 8
  %870 = load i64, ptr %62, align 8, !tbaa !14
  %871 = getelementptr inbounds [596 x %"class.std::vector"], ptr %25, i64 0, i64 %870
  %872 = invoke ptr @_ZSt3endISt6vectorIsSaIsEEEDTcldtfp_3endEERT_(ptr noundef nonnull align 8 dereferenceable(24) %871)
          to label %873 unwind label %917

873:                                              ; preds = %868
  %874 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %71, i32 0, i32 0
  store ptr %872, ptr %874, align 8
  %875 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %70, i32 0, i32 0
  %876 = load ptr, ptr %875, align 8
  %877 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.29", ptr %71, i32 0, i32 0
  %878 = load ptr, ptr %877, align 8
  %879 = invoke { ptr, ptr } @_ZSt14minmax_elementIN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEEESt4pairIT_S8_ES8_S8_(ptr %876, ptr %878)
          to label %880 unwind label %917

880:                                              ; preds = %873
  %881 = getelementptr inbounds { ptr, ptr }, ptr %69, i32 0, i32 0
  %882 = extractvalue { ptr, ptr } %879, 0
  store ptr %882, ptr %881, align 8
  %883 = getelementptr inbounds { ptr, ptr }, ptr %69, i32 0, i32 1
  %884 = extractvalue { ptr, ptr } %879, 1
  store ptr %884, ptr %883, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  %885 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16) %69) #8
  store ptr %885, ptr %72, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  %886 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16) %69) #8
  store ptr %886, ptr %73, align 8, !tbaa !9
  %887 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.34)
          to label %888 unwind label %921

888:                                              ; preds = %880
  %889 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %890 = getelementptr inbounds %struct._cbSdkTrialCont, ptr %889, i32 0, i32 1
  %891 = load i64, ptr %62, align 8, !tbaa !14
  %892 = getelementptr inbounds [560 x i16], ptr %890, i64 0, i64 %891
  %893 = load i16, ptr %892, align 2, !tbaa !41
  %894 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8) %887, i16 noundef zeroext %893)
          to label %895 unwind label %921

895:                                              ; preds = %888
  %896 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %894, ptr noundef @.str.35)
          to label %897 unwind label %921

897:                                              ; preds = %895
  %898 = load i32, ptr %63, align 4, !tbaa !5
  %899 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %896, i32 noundef %898)
          to label %900 unwind label %921

900:                                              ; preds = %897
  %901 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %899, ptr noundef @.str.36)
          to label %902 unwind label %921

902:                                              ; preds = %900
  %903 = load ptr, ptr %72, align 8, !tbaa !9
  %904 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %903) #8
  %905 = load i16, ptr %904, align 2, !tbaa !41
  %906 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEs(ptr noundef nonnull align 8 dereferenceable(8) %901, i16 noundef signext %905)
          to label %907 unwind label %921

907:                                              ; preds = %902
  %908 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %906, ptr noundef @.str.37)
          to label %909 unwind label %921

909:                                              ; preds = %907
  %910 = load ptr, ptr %73, align 8, !tbaa !9
  %911 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %910) #8
  %912 = load i16, ptr %911, align 2, !tbaa !41
  %913 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEs(ptr noundef nonnull align 8 dereferenceable(8) %908, i16 noundef signext %912)
          to label %914 unwind label %921

914:                                              ; preds = %909
  %915 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %913, i8 noundef signext 10)
          to label %916 unwind label %921

916:                                              ; preds = %914
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #8
  br label %926

917:                                              ; preds = %873, %868, %864
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %19, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %20, align 4
  br label %925

921:                                              ; preds = %914, %909, %907, %902, %900, %897, %895, %888, %880
  %922 = landingpad { ptr, i32 }
          cleanup
  %923 = extractvalue { ptr, i32 } %922, 0
  store ptr %923, ptr %19, align 8
  %924 = extractvalue { ptr, i32 } %922, 1
  store i32 %924, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  br label %925

925:                                              ; preds = %921, %917
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #8
  br label %930

926:                                              ; preds = %916, %854
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %927

927:                                              ; preds = %926
  %928 = load i64, ptr %62, align 8, !tbaa !14
  %929 = add i64 %928, 1
  store i64 %929, ptr %62, align 8, !tbaa !14
  br label %785, !llvm.loop !52

930:                                              ; preds = %925, %863
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  br label %948

931:                                              ; preds = %792
  br label %932

932:                                              ; preds = %931, %779, %777
  br label %301, !llvm.loop !53

933:                                              ; preds = %315
  %934 = invoke noundef i32 @_Z9testClosev()
          to label %935 unwind label %347

935:                                              ; preds = %933
  store i32 %934, ptr %14, align 4, !tbaa !18
  %936 = load i32, ptr %14, align 4, !tbaa !18
  %937 = icmp slt i32 %936, 0
  br i1 %937, label %938, label %942

938:                                              ; preds = %935
  %939 = load i32, ptr %14, align 4, !tbaa !18
  %940 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.38, i32 noundef %939)
          to label %941 unwind label %347

941:                                              ; preds = %938
  br label %945

942:                                              ; preds = %935
  %943 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.39)
          to label %944 unwind label %347

944:                                              ; preds = %942
  br label %945

945:                                              ; preds = %944, %941
  store i32 0, ptr %3, align 4
  store i32 1, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  %946 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %29, i32 0, i32 0
  %947 = getelementptr inbounds %"class.std::vector.19", ptr %946, i64 596
  br label %952

948:                                              ; preds = %930, %775, %613, %506, %347
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  br label %949

949:                                              ; preds = %948, %343
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  %950 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %29, i32 0, i32 0
  %951 = getelementptr inbounds %"class.std::vector.19", ptr %950, i64 596
  br label %959

952:                                              ; preds = %952, %945
  %953 = phi ptr [ %947, %945 ], [ %954, %952 ]
  %954 = getelementptr inbounds %"class.std::vector.19", ptr %953, i64 -1
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %954) #8
  %955 = icmp eq ptr %954, %946
  br i1 %955, label %956, label %952

956:                                              ; preds = %952
  call void @llvm.lifetime.end.p0(i64 14304, ptr %29) #8
  %957 = getelementptr inbounds [596 x %"class.std::vector"], ptr %28, i32 0, i32 0
  %958 = getelementptr inbounds %"class.std::vector", ptr %957, i64 596
  br label %966

959:                                              ; preds = %959, %949
  %960 = phi ptr [ %951, %949 ], [ %961, %959 ]
  %961 = getelementptr inbounds %"class.std::vector.19", ptr %960, i64 -1
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %961) #8
  %962 = icmp eq ptr %961, %950
  br i1 %962, label %963, label %959

963:                                              ; preds = %959
  call void @llvm.lifetime.end.p0(i64 14304, ptr %29) #8
  %964 = getelementptr inbounds [596 x %"class.std::vector"], ptr %28, i32 0, i32 0
  %965 = getelementptr inbounds %"class.std::vector", ptr %964, i64 596
  br label %973

966:                                              ; preds = %966, %956
  %967 = phi ptr [ %958, %956 ], [ %968, %966 ]
  %968 = getelementptr inbounds %"class.std::vector", ptr %967, i64 -1
  call void @_ZNSt6vectorIsSaIsEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %968) #8
  %969 = icmp eq ptr %968, %957
  br i1 %969, label %970, label %966

970:                                              ; preds = %966
  call void @llvm.lifetime.end.p0(i64 14304, ptr %28) #8
  %971 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %27, i32 0, i32 0, i32 0
  %972 = getelementptr inbounds %"class.std::vector.24", ptr %971, i64 3576
  br label %980

973:                                              ; preds = %973, %963
  %974 = phi ptr [ %965, %963 ], [ %975, %973 ]
  %975 = getelementptr inbounds %"class.std::vector", ptr %974, i64 -1
  call void @_ZNSt6vectorIsSaIsEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %975) #8
  %976 = icmp eq ptr %975, %964
  br i1 %976, label %977, label %973

977:                                              ; preds = %973
  call void @llvm.lifetime.end.p0(i64 14304, ptr %28) #8
  %978 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %27, i32 0, i32 0, i32 0
  %979 = getelementptr inbounds %"class.std::vector.24", ptr %978, i64 3576
  br label %987

980:                                              ; preds = %980, %970
  %981 = phi ptr [ %972, %970 ], [ %982, %980 ]
  %982 = getelementptr inbounds %"class.std::vector.24", ptr %981, i64 -1
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %982) #8
  %983 = icmp eq ptr %982, %971
  br i1 %983, label %984, label %980

984:                                              ; preds = %980
  call void @llvm.lifetime.end.p0(i64 85824, ptr %27) #8
  %985 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %26, i32 0, i32 0
  %986 = getelementptr inbounds %"class.std::vector.19", ptr %985, i64 596
  br label %994

987:                                              ; preds = %987, %977
  %988 = phi ptr [ %979, %977 ], [ %989, %987 ]
  %989 = getelementptr inbounds %"class.std::vector.24", ptr %988, i64 -1
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %989) #8
  %990 = icmp eq ptr %989, %978
  br i1 %990, label %991, label %987

991:                                              ; preds = %987
  call void @llvm.lifetime.end.p0(i64 85824, ptr %27) #8
  %992 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %26, i32 0, i32 0
  %993 = getelementptr inbounds %"class.std::vector.19", ptr %992, i64 596
  br label %1001

994:                                              ; preds = %994, %984
  %995 = phi ptr [ %986, %984 ], [ %996, %994 ]
  %996 = getelementptr inbounds %"class.std::vector.19", ptr %995, i64 -1
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %996) #8
  %997 = icmp eq ptr %996, %985
  br i1 %997, label %998, label %994

998:                                              ; preds = %994
  call void @llvm.lifetime.end.p0(i64 14304, ptr %26) #8
  %999 = getelementptr inbounds [596 x %"class.std::vector"], ptr %25, i32 0, i32 0
  %1000 = getelementptr inbounds %"class.std::vector", ptr %999, i64 596
  br label %1008

1001:                                             ; preds = %1001, %991
  %1002 = phi ptr [ %993, %991 ], [ %1003, %1001 ]
  %1003 = getelementptr inbounds %"class.std::vector.19", ptr %1002, i64 -1
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1003) #8
  %1004 = icmp eq ptr %1003, %992
  br i1 %1004, label %1005, label %1001

1005:                                             ; preds = %1001
  call void @llvm.lifetime.end.p0(i64 14304, ptr %26) #8
  %1006 = getelementptr inbounds [596 x %"class.std::vector"], ptr %25, i32 0, i32 0
  %1007 = getelementptr inbounds %"class.std::vector", ptr %1006, i64 596
  br label %1013

1008:                                             ; preds = %1008, %998
  %1009 = phi ptr [ %1000, %998 ], [ %1010, %1008 ]
  %1010 = getelementptr inbounds %"class.std::vector", ptr %1009, i64 -1
  call void @_ZNSt6vectorIsSaIsEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1010) #8
  %1011 = icmp eq ptr %1010, %999
  br i1 %1011, label %1012, label %1008

1012:                                             ; preds = %1008
  call void @llvm.lifetime.end.p0(i64 14304, ptr %25) #8
  call void @_ZNSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @_ZNSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @_ZNSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 60, ptr %16) #8
  br label %1021

1013:                                             ; preds = %1013, %1005
  %1014 = phi ptr [ %1007, %1005 ], [ %1015, %1013 ]
  %1015 = getelementptr inbounds %"class.std::vector", ptr %1014, i64 -1
  call void @_ZNSt6vectorIsSaIsEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1015) #8
  %1016 = icmp eq ptr %1015, %1006
  br i1 %1016, label %1017, label %1013

1017:                                             ; preds = %1013
  call void @llvm.lifetime.end.p0(i64 14304, ptr %25) #8
  br label %1018

1018:                                             ; preds = %1017, %259
  call void @_ZNSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %1019

1019:                                             ; preds = %1018, %249
  call void @_ZNSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %1020

1020:                                             ; preds = %1019, %239
  call void @_ZNSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 60, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  br label %1023

1021:                                             ; preds = %1012, %167
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  %1022 = load i32, ptr %3, align 4
  ret i32 %1022

1023:                                             ; preds = %1020
  %1024 = load ptr, ptr %19, align 8
  %1025 = load i32, ptr %20, align 4
  %1026 = insertvalue { ptr, i32 } poison, ptr %1024, 0
  %1027 = insertvalue { ptr, i32 } %1026, i32 %1025, 1
  resume { ptr, i32 } %1027
}

; Function Attrs: nounwind
declare i64 @strtol(ptr noundef, ptr noundef, i32 noundef) #4

declare i32 @cbSdkGetTrialConfig(i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #0

declare i32 @cbSdkSetTrialConfig(i32 noundef, i32 noundef, i16 noundef zeroext, i32 noundef, i32 noundef, i16 noundef zeroext, i32 noundef, i32 noundef, i1 noundef zeroext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i1 noundef zeroext) #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI16_cbSdkTrialEventJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr") align 8) #6

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI15_cbSdkTrialContJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.3") align 8) #6

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI18_cbSdkTrialCommentJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.11") align 8) #6

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

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

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

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

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

declare i32 @cbSdkGetTime(i32 noundef, ptr noundef) #0

declare i32 @cbSdkInitTrialData(i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) #0

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEiEvT_S7_RKT0_(ptr, ptr, ptr noundef nonnull align 4 dereferenceable(4)) #6

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

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

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

declare i32 @cbSdkIsChanAnyDigIn(i32 noundef, i16 noundef zeroext, ptr noundef) #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEEiEvT_S7_RKT0_(ptr, ptr, ptr noundef nonnull align 4 dereferenceable(4)) #6

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEiEvT_S7_RKT0_(ptr, ptr, ptr noundef nonnull align 4 dereferenceable(4)) #6

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

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

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

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

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

declare i32 @cbSdkGetTrialData(i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #0

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, ptr } @_ZSt14minmax_elementIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEESt4pairIT_S8_ES8_S8_(ptr, ptr) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local ptr @_ZSt5beginISt6vectorIdSaIdEEEDTcldtfp_5beginEERT_(ptr noundef nonnull align 8 dereferenceable(24)) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local ptr @_ZSt3endISt6vectorIdSaIdEEEDTcldtfp_3endEERT_(ptr noundef nonnull align 8 dereferenceable(24)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16)) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) #6

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8), i16 noundef zeroext) #2 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, ptr } @_ZSt14minmax_elementIN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEEESt4pairIT_S8_ES8_S8_(ptr, ptr) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local ptr @_ZSt5beginISt6vectorIsSaIsEEEDTcldtfp_5beginEERT_(ptr noundef nonnull align 8 dereferenceable(24)) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local ptr @_ZSt3endISt6vectorIsSaIsEEEDTcldtfp_3endEERT_(ptr noundef nonnull align 8 dereferenceable(24)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16)) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16)) #5

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEs(ptr noundef nonnull align 8 dereferenceable(8), i16 noundef signext) #0

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"long", !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = !{!19, !19, i64 0}
!19 = !{!"_ZTS12_cbSdkResult", !7, i64 0}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = !{!23, !6, i64 4}
!23 = !{!"_ZTS13_cbsdk_config", !6, i64 0, !6, i64 4, !24, i64 8, !6, i64 12, !6, i64 16, !24, i64 20, !6, i64 24, !6, i64 28, !12, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52, !12, i64 56}
!24 = !{!"short", !7, i64 0}
!25 = !{!23, !6, i64 40}
!26 = !{!23, !6, i64 44}
!27 = !{!23, !24, i64 8}
!28 = !{!23, !6, i64 12}
!29 = !{!23, !6, i64 16}
!30 = !{!23, !24, i64 20}
!31 = !{!23, !6, i64 24}
!32 = !{!23, !6, i64 28}
!33 = !{!23, !12, i64 32}
!34 = !{!23, !6, i64 36}
!35 = !{!23, !6, i64 48}
!36 = !{!23, !6, i64 52}
!37 = !{!23, !12, i64 56}
!38 = !{!39, !24, i64 0}
!39 = !{!"_ZTS16_cbSdkTrialEvent", !24, i64 0, !7, i64 2, !7, i64 1196, !7, i64 15504, !7, i64 44112}
!40 = distinct !{!40, !17}
!41 = !{!24, !24, i64 0}
!42 = distinct !{!42, !17}
!43 = !{!44, !24, i64 0}
!44 = !{!"_ZTS15_cbSdkTrialCont", !24, i64 0, !7, i64 2, !7, i64 1122, !7, i64 2244, !6, i64 4484, !7, i64 4488}
!45 = distinct !{!45, !17}
!46 = distinct !{!46, !17}
!47 = !{!48, !48, i64 0}
!48 = !{!"double", !7, i64 0}
!49 = distinct !{!49, !17}
!50 = distinct !{!50, !17}
!51 = distinct !{!51, !17}
!52 = distinct !{!52, !17}
!53 = distinct !{!53, !17}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%struct._cbsdk_config = type { i32, i32, i16, i32, i32, i16, i32, i32, i8, i32, i32, i32, i32, i32, i8 }
%"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.2" }
%"struct.std::_Head_base.2" = type { ptr }
%"class.std::unique_ptr.3" = type { %"struct.std::__uniq_ptr_data.4" }
%"struct.std::__uniq_ptr_data.4" = type { %"class.std::__uniq_ptr_impl.5" }
%"class.std::__uniq_ptr_impl.5" = type { %"class.std::tuple.6" }
%"class.std::tuple.6" = type { %"struct.std::_Tuple_impl.7" }
%"struct.std::_Tuple_impl.7" = type { %"struct.std::_Head_base.10" }
%"struct.std::_Head_base.10" = type { ptr }
%"class.std::unique_ptr.11" = type { %"struct.std::__uniq_ptr_data.12" }
%"struct.std::__uniq_ptr_data.12" = type { %"class.std::__uniq_ptr_impl.13" }
%"class.std::__uniq_ptr_impl.13" = type { %"class.std::tuple.14" }
%"class.std::tuple.14" = type { %"struct.std::_Tuple_impl.15" }
%"struct.std::_Tuple_impl.15" = type { %"struct.std::_Head_base.18" }
%"struct.std::_Head_base.18" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl" }
%"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl" = type { %"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl_data" }
%"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.24" = type { %"struct.std::_Vector_base.25" }
%"struct.std::_Vector_base.25" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { %"class.__gnu_cxx::__normal_iterator.30", %"class.__gnu_cxx::__normal_iterator.30" }
%"class.__gnu_cxx::__normal_iterator.30" = type { ptr }
%"struct.std::pair.31" = type { %"class.__gnu_cxx::__normal_iterator.29", %"class.__gnu_cxx::__normal_iterator.29" }
%"class.__gnu_cxx::__normal_iterator.29" = type { ptr }

@.str.26 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.34 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [21 x i8], align 1

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z8testOpenPKciS0_(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13testSetConfigbb(i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z9testClosev() local_unnamed_addr #2

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %3 = alloca %struct._cbsdk_config, align 4
  %4 = alloca %"class.std::unique_ptr", align 8
  %5 = alloca %"class.std::unique_ptr", align 8
  %6 = alloca %"class.std::unique_ptr.3", align 8
  %7 = alloca %"class.std::unique_ptr.3", align 8
  %8 = alloca %"class.std::unique_ptr.11", align 8
  %9 = alloca [596 x %"class.std::vector"], align 16
  %10 = alloca [596 x %"class.std::vector.19"], align 16
  %11 = alloca [596 x [6 x %"class.std::vector.24"]], align 16
  %12 = alloca [596 x %"class.std::vector"], align 16
  %13 = alloca [596 x %"class.std::vector.19"], align 16
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %"struct.std::pair", align 8
  %24 = alloca %"struct.std::pair.31", align 8
  %25 = icmp sgt i32 %0, 1
  br i1 %25, label %26, label %.thread230

26:                                               ; preds = %2
  %27 = getelementptr inbounds i8, ptr %1, i64 8
  %28 = load ptr, ptr %27, align 8, !tbaa !5
  %29 = load i8, ptr %28, align 1, !tbaa !9
  %.not = icmp eq i8 %29, 45
  %spec.select = select i1 %.not, ptr @.str.26, ptr %28
  %.not235 = icmp eq i32 %0, 2
  br i1 %.not235, label %.thread230.thread, label %30

30:                                               ; preds = %26
  %31 = getelementptr inbounds i8, ptr %1, i64 16
  %32 = load ptr, ptr %31, align 8, !tbaa !5
  %33 = load i8, ptr %32, align 1, !tbaa !9
  %.not184 = icmp eq i8 %33, 45
  br i1 %.not184, label %37, label %34

34:                                               ; preds = %30
  %35 = tail call i64 @strtol(ptr nocapture noundef nonnull %32, ptr noundef null, i32 noundef 10) #9
  %36 = trunc i64 %35 to i32
  br label %37

37:                                               ; preds = %34, %30
  %.0136 = phi i32 [ %36, %34 ], [ 51001, %30 ]
  %38 = icmp ugt i32 %0, 3
  br i1 %38, label %39, label %.thread230.thread

39:                                               ; preds = %37
  %40 = getelementptr inbounds i8, ptr %1, i64 24
  %41 = load ptr, ptr %40, align 8, !tbaa !5
  %42 = load i8, ptr %41, align 1, !tbaa !9
  %.not185 = icmp eq i8 %42, 45
  %spec.select227 = select i1 %.not185, ptr @.str.26, ptr %41
  br label %.thread230.thread

.thread230.thread:                                ; preds = %26, %39, %37
  %.0136234.ph = phi i32 [ 51001, %26 ], [ %.0136, %39 ], [ %.0136, %37 ]
  %.0137.ph = phi ptr [ @.str.26, %26 ], [ %spec.select227, %39 ], [ @.str.26, %37 ]
  %43 = zext nneg i32 %0 to i64
  br label %.lr.ph.preheader

.thread230:                                       ; preds = %2
  %44 = sext i32 %0 to i64
  %45 = icmp ugt i32 %0, 1
  br i1 %45, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %.thread230.thread, %.thread230
  %46 = phi i64 [ %43, %.thread230.thread ], [ %44, %.thread230 ]
  %.0137298 = phi ptr [ %.0137.ph, %.thread230.thread ], [ @.str.26, %.thread230 ]
  %.0135229233296 = phi ptr [ %spec.select, %.thread230.thread ], [ @.str.26, %.thread230 ]
  %.0136234294 = phi i32 [ %.0136234.ph, %.thread230.thread ], [ 51001, %.thread230 ]
  %47 = add nsw i64 %46, -1
  %xtraiter = and i64 %47, 1
  %48 = icmp eq i64 %46, 2
  br i1 %48, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %47, -2
  %invariant.gep = getelementptr i8, ptr %1, i64 8
  br label %.lr.ph

.lr.ph:                                           ; preds = %78, %.lr.ph.preheader.new
  %.0138253 = phi i1 [ false, %.lr.ph.preheader.new ], [ %.1.1, %78 ]
  %.0139252 = phi i1 [ false, %.lr.ph.preheader.new ], [ %.1140.1, %78 ]
  %.0141251 = phi i32 [ 30000, %.lr.ph.preheader.new ], [ %.1142.1, %78 ]
  %.0143250 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %79, %78 ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %78 ]
  %49 = getelementptr inbounds ptr, ptr %1, i64 %.0143250
  %50 = load ptr, ptr %49, align 8, !tbaa !5
  %51 = load i8, ptr %50, align 1, !tbaa !9
  %52 = icmp eq i8 %51, 45
  br i1 %52, label %53, label %.lr.ph.1

53:                                               ; preds = %.lr.ph
  %54 = getelementptr inbounds i8, ptr %50, i64 1
  %55 = load i8, ptr %54, align 1, !tbaa !9
  switch i8 %55, label %.lr.ph.1 [
    i8 99, label %56
    i8 101, label %57
    i8 114, label %58
  ]

56:                                               ; preds = %53
  br label %.lr.ph.1

57:                                               ; preds = %53
  br label %.lr.ph.1

58:                                               ; preds = %53
  %59 = getelementptr inbounds i8, ptr %50, i64 2
  %60 = load i8, ptr %59, align 1, !tbaa !9
  %61 = sext i8 %60 to i32
  %62 = mul nsw i32 %61, 30000
  %63 = add nsw i32 %62, -1440000
  br label %.lr.ph.1

.lr.ph.1:                                         ; preds = %.lr.ph, %58, %57, %56, %53
  %.1142 = phi i32 [ %.0141251, %53 ], [ %63, %58 ], [ %.0141251, %57 ], [ %.0141251, %56 ], [ %.0141251, %.lr.ph ]
  %.1140 = phi i1 [ %.0139252, %53 ], [ %.0139252, %58 ], [ true, %57 ], [ %.0139252, %56 ], [ %.0139252, %.lr.ph ]
  %.1 = phi i1 [ %.0138253, %53 ], [ %.0138253, %58 ], [ %.0138253, %57 ], [ true, %56 ], [ %.0138253, %.lr.ph ]
  %gep = getelementptr ptr, ptr %invariant.gep, i64 %.0143250
  %64 = load ptr, ptr %gep, align 8, !tbaa !5
  %65 = load i8, ptr %64, align 1, !tbaa !9
  %66 = icmp eq i8 %65, 45
  br i1 %66, label %67, label %78

67:                                               ; preds = %.lr.ph.1
  %68 = getelementptr inbounds i8, ptr %64, i64 1
  %69 = load i8, ptr %68, align 1, !tbaa !9
  switch i8 %69, label %78 [
    i8 99, label %77
    i8 101, label %76
    i8 114, label %70
  ]

70:                                               ; preds = %67
  %71 = getelementptr inbounds i8, ptr %64, i64 2
  %72 = load i8, ptr %71, align 1, !tbaa !9
  %73 = sext i8 %72 to i32
  %74 = mul nsw i32 %73, 30000
  %75 = add nsw i32 %74, -1440000
  br label %78

76:                                               ; preds = %67
  br label %78

77:                                               ; preds = %67
  br label %78

78:                                               ; preds = %77, %76, %70, %67, %.lr.ph.1
  %.1142.1 = phi i32 [ %.1142, %67 ], [ %75, %70 ], [ %.1142, %76 ], [ %.1142, %77 ], [ %.1142, %.lr.ph.1 ]
  %.1140.1 = phi i1 [ %.1140, %67 ], [ %.1140, %70 ], [ true, %76 ], [ %.1140, %77 ], [ %.1140, %.lr.ph.1 ]
  %.1.1 = phi i1 [ %.1, %67 ], [ %.1, %70 ], [ %.1, %76 ], [ true, %77 ], [ %.1, %.lr.ph.1 ]
  %79 = add nuw i64 %.0143250, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !10

._crit_edge.loopexit.unr-lcssa:                   ; preds = %78, %.lr.ph.preheader
  %.1142.lcssa.ph = phi i32 [ poison, %.lr.ph.preheader ], [ %.1142.1, %78 ]
  %.1140.lcssa.ph = phi i1 [ poison, %.lr.ph.preheader ], [ %.1140.1, %78 ]
  %.1.lcssa.ph = phi i1 [ poison, %.lr.ph.preheader ], [ %.1.1, %78 ]
  %.0138253.unr = phi i1 [ false, %.lr.ph.preheader ], [ %.1.1, %78 ]
  %.0139252.unr = phi i1 [ false, %.lr.ph.preheader ], [ %.1140.1, %78 ]
  %.0141251.unr = phi i32 [ 30000, %.lr.ph.preheader ], [ %.1142.1, %78 ]
  %.0143250.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %79, %78 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %._crit_edge.loopexit.unr-lcssa
  %80 = getelementptr inbounds ptr, ptr %1, i64 %.0143250.unr
  %81 = load ptr, ptr %80, align 8, !tbaa !5
  %82 = load i8, ptr %81, align 1, !tbaa !9
  %83 = icmp eq i8 %82, 45
  br i1 %83, label %84, label %._crit_edge

84:                                               ; preds = %.lr.ph.epil
  %85 = getelementptr inbounds i8, ptr %81, i64 1
  %86 = load i8, ptr %85, align 1, !tbaa !9
  switch i8 %86, label %._crit_edge [
    i8 99, label %94
    i8 101, label %93
    i8 114, label %87
  ]

87:                                               ; preds = %84
  %88 = getelementptr inbounds i8, ptr %81, i64 2
  %89 = load i8, ptr %88, align 1, !tbaa !9
  %90 = sext i8 %89 to i32
  %91 = mul nsw i32 %90, 30000
  %92 = add nsw i32 %91, -1440000
  br label %._crit_edge

93:                                               ; preds = %84
  br label %._crit_edge

94:                                               ; preds = %84
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %94, %93, %87, %84, %.lr.ph.epil, %.thread230
  %.0137297 = phi ptr [ @.str.26, %.thread230 ], [ %.0137298, %.lr.ph.epil ], [ %.0137298, %84 ], [ %.0137298, %87 ], [ %.0137298, %93 ], [ %.0137298, %94 ], [ %.0137298, %._crit_edge.loopexit.unr-lcssa ]
  %.0135229233295 = phi ptr [ @.str.26, %.thread230 ], [ %.0135229233296, %.lr.ph.epil ], [ %.0135229233296, %84 ], [ %.0135229233296, %87 ], [ %.0135229233296, %93 ], [ %.0135229233296, %94 ], [ %.0135229233296, %._crit_edge.loopexit.unr-lcssa ]
  %.0136234293 = phi i32 [ 51001, %.thread230 ], [ %.0136234294, %.lr.ph.epil ], [ %.0136234294, %84 ], [ %.0136234294, %87 ], [ %.0136234294, %93 ], [ %.0136234294, %94 ], [ %.0136234294, %._crit_edge.loopexit.unr-lcssa ]
  %.0141.lcssa = phi i32 [ 30000, %.thread230 ], [ %.1142.lcssa.ph, %._crit_edge.loopexit.unr-lcssa ], [ %.0141251.unr, %84 ], [ %92, %87 ], [ %.0141251.unr, %93 ], [ %.0141251.unr, %94 ], [ %.0141251.unr, %.lr.ph.epil ]
  %.0139.lcssa = phi i1 [ false, %.thread230 ], [ %.1140.lcssa.ph, %._crit_edge.loopexit.unr-lcssa ], [ %.0139252.unr, %84 ], [ %.0139252.unr, %87 ], [ true, %93 ], [ %.0139252.unr, %94 ], [ %.0139252.unr, %.lr.ph.epil ]
  %.0138.lcssa = phi i1 [ false, %.thread230 ], [ %.1.lcssa.ph, %._crit_edge.loopexit.unr-lcssa ], [ %.0138253.unr, %84 ], [ %.0138253.unr, %87 ], [ %.0138253.unr, %93 ], [ true, %94 ], [ %.0138253.unr, %.lr.ph.epil ]
  %95 = tail call noundef i32 @_Z8testOpenPKciS0_(ptr noundef nonnull %.0135229233295, i32 noundef %.0136234293, ptr noundef nonnull %.0137297)
  %96 = icmp slt i32 %95, 0
  br i1 %96, label %97, label %99

97:                                               ; preds = %._crit_edge
  %98 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.27, i32 noundef %95)
  br label %642

99:                                               ; preds = %._crit_edge
  %100 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.28)
  tail call void @_Z13testSetConfigbb(i1 noundef zeroext %.0138.lcssa, i1 noundef zeroext %.0139.lcssa)
  call void @llvm.lifetime.start.p0(i64 60, ptr nonnull %3) #9
  %101 = getelementptr inbounds i8, ptr %3, i64 4
  %102 = getelementptr inbounds i8, ptr %3, i64 8
  %103 = getelementptr inbounds i8, ptr %3, i64 12
  %104 = getelementptr inbounds i8, ptr %3, i64 16
  %105 = getelementptr inbounds i8, ptr %3, i64 20
  %106 = getelementptr inbounds i8, ptr %3, i64 24
  %107 = getelementptr inbounds i8, ptr %3, i64 28
  %108 = getelementptr inbounds i8, ptr %3, i64 32
  %109 = getelementptr inbounds i8, ptr %3, i64 36
  %110 = getelementptr inbounds i8, ptr %3, i64 40
  %111 = getelementptr inbounds i8, ptr %3, i64 44
  %112 = getelementptr inbounds i8, ptr %3, i64 48
  %113 = getelementptr inbounds i8, ptr %3, i64 52
  %114 = getelementptr inbounds i8, ptr %3, i64 56
  %115 = call i32 @cbSdkGetTrialConfig(i32 noundef 0, ptr noundef nonnull %101, ptr noundef nonnull %102, ptr noundef nonnull %103, ptr noundef nonnull %104, ptr noundef nonnull %105, ptr noundef nonnull %106, ptr noundef nonnull %107, ptr noundef nonnull %108, ptr noundef nonnull %109, ptr noundef nonnull %110, ptr noundef nonnull %111, ptr noundef nonnull %112, ptr noundef nonnull %113, ptr noundef nonnull %114)
  store i32 1, ptr %101, align 4, !tbaa !12
  %116 = select i1 %.0138.lcssa, i32 102400, i32 0
  store i32 %116, ptr %110, align 4, !tbaa !17
  %117 = select i1 %.0139.lcssa, i32 16384, i32 0
  store i32 %117, ptr %111, align 4, !tbaa !18
  %118 = load i16, ptr %102, align 4, !tbaa !19
  %119 = load i32, ptr %103, align 4, !tbaa !20
  %120 = load i32, ptr %104, align 4, !tbaa !21
  %121 = load i16, ptr %105, align 4, !tbaa !22
  %122 = load i32, ptr %106, align 4, !tbaa !23
  %123 = load i32, ptr %107, align 4, !tbaa !24
  %124 = load i8, ptr %108, align 4, !tbaa !25, !range !26, !noundef !27
  %125 = trunc nuw i8 %124 to i1
  %126 = load i32, ptr %109, align 4, !tbaa !28
  %127 = load i32, ptr %112, align 4, !tbaa !29
  %128 = load i32, ptr %113, align 4, !tbaa !30
  %129 = load i8, ptr %114, align 4, !tbaa !31, !range !26, !noundef !27
  %130 = trunc nuw i8 %129 to i1
  %131 = call i32 @cbSdkSetTrialConfig(i32 noundef 0, i32 noundef 1, i16 noundef zeroext %118, i32 noundef %119, i32 noundef %120, i16 noundef zeroext %121, i32 noundef %122, i32 noundef %123, i1 noundef zeroext %125, i32 noundef %126, i32 noundef %116, i32 noundef %117, i32 noundef %127, i32 noundef %128, i1 noundef zeroext %130)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  call void @_ZNSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEC2IS2_vEEDn(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr null) #9
  br i1 %.0139.lcssa, label %132, label %137

132:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  invoke void @_ZSt11make_uniqueI16_cbSdkTrialEventJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr") align 8 %5)
          to label %133 unwind label %135

133:                                              ; preds = %132
  %134 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEaSEOS3_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5) #9
  call void @_ZNSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  br label %137

135:                                              ; preds = %132
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  br label %641

137:                                              ; preds = %133, %99
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  call void @_ZNSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEC2IS2_vEEDn(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr null) #9
  br i1 %.0138.lcssa, label %138, label %143

138:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  invoke void @_ZSt11make_uniqueI15_cbSdkTrialContJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.3") align 8 %7)
          to label %139 unwind label %141

139:                                              ; preds = %138
  %140 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEaSEOS3_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  call void @_ZNSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  br label %143

141:                                              ; preds = %138
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  br label %640

143:                                              ; preds = %139, %137
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  call void @_ZNSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EEC2IS2_vEEDn(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr null) #9
  call void @llvm.lifetime.start.p0(i64 14304, ptr nonnull %9) #9
  br label %144

144:                                              ; preds = %144, %143
  %.idx = phi i64 [ 0, %143 ], [ %.add, %144 ]
  %.ptr = getelementptr inbounds i8, ptr %9, i64 %.idx
  call void @_ZNSt6vectorIsSaIsEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr) #9
  %.add = add nuw nsw i64 %.idx, 24
  %145 = icmp eq i64 %.add, 14304
  br i1 %145, label %146, label %144

146:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 14304, ptr nonnull %10) #9
  br label %147

147:                                              ; preds = %147, %146
  %.idx187 = phi i64 [ 0, %146 ], [ %.add188, %147 ]
  %.ptr189 = getelementptr inbounds i8, ptr %10, i64 %.idx187
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr189) #9
  %.add188 = add nuw nsw i64 %.idx187, 24
  %148 = icmp eq i64 %.add188, 14304
  br i1 %148, label %149, label %147

149:                                              ; preds = %147
  %150 = getelementptr inbounds i8, ptr %9, i64 14304
  call void @llvm.lifetime.start.p0(i64 85824, ptr nonnull %11) #9
  br label %151

151:                                              ; preds = %151, %149
  %.idx191 = phi i64 [ 0, %149 ], [ %.add192, %151 ]
  %.ptr193 = getelementptr inbounds i8, ptr %11, i64 %.idx191
  call void @_ZNSt6vectorIjSaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr193) #9
  %.add192 = add nuw nsw i64 %.idx191, 24
  %152 = icmp eq i64 %.add192, 85824
  br i1 %152, label %153, label %151

153:                                              ; preds = %151
  %154 = getelementptr inbounds i8, ptr %10, i64 14304
  call void @llvm.lifetime.start.p0(i64 14304, ptr nonnull %12) #9
  br label %155

155:                                              ; preds = %155, %153
  %.idx195 = phi i64 [ 0, %153 ], [ %.add196, %155 ]
  %.ptr197 = getelementptr inbounds i8, ptr %12, i64 %.idx195
  call void @_ZNSt6vectorIsSaIsEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr197) #9
  %.add196 = add nuw nsw i64 %.idx195, 24
  %156 = icmp eq i64 %.add196, 14304
  br i1 %156, label %157, label %155

157:                                              ; preds = %155
  %158 = getelementptr inbounds i8, ptr %11, i64 85824
  call void @llvm.lifetime.start.p0(i64 14304, ptr nonnull %13) #9
  br label %159

159:                                              ; preds = %159, %157
  %.idx199 = phi i64 [ 0, %157 ], [ %.add200, %159 ]
  %.ptr201 = getelementptr inbounds i8, ptr %13, i64 %.idx199
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %.ptr201) #9
  %.add200 = add nuw nsw i64 %.idx199, 24
  %160 = icmp eq i64 %.add200, 14304
  br i1 %160, label %161, label %159

161:                                              ; preds = %159
  %162 = getelementptr inbounds i8, ptr %12, i64 14304
  %163 = getelementptr inbounds i8, ptr %13, i64 14304
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  store i64 0, ptr %15, align 8, !tbaa !32
  %164 = invoke i32 @cbSdkGetTime(i32 noundef 0, ptr noundef nonnull %14)
          to label %.preheader248 unwind label %195

.preheader248:                                    ; preds = %161
  %165 = icmp eq i32 %.0141.lcssa, 0
  %166 = zext i32 %.0141.lcssa to i64
  %167 = load i64, ptr %15, align 8
  %168 = icmp ult i64 %167, %166
  %169 = select i1 %165, i1 true, i1 %168
  br i1 %169, label %.lr.ph270, label %.critedge

.lr.ph270:                                        ; preds = %.preheader248
  %170 = getelementptr inbounds i8, ptr %24, i64 8
  %171 = getelementptr inbounds i8, ptr %23, i64 8
  br label %172

172:                                              ; preds = %.lr.ph270, %.loopexit241
  %173 = invoke i32 @cbSdkGetTime(i32 noundef 0, ptr noundef nonnull %15)
          to label %174 unwind label %.loopexit249

174:                                              ; preds = %172
  %175 = load i64, ptr %14, align 8, !tbaa !32
  %176 = load i64, ptr %15, align 8, !tbaa !32
  %177 = sub i64 %176, %175
  store i64 %177, ptr %15, align 8, !tbaa !32
  %178 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %179 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %180 = call noundef ptr @_ZNKSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  %181 = invoke i32 @cbSdkInitTrialData(i32 noundef 0, i32 noundef 0, ptr noundef %178, ptr noundef %179, ptr noundef %180, ptr noundef null, i64 noundef 250)
          to label %182 unwind label %.loopexit249

182:                                              ; preds = %174
  %183 = call noundef zeroext i1 @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  br i1 %183, label %184, label %.loopexit247

184:                                              ; preds = %182
  %185 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %186 = load i16, ptr %185, align 8, !tbaa !34
  %.not203 = icmp eq i16 %186, 0
  br i1 %.not203, label %.loopexit247, label %.preheader246

.preheader246:                                    ; preds = %184
  %187 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %188 = load i16, ptr %187, align 8, !tbaa !34
  %.not271 = icmp eq i16 %188, 0
  br i1 %.not271, label %.loopexit247, label %.preheader239

.preheader239:                                    ; preds = %.preheader246, %319
  %.0164257 = phi i64 [ %320, %319 ], [ 0, %.preheader246 ]
  %189 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %190 = getelementptr inbounds i8, ptr %189, i64 1196
  %191 = getelementptr inbounds [596 x [6 x i32]], ptr %190, i64 0, i64 %.0164257, i64 0
  %192 = load i32, ptr %191, align 4, !tbaa !36
  %193 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0164257, i64 0
  %194 = zext i32 %192 to i64
  invoke void @_ZNSt6vectorIjSaIjEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %193, i64 noundef %194)
          to label %197 unwind label %280

195:                                              ; preds = %161
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %589

.loopexit249:                                     ; preds = %172, %174, %.loopexit245
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %589

.loopexit.split-lp:                               ; preds = %.critedge
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %589

197:                                              ; preds = %.preheader239
  %198 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %193) #9
  %199 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %193) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #9
  store i32 0, ptr %16, align 4, !tbaa !36
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEiEvT_S7_RKT0_(ptr %198, ptr %199, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %200 unwind label %282

200:                                              ; preds = %197
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #9
  %201 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %193) #9
  %202 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %203 = getelementptr inbounds i8, ptr %202, i64 15504
  %204 = getelementptr inbounds [596 x [6 x ptr]], ptr %203, i64 0, i64 %.0164257, i64 0
  store ptr %201, ptr %204, align 8, !tbaa !5
  %205 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %206 = getelementptr inbounds i8, ptr %205, i64 1196
  %207 = getelementptr inbounds [596 x [6 x i32]], ptr %206, i64 0, i64 %.0164257, i64 1
  %208 = load i32, ptr %207, align 4, !tbaa !36
  %209 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0164257, i64 1
  %210 = zext i32 %208 to i64
  invoke void @_ZNSt6vectorIjSaIjEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %210)
          to label %211 unwind label %280

211:                                              ; preds = %200
  %212 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %209) #9
  %213 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %209) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #9
  store i32 0, ptr %16, align 4, !tbaa !36
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEiEvT_S7_RKT0_(ptr %212, ptr %213, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %214 unwind label %282

214:                                              ; preds = %211
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #9
  %215 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %209) #9
  %216 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %217 = getelementptr inbounds i8, ptr %216, i64 15504
  %218 = getelementptr inbounds [596 x [6 x ptr]], ptr %217, i64 0, i64 %.0164257, i64 1
  store ptr %215, ptr %218, align 8, !tbaa !5
  %219 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %220 = getelementptr inbounds i8, ptr %219, i64 1196
  %221 = getelementptr inbounds [596 x [6 x i32]], ptr %220, i64 0, i64 %.0164257, i64 2
  %222 = load i32, ptr %221, align 4, !tbaa !36
  %223 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0164257, i64 2
  %224 = zext i32 %222 to i64
  invoke void @_ZNSt6vectorIjSaIjEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %223, i64 noundef %224)
          to label %225 unwind label %280

225:                                              ; preds = %214
  %226 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %223) #9
  %227 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %223) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #9
  store i32 0, ptr %16, align 4, !tbaa !36
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEiEvT_S7_RKT0_(ptr %226, ptr %227, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %228 unwind label %282

228:                                              ; preds = %225
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #9
  %229 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %223) #9
  %230 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %231 = getelementptr inbounds i8, ptr %230, i64 15504
  %232 = getelementptr inbounds [596 x [6 x ptr]], ptr %231, i64 0, i64 %.0164257, i64 2
  store ptr %229, ptr %232, align 8, !tbaa !5
  %233 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %234 = getelementptr inbounds i8, ptr %233, i64 1196
  %235 = getelementptr inbounds [596 x [6 x i32]], ptr %234, i64 0, i64 %.0164257, i64 3
  %236 = load i32, ptr %235, align 4, !tbaa !36
  %237 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0164257, i64 3
  %238 = zext i32 %236 to i64
  invoke void @_ZNSt6vectorIjSaIjEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %237, i64 noundef %238)
          to label %239 unwind label %280

239:                                              ; preds = %228
  %240 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %237) #9
  %241 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %237) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #9
  store i32 0, ptr %16, align 4, !tbaa !36
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEiEvT_S7_RKT0_(ptr %240, ptr %241, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %242 unwind label %282

242:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #9
  %243 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %237) #9
  %244 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %245 = getelementptr inbounds i8, ptr %244, i64 15504
  %246 = getelementptr inbounds [596 x [6 x ptr]], ptr %245, i64 0, i64 %.0164257, i64 3
  store ptr %243, ptr %246, align 8, !tbaa !5
  %247 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %248 = getelementptr inbounds i8, ptr %247, i64 1196
  %249 = getelementptr inbounds [596 x [6 x i32]], ptr %248, i64 0, i64 %.0164257, i64 4
  %250 = load i32, ptr %249, align 4, !tbaa !36
  %251 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0164257, i64 4
  %252 = zext i32 %250 to i64
  invoke void @_ZNSt6vectorIjSaIjEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %251, i64 noundef %252)
          to label %253 unwind label %280

253:                                              ; preds = %242
  %254 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %251) #9
  %255 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %251) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #9
  store i32 0, ptr %16, align 4, !tbaa !36
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEiEvT_S7_RKT0_(ptr %254, ptr %255, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %256 unwind label %282

256:                                              ; preds = %253
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #9
  %257 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %251) #9
  %258 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %259 = getelementptr inbounds i8, ptr %258, i64 15504
  %260 = getelementptr inbounds [596 x [6 x ptr]], ptr %259, i64 0, i64 %.0164257, i64 4
  store ptr %257, ptr %260, align 8, !tbaa !5
  %261 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %262 = getelementptr inbounds i8, ptr %261, i64 1196
  %263 = getelementptr inbounds [596 x [6 x i32]], ptr %262, i64 0, i64 %.0164257, i64 5
  %264 = load i32, ptr %263, align 4, !tbaa !36
  %265 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0164257, i64 5
  %266 = zext i32 %264 to i64
  invoke void @_ZNSt6vectorIjSaIjEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %265, i64 noundef %266)
          to label %267 unwind label %280

267:                                              ; preds = %256
  %268 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %265) #9
  %269 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %265) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #9
  store i32 0, ptr %16, align 4, !tbaa !36
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEiEvT_S7_RKT0_(ptr %268, ptr %269, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %270 unwind label %282

270:                                              ; preds = %267
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #9
  %271 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %265) #9
  %272 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %273 = getelementptr inbounds i8, ptr %272, i64 15504
  %274 = getelementptr inbounds [596 x [6 x ptr]], ptr %273, i64 0, i64 %.0164257, i64 5
  store ptr %271, ptr %274, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #9
  store i32 0, ptr %17, align 4, !tbaa !36
  %275 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %276 = getelementptr inbounds i8, ptr %275, i64 2
  %277 = getelementptr inbounds [596 x i16], ptr %276, i64 0, i64 %.0164257
  %278 = load i16, ptr %277, align 2, !tbaa !37
  %279 = invoke i32 @cbSdkIsChanAnyDigIn(i32 noundef 0, i16 noundef zeroext %278, ptr noundef nonnull %17)
          to label %284 unwind label %301

280:                                              ; preds = %256, %242, %228, %214, %200, %.preheader239
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %589

282:                                              ; preds = %267, %253, %239, %225, %211, %197
  %283 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #9
  br label %589

284:                                              ; preds = %270
  %285 = load i32, ptr %17, align 4, !tbaa !36
  %.not216 = icmp eq i32 %285, 0
  br i1 %.not216, label %319, label %286

286:                                              ; preds = %284
  %287 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %288 = getelementptr inbounds i8, ptr %287, i64 1196
  %289 = getelementptr inbounds [596 x [6 x i32]], ptr %288, i64 0, i64 %.0164257
  %290 = load i32, ptr %289, align 4, !tbaa !36
  %291 = load i8, ptr %108, align 4, !tbaa !25, !range !26, !noundef !27
  %292 = trunc nuw i8 %291 to i1
  %293 = zext i32 %290 to i64
  br i1 %292, label %294, label %307

294:                                              ; preds = %286
  %295 = getelementptr inbounds [596 x %"class.std::vector"], ptr %12, i64 0, i64 %.0164257
  invoke void @_ZNSt6vectorIsSaIsEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %295, i64 noundef %293)
          to label %296 unwind label %303

296:                                              ; preds = %294
  %297 = call ptr @_ZNSt6vectorIsSaIsEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %295) #9
  %298 = call ptr @_ZNSt6vectorIsSaIsEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %295) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #9
  store i32 0, ptr %18, align 4, !tbaa !36
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEEiEvT_S7_RKT0_(ptr %297, ptr %298, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %299 unwind label %305

299:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #9
  %300 = call noundef ptr @_ZNSt6vectorIsSaIsEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %295) #9
  br label %.sink.split

301:                                              ; preds = %270
  %302 = landingpad { ptr, i32 }
          cleanup
  br label %325

303:                                              ; preds = %307, %294
  %304 = landingpad { ptr, i32 }
          cleanup
  br label %325

305:                                              ; preds = %296
  %306 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #9
  br label %325

307:                                              ; preds = %286
  %308 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %13, i64 0, i64 %.0164257
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %308, i64 noundef %293)
          to label %309 unwind label %303

309:                                              ; preds = %307
  %310 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %308) #9
  %311 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %308) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #9
  store i32 0, ptr %19, align 4, !tbaa !36
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEiEvT_S7_RKT0_(ptr %310, ptr %311, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %312 unwind label %314

312:                                              ; preds = %309
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #9
  %313 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %308) #9
  br label %.sink.split

314:                                              ; preds = %309
  %315 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #9
  br label %325

.sink.split:                                      ; preds = %312, %299
  %.sink = phi ptr [ %300, %299 ], [ %313, %312 ]
  %316 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %317 = getelementptr inbounds i8, ptr %316, i64 44112
  %318 = getelementptr inbounds [596 x ptr], ptr %317, i64 0, i64 %.0164257
  store ptr %.sink, ptr %318, align 8, !tbaa !5
  br label %319

319:                                              ; preds = %.sink.split, %284
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #9
  %320 = add nuw nsw i64 %.0164257, 1
  %321 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %322 = load i16, ptr %321, align 8, !tbaa !34
  %323 = zext i16 %322 to i64
  %324 = icmp ult i64 %320, %323
  br i1 %324, label %.preheader239, label %.loopexit247, !llvm.loop !38

325:                                              ; preds = %303, %305, %314, %301
  %.pn217.pn = phi { ptr, i32 } [ %302, %301 ], [ %306, %305 ], [ %304, %303 ], [ %315, %314 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #9
  br label %589

.loopexit247:                                     ; preds = %319, %.preheader246, %184, %182
  %326 = call noundef zeroext i1 @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  br i1 %326, label %327, label %.loopexit245

327:                                              ; preds = %.loopexit247
  %328 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %329 = load i16, ptr %328, align 8, !tbaa !39
  %.not204 = icmp eq i16 %329, 0
  br i1 %.not204, label %.loopexit245, label %.preheader244

.preheader244:                                    ; preds = %327
  %330 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %331 = load i16, ptr %330, align 8, !tbaa !39
  %.not272 = icmp eq i16 %331, 0
  br i1 %.not272, label %.loopexit245, label %.lr.ph259

.lr.ph259:                                        ; preds = %.preheader244, %359
  %indvars.iv = phi i64 [ %indvars.iv.next, %359 ], [ 0, %.preheader244 ]
  %332 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %333 = getelementptr inbounds i8, ptr %332, i64 2244
  %334 = getelementptr inbounds [560 x i32], ptr %333, i64 0, i64 %indvars.iv
  %335 = load i32, ptr %334, align 4, !tbaa !36
  %336 = load i8, ptr %108, align 4, !tbaa !25, !range !26, !noundef !27
  %337 = trunc nuw i8 %336 to i1
  %338 = zext i32 %335 to i64
  br i1 %337, label %339, label %350

339:                                              ; preds = %.lr.ph259
  %340 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %10, i64 0, i64 %indvars.iv
  invoke void @_ZNSt6vectorIdSaIdEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %340, i64 noundef %338)
          to label %341 unwind label %346

341:                                              ; preds = %339
  %342 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %340) #9
  %343 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %340) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #9
  store i32 0, ptr %20, align 4, !tbaa !36
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEiEvT_S7_RKT0_(ptr %342, ptr %343, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %344 unwind label %348

344:                                              ; preds = %341
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  %345 = call noundef ptr @_ZNSt6vectorIdSaIdEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %340) #9
  br label %359

346:                                              ; preds = %350, %339
  %347 = landingpad { ptr, i32 }
          cleanup
  br label %589

348:                                              ; preds = %341
  %349 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  br label %589

350:                                              ; preds = %.lr.ph259
  %351 = getelementptr inbounds [596 x %"class.std::vector"], ptr %9, i64 0, i64 %indvars.iv
  invoke void @_ZNSt6vectorIsSaIsEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %351, i64 noundef %338)
          to label %352 unwind label %346

352:                                              ; preds = %350
  %353 = call ptr @_ZNSt6vectorIsSaIsEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %351) #9
  %354 = call ptr @_ZNSt6vectorIsSaIsEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %351) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #9
  store i32 0, ptr %21, align 4, !tbaa !36
  invoke void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEEiEvT_S7_RKT0_(ptr %353, ptr %354, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %355 unwind label %357

355:                                              ; preds = %352
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #9
  %356 = call noundef ptr @_ZNSt6vectorIsSaIsEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %351) #9
  br label %359

357:                                              ; preds = %352
  %358 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #9
  br label %589

359:                                              ; preds = %355, %344
  %.sink303 = phi ptr [ %356, %355 ], [ %345, %344 ]
  %360 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %361 = getelementptr inbounds i8, ptr %360, i64 4488
  %362 = getelementptr inbounds [560 x ptr], ptr %361, i64 0, i64 %indvars.iv
  store ptr %.sink303, ptr %362, align 8, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %363 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %364 = load i16, ptr %363, align 8, !tbaa !39
  %365 = zext i16 %364 to i64
  %366 = icmp ult i64 %indvars.iv.next, %365
  br i1 %366, label %.lr.ph259, label %.loopexit245, !llvm.loop !41

.loopexit245:                                     ; preds = %359, %.preheader244, %327, %.loopexit247
  %367 = load i32, ptr %101, align 4, !tbaa !12
  %368 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %369 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %370 = call noundef ptr @_ZNKSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  %371 = invoke i32 @cbSdkGetTrialData(i32 noundef 0, i32 noundef %367, ptr noundef %368, ptr noundef %369, ptr noundef %370, ptr noundef null)
          to label %372 unwind label %.loopexit249

372:                                              ; preds = %.loopexit245
  %373 = call noundef zeroext i1 @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  br i1 %373, label %374, label %.loopexit243

374:                                              ; preds = %372
  %375 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %376 = load i16, ptr %375, align 8, !tbaa !34
  %.not205 = icmp eq i16 %376, 0
  br i1 %.not205, label %.loopexit243, label %.preheader242

.preheader242:                                    ; preds = %374
  %377 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %378 = load i16, ptr %377, align 8, !tbaa !34
  %.not273 = icmp eq i16 %378, 0
  br i1 %.not273, label %.loopexit243, label %.preheader238

.preheader238:                                    ; preds = %.preheader242, %.critedge307
  %.0150265 = phi i64 [ %473, %.critedge307 ], [ 0, %.preheader242 ]
  %379 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %380 = getelementptr inbounds i8, ptr %379, i64 1196
  %381 = getelementptr inbounds [596 x [6 x i32]], ptr %380, i64 0, i64 %.0150265, i64 0
  %382 = load i32, ptr %381, align 4, !tbaa !36
  %.not213 = icmp eq i32 %382, 0
  br i1 %.not213, label %388, label %383

383:                                              ; preds = %.preheader238
  %384 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0150265, i64 0
  %385 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %384, i64 noundef 0) #9
  %386 = load i32, ptr %385, align 4, !tbaa !36
  %387 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.29, i32 noundef %386)
  br label %388

388:                                              ; preds = %.preheader238, %383
  %389 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %390 = getelementptr inbounds i8, ptr %389, i64 1196
  %391 = getelementptr inbounds [596 x [6 x i32]], ptr %390, i64 0, i64 %.0150265, i64 1
  %392 = load i32, ptr %391, align 4, !tbaa !36
  %.not213.1 = icmp eq i32 %392, 0
  br i1 %.not213.1, label %398, label %393

393:                                              ; preds = %388
  %394 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0150265, i64 1
  %395 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %394, i64 noundef 0) #9
  %396 = load i32, ptr %395, align 4, !tbaa !36
  %397 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.29, i32 noundef %396)
  br label %398

398:                                              ; preds = %393, %388
  %399 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %400 = getelementptr inbounds i8, ptr %399, i64 1196
  %401 = getelementptr inbounds [596 x [6 x i32]], ptr %400, i64 0, i64 %.0150265, i64 2
  %402 = load i32, ptr %401, align 4, !tbaa !36
  %.not213.2 = icmp eq i32 %402, 0
  br i1 %.not213.2, label %408, label %403

403:                                              ; preds = %398
  %404 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0150265, i64 2
  %405 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %404, i64 noundef 0) #9
  %406 = load i32, ptr %405, align 4, !tbaa !36
  %407 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.29, i32 noundef %406)
  br label %408

408:                                              ; preds = %403, %398
  %409 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %410 = getelementptr inbounds i8, ptr %409, i64 1196
  %411 = getelementptr inbounds [596 x [6 x i32]], ptr %410, i64 0, i64 %.0150265, i64 3
  %412 = load i32, ptr %411, align 4, !tbaa !36
  %.not213.3 = icmp eq i32 %412, 0
  br i1 %.not213.3, label %418, label %413

413:                                              ; preds = %408
  %414 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0150265, i64 3
  %415 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %414, i64 noundef 0) #9
  %416 = load i32, ptr %415, align 4, !tbaa !36
  %417 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.29, i32 noundef %416)
  br label %418

418:                                              ; preds = %413, %408
  %419 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %420 = getelementptr inbounds i8, ptr %419, i64 1196
  %421 = getelementptr inbounds [596 x [6 x i32]], ptr %420, i64 0, i64 %.0150265, i64 4
  %422 = load i32, ptr %421, align 4, !tbaa !36
  %.not213.4 = icmp eq i32 %422, 0
  br i1 %.not213.4, label %428, label %423

423:                                              ; preds = %418
  %424 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0150265, i64 4
  %425 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %424, i64 noundef 0) #9
  %426 = load i32, ptr %425, align 4, !tbaa !36
  %427 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.29, i32 noundef %426)
  br label %428

428:                                              ; preds = %423, %418
  %429 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %430 = getelementptr inbounds i8, ptr %429, i64 1196
  %431 = getelementptr inbounds [596 x [6 x i32]], ptr %430, i64 0, i64 %.0150265, i64 5
  %432 = load i32, ptr %431, align 4, !tbaa !36
  %.not213.5 = icmp eq i32 %432, 0
  br i1 %.not213.5, label %438, label %433

433:                                              ; preds = %428
  %434 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0150265, i64 5
  %435 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %434, i64 noundef 0) #9
  %436 = load i32, ptr %435, align 4, !tbaa !36
  %437 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.29, i32 noundef %436)
  br label %438

438:                                              ; preds = %433, %428
  %439 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.30)
  %440 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %441 = getelementptr inbounds i8, ptr %440, i64 2
  %442 = getelementptr inbounds [596 x i16], ptr %441, i64 0, i64 %.0150265
  %443 = load i16, ptr %442, align 2, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #9
  store i32 0, ptr %22, align 4, !tbaa !36
  %444 = invoke i32 @cbSdkIsChanAnyDigIn(i32 noundef 0, i16 noundef zeroext %443, ptr noundef nonnull %22)
          to label %445 unwind label %452

445:                                              ; preds = %438
  %446 = load i32, ptr %22, align 4, !tbaa !36
  %.not211 = icmp eq i32 %446, 0
  br i1 %.not211, label %.critedge307, label %447

447:                                              ; preds = %445
  %448 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %449 = getelementptr inbounds i8, ptr %448, i64 1196
  %450 = getelementptr inbounds [596 x [6 x i32]], ptr %449, i64 0, i64 %.0150265
  %451 = load i32, ptr %450, align 4, !tbaa !36
  %.not212 = icmp eq i32 %451, 0
  br i1 %.not212, label %.critedge307, label %.thread

452:                                              ; preds = %438
  %453 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #9
  br label %589

.thread:                                          ; preds = %447
  %454 = getelementptr inbounds [596 x [6 x %"class.std::vector.24"]], ptr %11, i64 0, i64 %.0150265
  %455 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %454, i64 noundef 0) #9
  %456 = load i32, ptr %455, align 4, !tbaa !36
  %457 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.31, i32 noundef %456)
  %458 = load i8, ptr %108, align 4, !tbaa !25, !range !26, !noundef !27
  %459 = trunc nuw i8 %458 to i1
  %wide.trip.count288 = zext i32 %451 to i64
  br i1 %459, label %.lr.ph264, label %.lr.ph262

.lr.ph262:                                        ; preds = %.thread
  %460 = getelementptr inbounds [596 x %"class.std::vector"], ptr %12, i64 0, i64 %.0150265
  br label %466

.lr.ph264:                                        ; preds = %.thread
  %461 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %13, i64 0, i64 %.0150265
  br label %462

462:                                              ; preds = %.lr.ph264, %462
  %indvars.iv285 = phi i64 [ 0, %.lr.ph264 ], [ %indvars.iv.next286, %462 ]
  %463 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %461, i64 noundef %indvars.iv285) #9
  %464 = load double, ptr %463, align 8, !tbaa !42
  %465 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.32, double noundef %464)
  %indvars.iv.next286 = add nuw nsw i64 %indvars.iv285, 1
  %exitcond289.not = icmp eq i64 %indvars.iv.next286, %wide.trip.count288
  br i1 %exitcond289.not, label %.loopexit, label %462, !llvm.loop !44

466:                                              ; preds = %.lr.ph262, %466
  %indvars.iv281 = phi i64 [ 0, %.lr.ph262 ], [ %indvars.iv.next282, %466 ]
  %467 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorIsSaIsEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %460, i64 noundef %indvars.iv281) #9
  %468 = load i16, ptr %467, align 2, !tbaa !37
  %469 = sext i16 %468 to i32
  %470 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.33, i32 noundef %469)
  %indvars.iv.next282 = add nuw nsw i64 %indvars.iv281, 1
  %exitcond284.not = icmp eq i64 %indvars.iv.next282, %wide.trip.count288
  br i1 %exitcond284.not, label %.loopexit, label %466, !llvm.loop !45

.loopexit:                                        ; preds = %466, %462
  br i1 %.not212, label %.critedge307, label %471

471:                                              ; preds = %.loopexit
  %472 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.30)
  br label %.critedge307

.critedge307:                                     ; preds = %447, %.loopexit, %471, %445
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #9
  %473 = add nuw nsw i64 %.0150265, 1
  %474 = call noundef ptr @_ZNKSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  %475 = load i16, ptr %474, align 8, !tbaa !34
  %476 = zext i16 %475 to i64
  %477 = icmp ult i64 %473, %476
  br i1 %477, label %.preheader238, label %.loopexit243, !llvm.loop !46

.loopexit243:                                     ; preds = %.critedge307, %.preheader242, %374, %372
  %478 = call noundef zeroext i1 @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  br i1 %478, label %479, label %.loopexit241

479:                                              ; preds = %.loopexit243
  %480 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %481 = load i16, ptr %480, align 8, !tbaa !39
  %.not206 = icmp eq i16 %481, 0
  br i1 %.not206, label %.loopexit241, label %.preheader240

.preheader240:                                    ; preds = %479
  %482 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %483 = load i16, ptr %482, align 8, !tbaa !39
  %.not276 = icmp eq i16 %483, 0
  br i1 %.not276, label %.loopexit241, label %.lr.ph269

.lr.ph269:                                        ; preds = %.preheader240, %572
  %.0144268 = phi i64 [ %573, %572 ], [ 0, %.preheader240 ]
  %484 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %485 = getelementptr inbounds i8, ptr %484, i64 2244
  %486 = getelementptr inbounds [560 x i32], ptr %485, i64 0, i64 %.0144268
  %487 = load i32, ptr %486, align 4, !tbaa !36
  %488 = load i8, ptr %108, align 4, !tbaa !25, !range !26, !noundef !27
  %489 = trunc nuw i8 %488 to i1
  br i1 %489, label %490, label %531

490:                                              ; preds = %.lr.ph269
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #9
  %491 = getelementptr inbounds [596 x %"class.std::vector.19"], ptr %10, i64 0, i64 %.0144268
  %492 = call ptr @_ZSt5beginISt6vectorIdSaIdEEEDTcldtfp_5beginEERT_(ptr noundef nonnull align 8 dereferenceable(24) %491)
  %493 = call ptr @_ZSt3endISt6vectorIdSaIdEEEDTcldtfp_3endEERT_(ptr noundef nonnull align 8 dereferenceable(24) %491)
  %494 = invoke { ptr, ptr } @_ZSt14minmax_elementIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEESt4pairIT_S8_ES8_S8_(ptr %492, ptr %493)
          to label %495 unwind label %526

495:                                              ; preds = %490
  %496 = extractvalue { ptr, ptr } %494, 0
  store ptr %496, ptr %23, align 8
  %497 = extractvalue { ptr, ptr } %494, 1
  store ptr %497, ptr %171, align 8
  %498 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16) %23) #9
  %499 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16) %23) #9
  %500 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.34)
          to label %501 unwind label %528

501:                                              ; preds = %495
  %502 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %503 = getelementptr inbounds i8, ptr %502, i64 2
  %504 = getelementptr inbounds [560 x i16], ptr %503, i64 0, i64 %.0144268
  %505 = load i16, ptr %504, align 2, !tbaa !37
  %506 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8) %500, i16 noundef zeroext %505)
          to label %507 unwind label %528

507:                                              ; preds = %501
  %508 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %506, ptr noundef nonnull @.str.35)
          to label %509 unwind label %528

509:                                              ; preds = %507
  %510 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %508, i32 noundef %487)
          to label %511 unwind label %528

511:                                              ; preds = %509
  %512 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %510, ptr noundef nonnull @.str.36)
          to label %513 unwind label %528

513:                                              ; preds = %511
  %514 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %498) #9
  %515 = load double, ptr %514, align 8, !tbaa !42
  %516 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %512, double noundef %515)
          to label %517 unwind label %528

517:                                              ; preds = %513
  %518 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %516, ptr noundef nonnull @.str.37)
          to label %519 unwind label %528

519:                                              ; preds = %517
  %520 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %499) #9
  %521 = load double, ptr %520, align 8, !tbaa !42
  %522 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %518, double noundef %521)
          to label %523 unwind label %528

523:                                              ; preds = %519
  %524 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %522, i8 noundef signext 10)
          to label %525 unwind label %528

525:                                              ; preds = %523
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #9
  br label %572

526:                                              ; preds = %490
  %527 = landingpad { ptr, i32 }
          cleanup
  br label %530

528:                                              ; preds = %523, %519, %517, %513, %511, %509, %507, %501, %495
  %529 = landingpad { ptr, i32 }
          cleanup
  br label %530

530:                                              ; preds = %528, %526
  %.pn208 = phi { ptr, i32 } [ %529, %528 ], [ %527, %526 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #9
  br label %589

531:                                              ; preds = %.lr.ph269
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #9
  %532 = getelementptr inbounds [596 x %"class.std::vector"], ptr %9, i64 0, i64 %.0144268
  %533 = call ptr @_ZSt5beginISt6vectorIsSaIsEEEDTcldtfp_5beginEERT_(ptr noundef nonnull align 8 dereferenceable(24) %532)
  %534 = call ptr @_ZSt3endISt6vectorIsSaIsEEEDTcldtfp_3endEERT_(ptr noundef nonnull align 8 dereferenceable(24) %532)
  %535 = invoke { ptr, ptr } @_ZSt14minmax_elementIN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEEESt4pairIT_S8_ES8_S8_(ptr %533, ptr %534)
          to label %536 unwind label %567

536:                                              ; preds = %531
  %537 = extractvalue { ptr, ptr } %535, 0
  store ptr %537, ptr %24, align 8
  %538 = extractvalue { ptr, ptr } %535, 1
  store ptr %538, ptr %170, align 8
  %539 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16) %24) #9
  %540 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16) %24) #9
  %541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.34)
          to label %542 unwind label %569

542:                                              ; preds = %536
  %543 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %544 = getelementptr inbounds i8, ptr %543, i64 2
  %545 = getelementptr inbounds [560 x i16], ptr %544, i64 0, i64 %.0144268
  %546 = load i16, ptr %545, align 2, !tbaa !37
  %547 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8) %541, i16 noundef zeroext %546)
          to label %548 unwind label %569

548:                                              ; preds = %542
  %549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %547, ptr noundef nonnull @.str.35)
          to label %550 unwind label %569

550:                                              ; preds = %548
  %551 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %549, i32 noundef %487)
          to label %552 unwind label %569

552:                                              ; preds = %550
  %553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %551, ptr noundef nonnull @.str.36)
          to label %554 unwind label %569

554:                                              ; preds = %552
  %555 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %539) #9
  %556 = load i16, ptr %555, align 2, !tbaa !37
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEs(ptr noundef nonnull align 8 dereferenceable(8) %553, i16 noundef signext %556)
          to label %558 unwind label %569

558:                                              ; preds = %554
  %559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %557, ptr noundef nonnull @.str.37)
          to label %560 unwind label %569

560:                                              ; preds = %558
  %561 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %540) #9
  %562 = load i16, ptr %561, align 2, !tbaa !37
  %563 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEs(ptr noundef nonnull align 8 dereferenceable(8) %559, i16 noundef signext %562)
          to label %564 unwind label %569

564:                                              ; preds = %560
  %565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %563, i8 noundef signext 10)
          to label %566 unwind label %569

566:                                              ; preds = %564
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #9
  br label %572

567:                                              ; preds = %531
  %568 = landingpad { ptr, i32 }
          cleanup
  br label %571

569:                                              ; preds = %564, %560, %558, %554, %552, %550, %548, %542, %536
  %570 = landingpad { ptr, i32 }
          cleanup
  br label %571

571:                                              ; preds = %569, %567
  %.pn = phi { ptr, i32 } [ %570, %569 ], [ %568, %567 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #9
  br label %589

572:                                              ; preds = %566, %525
  %573 = add nuw nsw i64 %.0144268, 1
  %574 = call noundef ptr @_ZNKSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %575 = load i16, ptr %574, align 8, !tbaa !39
  %576 = zext i16 %575 to i64
  %577 = icmp ult i64 %573, %576
  br i1 %577, label %.lr.ph269, label %.loopexit241, !llvm.loop !47

.loopexit241:                                     ; preds = %572, %.preheader240, %479, %.loopexit243
  %578 = load i64, ptr %15, align 8
  %579 = icmp ult i64 %578, %166
  %580 = select i1 %165, i1 true, i1 %579
  br i1 %580, label %172, label %.critedge, !llvm.loop !48

.critedge:                                        ; preds = %.loopexit241, %.preheader248
  %581 = invoke noundef i32 @_Z9testClosev()
          to label %582 unwind label %.loopexit.split-lp

582:                                              ; preds = %.critedge
  %583 = icmp slt i32 %581, 0
  br i1 %583, label %584, label %586

584:                                              ; preds = %582
  %585 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.38, i32 noundef %581)
  br label %588

586:                                              ; preds = %582
  %587 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.39)
  br label %588

588:                                              ; preds = %586, %584
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  br label %590

589:                                              ; preds = %.loopexit249, %.loopexit.split-lp, %452, %280, %282, %325, %357, %348, %346, %571, %530, %195
  %.pn220.pn.pn.pn = phi { ptr, i32 } [ %196, %195 ], [ %453, %452 ], [ %.pn217.pn, %325 ], [ %283, %282 ], [ %281, %280 ], [ %349, %348 ], [ %347, %346 ], [ %358, %357 ], [ %.pn208, %530 ], [ %.pn, %571 ], [ %lpad.loopexit, %.loopexit249 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  br label %595

590:                                              ; preds = %590, %588
  %591 = phi ptr [ %163, %588 ], [ %592, %590 ]
  %592 = getelementptr inbounds i8, ptr %591, i64 -24
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %592) #9
  %593 = icmp eq ptr %592, %13
  br i1 %593, label %594, label %590

594:                                              ; preds = %590
  call void @llvm.lifetime.end.p0(i64 14304, ptr nonnull %13) #9
  br label %600

595:                                              ; preds = %595, %589
  %596 = phi ptr [ %163, %589 ], [ %597, %595 ]
  %597 = getelementptr inbounds i8, ptr %596, i64 -24
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %597) #9
  %598 = icmp eq ptr %597, %13
  br i1 %598, label %599, label %595

599:                                              ; preds = %595
  call void @llvm.lifetime.end.p0(i64 14304, ptr nonnull %13) #9
  br label %605

600:                                              ; preds = %600, %594
  %601 = phi ptr [ %162, %594 ], [ %602, %600 ]
  %602 = getelementptr inbounds i8, ptr %601, i64 -24
  call void @_ZNSt6vectorIsSaIsEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %602) #9
  %603 = icmp eq ptr %602, %12
  br i1 %603, label %604, label %600

604:                                              ; preds = %600
  call void @llvm.lifetime.end.p0(i64 14304, ptr nonnull %12) #9
  br label %610

605:                                              ; preds = %605, %599
  %606 = phi ptr [ %162, %599 ], [ %607, %605 ]
  %607 = getelementptr inbounds i8, ptr %606, i64 -24
  call void @_ZNSt6vectorIsSaIsEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %607) #9
  %608 = icmp eq ptr %607, %12
  br i1 %608, label %609, label %605

609:                                              ; preds = %605
  call void @llvm.lifetime.end.p0(i64 14304, ptr nonnull %12) #9
  br label %615

610:                                              ; preds = %610, %604
  %611 = phi ptr [ %158, %604 ], [ %612, %610 ]
  %612 = getelementptr inbounds i8, ptr %611, i64 -24
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %612) #9
  %613 = icmp eq ptr %612, %11
  br i1 %613, label %614, label %610

614:                                              ; preds = %610
  call void @llvm.lifetime.end.p0(i64 85824, ptr nonnull %11) #9
  br label %620

615:                                              ; preds = %615, %609
  %616 = phi ptr [ %158, %609 ], [ %617, %615 ]
  %617 = getelementptr inbounds i8, ptr %616, i64 -24
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %617) #9
  %618 = icmp eq ptr %617, %11
  br i1 %618, label %619, label %615

619:                                              ; preds = %615
  call void @llvm.lifetime.end.p0(i64 85824, ptr nonnull %11) #9
  br label %625

620:                                              ; preds = %620, %614
  %621 = phi ptr [ %154, %614 ], [ %622, %620 ]
  %622 = getelementptr inbounds i8, ptr %621, i64 -24
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %622) #9
  %623 = icmp eq ptr %622, %10
  br i1 %623, label %624, label %620

624:                                              ; preds = %620
  call void @llvm.lifetime.end.p0(i64 14304, ptr nonnull %10) #9
  br label %630

625:                                              ; preds = %625, %619
  %626 = phi ptr [ %154, %619 ], [ %627, %625 ]
  %627 = getelementptr inbounds i8, ptr %626, i64 -24
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %627) #9
  %628 = icmp eq ptr %627, %10
  br i1 %628, label %629, label %625

629:                                              ; preds = %625
  call void @llvm.lifetime.end.p0(i64 14304, ptr nonnull %10) #9
  br label %635

630:                                              ; preds = %630, %624
  %631 = phi ptr [ %150, %624 ], [ %632, %630 ]
  %632 = getelementptr inbounds i8, ptr %631, i64 -24
  call void @_ZNSt6vectorIsSaIsEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %632) #9
  %633 = icmp eq ptr %632, %9
  br i1 %633, label %634, label %630

634:                                              ; preds = %630
  call void @llvm.lifetime.end.p0(i64 14304, ptr nonnull %9) #9
  call void @_ZNSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  call void @_ZNSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @_ZNSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 60, ptr nonnull %3) #9
  br label %642

635:                                              ; preds = %635, %629
  %636 = phi ptr [ %150, %629 ], [ %637, %635 ]
  %637 = getelementptr inbounds i8, ptr %636, i64 -24
  call void @_ZNSt6vectorIsSaIsEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %637) #9
  %638 = icmp eq ptr %637, %9
  br i1 %638, label %639, label %635

639:                                              ; preds = %635
  call void @llvm.lifetime.end.p0(i64 14304, ptr nonnull %9) #9
  call void @_ZNSt10unique_ptrI18_cbSdkTrialCommentSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  br label %640

640:                                              ; preds = %639, %141
  %.pn220.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn220.pn.pn.pn, %639 ], [ %142, %141 ]
  call void @_ZNSt10unique_ptrI15_cbSdkTrialContSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  br label %641

641:                                              ; preds = %640, %135
  %.pn220.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn220.pn.pn.pn.pn, %640 ], [ %136, %135 ]
  call void @_ZNSt10unique_ptrI16_cbSdkTrialEventSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 60, ptr nonnull %3) #9
  resume { ptr, i32 } %.pn220.pn.pn.pn.pn.pn

642:                                              ; preds = %634, %97
  %.0 = phi i32 [ -1, %97 ], [ 0, %634 ]
  ret i32 %.0
}

; Function Attrs: mustprogress nofree nounwind willreturn
declare i64 @strtol(ptr noundef readonly, ptr nocapture noundef, i32 noundef) local_unnamed_addr #4

declare i32 @cbSdkGetTrialConfig(i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

declare i32 @cbSdkSetTrialConfig(i32 noundef, i32 noundef, i16 noundef zeroext, i32 noundef, i32 noundef, i16 noundef zeroext, i32 noundef, i32 noundef, i1 noundef zeroext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #5

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI15_cbSdkTrialContJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.3") align 8) local_unnamed_addr #7

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

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

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

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

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

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

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

declare i32 @cbSdkGetTime(i32 noundef, ptr noundef) local_unnamed_addr #5

declare i32 @cbSdkInitTrialData(i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #5

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEiEvT_S7_RKT0_(ptr, ptr, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

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

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

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

declare i32 @cbSdkIsChanAnyDigIn(i32 noundef, i16 noundef zeroext, ptr noundef) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEEiEvT_S7_RKT0_(ptr, ptr, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4fillIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEiEvT_S7_RKT0_(ptr, ptr, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7

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

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

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

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

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

declare i32 @cbSdkGetTrialData(i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, ptr } @_ZSt14minmax_elementIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEEESt4pairIT_S8_ES8_S8_(ptr, ptr) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local ptr @_ZSt5beginISt6vectorIdSaIdEEEDTcldtfp_5beginEERT_(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local ptr @_ZSt3endISt6vectorIdSaIdEEEDTcldtfp_3endEERT_(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) local_unnamed_addr #7

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, ptr } @_ZSt14minmax_elementIN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEEESt4pairIT_S8_ES8_S8_(ptr, ptr) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local ptr @_ZSt5beginISt6vectorIsSaIsEEEDTcldtfp_5beginEERT_(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local ptr @_ZSt3endISt6vectorIsSaIsEEEDTcldtfp_3endEERT_(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EN9__gnu_cxx17__normal_iteratorIPsSt6vectorIsSaIsEEEES6_EOKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOKSB_(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEs(ptr noundef nonnull align 8 dereferenceable(8), i16 noundef signext) local_unnamed_addr #5

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

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

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

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

attributes #0 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nofree nounwind willreturn "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 = { "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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { 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 #9 = { 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 = distinct !{!10, !11}
!11 = !{!"llvm.loop.mustprogress"}
!12 = !{!13, !14, i64 4}
!13 = !{!"_ZTS13_cbsdk_config", !14, i64 0, !14, i64 4, !15, i64 8, !14, i64 12, !14, i64 16, !15, i64 20, !14, i64 24, !14, i64 28, !16, i64 32, !14, i64 36, !14, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !16, i64 56}
!14 = !{!"int", !7, i64 0}
!15 = !{!"short", !7, i64 0}
!16 = !{!"bool", !7, i64 0}
!17 = !{!13, !14, i64 40}
!18 = !{!13, !14, i64 44}
!19 = !{!13, !15, i64 8}
!20 = !{!13, !14, i64 12}
!21 = !{!13, !14, i64 16}
!22 = !{!13, !15, i64 20}
!23 = !{!13, !14, i64 24}
!24 = !{!13, !14, i64 28}
!25 = !{!13, !16, i64 32}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!13, !14, i64 36}
!29 = !{!13, !14, i64 48}
!30 = !{!13, !14, i64 52}
!31 = !{!13, !16, i64 56}
!32 = !{!33, !33, i64 0}
!33 = !{!"long", !7, i64 0}
!34 = !{!35, !15, i64 0}
!35 = !{!"_ZTS16_cbSdkTrialEvent", !15, i64 0, !7, i64 2, !7, i64 1196, !7, i64 15504, !7, i64 44112}
!36 = !{!14, !14, i64 0}
!37 = !{!15, !15, i64 0}
!38 = distinct !{!38, !11}
!39 = !{!40, !15, i64 0}
!40 = !{!"_ZTS15_cbSdkTrialCont", !15, i64 0, !7, i64 2, !7, i64 1122, !7, i64 2244, !14, i64 4484, !7, i64 4488}
!41 = distinct !{!41, !11}
!42 = !{!43, !43, i64 0}
!43 = !{!"double", !7, i64 0}
!44 = distinct !{!44, !11}
!45 = distinct !{!45, !11}
!46 = distinct !{!46, !11}
!47 = distinct !{!47, !11}
!48 = distinct !{!48, !11}


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