; LLVM IR from aws/s2n-tls :: tests/unit (s2n_mutual_auth_test)

; 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"

%struct.host_verify_data = type { i8, i8 }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }
%struct.s2n_result = type { i32 }
%struct.s2n_config = type { i32, ptr, ptr, %struct.certs_by_type, %struct.s2n_blob, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, %struct.s2n_x509_trust_store, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, %struct.s2n_blob }
%struct.certs_by_type = type { [4 x ptr] }
%struct.s2n_x509_trust_store = type { ptr, i8 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [79 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [107 x i8], align 1
@__const.main.verify_data = external hidden unnamed_addr constant %struct.host_verify_data, align 1
@.str.27 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [94 x i8], align 1
@__const.main.verify_data_allow = external hidden unnamed_addr constant %struct.host_verify_data, align 1
@.str.64 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %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 i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct.host_verify_data, align 1
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i64, align 8
  %35 = alloca i32, align 4
  %36 = alloca %struct.s2n_cipher_preferences, align 8
  %37 = alloca %struct.s2n_security_policy, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca %struct.s2n_stuffer, align 8
  %41 = alloca %struct.s2n_stuffer, align 8
  %42 = alloca i64, align 8
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca i64, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i64, align 8
  %67 = alloca %struct.s2n_cipher_preferences, align 8
  %68 = alloca %struct.s2n_security_policy, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca %struct.s2n_stuffer, align 8
  %72 = alloca %struct.s2n_stuffer, align 8
  %73 = alloca i64, align 8
  %74 = alloca i32, align 4
  %75 = alloca ptr, align 8
  %76 = alloca i64, align 8
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i64, align 8
  %95 = alloca %struct.s2n_cipher_preferences, align 8
  %96 = alloca %struct.s2n_security_policy, align 8
  %97 = alloca ptr, align 8
  %98 = alloca ptr, align 8
  %99 = alloca %struct.s2n_stuffer, align 8
  %100 = alloca %struct.s2n_stuffer, align 8
  %101 = alloca i64, align 8
  %102 = alloca i32, align 4
  %103 = alloca ptr, align 8
  %104 = alloca i64, align 8
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i64, align 8
  %125 = alloca %struct.s2n_cipher_preferences, align 8
  %126 = alloca %struct.s2n_security_policy, align 8
  %127 = alloca ptr, align 8
  %128 = alloca ptr, align 8
  %129 = alloca %struct.s2n_stuffer, align 8
  %130 = alloca %struct.s2n_stuffer, align 8
  %131 = alloca i64, align 8
  %132 = alloca i32, align 4
  %133 = alloca ptr, align 8
  %134 = alloca i64, align 8
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca ptr, align 8
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca ptr, align 8
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca %struct.host_verify_data, align 1
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca ptr, align 8
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca ptr, align 8
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca %struct.s2n_test_io_pair, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca i8, align 1
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca ptr, align 8
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca %struct.s2n_result, align 4
  %196 = alloca %struct.s2n_result, align 4
  %197 = alloca %struct.s2n_result, align 4
  %198 = alloca %struct.s2n_result, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  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) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #10
  store ptr null, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #10
  store ptr null, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #10
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #10
  store ptr null, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  store ptr null, ptr %12, align 8, !tbaa !9
  br label %203

203:                                              ; preds = %2
  br label %204

204:                                              ; preds = %203
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %205 = load ptr, ptr @stdout, align 8, !tbaa !9
  %206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %205, ptr noundef @.str, ptr noundef @.str.1) #10
  %207 = load ptr, ptr @stdout, align 8, !tbaa !9
  %208 = call i32 @fflush(ptr noundef %207)
  br label %209

209:                                              ; preds = %204
  %210 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %211 = icmp eq i32 %210, -1
  br i1 %211, label %212, label %265

212:                                              ; preds = %209
  br label %213

213:                                              ; preds = %212
  br label %214

214:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  %215 = call ptr @__errno_location() #11
  %216 = load i32, ptr %215, align 4, !tbaa !5
  store i32 %216, ptr %13, align 4, !tbaa !5
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = call i32 @s2n_print_stacktrace(ptr noundef %217)
  %219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %220 = trunc i8 %219 to i1
  br i1 %220, label %221, label %243

221:                                              ; preds = %214
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = call i32 @fileno(ptr noundef %222) #10
  %224 = call i32 @isatty(i32 noundef %223) #10
  %225 = icmp ne i32 %224, 0
  br i1 %225, label %226, label %243

226:                                              ; preds = %221
  %227 = load i32, ptr %13, align 4, !tbaa !5
  %228 = call ptr @__errno_location() #11
  store i32 %227, ptr %228, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror(i32 noundef %232, ptr noundef @.str.4)
  %234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call ptr @s2n_strerror_debug(i32 noundef %235, ptr noundef @.str.4)
  %237 = call ptr @__errno_location() #11
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = call ptr @strerror(i32 noundef %238) #10
  %240 = call ptr @__errno_location() #11
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef @.str.2, i32 noundef %230, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 50, ptr noundef %233, ptr noundef %236, ptr noundef %239, i32 noundef %241) #10
  br label %260

243:                                              ; preds = %221, %214
  %244 = load i32, ptr %13, align 4, !tbaa !5
  %245 = call ptr @__errno_location() #11
  store i32 %244, ptr %245, align 4, !tbaa !5
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = load i32, ptr @test_count, align 4, !tbaa !5
  %248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror(i32 noundef %249, ptr noundef @.str.4)
  %251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %252 = load i32, ptr %251, align 4, !tbaa !5
  %253 = call ptr @s2n_strerror_debug(i32 noundef %252, ptr noundef @.str.4)
  %254 = call ptr @__errno_location() #11
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = call ptr @strerror(i32 noundef %255) #10
  %257 = call ptr @__errno_location() #11
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %246, ptr noundef @.str.5, i32 noundef %247, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 50, ptr noundef %250, ptr noundef %253, ptr noundef %256, i32 noundef %258) #10
  br label %260

260:                                              ; preds = %243, %226
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %261

261:                                              ; preds = %260
  br label %262

262:                                              ; preds = %261
  call void @exit(i32 noundef 1) #12
  unreachable

263:                                              ; No predecessors!
  br label %264

264:                                              ; preds = %263
  br label %265

265:                                              ; preds = %264, %209
  br label %266

266:                                              ; preds = %265
  br label %267

267:                                              ; preds = %266
  br label %268

268:                                              ; preds = %267
  %269 = load i32, ptr @test_count, align 4, !tbaa !5
  %270 = add nsw i32 %269, 1
  store i32 %270, ptr @test_count, align 4, !tbaa !5
  %271 = call i32 @s2n_enable_atexit()
  %272 = icmp eq i32 %271, -1
  br i1 %272, label %273, label %326

273:                                              ; preds = %268
  br label %274

274:                                              ; preds = %273
  br label %275

275:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %276 = call ptr @__errno_location() #11
  %277 = load i32, ptr %276, align 4, !tbaa !5
  store i32 %277, ptr %14, align 4, !tbaa !5
  %278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %279 = call i32 @s2n_print_stacktrace(ptr noundef %278)
  %280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %281 = trunc i8 %280 to i1
  br i1 %281, label %282, label %304

282:                                              ; preds = %275
  %283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %284 = call i32 @fileno(ptr noundef %283) #10
  %285 = call i32 @isatty(i32 noundef %284) #10
  %286 = icmp ne i32 %285, 0
  br i1 %286, label %287, label %304

287:                                              ; preds = %282
  %288 = load i32, ptr %14, align 4, !tbaa !5
  %289 = call ptr @__errno_location() #11
  store i32 %288, ptr %289, align 4, !tbaa !5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = call ptr @s2n_strerror(i32 noundef %293, ptr noundef @.str.4)
  %295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @s2n_strerror_debug(i32 noundef %296, ptr noundef @.str.4)
  %298 = call ptr @__errno_location() #11
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @strerror(i32 noundef %299) #10
  %301 = call ptr @__errno_location() #11
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %290, ptr noundef @.str.2, i32 noundef %291, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 50, ptr noundef %294, ptr noundef %297, ptr noundef %300, i32 noundef %302) #10
  br label %321

304:                                              ; preds = %282, %275
  %305 = load i32, ptr %14, align 4, !tbaa !5
  %306 = call ptr @__errno_location() #11
  store i32 %305, ptr %306, align 4, !tbaa !5
  %307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call ptr @s2n_strerror(i32 noundef %310, ptr noundef @.str.4)
  %312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror_debug(i32 noundef %313, ptr noundef @.str.4)
  %315 = call ptr @__errno_location() #11
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @strerror(i32 noundef %316) #10
  %318 = call ptr @__errno_location() #11
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %307, ptr noundef @.str.5, i32 noundef %308, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 50, ptr noundef %311, ptr noundef %314, ptr noundef %317, i32 noundef %319) #10
  br label %321

321:                                              ; preds = %304, %287
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %322

322:                                              ; preds = %321
  br label %323

323:                                              ; preds = %322
  call void @exit(i32 noundef 1) #12
  unreachable

324:                                              ; No predecessors!
  br label %325

325:                                              ; preds = %324
  br label %326

326:                                              ; preds = %325, %268
  br label %327

327:                                              ; preds = %326
  br label %328

328:                                              ; preds = %327
  br label %329

329:                                              ; preds = %328
  br label %330

330:                                              ; preds = %329
  br label %331

331:                                              ; preds = %330
  %332 = call i32 @s2n_init()
  %333 = icmp eq i32 %332, -1
  br i1 %333, label %334, label %387

334:                                              ; preds = %331
  br label %335

335:                                              ; preds = %334
  br label %336

336:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %337 = call ptr @__errno_location() #11
  %338 = load i32, ptr %337, align 4, !tbaa !5
  store i32 %338, ptr %15, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @s2n_print_stacktrace(ptr noundef %339)
  %341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %342 = trunc i8 %341 to i1
  br i1 %342, label %343, label %365

343:                                              ; preds = %336
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @fileno(ptr noundef %344) #10
  %346 = call i32 @isatty(i32 noundef %345) #10
  %347 = icmp ne i32 %346, 0
  br i1 %347, label %348, label %365

348:                                              ; preds = %343
  %349 = load i32, ptr %15, align 4, !tbaa !5
  %350 = call ptr @__errno_location() #11
  store i32 %349, ptr %350, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef @.str.4)
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror_debug(i32 noundef %357, ptr noundef @.str.4)
  %359 = call ptr @__errno_location() #11
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @strerror(i32 noundef %360) #10
  %362 = call ptr @__errno_location() #11
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef @.str.2, i32 noundef %352, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 50, ptr noundef %355, ptr noundef %358, ptr noundef %361, i32 noundef %363) #10
  br label %382

365:                                              ; preds = %343, %336
  %366 = load i32, ptr %15, align 4, !tbaa !5
  %367 = call ptr @__errno_location() #11
  store i32 %366, ptr %367, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror(i32 noundef %371, ptr noundef @.str.4)
  %373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror_debug(i32 noundef %374, ptr noundef @.str.4)
  %376 = call ptr @__errno_location() #11
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @strerror(i32 noundef %377) #10
  %379 = call ptr @__errno_location() #11
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef @.str.5, i32 noundef %369, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 50, ptr noundef %372, ptr noundef %375, ptr noundef %378, i32 noundef %380) #10
  br label %382

382:                                              ; preds = %365, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %383

383:                                              ; preds = %382
  br label %384

384:                                              ; preds = %383
  call void @exit(i32 noundef 1) #12
  unreachable

385:                                              ; No predecessors!
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386, %331
  br label %388

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391
  %393 = load i32, ptr @test_count, align 4, !tbaa !5
  %394 = add nsw i32 %393, 1
  store i32 %394, ptr @test_count, align 4, !tbaa !5
  %395 = call i32 (...) @s2n_disable_tls13_in_test()
  %396 = icmp eq i32 %395, -1
  br i1 %396, label %397, label %450

397:                                              ; preds = %392
  br label %398

398:                                              ; preds = %397
  br label %399

399:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %400 = call ptr @__errno_location() #11
  %401 = load i32, ptr %400, align 4, !tbaa !5
  store i32 %401, ptr %16, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = call i32 @s2n_print_stacktrace(ptr noundef %402)
  %404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %405 = trunc i8 %404 to i1
  br i1 %405, label %406, label %428

406:                                              ; preds = %399
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = call i32 @fileno(ptr noundef %407) #10
  %409 = call i32 @isatty(i32 noundef %408) #10
  %410 = icmp ne i32 %409, 0
  br i1 %410, label %411, label %428

411:                                              ; preds = %406
  %412 = load i32, ptr %16, align 4, !tbaa !5
  %413 = call ptr @__errno_location() #11
  store i32 %412, ptr %413, align 4, !tbaa !5
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror(i32 noundef %417, ptr noundef @.str.4)
  %419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror_debug(i32 noundef %420, ptr noundef @.str.4)
  %422 = call ptr @__errno_location() #11
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call ptr @strerror(i32 noundef %423) #10
  %425 = call ptr @__errno_location() #11
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %414, ptr noundef @.str.2, i32 noundef %415, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 51, ptr noundef %418, ptr noundef %421, ptr noundef %424, i32 noundef %426) #10
  br label %445

428:                                              ; preds = %406, %399
  %429 = load i32, ptr %16, align 4, !tbaa !5
  %430 = call ptr @__errno_location() #11
  store i32 %429, ptr %430, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = load i32, ptr @test_count, align 4, !tbaa !5
  %433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror(i32 noundef %434, ptr noundef @.str.4)
  %436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = call ptr @s2n_strerror_debug(i32 noundef %437, ptr noundef @.str.4)
  %439 = call ptr @__errno_location() #11
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call ptr @strerror(i32 noundef %440) #10
  %442 = call ptr @__errno_location() #11
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %431, ptr noundef @.str.5, i32 noundef %432, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 51, ptr noundef %435, ptr noundef %438, ptr noundef %441, i32 noundef %443) #10
  br label %445

445:                                              ; preds = %428, %411
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %446

446:                                              ; preds = %445
  br label %447

447:                                              ; preds = %446
  call void @exit(i32 noundef 1) #12
  unreachable

448:                                              ; No predecessors!
  br label %449

449:                                              ; preds = %448
  br label %450

450:                                              ; preds = %449, %392
  br label %451

451:                                              ; preds = %450
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = add nsw i32 %454, 1
  store i32 %455, ptr @test_count, align 4, !tbaa !5
  %456 = call noalias ptr @malloc(i64 noundef 12000) #13
  store ptr %456, ptr %9, align 8, !tbaa !9
  %457 = icmp eq ptr %456, null
  br i1 %457, label %458, label %511

458:                                              ; preds = %453
  br label %459

459:                                              ; preds = %458
  br label %460

460:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %461 = call ptr @__errno_location() #11
  %462 = load i32, ptr %461, align 4, !tbaa !5
  store i32 %462, ptr %17, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = call i32 @s2n_print_stacktrace(ptr noundef %463)
  %465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %466 = trunc i8 %465 to i1
  br i1 %466, label %467, label %489

467:                                              ; preds = %460
  %468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %469 = call i32 @fileno(ptr noundef %468) #10
  %470 = call i32 @isatty(i32 noundef %469) #10
  %471 = icmp ne i32 %470, 0
  br i1 %471, label %472, label %489

472:                                              ; preds = %467
  %473 = load i32, ptr %17, align 4, !tbaa !5
  %474 = call ptr @__errno_location() #11
  store i32 %473, ptr %474, align 4, !tbaa !5
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = load i32, ptr @test_count, align 4, !tbaa !5
  %477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror(i32 noundef %478, ptr noundef @.str.4)
  %480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call ptr @s2n_strerror_debug(i32 noundef %481, ptr noundef @.str.4)
  %483 = call ptr @__errno_location() #11
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call ptr @strerror(i32 noundef %484) #10
  %486 = call ptr @__errno_location() #11
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %475, ptr noundef @.str.2, i32 noundef %476, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 53, ptr noundef %479, ptr noundef %482, ptr noundef %485, i32 noundef %487) #10
  br label %506

489:                                              ; preds = %467, %460
  %490 = load i32, ptr %17, align 4, !tbaa !5
  %491 = call ptr @__errno_location() #11
  store i32 %490, ptr %491, align 4, !tbaa !5
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = load i32, ptr @test_count, align 4, !tbaa !5
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror(i32 noundef %495, ptr noundef @.str.4)
  %497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror_debug(i32 noundef %498, ptr noundef @.str.4)
  %500 = call ptr @__errno_location() #11
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call ptr @strerror(i32 noundef %501) #10
  %503 = call ptr @__errno_location() #11
  %504 = load i32, ptr %503, align 4, !tbaa !5
  %505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %492, ptr noundef @.str.5, i32 noundef %493, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 53, ptr noundef %496, ptr noundef %499, ptr noundef %502, i32 noundef %504) #10
  br label %506

506:                                              ; preds = %489, %472
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507
  call void @exit(i32 noundef 1) #12
  unreachable

509:                                              ; No predecessors!
  br label %510

510:                                              ; preds = %509
  br label %511

511:                                              ; preds = %510, %453
  br label %512

512:                                              ; preds = %511
  br label %513

513:                                              ; preds = %512
  br label %514

514:                                              ; preds = %513
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr @test_count, align 4, !tbaa !5
  %517 = call noalias ptr @malloc(i64 noundef 12000) #13
  store ptr %517, ptr %10, align 8, !tbaa !9
  %518 = icmp eq ptr %517, null
  br i1 %518, label %519, label %572

519:                                              ; preds = %514
  br label %520

520:                                              ; preds = %519
  br label %521

521:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %522 = call ptr @__errno_location() #11
  %523 = load i32, ptr %522, align 4, !tbaa !5
  store i32 %523, ptr %18, align 4, !tbaa !5
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = call i32 @s2n_print_stacktrace(ptr noundef %524)
  %526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %527 = trunc i8 %526 to i1
  br i1 %527, label %528, label %550

528:                                              ; preds = %521
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = call i32 @fileno(ptr noundef %529) #10
  %531 = call i32 @isatty(i32 noundef %530) #10
  %532 = icmp ne i32 %531, 0
  br i1 %532, label %533, label %550

533:                                              ; preds = %528
  %534 = load i32, ptr %18, align 4, !tbaa !5
  %535 = call ptr @__errno_location() #11
  store i32 %534, ptr %535, align 4, !tbaa !5
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = load i32, ptr @test_count, align 4, !tbaa !5
  %538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call ptr @s2n_strerror(i32 noundef %539, ptr noundef @.str.4)
  %541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror_debug(i32 noundef %542, ptr noundef @.str.4)
  %544 = call ptr @__errno_location() #11
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call ptr @strerror(i32 noundef %545) #10
  %547 = call ptr @__errno_location() #11
  %548 = load i32, ptr %547, align 4, !tbaa !5
  %549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %536, ptr noundef @.str.2, i32 noundef %537, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 54, ptr noundef %540, ptr noundef %543, ptr noundef %546, i32 noundef %548) #10
  br label %567

550:                                              ; preds = %528, %521
  %551 = load i32, ptr %18, align 4, !tbaa !5
  %552 = call ptr @__errno_location() #11
  store i32 %551, ptr %552, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror(i32 noundef %556, ptr noundef @.str.4)
  %558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror_debug(i32 noundef %559, ptr noundef @.str.4)
  %561 = call ptr @__errno_location() #11
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @strerror(i32 noundef %562) #10
  %564 = call ptr @__errno_location() #11
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef @.str.5, i32 noundef %554, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 54, ptr noundef %557, ptr noundef %560, ptr noundef %563, i32 noundef %565) #10
  br label %567

567:                                              ; preds = %550, %533
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568
  call void @exit(i32 noundef 1) #12
  unreachable

570:                                              ; No predecessors!
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571, %514
  br label %573

573:                                              ; preds = %572
  br label %574

574:                                              ; preds = %573
  br label %575

575:                                              ; preds = %574
  %576 = load i32, ptr @test_count, align 4, !tbaa !5
  %577 = add nsw i32 %576, 1
  store i32 %577, ptr @test_count, align 4, !tbaa !5
  %578 = call noalias ptr @malloc(i64 noundef 12000) #13
  store ptr %578, ptr %11, align 8, !tbaa !9
  %579 = icmp eq ptr %578, null
  br i1 %579, label %580, label %633

580:                                              ; preds = %575
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  %583 = call ptr @__errno_location() #11
  %584 = load i32, ptr %583, align 4, !tbaa !5
  store i32 %584, ptr %19, align 4, !tbaa !5
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = call i32 @s2n_print_stacktrace(ptr noundef %585)
  %587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %588 = trunc i8 %587 to i1
  br i1 %588, label %589, label %611

589:                                              ; preds = %582
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = call i32 @fileno(ptr noundef %590) #10
  %592 = call i32 @isatty(i32 noundef %591) #10
  %593 = icmp ne i32 %592, 0
  br i1 %593, label %594, label %611

594:                                              ; preds = %589
  %595 = load i32, ptr %19, align 4, !tbaa !5
  %596 = call ptr @__errno_location() #11
  store i32 %595, ptr %596, align 4, !tbaa !5
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = load i32, ptr @test_count, align 4, !tbaa !5
  %599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = call ptr @s2n_strerror(i32 noundef %600, ptr noundef @.str.4)
  %602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror_debug(i32 noundef %603, ptr noundef @.str.4)
  %605 = call ptr @__errno_location() #11
  %606 = load i32, ptr %605, align 4, !tbaa !5
  %607 = call ptr @strerror(i32 noundef %606) #10
  %608 = call ptr @__errno_location() #11
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %597, ptr noundef @.str.2, i32 noundef %598, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 55, ptr noundef %601, ptr noundef %604, ptr noundef %607, i32 noundef %609) #10
  br label %628

611:                                              ; preds = %589, %582
  %612 = load i32, ptr %19, align 4, !tbaa !5
  %613 = call ptr @__errno_location() #11
  store i32 %612, ptr %613, align 4, !tbaa !5
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = load i32, ptr @test_count, align 4, !tbaa !5
  %616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = call ptr @s2n_strerror(i32 noundef %617, ptr noundef @.str.4)
  %619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %620 = load i32, ptr %619, align 4, !tbaa !5
  %621 = call ptr @s2n_strerror_debug(i32 noundef %620, ptr noundef @.str.4)
  %622 = call ptr @__errno_location() #11
  %623 = load i32, ptr %622, align 4, !tbaa !5
  %624 = call ptr @strerror(i32 noundef %623) #10
  %625 = call ptr @__errno_location() #11
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %614, ptr noundef @.str.5, i32 noundef %615, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 55, ptr noundef %618, ptr noundef %621, ptr noundef %624, i32 noundef %626) #10
  br label %628

628:                                              ; preds = %611, %594
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %629

629:                                              ; preds = %628
  br label %630

630:                                              ; preds = %629
  call void @exit(i32 noundef 1) #12
  unreachable

631:                                              ; No predecessors!
  br label %632

632:                                              ; preds = %631
  br label %633

633:                                              ; preds = %632, %575
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634
  br label %636

636:                                              ; preds = %635
  %637 = load i32, ptr @test_count, align 4, !tbaa !5
  %638 = add nsw i32 %637, 1
  store i32 %638, ptr @test_count, align 4, !tbaa !5
  %639 = call ptr @s2n_config_new()
  store ptr %639, ptr %6, align 8, !tbaa !9
  %640 = icmp eq ptr %639, null
  br i1 %640, label %641, label %694

641:                                              ; preds = %636
  br label %642

642:                                              ; preds = %641
  br label %643

643:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %644 = call ptr @__errno_location() #11
  %645 = load i32, ptr %644, align 4, !tbaa !5
  store i32 %645, ptr %20, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = call i32 @s2n_print_stacktrace(ptr noundef %646)
  %648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %649 = trunc i8 %648 to i1
  br i1 %649, label %650, label %672

650:                                              ; preds = %643
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = call i32 @fileno(ptr noundef %651) #10
  %653 = call i32 @isatty(i32 noundef %652) #10
  %654 = icmp ne i32 %653, 0
  br i1 %654, label %655, label %672

655:                                              ; preds = %650
  %656 = load i32, ptr %20, align 4, !tbaa !5
  %657 = call ptr @__errno_location() #11
  store i32 %656, ptr %657, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = load i32, ptr @test_count, align 4, !tbaa !5
  %660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror(i32 noundef %661, ptr noundef @.str.4)
  %663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call ptr @s2n_strerror_debug(i32 noundef %664, ptr noundef @.str.4)
  %666 = call ptr @__errno_location() #11
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @strerror(i32 noundef %667) #10
  %669 = call ptr @__errno_location() #11
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %658, ptr noundef @.str.2, i32 noundef %659, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 61, ptr noundef %662, ptr noundef %665, ptr noundef %668, i32 noundef %670) #10
  br label %689

672:                                              ; preds = %650, %643
  %673 = load i32, ptr %20, align 4, !tbaa !5
  %674 = call ptr @__errno_location() #11
  store i32 %673, ptr %674, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror(i32 noundef %678, ptr noundef @.str.4)
  %680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @s2n_strerror_debug(i32 noundef %681, ptr noundef @.str.4)
  %683 = call ptr @__errno_location() #11
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call ptr @strerror(i32 noundef %684) #10
  %686 = call ptr @__errno_location() #11
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef @.str.5, i32 noundef %676, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 61, ptr noundef %679, ptr noundef %682, ptr noundef %685, i32 noundef %687) #10
  br label %689

689:                                              ; preds = %672, %655
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %690

690:                                              ; preds = %689
  br label %691

691:                                              ; preds = %690
  call void @exit(i32 noundef 1) #12
  unreachable

692:                                              ; No predecessors!
  br label %693

693:                                              ; preds = %692
  br label %694

694:                                              ; preds = %693, %636
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  br label %697

697:                                              ; preds = %696
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = add nsw i32 %698, 1
  store i32 %699, ptr @test_count, align 4, !tbaa !5
  %700 = load ptr, ptr %9, align 8, !tbaa !9
  %701 = call i32 @s2n_read_test_pem(ptr noundef @.str.13, ptr noundef %700, i64 noundef 12000)
  %702 = icmp eq i32 %701, -1
  br i1 %702, label %703, label %756

703:                                              ; preds = %697
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %706 = call ptr @__errno_location() #11
  %707 = load i32, ptr %706, align 4, !tbaa !5
  store i32 %707, ptr %21, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = call i32 @s2n_print_stacktrace(ptr noundef %708)
  %710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %711 = trunc i8 %710 to i1
  br i1 %711, label %712, label %734

712:                                              ; preds = %705
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @fileno(ptr noundef %713) #10
  %715 = call i32 @isatty(i32 noundef %714) #10
  %716 = icmp ne i32 %715, 0
  br i1 %716, label %717, label %734

717:                                              ; preds = %712
  %718 = load i32, ptr %21, align 4, !tbaa !5
  %719 = call ptr @__errno_location() #11
  store i32 %718, ptr %719, align 4, !tbaa !5
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = load i32, ptr @test_count, align 4, !tbaa !5
  %722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror(i32 noundef %723, ptr noundef @.str.4)
  %725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %726 = load i32, ptr %725, align 4, !tbaa !5
  %727 = call ptr @s2n_strerror_debug(i32 noundef %726, ptr noundef @.str.4)
  %728 = call ptr @__errno_location() #11
  %729 = load i32, ptr %728, align 4, !tbaa !5
  %730 = call ptr @strerror(i32 noundef %729) #10
  %731 = call ptr @__errno_location() #11
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %720, ptr noundef @.str.2, i32 noundef %721, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 62, ptr noundef %724, ptr noundef %727, ptr noundef %730, i32 noundef %732) #10
  br label %751

734:                                              ; preds = %712, %705
  %735 = load i32, ptr %21, align 4, !tbaa !5
  %736 = call ptr @__errno_location() #11
  store i32 %735, ptr %736, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror(i32 noundef %740, ptr noundef @.str.4)
  %742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %743 = load i32, ptr %742, align 4, !tbaa !5
  %744 = call ptr @s2n_strerror_debug(i32 noundef %743, ptr noundef @.str.4)
  %745 = call ptr @__errno_location() #11
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call ptr @strerror(i32 noundef %746) #10
  %748 = call ptr @__errno_location() #11
  %749 = load i32, ptr %748, align 4, !tbaa !5
  %750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %737, ptr noundef @.str.5, i32 noundef %738, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 62, ptr noundef %741, ptr noundef %744, ptr noundef %747, i32 noundef %749) #10
  br label %751

751:                                              ; preds = %734, %717
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %752

752:                                              ; preds = %751
  br label %753

753:                                              ; preds = %752
  call void @exit(i32 noundef 1) #12
  unreachable

754:                                              ; No predecessors!
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755, %697
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  br label %759

759:                                              ; preds = %758
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = add nsw i32 %760, 1
  store i32 %761, ptr @test_count, align 4, !tbaa !5
  %762 = load ptr, ptr %10, align 8, !tbaa !9
  %763 = call i32 @s2n_read_test_pem(ptr noundef @.str.15, ptr noundef %762, i64 noundef 12000)
  %764 = icmp eq i32 %763, -1
  br i1 %764, label %765, label %818

765:                                              ; preds = %759
  br label %766

766:                                              ; preds = %765
  br label %767

767:                                              ; preds = %766
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %768 = call ptr @__errno_location() #11
  %769 = load i32, ptr %768, align 4, !tbaa !5
  store i32 %769, ptr %22, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = call i32 @s2n_print_stacktrace(ptr noundef %770)
  %772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %773 = trunc i8 %772 to i1
  br i1 %773, label %774, label %796

774:                                              ; preds = %767
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = call i32 @fileno(ptr noundef %775) #10
  %777 = call i32 @isatty(i32 noundef %776) #10
  %778 = icmp ne i32 %777, 0
  br i1 %778, label %779, label %796

779:                                              ; preds = %774
  %780 = load i32, ptr %22, align 4, !tbaa !5
  %781 = call ptr @__errno_location() #11
  store i32 %780, ptr %781, align 4, !tbaa !5
  %782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %783 = load i32, ptr @test_count, align 4, !tbaa !5
  %784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = call ptr @s2n_strerror(i32 noundef %785, ptr noundef @.str.4)
  %787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %788 = load i32, ptr %787, align 4, !tbaa !5
  %789 = call ptr @s2n_strerror_debug(i32 noundef %788, ptr noundef @.str.4)
  %790 = call ptr @__errno_location() #11
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = call ptr @strerror(i32 noundef %791) #10
  %793 = call ptr @__errno_location() #11
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %782, ptr noundef @.str.2, i32 noundef %783, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 63, ptr noundef %786, ptr noundef %789, ptr noundef %792, i32 noundef %794) #10
  br label %813

796:                                              ; preds = %774, %767
  %797 = load i32, ptr %22, align 4, !tbaa !5
  %798 = call ptr @__errno_location() #11
  store i32 %797, ptr %798, align 4, !tbaa !5
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror(i32 noundef %802, ptr noundef @.str.4)
  %804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %805 = load i32, ptr %804, align 4, !tbaa !5
  %806 = call ptr @s2n_strerror_debug(i32 noundef %805, ptr noundef @.str.4)
  %807 = call ptr @__errno_location() #11
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = call ptr @strerror(i32 noundef %808) #10
  %810 = call ptr @__errno_location() #11
  %811 = load i32, ptr %810, align 4, !tbaa !5
  %812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %799, ptr noundef @.str.5, i32 noundef %800, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 63, ptr noundef %803, ptr noundef %806, ptr noundef %809, i32 noundef %811) #10
  br label %813

813:                                              ; preds = %796, %779
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %814

814:                                              ; preds = %813
  br label %815

815:                                              ; preds = %814
  call void @exit(i32 noundef 1) #12
  unreachable

816:                                              ; No predecessors!
  br label %817

817:                                              ; preds = %816
  br label %818

818:                                              ; preds = %817, %759
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  br label %821

821:                                              ; preds = %820
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = add nsw i32 %822, 1
  store i32 %823, ptr @test_count, align 4, !tbaa !5
  %824 = load ptr, ptr %11, align 8, !tbaa !9
  %825 = call i32 @s2n_read_test_pem(ptr noundef @.str.17, ptr noundef %824, i64 noundef 12000)
  %826 = icmp eq i32 %825, -1
  br i1 %826, label %827, label %880

827:                                              ; preds = %821
  br label %828

828:                                              ; preds = %827
  br label %829

829:                                              ; preds = %828
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %830 = call ptr @__errno_location() #11
  %831 = load i32, ptr %830, align 4, !tbaa !5
  store i32 %831, ptr %23, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @s2n_print_stacktrace(ptr noundef %832)
  %834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %835 = trunc i8 %834 to i1
  br i1 %835, label %836, label %858

836:                                              ; preds = %829
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = call i32 @fileno(ptr noundef %837) #10
  %839 = call i32 @isatty(i32 noundef %838) #10
  %840 = icmp ne i32 %839, 0
  br i1 %840, label %841, label %858

841:                                              ; preds = %836
  %842 = load i32, ptr %23, align 4, !tbaa !5
  %843 = call ptr @__errno_location() #11
  store i32 %842, ptr %843, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror(i32 noundef %847, ptr noundef @.str.4)
  %849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror_debug(i32 noundef %850, ptr noundef @.str.4)
  %852 = call ptr @__errno_location() #11
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = call ptr @strerror(i32 noundef %853) #10
  %855 = call ptr @__errno_location() #11
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %844, ptr noundef @.str.2, i32 noundef %845, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 64, ptr noundef %848, ptr noundef %851, ptr noundef %854, i32 noundef %856) #10
  br label %875

858:                                              ; preds = %836, %829
  %859 = load i32, ptr %23, align 4, !tbaa !5
  %860 = call ptr @__errno_location() #11
  store i32 %859, ptr %860, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror(i32 noundef %864, ptr noundef @.str.4)
  %866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @s2n_strerror_debug(i32 noundef %867, ptr noundef @.str.4)
  %869 = call ptr @__errno_location() #11
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call ptr @strerror(i32 noundef %870) #10
  %872 = call ptr @__errno_location() #11
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %861, ptr noundef @.str.5, i32 noundef %862, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 64, ptr noundef %865, ptr noundef %868, ptr noundef %871, i32 noundef %873) #10
  br label %875

875:                                              ; preds = %858, %841
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %876

876:                                              ; preds = %875
  br label %877

877:                                              ; preds = %876
  call void @exit(i32 noundef 1) #12
  unreachable

878:                                              ; No predecessors!
  br label %879

879:                                              ; preds = %878
  br label %880

880:                                              ; preds = %879, %821
  br label %881

881:                                              ; preds = %880
  br label %882

882:                                              ; preds = %881
  br label %883

883:                                              ; preds = %882
  %884 = load i32, ptr @test_count, align 4, !tbaa !5
  %885 = add nsw i32 %884, 1
  store i32 %885, ptr @test_count, align 4, !tbaa !5
  %886 = load ptr, ptr %6, align 8, !tbaa !9
  %887 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %886, ptr noundef @.str.19)
  %888 = icmp eq i32 %887, -1
  br i1 %888, label %889, label %942

889:                                              ; preds = %883
  br label %890

890:                                              ; preds = %889
  br label %891

891:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %892 = call ptr @__errno_location() #11
  %893 = load i32, ptr %892, align 4, !tbaa !5
  store i32 %893, ptr %24, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = call i32 @s2n_print_stacktrace(ptr noundef %894)
  %896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %897 = trunc i8 %896 to i1
  br i1 %897, label %898, label %920

898:                                              ; preds = %891
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = call i32 @fileno(ptr noundef %899) #10
  %901 = call i32 @isatty(i32 noundef %900) #10
  %902 = icmp ne i32 %901, 0
  br i1 %902, label %903, label %920

903:                                              ; preds = %898
  %904 = load i32, ptr %24, align 4, !tbaa !5
  %905 = call ptr @__errno_location() #11
  store i32 %904, ptr %905, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = call ptr @s2n_strerror(i32 noundef %909, ptr noundef @.str.4)
  %911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %912 = load i32, ptr %911, align 4, !tbaa !5
  %913 = call ptr @s2n_strerror_debug(i32 noundef %912, ptr noundef @.str.4)
  %914 = call ptr @__errno_location() #11
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call ptr @strerror(i32 noundef %915) #10
  %917 = call ptr @__errno_location() #11
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %906, ptr noundef @.str.2, i32 noundef %907, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 68, ptr noundef %910, ptr noundef %913, ptr noundef %916, i32 noundef %918) #10
  br label %937

920:                                              ; preds = %898, %891
  %921 = load i32, ptr %24, align 4, !tbaa !5
  %922 = call ptr @__errno_location() #11
  store i32 %921, ptr %922, align 4, !tbaa !5
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = call ptr @s2n_strerror(i32 noundef %926, ptr noundef @.str.4)
  %928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %929 = load i32, ptr %928, align 4, !tbaa !5
  %930 = call ptr @s2n_strerror_debug(i32 noundef %929, ptr noundef @.str.4)
  %931 = call ptr @__errno_location() #11
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call ptr @strerror(i32 noundef %932) #10
  %934 = call ptr @__errno_location() #11
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %923, ptr noundef @.str.5, i32 noundef %924, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 68, ptr noundef %927, ptr noundef %930, ptr noundef %933, i32 noundef %935) #10
  br label %937

937:                                              ; preds = %920, %903
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %938

938:                                              ; preds = %937
  br label %939

939:                                              ; preds = %938
  call void @exit(i32 noundef 1) #12
  unreachable

940:                                              ; No predecessors!
  br label %941

941:                                              ; preds = %940
  br label %942

942:                                              ; preds = %941, %883
  br label %943

943:                                              ; preds = %942
  br label %944

944:                                              ; preds = %943
  br label %945

945:                                              ; preds = %944
  %946 = load i32, ptr @test_count, align 4, !tbaa !5
  %947 = add nsw i32 %946, 1
  store i32 %947, ptr @test_count, align 4, !tbaa !5
  %948 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %948, ptr %12, align 8, !tbaa !9
  %949 = icmp eq ptr %948, null
  br i1 %949, label %950, label %1003

950:                                              ; preds = %945
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %953 = call ptr @__errno_location() #11
  %954 = load i32, ptr %953, align 4, !tbaa !5
  store i32 %954, ptr %25, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = call i32 @s2n_print_stacktrace(ptr noundef %955)
  %957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %958 = trunc i8 %957 to i1
  br i1 %958, label %959, label %981

959:                                              ; preds = %952
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @fileno(ptr noundef %960) #10
  %962 = call i32 @isatty(i32 noundef %961) #10
  %963 = icmp ne i32 %962, 0
  br i1 %963, label %964, label %981

964:                                              ; preds = %959
  %965 = load i32, ptr %25, align 4, !tbaa !5
  %966 = call ptr @__errno_location() #11
  store i32 %965, ptr %966, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror(i32 noundef %970, ptr noundef @.str.4)
  %972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror_debug(i32 noundef %973, ptr noundef @.str.4)
  %975 = call ptr @__errno_location() #11
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = call ptr @strerror(i32 noundef %976) #10
  %978 = call ptr @__errno_location() #11
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef @.str.2, i32 noundef %968, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 70, ptr noundef %971, ptr noundef %974, ptr noundef %977, i32 noundef %979) #10
  br label %998

981:                                              ; preds = %959, %952
  %982 = load i32, ptr %25, align 4, !tbaa !5
  %983 = call ptr @__errno_location() #11
  store i32 %982, ptr %983, align 4, !tbaa !5
  %984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %985 = load i32, ptr @test_count, align 4, !tbaa !5
  %986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror(i32 noundef %987, ptr noundef @.str.4)
  %989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror_debug(i32 noundef %990, ptr noundef @.str.4)
  %992 = call ptr @__errno_location() #11
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @strerror(i32 noundef %993) #10
  %995 = call ptr @__errno_location() #11
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %984, ptr noundef @.str.5, i32 noundef %985, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 70, ptr noundef %988, ptr noundef %991, ptr noundef %994, i32 noundef %996) #10
  br label %998

998:                                              ; preds = %981, %964
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %999

999:                                              ; preds = %998
  br label %1000

1000:                                             ; preds = %999
  call void @exit(i32 noundef 1) #12
  unreachable

1001:                                             ; No predecessors!
  br label %1002

1002:                                             ; preds = %1001
  br label %1003

1003:                                             ; preds = %1002, %945
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

1005:                                             ; preds = %1004
  br label %1006

1006:                                             ; preds = %1005
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = add nsw i32 %1007, 1
  store i32 %1008, ptr @test_count, align 4, !tbaa !5
  %1009 = load ptr, ptr %12, align 8, !tbaa !9
  %1010 = load ptr, ptr %9, align 8, !tbaa !9
  %1011 = load ptr, ptr %10, align 8, !tbaa !9
  %1012 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %1009, ptr noundef %1010, ptr noundef %1011)
  %1013 = icmp eq i32 %1012, -1
  br i1 %1013, label %1014, label %1067

1014:                                             ; preds = %1006
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

1016:                                             ; preds = %1015
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %1017 = call ptr @__errno_location() #11
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  store i32 %1018, ptr %26, align 4, !tbaa !5
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = call i32 @s2n_print_stacktrace(ptr noundef %1019)
  %1021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1022 = trunc i8 %1021 to i1
  br i1 %1022, label %1023, label %1045

1023:                                             ; preds = %1016
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = call i32 @fileno(ptr noundef %1024) #10
  %1026 = call i32 @isatty(i32 noundef %1025) #10
  %1027 = icmp ne i32 %1026, 0
  br i1 %1027, label %1028, label %1045

1028:                                             ; preds = %1023
  %1029 = load i32, ptr %26, align 4, !tbaa !5
  %1030 = call ptr @__errno_location() #11
  store i32 %1029, ptr %1030, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror(i32 noundef %1034, ptr noundef @.str.4)
  %1036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = call ptr @s2n_strerror_debug(i32 noundef %1037, ptr noundef @.str.4)
  %1039 = call ptr @__errno_location() #11
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = call ptr @strerror(i32 noundef %1040) #10
  %1042 = call ptr @__errno_location() #11
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef @.str.2, i32 noundef %1032, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1035, ptr noundef %1038, ptr noundef %1041, i32 noundef %1043) #10
  br label %1062

1045:                                             ; preds = %1023, %1016
  %1046 = load i32, ptr %26, align 4, !tbaa !5
  %1047 = call ptr @__errno_location() #11
  store i32 %1046, ptr %1047, align 4, !tbaa !5
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = load i32, ptr @test_count, align 4, !tbaa !5
  %1050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror(i32 noundef %1051, ptr noundef @.str.4)
  %1053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror_debug(i32 noundef %1054, ptr noundef @.str.4)
  %1056 = call ptr @__errno_location() #11
  %1057 = load i32, ptr %1056, align 4, !tbaa !5
  %1058 = call ptr @strerror(i32 noundef %1057) #10
  %1059 = call ptr @__errno_location() #11
  %1060 = load i32, ptr %1059, align 4, !tbaa !5
  %1061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1048, ptr noundef @.str.5, i32 noundef %1049, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1052, ptr noundef %1055, ptr noundef %1058, i32 noundef %1060) #10
  br label %1062

1062:                                             ; preds = %1045, %1028
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %1063

1063:                                             ; preds = %1062
  br label %1064

1064:                                             ; preds = %1063
  call void @exit(i32 noundef 1) #12
  unreachable

1065:                                             ; No predecessors!
  br label %1066

1066:                                             ; preds = %1065
  br label %1067

1067:                                             ; preds = %1066, %1006
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  br label %1070

1070:                                             ; preds = %1069
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = add nsw i32 %1071, 1
  store i32 %1072, ptr @test_count, align 4, !tbaa !5
  %1073 = load ptr, ptr %6, align 8, !tbaa !9
  %1074 = load ptr, ptr %12, align 8, !tbaa !9
  %1075 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1073, ptr noundef %1074)
  %1076 = icmp eq i32 %1075, -1
  br i1 %1076, label %1077, label %1130

1077:                                             ; preds = %1070
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

1079:                                             ; preds = %1078
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %1080 = call ptr @__errno_location() #11
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  store i32 %1081, ptr %27, align 4, !tbaa !5
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = call i32 @s2n_print_stacktrace(ptr noundef %1082)
  %1084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1085 = trunc i8 %1084 to i1
  br i1 %1085, label %1086, label %1108

1086:                                             ; preds = %1079
  %1087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1088 = call i32 @fileno(ptr noundef %1087) #10
  %1089 = call i32 @isatty(i32 noundef %1088) #10
  %1090 = icmp ne i32 %1089, 0
  br i1 %1090, label %1091, label %1108

1091:                                             ; preds = %1086
  %1092 = load i32, ptr %27, align 4, !tbaa !5
  %1093 = call ptr @__errno_location() #11
  store i32 %1092, ptr %1093, align 4, !tbaa !5
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = load i32, ptr @test_count, align 4, !tbaa !5
  %1096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror(i32 noundef %1097, ptr noundef @.str.4)
  %1099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call ptr @s2n_strerror_debug(i32 noundef %1100, ptr noundef @.str.4)
  %1102 = call ptr @__errno_location() #11
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  %1104 = call ptr @strerror(i32 noundef %1103) #10
  %1105 = call ptr @__errno_location() #11
  %1106 = load i32, ptr %1105, align 4, !tbaa !5
  %1107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1094, ptr noundef @.str.2, i32 noundef %1095, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1098, ptr noundef %1101, ptr noundef %1104, i32 noundef %1106) #10
  br label %1125

1108:                                             ; preds = %1086, %1079
  %1109 = load i32, ptr %27, align 4, !tbaa !5
  %1110 = call ptr @__errno_location() #11
  store i32 %1109, ptr %1110, align 4, !tbaa !5
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = load i32, ptr @test_count, align 4, !tbaa !5
  %1113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror(i32 noundef %1114, ptr noundef @.str.4)
  %1116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror_debug(i32 noundef %1117, ptr noundef @.str.4)
  %1119 = call ptr @__errno_location() #11
  %1120 = load i32, ptr %1119, align 4, !tbaa !5
  %1121 = call ptr @strerror(i32 noundef %1120) #10
  %1122 = call ptr @__errno_location() #11
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1111, ptr noundef @.str.5, i32 noundef %1112, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1115, ptr noundef %1118, ptr noundef %1121, i32 noundef %1123) #10
  br label %1125

1125:                                             ; preds = %1108, %1091
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1126

1126:                                             ; preds = %1125
  br label %1127

1127:                                             ; preds = %1126
  call void @exit(i32 noundef 1) #12
  unreachable

1128:                                             ; No predecessors!
  br label %1129

1129:                                             ; preds = %1128
  br label %1130

1130:                                             ; preds = %1129, %1070
  br label %1131

1131:                                             ; preds = %1130
  br label %1132

1132:                                             ; preds = %1131
  br label %1133

1133:                                             ; preds = %1132
  %1134 = load i32, ptr @test_count, align 4, !tbaa !5
  %1135 = add nsw i32 %1134, 1
  store i32 %1135, ptr @test_count, align 4, !tbaa !5
  %1136 = load ptr, ptr %6, align 8, !tbaa !9
  %1137 = load ptr, ptr %11, align 8, !tbaa !9
  %1138 = call i32 @s2n_config_add_dhparams(ptr noundef %1136, ptr noundef %1137)
  %1139 = icmp eq i32 %1138, -1
  br i1 %1139, label %1140, label %1193

1140:                                             ; preds = %1133
  br label %1141

1141:                                             ; preds = %1140
  br label %1142

1142:                                             ; preds = %1141
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %1143 = call ptr @__errno_location() #11
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  store i32 %1144, ptr %28, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @s2n_print_stacktrace(ptr noundef %1145)
  %1147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1148 = trunc i8 %1147 to i1
  br i1 %1148, label %1149, label %1171

1149:                                             ; preds = %1142
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = call i32 @fileno(ptr noundef %1150) #10
  %1152 = call i32 @isatty(i32 noundef %1151) #10
  %1153 = icmp ne i32 %1152, 0
  br i1 %1153, label %1154, label %1171

1154:                                             ; preds = %1149
  %1155 = load i32, ptr %28, align 4, !tbaa !5
  %1156 = call ptr @__errno_location() #11
  store i32 %1155, ptr %1156, align 4, !tbaa !5
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = load i32, ptr @test_count, align 4, !tbaa !5
  %1159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror(i32 noundef %1160, ptr noundef @.str.4)
  %1162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @s2n_strerror_debug(i32 noundef %1163, ptr noundef @.str.4)
  %1165 = call ptr @__errno_location() #11
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call ptr @strerror(i32 noundef %1166) #10
  %1168 = call ptr @__errno_location() #11
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1157, ptr noundef @.str.2, i32 noundef %1158, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1161, ptr noundef %1164, ptr noundef %1167, i32 noundef %1169) #10
  br label %1188

1171:                                             ; preds = %1149, %1142
  %1172 = load i32, ptr %28, align 4, !tbaa !5
  %1173 = call ptr @__errno_location() #11
  store i32 %1172, ptr %1173, align 4, !tbaa !5
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror(i32 noundef %1177, ptr noundef @.str.4)
  %1179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call ptr @s2n_strerror_debug(i32 noundef %1180, ptr noundef @.str.4)
  %1182 = call ptr @__errno_location() #11
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call ptr @strerror(i32 noundef %1183) #10
  %1185 = call ptr @__errno_location() #11
  %1186 = load i32, ptr %1185, align 4, !tbaa !5
  %1187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1174, ptr noundef @.str.5, i32 noundef %1175, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1178, ptr noundef %1181, ptr noundef %1184, i32 noundef %1186) #10
  br label %1188

1188:                                             ; preds = %1171, %1154
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1189

1189:                                             ; preds = %1188
  br label %1190

1190:                                             ; preds = %1189
  call void @exit(i32 noundef 1) #12
  unreachable

1191:                                             ; No predecessors!
  br label %1192

1192:                                             ; preds = %1191
  br label %1193

1193:                                             ; preds = %1192, %1133
  br label %1194

1194:                                             ; preds = %1193
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

1196:                                             ; preds = %1195
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = add nsw i32 %1197, 1
  store i32 %1198, ptr @test_count, align 4, !tbaa !5
  %1199 = load ptr, ptr %6, align 8, !tbaa !9
  %1200 = getelementptr inbounds %struct.s2n_config, ptr %1199, i32 0, i32 7
  %1201 = load ptr, ptr %1200, align 8, !tbaa !15
  store ptr %1201, ptr %7, align 8, !tbaa !9
  %1202 = icmp eq ptr %1201, null
  br i1 %1202, label %1203, label %1256

1203:                                             ; preds = %1196
  br label %1204

1204:                                             ; preds = %1203
  br label %1205

1205:                                             ; preds = %1204
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %1206 = call ptr @__errno_location() #11
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  store i32 %1207, ptr %29, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @s2n_print_stacktrace(ptr noundef %1208)
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1211 = trunc i8 %1210 to i1
  br i1 %1211, label %1212, label %1234

1212:                                             ; preds = %1205
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @fileno(ptr noundef %1213) #10
  %1215 = call i32 @isatty(i32 noundef %1214) #10
  %1216 = icmp ne i32 %1215, 0
  br i1 %1216, label %1217, label %1234

1217:                                             ; preds = %1212
  %1218 = load i32, ptr %29, align 4, !tbaa !5
  %1219 = call ptr @__errno_location() #11
  store i32 %1218, ptr %1219, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror(i32 noundef %1223, ptr noundef @.str.4)
  %1225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  %1227 = call ptr @s2n_strerror_debug(i32 noundef %1226, ptr noundef @.str.4)
  %1228 = call ptr @__errno_location() #11
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call ptr @strerror(i32 noundef %1229) #10
  %1231 = call ptr @__errno_location() #11
  %1232 = load i32, ptr %1231, align 4, !tbaa !5
  %1233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1220, ptr noundef @.str.2, i32 noundef %1221, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1224, ptr noundef %1227, ptr noundef %1230, i32 noundef %1232) #10
  br label %1251

1234:                                             ; preds = %1212, %1205
  %1235 = load i32, ptr %29, align 4, !tbaa !5
  %1236 = call ptr @__errno_location() #11
  store i32 %1235, ptr %1236, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror(i32 noundef %1240, ptr noundef @.str.4)
  %1242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef @.str.4)
  %1245 = call ptr @__errno_location() #11
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call ptr @strerror(i32 noundef %1246) #10
  %1248 = call ptr @__errno_location() #11
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1237, ptr noundef @.str.5, i32 noundef %1238, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1241, ptr noundef %1244, ptr noundef %1247, i32 noundef %1249) #10
  br label %1251

1251:                                             ; preds = %1234, %1217
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1252

1252:                                             ; preds = %1251
  br label %1253

1253:                                             ; preds = %1252
  call void @exit(i32 noundef 1) #12
  unreachable

1254:                                             ; No predecessors!
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

1256:                                             ; preds = %1255, %1196
  br label %1257

1257:                                             ; preds = %1256
  br label %1258

1258:                                             ; preds = %1257
  br label %1259

1259:                                             ; preds = %1258
  %1260 = load i32, ptr @test_count, align 4, !tbaa !5
  %1261 = add nsw i32 %1260, 1
  store i32 %1261, ptr @test_count, align 4, !tbaa !5
  %1262 = load ptr, ptr %7, align 8, !tbaa !9
  %1263 = getelementptr inbounds %struct.s2n_security_policy, ptr %1262, i32 0, i32 1
  %1264 = load ptr, ptr %1263, align 8, !tbaa !22
  store ptr %1264, ptr %8, align 8, !tbaa !9
  %1265 = icmp eq ptr %1264, null
  br i1 %1265, label %1266, label %1319

1266:                                             ; preds = %1259
  br label %1267

1267:                                             ; preds = %1266
  br label %1268

1268:                                             ; preds = %1267
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  %1269 = call ptr @__errno_location() #11
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  store i32 %1270, ptr %30, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = call i32 @s2n_print_stacktrace(ptr noundef %1271)
  %1273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1274 = trunc i8 %1273 to i1
  br i1 %1274, label %1275, label %1297

1275:                                             ; preds = %1268
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = call i32 @fileno(ptr noundef %1276) #10
  %1278 = call i32 @isatty(i32 noundef %1277) #10
  %1279 = icmp ne i32 %1278, 0
  br i1 %1279, label %1280, label %1297

1280:                                             ; preds = %1275
  %1281 = load i32, ptr %30, align 4, !tbaa !5
  %1282 = call ptr @__errno_location() #11
  store i32 %1281, ptr %1282, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = load i32, ptr @test_count, align 4, !tbaa !5
  %1285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = call ptr @s2n_strerror(i32 noundef %1286, ptr noundef @.str.4)
  %1288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1289 = load i32, ptr %1288, align 4, !tbaa !5
  %1290 = call ptr @s2n_strerror_debug(i32 noundef %1289, ptr noundef @.str.4)
  %1291 = call ptr @__errno_location() #11
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = call ptr @strerror(i32 noundef %1292) #10
  %1294 = call ptr @__errno_location() #11
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1283, ptr noundef @.str.2, i32 noundef %1284, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1287, ptr noundef %1290, ptr noundef %1293, i32 noundef %1295) #10
  br label %1314

1297:                                             ; preds = %1275, %1268
  %1298 = load i32, ptr %30, align 4, !tbaa !5
  %1299 = call ptr @__errno_location() #11
  store i32 %1298, ptr %1299, align 4, !tbaa !5
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = load i32, ptr @test_count, align 4, !tbaa !5
  %1302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = call ptr @s2n_strerror(i32 noundef %1303, ptr noundef @.str.4)
  %1305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror_debug(i32 noundef %1306, ptr noundef @.str.4)
  %1308 = call ptr @__errno_location() #11
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @strerror(i32 noundef %1309) #10
  %1311 = call ptr @__errno_location() #11
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1300, ptr noundef @.str.5, i32 noundef %1301, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1304, ptr noundef %1307, ptr noundef %1310, i32 noundef %1312) #10
  br label %1314

1314:                                             ; preds = %1297, %1280
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1315

1315:                                             ; preds = %1314
  br label %1316

1316:                                             ; preds = %1315
  call void @exit(i32 noundef 1) #12
  unreachable

1317:                                             ; No predecessors!
  br label %1318

1318:                                             ; preds = %1317
  br label %1319

1319:                                             ; preds = %1318, %1259
  br label %1320

1320:                                             ; preds = %1319
  br label %1321

1321:                                             ; preds = %1320
  call void @llvm.lifetime.start.p0(i64 2, ptr %31) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %31, ptr align 1 @__const.main.verify_data, i64 2, i1 false)
  br label %1322

1322:                                             ; preds = %1321
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = add nsw i32 %1323, 1
  store i32 %1324, ptr @test_count, align 4, !tbaa !5
  %1325 = load ptr, ptr %6, align 8, !tbaa !9
  %1326 = call i32 @s2n_config_set_verify_host_callback(ptr noundef %1325, ptr noundef @verify_host_fn, ptr noundef %31)
  %1327 = icmp eq i32 %1326, -1
  br i1 %1327, label %1328, label %1381

1328:                                             ; preds = %1322
  br label %1329

1329:                                             ; preds = %1328
  br label %1330

1330:                                             ; preds = %1329
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1331 = call ptr @__errno_location() #11
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  store i32 %1332, ptr %32, align 4, !tbaa !5
  %1333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1334 = call i32 @s2n_print_stacktrace(ptr noundef %1333)
  %1335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1336 = trunc i8 %1335 to i1
  br i1 %1336, label %1337, label %1359

1337:                                             ; preds = %1330
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = call i32 @fileno(ptr noundef %1338) #10
  %1340 = call i32 @isatty(i32 noundef %1339) #10
  %1341 = icmp ne i32 %1340, 0
  br i1 %1341, label %1342, label %1359

1342:                                             ; preds = %1337
  %1343 = load i32, ptr %32, align 4, !tbaa !5
  %1344 = call ptr @__errno_location() #11
  store i32 %1343, ptr %1344, align 4, !tbaa !5
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = load i32, ptr @test_count, align 4, !tbaa !5
  %1347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror(i32 noundef %1348, ptr noundef @.str.4)
  %1350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror_debug(i32 noundef %1351, ptr noundef @.str.4)
  %1353 = call ptr @__errno_location() #11
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call ptr @strerror(i32 noundef %1354) #10
  %1356 = call ptr @__errno_location() #11
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1345, ptr noundef @.str.2, i32 noundef %1346, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1349, ptr noundef %1352, ptr noundef %1355, i32 noundef %1357) #10
  br label %1376

1359:                                             ; preds = %1337, %1330
  %1360 = load i32, ptr %32, align 4, !tbaa !5
  %1361 = call ptr @__errno_location() #11
  store i32 %1360, ptr %1361, align 4, !tbaa !5
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror(i32 noundef %1365, ptr noundef @.str.4)
  %1367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror_debug(i32 noundef %1368, ptr noundef @.str.4)
  %1370 = call ptr @__errno_location() #11
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call ptr @strerror(i32 noundef %1371) #10
  %1373 = call ptr @__errno_location() #11
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1362, ptr noundef @.str.5, i32 noundef %1363, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1366, ptr noundef %1369, ptr noundef %1372, i32 noundef %1374) #10
  br label %1376

1376:                                             ; preds = %1359, %1342
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

1378:                                             ; preds = %1377
  call void @exit(i32 noundef 1) #12
  unreachable

1379:                                             ; No predecessors!
  br label %1380

1380:                                             ; preds = %1379
  br label %1381

1381:                                             ; preds = %1380, %1322
  br label %1382

1382:                                             ; preds = %1381
  br label %1383

1383:                                             ; preds = %1382
  br label %1384

1384:                                             ; preds = %1383
  %1385 = load i32, ptr @test_count, align 4, !tbaa !5
  %1386 = add nsw i32 %1385, 1
  store i32 %1386, ptr @test_count, align 4, !tbaa !5
  %1387 = load ptr, ptr %6, align 8, !tbaa !9
  %1388 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %1387, ptr noundef @.str.13, ptr noundef null)
  %1389 = icmp eq i32 %1388, -1
  br i1 %1389, label %1390, label %1443

1390:                                             ; preds = %1384
  br label %1391

1391:                                             ; preds = %1390
  br label %1392

1392:                                             ; preds = %1391
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1393 = call ptr @__errno_location() #11
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  store i32 %1394, ptr %33, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = call i32 @s2n_print_stacktrace(ptr noundef %1395)
  %1397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1398 = trunc i8 %1397 to i1
  br i1 %1398, label %1399, label %1421

1399:                                             ; preds = %1392
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = call i32 @fileno(ptr noundef %1400) #10
  %1402 = call i32 @isatty(i32 noundef %1401) #10
  %1403 = icmp ne i32 %1402, 0
  br i1 %1403, label %1404, label %1421

1404:                                             ; preds = %1399
  %1405 = load i32, ptr %33, align 4, !tbaa !5
  %1406 = call ptr @__errno_location() #11
  store i32 %1405, ptr %1406, align 4, !tbaa !5
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = load i32, ptr @test_count, align 4, !tbaa !5
  %1409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call ptr @s2n_strerror(i32 noundef %1410, ptr noundef @.str.4)
  %1412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call ptr @s2n_strerror_debug(i32 noundef %1413, ptr noundef @.str.4)
  %1415 = call ptr @__errno_location() #11
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  %1417 = call ptr @strerror(i32 noundef %1416) #10
  %1418 = call ptr @__errno_location() #11
  %1419 = load i32, ptr %1418, align 4, !tbaa !5
  %1420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1407, ptr noundef @.str.2, i32 noundef %1408, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1411, ptr noundef %1414, ptr noundef %1417, i32 noundef %1419) #10
  br label %1438

1421:                                             ; preds = %1399, %1392
  %1422 = load i32, ptr %33, align 4, !tbaa !5
  %1423 = call ptr @__errno_location() #11
  store i32 %1422, ptr %1423, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = load i32, ptr @test_count, align 4, !tbaa !5
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror(i32 noundef %1427, ptr noundef @.str.4)
  %1429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror_debug(i32 noundef %1430, ptr noundef @.str.4)
  %1432 = call ptr @__errno_location() #11
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #10
  %1435 = call ptr @__errno_location() #11
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1424, ptr noundef @.str.5, i32 noundef %1425, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1428, ptr noundef %1431, ptr noundef %1434, i32 noundef %1436) #10
  br label %1438

1438:                                             ; preds = %1421, %1404
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1439

1439:                                             ; preds = %1438
  br label %1440

1440:                                             ; preds = %1439
  call void @exit(i32 noundef 1) #12
  unreachable

1441:                                             ; No predecessors!
  br label %1442

1442:                                             ; preds = %1441
  br label %1443

1443:                                             ; preds = %1442, %1384
  br label %1444

1444:                                             ; preds = %1443
  br label %1445

1445:                                             ; preds = %1444
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  store i64 0, ptr %34, align 8, !tbaa !24
  br label %1446

1446:                                             ; preds = %2718, %1445
  %1447 = load i64, ptr %34, align 8, !tbaa !24
  %1448 = load ptr, ptr %8, align 8, !tbaa !9
  %1449 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %1448, i32 0, i32 0
  %1450 = load i16, ptr %1449, align 8, !tbaa !25
  %1451 = zext i16 %1450 to i64
  %1452 = icmp ult i64 %1447, %1451
  br i1 %1452, label %1454, label %1453

1453:                                             ; preds = %1446
  store i32 126, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  br label %2721

1454:                                             ; preds = %1446
  %1455 = getelementptr inbounds %struct.host_verify_data, ptr %31, i32 0, i32 0
  store i8 0, ptr %1455, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 24, ptr %36) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %37) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #10
  store ptr null, ptr %38, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  store ptr null, ptr %39, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %40) #10
  call void @llvm.memset.p0.i64(ptr align 8 %40, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %41) #10
  call void @llvm.memset.p0.i64(ptr align 8 %41, i8 0, i64 40, i1 false)
  br label %1456

1456:                                             ; preds = %1454
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  store i64 24, ptr %42, align 8, !tbaa !24
  %1457 = load i64, ptr %42, align 8, !tbaa !24
  %1458 = icmp ne i64 %1457, 0
  br i1 %1458, label %1459, label %1517

1459:                                             ; preds = %1456
  %1460 = load ptr, ptr %8, align 8, !tbaa !9
  %1461 = load i64, ptr %42, align 8, !tbaa !24
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %36, ptr align 8 %1460, i64 %1461, i1 false)
  %1462 = icmp eq ptr %36, null
  br i1 %1462, label %1463, label %1516

1463:                                             ; preds = %1459
  br label %1464

1464:                                             ; preds = %1463
  br label %1465

1465:                                             ; preds = %1464
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1466 = call ptr @__errno_location() #11
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  store i32 %1467, ptr %43, align 4, !tbaa !5
  %1468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1469 = call i32 @s2n_print_stacktrace(ptr noundef %1468)
  %1470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1471 = trunc i8 %1470 to i1
  br i1 %1471, label %1472, label %1494

1472:                                             ; preds = %1465
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @fileno(ptr noundef %1473) #10
  %1475 = call i32 @isatty(i32 noundef %1474) #10
  %1476 = icmp ne i32 %1475, 0
  br i1 %1476, label %1477, label %1494

1477:                                             ; preds = %1472
  %1478 = load i32, ptr %43, align 4, !tbaa !5
  %1479 = call ptr @__errno_location() #11
  store i32 %1478, ptr %1479, align 4, !tbaa !5
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror(i32 noundef %1483, ptr noundef @.str.4)
  %1485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror_debug(i32 noundef %1486, ptr noundef @.str.4)
  %1488 = call ptr @__errno_location() #11
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call ptr @strerror(i32 noundef %1489) #10
  %1491 = call ptr @__errno_location() #11
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1480, ptr noundef @.str.2, i32 noundef %1481, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1484, ptr noundef %1487, ptr noundef %1490, i32 noundef %1492) #10
  br label %1511

1494:                                             ; preds = %1472, %1465
  %1495 = load i32, ptr %43, align 4, !tbaa !5
  %1496 = call ptr @__errno_location() #11
  store i32 %1495, ptr %1496, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call ptr @s2n_strerror(i32 noundef %1500, ptr noundef @.str.4)
  %1502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call ptr @s2n_strerror_debug(i32 noundef %1503, ptr noundef @.str.4)
  %1505 = call ptr @__errno_location() #11
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  %1507 = call ptr @strerror(i32 noundef %1506) #10
  %1508 = call ptr @__errno_location() #11
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1497, ptr noundef @.str.5, i32 noundef %1498, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1501, ptr noundef %1504, ptr noundef %1507, i32 noundef %1509) #10
  br label %1511

1511:                                             ; preds = %1494, %1477
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

1513:                                             ; preds = %1512
  call void @exit(i32 noundef 1) #12
  unreachable

1514:                                             ; No predecessors!
  br label %1515

1515:                                             ; preds = %1514
  br label %1516

1516:                                             ; preds = %1515, %1459
  br label %1517

1517:                                             ; preds = %1516, %1456
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  %1520 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %36, i32 0, i32 0
  store i16 1, ptr %1520, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  %1521 = load ptr, ptr %8, align 8, !tbaa !9
  %1522 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %1521, i32 0, i32 1
  %1523 = load ptr, ptr %1522, align 8, !tbaa !29
  %1524 = load i64, ptr %34, align 8, !tbaa !24
  %1525 = getelementptr inbounds ptr, ptr %1523, i64 %1524
  %1526 = load ptr, ptr %1525, align 8, !tbaa !9
  store ptr %1526, ptr %44, align 8, !tbaa !9
  %1527 = load ptr, ptr %44, align 8, !tbaa !9
  %1528 = load i8, ptr %1527, align 8
  %1529 = and i8 %1528, 1
  %1530 = zext i8 %1529 to i32
  %1531 = icmp ne i32 %1530, 0
  br i1 %1531, label %1533, label %1532

1532:                                             ; preds = %1519
  store i32 128, ptr %35, align 4
  br label %2715

1533:                                             ; preds = %1519
  %1534 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %36, i32 0, i32 1
  store ptr %44, ptr %1534, align 8, !tbaa !29
  br label %1535

1535:                                             ; preds = %1533
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  store i64 64, ptr %45, align 8, !tbaa !24
  %1536 = load i64, ptr %45, align 8, !tbaa !24
  %1537 = icmp ne i64 %1536, 0
  br i1 %1537, label %1538, label %1596

1538:                                             ; preds = %1535
  %1539 = load ptr, ptr %7, align 8, !tbaa !9
  %1540 = load i64, ptr %45, align 8, !tbaa !24
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %37, ptr align 8 %1539, i64 %1540, i1 false)
  %1541 = icmp eq ptr %37, null
  br i1 %1541, label %1542, label %1595

1542:                                             ; preds = %1538
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

1544:                                             ; preds = %1543
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %1545 = call ptr @__errno_location() #11
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  store i32 %1546, ptr %46, align 4, !tbaa !5
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @s2n_print_stacktrace(ptr noundef %1547)
  %1549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1550 = trunc i8 %1549 to i1
  br i1 %1550, label %1551, label %1573

1551:                                             ; preds = %1544
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @fileno(ptr noundef %1552) #10
  %1554 = call i32 @isatty(i32 noundef %1553) #10
  %1555 = icmp ne i32 %1554, 0
  br i1 %1555, label %1556, label %1573

1556:                                             ; preds = %1551
  %1557 = load i32, ptr %46, align 4, !tbaa !5
  %1558 = call ptr @__errno_location() #11
  store i32 %1557, ptr %1558, align 4, !tbaa !5
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = load i32, ptr @test_count, align 4, !tbaa !5
  %1561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror(i32 noundef %1562, ptr noundef @.str.4)
  %1564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @s2n_strerror_debug(i32 noundef %1565, ptr noundef @.str.4)
  %1567 = call ptr @__errno_location() #11
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @strerror(i32 noundef %1568) #10
  %1570 = call ptr @__errno_location() #11
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1559, ptr noundef @.str.2, i32 noundef %1560, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1563, ptr noundef %1566, ptr noundef %1569, i32 noundef %1571) #10
  br label %1590

1573:                                             ; preds = %1551, %1544
  %1574 = load i32, ptr %46, align 4, !tbaa !5
  %1575 = call ptr @__errno_location() #11
  store i32 %1574, ptr %1575, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror(i32 noundef %1579, ptr noundef @.str.4)
  %1581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call ptr @s2n_strerror_debug(i32 noundef %1582, ptr noundef @.str.4)
  %1584 = call ptr @__errno_location() #11
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call ptr @strerror(i32 noundef %1585) #10
  %1587 = call ptr @__errno_location() #11
  %1588 = load i32, ptr %1587, align 4, !tbaa !5
  %1589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1576, ptr noundef @.str.5, i32 noundef %1577, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1580, ptr noundef %1583, ptr noundef %1586, i32 noundef %1588) #10
  br label %1590

1590:                                             ; preds = %1573, %1556
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

1592:                                             ; preds = %1591
  call void @exit(i32 noundef 1) #12
  unreachable

1593:                                             ; No predecessors!
  br label %1594

1594:                                             ; preds = %1593
  br label %1595

1595:                                             ; preds = %1594, %1538
  br label %1596

1596:                                             ; preds = %1595, %1535
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  br label %1597

1597:                                             ; preds = %1596
  br label %1598

1598:                                             ; preds = %1597
  %1599 = getelementptr inbounds %struct.s2n_security_policy, ptr %37, i32 0, i32 1
  store ptr %36, ptr %1599, align 8, !tbaa !22
  %1600 = load ptr, ptr %6, align 8, !tbaa !9
  %1601 = getelementptr inbounds %struct.s2n_config, ptr %1600, i32 0, i32 7
  store ptr %37, ptr %1601, align 8, !tbaa !15
  br label %1602

1602:                                             ; preds = %1598
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = add nsw i32 %1603, 1
  store i32 %1604, ptr @test_count, align 4, !tbaa !5
  %1605 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1605, ptr %39, align 8, !tbaa !9
  %1606 = icmp eq ptr %1605, null
  br i1 %1606, label %1607, label %1660

1607:                                             ; preds = %1602
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

1609:                                             ; preds = %1608
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %1610 = call ptr @__errno_location() #11
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  store i32 %1611, ptr %47, align 4, !tbaa !5
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = call i32 @s2n_print_stacktrace(ptr noundef %1612)
  %1614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1615 = trunc i8 %1614 to i1
  br i1 %1615, label %1616, label %1638

1616:                                             ; preds = %1609
  %1617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1618 = call i32 @fileno(ptr noundef %1617) #10
  %1619 = call i32 @isatty(i32 noundef %1618) #10
  %1620 = icmp ne i32 %1619, 0
  br i1 %1620, label %1621, label %1638

1621:                                             ; preds = %1616
  %1622 = load i32, ptr %47, align 4, !tbaa !5
  %1623 = call ptr @__errno_location() #11
  store i32 %1622, ptr %1623, align 4, !tbaa !5
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %1626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1627 = load i32, ptr %1626, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef @.str.4)
  %1629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1630 = load i32, ptr %1629, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror_debug(i32 noundef %1630, ptr noundef @.str.4)
  %1632 = call ptr @__errno_location() #11
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @strerror(i32 noundef %1633) #10
  %1635 = call ptr @__errno_location() #11
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1624, ptr noundef @.str.2, i32 noundef %1625, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1628, ptr noundef %1631, ptr noundef %1634, i32 noundef %1636) #10
  br label %1655

1638:                                             ; preds = %1616, %1609
  %1639 = load i32, ptr %47, align 4, !tbaa !5
  %1640 = call ptr @__errno_location() #11
  store i32 %1639, ptr %1640, align 4, !tbaa !5
  %1641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1642 = load i32, ptr @test_count, align 4, !tbaa !5
  %1643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = call ptr @s2n_strerror(i32 noundef %1644, ptr noundef @.str.4)
  %1646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1647 = load i32, ptr %1646, align 4, !tbaa !5
  %1648 = call ptr @s2n_strerror_debug(i32 noundef %1647, ptr noundef @.str.4)
  %1649 = call ptr @__errno_location() #11
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call ptr @strerror(i32 noundef %1650) #10
  %1652 = call ptr @__errno_location() #11
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1641, ptr noundef @.str.5, i32 noundef %1642, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1645, ptr noundef %1648, ptr noundef %1651, i32 noundef %1653) #10
  br label %1655

1655:                                             ; preds = %1638, %1621
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %1656

1656:                                             ; preds = %1655
  br label %1657

1657:                                             ; preds = %1656
  call void @exit(i32 noundef 1) #12
  unreachable

1658:                                             ; No predecessors!
  br label %1659

1659:                                             ; preds = %1658
  br label %1660

1660:                                             ; preds = %1659, %1602
  br label %1661

1661:                                             ; preds = %1660
  br label %1662

1662:                                             ; preds = %1661
  br label %1663

1663:                                             ; preds = %1662
  %1664 = load i32, ptr @test_count, align 4, !tbaa !5
  %1665 = add nsw i32 %1664, 1
  store i32 %1665, ptr @test_count, align 4, !tbaa !5
  %1666 = load ptr, ptr %39, align 8, !tbaa !9
  %1667 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %1666, i32 noundef 1)
  %1668 = icmp eq i32 %1667, -1
  br i1 %1668, label %1669, label %1722

1669:                                             ; preds = %1663
  br label %1670

1670:                                             ; preds = %1669
  br label %1671

1671:                                             ; preds = %1670
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %1672 = call ptr @__errno_location() #11
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  store i32 %1673, ptr %48, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = call i32 @s2n_print_stacktrace(ptr noundef %1674)
  %1676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1677 = trunc i8 %1676 to i1
  br i1 %1677, label %1678, label %1700

1678:                                             ; preds = %1671
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = call i32 @fileno(ptr noundef %1679) #10
  %1681 = call i32 @isatty(i32 noundef %1680) #10
  %1682 = icmp ne i32 %1681, 0
  br i1 %1682, label %1683, label %1700

1683:                                             ; preds = %1678
  %1684 = load i32, ptr %48, align 4, !tbaa !5
  %1685 = call ptr @__errno_location() #11
  store i32 %1684, ptr %1685, align 4, !tbaa !5
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = load i32, ptr @test_count, align 4, !tbaa !5
  %1688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  %1690 = call ptr @s2n_strerror(i32 noundef %1689, ptr noundef @.str.4)
  %1691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = call ptr @s2n_strerror_debug(i32 noundef %1692, ptr noundef @.str.4)
  %1694 = call ptr @__errno_location() #11
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = call ptr @strerror(i32 noundef %1695) #10
  %1697 = call ptr @__errno_location() #11
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1686, ptr noundef @.str.2, i32 noundef %1687, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1690, ptr noundef %1693, ptr noundef %1696, i32 noundef %1698) #10
  br label %1717

1700:                                             ; preds = %1678, %1671
  %1701 = load i32, ptr %48, align 4, !tbaa !5
  %1702 = call ptr @__errno_location() #11
  store i32 %1701, ptr %1702, align 4, !tbaa !5
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = load i32, ptr @test_count, align 4, !tbaa !5
  %1705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call ptr @s2n_strerror(i32 noundef %1706, ptr noundef @.str.4)
  %1708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror_debug(i32 noundef %1709, ptr noundef @.str.4)
  %1711 = call ptr @__errno_location() #11
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call ptr @strerror(i32 noundef %1712) #10
  %1714 = call ptr @__errno_location() #11
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1703, ptr noundef @.str.5, i32 noundef %1704, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1707, ptr noundef %1710, ptr noundef %1713, i32 noundef %1715) #10
  br label %1717

1717:                                             ; preds = %1700, %1683
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %1718

1718:                                             ; preds = %1717
  br label %1719

1719:                                             ; preds = %1718
  call void @exit(i32 noundef 1) #12
  unreachable

1720:                                             ; No predecessors!
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

1722:                                             ; preds = %1721, %1663
  br label %1723

1723:                                             ; preds = %1722
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724
  %1726 = load i32, ptr @test_count, align 4, !tbaa !5
  %1727 = add nsw i32 %1726, 1
  store i32 %1727, ptr @test_count, align 4, !tbaa !5
  %1728 = load ptr, ptr %39, align 8, !tbaa !9
  %1729 = load ptr, ptr %6, align 8, !tbaa !9
  %1730 = call i32 @s2n_connection_set_config(ptr noundef %1728, ptr noundef %1729)
  %1731 = icmp eq i32 %1730, -1
  br i1 %1731, label %1732, label %1785

1732:                                             ; preds = %1725
  br label %1733

1733:                                             ; preds = %1732
  br label %1734

1734:                                             ; preds = %1733
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %1735 = call ptr @__errno_location() #11
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  store i32 %1736, ptr %49, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = call i32 @s2n_print_stacktrace(ptr noundef %1737)
  %1739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1740 = trunc i8 %1739 to i1
  br i1 %1740, label %1741, label %1763

1741:                                             ; preds = %1734
  %1742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1743 = call i32 @fileno(ptr noundef %1742) #10
  %1744 = call i32 @isatty(i32 noundef %1743) #10
  %1745 = icmp ne i32 %1744, 0
  br i1 %1745, label %1746, label %1763

1746:                                             ; preds = %1741
  %1747 = load i32, ptr %49, align 4, !tbaa !5
  %1748 = call ptr @__errno_location() #11
  store i32 %1747, ptr %1748, align 4, !tbaa !5
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = load i32, ptr @test_count, align 4, !tbaa !5
  %1751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror(i32 noundef %1752, ptr noundef @.str.4)
  %1754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call ptr @s2n_strerror_debug(i32 noundef %1755, ptr noundef @.str.4)
  %1757 = call ptr @__errno_location() #11
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @strerror(i32 noundef %1758) #10
  %1760 = call ptr @__errno_location() #11
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1749, ptr noundef @.str.2, i32 noundef %1750, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1753, ptr noundef %1756, ptr noundef %1759, i32 noundef %1761) #10
  br label %1780

1763:                                             ; preds = %1741, %1734
  %1764 = load i32, ptr %49, align 4, !tbaa !5
  %1765 = call ptr @__errno_location() #11
  store i32 %1764, ptr %1765, align 4, !tbaa !5
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @s2n_strerror(i32 noundef %1769, ptr noundef @.str.4)
  %1771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call ptr @s2n_strerror_debug(i32 noundef %1772, ptr noundef @.str.4)
  %1774 = call ptr @__errno_location() #11
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @strerror(i32 noundef %1775) #10
  %1777 = call ptr @__errno_location() #11
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1766, ptr noundef @.str.5, i32 noundef %1767, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1770, ptr noundef %1773, ptr noundef %1776, i32 noundef %1778) #10
  br label %1780

1780:                                             ; preds = %1763, %1746
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %1781

1781:                                             ; preds = %1780
  br label %1782

1782:                                             ; preds = %1781
  call void @exit(i32 noundef 1) #12
  unreachable

1783:                                             ; No predecessors!
  br label %1784

1784:                                             ; preds = %1783
  br label %1785

1785:                                             ; preds = %1784, %1725
  br label %1786

1786:                                             ; preds = %1785
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

1788:                                             ; preds = %1787
  %1789 = load i32, ptr @test_count, align 4, !tbaa !5
  %1790 = add nsw i32 %1789, 1
  store i32 %1790, ptr @test_count, align 4, !tbaa !5
  %1791 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1791, ptr %38, align 8, !tbaa !9
  %1792 = icmp eq ptr %1791, null
  br i1 %1792, label %1793, label %1846

1793:                                             ; preds = %1788
  br label %1794

1794:                                             ; preds = %1793
  br label %1795

1795:                                             ; preds = %1794
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %1796 = call ptr @__errno_location() #11
  %1797 = load i32, ptr %1796, align 4, !tbaa !5
  store i32 %1797, ptr %50, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = call i32 @s2n_print_stacktrace(ptr noundef %1798)
  %1800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1801 = trunc i8 %1800 to i1
  br i1 %1801, label %1802, label %1824

1802:                                             ; preds = %1795
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = call i32 @fileno(ptr noundef %1803) #10
  %1805 = call i32 @isatty(i32 noundef %1804) #10
  %1806 = icmp ne i32 %1805, 0
  br i1 %1806, label %1807, label %1824

1807:                                             ; preds = %1802
  %1808 = load i32, ptr %50, align 4, !tbaa !5
  %1809 = call ptr @__errno_location() #11
  store i32 %1808, ptr %1809, align 4, !tbaa !5
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = load i32, ptr @test_count, align 4, !tbaa !5
  %1812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror(i32 noundef %1813, ptr noundef @.str.4)
  %1815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = call ptr @s2n_strerror_debug(i32 noundef %1816, ptr noundef @.str.4)
  %1818 = call ptr @__errno_location() #11
  %1819 = load i32, ptr %1818, align 4, !tbaa !5
  %1820 = call ptr @strerror(i32 noundef %1819) #10
  %1821 = call ptr @__errno_location() #11
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1810, ptr noundef @.str.2, i32 noundef %1811, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1814, ptr noundef %1817, ptr noundef %1820, i32 noundef %1822) #10
  br label %1841

1824:                                             ; preds = %1802, %1795
  %1825 = load i32, ptr %50, align 4, !tbaa !5
  %1826 = call ptr @__errno_location() #11
  store i32 %1825, ptr %1826, align 4, !tbaa !5
  %1827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1828 = load i32, ptr @test_count, align 4, !tbaa !5
  %1829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call ptr @s2n_strerror(i32 noundef %1830, ptr noundef @.str.4)
  %1832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call ptr @s2n_strerror_debug(i32 noundef %1833, ptr noundef @.str.4)
  %1835 = call ptr @__errno_location() #11
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  %1837 = call ptr @strerror(i32 noundef %1836) #10
  %1838 = call ptr @__errno_location() #11
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1827, ptr noundef @.str.5, i32 noundef %1828, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1831, ptr noundef %1834, ptr noundef %1837, i32 noundef %1839) #10
  br label %1841

1841:                                             ; preds = %1824, %1807
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842
  call void @exit(i32 noundef 1) #12
  unreachable

1844:                                             ; No predecessors!
  br label %1845

1845:                                             ; preds = %1844
  br label %1846

1846:                                             ; preds = %1845, %1788
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

1848:                                             ; preds = %1847
  br label %1849

1849:                                             ; preds = %1848
  %1850 = load i32, ptr @test_count, align 4, !tbaa !5
  %1851 = add nsw i32 %1850, 1
  store i32 %1851, ptr @test_count, align 4, !tbaa !5
  %1852 = load ptr, ptr %38, align 8, !tbaa !9
  %1853 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %1852, i32 noundef 1)
  %1854 = icmp eq i32 %1853, -1
  br i1 %1854, label %1855, label %1908

1855:                                             ; preds = %1849
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

1857:                                             ; preds = %1856
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %1858 = call ptr @__errno_location() #11
  %1859 = load i32, ptr %1858, align 4, !tbaa !5
  store i32 %1859, ptr %51, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = call i32 @s2n_print_stacktrace(ptr noundef %1860)
  %1862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1863 = trunc i8 %1862 to i1
  br i1 %1863, label %1864, label %1886

1864:                                             ; preds = %1857
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @fileno(ptr noundef %1865) #10
  %1867 = call i32 @isatty(i32 noundef %1866) #10
  %1868 = icmp ne i32 %1867, 0
  br i1 %1868, label %1869, label %1886

1869:                                             ; preds = %1864
  %1870 = load i32, ptr %51, align 4, !tbaa !5
  %1871 = call ptr @__errno_location() #11
  store i32 %1870, ptr %1871, align 4, !tbaa !5
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call ptr @s2n_strerror(i32 noundef %1875, ptr noundef @.str.4)
  %1877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror_debug(i32 noundef %1878, ptr noundef @.str.4)
  %1880 = call ptr @__errno_location() #11
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call ptr @strerror(i32 noundef %1881) #10
  %1883 = call ptr @__errno_location() #11
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  %1885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1872, ptr noundef @.str.2, i32 noundef %1873, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1876, ptr noundef %1879, ptr noundef %1882, i32 noundef %1884) #10
  br label %1903

1886:                                             ; preds = %1864, %1857
  %1887 = load i32, ptr %51, align 4, !tbaa !5
  %1888 = call ptr @__errno_location() #11
  store i32 %1887, ptr %1888, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror(i32 noundef %1892, ptr noundef @.str.4)
  %1894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror_debug(i32 noundef %1895, ptr noundef @.str.4)
  %1897 = call ptr @__errno_location() #11
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call ptr @strerror(i32 noundef %1898) #10
  %1900 = call ptr @__errno_location() #11
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1889, ptr noundef @.str.5, i32 noundef %1890, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1893, ptr noundef %1896, ptr noundef %1899, i32 noundef %1901) #10
  br label %1903

1903:                                             ; preds = %1886, %1869
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %1904

1904:                                             ; preds = %1903
  br label %1905

1905:                                             ; preds = %1904
  call void @exit(i32 noundef 1) #12
  unreachable

1906:                                             ; No predecessors!
  br label %1907

1907:                                             ; preds = %1906
  br label %1908

1908:                                             ; preds = %1907, %1849
  br label %1909

1909:                                             ; preds = %1908
  br label %1910

1910:                                             ; preds = %1909
  br label %1911

1911:                                             ; preds = %1910
  %1912 = load i32, ptr @test_count, align 4, !tbaa !5
  %1913 = add nsw i32 %1912, 1
  store i32 %1913, ptr @test_count, align 4, !tbaa !5
  %1914 = load ptr, ptr %38, align 8, !tbaa !9
  %1915 = load ptr, ptr %6, align 8, !tbaa !9
  %1916 = call i32 @s2n_connection_set_config(ptr noundef %1914, ptr noundef %1915)
  %1917 = icmp eq i32 %1916, -1
  br i1 %1917, label %1918, label %1971

1918:                                             ; preds = %1911
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

1920:                                             ; preds = %1919
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %1921 = call ptr @__errno_location() #11
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  store i32 %1922, ptr %52, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = call i32 @s2n_print_stacktrace(ptr noundef %1923)
  %1925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1926 = trunc i8 %1925 to i1
  br i1 %1926, label %1927, label %1949

1927:                                             ; preds = %1920
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = call i32 @fileno(ptr noundef %1928) #10
  %1930 = call i32 @isatty(i32 noundef %1929) #10
  %1931 = icmp ne i32 %1930, 0
  br i1 %1931, label %1932, label %1949

1932:                                             ; preds = %1927
  %1933 = load i32, ptr %52, align 4, !tbaa !5
  %1934 = call ptr @__errno_location() #11
  store i32 %1933, ptr %1934, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror(i32 noundef %1938, ptr noundef @.str.4)
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror_debug(i32 noundef %1941, ptr noundef @.str.4)
  %1943 = call ptr @__errno_location() #11
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @strerror(i32 noundef %1944) #10
  %1946 = call ptr @__errno_location() #11
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1935, ptr noundef @.str.2, i32 noundef %1936, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1939, ptr noundef %1942, ptr noundef %1945, i32 noundef %1947) #10
  br label %1966

1949:                                             ; preds = %1927, %1920
  %1950 = load i32, ptr %52, align 4, !tbaa !5
  %1951 = call ptr @__errno_location() #11
  store i32 %1950, ptr %1951, align 4, !tbaa !5
  %1952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror(i32 noundef %1955, ptr noundef @.str.4)
  %1957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror_debug(i32 noundef %1958, ptr noundef @.str.4)
  %1960 = call ptr @__errno_location() #11
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call ptr @strerror(i32 noundef %1961) #10
  %1963 = call ptr @__errno_location() #11
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  %1965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1952, ptr noundef @.str.5, i32 noundef %1953, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1956, ptr noundef %1959, ptr noundef %1962, i32 noundef %1964) #10
  br label %1966

1966:                                             ; preds = %1949, %1932
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %1967

1967:                                             ; preds = %1966
  br label %1968

1968:                                             ; preds = %1967
  call void @exit(i32 noundef 1) #12
  unreachable

1969:                                             ; No predecessors!
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

1971:                                             ; preds = %1970, %1911
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

1974:                                             ; preds = %1973
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %1976 = add nsw i32 %1975, 1
  store i32 %1976, ptr @test_count, align 4, !tbaa !5
  %1977 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %40, i32 noundef 0)
  %1978 = icmp eq i32 %1977, -1
  br i1 %1978, label %1979, label %2032

1979:                                             ; preds = %1974
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  %1982 = call ptr @__errno_location() #11
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  store i32 %1983, ptr %53, align 4, !tbaa !5
  %1984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1985 = call i32 @s2n_print_stacktrace(ptr noundef %1984)
  %1986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1987 = trunc i8 %1986 to i1
  br i1 %1987, label %1988, label %2010

1988:                                             ; preds = %1981
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = call i32 @fileno(ptr noundef %1989) #10
  %1991 = call i32 @isatty(i32 noundef %1990) #10
  %1992 = icmp ne i32 %1991, 0
  br i1 %1992, label %1993, label %2010

1993:                                             ; preds = %1988
  %1994 = load i32, ptr %53, align 4, !tbaa !5
  %1995 = call ptr @__errno_location() #11
  store i32 %1994, ptr %1995, align 4, !tbaa !5
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = load i32, ptr @test_count, align 4, !tbaa !5
  %1998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1999 = load i32, ptr %1998, align 4, !tbaa !5
  %2000 = call ptr @s2n_strerror(i32 noundef %1999, ptr noundef @.str.4)
  %2001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror_debug(i32 noundef %2002, ptr noundef @.str.4)
  %2004 = call ptr @__errno_location() #11
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call ptr @strerror(i32 noundef %2005) #10
  %2007 = call ptr @__errno_location() #11
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1996, ptr noundef @.str.2, i32 noundef %1997, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2000, ptr noundef %2003, ptr noundef %2006, i32 noundef %2008) #10
  br label %2027

2010:                                             ; preds = %1988, %1981
  %2011 = load i32, ptr %53, align 4, !tbaa !5
  %2012 = call ptr @__errno_location() #11
  store i32 %2011, ptr %2012, align 4, !tbaa !5
  %2013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2014 = load i32, ptr @test_count, align 4, !tbaa !5
  %2015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror(i32 noundef %2016, ptr noundef @.str.4)
  %2018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror_debug(i32 noundef %2019, ptr noundef @.str.4)
  %2021 = call ptr @__errno_location() #11
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call ptr @strerror(i32 noundef %2022) #10
  %2024 = call ptr @__errno_location() #11
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2013, ptr noundef @.str.5, i32 noundef %2014, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2017, ptr noundef %2020, ptr noundef %2023, i32 noundef %2025) #10
  br label %2027

2027:                                             ; preds = %2010, %1993
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2028

2028:                                             ; preds = %2027
  br label %2029

2029:                                             ; preds = %2028
  call void @exit(i32 noundef 1) #12
  unreachable

2030:                                             ; No predecessors!
  br label %2031

2031:                                             ; preds = %2030
  br label %2032

2032:                                             ; preds = %2031, %1974
  br label %2033

2033:                                             ; preds = %2032
  br label %2034

2034:                                             ; preds = %2033
  br label %2035

2035:                                             ; preds = %2034
  %2036 = load i32, ptr @test_count, align 4, !tbaa !5
  %2037 = add nsw i32 %2036, 1
  store i32 %2037, ptr @test_count, align 4, !tbaa !5
  %2038 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %41, i32 noundef 0)
  %2039 = icmp eq i32 %2038, -1
  br i1 %2039, label %2040, label %2093

2040:                                             ; preds = %2035
  br label %2041

2041:                                             ; preds = %2040
  br label %2042

2042:                                             ; preds = %2041
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2043 = call ptr @__errno_location() #11
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  store i32 %2044, ptr %54, align 4, !tbaa !5
  %2045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2046 = call i32 @s2n_print_stacktrace(ptr noundef %2045)
  %2047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2048 = trunc i8 %2047 to i1
  br i1 %2048, label %2049, label %2071

2049:                                             ; preds = %2042
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = call i32 @fileno(ptr noundef %2050) #10
  %2052 = call i32 @isatty(i32 noundef %2051) #10
  %2053 = icmp ne i32 %2052, 0
  br i1 %2053, label %2054, label %2071

2054:                                             ; preds = %2049
  %2055 = load i32, ptr %54, align 4, !tbaa !5
  %2056 = call ptr @__errno_location() #11
  store i32 %2055, ptr %2056, align 4, !tbaa !5
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = load i32, ptr @test_count, align 4, !tbaa !5
  %2059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2060 = load i32, ptr %2059, align 4, !tbaa !5
  %2061 = call ptr @s2n_strerror(i32 noundef %2060, ptr noundef @.str.4)
  %2062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2063 = load i32, ptr %2062, align 4, !tbaa !5
  %2064 = call ptr @s2n_strerror_debug(i32 noundef %2063, ptr noundef @.str.4)
  %2065 = call ptr @__errno_location() #11
  %2066 = load i32, ptr %2065, align 4, !tbaa !5
  %2067 = call ptr @strerror(i32 noundef %2066) #10
  %2068 = call ptr @__errno_location() #11
  %2069 = load i32, ptr %2068, align 4, !tbaa !5
  %2070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2057, ptr noundef @.str.2, i32 noundef %2058, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2061, ptr noundef %2064, ptr noundef %2067, i32 noundef %2069) #10
  br label %2088

2071:                                             ; preds = %2049, %2042
  %2072 = load i32, ptr %54, align 4, !tbaa !5
  %2073 = call ptr @__errno_location() #11
  store i32 %2072, ptr %2073, align 4, !tbaa !5
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = load i32, ptr @test_count, align 4, !tbaa !5
  %2076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2077 = load i32, ptr %2076, align 4, !tbaa !5
  %2078 = call ptr @s2n_strerror(i32 noundef %2077, ptr noundef @.str.4)
  %2079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2080 = load i32, ptr %2079, align 4, !tbaa !5
  %2081 = call ptr @s2n_strerror_debug(i32 noundef %2080, ptr noundef @.str.4)
  %2082 = call ptr @__errno_location() #11
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  %2084 = call ptr @strerror(i32 noundef %2083) #10
  %2085 = call ptr @__errno_location() #11
  %2086 = load i32, ptr %2085, align 4, !tbaa !5
  %2087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2074, ptr noundef @.str.5, i32 noundef %2075, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2078, ptr noundef %2081, ptr noundef %2084, i32 noundef %2086) #10
  br label %2088

2088:                                             ; preds = %2071, %2054
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2089

2089:                                             ; preds = %2088
  br label %2090

2090:                                             ; preds = %2089
  call void @exit(i32 noundef 1) #12
  unreachable

2091:                                             ; No predecessors!
  br label %2092

2092:                                             ; preds = %2091
  br label %2093

2093:                                             ; preds = %2092, %2035
  br label %2094

2094:                                             ; preds = %2093
  br label %2095

2095:                                             ; preds = %2094
  br label %2096

2096:                                             ; preds = %2095
  %2097 = load i32, ptr @test_count, align 4, !tbaa !5
  %2098 = add nsw i32 %2097, 1
  store i32 %2098, ptr @test_count, align 4, !tbaa !5
  %2099 = load ptr, ptr %38, align 8, !tbaa !9
  %2100 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %41, ptr noundef %40, ptr noundef %2099)
  %2101 = icmp eq i32 %2100, -1
  br i1 %2101, label %2102, label %2155

2102:                                             ; preds = %2096
  br label %2103

2103:                                             ; preds = %2102
  br label %2104

2104:                                             ; preds = %2103
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  %2105 = call ptr @__errno_location() #11
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  store i32 %2106, ptr %55, align 4, !tbaa !5
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = call i32 @s2n_print_stacktrace(ptr noundef %2107)
  %2109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2110 = trunc i8 %2109 to i1
  br i1 %2110, label %2111, label %2133

2111:                                             ; preds = %2104
  %2112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2113 = call i32 @fileno(ptr noundef %2112) #10
  %2114 = call i32 @isatty(i32 noundef %2113) #10
  %2115 = icmp ne i32 %2114, 0
  br i1 %2115, label %2116, label %2133

2116:                                             ; preds = %2111
  %2117 = load i32, ptr %55, align 4, !tbaa !5
  %2118 = call ptr @__errno_location() #11
  store i32 %2117, ptr %2118, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = load i32, ptr @test_count, align 4, !tbaa !5
  %2121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror(i32 noundef %2122, ptr noundef @.str.4)
  %2124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call ptr @s2n_strerror_debug(i32 noundef %2125, ptr noundef @.str.4)
  %2127 = call ptr @__errno_location() #11
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call ptr @strerror(i32 noundef %2128) #10
  %2130 = call ptr @__errno_location() #11
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2119, ptr noundef @.str.2, i32 noundef %2120, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2123, ptr noundef %2126, ptr noundef %2129, i32 noundef %2131) #10
  br label %2150

2133:                                             ; preds = %2111, %2104
  %2134 = load i32, ptr %55, align 4, !tbaa !5
  %2135 = call ptr @__errno_location() #11
  store i32 %2134, ptr %2135, align 4, !tbaa !5
  %2136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror(i32 noundef %2139, ptr noundef @.str.4)
  %2141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror_debug(i32 noundef %2142, ptr noundef @.str.4)
  %2144 = call ptr @__errno_location() #11
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @strerror(i32 noundef %2145) #10
  %2147 = call ptr @__errno_location() #11
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2136, ptr noundef @.str.5, i32 noundef %2137, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2140, ptr noundef %2143, ptr noundef %2146, i32 noundef %2148) #10
  br label %2150

2150:                                             ; preds = %2133, %2116
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2151

2151:                                             ; preds = %2150
  br label %2152

2152:                                             ; preds = %2151
  call void @exit(i32 noundef 1) #12
  unreachable

2153:                                             ; No predecessors!
  br label %2154

2154:                                             ; preds = %2153
  br label %2155

2155:                                             ; preds = %2154, %2096
  br label %2156

2156:                                             ; preds = %2155
  br label %2157

2157:                                             ; preds = %2156
  br label %2158

2158:                                             ; preds = %2157
  %2159 = load i32, ptr @test_count, align 4, !tbaa !5
  %2160 = add nsw i32 %2159, 1
  store i32 %2160, ptr @test_count, align 4, !tbaa !5
  %2161 = load ptr, ptr %39, align 8, !tbaa !9
  %2162 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %40, ptr noundef %41, ptr noundef %2161)
  %2163 = icmp eq i32 %2162, -1
  br i1 %2163, label %2164, label %2217

2164:                                             ; preds = %2158
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2167 = call ptr @__errno_location() #11
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  store i32 %2168, ptr %56, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = call i32 @s2n_print_stacktrace(ptr noundef %2169)
  %2171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2172 = trunc i8 %2171 to i1
  br i1 %2172, label %2173, label %2195

2173:                                             ; preds = %2166
  %2174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2175 = call i32 @fileno(ptr noundef %2174) #10
  %2176 = call i32 @isatty(i32 noundef %2175) #10
  %2177 = icmp ne i32 %2176, 0
  br i1 %2177, label %2178, label %2195

2178:                                             ; preds = %2173
  %2179 = load i32, ptr %56, align 4, !tbaa !5
  %2180 = call ptr @__errno_location() #11
  store i32 %2179, ptr %2180, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = load i32, ptr @test_count, align 4, !tbaa !5
  %2183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  %2185 = call ptr @s2n_strerror(i32 noundef %2184, ptr noundef @.str.4)
  %2186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  %2188 = call ptr @s2n_strerror_debug(i32 noundef %2187, ptr noundef @.str.4)
  %2189 = call ptr @__errno_location() #11
  %2190 = load i32, ptr %2189, align 4, !tbaa !5
  %2191 = call ptr @strerror(i32 noundef %2190) #10
  %2192 = call ptr @__errno_location() #11
  %2193 = load i32, ptr %2192, align 4, !tbaa !5
  %2194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2181, ptr noundef @.str.2, i32 noundef %2182, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2185, ptr noundef %2188, ptr noundef %2191, i32 noundef %2193) #10
  br label %2212

2195:                                             ; preds = %2173, %2166
  %2196 = load i32, ptr %56, align 4, !tbaa !5
  %2197 = call ptr @__errno_location() #11
  store i32 %2196, ptr %2197, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror(i32 noundef %2201, ptr noundef @.str.4)
  %2203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  %2205 = call ptr @s2n_strerror_debug(i32 noundef %2204, ptr noundef @.str.4)
  %2206 = call ptr @__errno_location() #11
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  %2208 = call ptr @strerror(i32 noundef %2207) #10
  %2209 = call ptr @__errno_location() #11
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2198, ptr noundef @.str.5, i32 noundef %2199, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2202, ptr noundef %2205, ptr noundef %2208, i32 noundef %2210) #10
  br label %2212

2212:                                             ; preds = %2195, %2178
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2213

2213:                                             ; preds = %2212
  br label %2214

2214:                                             ; preds = %2213
  call void @exit(i32 noundef 1) #12
  unreachable

2215:                                             ; No predecessors!
  br label %2216

2216:                                             ; preds = %2215
  br label %2217

2217:                                             ; preds = %2216, %2158
  br label %2218

2218:                                             ; preds = %2217
  br label %2219

2219:                                             ; preds = %2218
  br label %2220

2220:                                             ; preds = %2219
  %2221 = load i32, ptr @test_count, align 4, !tbaa !5
  %2222 = add nsw i32 %2221, 1
  store i32 %2222, ptr @test_count, align 4, !tbaa !5
  %2223 = load ptr, ptr %39, align 8, !tbaa !9
  %2224 = load ptr, ptr %38, align 8, !tbaa !9
  %2225 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2223, ptr noundef %2224)
  %2226 = icmp eq i32 %2225, -1
  br i1 %2226, label %2227, label %2280

2227:                                             ; preds = %2220
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  %2230 = call ptr @__errno_location() #11
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  store i32 %2231, ptr %57, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = call i32 @s2n_print_stacktrace(ptr noundef %2232)
  %2234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2235 = trunc i8 %2234 to i1
  br i1 %2235, label %2236, label %2258

2236:                                             ; preds = %2229
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = call i32 @fileno(ptr noundef %2237) #10
  %2239 = call i32 @isatty(i32 noundef %2238) #10
  %2240 = icmp ne i32 %2239, 0
  br i1 %2240, label %2241, label %2258

2241:                                             ; preds = %2236
  %2242 = load i32, ptr %57, align 4, !tbaa !5
  %2243 = call ptr @__errno_location() #11
  store i32 %2242, ptr %2243, align 4, !tbaa !5
  %2244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2245 = load i32, ptr @test_count, align 4, !tbaa !5
  %2246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = call ptr @s2n_strerror(i32 noundef %2247, ptr noundef @.str.4)
  %2249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call ptr @s2n_strerror_debug(i32 noundef %2250, ptr noundef @.str.4)
  %2252 = call ptr @__errno_location() #11
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = call ptr @strerror(i32 noundef %2253) #10
  %2255 = call ptr @__errno_location() #11
  %2256 = load i32, ptr %2255, align 4, !tbaa !5
  %2257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2244, ptr noundef @.str.2, i32 noundef %2245, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2248, ptr noundef %2251, ptr noundef %2254, i32 noundef %2256) #10
  br label %2275

2258:                                             ; preds = %2236, %2229
  %2259 = load i32, ptr %57, align 4, !tbaa !5
  %2260 = call ptr @__errno_location() #11
  store i32 %2259, ptr %2260, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror(i32 noundef %2264, ptr noundef @.str.4)
  %2266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef @.str.4)
  %2269 = call ptr @__errno_location() #11
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = call ptr @strerror(i32 noundef %2270) #10
  %2272 = call ptr @__errno_location() #11
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2261, ptr noundef @.str.5, i32 noundef %2262, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2265, ptr noundef %2268, ptr noundef %2271, i32 noundef %2273) #10
  br label %2275

2275:                                             ; preds = %2258, %2241
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2276

2276:                                             ; preds = %2275
  br label %2277

2277:                                             ; preds = %2276
  call void @exit(i32 noundef 1) #12
  unreachable

2278:                                             ; No predecessors!
  br label %2279

2279:                                             ; preds = %2278
  br label %2280

2280:                                             ; preds = %2279, %2220
  br label %2281

2281:                                             ; preds = %2280
  br label %2282

2282:                                             ; preds = %2281
  br label %2283

2283:                                             ; preds = %2282
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = add nsw i32 %2284, 1
  store i32 %2285, ptr @test_count, align 4, !tbaa !5
  %2286 = load ptr, ptr %39, align 8, !tbaa !9
  %2287 = call i32 @s2n_connection_client_cert_used(ptr noundef %2286)
  %2288 = icmp ne i32 %2287, 0
  br i1 %2288, label %2342, label %2289

2289:                                             ; preds = %2283
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

2291:                                             ; preds = %2290
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  %2292 = call ptr @__errno_location() #11
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  store i32 %2293, ptr %58, align 4, !tbaa !5
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = call i32 @s2n_print_stacktrace(ptr noundef %2294)
  %2296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2297 = trunc i8 %2296 to i1
  br i1 %2297, label %2298, label %2320

2298:                                             ; preds = %2291
  %2299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2300 = call i32 @fileno(ptr noundef %2299) #10
  %2301 = call i32 @isatty(i32 noundef %2300) #10
  %2302 = icmp ne i32 %2301, 0
  br i1 %2302, label %2303, label %2320

2303:                                             ; preds = %2298
  %2304 = load i32, ptr %58, align 4, !tbaa !5
  %2305 = call ptr @__errno_location() #11
  store i32 %2304, ptr %2305, align 4, !tbaa !5
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = load i32, ptr @test_count, align 4, !tbaa !5
  %2308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call ptr @s2n_strerror(i32 noundef %2309, ptr noundef @.str.4)
  %2311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call ptr @s2n_strerror_debug(i32 noundef %2312, ptr noundef @.str.4)
  %2314 = call ptr @__errno_location() #11
  %2315 = load i32, ptr %2314, align 4, !tbaa !5
  %2316 = call ptr @strerror(i32 noundef %2315) #10
  %2317 = call ptr @__errno_location() #11
  %2318 = load i32, ptr %2317, align 4, !tbaa !5
  %2319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2306, ptr noundef @.str.2, i32 noundef %2307, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2310, ptr noundef %2313, ptr noundef %2316, i32 noundef %2318) #10
  br label %2337

2320:                                             ; preds = %2298, %2291
  %2321 = load i32, ptr %58, align 4, !tbaa !5
  %2322 = call ptr @__errno_location() #11
  store i32 %2321, ptr %2322, align 4, !tbaa !5
  %2323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2324 = load i32, ptr @test_count, align 4, !tbaa !5
  %2325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2326 = load i32, ptr %2325, align 4, !tbaa !5
  %2327 = call ptr @s2n_strerror(i32 noundef %2326, ptr noundef @.str.4)
  %2328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2329 = load i32, ptr %2328, align 4, !tbaa !5
  %2330 = call ptr @s2n_strerror_debug(i32 noundef %2329, ptr noundef @.str.4)
  %2331 = call ptr @__errno_location() #11
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  %2333 = call ptr @strerror(i32 noundef %2332) #10
  %2334 = call ptr @__errno_location() #11
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2323, ptr noundef @.str.5, i32 noundef %2324, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2327, ptr noundef %2330, ptr noundef %2333, i32 noundef %2335) #10
  br label %2337

2337:                                             ; preds = %2320, %2303
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2338

2338:                                             ; preds = %2337
  br label %2339

2339:                                             ; preds = %2338
  call void @exit(i32 noundef 1) #12
  unreachable

2340:                                             ; No predecessors!
  br label %2341

2341:                                             ; preds = %2340
  br label %2342

2342:                                             ; preds = %2341, %2283
  br label %2343

2343:                                             ; preds = %2342
  br label %2344

2344:                                             ; preds = %2343
  br label %2345

2345:                                             ; preds = %2344
  %2346 = load i32, ptr @test_count, align 4, !tbaa !5
  %2347 = add nsw i32 %2346, 1
  store i32 %2347, ptr @test_count, align 4, !tbaa !5
  %2348 = load ptr, ptr %38, align 8, !tbaa !9
  %2349 = call i32 @s2n_connection_client_cert_used(ptr noundef %2348)
  %2350 = icmp ne i32 %2349, 0
  br i1 %2350, label %2404, label %2351

2351:                                             ; preds = %2345
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

2353:                                             ; preds = %2352
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2354 = call ptr @__errno_location() #11
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  store i32 %2355, ptr %59, align 4, !tbaa !5
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = call i32 @s2n_print_stacktrace(ptr noundef %2356)
  %2358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2359 = trunc i8 %2358 to i1
  br i1 %2359, label %2360, label %2382

2360:                                             ; preds = %2353
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = call i32 @fileno(ptr noundef %2361) #10
  %2363 = call i32 @isatty(i32 noundef %2362) #10
  %2364 = icmp ne i32 %2363, 0
  br i1 %2364, label %2365, label %2382

2365:                                             ; preds = %2360
  %2366 = load i32, ptr %59, align 4, !tbaa !5
  %2367 = call ptr @__errno_location() #11
  store i32 %2366, ptr %2367, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2371 = load i32, ptr %2370, align 4, !tbaa !5
  %2372 = call ptr @s2n_strerror(i32 noundef %2371, ptr noundef @.str.4)
  %2373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2374 = load i32, ptr %2373, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror_debug(i32 noundef %2374, ptr noundef @.str.4)
  %2376 = call ptr @__errno_location() #11
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call ptr @strerror(i32 noundef %2377) #10
  %2379 = call ptr @__errno_location() #11
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2368, ptr noundef @.str.2, i32 noundef %2369, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2372, ptr noundef %2375, ptr noundef %2378, i32 noundef %2380) #10
  br label %2399

2382:                                             ; preds = %2360, %2353
  %2383 = load i32, ptr %59, align 4, !tbaa !5
  %2384 = call ptr @__errno_location() #11
  store i32 %2383, ptr %2384, align 4, !tbaa !5
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = load i32, ptr @test_count, align 4, !tbaa !5
  %2387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2388 = load i32, ptr %2387, align 4, !tbaa !5
  %2389 = call ptr @s2n_strerror(i32 noundef %2388, ptr noundef @.str.4)
  %2390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2391 = load i32, ptr %2390, align 4, !tbaa !5
  %2392 = call ptr @s2n_strerror_debug(i32 noundef %2391, ptr noundef @.str.4)
  %2393 = call ptr @__errno_location() #11
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = call ptr @strerror(i32 noundef %2394) #10
  %2396 = call ptr @__errno_location() #11
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  %2398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2385, ptr noundef @.str.5, i32 noundef %2386, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2389, ptr noundef %2392, ptr noundef %2395, i32 noundef %2397) #10
  br label %2399

2399:                                             ; preds = %2382, %2365
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2400

2400:                                             ; preds = %2399
  br label %2401

2401:                                             ; preds = %2400
  call void @exit(i32 noundef 1) #12
  unreachable

2402:                                             ; No predecessors!
  br label %2403

2403:                                             ; preds = %2402
  br label %2404

2404:                                             ; preds = %2403, %2345
  br label %2405

2405:                                             ; preds = %2404
  br label %2406

2406:                                             ; preds = %2405
  br label %2407

2407:                                             ; preds = %2406
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = add nsw i32 %2408, 1
  store i32 %2409, ptr @test_count, align 4, !tbaa !5
  %2410 = getelementptr inbounds %struct.host_verify_data, ptr %31, i32 0, i32 0
  %2411 = load i8, ptr %2410, align 1, !tbaa !27
  %2412 = icmp ne i8 %2411, 0
  br i1 %2412, label %2466, label %2413

2413:                                             ; preds = %2407
  br label %2414

2414:                                             ; preds = %2413
  br label %2415

2415:                                             ; preds = %2414
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %2416 = call ptr @__errno_location() #11
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  store i32 %2417, ptr %60, align 4, !tbaa !5
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = call i32 @s2n_print_stacktrace(ptr noundef %2418)
  %2420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2421 = trunc i8 %2420 to i1
  br i1 %2421, label %2422, label %2444

2422:                                             ; preds = %2415
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = call i32 @fileno(ptr noundef %2423) #10
  %2425 = call i32 @isatty(i32 noundef %2424) #10
  %2426 = icmp ne i32 %2425, 0
  br i1 %2426, label %2427, label %2444

2427:                                             ; preds = %2422
  %2428 = load i32, ptr %60, align 4, !tbaa !5
  %2429 = call ptr @__errno_location() #11
  store i32 %2428, ptr %2429, align 4, !tbaa !5
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = load i32, ptr @test_count, align 4, !tbaa !5
  %2432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror(i32 noundef %2433, ptr noundef @.str.4)
  %2435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @s2n_strerror_debug(i32 noundef %2436, ptr noundef @.str.4)
  %2438 = call ptr @__errno_location() #11
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call ptr @strerror(i32 noundef %2439) #10
  %2441 = call ptr @__errno_location() #11
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2430, ptr noundef @.str.2, i32 noundef %2431, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2434, ptr noundef %2437, ptr noundef %2440, i32 noundef %2442) #10
  br label %2461

2444:                                             ; preds = %2422, %2415
  %2445 = load i32, ptr %60, align 4, !tbaa !5
  %2446 = call ptr @__errno_location() #11
  store i32 %2445, ptr %2446, align 4, !tbaa !5
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = load i32, ptr @test_count, align 4, !tbaa !5
  %2449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2450 = load i32, ptr %2449, align 4, !tbaa !5
  %2451 = call ptr @s2n_strerror(i32 noundef %2450, ptr noundef @.str.4)
  %2452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2453 = load i32, ptr %2452, align 4, !tbaa !5
  %2454 = call ptr @s2n_strerror_debug(i32 noundef %2453, ptr noundef @.str.4)
  %2455 = call ptr @__errno_location() #11
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call ptr @strerror(i32 noundef %2456) #10
  %2458 = call ptr @__errno_location() #11
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2447, ptr noundef @.str.5, i32 noundef %2448, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2451, ptr noundef %2454, ptr noundef %2457, i32 noundef %2459) #10
  br label %2461

2461:                                             ; preds = %2444, %2427
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2462

2462:                                             ; preds = %2461
  br label %2463

2463:                                             ; preds = %2462
  call void @exit(i32 noundef 1) #12
  unreachable

2464:                                             ; No predecessors!
  br label %2465

2465:                                             ; preds = %2464
  br label %2466

2466:                                             ; preds = %2465, %2407
  br label %2467

2467:                                             ; preds = %2466
  br label %2468

2468:                                             ; preds = %2467
  br label %2469

2469:                                             ; preds = %2468
  %2470 = load i32, ptr @test_count, align 4, !tbaa !5
  %2471 = add nsw i32 %2470, 1
  store i32 %2471, ptr @test_count, align 4, !tbaa !5
  %2472 = load ptr, ptr %38, align 8, !tbaa !9
  %2473 = call i32 @s2n_connection_free(ptr noundef %2472)
  %2474 = icmp eq i32 %2473, -1
  br i1 %2474, label %2475, label %2528

2475:                                             ; preds = %2469
  br label %2476

2476:                                             ; preds = %2475
  br label %2477

2477:                                             ; preds = %2476
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2478 = call ptr @__errno_location() #11
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  store i32 %2479, ptr %61, align 4, !tbaa !5
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = call i32 @s2n_print_stacktrace(ptr noundef %2480)
  %2482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2483 = trunc i8 %2482 to i1
  br i1 %2483, label %2484, label %2506

2484:                                             ; preds = %2477
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = call i32 @fileno(ptr noundef %2485) #10
  %2487 = call i32 @isatty(i32 noundef %2486) #10
  %2488 = icmp ne i32 %2487, 0
  br i1 %2488, label %2489, label %2506

2489:                                             ; preds = %2484
  %2490 = load i32, ptr %61, align 4, !tbaa !5
  %2491 = call ptr @__errno_location() #11
  store i32 %2490, ptr %2491, align 4, !tbaa !5
  %2492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2495 = load i32, ptr %2494, align 4, !tbaa !5
  %2496 = call ptr @s2n_strerror(i32 noundef %2495, ptr noundef @.str.4)
  %2497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2498 = load i32, ptr %2497, align 4, !tbaa !5
  %2499 = call ptr @s2n_strerror_debug(i32 noundef %2498, ptr noundef @.str.4)
  %2500 = call ptr @__errno_location() #11
  %2501 = load i32, ptr %2500, align 4, !tbaa !5
  %2502 = call ptr @strerror(i32 noundef %2501) #10
  %2503 = call ptr @__errno_location() #11
  %2504 = load i32, ptr %2503, align 4, !tbaa !5
  %2505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2492, ptr noundef @.str.2, i32 noundef %2493, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2496, ptr noundef %2499, ptr noundef %2502, i32 noundef %2504) #10
  br label %2523

2506:                                             ; preds = %2484, %2477
  %2507 = load i32, ptr %61, align 4, !tbaa !5
  %2508 = call ptr @__errno_location() #11
  store i32 %2507, ptr %2508, align 4, !tbaa !5
  %2509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2510 = load i32, ptr @test_count, align 4, !tbaa !5
  %2511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2512 = load i32, ptr %2511, align 4, !tbaa !5
  %2513 = call ptr @s2n_strerror(i32 noundef %2512, ptr noundef @.str.4)
  %2514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2515 = load i32, ptr %2514, align 4, !tbaa !5
  %2516 = call ptr @s2n_strerror_debug(i32 noundef %2515, ptr noundef @.str.4)
  %2517 = call ptr @__errno_location() #11
  %2518 = load i32, ptr %2517, align 4, !tbaa !5
  %2519 = call ptr @strerror(i32 noundef %2518) #10
  %2520 = call ptr @__errno_location() #11
  %2521 = load i32, ptr %2520, align 4, !tbaa !5
  %2522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2509, ptr noundef @.str.5, i32 noundef %2510, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2513, ptr noundef %2516, ptr noundef %2519, i32 noundef %2521) #10
  br label %2523

2523:                                             ; preds = %2506, %2489
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2524

2524:                                             ; preds = %2523
  br label %2525

2525:                                             ; preds = %2524
  call void @exit(i32 noundef 1) #12
  unreachable

2526:                                             ; No predecessors!
  br label %2527

2527:                                             ; preds = %2526
  br label %2528

2528:                                             ; preds = %2527, %2469
  br label %2529

2529:                                             ; preds = %2528
  br label %2530

2530:                                             ; preds = %2529
  br label %2531

2531:                                             ; preds = %2530
  %2532 = load i32, ptr @test_count, align 4, !tbaa !5
  %2533 = add nsw i32 %2532, 1
  store i32 %2533, ptr @test_count, align 4, !tbaa !5
  %2534 = load ptr, ptr %39, align 8, !tbaa !9
  %2535 = call i32 @s2n_connection_free(ptr noundef %2534)
  %2536 = icmp eq i32 %2535, -1
  br i1 %2536, label %2537, label %2590

2537:                                             ; preds = %2531
  br label %2538

2538:                                             ; preds = %2537
  br label %2539

2539:                                             ; preds = %2538
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2540 = call ptr @__errno_location() #11
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  store i32 %2541, ptr %62, align 4, !tbaa !5
  %2542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2543 = call i32 @s2n_print_stacktrace(ptr noundef %2542)
  %2544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2545 = trunc i8 %2544 to i1
  br i1 %2545, label %2546, label %2568

2546:                                             ; preds = %2539
  %2547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2548 = call i32 @fileno(ptr noundef %2547) #10
  %2549 = call i32 @isatty(i32 noundef %2548) #10
  %2550 = icmp ne i32 %2549, 0
  br i1 %2550, label %2551, label %2568

2551:                                             ; preds = %2546
  %2552 = load i32, ptr %62, align 4, !tbaa !5
  %2553 = call ptr @__errno_location() #11
  store i32 %2552, ptr %2553, align 4, !tbaa !5
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = load i32, ptr @test_count, align 4, !tbaa !5
  %2556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2557 = load i32, ptr %2556, align 4, !tbaa !5
  %2558 = call ptr @s2n_strerror(i32 noundef %2557, ptr noundef @.str.4)
  %2559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2560 = load i32, ptr %2559, align 4, !tbaa !5
  %2561 = call ptr @s2n_strerror_debug(i32 noundef %2560, ptr noundef @.str.4)
  %2562 = call ptr @__errno_location() #11
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  %2564 = call ptr @strerror(i32 noundef %2563) #10
  %2565 = call ptr @__errno_location() #11
  %2566 = load i32, ptr %2565, align 4, !tbaa !5
  %2567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2554, ptr noundef @.str.2, i32 noundef %2555, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2558, ptr noundef %2561, ptr noundef %2564, i32 noundef %2566) #10
  br label %2585

2568:                                             ; preds = %2546, %2539
  %2569 = load i32, ptr %62, align 4, !tbaa !5
  %2570 = call ptr @__errno_location() #11
  store i32 %2569, ptr %2570, align 4, !tbaa !5
  %2571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2572 = load i32, ptr @test_count, align 4, !tbaa !5
  %2573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2574 = load i32, ptr %2573, align 4, !tbaa !5
  %2575 = call ptr @s2n_strerror(i32 noundef %2574, ptr noundef @.str.4)
  %2576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2577 = load i32, ptr %2576, align 4, !tbaa !5
  %2578 = call ptr @s2n_strerror_debug(i32 noundef %2577, ptr noundef @.str.4)
  %2579 = call ptr @__errno_location() #11
  %2580 = load i32, ptr %2579, align 4, !tbaa !5
  %2581 = call ptr @strerror(i32 noundef %2580) #10
  %2582 = call ptr @__errno_location() #11
  %2583 = load i32, ptr %2582, align 4, !tbaa !5
  %2584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2571, ptr noundef @.str.5, i32 noundef %2572, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2575, ptr noundef %2578, ptr noundef %2581, i32 noundef %2583) #10
  br label %2585

2585:                                             ; preds = %2568, %2551
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2586

2586:                                             ; preds = %2585
  br label %2587

2587:                                             ; preds = %2586
  call void @exit(i32 noundef 1) #12
  unreachable

2588:                                             ; No predecessors!
  br label %2589

2589:                                             ; preds = %2588
  br label %2590

2590:                                             ; preds = %2589, %2531
  br label %2591

2591:                                             ; preds = %2590
  br label %2592

2592:                                             ; preds = %2591
  br label %2593

2593:                                             ; preds = %2592
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = add nsw i32 %2594, 1
  store i32 %2595, ptr @test_count, align 4, !tbaa !5
  %2596 = call i32 @s2n_stuffer_free(ptr noundef %41)
  %2597 = icmp eq i32 %2596, -1
  br i1 %2597, label %2598, label %2651

2598:                                             ; preds = %2593
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2601 = call ptr @__errno_location() #11
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  store i32 %2602, ptr %63, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @s2n_print_stacktrace(ptr noundef %2603)
  %2605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2606 = trunc i8 %2605 to i1
  br i1 %2606, label %2607, label %2629

2607:                                             ; preds = %2600
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @fileno(ptr noundef %2608) #10
  %2610 = call i32 @isatty(i32 noundef %2609) #10
  %2611 = icmp ne i32 %2610, 0
  br i1 %2611, label %2612, label %2629

2612:                                             ; preds = %2607
  %2613 = load i32, ptr %63, align 4, !tbaa !5
  %2614 = call ptr @__errno_location() #11
  store i32 %2613, ptr %2614, align 4, !tbaa !5
  %2615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2616 = load i32, ptr @test_count, align 4, !tbaa !5
  %2617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2618 = load i32, ptr %2617, align 4, !tbaa !5
  %2619 = call ptr @s2n_strerror(i32 noundef %2618, ptr noundef @.str.4)
  %2620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror_debug(i32 noundef %2621, ptr noundef @.str.4)
  %2623 = call ptr @__errno_location() #11
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call ptr @strerror(i32 noundef %2624) #10
  %2626 = call ptr @__errno_location() #11
  %2627 = load i32, ptr %2626, align 4, !tbaa !5
  %2628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2615, ptr noundef @.str.2, i32 noundef %2616, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2619, ptr noundef %2622, ptr noundef %2625, i32 noundef %2627) #10
  br label %2646

2629:                                             ; preds = %2607, %2600
  %2630 = load i32, ptr %63, align 4, !tbaa !5
  %2631 = call ptr @__errno_location() #11
  store i32 %2630, ptr %2631, align 4, !tbaa !5
  %2632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2633 = load i32, ptr @test_count, align 4, !tbaa !5
  %2634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  %2636 = call ptr @s2n_strerror(i32 noundef %2635, ptr noundef @.str.4)
  %2637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2638 = load i32, ptr %2637, align 4, !tbaa !5
  %2639 = call ptr @s2n_strerror_debug(i32 noundef %2638, ptr noundef @.str.4)
  %2640 = call ptr @__errno_location() #11
  %2641 = load i32, ptr %2640, align 4, !tbaa !5
  %2642 = call ptr @strerror(i32 noundef %2641) #10
  %2643 = call ptr @__errno_location() #11
  %2644 = load i32, ptr %2643, align 4, !tbaa !5
  %2645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2632, ptr noundef @.str.5, i32 noundef %2633, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2636, ptr noundef %2639, ptr noundef %2642, i32 noundef %2644) #10
  br label %2646

2646:                                             ; preds = %2629, %2612
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2647

2647:                                             ; preds = %2646
  br label %2648

2648:                                             ; preds = %2647
  call void @exit(i32 noundef 1) #12
  unreachable

2649:                                             ; No predecessors!
  br label %2650

2650:                                             ; preds = %2649
  br label %2651

2651:                                             ; preds = %2650, %2593
  br label %2652

2652:                                             ; preds = %2651
  br label %2653

2653:                                             ; preds = %2652
  br label %2654

2654:                                             ; preds = %2653
  %2655 = load i32, ptr @test_count, align 4, !tbaa !5
  %2656 = add nsw i32 %2655, 1
  store i32 %2656, ptr @test_count, align 4, !tbaa !5
  %2657 = call i32 @s2n_stuffer_free(ptr noundef %40)
  %2658 = icmp eq i32 %2657, -1
  br i1 %2658, label %2659, label %2712

2659:                                             ; preds = %2654
  br label %2660

2660:                                             ; preds = %2659
  br label %2661

2661:                                             ; preds = %2660
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %2662 = call ptr @__errno_location() #11
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  store i32 %2663, ptr %64, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = call i32 @s2n_print_stacktrace(ptr noundef %2664)
  %2666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2667 = trunc i8 %2666 to i1
  br i1 %2667, label %2668, label %2690

2668:                                             ; preds = %2661
  %2669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2670 = call i32 @fileno(ptr noundef %2669) #10
  %2671 = call i32 @isatty(i32 noundef %2670) #10
  %2672 = icmp ne i32 %2671, 0
  br i1 %2672, label %2673, label %2690

2673:                                             ; preds = %2668
  %2674 = load i32, ptr %64, align 4, !tbaa !5
  %2675 = call ptr @__errno_location() #11
  store i32 %2674, ptr %2675, align 4, !tbaa !5
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = load i32, ptr @test_count, align 4, !tbaa !5
  %2678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = call ptr @s2n_strerror(i32 noundef %2679, ptr noundef @.str.4)
  %2681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2682 = load i32, ptr %2681, align 4, !tbaa !5
  %2683 = call ptr @s2n_strerror_debug(i32 noundef %2682, ptr noundef @.str.4)
  %2684 = call ptr @__errno_location() #11
  %2685 = load i32, ptr %2684, align 4, !tbaa !5
  %2686 = call ptr @strerror(i32 noundef %2685) #10
  %2687 = call ptr @__errno_location() #11
  %2688 = load i32, ptr %2687, align 4, !tbaa !5
  %2689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2676, ptr noundef @.str.2, i32 noundef %2677, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2680, ptr noundef %2683, ptr noundef %2686, i32 noundef %2688) #10
  br label %2707

2690:                                             ; preds = %2668, %2661
  %2691 = load i32, ptr %64, align 4, !tbaa !5
  %2692 = call ptr @__errno_location() #11
  store i32 %2691, ptr %2692, align 4, !tbaa !5
  %2693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2694 = load i32, ptr @test_count, align 4, !tbaa !5
  %2695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  %2697 = call ptr @s2n_strerror(i32 noundef %2696, ptr noundef @.str.4)
  %2698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2699 = load i32, ptr %2698, align 4, !tbaa !5
  %2700 = call ptr @s2n_strerror_debug(i32 noundef %2699, ptr noundef @.str.4)
  %2701 = call ptr @__errno_location() #11
  %2702 = load i32, ptr %2701, align 4, !tbaa !5
  %2703 = call ptr @strerror(i32 noundef %2702) #10
  %2704 = call ptr @__errno_location() #11
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2693, ptr noundef @.str.5, i32 noundef %2694, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2697, ptr noundef %2700, ptr noundef %2703, i32 noundef %2705) #10
  br label %2707

2707:                                             ; preds = %2690, %2673
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2708

2708:                                             ; preds = %2707
  br label %2709

2709:                                             ; preds = %2708
  call void @exit(i32 noundef 1) #12
  unreachable

2710:                                             ; No predecessors!
  br label %2711

2711:                                             ; preds = %2710
  br label %2712

2712:                                             ; preds = %2711, %2654
  br label %2713

2713:                                             ; preds = %2712
  br label %2714

2714:                                             ; preds = %2713
  store i32 0, ptr %35, align 4
  br label %2715

2715:                                             ; preds = %2714, %1532
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #10
  %2716 = load i32, ptr %35, align 4
  switch i32 %2716, label %8733 [
    i32 0, label %2717
    i32 128, label %2718
  ]

2717:                                             ; preds = %2715
  br label %2718

2718:                                             ; preds = %2717, %2715
  %2719 = load i64, ptr %34, align 8, !tbaa !24
  %2720 = add i64 %2719, 1
  store i64 %2720, ptr %34, align 8, !tbaa !24
  br label %1446, !llvm.loop !30

2721:                                             ; preds = %1453
  br label %2722

2722:                                             ; preds = %2721
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = add nsw i32 %2723, 1
  store i32 %2724, ptr @test_count, align 4, !tbaa !5
  %2725 = load ptr, ptr %6, align 8, !tbaa !9
  %2726 = call i32 @s2n_config_set_client_auth_type(ptr noundef %2725, i32 noundef 1)
  %2727 = icmp eq i32 %2726, -1
  br i1 %2727, label %2728, label %2781

2728:                                             ; preds = %2722
  br label %2729

2729:                                             ; preds = %2728
  br label %2730

2730:                                             ; preds = %2729
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2731 = call ptr @__errno_location() #11
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  store i32 %2732, ptr %65, align 4, !tbaa !5
  %2733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2734 = call i32 @s2n_print_stacktrace(ptr noundef %2733)
  %2735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2736 = trunc i8 %2735 to i1
  br i1 %2736, label %2737, label %2759

2737:                                             ; preds = %2730
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = call i32 @fileno(ptr noundef %2738) #10
  %2740 = call i32 @isatty(i32 noundef %2739) #10
  %2741 = icmp ne i32 %2740, 0
  br i1 %2741, label %2742, label %2759

2742:                                             ; preds = %2737
  %2743 = load i32, ptr %65, align 4, !tbaa !5
  %2744 = call ptr @__errno_location() #11
  store i32 %2743, ptr %2744, align 4, !tbaa !5
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = load i32, ptr @test_count, align 4, !tbaa !5
  %2747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror(i32 noundef %2748, ptr noundef @.str.4)
  %2750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call ptr @s2n_strerror_debug(i32 noundef %2751, ptr noundef @.str.4)
  %2753 = call ptr @__errno_location() #11
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call ptr @strerror(i32 noundef %2754) #10
  %2756 = call ptr @__errno_location() #11
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2745, ptr noundef @.str.2, i32 noundef %2746, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2749, ptr noundef %2752, ptr noundef %2755, i32 noundef %2757) #10
  br label %2776

2759:                                             ; preds = %2737, %2730
  %2760 = load i32, ptr %65, align 4, !tbaa !5
  %2761 = call ptr @__errno_location() #11
  store i32 %2760, ptr %2761, align 4, !tbaa !5
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = load i32, ptr @test_count, align 4, !tbaa !5
  %2764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2765 = load i32, ptr %2764, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror(i32 noundef %2765, ptr noundef @.str.4)
  %2767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call ptr @s2n_strerror_debug(i32 noundef %2768, ptr noundef @.str.4)
  %2770 = call ptr @__errno_location() #11
  %2771 = load i32, ptr %2770, align 4, !tbaa !5
  %2772 = call ptr @strerror(i32 noundef %2771) #10
  %2773 = call ptr @__errno_location() #11
  %2774 = load i32, ptr %2773, align 4, !tbaa !5
  %2775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2762, ptr noundef @.str.5, i32 noundef %2763, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2766, ptr noundef %2769, ptr noundef %2772, i32 noundef %2774) #10
  br label %2776

2776:                                             ; preds = %2759, %2742
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2777

2777:                                             ; preds = %2776
  br label %2778

2778:                                             ; preds = %2777
  call void @exit(i32 noundef 1) #12
  unreachable

2779:                                             ; No predecessors!
  br label %2780

2780:                                             ; preds = %2779
  br label %2781

2781:                                             ; preds = %2780, %2722
  br label %2782

2782:                                             ; preds = %2781
  br label %2783

2783:                                             ; preds = %2782
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  store i64 0, ptr %66, align 8, !tbaa !24
  br label %2784

2784:                                             ; preds = %3869, %2783
  %2785 = load i64, ptr %66, align 8, !tbaa !24
  %2786 = load ptr, ptr %8, align 8, !tbaa !9
  %2787 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %2786, i32 0, i32 0
  %2788 = load i16, ptr %2787, align 8, !tbaa !25
  %2789 = zext i16 %2788 to i64
  %2790 = icmp ult i64 %2785, %2789
  br i1 %2790, label %2792, label %2791

2791:                                             ; preds = %2784
  store i32 255, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  br label %3872

2792:                                             ; preds = %2784
  call void @llvm.lifetime.start.p0(i64 24, ptr %67) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %68) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  store ptr null, ptr %69, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  store ptr null, ptr %70, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %71) #10
  call void @llvm.memset.p0.i64(ptr align 8 %71, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %72) #10
  call void @llvm.memset.p0.i64(ptr align 8 %72, i8 0, i64 40, i1 false)
  br label %2793

2793:                                             ; preds = %2792
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  store i64 24, ptr %73, align 8, !tbaa !24
  %2794 = load i64, ptr %73, align 8, !tbaa !24
  %2795 = icmp ne i64 %2794, 0
  br i1 %2795, label %2796, label %2854

2796:                                             ; preds = %2793
  %2797 = load ptr, ptr %8, align 8, !tbaa !9
  %2798 = load i64, ptr %73, align 8, !tbaa !24
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %67, ptr align 8 %2797, i64 %2798, i1 false)
  %2799 = icmp eq ptr %67, null
  br i1 %2799, label %2800, label %2853

2800:                                             ; preds = %2796
  br label %2801

2801:                                             ; preds = %2800
  br label %2802

2802:                                             ; preds = %2801
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  %2803 = call ptr @__errno_location() #11
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  store i32 %2804, ptr %74, align 4, !tbaa !5
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = call i32 @s2n_print_stacktrace(ptr noundef %2805)
  %2807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2808 = trunc i8 %2807 to i1
  br i1 %2808, label %2809, label %2831

2809:                                             ; preds = %2802
  %2810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2811 = call i32 @fileno(ptr noundef %2810) #10
  %2812 = call i32 @isatty(i32 noundef %2811) #10
  %2813 = icmp ne i32 %2812, 0
  br i1 %2813, label %2814, label %2831

2814:                                             ; preds = %2809
  %2815 = load i32, ptr %74, align 4, !tbaa !5
  %2816 = call ptr @__errno_location() #11
  store i32 %2815, ptr %2816, align 4, !tbaa !5
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = load i32, ptr @test_count, align 4, !tbaa !5
  %2819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2820 = load i32, ptr %2819, align 4, !tbaa !5
  %2821 = call ptr @s2n_strerror(i32 noundef %2820, ptr noundef @.str.4)
  %2822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2823 = load i32, ptr %2822, align 4, !tbaa !5
  %2824 = call ptr @s2n_strerror_debug(i32 noundef %2823, ptr noundef @.str.4)
  %2825 = call ptr @__errno_location() #11
  %2826 = load i32, ptr %2825, align 4, !tbaa !5
  %2827 = call ptr @strerror(i32 noundef %2826) #10
  %2828 = call ptr @__errno_location() #11
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  %2830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2817, ptr noundef @.str.2, i32 noundef %2818, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2821, ptr noundef %2824, ptr noundef %2827, i32 noundef %2829) #10
  br label %2848

2831:                                             ; preds = %2809, %2802
  %2832 = load i32, ptr %74, align 4, !tbaa !5
  %2833 = call ptr @__errno_location() #11
  store i32 %2832, ptr %2833, align 4, !tbaa !5
  %2834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2835 = load i32, ptr @test_count, align 4, !tbaa !5
  %2836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call ptr @s2n_strerror(i32 noundef %2837, ptr noundef @.str.4)
  %2839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call ptr @s2n_strerror_debug(i32 noundef %2840, ptr noundef @.str.4)
  %2842 = call ptr @__errno_location() #11
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call ptr @strerror(i32 noundef %2843) #10
  %2845 = call ptr @__errno_location() #11
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2834, ptr noundef @.str.5, i32 noundef %2835, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2838, ptr noundef %2841, ptr noundef %2844, i32 noundef %2846) #10
  br label %2848

2848:                                             ; preds = %2831, %2814
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %2849

2849:                                             ; preds = %2848
  br label %2850

2850:                                             ; preds = %2849
  call void @exit(i32 noundef 1) #12
  unreachable

2851:                                             ; No predecessors!
  br label %2852

2852:                                             ; preds = %2851
  br label %2853

2853:                                             ; preds = %2852, %2796
  br label %2854

2854:                                             ; preds = %2853, %2793
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  br label %2855

2855:                                             ; preds = %2854
  br label %2856

2856:                                             ; preds = %2855
  %2857 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %67, i32 0, i32 0
  store i16 1, ptr %2857, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #10
  %2858 = load ptr, ptr %8, align 8, !tbaa !9
  %2859 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %2858, i32 0, i32 1
  %2860 = load ptr, ptr %2859, align 8, !tbaa !29
  %2861 = load i64, ptr %66, align 8, !tbaa !24
  %2862 = getelementptr inbounds ptr, ptr %2860, i64 %2861
  %2863 = load ptr, ptr %2862, align 8, !tbaa !9
  store ptr %2863, ptr %75, align 8, !tbaa !9
  %2864 = load ptr, ptr %75, align 8, !tbaa !9
  %2865 = load i8, ptr %2864, align 8
  %2866 = and i8 %2865, 1
  %2867 = zext i8 %2866 to i32
  %2868 = icmp ne i32 %2867, 0
  br i1 %2868, label %2870, label %2869

2869:                                             ; preds = %2856
  store i32 257, ptr %35, align 4
  br label %3866

2870:                                             ; preds = %2856
  %2871 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %67, i32 0, i32 1
  store ptr %75, ptr %2871, align 8, !tbaa !29
  br label %2872

2872:                                             ; preds = %2870
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #10
  store i64 64, ptr %76, align 8, !tbaa !24
  %2873 = load i64, ptr %76, align 8, !tbaa !24
  %2874 = icmp ne i64 %2873, 0
  br i1 %2874, label %2875, label %2933

2875:                                             ; preds = %2872
  %2876 = load ptr, ptr %7, align 8, !tbaa !9
  %2877 = load i64, ptr %76, align 8, !tbaa !24
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %68, ptr align 8 %2876, i64 %2877, i1 false)
  %2878 = icmp eq ptr %68, null
  br i1 %2878, label %2879, label %2932

2879:                                             ; preds = %2875
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %2882 = call ptr @__errno_location() #11
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  store i32 %2883, ptr %77, align 4, !tbaa !5
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = call i32 @s2n_print_stacktrace(ptr noundef %2884)
  %2886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2887 = trunc i8 %2886 to i1
  br i1 %2887, label %2888, label %2910

2888:                                             ; preds = %2881
  %2889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2890 = call i32 @fileno(ptr noundef %2889) #10
  %2891 = call i32 @isatty(i32 noundef %2890) #10
  %2892 = icmp ne i32 %2891, 0
  br i1 %2892, label %2893, label %2910

2893:                                             ; preds = %2888
  %2894 = load i32, ptr %77, align 4, !tbaa !5
  %2895 = call ptr @__errno_location() #11
  store i32 %2894, ptr %2895, align 4, !tbaa !5
  %2896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2897 = load i32, ptr @test_count, align 4, !tbaa !5
  %2898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2899 = load i32, ptr %2898, align 4, !tbaa !5
  %2900 = call ptr @s2n_strerror(i32 noundef %2899, ptr noundef @.str.4)
  %2901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2902 = load i32, ptr %2901, align 4, !tbaa !5
  %2903 = call ptr @s2n_strerror_debug(i32 noundef %2902, ptr noundef @.str.4)
  %2904 = call ptr @__errno_location() #11
  %2905 = load i32, ptr %2904, align 4, !tbaa !5
  %2906 = call ptr @strerror(i32 noundef %2905) #10
  %2907 = call ptr @__errno_location() #11
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  %2909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2896, ptr noundef @.str.2, i32 noundef %2897, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2900, ptr noundef %2903, ptr noundef %2906, i32 noundef %2908) #10
  br label %2927

2910:                                             ; preds = %2888, %2881
  %2911 = load i32, ptr %77, align 4, !tbaa !5
  %2912 = call ptr @__errno_location() #11
  store i32 %2911, ptr %2912, align 4, !tbaa !5
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = load i32, ptr @test_count, align 4, !tbaa !5
  %2915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror(i32 noundef %2916, ptr noundef @.str.4)
  %2918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @s2n_strerror_debug(i32 noundef %2919, ptr noundef @.str.4)
  %2921 = call ptr @__errno_location() #11
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call ptr @strerror(i32 noundef %2922) #10
  %2924 = call ptr @__errno_location() #11
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2913, ptr noundef @.str.5, i32 noundef %2914, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2917, ptr noundef %2920, ptr noundef %2923, i32 noundef %2925) #10
  br label %2927

2927:                                             ; preds = %2910, %2893
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %2928

2928:                                             ; preds = %2927
  br label %2929

2929:                                             ; preds = %2928
  call void @exit(i32 noundef 1) #12
  unreachable

2930:                                             ; No predecessors!
  br label %2931

2931:                                             ; preds = %2930
  br label %2932

2932:                                             ; preds = %2931, %2875
  br label %2933

2933:                                             ; preds = %2932, %2872
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  br label %2934

2934:                                             ; preds = %2933
  br label %2935

2935:                                             ; preds = %2934
  %2936 = getelementptr inbounds %struct.s2n_security_policy, ptr %68, i32 0, i32 1
  store ptr %67, ptr %2936, align 8, !tbaa !22
  %2937 = load ptr, ptr %6, align 8, !tbaa !9
  %2938 = getelementptr inbounds %struct.s2n_config, ptr %2937, i32 0, i32 7
  store ptr %68, ptr %2938, align 8, !tbaa !15
  br label %2939

2939:                                             ; preds = %2935
  %2940 = load i32, ptr @test_count, align 4, !tbaa !5
  %2941 = add nsw i32 %2940, 1
  store i32 %2941, ptr @test_count, align 4, !tbaa !5
  %2942 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2942, ptr %70, align 8, !tbaa !9
  %2943 = icmp eq ptr %2942, null
  br i1 %2943, label %2944, label %2997

2944:                                             ; preds = %2939
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

2946:                                             ; preds = %2945
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  %2947 = call ptr @__errno_location() #11
  %2948 = load i32, ptr %2947, align 4, !tbaa !5
  store i32 %2948, ptr %78, align 4, !tbaa !5
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = call i32 @s2n_print_stacktrace(ptr noundef %2949)
  %2951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2952 = trunc i8 %2951 to i1
  br i1 %2952, label %2953, label %2975

2953:                                             ; preds = %2946
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = call i32 @fileno(ptr noundef %2954) #10
  %2956 = call i32 @isatty(i32 noundef %2955) #10
  %2957 = icmp ne i32 %2956, 0
  br i1 %2957, label %2958, label %2975

2958:                                             ; preds = %2953
  %2959 = load i32, ptr %78, align 4, !tbaa !5
  %2960 = call ptr @__errno_location() #11
  store i32 %2959, ptr %2960, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = load i32, ptr @test_count, align 4, !tbaa !5
  %2963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2964 = load i32, ptr %2963, align 4, !tbaa !5
  %2965 = call ptr @s2n_strerror(i32 noundef %2964, ptr noundef @.str.4)
  %2966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2967 = load i32, ptr %2966, align 4, !tbaa !5
  %2968 = call ptr @s2n_strerror_debug(i32 noundef %2967, ptr noundef @.str.4)
  %2969 = call ptr @__errno_location() #11
  %2970 = load i32, ptr %2969, align 4, !tbaa !5
  %2971 = call ptr @strerror(i32 noundef %2970) #10
  %2972 = call ptr @__errno_location() #11
  %2973 = load i32, ptr %2972, align 4, !tbaa !5
  %2974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2961, ptr noundef @.str.2, i32 noundef %2962, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2965, ptr noundef %2968, ptr noundef %2971, i32 noundef %2973) #10
  br label %2992

2975:                                             ; preds = %2953, %2946
  %2976 = load i32, ptr %78, align 4, !tbaa !5
  %2977 = call ptr @__errno_location() #11
  store i32 %2976, ptr %2977, align 4, !tbaa !5
  %2978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2979 = load i32, ptr @test_count, align 4, !tbaa !5
  %2980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  %2982 = call ptr @s2n_strerror(i32 noundef %2981, ptr noundef @.str.4)
  %2983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call ptr @s2n_strerror_debug(i32 noundef %2984, ptr noundef @.str.4)
  %2986 = call ptr @__errno_location() #11
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call ptr @strerror(i32 noundef %2987) #10
  %2989 = call ptr @__errno_location() #11
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2978, ptr noundef @.str.5, i32 noundef %2979, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2982, ptr noundef %2985, ptr noundef %2988, i32 noundef %2990) #10
  br label %2992

2992:                                             ; preds = %2975, %2958
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %2993

2993:                                             ; preds = %2992
  br label %2994

2994:                                             ; preds = %2993
  call void @exit(i32 noundef 1) #12
  unreachable

2995:                                             ; No predecessors!
  br label %2996

2996:                                             ; preds = %2995
  br label %2997

2997:                                             ; preds = %2996, %2939
  br label %2998

2998:                                             ; preds = %2997
  br label %2999

2999:                                             ; preds = %2998
  br label %3000

3000:                                             ; preds = %2999
  %3001 = load i32, ptr @test_count, align 4, !tbaa !5
  %3002 = add nsw i32 %3001, 1
  store i32 %3002, ptr @test_count, align 4, !tbaa !5
  %3003 = load ptr, ptr %70, align 8, !tbaa !9
  %3004 = load ptr, ptr %6, align 8, !tbaa !9
  %3005 = call i32 @s2n_connection_set_config(ptr noundef %3003, ptr noundef %3004)
  %3006 = icmp eq i32 %3005, -1
  br i1 %3006, label %3007, label %3060

3007:                                             ; preds = %3000
  br label %3008

3008:                                             ; preds = %3007
  br label %3009

3009:                                             ; preds = %3008
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3010 = call ptr @__errno_location() #11
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  store i32 %3011, ptr %79, align 4, !tbaa !5
  %3012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3013 = call i32 @s2n_print_stacktrace(ptr noundef %3012)
  %3014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3015 = trunc i8 %3014 to i1
  br i1 %3015, label %3016, label %3038

3016:                                             ; preds = %3009
  %3017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3018 = call i32 @fileno(ptr noundef %3017) #10
  %3019 = call i32 @isatty(i32 noundef %3018) #10
  %3020 = icmp ne i32 %3019, 0
  br i1 %3020, label %3021, label %3038

3021:                                             ; preds = %3016
  %3022 = load i32, ptr %79, align 4, !tbaa !5
  %3023 = call ptr @__errno_location() #11
  store i32 %3022, ptr %3023, align 4, !tbaa !5
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror(i32 noundef %3027, ptr noundef @.str.4)
  %3029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call ptr @s2n_strerror_debug(i32 noundef %3030, ptr noundef @.str.4)
  %3032 = call ptr @__errno_location() #11
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call ptr @strerror(i32 noundef %3033) #10
  %3035 = call ptr @__errno_location() #11
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3024, ptr noundef @.str.2, i32 noundef %3025, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 167, ptr noundef %3028, ptr noundef %3031, ptr noundef %3034, i32 noundef %3036) #10
  br label %3055

3038:                                             ; preds = %3016, %3009
  %3039 = load i32, ptr %79, align 4, !tbaa !5
  %3040 = call ptr @__errno_location() #11
  store i32 %3039, ptr %3040, align 4, !tbaa !5
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = load i32, ptr @test_count, align 4, !tbaa !5
  %3043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = call ptr @s2n_strerror(i32 noundef %3044, ptr noundef @.str.4)
  %3046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call ptr @s2n_strerror_debug(i32 noundef %3047, ptr noundef @.str.4)
  %3049 = call ptr @__errno_location() #11
  %3050 = load i32, ptr %3049, align 4, !tbaa !5
  %3051 = call ptr @strerror(i32 noundef %3050) #10
  %3052 = call ptr @__errno_location() #11
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3041, ptr noundef @.str.5, i32 noundef %3042, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 167, ptr noundef %3045, ptr noundef %3048, ptr noundef %3051, i32 noundef %3053) #10
  br label %3055

3055:                                             ; preds = %3038, %3021
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3056

3056:                                             ; preds = %3055
  br label %3057

3057:                                             ; preds = %3056
  call void @exit(i32 noundef 1) #12
  unreachable

3058:                                             ; No predecessors!
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059, %3000
  br label %3061

3061:                                             ; preds = %3060
  br label %3062

3062:                                             ; preds = %3061
  br label %3063

3063:                                             ; preds = %3062
  %3064 = load i32, ptr @test_count, align 4, !tbaa !5
  %3065 = add nsw i32 %3064, 1
  store i32 %3065, ptr @test_count, align 4, !tbaa !5
  %3066 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3066, ptr %69, align 8, !tbaa !9
  %3067 = icmp eq ptr %3066, null
  br i1 %3067, label %3068, label %3121

3068:                                             ; preds = %3063
  br label %3069

3069:                                             ; preds = %3068
  br label %3070

3070:                                             ; preds = %3069
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %3071 = call ptr @__errno_location() #11
  %3072 = load i32, ptr %3071, align 4, !tbaa !5
  store i32 %3072, ptr %80, align 4, !tbaa !5
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = call i32 @s2n_print_stacktrace(ptr noundef %3073)
  %3075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3076 = trunc i8 %3075 to i1
  br i1 %3076, label %3077, label %3099

3077:                                             ; preds = %3070
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = call i32 @fileno(ptr noundef %3078) #10
  %3080 = call i32 @isatty(i32 noundef %3079) #10
  %3081 = icmp ne i32 %3080, 0
  br i1 %3081, label %3082, label %3099

3082:                                             ; preds = %3077
  %3083 = load i32, ptr %80, align 4, !tbaa !5
  %3084 = call ptr @__errno_location() #11
  store i32 %3083, ptr %3084, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = load i32, ptr @test_count, align 4, !tbaa !5
  %3087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror(i32 noundef %3088, ptr noundef @.str.4)
  %3090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3091 = load i32, ptr %3090, align 4, !tbaa !5
  %3092 = call ptr @s2n_strerror_debug(i32 noundef %3091, ptr noundef @.str.4)
  %3093 = call ptr @__errno_location() #11
  %3094 = load i32, ptr %3093, align 4, !tbaa !5
  %3095 = call ptr @strerror(i32 noundef %3094) #10
  %3096 = call ptr @__errno_location() #11
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  %3098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3085, ptr noundef @.str.2, i32 noundef %3086, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3089, ptr noundef %3092, ptr noundef %3095, i32 noundef %3097) #10
  br label %3116

3099:                                             ; preds = %3077, %3070
  %3100 = load i32, ptr %80, align 4, !tbaa !5
  %3101 = call ptr @__errno_location() #11
  store i32 %3100, ptr %3101, align 4, !tbaa !5
  %3102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3103 = load i32, ptr @test_count, align 4, !tbaa !5
  %3104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3105 = load i32, ptr %3104, align 4, !tbaa !5
  %3106 = call ptr @s2n_strerror(i32 noundef %3105, ptr noundef @.str.4)
  %3107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3108 = load i32, ptr %3107, align 4, !tbaa !5
  %3109 = call ptr @s2n_strerror_debug(i32 noundef %3108, ptr noundef @.str.4)
  %3110 = call ptr @__errno_location() #11
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  %3112 = call ptr @strerror(i32 noundef %3111) #10
  %3113 = call ptr @__errno_location() #11
  %3114 = load i32, ptr %3113, align 4, !tbaa !5
  %3115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3102, ptr noundef @.str.5, i32 noundef %3103, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3106, ptr noundef %3109, ptr noundef %3112, i32 noundef %3114) #10
  br label %3116

3116:                                             ; preds = %3099, %3082
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3117

3117:                                             ; preds = %3116
  br label %3118

3118:                                             ; preds = %3117
  call void @exit(i32 noundef 1) #12
  unreachable

3119:                                             ; No predecessors!
  br label %3120

3120:                                             ; preds = %3119
  br label %3121

3121:                                             ; preds = %3120, %3063
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122
  br label %3124

3124:                                             ; preds = %3123
  %3125 = load i32, ptr @test_count, align 4, !tbaa !5
  %3126 = add nsw i32 %3125, 1
  store i32 %3126, ptr @test_count, align 4, !tbaa !5
  %3127 = load ptr, ptr %69, align 8, !tbaa !9
  %3128 = load ptr, ptr %6, align 8, !tbaa !9
  %3129 = call i32 @s2n_connection_set_config(ptr noundef %3127, ptr noundef %3128)
  %3130 = icmp eq i32 %3129, -1
  br i1 %3130, label %3131, label %3184

3131:                                             ; preds = %3124
  br label %3132

3132:                                             ; preds = %3131
  br label %3133

3133:                                             ; preds = %3132
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3134 = call ptr @__errno_location() #11
  %3135 = load i32, ptr %3134, align 4, !tbaa !5
  store i32 %3135, ptr %81, align 4, !tbaa !5
  %3136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3137 = call i32 @s2n_print_stacktrace(ptr noundef %3136)
  %3138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3139 = trunc i8 %3138 to i1
  br i1 %3139, label %3140, label %3162

3140:                                             ; preds = %3133
  %3141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3142 = call i32 @fileno(ptr noundef %3141) #10
  %3143 = call i32 @isatty(i32 noundef %3142) #10
  %3144 = icmp ne i32 %3143, 0
  br i1 %3144, label %3145, label %3162

3145:                                             ; preds = %3140
  %3146 = load i32, ptr %81, align 4, !tbaa !5
  %3147 = call ptr @__errno_location() #11
  store i32 %3146, ptr %3147, align 4, !tbaa !5
  %3148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3149 = load i32, ptr @test_count, align 4, !tbaa !5
  %3150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  %3152 = call ptr @s2n_strerror(i32 noundef %3151, ptr noundef @.str.4)
  %3153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3154 = load i32, ptr %3153, align 4, !tbaa !5
  %3155 = call ptr @s2n_strerror_debug(i32 noundef %3154, ptr noundef @.str.4)
  %3156 = call ptr @__errno_location() #11
  %3157 = load i32, ptr %3156, align 4, !tbaa !5
  %3158 = call ptr @strerror(i32 noundef %3157) #10
  %3159 = call ptr @__errno_location() #11
  %3160 = load i32, ptr %3159, align 4, !tbaa !5
  %3161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3148, ptr noundef @.str.2, i32 noundef %3149, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3152, ptr noundef %3155, ptr noundef %3158, i32 noundef %3160) #10
  br label %3179

3162:                                             ; preds = %3140, %3133
  %3163 = load i32, ptr %81, align 4, !tbaa !5
  %3164 = call ptr @__errno_location() #11
  store i32 %3163, ptr %3164, align 4, !tbaa !5
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = load i32, ptr @test_count, align 4, !tbaa !5
  %3167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3168 = load i32, ptr %3167, align 4, !tbaa !5
  %3169 = call ptr @s2n_strerror(i32 noundef %3168, ptr noundef @.str.4)
  %3170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3171 = load i32, ptr %3170, align 4, !tbaa !5
  %3172 = call ptr @s2n_strerror_debug(i32 noundef %3171, ptr noundef @.str.4)
  %3173 = call ptr @__errno_location() #11
  %3174 = load i32, ptr %3173, align 4, !tbaa !5
  %3175 = call ptr @strerror(i32 noundef %3174) #10
  %3176 = call ptr @__errno_location() #11
  %3177 = load i32, ptr %3176, align 4, !tbaa !5
  %3178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3165, ptr noundef @.str.5, i32 noundef %3166, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3169, ptr noundef %3172, ptr noundef %3175, i32 noundef %3177) #10
  br label %3179

3179:                                             ; preds = %3162, %3145
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3180

3180:                                             ; preds = %3179
  br label %3181

3181:                                             ; preds = %3180
  call void @exit(i32 noundef 1) #12
  unreachable

3182:                                             ; No predecessors!
  br label %3183

3183:                                             ; preds = %3182
  br label %3184

3184:                                             ; preds = %3183, %3124
  br label %3185

3185:                                             ; preds = %3184
  br label %3186

3186:                                             ; preds = %3185
  br label %3187

3187:                                             ; preds = %3186
  %3188 = load i32, ptr @test_count, align 4, !tbaa !5
  %3189 = add nsw i32 %3188, 1
  store i32 %3189, ptr @test_count, align 4, !tbaa !5
  %3190 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %71, i32 noundef 0)
  %3191 = icmp eq i32 %3190, -1
  br i1 %3191, label %3192, label %3245

3192:                                             ; preds = %3187
  br label %3193

3193:                                             ; preds = %3192
  br label %3194

3194:                                             ; preds = %3193
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %3195 = call ptr @__errno_location() #11
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  store i32 %3196, ptr %82, align 4, !tbaa !5
  %3197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3198 = call i32 @s2n_print_stacktrace(ptr noundef %3197)
  %3199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3200 = trunc i8 %3199 to i1
  br i1 %3200, label %3201, label %3223

3201:                                             ; preds = %3194
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = call i32 @fileno(ptr noundef %3202) #10
  %3204 = call i32 @isatty(i32 noundef %3203) #10
  %3205 = icmp ne i32 %3204, 0
  br i1 %3205, label %3206, label %3223

3206:                                             ; preds = %3201
  %3207 = load i32, ptr %82, align 4, !tbaa !5
  %3208 = call ptr @__errno_location() #11
  store i32 %3207, ptr %3208, align 4, !tbaa !5
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3210 = load i32, ptr @test_count, align 4, !tbaa !5
  %3211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3212 = load i32, ptr %3211, align 4, !tbaa !5
  %3213 = call ptr @s2n_strerror(i32 noundef %3212, ptr noundef @.str.4)
  %3214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3215 = load i32, ptr %3214, align 4, !tbaa !5
  %3216 = call ptr @s2n_strerror_debug(i32 noundef %3215, ptr noundef @.str.4)
  %3217 = call ptr @__errno_location() #11
  %3218 = load i32, ptr %3217, align 4, !tbaa !5
  %3219 = call ptr @strerror(i32 noundef %3218) #10
  %3220 = call ptr @__errno_location() #11
  %3221 = load i32, ptr %3220, align 4, !tbaa !5
  %3222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3209, ptr noundef @.str.2, i32 noundef %3210, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3213, ptr noundef %3216, ptr noundef %3219, i32 noundef %3221) #10
  br label %3240

3223:                                             ; preds = %3201, %3194
  %3224 = load i32, ptr %82, align 4, !tbaa !5
  %3225 = call ptr @__errno_location() #11
  store i32 %3224, ptr %3225, align 4, !tbaa !5
  %3226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3227 = load i32, ptr @test_count, align 4, !tbaa !5
  %3228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3229 = load i32, ptr %3228, align 4, !tbaa !5
  %3230 = call ptr @s2n_strerror(i32 noundef %3229, ptr noundef @.str.4)
  %3231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3232 = load i32, ptr %3231, align 4, !tbaa !5
  %3233 = call ptr @s2n_strerror_debug(i32 noundef %3232, ptr noundef @.str.4)
  %3234 = call ptr @__errno_location() #11
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call ptr @strerror(i32 noundef %3235) #10
  %3237 = call ptr @__errno_location() #11
  %3238 = load i32, ptr %3237, align 4, !tbaa !5
  %3239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3226, ptr noundef @.str.5, i32 noundef %3227, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3230, ptr noundef %3233, ptr noundef %3236, i32 noundef %3238) #10
  br label %3240

3240:                                             ; preds = %3223, %3206
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3241

3241:                                             ; preds = %3240
  br label %3242

3242:                                             ; preds = %3241
  call void @exit(i32 noundef 1) #12
  unreachable

3243:                                             ; No predecessors!
  br label %3244

3244:                                             ; preds = %3243
  br label %3245

3245:                                             ; preds = %3244, %3187
  br label %3246

3246:                                             ; preds = %3245
  br label %3247

3247:                                             ; preds = %3246
  br label %3248

3248:                                             ; preds = %3247
  %3249 = load i32, ptr @test_count, align 4, !tbaa !5
  %3250 = add nsw i32 %3249, 1
  store i32 %3250, ptr @test_count, align 4, !tbaa !5
  %3251 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %72, i32 noundef 0)
  %3252 = icmp eq i32 %3251, -1
  br i1 %3252, label %3253, label %3306

3253:                                             ; preds = %3248
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

3255:                                             ; preds = %3254
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #10
  %3256 = call ptr @__errno_location() #11
  %3257 = load i32, ptr %3256, align 4, !tbaa !5
  store i32 %3257, ptr %83, align 4, !tbaa !5
  %3258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3259 = call i32 @s2n_print_stacktrace(ptr noundef %3258)
  %3260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3261 = trunc i8 %3260 to i1
  br i1 %3261, label %3262, label %3284

3262:                                             ; preds = %3255
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @fileno(ptr noundef %3263) #10
  %3265 = call i32 @isatty(i32 noundef %3264) #10
  %3266 = icmp ne i32 %3265, 0
  br i1 %3266, label %3267, label %3284

3267:                                             ; preds = %3262
  %3268 = load i32, ptr %83, align 4, !tbaa !5
  %3269 = call ptr @__errno_location() #11
  store i32 %3268, ptr %3269, align 4, !tbaa !5
  %3270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3271 = load i32, ptr @test_count, align 4, !tbaa !5
  %3272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3273 = load i32, ptr %3272, align 4, !tbaa !5
  %3274 = call ptr @s2n_strerror(i32 noundef %3273, ptr noundef @.str.4)
  %3275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3276 = load i32, ptr %3275, align 4, !tbaa !5
  %3277 = call ptr @s2n_strerror_debug(i32 noundef %3276, ptr noundef @.str.4)
  %3278 = call ptr @__errno_location() #11
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = call ptr @strerror(i32 noundef %3279) #10
  %3281 = call ptr @__errno_location() #11
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  %3283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3270, ptr noundef @.str.2, i32 noundef %3271, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 174, ptr noundef %3274, ptr noundef %3277, ptr noundef %3280, i32 noundef %3282) #10
  br label %3301

3284:                                             ; preds = %3262, %3255
  %3285 = load i32, ptr %83, align 4, !tbaa !5
  %3286 = call ptr @__errno_location() #11
  store i32 %3285, ptr %3286, align 4, !tbaa !5
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = load i32, ptr @test_count, align 4, !tbaa !5
  %3289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3290 = load i32, ptr %3289, align 4, !tbaa !5
  %3291 = call ptr @s2n_strerror(i32 noundef %3290, ptr noundef @.str.4)
  %3292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror_debug(i32 noundef %3293, ptr noundef @.str.4)
  %3295 = call ptr @__errno_location() #11
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @strerror(i32 noundef %3296) #10
  %3298 = call ptr @__errno_location() #11
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3287, ptr noundef @.str.5, i32 noundef %3288, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 174, ptr noundef %3291, ptr noundef %3294, ptr noundef %3297, i32 noundef %3299) #10
  br label %3301

3301:                                             ; preds = %3284, %3267
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  br label %3302

3302:                                             ; preds = %3301
  br label %3303

3303:                                             ; preds = %3302
  call void @exit(i32 noundef 1) #12
  unreachable

3304:                                             ; No predecessors!
  br label %3305

3305:                                             ; preds = %3304
  br label %3306

3306:                                             ; preds = %3305, %3248
  br label %3307

3307:                                             ; preds = %3306
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = add nsw i32 %3310, 1
  store i32 %3311, ptr @test_count, align 4, !tbaa !5
  %3312 = load ptr, ptr %69, align 8, !tbaa !9
  %3313 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %72, ptr noundef %71, ptr noundef %3312)
  %3314 = icmp eq i32 %3313, -1
  br i1 %3314, label %3315, label %3368

3315:                                             ; preds = %3309
  br label %3316

3316:                                             ; preds = %3315
  br label %3317

3317:                                             ; preds = %3316
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %3318 = call ptr @__errno_location() #11
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  store i32 %3319, ptr %84, align 4, !tbaa !5
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = call i32 @s2n_print_stacktrace(ptr noundef %3320)
  %3322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3323 = trunc i8 %3322 to i1
  br i1 %3323, label %3324, label %3346

3324:                                             ; preds = %3317
  %3325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3326 = call i32 @fileno(ptr noundef %3325) #10
  %3327 = call i32 @isatty(i32 noundef %3326) #10
  %3328 = icmp ne i32 %3327, 0
  br i1 %3328, label %3329, label %3346

3329:                                             ; preds = %3324
  %3330 = load i32, ptr %84, align 4, !tbaa !5
  %3331 = call ptr @__errno_location() #11
  store i32 %3330, ptr %3331, align 4, !tbaa !5
  %3332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3333 = load i32, ptr @test_count, align 4, !tbaa !5
  %3334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call ptr @s2n_strerror(i32 noundef %3335, ptr noundef @.str.4)
  %3337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3338 = load i32, ptr %3337, align 4, !tbaa !5
  %3339 = call ptr @s2n_strerror_debug(i32 noundef %3338, ptr noundef @.str.4)
  %3340 = call ptr @__errno_location() #11
  %3341 = load i32, ptr %3340, align 4, !tbaa !5
  %3342 = call ptr @strerror(i32 noundef %3341) #10
  %3343 = call ptr @__errno_location() #11
  %3344 = load i32, ptr %3343, align 4, !tbaa !5
  %3345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3332, ptr noundef @.str.2, i32 noundef %3333, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3336, ptr noundef %3339, ptr noundef %3342, i32 noundef %3344) #10
  br label %3363

3346:                                             ; preds = %3324, %3317
  %3347 = load i32, ptr %84, align 4, !tbaa !5
  %3348 = call ptr @__errno_location() #11
  store i32 %3347, ptr %3348, align 4, !tbaa !5
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = load i32, ptr @test_count, align 4, !tbaa !5
  %3351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call ptr @s2n_strerror(i32 noundef %3352, ptr noundef @.str.4)
  %3354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = call ptr @s2n_strerror_debug(i32 noundef %3355, ptr noundef @.str.4)
  %3357 = call ptr @__errno_location() #11
  %3358 = load i32, ptr %3357, align 4, !tbaa !5
  %3359 = call ptr @strerror(i32 noundef %3358) #10
  %3360 = call ptr @__errno_location() #11
  %3361 = load i32, ptr %3360, align 4, !tbaa !5
  %3362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3349, ptr noundef @.str.5, i32 noundef %3350, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3353, ptr noundef %3356, ptr noundef %3359, i32 noundef %3361) #10
  br label %3363

3363:                                             ; preds = %3346, %3329
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %3364

3364:                                             ; preds = %3363
  br label %3365

3365:                                             ; preds = %3364
  call void @exit(i32 noundef 1) #12
  unreachable

3366:                                             ; No predecessors!
  br label %3367

3367:                                             ; preds = %3366
  br label %3368

3368:                                             ; preds = %3367, %3309
  br label %3369

3369:                                             ; preds = %3368
  br label %3370

3370:                                             ; preds = %3369
  br label %3371

3371:                                             ; preds = %3370
  %3372 = load i32, ptr @test_count, align 4, !tbaa !5
  %3373 = add nsw i32 %3372, 1
  store i32 %3373, ptr @test_count, align 4, !tbaa !5
  %3374 = load ptr, ptr %70, align 8, !tbaa !9
  %3375 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %71, ptr noundef %72, ptr noundef %3374)
  %3376 = icmp eq i32 %3375, -1
  br i1 %3376, label %3377, label %3430

3377:                                             ; preds = %3371
  br label %3378

3378:                                             ; preds = %3377
  br label %3379

3379:                                             ; preds = %3378
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #10
  %3380 = call ptr @__errno_location() #11
  %3381 = load i32, ptr %3380, align 4, !tbaa !5
  store i32 %3381, ptr %85, align 4, !tbaa !5
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = call i32 @s2n_print_stacktrace(ptr noundef %3382)
  %3384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3385 = trunc i8 %3384 to i1
  br i1 %3385, label %3386, label %3408

3386:                                             ; preds = %3379
  %3387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3388 = call i32 @fileno(ptr noundef %3387) #10
  %3389 = call i32 @isatty(i32 noundef %3388) #10
  %3390 = icmp ne i32 %3389, 0
  br i1 %3390, label %3391, label %3408

3391:                                             ; preds = %3386
  %3392 = load i32, ptr %85, align 4, !tbaa !5
  %3393 = call ptr @__errno_location() #11
  store i32 %3392, ptr %3393, align 4, !tbaa !5
  %3394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3395 = load i32, ptr @test_count, align 4, !tbaa !5
  %3396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3397 = load i32, ptr %3396, align 4, !tbaa !5
  %3398 = call ptr @s2n_strerror(i32 noundef %3397, ptr noundef @.str.4)
  %3399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  %3401 = call ptr @s2n_strerror_debug(i32 noundef %3400, ptr noundef @.str.4)
  %3402 = call ptr @__errno_location() #11
  %3403 = load i32, ptr %3402, align 4, !tbaa !5
  %3404 = call ptr @strerror(i32 noundef %3403) #10
  %3405 = call ptr @__errno_location() #11
  %3406 = load i32, ptr %3405, align 4, !tbaa !5
  %3407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3394, ptr noundef @.str.2, i32 noundef %3395, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 176, ptr noundef %3398, ptr noundef %3401, ptr noundef %3404, i32 noundef %3406) #10
  br label %3425

3408:                                             ; preds = %3386, %3379
  %3409 = load i32, ptr %85, align 4, !tbaa !5
  %3410 = call ptr @__errno_location() #11
  store i32 %3409, ptr %3410, align 4, !tbaa !5
  %3411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3412 = load i32, ptr @test_count, align 4, !tbaa !5
  %3413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror(i32 noundef %3414, ptr noundef @.str.4)
  %3416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call ptr @s2n_strerror_debug(i32 noundef %3417, ptr noundef @.str.4)
  %3419 = call ptr @__errno_location() #11
  %3420 = load i32, ptr %3419, align 4, !tbaa !5
  %3421 = call ptr @strerror(i32 noundef %3420) #10
  %3422 = call ptr @__errno_location() #11
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  %3424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3411, ptr noundef @.str.5, i32 noundef %3412, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 176, ptr noundef %3415, ptr noundef %3418, ptr noundef %3421, i32 noundef %3423) #10
  br label %3425

3425:                                             ; preds = %3408, %3391
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %3426

3426:                                             ; preds = %3425
  br label %3427

3427:                                             ; preds = %3426
  call void @exit(i32 noundef 1) #12
  unreachable

3428:                                             ; No predecessors!
  br label %3429

3429:                                             ; preds = %3428
  br label %3430

3430:                                             ; preds = %3429, %3371
  br label %3431

3431:                                             ; preds = %3430
  br label %3432

3432:                                             ; preds = %3431
  br label %3433

3433:                                             ; preds = %3432
  %3434 = load i32, ptr @test_count, align 4, !tbaa !5
  %3435 = add nsw i32 %3434, 1
  store i32 %3435, ptr @test_count, align 4, !tbaa !5
  %3436 = load ptr, ptr %70, align 8, !tbaa !9
  %3437 = load ptr, ptr %69, align 8, !tbaa !9
  %3438 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3436, ptr noundef %3437)
  %3439 = icmp eq i32 %3438, -1
  br i1 %3439, label %3440, label %3493

3440:                                             ; preds = %3433
  br label %3441

3441:                                             ; preds = %3440
  br label %3442

3442:                                             ; preds = %3441
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  %3443 = call ptr @__errno_location() #11
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  store i32 %3444, ptr %86, align 4, !tbaa !5
  %3445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3446 = call i32 @s2n_print_stacktrace(ptr noundef %3445)
  %3447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3448 = trunc i8 %3447 to i1
  br i1 %3448, label %3449, label %3471

3449:                                             ; preds = %3442
  %3450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3451 = call i32 @fileno(ptr noundef %3450) #10
  %3452 = call i32 @isatty(i32 noundef %3451) #10
  %3453 = icmp ne i32 %3452, 0
  br i1 %3453, label %3454, label %3471

3454:                                             ; preds = %3449
  %3455 = load i32, ptr %86, align 4, !tbaa !5
  %3456 = call ptr @__errno_location() #11
  store i32 %3455, ptr %3456, align 4, !tbaa !5
  %3457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3458 = load i32, ptr @test_count, align 4, !tbaa !5
  %3459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call ptr @s2n_strerror(i32 noundef %3460, ptr noundef @.str.4)
  %3462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call ptr @s2n_strerror_debug(i32 noundef %3463, ptr noundef @.str.4)
  %3465 = call ptr @__errno_location() #11
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  %3467 = call ptr @strerror(i32 noundef %3466) #10
  %3468 = call ptr @__errno_location() #11
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  %3470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3457, ptr noundef @.str.2, i32 noundef %3458, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3461, ptr noundef %3464, ptr noundef %3467, i32 noundef %3469) #10
  br label %3488

3471:                                             ; preds = %3449, %3442
  %3472 = load i32, ptr %86, align 4, !tbaa !5
  %3473 = call ptr @__errno_location() #11
  store i32 %3472, ptr %3473, align 4, !tbaa !5
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = load i32, ptr @test_count, align 4, !tbaa !5
  %3476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call ptr @s2n_strerror(i32 noundef %3477, ptr noundef @.str.4)
  %3479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call ptr @s2n_strerror_debug(i32 noundef %3480, ptr noundef @.str.4)
  %3482 = call ptr @__errno_location() #11
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call ptr @strerror(i32 noundef %3483) #10
  %3485 = call ptr @__errno_location() #11
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3474, ptr noundef @.str.5, i32 noundef %3475, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3478, ptr noundef %3481, ptr noundef %3484, i32 noundef %3486) #10
  br label %3488

3488:                                             ; preds = %3471, %3454
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %3489

3489:                                             ; preds = %3488
  br label %3490

3490:                                             ; preds = %3489
  call void @exit(i32 noundef 1) #12
  unreachable

3491:                                             ; No predecessors!
  br label %3492

3492:                                             ; preds = %3491
  br label %3493

3493:                                             ; preds = %3492, %3433
  br label %3494

3494:                                             ; preds = %3493
  br label %3495

3495:                                             ; preds = %3494
  br label %3496

3496:                                             ; preds = %3495
  %3497 = load i32, ptr @test_count, align 4, !tbaa !5
  %3498 = add nsw i32 %3497, 1
  store i32 %3498, ptr @test_count, align 4, !tbaa !5
  %3499 = load ptr, ptr %70, align 8, !tbaa !9
  %3500 = call i32 @s2n_connection_client_cert_used(ptr noundef %3499)
  %3501 = icmp ne i32 %3500, 0
  br i1 %3501, label %3555, label %3502

3502:                                             ; preds = %3496
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

3504:                                             ; preds = %3503
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #10
  %3505 = call ptr @__errno_location() #11
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  store i32 %3506, ptr %87, align 4, !tbaa !5
  %3507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3508 = call i32 @s2n_print_stacktrace(ptr noundef %3507)
  %3509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3510 = trunc i8 %3509 to i1
  br i1 %3510, label %3511, label %3533

3511:                                             ; preds = %3504
  %3512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3513 = call i32 @fileno(ptr noundef %3512) #10
  %3514 = call i32 @isatty(i32 noundef %3513) #10
  %3515 = icmp ne i32 %3514, 0
  br i1 %3515, label %3516, label %3533

3516:                                             ; preds = %3511
  %3517 = load i32, ptr %87, align 4, !tbaa !5
  %3518 = call ptr @__errno_location() #11
  store i32 %3517, ptr %3518, align 4, !tbaa !5
  %3519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3520 = load i32, ptr @test_count, align 4, !tbaa !5
  %3521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3522 = load i32, ptr %3521, align 4, !tbaa !5
  %3523 = call ptr @s2n_strerror(i32 noundef %3522, ptr noundef @.str.4)
  %3524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3525 = load i32, ptr %3524, align 4, !tbaa !5
  %3526 = call ptr @s2n_strerror_debug(i32 noundef %3525, ptr noundef @.str.4)
  %3527 = call ptr @__errno_location() #11
  %3528 = load i32, ptr %3527, align 4, !tbaa !5
  %3529 = call ptr @strerror(i32 noundef %3528) #10
  %3530 = call ptr @__errno_location() #11
  %3531 = load i32, ptr %3530, align 4, !tbaa !5
  %3532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3519, ptr noundef @.str.2, i32 noundef %3520, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3523, ptr noundef %3526, ptr noundef %3529, i32 noundef %3531) #10
  br label %3550

3533:                                             ; preds = %3511, %3504
  %3534 = load i32, ptr %87, align 4, !tbaa !5
  %3535 = call ptr @__errno_location() #11
  store i32 %3534, ptr %3535, align 4, !tbaa !5
  %3536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3537 = load i32, ptr @test_count, align 4, !tbaa !5
  %3538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3539 = load i32, ptr %3538, align 4, !tbaa !5
  %3540 = call ptr @s2n_strerror(i32 noundef %3539, ptr noundef @.str.4)
  %3541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call ptr @s2n_strerror_debug(i32 noundef %3542, ptr noundef @.str.4)
  %3544 = call ptr @__errno_location() #11
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = call ptr @strerror(i32 noundef %3545) #10
  %3547 = call ptr @__errno_location() #11
  %3548 = load i32, ptr %3547, align 4, !tbaa !5
  %3549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3536, ptr noundef @.str.5, i32 noundef %3537, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3540, ptr noundef %3543, ptr noundef %3546, i32 noundef %3548) #10
  br label %3550

3550:                                             ; preds = %3533, %3516
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %3551

3551:                                             ; preds = %3550
  br label %3552

3552:                                             ; preds = %3551
  call void @exit(i32 noundef 1) #12
  unreachable

3553:                                             ; No predecessors!
  br label %3554

3554:                                             ; preds = %3553
  br label %3555

3555:                                             ; preds = %3554, %3496
  br label %3556

3556:                                             ; preds = %3555
  br label %3557

3557:                                             ; preds = %3556
  br label %3558

3558:                                             ; preds = %3557
  %3559 = load i32, ptr @test_count, align 4, !tbaa !5
  %3560 = add nsw i32 %3559, 1
  store i32 %3560, ptr @test_count, align 4, !tbaa !5
  %3561 = load ptr, ptr %69, align 8, !tbaa !9
  %3562 = call i32 @s2n_connection_client_cert_used(ptr noundef %3561)
  %3563 = icmp ne i32 %3562, 0
  br i1 %3563, label %3617, label %3564

3564:                                             ; preds = %3558
  br label %3565

3565:                                             ; preds = %3564
  br label %3566

3566:                                             ; preds = %3565
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  %3567 = call ptr @__errno_location() #11
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  store i32 %3568, ptr %88, align 4, !tbaa !5
  %3569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3570 = call i32 @s2n_print_stacktrace(ptr noundef %3569)
  %3571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3572 = trunc i8 %3571 to i1
  br i1 %3572, label %3573, label %3595

3573:                                             ; preds = %3566
  %3574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3575 = call i32 @fileno(ptr noundef %3574) #10
  %3576 = call i32 @isatty(i32 noundef %3575) #10
  %3577 = icmp ne i32 %3576, 0
  br i1 %3577, label %3578, label %3595

3578:                                             ; preds = %3573
  %3579 = load i32, ptr %88, align 4, !tbaa !5
  %3580 = call ptr @__errno_location() #11
  store i32 %3579, ptr %3580, align 4, !tbaa !5
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = load i32, ptr @test_count, align 4, !tbaa !5
  %3583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3584 = load i32, ptr %3583, align 4, !tbaa !5
  %3585 = call ptr @s2n_strerror(i32 noundef %3584, ptr noundef @.str.4)
  %3586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3587 = load i32, ptr %3586, align 4, !tbaa !5
  %3588 = call ptr @s2n_strerror_debug(i32 noundef %3587, ptr noundef @.str.4)
  %3589 = call ptr @__errno_location() #11
  %3590 = load i32, ptr %3589, align 4, !tbaa !5
  %3591 = call ptr @strerror(i32 noundef %3590) #10
  %3592 = call ptr @__errno_location() #11
  %3593 = load i32, ptr %3592, align 4, !tbaa !5
  %3594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3581, ptr noundef @.str.2, i32 noundef %3582, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3585, ptr noundef %3588, ptr noundef %3591, i32 noundef %3593) #10
  br label %3612

3595:                                             ; preds = %3573, %3566
  %3596 = load i32, ptr %88, align 4, !tbaa !5
  %3597 = call ptr @__errno_location() #11
  store i32 %3596, ptr %3597, align 4, !tbaa !5
  %3598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3599 = load i32, ptr @test_count, align 4, !tbaa !5
  %3600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3601 = load i32, ptr %3600, align 4, !tbaa !5
  %3602 = call ptr @s2n_strerror(i32 noundef %3601, ptr noundef @.str.4)
  %3603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3604 = load i32, ptr %3603, align 4, !tbaa !5
  %3605 = call ptr @s2n_strerror_debug(i32 noundef %3604, ptr noundef @.str.4)
  %3606 = call ptr @__errno_location() #11
  %3607 = load i32, ptr %3606, align 4, !tbaa !5
  %3608 = call ptr @strerror(i32 noundef %3607) #10
  %3609 = call ptr @__errno_location() #11
  %3610 = load i32, ptr %3609, align 4, !tbaa !5
  %3611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3598, ptr noundef @.str.5, i32 noundef %3599, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3602, ptr noundef %3605, ptr noundef %3608, i32 noundef %3610) #10
  br label %3612

3612:                                             ; preds = %3595, %3578
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %3613

3613:                                             ; preds = %3612
  br label %3614

3614:                                             ; preds = %3613
  call void @exit(i32 noundef 1) #12
  unreachable

3615:                                             ; No predecessors!
  br label %3616

3616:                                             ; preds = %3615
  br label %3617

3617:                                             ; preds = %3616, %3558
  br label %3618

3618:                                             ; preds = %3617
  br label %3619

3619:                                             ; preds = %3618
  br label %3620

3620:                                             ; preds = %3619
  %3621 = load i32, ptr @test_count, align 4, !tbaa !5
  %3622 = add nsw i32 %3621, 1
  store i32 %3622, ptr @test_count, align 4, !tbaa !5
  %3623 = load ptr, ptr %69, align 8, !tbaa !9
  %3624 = call i32 @s2n_connection_free(ptr noundef %3623)
  %3625 = icmp eq i32 %3624, -1
  br i1 %3625, label %3626, label %3679

3626:                                             ; preds = %3620
  br label %3627

3627:                                             ; preds = %3626
  br label %3628

3628:                                             ; preds = %3627
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %3629 = call ptr @__errno_location() #11
  %3630 = load i32, ptr %3629, align 4, !tbaa !5
  store i32 %3630, ptr %89, align 4, !tbaa !5
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = call i32 @s2n_print_stacktrace(ptr noundef %3631)
  %3633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3634 = trunc i8 %3633 to i1
  br i1 %3634, label %3635, label %3657

3635:                                             ; preds = %3628
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3637 = call i32 @fileno(ptr noundef %3636) #10
  %3638 = call i32 @isatty(i32 noundef %3637) #10
  %3639 = icmp ne i32 %3638, 0
  br i1 %3639, label %3640, label %3657

3640:                                             ; preds = %3635
  %3641 = load i32, ptr %89, align 4, !tbaa !5
  %3642 = call ptr @__errno_location() #11
  store i32 %3641, ptr %3642, align 4, !tbaa !5
  %3643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3644 = load i32, ptr @test_count, align 4, !tbaa !5
  %3645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3646 = load i32, ptr %3645, align 4, !tbaa !5
  %3647 = call ptr @s2n_strerror(i32 noundef %3646, ptr noundef @.str.4)
  %3648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3649 = load i32, ptr %3648, align 4, !tbaa !5
  %3650 = call ptr @s2n_strerror_debug(i32 noundef %3649, ptr noundef @.str.4)
  %3651 = call ptr @__errno_location() #11
  %3652 = load i32, ptr %3651, align 4, !tbaa !5
  %3653 = call ptr @strerror(i32 noundef %3652) #10
  %3654 = call ptr @__errno_location() #11
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3643, ptr noundef @.str.2, i32 noundef %3644, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3647, ptr noundef %3650, ptr noundef %3653, i32 noundef %3655) #10
  br label %3674

3657:                                             ; preds = %3635, %3628
  %3658 = load i32, ptr %89, align 4, !tbaa !5
  %3659 = call ptr @__errno_location() #11
  store i32 %3658, ptr %3659, align 4, !tbaa !5
  %3660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3661 = load i32, ptr @test_count, align 4, !tbaa !5
  %3662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3663 = load i32, ptr %3662, align 4, !tbaa !5
  %3664 = call ptr @s2n_strerror(i32 noundef %3663, ptr noundef @.str.4)
  %3665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call ptr @s2n_strerror_debug(i32 noundef %3666, ptr noundef @.str.4)
  %3668 = call ptr @__errno_location() #11
  %3669 = load i32, ptr %3668, align 4, !tbaa !5
  %3670 = call ptr @strerror(i32 noundef %3669) #10
  %3671 = call ptr @__errno_location() #11
  %3672 = load i32, ptr %3671, align 4, !tbaa !5
  %3673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3660, ptr noundef @.str.5, i32 noundef %3661, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3664, ptr noundef %3667, ptr noundef %3670, i32 noundef %3672) #10
  br label %3674

3674:                                             ; preds = %3657, %3640
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %3675

3675:                                             ; preds = %3674
  br label %3676

3676:                                             ; preds = %3675
  call void @exit(i32 noundef 1) #12
  unreachable

3677:                                             ; No predecessors!
  br label %3678

3678:                                             ; preds = %3677
  br label %3679

3679:                                             ; preds = %3678, %3620
  br label %3680

3680:                                             ; preds = %3679
  br label %3681

3681:                                             ; preds = %3680
  br label %3682

3682:                                             ; preds = %3681
  %3683 = load i32, ptr @test_count, align 4, !tbaa !5
  %3684 = add nsw i32 %3683, 1
  store i32 %3684, ptr @test_count, align 4, !tbaa !5
  %3685 = load ptr, ptr %70, align 8, !tbaa !9
  %3686 = call i32 @s2n_connection_free(ptr noundef %3685)
  %3687 = icmp eq i32 %3686, -1
  br i1 %3687, label %3688, label %3741

3688:                                             ; preds = %3682
  br label %3689

3689:                                             ; preds = %3688
  br label %3690

3690:                                             ; preds = %3689
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %3691 = call ptr @__errno_location() #11
  %3692 = load i32, ptr %3691, align 4, !tbaa !5
  store i32 %3692, ptr %90, align 4, !tbaa !5
  %3693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3694 = call i32 @s2n_print_stacktrace(ptr noundef %3693)
  %3695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3696 = trunc i8 %3695 to i1
  br i1 %3696, label %3697, label %3719

3697:                                             ; preds = %3690
  %3698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3699 = call i32 @fileno(ptr noundef %3698) #10
  %3700 = call i32 @isatty(i32 noundef %3699) #10
  %3701 = icmp ne i32 %3700, 0
  br i1 %3701, label %3702, label %3719

3702:                                             ; preds = %3697
  %3703 = load i32, ptr %90, align 4, !tbaa !5
  %3704 = call ptr @__errno_location() #11
  store i32 %3703, ptr %3704, align 4, !tbaa !5
  %3705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3706 = load i32, ptr @test_count, align 4, !tbaa !5
  %3707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3708 = load i32, ptr %3707, align 4, !tbaa !5
  %3709 = call ptr @s2n_strerror(i32 noundef %3708, ptr noundef @.str.4)
  %3710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3711 = load i32, ptr %3710, align 4, !tbaa !5
  %3712 = call ptr @s2n_strerror_debug(i32 noundef %3711, ptr noundef @.str.4)
  %3713 = call ptr @__errno_location() #11
  %3714 = load i32, ptr %3713, align 4, !tbaa !5
  %3715 = call ptr @strerror(i32 noundef %3714) #10
  %3716 = call ptr @__errno_location() #11
  %3717 = load i32, ptr %3716, align 4, !tbaa !5
  %3718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3705, ptr noundef @.str.2, i32 noundef %3706, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3709, ptr noundef %3712, ptr noundef %3715, i32 noundef %3717) #10
  br label %3736

3719:                                             ; preds = %3697, %3690
  %3720 = load i32, ptr %90, align 4, !tbaa !5
  %3721 = call ptr @__errno_location() #11
  store i32 %3720, ptr %3721, align 4, !tbaa !5
  %3722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3723 = load i32, ptr @test_count, align 4, !tbaa !5
  %3724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3725 = load i32, ptr %3724, align 4, !tbaa !5
  %3726 = call ptr @s2n_strerror(i32 noundef %3725, ptr noundef @.str.4)
  %3727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3728 = load i32, ptr %3727, align 4, !tbaa !5
  %3729 = call ptr @s2n_strerror_debug(i32 noundef %3728, ptr noundef @.str.4)
  %3730 = call ptr @__errno_location() #11
  %3731 = load i32, ptr %3730, align 4, !tbaa !5
  %3732 = call ptr @strerror(i32 noundef %3731) #10
  %3733 = call ptr @__errno_location() #11
  %3734 = load i32, ptr %3733, align 4, !tbaa !5
  %3735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3722, ptr noundef @.str.5, i32 noundef %3723, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3726, ptr noundef %3729, ptr noundef %3732, i32 noundef %3734) #10
  br label %3736

3736:                                             ; preds = %3719, %3702
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %3737

3737:                                             ; preds = %3736
  br label %3738

3738:                                             ; preds = %3737
  call void @exit(i32 noundef 1) #12
  unreachable

3739:                                             ; No predecessors!
  br label %3740

3740:                                             ; preds = %3739
  br label %3741

3741:                                             ; preds = %3740, %3682
  br label %3742

3742:                                             ; preds = %3741
  br label %3743

3743:                                             ; preds = %3742
  br label %3744

3744:                                             ; preds = %3743
  %3745 = load i32, ptr @test_count, align 4, !tbaa !5
  %3746 = add nsw i32 %3745, 1
  store i32 %3746, ptr @test_count, align 4, !tbaa !5
  %3747 = call i32 @s2n_stuffer_free(ptr noundef %72)
  %3748 = icmp eq i32 %3747, -1
  br i1 %3748, label %3749, label %3802

3749:                                             ; preds = %3744
  br label %3750

3750:                                             ; preds = %3749
  br label %3751

3751:                                             ; preds = %3750
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %3752 = call ptr @__errno_location() #11
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  store i32 %3753, ptr %91, align 4, !tbaa !5
  %3754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3755 = call i32 @s2n_print_stacktrace(ptr noundef %3754)
  %3756 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3757 = trunc i8 %3756 to i1
  br i1 %3757, label %3758, label %3780

3758:                                             ; preds = %3751
  %3759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3760 = call i32 @fileno(ptr noundef %3759) #10
  %3761 = call i32 @isatty(i32 noundef %3760) #10
  %3762 = icmp ne i32 %3761, 0
  br i1 %3762, label %3763, label %3780

3763:                                             ; preds = %3758
  %3764 = load i32, ptr %91, align 4, !tbaa !5
  %3765 = call ptr @__errno_location() #11
  store i32 %3764, ptr %3765, align 4, !tbaa !5
  %3766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3767 = load i32, ptr @test_count, align 4, !tbaa !5
  %3768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3769 = load i32, ptr %3768, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror(i32 noundef %3769, ptr noundef @.str.4)
  %3771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  %3773 = call ptr @s2n_strerror_debug(i32 noundef %3772, ptr noundef @.str.4)
  %3774 = call ptr @__errno_location() #11
  %3775 = load i32, ptr %3774, align 4, !tbaa !5
  %3776 = call ptr @strerror(i32 noundef %3775) #10
  %3777 = call ptr @__errno_location() #11
  %3778 = load i32, ptr %3777, align 4, !tbaa !5
  %3779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3766, ptr noundef @.str.2, i32 noundef %3767, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3770, ptr noundef %3773, ptr noundef %3776, i32 noundef %3778) #10
  br label %3797

3780:                                             ; preds = %3758, %3751
  %3781 = load i32, ptr %91, align 4, !tbaa !5
  %3782 = call ptr @__errno_location() #11
  store i32 %3781, ptr %3782, align 4, !tbaa !5
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = load i32, ptr @test_count, align 4, !tbaa !5
  %3785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror(i32 noundef %3786, ptr noundef @.str.4)
  %3788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3789 = load i32, ptr %3788, align 4, !tbaa !5
  %3790 = call ptr @s2n_strerror_debug(i32 noundef %3789, ptr noundef @.str.4)
  %3791 = call ptr @__errno_location() #11
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  %3793 = call ptr @strerror(i32 noundef %3792) #10
  %3794 = call ptr @__errno_location() #11
  %3795 = load i32, ptr %3794, align 4, !tbaa !5
  %3796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3783, ptr noundef @.str.5, i32 noundef %3784, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3787, ptr noundef %3790, ptr noundef %3793, i32 noundef %3795) #10
  br label %3797

3797:                                             ; preds = %3780, %3763
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798
  call void @exit(i32 noundef 1) #12
  unreachable

3800:                                             ; No predecessors!
  br label %3801

3801:                                             ; preds = %3800
  br label %3802

3802:                                             ; preds = %3801, %3744
  br label %3803

3803:                                             ; preds = %3802
  br label %3804

3804:                                             ; preds = %3803
  br label %3805

3805:                                             ; preds = %3804
  %3806 = load i32, ptr @test_count, align 4, !tbaa !5
  %3807 = add nsw i32 %3806, 1
  store i32 %3807, ptr @test_count, align 4, !tbaa !5
  %3808 = call i32 @s2n_stuffer_free(ptr noundef %71)
  %3809 = icmp eq i32 %3808, -1
  br i1 %3809, label %3810, label %3863

3810:                                             ; preds = %3805
  br label %3811

3811:                                             ; preds = %3810
  br label %3812

3812:                                             ; preds = %3811
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %3813 = call ptr @__errno_location() #11
  %3814 = load i32, ptr %3813, align 4, !tbaa !5
  store i32 %3814, ptr %92, align 4, !tbaa !5
  %3815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3816 = call i32 @s2n_print_stacktrace(ptr noundef %3815)
  %3817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3818 = trunc i8 %3817 to i1
  br i1 %3818, label %3819, label %3841

3819:                                             ; preds = %3812
  %3820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3821 = call i32 @fileno(ptr noundef %3820) #10
  %3822 = call i32 @isatty(i32 noundef %3821) #10
  %3823 = icmp ne i32 %3822, 0
  br i1 %3823, label %3824, label %3841

3824:                                             ; preds = %3819
  %3825 = load i32, ptr %92, align 4, !tbaa !5
  %3826 = call ptr @__errno_location() #11
  store i32 %3825, ptr %3826, align 4, !tbaa !5
  %3827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3828 = load i32, ptr @test_count, align 4, !tbaa !5
  %3829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3830 = load i32, ptr %3829, align 4, !tbaa !5
  %3831 = call ptr @s2n_strerror(i32 noundef %3830, ptr noundef @.str.4)
  %3832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3833 = load i32, ptr %3832, align 4, !tbaa !5
  %3834 = call ptr @s2n_strerror_debug(i32 noundef %3833, ptr noundef @.str.4)
  %3835 = call ptr @__errno_location() #11
  %3836 = load i32, ptr %3835, align 4, !tbaa !5
  %3837 = call ptr @strerror(i32 noundef %3836) #10
  %3838 = call ptr @__errno_location() #11
  %3839 = load i32, ptr %3838, align 4, !tbaa !5
  %3840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3827, ptr noundef @.str.2, i32 noundef %3828, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3831, ptr noundef %3834, ptr noundef %3837, i32 noundef %3839) #10
  br label %3858

3841:                                             ; preds = %3819, %3812
  %3842 = load i32, ptr %92, align 4, !tbaa !5
  %3843 = call ptr @__errno_location() #11
  store i32 %3842, ptr %3843, align 4, !tbaa !5
  %3844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3845 = load i32, ptr @test_count, align 4, !tbaa !5
  %3846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3847 = load i32, ptr %3846, align 4, !tbaa !5
  %3848 = call ptr @s2n_strerror(i32 noundef %3847, ptr noundef @.str.4)
  %3849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3850 = load i32, ptr %3849, align 4, !tbaa !5
  %3851 = call ptr @s2n_strerror_debug(i32 noundef %3850, ptr noundef @.str.4)
  %3852 = call ptr @__errno_location() #11
  %3853 = load i32, ptr %3852, align 4, !tbaa !5
  %3854 = call ptr @strerror(i32 noundef %3853) #10
  %3855 = call ptr @__errno_location() #11
  %3856 = load i32, ptr %3855, align 4, !tbaa !5
  %3857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3844, ptr noundef @.str.5, i32 noundef %3845, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3848, ptr noundef %3851, ptr noundef %3854, i32 noundef %3856) #10
  br label %3858

3858:                                             ; preds = %3841, %3824
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %3859

3859:                                             ; preds = %3858
  br label %3860

3860:                                             ; preds = %3859
  call void @exit(i32 noundef 1) #12
  unreachable

3861:                                             ; No predecessors!
  br label %3862

3862:                                             ; preds = %3861
  br label %3863

3863:                                             ; preds = %3862, %3805
  br label %3864

3864:                                             ; preds = %3863
  br label %3865

3865:                                             ; preds = %3864
  store i32 0, ptr %35, align 4
  br label %3866

3866:                                             ; preds = %3865, %2869
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #10
  %3867 = load i32, ptr %35, align 4
  switch i32 %3867, label %8733 [
    i32 0, label %3868
    i32 257, label %3869
  ]

3868:                                             ; preds = %3866
  br label %3869

3869:                                             ; preds = %3868, %3866
  %3870 = load i64, ptr %66, align 8, !tbaa !24
  %3871 = add i64 %3870, 1
  store i64 %3871, ptr %66, align 8, !tbaa !24
  br label %2784, !llvm.loop !32

3872:                                             ; preds = %2791
  br label %3873

3873:                                             ; preds = %3872
  %3874 = load i32, ptr @test_count, align 4, !tbaa !5
  %3875 = add nsw i32 %3874, 1
  store i32 %3875, ptr @test_count, align 4, !tbaa !5
  %3876 = load ptr, ptr %6, align 8, !tbaa !9
  %3877 = call i32 @s2n_config_set_client_auth_type(ptr noundef %3876, i32 noundef 0)
  %3878 = icmp eq i32 %3877, -1
  br i1 %3878, label %3879, label %3932

3879:                                             ; preds = %3873
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #10
  %3882 = call ptr @__errno_location() #11
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  store i32 %3883, ptr %93, align 4, !tbaa !5
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = call i32 @s2n_print_stacktrace(ptr noundef %3884)
  %3886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3887 = trunc i8 %3886 to i1
  br i1 %3887, label %3888, label %3910

3888:                                             ; preds = %3881
  %3889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3890 = call i32 @fileno(ptr noundef %3889) #10
  %3891 = call i32 @isatty(i32 noundef %3890) #10
  %3892 = icmp ne i32 %3891, 0
  br i1 %3892, label %3893, label %3910

3893:                                             ; preds = %3888
  %3894 = load i32, ptr %93, align 4, !tbaa !5
  %3895 = call ptr @__errno_location() #11
  store i32 %3894, ptr %3895, align 4, !tbaa !5
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = load i32, ptr @test_count, align 4, !tbaa !5
  %3898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @s2n_strerror(i32 noundef %3899, ptr noundef @.str.4)
  %3901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call ptr @s2n_strerror_debug(i32 noundef %3902, ptr noundef @.str.4)
  %3904 = call ptr @__errno_location() #11
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @strerror(i32 noundef %3905) #10
  %3907 = call ptr @__errno_location() #11
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3896, ptr noundef @.str.2, i32 noundef %3897, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3900, ptr noundef %3903, ptr noundef %3906, i32 noundef %3908) #10
  br label %3927

3910:                                             ; preds = %3888, %3881
  %3911 = load i32, ptr %93, align 4, !tbaa !5
  %3912 = call ptr @__errno_location() #11
  store i32 %3911, ptr %3912, align 4, !tbaa !5
  %3913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3914 = load i32, ptr @test_count, align 4, !tbaa !5
  %3915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  %3917 = call ptr @s2n_strerror(i32 noundef %3916, ptr noundef @.str.4)
  %3918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror_debug(i32 noundef %3919, ptr noundef @.str.4)
  %3921 = call ptr @__errno_location() #11
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call ptr @strerror(i32 noundef %3922) #10
  %3924 = call ptr @__errno_location() #11
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  %3926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3913, ptr noundef @.str.5, i32 noundef %3914, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3917, ptr noundef %3920, ptr noundef %3923, i32 noundef %3925) #10
  br label %3927

3927:                                             ; preds = %3910, %3893
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  br label %3928

3928:                                             ; preds = %3927
  br label %3929

3929:                                             ; preds = %3928
  call void @exit(i32 noundef 1) #12
  unreachable

3930:                                             ; No predecessors!
  br label %3931

3931:                                             ; preds = %3930
  br label %3932

3932:                                             ; preds = %3931, %3873
  br label %3933

3933:                                             ; preds = %3932
  br label %3934

3934:                                             ; preds = %3933
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #10
  store i64 0, ptr %94, align 8, !tbaa !24
  br label %3935

3935:                                             ; preds = %5144, %3934
  %3936 = load i64, ptr %94, align 8, !tbaa !24
  %3937 = load ptr, ptr %8, align 8, !tbaa !9
  %3938 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %3937, i32 0, i32 0
  %3939 = load i16, ptr %3938, align 8, !tbaa !25
  %3940 = zext i16 %3939 to i64
  %3941 = icmp ult i64 %3936, %3940
  br i1 %3941, label %3943, label %3942

3942:                                             ; preds = %3935
  store i32 366, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #10
  br label %5147

3943:                                             ; preds = %3935
  call void @llvm.lifetime.start.p0(i64 24, ptr %95) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %96) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #10
  store ptr null, ptr %97, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #10
  store ptr null, ptr %98, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %99) #10
  call void @llvm.memset.p0.i64(ptr align 8 %99, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %100) #10
  call void @llvm.memset.p0.i64(ptr align 8 %100, i8 0, i64 40, i1 false)
  br label %3944

3944:                                             ; preds = %3943
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #10
  store i64 24, ptr %101, align 8, !tbaa !24
  %3945 = load i64, ptr %101, align 8, !tbaa !24
  %3946 = icmp ne i64 %3945, 0
  br i1 %3946, label %3947, label %4005

3947:                                             ; preds = %3944
  %3948 = load ptr, ptr %8, align 8, !tbaa !9
  %3949 = load i64, ptr %101, align 8, !tbaa !24
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %95, ptr align 8 %3948, i64 %3949, i1 false)
  %3950 = icmp eq ptr %95, null
  br i1 %3950, label %3951, label %4004

3951:                                             ; preds = %3947
  br label %3952

3952:                                             ; preds = %3951
  br label %3953

3953:                                             ; preds = %3952
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  %3954 = call ptr @__errno_location() #11
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  store i32 %3955, ptr %102, align 4, !tbaa !5
  %3956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3957 = call i32 @s2n_print_stacktrace(ptr noundef %3956)
  %3958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3959 = trunc i8 %3958 to i1
  br i1 %3959, label %3960, label %3982

3960:                                             ; preds = %3953
  %3961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3962 = call i32 @fileno(ptr noundef %3961) #10
  %3963 = call i32 @isatty(i32 noundef %3962) #10
  %3964 = icmp ne i32 %3963, 0
  br i1 %3964, label %3965, label %3982

3965:                                             ; preds = %3960
  %3966 = load i32, ptr %102, align 4, !tbaa !5
  %3967 = call ptr @__errno_location() #11
  store i32 %3966, ptr %3967, align 4, !tbaa !5
  %3968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3969 = load i32, ptr @test_count, align 4, !tbaa !5
  %3970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3971 = load i32, ptr %3970, align 4, !tbaa !5
  %3972 = call ptr @s2n_strerror(i32 noundef %3971, ptr noundef @.str.4)
  %3973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = call ptr @s2n_strerror_debug(i32 noundef %3974, ptr noundef @.str.4)
  %3976 = call ptr @__errno_location() #11
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call ptr @strerror(i32 noundef %3977) #10
  %3979 = call ptr @__errno_location() #11
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3968, ptr noundef @.str.2, i32 noundef %3969, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 206, ptr noundef %3972, ptr noundef %3975, ptr noundef %3978, i32 noundef %3980) #10
  br label %3999

3982:                                             ; preds = %3960, %3953
  %3983 = load i32, ptr %102, align 4, !tbaa !5
  %3984 = call ptr @__errno_location() #11
  store i32 %3983, ptr %3984, align 4, !tbaa !5
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = load i32, ptr @test_count, align 4, !tbaa !5
  %3987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3988 = load i32, ptr %3987, align 4, !tbaa !5
  %3989 = call ptr @s2n_strerror(i32 noundef %3988, ptr noundef @.str.4)
  %3990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3991 = load i32, ptr %3990, align 4, !tbaa !5
  %3992 = call ptr @s2n_strerror_debug(i32 noundef %3991, ptr noundef @.str.4)
  %3993 = call ptr @__errno_location() #11
  %3994 = load i32, ptr %3993, align 4, !tbaa !5
  %3995 = call ptr @strerror(i32 noundef %3994) #10
  %3996 = call ptr @__errno_location() #11
  %3997 = load i32, ptr %3996, align 4, !tbaa !5
  %3998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3985, ptr noundef @.str.5, i32 noundef %3986, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 206, ptr noundef %3989, ptr noundef %3992, ptr noundef %3995, i32 noundef %3997) #10
  br label %3999

3999:                                             ; preds = %3982, %3965
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4000

4000:                                             ; preds = %3999
  br label %4001

4001:                                             ; preds = %4000
  call void @exit(i32 noundef 1) #12
  unreachable

4002:                                             ; No predecessors!
  br label %4003

4003:                                             ; preds = %4002
  br label %4004

4004:                                             ; preds = %4003, %3947
  br label %4005

4005:                                             ; preds = %4004, %3944
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  br label %4006

4006:                                             ; preds = %4005
  br label %4007

4007:                                             ; preds = %4006
  %4008 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %95, i32 0, i32 0
  store i16 1, ptr %4008, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #10
  %4009 = load ptr, ptr %8, align 8, !tbaa !9
  %4010 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %4009, i32 0, i32 1
  %4011 = load ptr, ptr %4010, align 8, !tbaa !29
  %4012 = load i64, ptr %94, align 8, !tbaa !24
  %4013 = getelementptr inbounds ptr, ptr %4011, i64 %4012
  %4014 = load ptr, ptr %4013, align 8, !tbaa !9
  store ptr %4014, ptr %103, align 8, !tbaa !9
  %4015 = load ptr, ptr %103, align 8, !tbaa !9
  %4016 = load i8, ptr %4015, align 8
  %4017 = and i8 %4016, 1
  %4018 = zext i8 %4017 to i32
  %4019 = icmp ne i32 %4018, 0
  br i1 %4019, label %4021, label %4020

4020:                                             ; preds = %4007
  store i32 368, ptr %35, align 4
  br label %5141

4021:                                             ; preds = %4007
  %4022 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %95, i32 0, i32 1
  store ptr %103, ptr %4022, align 8, !tbaa !29
  br label %4023

4023:                                             ; preds = %4021
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #10
  store i64 64, ptr %104, align 8, !tbaa !24
  %4024 = load i64, ptr %104, align 8, !tbaa !24
  %4025 = icmp ne i64 %4024, 0
  br i1 %4025, label %4026, label %4084

4026:                                             ; preds = %4023
  %4027 = load ptr, ptr %7, align 8, !tbaa !9
  %4028 = load i64, ptr %104, align 8, !tbaa !24
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %96, ptr align 8 %4027, i64 %4028, i1 false)
  %4029 = icmp eq ptr %96, null
  br i1 %4029, label %4030, label %4083

4030:                                             ; preds = %4026
  br label %4031

4031:                                             ; preds = %4030
  br label %4032

4032:                                             ; preds = %4031
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %4033 = call ptr @__errno_location() #11
  %4034 = load i32, ptr %4033, align 4, !tbaa !5
  store i32 %4034, ptr %105, align 4, !tbaa !5
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = call i32 @s2n_print_stacktrace(ptr noundef %4035)
  %4037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4038 = trunc i8 %4037 to i1
  br i1 %4038, label %4039, label %4061

4039:                                             ; preds = %4032
  %4040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4041 = call i32 @fileno(ptr noundef %4040) #10
  %4042 = call i32 @isatty(i32 noundef %4041) #10
  %4043 = icmp ne i32 %4042, 0
  br i1 %4043, label %4044, label %4061

4044:                                             ; preds = %4039
  %4045 = load i32, ptr %105, align 4, !tbaa !5
  %4046 = call ptr @__errno_location() #11
  store i32 %4045, ptr %4046, align 4, !tbaa !5
  %4047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4048 = load i32, ptr @test_count, align 4, !tbaa !5
  %4049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror(i32 noundef %4050, ptr noundef @.str.4)
  %4052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call ptr @s2n_strerror_debug(i32 noundef %4053, ptr noundef @.str.4)
  %4055 = call ptr @__errno_location() #11
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call ptr @strerror(i32 noundef %4056) #10
  %4058 = call ptr @__errno_location() #11
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4047, ptr noundef @.str.2, i32 noundef %4048, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4051, ptr noundef %4054, ptr noundef %4057, i32 noundef %4059) #10
  br label %4078

4061:                                             ; preds = %4039, %4032
  %4062 = load i32, ptr %105, align 4, !tbaa !5
  %4063 = call ptr @__errno_location() #11
  store i32 %4062, ptr %4063, align 4, !tbaa !5
  %4064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4065 = load i32, ptr @test_count, align 4, !tbaa !5
  %4066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror(i32 noundef %4067, ptr noundef @.str.4)
  %4069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call ptr @s2n_strerror_debug(i32 noundef %4070, ptr noundef @.str.4)
  %4072 = call ptr @__errno_location() #11
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call ptr @strerror(i32 noundef %4073) #10
  %4075 = call ptr @__errno_location() #11
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  %4077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4064, ptr noundef @.str.5, i32 noundef %4065, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4068, ptr noundef %4071, ptr noundef %4074, i32 noundef %4076) #10
  br label %4078

4078:                                             ; preds = %4061, %4044
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %4079

4079:                                             ; preds = %4078
  br label %4080

4080:                                             ; preds = %4079
  call void @exit(i32 noundef 1) #12
  unreachable

4081:                                             ; No predecessors!
  br label %4082

4082:                                             ; preds = %4081
  br label %4083

4083:                                             ; preds = %4082, %4026
  br label %4084

4084:                                             ; preds = %4083, %4023
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #10
  br label %4085

4085:                                             ; preds = %4084
  br label %4086

4086:                                             ; preds = %4085
  %4087 = getelementptr inbounds %struct.s2n_security_policy, ptr %96, i32 0, i32 1
  store ptr %95, ptr %4087, align 8, !tbaa !22
  %4088 = load ptr, ptr %6, align 8, !tbaa !9
  %4089 = getelementptr inbounds %struct.s2n_config, ptr %4088, i32 0, i32 7
  store ptr %96, ptr %4089, align 8, !tbaa !15
  br label %4090

4090:                                             ; preds = %4086
  %4091 = load i32, ptr @test_count, align 4, !tbaa !5
  %4092 = add nsw i32 %4091, 1
  store i32 %4092, ptr @test_count, align 4, !tbaa !5
  %4093 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4093, ptr %98, align 8, !tbaa !9
  %4094 = icmp eq ptr %4093, null
  br i1 %4094, label %4095, label %4148

4095:                                             ; preds = %4090
  br label %4096

4096:                                             ; preds = %4095
  br label %4097

4097:                                             ; preds = %4096
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %4098 = call ptr @__errno_location() #11
  %4099 = load i32, ptr %4098, align 4, !tbaa !5
  store i32 %4099, ptr %106, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = call i32 @s2n_print_stacktrace(ptr noundef %4100)
  %4102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4103 = trunc i8 %4102 to i1
  br i1 %4103, label %4104, label %4126

4104:                                             ; preds = %4097
  %4105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4106 = call i32 @fileno(ptr noundef %4105) #10
  %4107 = call i32 @isatty(i32 noundef %4106) #10
  %4108 = icmp ne i32 %4107, 0
  br i1 %4108, label %4109, label %4126

4109:                                             ; preds = %4104
  %4110 = load i32, ptr %106, align 4, !tbaa !5
  %4111 = call ptr @__errno_location() #11
  store i32 %4110, ptr %4111, align 4, !tbaa !5
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = load i32, ptr @test_count, align 4, !tbaa !5
  %4114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  %4116 = call ptr @s2n_strerror(i32 noundef %4115, ptr noundef @.str.4)
  %4117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4118 = load i32, ptr %4117, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror_debug(i32 noundef %4118, ptr noundef @.str.4)
  %4120 = call ptr @__errno_location() #11
  %4121 = load i32, ptr %4120, align 4, !tbaa !5
  %4122 = call ptr @strerror(i32 noundef %4121) #10
  %4123 = call ptr @__errno_location() #11
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4112, ptr noundef @.str.2, i32 noundef %4113, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 222, ptr noundef %4116, ptr noundef %4119, ptr noundef %4122, i32 noundef %4124) #10
  br label %4143

4126:                                             ; preds = %4104, %4097
  %4127 = load i32, ptr %106, align 4, !tbaa !5
  %4128 = call ptr @__errno_location() #11
  store i32 %4127, ptr %4128, align 4, !tbaa !5
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = load i32, ptr @test_count, align 4, !tbaa !5
  %4131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  %4133 = call ptr @s2n_strerror(i32 noundef %4132, ptr noundef @.str.4)
  %4134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  %4136 = call ptr @s2n_strerror_debug(i32 noundef %4135, ptr noundef @.str.4)
  %4137 = call ptr @__errno_location() #11
  %4138 = load i32, ptr %4137, align 4, !tbaa !5
  %4139 = call ptr @strerror(i32 noundef %4138) #10
  %4140 = call ptr @__errno_location() #11
  %4141 = load i32, ptr %4140, align 4, !tbaa !5
  %4142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4129, ptr noundef @.str.5, i32 noundef %4130, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 222, ptr noundef %4133, ptr noundef %4136, ptr noundef %4139, i32 noundef %4141) #10
  br label %4143

4143:                                             ; preds = %4126, %4109
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %4144

4144:                                             ; preds = %4143
  br label %4145

4145:                                             ; preds = %4144
  call void @exit(i32 noundef 1) #12
  unreachable

4146:                                             ; No predecessors!
  br label %4147

4147:                                             ; preds = %4146
  br label %4148

4148:                                             ; preds = %4147, %4090
  br label %4149

4149:                                             ; preds = %4148
  br label %4150

4150:                                             ; preds = %4149
  br label %4151

4151:                                             ; preds = %4150
  %4152 = load i32, ptr @test_count, align 4, !tbaa !5
  %4153 = add nsw i32 %4152, 1
  store i32 %4153, ptr @test_count, align 4, !tbaa !5
  %4154 = load ptr, ptr %98, align 8, !tbaa !9
  %4155 = load ptr, ptr %6, align 8, !tbaa !9
  %4156 = call i32 @s2n_connection_set_config(ptr noundef %4154, ptr noundef %4155)
  %4157 = icmp eq i32 %4156, -1
  br i1 %4157, label %4158, label %4211

4158:                                             ; preds = %4151
  br label %4159

4159:                                             ; preds = %4158
  br label %4160

4160:                                             ; preds = %4159
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %4161 = call ptr @__errno_location() #11
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  store i32 %4162, ptr %107, align 4, !tbaa !5
  %4163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4164 = call i32 @s2n_print_stacktrace(ptr noundef %4163)
  %4165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4166 = trunc i8 %4165 to i1
  br i1 %4166, label %4167, label %4189

4167:                                             ; preds = %4160
  %4168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4169 = call i32 @fileno(ptr noundef %4168) #10
  %4170 = call i32 @isatty(i32 noundef %4169) #10
  %4171 = icmp ne i32 %4170, 0
  br i1 %4171, label %4172, label %4189

4172:                                             ; preds = %4167
  %4173 = load i32, ptr %107, align 4, !tbaa !5
  %4174 = call ptr @__errno_location() #11
  store i32 %4173, ptr %4174, align 4, !tbaa !5
  %4175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4176 = load i32, ptr @test_count, align 4, !tbaa !5
  %4177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4178 = load i32, ptr %4177, align 4, !tbaa !5
  %4179 = call ptr @s2n_strerror(i32 noundef %4178, ptr noundef @.str.4)
  %4180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4181 = load i32, ptr %4180, align 4, !tbaa !5
  %4182 = call ptr @s2n_strerror_debug(i32 noundef %4181, ptr noundef @.str.4)
  %4183 = call ptr @__errno_location() #11
  %4184 = load i32, ptr %4183, align 4, !tbaa !5
  %4185 = call ptr @strerror(i32 noundef %4184) #10
  %4186 = call ptr @__errno_location() #11
  %4187 = load i32, ptr %4186, align 4, !tbaa !5
  %4188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4175, ptr noundef @.str.2, i32 noundef %4176, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4179, ptr noundef %4182, ptr noundef %4185, i32 noundef %4187) #10
  br label %4206

4189:                                             ; preds = %4167, %4160
  %4190 = load i32, ptr %107, align 4, !tbaa !5
  %4191 = call ptr @__errno_location() #11
  store i32 %4190, ptr %4191, align 4, !tbaa !5
  %4192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4193 = load i32, ptr @test_count, align 4, !tbaa !5
  %4194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4195 = load i32, ptr %4194, align 4, !tbaa !5
  %4196 = call ptr @s2n_strerror(i32 noundef %4195, ptr noundef @.str.4)
  %4197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4198 = load i32, ptr %4197, align 4, !tbaa !5
  %4199 = call ptr @s2n_strerror_debug(i32 noundef %4198, ptr noundef @.str.4)
  %4200 = call ptr @__errno_location() #11
  %4201 = load i32, ptr %4200, align 4, !tbaa !5
  %4202 = call ptr @strerror(i32 noundef %4201) #10
  %4203 = call ptr @__errno_location() #11
  %4204 = load i32, ptr %4203, align 4, !tbaa !5
  %4205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4192, ptr noundef @.str.5, i32 noundef %4193, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4196, ptr noundef %4199, ptr noundef %4202, i32 noundef %4204) #10
  br label %4206

4206:                                             ; preds = %4189, %4172
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %4207

4207:                                             ; preds = %4206
  br label %4208

4208:                                             ; preds = %4207
  call void @exit(i32 noundef 1) #12
  unreachable

4209:                                             ; No predecessors!
  br label %4210

4210:                                             ; preds = %4209
  br label %4211

4211:                                             ; preds = %4210, %4151
  br label %4212

4212:                                             ; preds = %4211
  br label %4213

4213:                                             ; preds = %4212
  br label %4214

4214:                                             ; preds = %4213
  %4215 = load i32, ptr @test_count, align 4, !tbaa !5
  %4216 = add nsw i32 %4215, 1
  store i32 %4216, ptr @test_count, align 4, !tbaa !5
  %4217 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4217, ptr %97, align 8, !tbaa !9
  %4218 = icmp eq ptr %4217, null
  br i1 %4218, label %4219, label %4272

4219:                                             ; preds = %4214
  br label %4220

4220:                                             ; preds = %4219
  br label %4221

4221:                                             ; preds = %4220
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #10
  %4222 = call ptr @__errno_location() #11
  %4223 = load i32, ptr %4222, align 4, !tbaa !5
  store i32 %4223, ptr %108, align 4, !tbaa !5
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = call i32 @s2n_print_stacktrace(ptr noundef %4224)
  %4226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4227 = trunc i8 %4226 to i1
  br i1 %4227, label %4228, label %4250

4228:                                             ; preds = %4221
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = call i32 @fileno(ptr noundef %4229) #10
  %4231 = call i32 @isatty(i32 noundef %4230) #10
  %4232 = icmp ne i32 %4231, 0
  br i1 %4232, label %4233, label %4250

4233:                                             ; preds = %4228
  %4234 = load i32, ptr %108, align 4, !tbaa !5
  %4235 = call ptr @__errno_location() #11
  store i32 %4234, ptr %4235, align 4, !tbaa !5
  %4236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4237 = load i32, ptr @test_count, align 4, !tbaa !5
  %4238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4239 = load i32, ptr %4238, align 4, !tbaa !5
  %4240 = call ptr @s2n_strerror(i32 noundef %4239, ptr noundef @.str.4)
  %4241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4242 = load i32, ptr %4241, align 4, !tbaa !5
  %4243 = call ptr @s2n_strerror_debug(i32 noundef %4242, ptr noundef @.str.4)
  %4244 = call ptr @__errno_location() #11
  %4245 = load i32, ptr %4244, align 4, !tbaa !5
  %4246 = call ptr @strerror(i32 noundef %4245) #10
  %4247 = call ptr @__errno_location() #11
  %4248 = load i32, ptr %4247, align 4, !tbaa !5
  %4249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4236, ptr noundef @.str.2, i32 noundef %4237, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 225, ptr noundef %4240, ptr noundef %4243, ptr noundef %4246, i32 noundef %4248) #10
  br label %4267

4250:                                             ; preds = %4228, %4221
  %4251 = load i32, ptr %108, align 4, !tbaa !5
  %4252 = call ptr @__errno_location() #11
  store i32 %4251, ptr %4252, align 4, !tbaa !5
  %4253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4254 = load i32, ptr @test_count, align 4, !tbaa !5
  %4255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4256 = load i32, ptr %4255, align 4, !tbaa !5
  %4257 = call ptr @s2n_strerror(i32 noundef %4256, ptr noundef @.str.4)
  %4258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4259 = load i32, ptr %4258, align 4, !tbaa !5
  %4260 = call ptr @s2n_strerror_debug(i32 noundef %4259, ptr noundef @.str.4)
  %4261 = call ptr @__errno_location() #11
  %4262 = load i32, ptr %4261, align 4, !tbaa !5
  %4263 = call ptr @strerror(i32 noundef %4262) #10
  %4264 = call ptr @__errno_location() #11
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  %4266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4253, ptr noundef @.str.5, i32 noundef %4254, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 225, ptr noundef %4257, ptr noundef %4260, ptr noundef %4263, i32 noundef %4265) #10
  br label %4267

4267:                                             ; preds = %4250, %4233
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %4268

4268:                                             ; preds = %4267
  br label %4269

4269:                                             ; preds = %4268
  call void @exit(i32 noundef 1) #12
  unreachable

4270:                                             ; No predecessors!
  br label %4271

4271:                                             ; preds = %4270
  br label %4272

4272:                                             ; preds = %4271, %4214
  br label %4273

4273:                                             ; preds = %4272
  br label %4274

4274:                                             ; preds = %4273
  br label %4275

4275:                                             ; preds = %4274
  %4276 = load i32, ptr @test_count, align 4, !tbaa !5
  %4277 = add nsw i32 %4276, 1
  store i32 %4277, ptr @test_count, align 4, !tbaa !5
  %4278 = load ptr, ptr %97, align 8, !tbaa !9
  %4279 = load ptr, ptr %6, align 8, !tbaa !9
  %4280 = call i32 @s2n_connection_set_config(ptr noundef %4278, ptr noundef %4279)
  %4281 = icmp eq i32 %4280, -1
  br i1 %4281, label %4282, label %4335

4282:                                             ; preds = %4275
  br label %4283

4283:                                             ; preds = %4282
  br label %4284

4284:                                             ; preds = %4283
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  %4285 = call ptr @__errno_location() #11
  %4286 = load i32, ptr %4285, align 4, !tbaa !5
  store i32 %4286, ptr %109, align 4, !tbaa !5
  %4287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4288 = call i32 @s2n_print_stacktrace(ptr noundef %4287)
  %4289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4290 = trunc i8 %4289 to i1
  br i1 %4290, label %4291, label %4313

4291:                                             ; preds = %4284
  %4292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4293 = call i32 @fileno(ptr noundef %4292) #10
  %4294 = call i32 @isatty(i32 noundef %4293) #10
  %4295 = icmp ne i32 %4294, 0
  br i1 %4295, label %4296, label %4313

4296:                                             ; preds = %4291
  %4297 = load i32, ptr %109, align 4, !tbaa !5
  %4298 = call ptr @__errno_location() #11
  store i32 %4297, ptr %4298, align 4, !tbaa !5
  %4299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4300 = load i32, ptr @test_count, align 4, !tbaa !5
  %4301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call ptr @s2n_strerror(i32 noundef %4302, ptr noundef @.str.4)
  %4304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4305 = load i32, ptr %4304, align 4, !tbaa !5
  %4306 = call ptr @s2n_strerror_debug(i32 noundef %4305, ptr noundef @.str.4)
  %4307 = call ptr @__errno_location() #11
  %4308 = load i32, ptr %4307, align 4, !tbaa !5
  %4309 = call ptr @strerror(i32 noundef %4308) #10
  %4310 = call ptr @__errno_location() #11
  %4311 = load i32, ptr %4310, align 4, !tbaa !5
  %4312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4299, ptr noundef @.str.2, i32 noundef %4300, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 226, ptr noundef %4303, ptr noundef %4306, ptr noundef %4309, i32 noundef %4311) #10
  br label %4330

4313:                                             ; preds = %4291, %4284
  %4314 = load i32, ptr %109, align 4, !tbaa !5
  %4315 = call ptr @__errno_location() #11
  store i32 %4314, ptr %4315, align 4, !tbaa !5
  %4316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4317 = load i32, ptr @test_count, align 4, !tbaa !5
  %4318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call ptr @s2n_strerror(i32 noundef %4319, ptr noundef @.str.4)
  %4321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4322 = load i32, ptr %4321, align 4, !tbaa !5
  %4323 = call ptr @s2n_strerror_debug(i32 noundef %4322, ptr noundef @.str.4)
  %4324 = call ptr @__errno_location() #11
  %4325 = load i32, ptr %4324, align 4, !tbaa !5
  %4326 = call ptr @strerror(i32 noundef %4325) #10
  %4327 = call ptr @__errno_location() #11
  %4328 = load i32, ptr %4327, align 4, !tbaa !5
  %4329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4316, ptr noundef @.str.5, i32 noundef %4317, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 226, ptr noundef %4320, ptr noundef %4323, ptr noundef %4326, i32 noundef %4328) #10
  br label %4330

4330:                                             ; preds = %4313, %4296
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %4331

4331:                                             ; preds = %4330
  br label %4332

4332:                                             ; preds = %4331
  call void @exit(i32 noundef 1) #12
  unreachable

4333:                                             ; No predecessors!
  br label %4334

4334:                                             ; preds = %4333
  br label %4335

4335:                                             ; preds = %4334, %4275
  br label %4336

4336:                                             ; preds = %4335
  br label %4337

4337:                                             ; preds = %4336
  br label %4338

4338:                                             ; preds = %4337
  %4339 = load i32, ptr @test_count, align 4, !tbaa !5
  %4340 = add nsw i32 %4339, 1
  store i32 %4340, ptr @test_count, align 4, !tbaa !5
  %4341 = load ptr, ptr %98, align 8, !tbaa !9
  %4342 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %4341, i32 noundef 1)
  %4343 = icmp eq i32 %4342, -1
  br i1 %4343, label %4344, label %4397

4344:                                             ; preds = %4338
  br label %4345

4345:                                             ; preds = %4344
  br label %4346

4346:                                             ; preds = %4345
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #10
  %4347 = call ptr @__errno_location() #11
  %4348 = load i32, ptr %4347, align 4, !tbaa !5
  store i32 %4348, ptr %110, align 4, !tbaa !5
  %4349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4350 = call i32 @s2n_print_stacktrace(ptr noundef %4349)
  %4351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4352 = trunc i8 %4351 to i1
  br i1 %4352, label %4353, label %4375

4353:                                             ; preds = %4346
  %4354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4355 = call i32 @fileno(ptr noundef %4354) #10
  %4356 = call i32 @isatty(i32 noundef %4355) #10
  %4357 = icmp ne i32 %4356, 0
  br i1 %4357, label %4358, label %4375

4358:                                             ; preds = %4353
  %4359 = load i32, ptr %110, align 4, !tbaa !5
  %4360 = call ptr @__errno_location() #11
  store i32 %4359, ptr %4360, align 4, !tbaa !5
  %4361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4362 = load i32, ptr @test_count, align 4, !tbaa !5
  %4363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  %4365 = call ptr @s2n_strerror(i32 noundef %4364, ptr noundef @.str.4)
  %4366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4367 = load i32, ptr %4366, align 4, !tbaa !5
  %4368 = call ptr @s2n_strerror_debug(i32 noundef %4367, ptr noundef @.str.4)
  %4369 = call ptr @__errno_location() #11
  %4370 = load i32, ptr %4369, align 4, !tbaa !5
  %4371 = call ptr @strerror(i32 noundef %4370) #10
  %4372 = call ptr @__errno_location() #11
  %4373 = load i32, ptr %4372, align 4, !tbaa !5
  %4374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4361, ptr noundef @.str.2, i32 noundef %4362, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 228, ptr noundef %4365, ptr noundef %4368, ptr noundef %4371, i32 noundef %4373) #10
  br label %4392

4375:                                             ; preds = %4353, %4346
  %4376 = load i32, ptr %110, align 4, !tbaa !5
  %4377 = call ptr @__errno_location() #11
  store i32 %4376, ptr %4377, align 4, !tbaa !5
  %4378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4379 = load i32, ptr @test_count, align 4, !tbaa !5
  %4380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4381 = load i32, ptr %4380, align 4, !tbaa !5
  %4382 = call ptr @s2n_strerror(i32 noundef %4381, ptr noundef @.str.4)
  %4383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4384 = load i32, ptr %4383, align 4, !tbaa !5
  %4385 = call ptr @s2n_strerror_debug(i32 noundef %4384, ptr noundef @.str.4)
  %4386 = call ptr @__errno_location() #11
  %4387 = load i32, ptr %4386, align 4, !tbaa !5
  %4388 = call ptr @strerror(i32 noundef %4387) #10
  %4389 = call ptr @__errno_location() #11
  %4390 = load i32, ptr %4389, align 4, !tbaa !5
  %4391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4378, ptr noundef @.str.5, i32 noundef %4379, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 228, ptr noundef %4382, ptr noundef %4385, ptr noundef %4388, i32 noundef %4390) #10
  br label %4392

4392:                                             ; preds = %4375, %4358
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #10
  br label %4393

4393:                                             ; preds = %4392
  br label %4394

4394:                                             ; preds = %4393
  call void @exit(i32 noundef 1) #12
  unreachable

4395:                                             ; No predecessors!
  br label %4396

4396:                                             ; preds = %4395
  br label %4397

4397:                                             ; preds = %4396, %4338
  br label %4398

4398:                                             ; preds = %4397
  br label %4399

4399:                                             ; preds = %4398
  br label %4400

4400:                                             ; preds = %4399
  %4401 = load i32, ptr @test_count, align 4, !tbaa !5
  %4402 = add nsw i32 %4401, 1
  store i32 %4402, ptr @test_count, align 4, !tbaa !5
  %4403 = load ptr, ptr %97, align 8, !tbaa !9
  %4404 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %4403, i32 noundef 1)
  %4405 = icmp eq i32 %4404, -1
  br i1 %4405, label %4406, label %4459

4406:                                             ; preds = %4400
  br label %4407

4407:                                             ; preds = %4406
  br label %4408

4408:                                             ; preds = %4407
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  %4409 = call ptr @__errno_location() #11
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  store i32 %4410, ptr %111, align 4, !tbaa !5
  %4411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4412 = call i32 @s2n_print_stacktrace(ptr noundef %4411)
  %4413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4414 = trunc i8 %4413 to i1
  br i1 %4414, label %4415, label %4437

4415:                                             ; preds = %4408
  %4416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4417 = call i32 @fileno(ptr noundef %4416) #10
  %4418 = call i32 @isatty(i32 noundef %4417) #10
  %4419 = icmp ne i32 %4418, 0
  br i1 %4419, label %4420, label %4437

4420:                                             ; preds = %4415
  %4421 = load i32, ptr %111, align 4, !tbaa !5
  %4422 = call ptr @__errno_location() #11
  store i32 %4421, ptr %4422, align 4, !tbaa !5
  %4423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4424 = load i32, ptr @test_count, align 4, !tbaa !5
  %4425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4426 = load i32, ptr %4425, align 4, !tbaa !5
  %4427 = call ptr @s2n_strerror(i32 noundef %4426, ptr noundef @.str.4)
  %4428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4429 = load i32, ptr %4428, align 4, !tbaa !5
  %4430 = call ptr @s2n_strerror_debug(i32 noundef %4429, ptr noundef @.str.4)
  %4431 = call ptr @__errno_location() #11
  %4432 = load i32, ptr %4431, align 4, !tbaa !5
  %4433 = call ptr @strerror(i32 noundef %4432) #10
  %4434 = call ptr @__errno_location() #11
  %4435 = load i32, ptr %4434, align 4, !tbaa !5
  %4436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4423, ptr noundef @.str.2, i32 noundef %4424, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 229, ptr noundef %4427, ptr noundef %4430, ptr noundef %4433, i32 noundef %4435) #10
  br label %4454

4437:                                             ; preds = %4415, %4408
  %4438 = load i32, ptr %111, align 4, !tbaa !5
  %4439 = call ptr @__errno_location() #11
  store i32 %4438, ptr %4439, align 4, !tbaa !5
  %4440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4441 = load i32, ptr @test_count, align 4, !tbaa !5
  %4442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4443 = load i32, ptr %4442, align 4, !tbaa !5
  %4444 = call ptr @s2n_strerror(i32 noundef %4443, ptr noundef @.str.4)
  %4445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  %4447 = call ptr @s2n_strerror_debug(i32 noundef %4446, ptr noundef @.str.4)
  %4448 = call ptr @__errno_location() #11
  %4449 = load i32, ptr %4448, align 4, !tbaa !5
  %4450 = call ptr @strerror(i32 noundef %4449) #10
  %4451 = call ptr @__errno_location() #11
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  %4453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4440, ptr noundef @.str.5, i32 noundef %4441, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 229, ptr noundef %4444, ptr noundef %4447, ptr noundef %4450, i32 noundef %4452) #10
  br label %4454

4454:                                             ; preds = %4437, %4420
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %4455

4455:                                             ; preds = %4454
  br label %4456

4456:                                             ; preds = %4455
  call void @exit(i32 noundef 1) #12
  unreachable

4457:                                             ; No predecessors!
  br label %4458

4458:                                             ; preds = %4457
  br label %4459

4459:                                             ; preds = %4458, %4400
  br label %4460

4460:                                             ; preds = %4459
  br label %4461

4461:                                             ; preds = %4460
  br label %4462

4462:                                             ; preds = %4461
  %4463 = load i32, ptr @test_count, align 4, !tbaa !5
  %4464 = add nsw i32 %4463, 1
  store i32 %4464, ptr @test_count, align 4, !tbaa !5
  %4465 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %99, i32 noundef 0)
  %4466 = icmp eq i32 %4465, -1
  br i1 %4466, label %4467, label %4520

4467:                                             ; preds = %4462
  br label %4468

4468:                                             ; preds = %4467
  br label %4469

4469:                                             ; preds = %4468
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #10
  %4470 = call ptr @__errno_location() #11
  %4471 = load i32, ptr %4470, align 4, !tbaa !5
  store i32 %4471, ptr %112, align 4, !tbaa !5
  %4472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4473 = call i32 @s2n_print_stacktrace(ptr noundef %4472)
  %4474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4475 = trunc i8 %4474 to i1
  br i1 %4475, label %4476, label %4498

4476:                                             ; preds = %4469
  %4477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4478 = call i32 @fileno(ptr noundef %4477) #10
  %4479 = call i32 @isatty(i32 noundef %4478) #10
  %4480 = icmp ne i32 %4479, 0
  br i1 %4480, label %4481, label %4498

4481:                                             ; preds = %4476
  %4482 = load i32, ptr %112, align 4, !tbaa !5
  %4483 = call ptr @__errno_location() #11
  store i32 %4482, ptr %4483, align 4, !tbaa !5
  %4484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4485 = load i32, ptr @test_count, align 4, !tbaa !5
  %4486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call ptr @s2n_strerror(i32 noundef %4487, ptr noundef @.str.4)
  %4489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4490 = load i32, ptr %4489, align 4, !tbaa !5
  %4491 = call ptr @s2n_strerror_debug(i32 noundef %4490, ptr noundef @.str.4)
  %4492 = call ptr @__errno_location() #11
  %4493 = load i32, ptr %4492, align 4, !tbaa !5
  %4494 = call ptr @strerror(i32 noundef %4493) #10
  %4495 = call ptr @__errno_location() #11
  %4496 = load i32, ptr %4495, align 4, !tbaa !5
  %4497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4484, ptr noundef @.str.2, i32 noundef %4485, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 232, ptr noundef %4488, ptr noundef %4491, ptr noundef %4494, i32 noundef %4496) #10
  br label %4515

4498:                                             ; preds = %4476, %4469
  %4499 = load i32, ptr %112, align 4, !tbaa !5
  %4500 = call ptr @__errno_location() #11
  store i32 %4499, ptr %4500, align 4, !tbaa !5
  %4501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4502 = load i32, ptr @test_count, align 4, !tbaa !5
  %4503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call ptr @s2n_strerror(i32 noundef %4504, ptr noundef @.str.4)
  %4506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  %4508 = call ptr @s2n_strerror_debug(i32 noundef %4507, ptr noundef @.str.4)
  %4509 = call ptr @__errno_location() #11
  %4510 = load i32, ptr %4509, align 4, !tbaa !5
  %4511 = call ptr @strerror(i32 noundef %4510) #10
  %4512 = call ptr @__errno_location() #11
  %4513 = load i32, ptr %4512, align 4, !tbaa !5
  %4514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4501, ptr noundef @.str.5, i32 noundef %4502, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 232, ptr noundef %4505, ptr noundef %4508, ptr noundef %4511, i32 noundef %4513) #10
  br label %4515

4515:                                             ; preds = %4498, %4481
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %4516

4516:                                             ; preds = %4515
  br label %4517

4517:                                             ; preds = %4516
  call void @exit(i32 noundef 1) #12
  unreachable

4518:                                             ; No predecessors!
  br label %4519

4519:                                             ; preds = %4518
  br label %4520

4520:                                             ; preds = %4519, %4462
  br label %4521

4521:                                             ; preds = %4520
  br label %4522

4522:                                             ; preds = %4521
  br label %4523

4523:                                             ; preds = %4522
  %4524 = load i32, ptr @test_count, align 4, !tbaa !5
  %4525 = add nsw i32 %4524, 1
  store i32 %4525, ptr @test_count, align 4, !tbaa !5
  %4526 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %100, i32 noundef 0)
  %4527 = icmp eq i32 %4526, -1
  br i1 %4527, label %4528, label %4581

4528:                                             ; preds = %4523
  br label %4529

4529:                                             ; preds = %4528
  br label %4530

4530:                                             ; preds = %4529
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #10
  %4531 = call ptr @__errno_location() #11
  %4532 = load i32, ptr %4531, align 4, !tbaa !5
  store i32 %4532, ptr %113, align 4, !tbaa !5
  %4533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4534 = call i32 @s2n_print_stacktrace(ptr noundef %4533)
  %4535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4536 = trunc i8 %4535 to i1
  br i1 %4536, label %4537, label %4559

4537:                                             ; preds = %4530
  %4538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4539 = call i32 @fileno(ptr noundef %4538) #10
  %4540 = call i32 @isatty(i32 noundef %4539) #10
  %4541 = icmp ne i32 %4540, 0
  br i1 %4541, label %4542, label %4559

4542:                                             ; preds = %4537
  %4543 = load i32, ptr %113, align 4, !tbaa !5
  %4544 = call ptr @__errno_location() #11
  store i32 %4543, ptr %4544, align 4, !tbaa !5
  %4545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4546 = load i32, ptr @test_count, align 4, !tbaa !5
  %4547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4548 = load i32, ptr %4547, align 4, !tbaa !5
  %4549 = call ptr @s2n_strerror(i32 noundef %4548, ptr noundef @.str.4)
  %4550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4551 = load i32, ptr %4550, align 4, !tbaa !5
  %4552 = call ptr @s2n_strerror_debug(i32 noundef %4551, ptr noundef @.str.4)
  %4553 = call ptr @__errno_location() #11
  %4554 = load i32, ptr %4553, align 4, !tbaa !5
  %4555 = call ptr @strerror(i32 noundef %4554) #10
  %4556 = call ptr @__errno_location() #11
  %4557 = load i32, ptr %4556, align 4, !tbaa !5
  %4558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4545, ptr noundef @.str.2, i32 noundef %4546, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4549, ptr noundef %4552, ptr noundef %4555, i32 noundef %4557) #10
  br label %4576

4559:                                             ; preds = %4537, %4530
  %4560 = load i32, ptr %113, align 4, !tbaa !5
  %4561 = call ptr @__errno_location() #11
  store i32 %4560, ptr %4561, align 4, !tbaa !5
  %4562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4563 = load i32, ptr @test_count, align 4, !tbaa !5
  %4564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4565 = load i32, ptr %4564, align 4, !tbaa !5
  %4566 = call ptr @s2n_strerror(i32 noundef %4565, ptr noundef @.str.4)
  %4567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4568 = load i32, ptr %4567, align 4, !tbaa !5
  %4569 = call ptr @s2n_strerror_debug(i32 noundef %4568, ptr noundef @.str.4)
  %4570 = call ptr @__errno_location() #11
  %4571 = load i32, ptr %4570, align 4, !tbaa !5
  %4572 = call ptr @strerror(i32 noundef %4571) #10
  %4573 = call ptr @__errno_location() #11
  %4574 = load i32, ptr %4573, align 4, !tbaa !5
  %4575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4562, ptr noundef @.str.5, i32 noundef %4563, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4566, ptr noundef %4569, ptr noundef %4572, i32 noundef %4574) #10
  br label %4576

4576:                                             ; preds = %4559, %4542
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  br label %4577

4577:                                             ; preds = %4576
  br label %4578

4578:                                             ; preds = %4577
  call void @exit(i32 noundef 1) #12
  unreachable

4579:                                             ; No predecessors!
  br label %4580

4580:                                             ; preds = %4579
  br label %4581

4581:                                             ; preds = %4580, %4523
  br label %4582

4582:                                             ; preds = %4581
  br label %4583

4583:                                             ; preds = %4582
  br label %4584

4584:                                             ; preds = %4583
  %4585 = load i32, ptr @test_count, align 4, !tbaa !5
  %4586 = add nsw i32 %4585, 1
  store i32 %4586, ptr @test_count, align 4, !tbaa !5
  %4587 = load ptr, ptr %97, align 8, !tbaa !9
  %4588 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %100, ptr noundef %99, ptr noundef %4587)
  %4589 = icmp eq i32 %4588, -1
  br i1 %4589, label %4590, label %4643

4590:                                             ; preds = %4584
  br label %4591

4591:                                             ; preds = %4590
  br label %4592

4592:                                             ; preds = %4591
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #10
  %4593 = call ptr @__errno_location() #11
  %4594 = load i32, ptr %4593, align 4, !tbaa !5
  store i32 %4594, ptr %114, align 4, !tbaa !5
  %4595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4596 = call i32 @s2n_print_stacktrace(ptr noundef %4595)
  %4597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4598 = trunc i8 %4597 to i1
  br i1 %4598, label %4599, label %4621

4599:                                             ; preds = %4592
  %4600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4601 = call i32 @fileno(ptr noundef %4600) #10
  %4602 = call i32 @isatty(i32 noundef %4601) #10
  %4603 = icmp ne i32 %4602, 0
  br i1 %4603, label %4604, label %4621

4604:                                             ; preds = %4599
  %4605 = load i32, ptr %114, align 4, !tbaa !5
  %4606 = call ptr @__errno_location() #11
  store i32 %4605, ptr %4606, align 4, !tbaa !5
  %4607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4608 = load i32, ptr @test_count, align 4, !tbaa !5
  %4609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4610 = load i32, ptr %4609, align 4, !tbaa !5
  %4611 = call ptr @s2n_strerror(i32 noundef %4610, ptr noundef @.str.4)
  %4612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  %4614 = call ptr @s2n_strerror_debug(i32 noundef %4613, ptr noundef @.str.4)
  %4615 = call ptr @__errno_location() #11
  %4616 = load i32, ptr %4615, align 4, !tbaa !5
  %4617 = call ptr @strerror(i32 noundef %4616) #10
  %4618 = call ptr @__errno_location() #11
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4607, ptr noundef @.str.2, i32 noundef %4608, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 234, ptr noundef %4611, ptr noundef %4614, ptr noundef %4617, i32 noundef %4619) #10
  br label %4638

4621:                                             ; preds = %4599, %4592
  %4622 = load i32, ptr %114, align 4, !tbaa !5
  %4623 = call ptr @__errno_location() #11
  store i32 %4622, ptr %4623, align 4, !tbaa !5
  %4624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4625 = load i32, ptr @test_count, align 4, !tbaa !5
  %4626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4627 = load i32, ptr %4626, align 4, !tbaa !5
  %4628 = call ptr @s2n_strerror(i32 noundef %4627, ptr noundef @.str.4)
  %4629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4630 = load i32, ptr %4629, align 4, !tbaa !5
  %4631 = call ptr @s2n_strerror_debug(i32 noundef %4630, ptr noundef @.str.4)
  %4632 = call ptr @__errno_location() #11
  %4633 = load i32, ptr %4632, align 4, !tbaa !5
  %4634 = call ptr @strerror(i32 noundef %4633) #10
  %4635 = call ptr @__errno_location() #11
  %4636 = load i32, ptr %4635, align 4, !tbaa !5
  %4637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4624, ptr noundef @.str.5, i32 noundef %4625, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 234, ptr noundef %4628, ptr noundef %4631, ptr noundef %4634, i32 noundef %4636) #10
  br label %4638

4638:                                             ; preds = %4621, %4604
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %4639

4639:                                             ; preds = %4638
  br label %4640

4640:                                             ; preds = %4639
  call void @exit(i32 noundef 1) #12
  unreachable

4641:                                             ; No predecessors!
  br label %4642

4642:                                             ; preds = %4641
  br label %4643

4643:                                             ; preds = %4642, %4584
  br label %4644

4644:                                             ; preds = %4643
  br label %4645

4645:                                             ; preds = %4644
  br label %4646

4646:                                             ; preds = %4645
  %4647 = load i32, ptr @test_count, align 4, !tbaa !5
  %4648 = add nsw i32 %4647, 1
  store i32 %4648, ptr @test_count, align 4, !tbaa !5
  %4649 = load ptr, ptr %98, align 8, !tbaa !9
  %4650 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %99, ptr noundef %100, ptr noundef %4649)
  %4651 = icmp eq i32 %4650, -1
  br i1 %4651, label %4652, label %4705

4652:                                             ; preds = %4646
  br label %4653

4653:                                             ; preds = %4652
  br label %4654

4654:                                             ; preds = %4653
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #10
  %4655 = call ptr @__errno_location() #11
  %4656 = load i32, ptr %4655, align 4, !tbaa !5
  store i32 %4656, ptr %115, align 4, !tbaa !5
  %4657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4658 = call i32 @s2n_print_stacktrace(ptr noundef %4657)
  %4659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4660 = trunc i8 %4659 to i1
  br i1 %4660, label %4661, label %4683

4661:                                             ; preds = %4654
  %4662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4663 = call i32 @fileno(ptr noundef %4662) #10
  %4664 = call i32 @isatty(i32 noundef %4663) #10
  %4665 = icmp ne i32 %4664, 0
  br i1 %4665, label %4666, label %4683

4666:                                             ; preds = %4661
  %4667 = load i32, ptr %115, align 4, !tbaa !5
  %4668 = call ptr @__errno_location() #11
  store i32 %4667, ptr %4668, align 4, !tbaa !5
  %4669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4670 = load i32, ptr @test_count, align 4, !tbaa !5
  %4671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4672 = load i32, ptr %4671, align 4, !tbaa !5
  %4673 = call ptr @s2n_strerror(i32 noundef %4672, ptr noundef @.str.4)
  %4674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4675 = load i32, ptr %4674, align 4, !tbaa !5
  %4676 = call ptr @s2n_strerror_debug(i32 noundef %4675, ptr noundef @.str.4)
  %4677 = call ptr @__errno_location() #11
  %4678 = load i32, ptr %4677, align 4, !tbaa !5
  %4679 = call ptr @strerror(i32 noundef %4678) #10
  %4680 = call ptr @__errno_location() #11
  %4681 = load i32, ptr %4680, align 4, !tbaa !5
  %4682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4669, ptr noundef @.str.2, i32 noundef %4670, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4673, ptr noundef %4676, ptr noundef %4679, i32 noundef %4681) #10
  br label %4700

4683:                                             ; preds = %4661, %4654
  %4684 = load i32, ptr %115, align 4, !tbaa !5
  %4685 = call ptr @__errno_location() #11
  store i32 %4684, ptr %4685, align 4, !tbaa !5
  %4686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4687 = load i32, ptr @test_count, align 4, !tbaa !5
  %4688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4689 = load i32, ptr %4688, align 4, !tbaa !5
  %4690 = call ptr @s2n_strerror(i32 noundef %4689, ptr noundef @.str.4)
  %4691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4692 = load i32, ptr %4691, align 4, !tbaa !5
  %4693 = call ptr @s2n_strerror_debug(i32 noundef %4692, ptr noundef @.str.4)
  %4694 = call ptr @__errno_location() #11
  %4695 = load i32, ptr %4694, align 4, !tbaa !5
  %4696 = call ptr @strerror(i32 noundef %4695) #10
  %4697 = call ptr @__errno_location() #11
  %4698 = load i32, ptr %4697, align 4, !tbaa !5
  %4699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4686, ptr noundef @.str.5, i32 noundef %4687, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4690, ptr noundef %4693, ptr noundef %4696, i32 noundef %4698) #10
  br label %4700

4700:                                             ; preds = %4683, %4666
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  br label %4701

4701:                                             ; preds = %4700
  br label %4702

4702:                                             ; preds = %4701
  call void @exit(i32 noundef 1) #12
  unreachable

4703:                                             ; No predecessors!
  br label %4704

4704:                                             ; preds = %4703
  br label %4705

4705:                                             ; preds = %4704, %4646
  br label %4706

4706:                                             ; preds = %4705
  br label %4707

4707:                                             ; preds = %4706
  br label %4708

4708:                                             ; preds = %4707
  %4709 = load i32, ptr @test_count, align 4, !tbaa !5
  %4710 = add nsw i32 %4709, 1
  store i32 %4710, ptr @test_count, align 4, !tbaa !5
  %4711 = load ptr, ptr %98, align 8, !tbaa !9
  %4712 = load ptr, ptr %97, align 8, !tbaa !9
  %4713 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4711, ptr noundef %4712)
  %4714 = icmp eq i32 %4713, -1
  br i1 %4714, label %4715, label %4768

4715:                                             ; preds = %4708
  br label %4716

4716:                                             ; preds = %4715
  br label %4717

4717:                                             ; preds = %4716
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #10
  %4718 = call ptr @__errno_location() #11
  %4719 = load i32, ptr %4718, align 4, !tbaa !5
  store i32 %4719, ptr %116, align 4, !tbaa !5
  %4720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4721 = call i32 @s2n_print_stacktrace(ptr noundef %4720)
  %4722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4723 = trunc i8 %4722 to i1
  br i1 %4723, label %4724, label %4746

4724:                                             ; preds = %4717
  %4725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4726 = call i32 @fileno(ptr noundef %4725) #10
  %4727 = call i32 @isatty(i32 noundef %4726) #10
  %4728 = icmp ne i32 %4727, 0
  br i1 %4728, label %4729, label %4746

4729:                                             ; preds = %4724
  %4730 = load i32, ptr %116, align 4, !tbaa !5
  %4731 = call ptr @__errno_location() #11
  store i32 %4730, ptr %4731, align 4, !tbaa !5
  %4732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4733 = load i32, ptr @test_count, align 4, !tbaa !5
  %4734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4735 = load i32, ptr %4734, align 4, !tbaa !5
  %4736 = call ptr @s2n_strerror(i32 noundef %4735, ptr noundef @.str.4)
  %4737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4738 = load i32, ptr %4737, align 4, !tbaa !5
  %4739 = call ptr @s2n_strerror_debug(i32 noundef %4738, ptr noundef @.str.4)
  %4740 = call ptr @__errno_location() #11
  %4741 = load i32, ptr %4740, align 4, !tbaa !5
  %4742 = call ptr @strerror(i32 noundef %4741) #10
  %4743 = call ptr @__errno_location() #11
  %4744 = load i32, ptr %4743, align 4, !tbaa !5
  %4745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4732, ptr noundef @.str.2, i32 noundef %4733, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4736, ptr noundef %4739, ptr noundef %4742, i32 noundef %4744) #10
  br label %4763

4746:                                             ; preds = %4724, %4717
  %4747 = load i32, ptr %116, align 4, !tbaa !5
  %4748 = call ptr @__errno_location() #11
  store i32 %4747, ptr %4748, align 4, !tbaa !5
  %4749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4750 = load i32, ptr @test_count, align 4, !tbaa !5
  %4751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4752 = load i32, ptr %4751, align 4, !tbaa !5
  %4753 = call ptr @s2n_strerror(i32 noundef %4752, ptr noundef @.str.4)
  %4754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4755 = load i32, ptr %4754, align 4, !tbaa !5
  %4756 = call ptr @s2n_strerror_debug(i32 noundef %4755, ptr noundef @.str.4)
  %4757 = call ptr @__errno_location() #11
  %4758 = load i32, ptr %4757, align 4, !tbaa !5
  %4759 = call ptr @strerror(i32 noundef %4758) #10
  %4760 = call ptr @__errno_location() #11
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  %4762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4749, ptr noundef @.str.5, i32 noundef %4750, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4753, ptr noundef %4756, ptr noundef %4759, i32 noundef %4761) #10
  br label %4763

4763:                                             ; preds = %4746, %4729
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %4764

4764:                                             ; preds = %4763
  br label %4765

4765:                                             ; preds = %4764
  call void @exit(i32 noundef 1) #12
  unreachable

4766:                                             ; No predecessors!
  br label %4767

4767:                                             ; preds = %4766
  br label %4768

4768:                                             ; preds = %4767, %4708
  br label %4769

4769:                                             ; preds = %4768
  br label %4770

4770:                                             ; preds = %4769
  br label %4771

4771:                                             ; preds = %4770
  %4772 = load i32, ptr @test_count, align 4, !tbaa !5
  %4773 = add nsw i32 %4772, 1
  store i32 %4773, ptr @test_count, align 4, !tbaa !5
  %4774 = load ptr, ptr %98, align 8, !tbaa !9
  %4775 = call i32 @s2n_connection_client_cert_used(ptr noundef %4774)
  %4776 = icmp ne i32 %4775, 0
  br i1 %4776, label %4830, label %4777

4777:                                             ; preds = %4771
  br label %4778

4778:                                             ; preds = %4777
  br label %4779

4779:                                             ; preds = %4778
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %4780 = call ptr @__errno_location() #11
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  store i32 %4781, ptr %117, align 4, !tbaa !5
  %4782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4783 = call i32 @s2n_print_stacktrace(ptr noundef %4782)
  %4784 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4785 = trunc i8 %4784 to i1
  br i1 %4785, label %4786, label %4808

4786:                                             ; preds = %4779
  %4787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4788 = call i32 @fileno(ptr noundef %4787) #10
  %4789 = call i32 @isatty(i32 noundef %4788) #10
  %4790 = icmp ne i32 %4789, 0
  br i1 %4790, label %4791, label %4808

4791:                                             ; preds = %4786
  %4792 = load i32, ptr %117, align 4, !tbaa !5
  %4793 = call ptr @__errno_location() #11
  store i32 %4792, ptr %4793, align 4, !tbaa !5
  %4794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4795 = load i32, ptr @test_count, align 4, !tbaa !5
  %4796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4797 = load i32, ptr %4796, align 4, !tbaa !5
  %4798 = call ptr @s2n_strerror(i32 noundef %4797, ptr noundef @.str.4)
  %4799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4800 = load i32, ptr %4799, align 4, !tbaa !5
  %4801 = call ptr @s2n_strerror_debug(i32 noundef %4800, ptr noundef @.str.4)
  %4802 = call ptr @__errno_location() #11
  %4803 = load i32, ptr %4802, align 4, !tbaa !5
  %4804 = call ptr @strerror(i32 noundef %4803) #10
  %4805 = call ptr @__errno_location() #11
  %4806 = load i32, ptr %4805, align 4, !tbaa !5
  %4807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4794, ptr noundef @.str.2, i32 noundef %4795, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 240, ptr noundef %4798, ptr noundef %4801, ptr noundef %4804, i32 noundef %4806) #10
  br label %4825

4808:                                             ; preds = %4786, %4779
  %4809 = load i32, ptr %117, align 4, !tbaa !5
  %4810 = call ptr @__errno_location() #11
  store i32 %4809, ptr %4810, align 4, !tbaa !5
  %4811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4812 = load i32, ptr @test_count, align 4, !tbaa !5
  %4813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4814 = load i32, ptr %4813, align 4, !tbaa !5
  %4815 = call ptr @s2n_strerror(i32 noundef %4814, ptr noundef @.str.4)
  %4816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call ptr @s2n_strerror_debug(i32 noundef %4817, ptr noundef @.str.4)
  %4819 = call ptr @__errno_location() #11
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call ptr @strerror(i32 noundef %4820) #10
  %4822 = call ptr @__errno_location() #11
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4811, ptr noundef @.str.5, i32 noundef %4812, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 240, ptr noundef %4815, ptr noundef %4818, ptr noundef %4821, i32 noundef %4823) #10
  br label %4825

4825:                                             ; preds = %4808, %4791
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %4826

4826:                                             ; preds = %4825
  br label %4827

4827:                                             ; preds = %4826
  call void @exit(i32 noundef 1) #12
  unreachable

4828:                                             ; No predecessors!
  br label %4829

4829:                                             ; preds = %4828
  br label %4830

4830:                                             ; preds = %4829, %4771
  br label %4831

4831:                                             ; preds = %4830
  br label %4832

4832:                                             ; preds = %4831
  br label %4833

4833:                                             ; preds = %4832
  %4834 = load i32, ptr @test_count, align 4, !tbaa !5
  %4835 = add nsw i32 %4834, 1
  store i32 %4835, ptr @test_count, align 4, !tbaa !5
  %4836 = load ptr, ptr %97, align 8, !tbaa !9
  %4837 = call i32 @s2n_connection_client_cert_used(ptr noundef %4836)
  %4838 = icmp ne i32 %4837, 0
  br i1 %4838, label %4892, label %4839

4839:                                             ; preds = %4833
  br label %4840

4840:                                             ; preds = %4839
  br label %4841

4841:                                             ; preds = %4840
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %4842 = call ptr @__errno_location() #11
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  store i32 %4843, ptr %118, align 4, !tbaa !5
  %4844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4845 = call i32 @s2n_print_stacktrace(ptr noundef %4844)
  %4846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4847 = trunc i8 %4846 to i1
  br i1 %4847, label %4848, label %4870

4848:                                             ; preds = %4841
  %4849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4850 = call i32 @fileno(ptr noundef %4849) #10
  %4851 = call i32 @isatty(i32 noundef %4850) #10
  %4852 = icmp ne i32 %4851, 0
  br i1 %4852, label %4853, label %4870

4853:                                             ; preds = %4848
  %4854 = load i32, ptr %118, align 4, !tbaa !5
  %4855 = call ptr @__errno_location() #11
  store i32 %4854, ptr %4855, align 4, !tbaa !5
  %4856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4857 = load i32, ptr @test_count, align 4, !tbaa !5
  %4858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4859 = load i32, ptr %4858, align 4, !tbaa !5
  %4860 = call ptr @s2n_strerror(i32 noundef %4859, ptr noundef @.str.4)
  %4861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4862 = load i32, ptr %4861, align 4, !tbaa !5
  %4863 = call ptr @s2n_strerror_debug(i32 noundef %4862, ptr noundef @.str.4)
  %4864 = call ptr @__errno_location() #11
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  %4866 = call ptr @strerror(i32 noundef %4865) #10
  %4867 = call ptr @__errno_location() #11
  %4868 = load i32, ptr %4867, align 4, !tbaa !5
  %4869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4856, ptr noundef @.str.2, i32 noundef %4857, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 241, ptr noundef %4860, ptr noundef %4863, ptr noundef %4866, i32 noundef %4868) #10
  br label %4887

4870:                                             ; preds = %4848, %4841
  %4871 = load i32, ptr %118, align 4, !tbaa !5
  %4872 = call ptr @__errno_location() #11
  store i32 %4871, ptr %4872, align 4, !tbaa !5
  %4873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4874 = load i32, ptr @test_count, align 4, !tbaa !5
  %4875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4876 = load i32, ptr %4875, align 4, !tbaa !5
  %4877 = call ptr @s2n_strerror(i32 noundef %4876, ptr noundef @.str.4)
  %4878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call ptr @s2n_strerror_debug(i32 noundef %4879, ptr noundef @.str.4)
  %4881 = call ptr @__errno_location() #11
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call ptr @strerror(i32 noundef %4882) #10
  %4884 = call ptr @__errno_location() #11
  %4885 = load i32, ptr %4884, align 4, !tbaa !5
  %4886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4873, ptr noundef @.str.5, i32 noundef %4874, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 241, ptr noundef %4877, ptr noundef %4880, ptr noundef %4883, i32 noundef %4885) #10
  br label %4887

4887:                                             ; preds = %4870, %4853
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %4888

4888:                                             ; preds = %4887
  br label %4889

4889:                                             ; preds = %4888
  call void @exit(i32 noundef 1) #12
  unreachable

4890:                                             ; No predecessors!
  br label %4891

4891:                                             ; preds = %4890
  br label %4892

4892:                                             ; preds = %4891, %4833
  br label %4893

4893:                                             ; preds = %4892
  br label %4894

4894:                                             ; preds = %4893
  br label %4895

4895:                                             ; preds = %4894
  %4896 = load i32, ptr @test_count, align 4, !tbaa !5
  %4897 = add nsw i32 %4896, 1
  store i32 %4897, ptr @test_count, align 4, !tbaa !5
  %4898 = load ptr, ptr %97, align 8, !tbaa !9
  %4899 = call i32 @s2n_connection_free(ptr noundef %4898)
  %4900 = icmp eq i32 %4899, -1
  br i1 %4900, label %4901, label %4954

4901:                                             ; preds = %4895
  br label %4902

4902:                                             ; preds = %4901
  br label %4903

4903:                                             ; preds = %4902
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  %4904 = call ptr @__errno_location() #11
  %4905 = load i32, ptr %4904, align 4, !tbaa !5
  store i32 %4905, ptr %119, align 4, !tbaa !5
  %4906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4907 = call i32 @s2n_print_stacktrace(ptr noundef %4906)
  %4908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4909 = trunc i8 %4908 to i1
  br i1 %4909, label %4910, label %4932

4910:                                             ; preds = %4903
  %4911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4912 = call i32 @fileno(ptr noundef %4911) #10
  %4913 = call i32 @isatty(i32 noundef %4912) #10
  %4914 = icmp ne i32 %4913, 0
  br i1 %4914, label %4915, label %4932

4915:                                             ; preds = %4910
  %4916 = load i32, ptr %119, align 4, !tbaa !5
  %4917 = call ptr @__errno_location() #11
  store i32 %4916, ptr %4917, align 4, !tbaa !5
  %4918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4919 = load i32, ptr @test_count, align 4, !tbaa !5
  %4920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4921 = load i32, ptr %4920, align 4, !tbaa !5
  %4922 = call ptr @s2n_strerror(i32 noundef %4921, ptr noundef @.str.4)
  %4923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror_debug(i32 noundef %4924, ptr noundef @.str.4)
  %4926 = call ptr @__errno_location() #11
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call ptr @strerror(i32 noundef %4927) #10
  %4929 = call ptr @__errno_location() #11
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4918, ptr noundef @.str.2, i32 noundef %4919, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 243, ptr noundef %4922, ptr noundef %4925, ptr noundef %4928, i32 noundef %4930) #10
  br label %4949

4932:                                             ; preds = %4910, %4903
  %4933 = load i32, ptr %119, align 4, !tbaa !5
  %4934 = call ptr @__errno_location() #11
  store i32 %4933, ptr %4934, align 4, !tbaa !5
  %4935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4936 = load i32, ptr @test_count, align 4, !tbaa !5
  %4937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4938 = load i32, ptr %4937, align 4, !tbaa !5
  %4939 = call ptr @s2n_strerror(i32 noundef %4938, ptr noundef @.str.4)
  %4940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4941 = load i32, ptr %4940, align 4, !tbaa !5
  %4942 = call ptr @s2n_strerror_debug(i32 noundef %4941, ptr noundef @.str.4)
  %4943 = call ptr @__errno_location() #11
  %4944 = load i32, ptr %4943, align 4, !tbaa !5
  %4945 = call ptr @strerror(i32 noundef %4944) #10
  %4946 = call ptr @__errno_location() #11
  %4947 = load i32, ptr %4946, align 4, !tbaa !5
  %4948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4935, ptr noundef @.str.5, i32 noundef %4936, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 243, ptr noundef %4939, ptr noundef %4942, ptr noundef %4945, i32 noundef %4947) #10
  br label %4949

4949:                                             ; preds = %4932, %4915
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  br label %4950

4950:                                             ; preds = %4949
  br label %4951

4951:                                             ; preds = %4950
  call void @exit(i32 noundef 1) #12
  unreachable

4952:                                             ; No predecessors!
  br label %4953

4953:                                             ; preds = %4952
  br label %4954

4954:                                             ; preds = %4953, %4895
  br label %4955

4955:                                             ; preds = %4954
  br label %4956

4956:                                             ; preds = %4955
  br label %4957

4957:                                             ; preds = %4956
  %4958 = load i32, ptr @test_count, align 4, !tbaa !5
  %4959 = add nsw i32 %4958, 1
  store i32 %4959, ptr @test_count, align 4, !tbaa !5
  %4960 = load ptr, ptr %98, align 8, !tbaa !9
  %4961 = call i32 @s2n_connection_free(ptr noundef %4960)
  %4962 = icmp eq i32 %4961, -1
  br i1 %4962, label %4963, label %5016

4963:                                             ; preds = %4957
  br label %4964

4964:                                             ; preds = %4963
  br label %4965

4965:                                             ; preds = %4964
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %4966 = call ptr @__errno_location() #11
  %4967 = load i32, ptr %4966, align 4, !tbaa !5
  store i32 %4967, ptr %120, align 4, !tbaa !5
  %4968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4969 = call i32 @s2n_print_stacktrace(ptr noundef %4968)
  %4970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4971 = trunc i8 %4970 to i1
  br i1 %4971, label %4972, label %4994

4972:                                             ; preds = %4965
  %4973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4974 = call i32 @fileno(ptr noundef %4973) #10
  %4975 = call i32 @isatty(i32 noundef %4974) #10
  %4976 = icmp ne i32 %4975, 0
  br i1 %4976, label %4977, label %4994

4977:                                             ; preds = %4972
  %4978 = load i32, ptr %120, align 4, !tbaa !5
  %4979 = call ptr @__errno_location() #11
  store i32 %4978, ptr %4979, align 4, !tbaa !5
  %4980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4981 = load i32, ptr @test_count, align 4, !tbaa !5
  %4982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4983 = load i32, ptr %4982, align 4, !tbaa !5
  %4984 = call ptr @s2n_strerror(i32 noundef %4983, ptr noundef @.str.4)
  %4985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4986 = load i32, ptr %4985, align 4, !tbaa !5
  %4987 = call ptr @s2n_strerror_debug(i32 noundef %4986, ptr noundef @.str.4)
  %4988 = call ptr @__errno_location() #11
  %4989 = load i32, ptr %4988, align 4, !tbaa !5
  %4990 = call ptr @strerror(i32 noundef %4989) #10
  %4991 = call ptr @__errno_location() #11
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  %4993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4980, ptr noundef @.str.2, i32 noundef %4981, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 244, ptr noundef %4984, ptr noundef %4987, ptr noundef %4990, i32 noundef %4992) #10
  br label %5011

4994:                                             ; preds = %4972, %4965
  %4995 = load i32, ptr %120, align 4, !tbaa !5
  %4996 = call ptr @__errno_location() #11
  store i32 %4995, ptr %4996, align 4, !tbaa !5
  %4997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4998 = load i32, ptr @test_count, align 4, !tbaa !5
  %4999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5000 = load i32, ptr %4999, align 4, !tbaa !5
  %5001 = call ptr @s2n_strerror(i32 noundef %5000, ptr noundef @.str.4)
  %5002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5003 = load i32, ptr %5002, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror_debug(i32 noundef %5003, ptr noundef @.str.4)
  %5005 = call ptr @__errno_location() #11
  %5006 = load i32, ptr %5005, align 4, !tbaa !5
  %5007 = call ptr @strerror(i32 noundef %5006) #10
  %5008 = call ptr @__errno_location() #11
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4997, ptr noundef @.str.5, i32 noundef %4998, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5001, ptr noundef %5004, ptr noundef %5007, i32 noundef %5009) #10
  br label %5011

5011:                                             ; preds = %4994, %4977
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %5012

5012:                                             ; preds = %5011
  br label %5013

5013:                                             ; preds = %5012
  call void @exit(i32 noundef 1) #12
  unreachable

5014:                                             ; No predecessors!
  br label %5015

5015:                                             ; preds = %5014
  br label %5016

5016:                                             ; preds = %5015, %4957
  br label %5017

5017:                                             ; preds = %5016
  br label %5018

5018:                                             ; preds = %5017
  br label %5019

5019:                                             ; preds = %5018
  %5020 = load i32, ptr @test_count, align 4, !tbaa !5
  %5021 = add nsw i32 %5020, 1
  store i32 %5021, ptr @test_count, align 4, !tbaa !5
  %5022 = call i32 @s2n_stuffer_free(ptr noundef %100)
  %5023 = icmp eq i32 %5022, -1
  br i1 %5023, label %5024, label %5077

5024:                                             ; preds = %5019
  br label %5025

5025:                                             ; preds = %5024
  br label %5026

5026:                                             ; preds = %5025
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %5027 = call ptr @__errno_location() #11
  %5028 = load i32, ptr %5027, align 4, !tbaa !5
  store i32 %5028, ptr %121, align 4, !tbaa !5
  %5029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5030 = call i32 @s2n_print_stacktrace(ptr noundef %5029)
  %5031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5032 = trunc i8 %5031 to i1
  br i1 %5032, label %5033, label %5055

5033:                                             ; preds = %5026
  %5034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5035 = call i32 @fileno(ptr noundef %5034) #10
  %5036 = call i32 @isatty(i32 noundef %5035) #10
  %5037 = icmp ne i32 %5036, 0
  br i1 %5037, label %5038, label %5055

5038:                                             ; preds = %5033
  %5039 = load i32, ptr %121, align 4, !tbaa !5
  %5040 = call ptr @__errno_location() #11
  store i32 %5039, ptr %5040, align 4, !tbaa !5
  %5041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5042 = load i32, ptr @test_count, align 4, !tbaa !5
  %5043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5044 = load i32, ptr %5043, align 4, !tbaa !5
  %5045 = call ptr @s2n_strerror(i32 noundef %5044, ptr noundef @.str.4)
  %5046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5047 = load i32, ptr %5046, align 4, !tbaa !5
  %5048 = call ptr @s2n_strerror_debug(i32 noundef %5047, ptr noundef @.str.4)
  %5049 = call ptr @__errno_location() #11
  %5050 = load i32, ptr %5049, align 4, !tbaa !5
  %5051 = call ptr @strerror(i32 noundef %5050) #10
  %5052 = call ptr @__errno_location() #11
  %5053 = load i32, ptr %5052, align 4, !tbaa !5
  %5054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5041, ptr noundef @.str.2, i32 noundef %5042, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5045, ptr noundef %5048, ptr noundef %5051, i32 noundef %5053) #10
  br label %5072

5055:                                             ; preds = %5033, %5026
  %5056 = load i32, ptr %121, align 4, !tbaa !5
  %5057 = call ptr @__errno_location() #11
  store i32 %5056, ptr %5057, align 4, !tbaa !5
  %5058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5059 = load i32, ptr @test_count, align 4, !tbaa !5
  %5060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5061 = load i32, ptr %5060, align 4, !tbaa !5
  %5062 = call ptr @s2n_strerror(i32 noundef %5061, ptr noundef @.str.4)
  %5063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5064 = load i32, ptr %5063, align 4, !tbaa !5
  %5065 = call ptr @s2n_strerror_debug(i32 noundef %5064, ptr noundef @.str.4)
  %5066 = call ptr @__errno_location() #11
  %5067 = load i32, ptr %5066, align 4, !tbaa !5
  %5068 = call ptr @strerror(i32 noundef %5067) #10
  %5069 = call ptr @__errno_location() #11
  %5070 = load i32, ptr %5069, align 4, !tbaa !5
  %5071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5058, ptr noundef @.str.5, i32 noundef %5059, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5062, ptr noundef %5065, ptr noundef %5068, i32 noundef %5070) #10
  br label %5072

5072:                                             ; preds = %5055, %5038
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %5073

5073:                                             ; preds = %5072
  br label %5074

5074:                                             ; preds = %5073
  call void @exit(i32 noundef 1) #12
  unreachable

5075:                                             ; No predecessors!
  br label %5076

5076:                                             ; preds = %5075
  br label %5077

5077:                                             ; preds = %5076, %5019
  br label %5078

5078:                                             ; preds = %5077
  br label %5079

5079:                                             ; preds = %5078
  br label %5080

5080:                                             ; preds = %5079
  %5081 = load i32, ptr @test_count, align 4, !tbaa !5
  %5082 = add nsw i32 %5081, 1
  store i32 %5082, ptr @test_count, align 4, !tbaa !5
  %5083 = call i32 @s2n_stuffer_free(ptr noundef %99)
  %5084 = icmp eq i32 %5083, -1
  br i1 %5084, label %5085, label %5138

5085:                                             ; preds = %5080
  br label %5086

5086:                                             ; preds = %5085
  br label %5087

5087:                                             ; preds = %5086
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #10
  %5088 = call ptr @__errno_location() #11
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  store i32 %5089, ptr %122, align 4, !tbaa !5
  %5090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5091 = call i32 @s2n_print_stacktrace(ptr noundef %5090)
  %5092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5093 = trunc i8 %5092 to i1
  br i1 %5093, label %5094, label %5116

5094:                                             ; preds = %5087
  %5095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5096 = call i32 @fileno(ptr noundef %5095) #10
  %5097 = call i32 @isatty(i32 noundef %5096) #10
  %5098 = icmp ne i32 %5097, 0
  br i1 %5098, label %5099, label %5116

5099:                                             ; preds = %5094
  %5100 = load i32, ptr %122, align 4, !tbaa !5
  %5101 = call ptr @__errno_location() #11
  store i32 %5100, ptr %5101, align 4, !tbaa !5
  %5102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5103 = load i32, ptr @test_count, align 4, !tbaa !5
  %5104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5105 = load i32, ptr %5104, align 4, !tbaa !5
  %5106 = call ptr @s2n_strerror(i32 noundef %5105, ptr noundef @.str.4)
  %5107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5108 = load i32, ptr %5107, align 4, !tbaa !5
  %5109 = call ptr @s2n_strerror_debug(i32 noundef %5108, ptr noundef @.str.4)
  %5110 = call ptr @__errno_location() #11
  %5111 = load i32, ptr %5110, align 4, !tbaa !5
  %5112 = call ptr @strerror(i32 noundef %5111) #10
  %5113 = call ptr @__errno_location() #11
  %5114 = load i32, ptr %5113, align 4, !tbaa !5
  %5115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5102, ptr noundef @.str.2, i32 noundef %5103, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5106, ptr noundef %5109, ptr noundef %5112, i32 noundef %5114) #10
  br label %5133

5116:                                             ; preds = %5094, %5087
  %5117 = load i32, ptr %122, align 4, !tbaa !5
  %5118 = call ptr @__errno_location() #11
  store i32 %5117, ptr %5118, align 4, !tbaa !5
  %5119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5120 = load i32, ptr @test_count, align 4, !tbaa !5
  %5121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5122 = load i32, ptr %5121, align 4, !tbaa !5
  %5123 = call ptr @s2n_strerror(i32 noundef %5122, ptr noundef @.str.4)
  %5124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5125 = load i32, ptr %5124, align 4, !tbaa !5
  %5126 = call ptr @s2n_strerror_debug(i32 noundef %5125, ptr noundef @.str.4)
  %5127 = call ptr @__errno_location() #11
  %5128 = load i32, ptr %5127, align 4, !tbaa !5
  %5129 = call ptr @strerror(i32 noundef %5128) #10
  %5130 = call ptr @__errno_location() #11
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5119, ptr noundef @.str.5, i32 noundef %5120, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5123, ptr noundef %5126, ptr noundef %5129, i32 noundef %5131) #10
  br label %5133

5133:                                             ; preds = %5116, %5099
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #10
  br label %5134

5134:                                             ; preds = %5133
  br label %5135

5135:                                             ; preds = %5134
  call void @exit(i32 noundef 1) #12
  unreachable

5136:                                             ; No predecessors!
  br label %5137

5137:                                             ; preds = %5136
  br label %5138

5138:                                             ; preds = %5137, %5080
  br label %5139

5139:                                             ; preds = %5138
  br label %5140

5140:                                             ; preds = %5139
  store i32 0, ptr %35, align 4
  br label %5141

5141:                                             ; preds = %5140, %4020
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %100) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %99) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %96) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %95) #10
  %5142 = load i32, ptr %35, align 4
  switch i32 %5142, label %8733 [
    i32 0, label %5143
    i32 368, label %5144
  ]

5143:                                             ; preds = %5141
  br label %5144

5144:                                             ; preds = %5143, %5141
  %5145 = load i64, ptr %94, align 8, !tbaa !24
  %5146 = add i64 %5145, 1
  store i64 %5146, ptr %94, align 8, !tbaa !24
  br label %3935, !llvm.loop !33

5147:                                             ; preds = %3942
  br label %5148

5148:                                             ; preds = %5147
  %5149 = load i32, ptr @test_count, align 4, !tbaa !5
  %5150 = add nsw i32 %5149, 1
  store i32 %5150, ptr @test_count, align 4, !tbaa !5
  %5151 = load ptr, ptr %6, align 8, !tbaa !9
  %5152 = call i32 @s2n_config_set_client_auth_type(ptr noundef %5151, i32 noundef 0)
  %5153 = icmp eq i32 %5152, -1
  br i1 %5153, label %5154, label %5207

5154:                                             ; preds = %5148
  br label %5155

5155:                                             ; preds = %5154
  br label %5156

5156:                                             ; preds = %5155
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %5157 = call ptr @__errno_location() #11
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  store i32 %5158, ptr %123, align 4, !tbaa !5
  %5159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5160 = call i32 @s2n_print_stacktrace(ptr noundef %5159)
  %5161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5162 = trunc i8 %5161 to i1
  br i1 %5162, label %5163, label %5185

5163:                                             ; preds = %5156
  %5164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5165 = call i32 @fileno(ptr noundef %5164) #10
  %5166 = call i32 @isatty(i32 noundef %5165) #10
  %5167 = icmp ne i32 %5166, 0
  br i1 %5167, label %5168, label %5185

5168:                                             ; preds = %5163
  %5169 = load i32, ptr %123, align 4, !tbaa !5
  %5170 = call ptr @__errno_location() #11
  store i32 %5169, ptr %5170, align 4, !tbaa !5
  %5171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5172 = load i32, ptr @test_count, align 4, !tbaa !5
  %5173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5174 = load i32, ptr %5173, align 4, !tbaa !5
  %5175 = call ptr @s2n_strerror(i32 noundef %5174, ptr noundef @.str.4)
  %5176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5177 = load i32, ptr %5176, align 4, !tbaa !5
  %5178 = call ptr @s2n_strerror_debug(i32 noundef %5177, ptr noundef @.str.4)
  %5179 = call ptr @__errno_location() #11
  %5180 = load i32, ptr %5179, align 4, !tbaa !5
  %5181 = call ptr @strerror(i32 noundef %5180) #10
  %5182 = call ptr @__errno_location() #11
  %5183 = load i32, ptr %5182, align 4, !tbaa !5
  %5184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5171, ptr noundef @.str.2, i32 noundef %5172, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 254, ptr noundef %5175, ptr noundef %5178, ptr noundef %5181, i32 noundef %5183) #10
  br label %5202

5185:                                             ; preds = %5163, %5156
  %5186 = load i32, ptr %123, align 4, !tbaa !5
  %5187 = call ptr @__errno_location() #11
  store i32 %5186, ptr %5187, align 4, !tbaa !5
  %5188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5189 = load i32, ptr @test_count, align 4, !tbaa !5
  %5190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call ptr @s2n_strerror(i32 noundef %5191, ptr noundef @.str.4)
  %5193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call ptr @s2n_strerror_debug(i32 noundef %5194, ptr noundef @.str.4)
  %5196 = call ptr @__errno_location() #11
  %5197 = load i32, ptr %5196, align 4, !tbaa !5
  %5198 = call ptr @strerror(i32 noundef %5197) #10
  %5199 = call ptr @__errno_location() #11
  %5200 = load i32, ptr %5199, align 4, !tbaa !5
  %5201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5188, ptr noundef @.str.5, i32 noundef %5189, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 254, ptr noundef %5192, ptr noundef %5195, ptr noundef %5198, i32 noundef %5200) #10
  br label %5202

5202:                                             ; preds = %5185, %5168
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %5203

5203:                                             ; preds = %5202
  br label %5204

5204:                                             ; preds = %5203
  call void @exit(i32 noundef 1) #12
  unreachable

5205:                                             ; No predecessors!
  br label %5206

5206:                                             ; preds = %5205
  br label %5207

5207:                                             ; preds = %5206, %5148
  br label %5208

5208:                                             ; preds = %5207
  br label %5209

5209:                                             ; preds = %5208
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  store i64 0, ptr %124, align 8, !tbaa !24
  br label %5210

5210:                                             ; preds = %6490, %5209
  %5211 = load i64, ptr %124, align 8, !tbaa !24
  %5212 = load ptr, ptr %8, align 8, !tbaa !9
  %5213 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %5212, i32 0, i32 0
  %5214 = load i16, ptr %5213, align 8, !tbaa !25
  %5215 = zext i16 %5214 to i64
  %5216 = icmp ult i64 %5211, %5215
  br i1 %5216, label %5218, label %5217

5217:                                             ; preds = %5210
  store i32 489, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  br label %6493

5218:                                             ; preds = %5210
  call void @llvm.lifetime.start.p0(i64 24, ptr %125) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %126) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #10
  store ptr null, ptr %127, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #10
  store ptr null, ptr %128, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %129) #10
  call void @llvm.memset.p0.i64(ptr align 8 %129, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %130) #10
  call void @llvm.memset.p0.i64(ptr align 8 %130, i8 0, i64 40, i1 false)
  br label %5219

5219:                                             ; preds = %5218
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #10
  store i64 24, ptr %131, align 8, !tbaa !24
  %5220 = load i64, ptr %131, align 8, !tbaa !24
  %5221 = icmp ne i64 %5220, 0
  br i1 %5221, label %5222, label %5280

5222:                                             ; preds = %5219
  %5223 = load ptr, ptr %8, align 8, !tbaa !9
  %5224 = load i64, ptr %131, align 8, !tbaa !24
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %125, ptr align 8 %5223, i64 %5224, i1 false)
  %5225 = icmp eq ptr %125, null
  br i1 %5225, label %5226, label %5279

5226:                                             ; preds = %5222
  br label %5227

5227:                                             ; preds = %5226
  br label %5228

5228:                                             ; preds = %5227
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %5229 = call ptr @__errno_location() #11
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  store i32 %5230, ptr %132, align 4, !tbaa !5
  %5231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5232 = call i32 @s2n_print_stacktrace(ptr noundef %5231)
  %5233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5234 = trunc i8 %5233 to i1
  br i1 %5234, label %5235, label %5257

5235:                                             ; preds = %5228
  %5236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5237 = call i32 @fileno(ptr noundef %5236) #10
  %5238 = call i32 @isatty(i32 noundef %5237) #10
  %5239 = icmp ne i32 %5238, 0
  br i1 %5239, label %5240, label %5257

5240:                                             ; preds = %5235
  %5241 = load i32, ptr %132, align 4, !tbaa !5
  %5242 = call ptr @__errno_location() #11
  store i32 %5241, ptr %5242, align 4, !tbaa !5
  %5243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5244 = load i32, ptr @test_count, align 4, !tbaa !5
  %5245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5246 = load i32, ptr %5245, align 4, !tbaa !5
  %5247 = call ptr @s2n_strerror(i32 noundef %5246, ptr noundef @.str.4)
  %5248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5249 = load i32, ptr %5248, align 4, !tbaa !5
  %5250 = call ptr @s2n_strerror_debug(i32 noundef %5249, ptr noundef @.str.4)
  %5251 = call ptr @__errno_location() #11
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  %5253 = call ptr @strerror(i32 noundef %5252) #10
  %5254 = call ptr @__errno_location() #11
  %5255 = load i32, ptr %5254, align 4, !tbaa !5
  %5256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5243, ptr noundef @.str.2, i32 noundef %5244, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 266, ptr noundef %5247, ptr noundef %5250, ptr noundef %5253, i32 noundef %5255) #10
  br label %5274

5257:                                             ; preds = %5235, %5228
  %5258 = load i32, ptr %132, align 4, !tbaa !5
  %5259 = call ptr @__errno_location() #11
  store i32 %5258, ptr %5259, align 4, !tbaa !5
  %5260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5261 = load i32, ptr @test_count, align 4, !tbaa !5
  %5262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5263 = load i32, ptr %5262, align 4, !tbaa !5
  %5264 = call ptr @s2n_strerror(i32 noundef %5263, ptr noundef @.str.4)
  %5265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @s2n_strerror_debug(i32 noundef %5266, ptr noundef @.str.4)
  %5268 = call ptr @__errno_location() #11
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @strerror(i32 noundef %5269) #10
  %5271 = call ptr @__errno_location() #11
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5260, ptr noundef @.str.5, i32 noundef %5261, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 266, ptr noundef %5264, ptr noundef %5267, ptr noundef %5270, i32 noundef %5272) #10
  br label %5274

5274:                                             ; preds = %5257, %5240
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  br label %5275

5275:                                             ; preds = %5274
  br label %5276

5276:                                             ; preds = %5275
  call void @exit(i32 noundef 1) #12
  unreachable

5277:                                             ; No predecessors!
  br label %5278

5278:                                             ; preds = %5277
  br label %5279

5279:                                             ; preds = %5278, %5222
  br label %5280

5280:                                             ; preds = %5279, %5219
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #10
  br label %5281

5281:                                             ; preds = %5280
  br label %5282

5282:                                             ; preds = %5281
  %5283 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %125, i32 0, i32 0
  store i16 1, ptr %5283, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #10
  %5284 = load ptr, ptr %8, align 8, !tbaa !9
  %5285 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %5284, i32 0, i32 1
  %5286 = load ptr, ptr %5285, align 8, !tbaa !29
  %5287 = load i64, ptr %124, align 8, !tbaa !24
  %5288 = getelementptr inbounds ptr, ptr %5286, i64 %5287
  %5289 = load ptr, ptr %5288, align 8, !tbaa !9
  store ptr %5289, ptr %133, align 8, !tbaa !9
  %5290 = load ptr, ptr %133, align 8, !tbaa !9
  %5291 = load i8, ptr %5290, align 8
  %5292 = and i8 %5291, 1
  %5293 = zext i8 %5292 to i32
  %5294 = icmp ne i32 %5293, 0
  br i1 %5294, label %5296, label %5295

5295:                                             ; preds = %5282
  store i32 491, ptr %35, align 4
  br label %6487

5296:                                             ; preds = %5282
  %5297 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %125, i32 0, i32 1
  store ptr %133, ptr %5297, align 8, !tbaa !29
  br label %5298

5298:                                             ; preds = %5296
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #10
  store i64 64, ptr %134, align 8, !tbaa !24
  %5299 = load i64, ptr %134, align 8, !tbaa !24
  %5300 = icmp ne i64 %5299, 0
  br i1 %5300, label %5301, label %5359

5301:                                             ; preds = %5298
  %5302 = load ptr, ptr %7, align 8, !tbaa !9
  %5303 = load i64, ptr %134, align 8, !tbaa !24
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %126, ptr align 8 %5302, i64 %5303, i1 false)
  %5304 = icmp eq ptr %126, null
  br i1 %5304, label %5305, label %5358

5305:                                             ; preds = %5301
  br label %5306

5306:                                             ; preds = %5305
  br label %5307

5307:                                             ; preds = %5306
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  %5308 = call ptr @__errno_location() #11
  %5309 = load i32, ptr %5308, align 4, !tbaa !5
  store i32 %5309, ptr %135, align 4, !tbaa !5
  %5310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5311 = call i32 @s2n_print_stacktrace(ptr noundef %5310)
  %5312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5313 = trunc i8 %5312 to i1
  br i1 %5313, label %5314, label %5336

5314:                                             ; preds = %5307
  %5315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5316 = call i32 @fileno(ptr noundef %5315) #10
  %5317 = call i32 @isatty(i32 noundef %5316) #10
  %5318 = icmp ne i32 %5317, 0
  br i1 %5318, label %5319, label %5336

5319:                                             ; preds = %5314
  %5320 = load i32, ptr %135, align 4, !tbaa !5
  %5321 = call ptr @__errno_location() #11
  store i32 %5320, ptr %5321, align 4, !tbaa !5
  %5322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5323 = load i32, ptr @test_count, align 4, !tbaa !5
  %5324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5325 = load i32, ptr %5324, align 4, !tbaa !5
  %5326 = call ptr @s2n_strerror(i32 noundef %5325, ptr noundef @.str.4)
  %5327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5328 = load i32, ptr %5327, align 4, !tbaa !5
  %5329 = call ptr @s2n_strerror_debug(i32 noundef %5328, ptr noundef @.str.4)
  %5330 = call ptr @__errno_location() #11
  %5331 = load i32, ptr %5330, align 4, !tbaa !5
  %5332 = call ptr @strerror(i32 noundef %5331) #10
  %5333 = call ptr @__errno_location() #11
  %5334 = load i32, ptr %5333, align 4, !tbaa !5
  %5335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5322, ptr noundef @.str.2, i32 noundef %5323, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 277, ptr noundef %5326, ptr noundef %5329, ptr noundef %5332, i32 noundef %5334) #10
  br label %5353

5336:                                             ; preds = %5314, %5307
  %5337 = load i32, ptr %135, align 4, !tbaa !5
  %5338 = call ptr @__errno_location() #11
  store i32 %5337, ptr %5338, align 4, !tbaa !5
  %5339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5340 = load i32, ptr @test_count, align 4, !tbaa !5
  %5341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5342 = load i32, ptr %5341, align 4, !tbaa !5
  %5343 = call ptr @s2n_strerror(i32 noundef %5342, ptr noundef @.str.4)
  %5344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5345 = load i32, ptr %5344, align 4, !tbaa !5
  %5346 = call ptr @s2n_strerror_debug(i32 noundef %5345, ptr noundef @.str.4)
  %5347 = call ptr @__errno_location() #11
  %5348 = load i32, ptr %5347, align 4, !tbaa !5
  %5349 = call ptr @strerror(i32 noundef %5348) #10
  %5350 = call ptr @__errno_location() #11
  %5351 = load i32, ptr %5350, align 4, !tbaa !5
  %5352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5339, ptr noundef @.str.5, i32 noundef %5340, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 277, ptr noundef %5343, ptr noundef %5346, ptr noundef %5349, i32 noundef %5351) #10
  br label %5353

5353:                                             ; preds = %5336, %5319
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %5354

5354:                                             ; preds = %5353
  br label %5355

5355:                                             ; preds = %5354
  call void @exit(i32 noundef 1) #12
  unreachable

5356:                                             ; No predecessors!
  br label %5357

5357:                                             ; preds = %5356
  br label %5358

5358:                                             ; preds = %5357, %5301
  br label %5359

5359:                                             ; preds = %5358, %5298
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #10
  br label %5360

5360:                                             ; preds = %5359
  br label %5361

5361:                                             ; preds = %5360
  %5362 = getelementptr inbounds %struct.s2n_security_policy, ptr %126, i32 0, i32 1
  store ptr %125, ptr %5362, align 8, !tbaa !22
  %5363 = load ptr, ptr %6, align 8, !tbaa !9
  %5364 = getelementptr inbounds %struct.s2n_config, ptr %5363, i32 0, i32 7
  store ptr %126, ptr %5364, align 8, !tbaa !15
  br label %5365

5365:                                             ; preds = %5361
  %5366 = load i32, ptr @test_count, align 4, !tbaa !5
  %5367 = add nsw i32 %5366, 1
  store i32 %5367, ptr @test_count, align 4, !tbaa !5
  %5368 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5368, ptr %128, align 8, !tbaa !9
  %5369 = icmp eq ptr %5368, null
  br i1 %5369, label %5370, label %5423

5370:                                             ; preds = %5365
  br label %5371

5371:                                             ; preds = %5370
  br label %5372

5372:                                             ; preds = %5371
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %5373 = call ptr @__errno_location() #11
  %5374 = load i32, ptr %5373, align 4, !tbaa !5
  store i32 %5374, ptr %136, align 4, !tbaa !5
  %5375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5376 = call i32 @s2n_print_stacktrace(ptr noundef %5375)
  %5377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5378 = trunc i8 %5377 to i1
  br i1 %5378, label %5379, label %5401

5379:                                             ; preds = %5372
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = call i32 @fileno(ptr noundef %5380) #10
  %5382 = call i32 @isatty(i32 noundef %5381) #10
  %5383 = icmp ne i32 %5382, 0
  br i1 %5383, label %5384, label %5401

5384:                                             ; preds = %5379
  %5385 = load i32, ptr %136, align 4, !tbaa !5
  %5386 = call ptr @__errno_location() #11
  store i32 %5385, ptr %5386, align 4, !tbaa !5
  %5387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5388 = load i32, ptr @test_count, align 4, !tbaa !5
  %5389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5390 = load i32, ptr %5389, align 4, !tbaa !5
  %5391 = call ptr @s2n_strerror(i32 noundef %5390, ptr noundef @.str.4)
  %5392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5393 = load i32, ptr %5392, align 4, !tbaa !5
  %5394 = call ptr @s2n_strerror_debug(i32 noundef %5393, ptr noundef @.str.4)
  %5395 = call ptr @__errno_location() #11
  %5396 = load i32, ptr %5395, align 4, !tbaa !5
  %5397 = call ptr @strerror(i32 noundef %5396) #10
  %5398 = call ptr @__errno_location() #11
  %5399 = load i32, ptr %5398, align 4, !tbaa !5
  %5400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5387, ptr noundef @.str.2, i32 noundef %5388, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 282, ptr noundef %5391, ptr noundef %5394, ptr noundef %5397, i32 noundef %5399) #10
  br label %5418

5401:                                             ; preds = %5379, %5372
  %5402 = load i32, ptr %136, align 4, !tbaa !5
  %5403 = call ptr @__errno_location() #11
  store i32 %5402, ptr %5403, align 4, !tbaa !5
  %5404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5405 = load i32, ptr @test_count, align 4, !tbaa !5
  %5406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5407 = load i32, ptr %5406, align 4, !tbaa !5
  %5408 = call ptr @s2n_strerror(i32 noundef %5407, ptr noundef @.str.4)
  %5409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5410 = load i32, ptr %5409, align 4, !tbaa !5
  %5411 = call ptr @s2n_strerror_debug(i32 noundef %5410, ptr noundef @.str.4)
  %5412 = call ptr @__errno_location() #11
  %5413 = load i32, ptr %5412, align 4, !tbaa !5
  %5414 = call ptr @strerror(i32 noundef %5413) #10
  %5415 = call ptr @__errno_location() #11
  %5416 = load i32, ptr %5415, align 4, !tbaa !5
  %5417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5404, ptr noundef @.str.5, i32 noundef %5405, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 282, ptr noundef %5408, ptr noundef %5411, ptr noundef %5414, i32 noundef %5416) #10
  br label %5418

5418:                                             ; preds = %5401, %5384
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  br label %5419

5419:                                             ; preds = %5418
  br label %5420

5420:                                             ; preds = %5419
  call void @exit(i32 noundef 1) #12
  unreachable

5421:                                             ; No predecessors!
  br label %5422

5422:                                             ; preds = %5421
  br label %5423

5423:                                             ; preds = %5422, %5365
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

5425:                                             ; preds = %5424
  br label %5426

5426:                                             ; preds = %5425
  %5427 = load i32, ptr @test_count, align 4, !tbaa !5
  %5428 = add nsw i32 %5427, 1
  store i32 %5428, ptr @test_count, align 4, !tbaa !5
  %5429 = load ptr, ptr %128, align 8, !tbaa !9
  %5430 = load ptr, ptr %6, align 8, !tbaa !9
  %5431 = call i32 @s2n_connection_set_config(ptr noundef %5429, ptr noundef %5430)
  %5432 = icmp eq i32 %5431, -1
  br i1 %5432, label %5433, label %5486

5433:                                             ; preds = %5426
  br label %5434

5434:                                             ; preds = %5433
  br label %5435

5435:                                             ; preds = %5434
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #10
  %5436 = call ptr @__errno_location() #11
  %5437 = load i32, ptr %5436, align 4, !tbaa !5
  store i32 %5437, ptr %137, align 4, !tbaa !5
  %5438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5439 = call i32 @s2n_print_stacktrace(ptr noundef %5438)
  %5440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5441 = trunc i8 %5440 to i1
  br i1 %5441, label %5442, label %5464

5442:                                             ; preds = %5435
  %5443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5444 = call i32 @fileno(ptr noundef %5443) #10
  %5445 = call i32 @isatty(i32 noundef %5444) #10
  %5446 = icmp ne i32 %5445, 0
  br i1 %5446, label %5447, label %5464

5447:                                             ; preds = %5442
  %5448 = load i32, ptr %137, align 4, !tbaa !5
  %5449 = call ptr @__errno_location() #11
  store i32 %5448, ptr %5449, align 4, !tbaa !5
  %5450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5451 = load i32, ptr @test_count, align 4, !tbaa !5
  %5452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5453 = load i32, ptr %5452, align 4, !tbaa !5
  %5454 = call ptr @s2n_strerror(i32 noundef %5453, ptr noundef @.str.4)
  %5455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5456 = load i32, ptr %5455, align 4, !tbaa !5
  %5457 = call ptr @s2n_strerror_debug(i32 noundef %5456, ptr noundef @.str.4)
  %5458 = call ptr @__errno_location() #11
  %5459 = load i32, ptr %5458, align 4, !tbaa !5
  %5460 = call ptr @strerror(i32 noundef %5459) #10
  %5461 = call ptr @__errno_location() #11
  %5462 = load i32, ptr %5461, align 4, !tbaa !5
  %5463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5450, ptr noundef @.str.2, i32 noundef %5451, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5454, ptr noundef %5457, ptr noundef %5460, i32 noundef %5462) #10
  br label %5481

5464:                                             ; preds = %5442, %5435
  %5465 = load i32, ptr %137, align 4, !tbaa !5
  %5466 = call ptr @__errno_location() #11
  store i32 %5465, ptr %5466, align 4, !tbaa !5
  %5467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5468 = load i32, ptr @test_count, align 4, !tbaa !5
  %5469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5470 = load i32, ptr %5469, align 4, !tbaa !5
  %5471 = call ptr @s2n_strerror(i32 noundef %5470, ptr noundef @.str.4)
  %5472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5473 = load i32, ptr %5472, align 4, !tbaa !5
  %5474 = call ptr @s2n_strerror_debug(i32 noundef %5473, ptr noundef @.str.4)
  %5475 = call ptr @__errno_location() #11
  %5476 = load i32, ptr %5475, align 4, !tbaa !5
  %5477 = call ptr @strerror(i32 noundef %5476) #10
  %5478 = call ptr @__errno_location() #11
  %5479 = load i32, ptr %5478, align 4, !tbaa !5
  %5480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5467, ptr noundef @.str.5, i32 noundef %5468, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5471, ptr noundef %5474, ptr noundef %5477, i32 noundef %5479) #10
  br label %5481

5481:                                             ; preds = %5464, %5447
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  br label %5482

5482:                                             ; preds = %5481
  br label %5483

5483:                                             ; preds = %5482
  call void @exit(i32 noundef 1) #12
  unreachable

5484:                                             ; No predecessors!
  br label %5485

5485:                                             ; preds = %5484
  br label %5486

5486:                                             ; preds = %5485, %5426
  br label %5487

5487:                                             ; preds = %5486
  br label %5488

5488:                                             ; preds = %5487
  br label %5489

5489:                                             ; preds = %5488
  %5490 = load i32, ptr @test_count, align 4, !tbaa !5
  %5491 = add nsw i32 %5490, 1
  store i32 %5491, ptr @test_count, align 4, !tbaa !5
  %5492 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5492, ptr %127, align 8, !tbaa !9
  %5493 = icmp eq ptr %5492, null
  br i1 %5493, label %5494, label %5547

5494:                                             ; preds = %5489
  br label %5495

5495:                                             ; preds = %5494
  br label %5496

5496:                                             ; preds = %5495
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #10
  %5497 = call ptr @__errno_location() #11
  %5498 = load i32, ptr %5497, align 4, !tbaa !5
  store i32 %5498, ptr %138, align 4, !tbaa !5
  %5499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5500 = call i32 @s2n_print_stacktrace(ptr noundef %5499)
  %5501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5502 = trunc i8 %5501 to i1
  br i1 %5502, label %5503, label %5525

5503:                                             ; preds = %5496
  %5504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5505 = call i32 @fileno(ptr noundef %5504) #10
  %5506 = call i32 @isatty(i32 noundef %5505) #10
  %5507 = icmp ne i32 %5506, 0
  br i1 %5507, label %5508, label %5525

5508:                                             ; preds = %5503
  %5509 = load i32, ptr %138, align 4, !tbaa !5
  %5510 = call ptr @__errno_location() #11
  store i32 %5509, ptr %5510, align 4, !tbaa !5
  %5511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5512 = load i32, ptr @test_count, align 4, !tbaa !5
  %5513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5514 = load i32, ptr %5513, align 4, !tbaa !5
  %5515 = call ptr @s2n_strerror(i32 noundef %5514, ptr noundef @.str.4)
  %5516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5517 = load i32, ptr %5516, align 4, !tbaa !5
  %5518 = call ptr @s2n_strerror_debug(i32 noundef %5517, ptr noundef @.str.4)
  %5519 = call ptr @__errno_location() #11
  %5520 = load i32, ptr %5519, align 4, !tbaa !5
  %5521 = call ptr @strerror(i32 noundef %5520) #10
  %5522 = call ptr @__errno_location() #11
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  %5524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5511, ptr noundef @.str.2, i32 noundef %5512, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 285, ptr noundef %5515, ptr noundef %5518, ptr noundef %5521, i32 noundef %5523) #10
  br label %5542

5525:                                             ; preds = %5503, %5496
  %5526 = load i32, ptr %138, align 4, !tbaa !5
  %5527 = call ptr @__errno_location() #11
  store i32 %5526, ptr %5527, align 4, !tbaa !5
  %5528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5529 = load i32, ptr @test_count, align 4, !tbaa !5
  %5530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5531 = load i32, ptr %5530, align 4, !tbaa !5
  %5532 = call ptr @s2n_strerror(i32 noundef %5531, ptr noundef @.str.4)
  %5533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  %5535 = call ptr @s2n_strerror_debug(i32 noundef %5534, ptr noundef @.str.4)
  %5536 = call ptr @__errno_location() #11
  %5537 = load i32, ptr %5536, align 4, !tbaa !5
  %5538 = call ptr @strerror(i32 noundef %5537) #10
  %5539 = call ptr @__errno_location() #11
  %5540 = load i32, ptr %5539, align 4, !tbaa !5
  %5541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5528, ptr noundef @.str.5, i32 noundef %5529, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 285, ptr noundef %5532, ptr noundef %5535, ptr noundef %5538, i32 noundef %5540) #10
  br label %5542

5542:                                             ; preds = %5525, %5508
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  br label %5543

5543:                                             ; preds = %5542
  br label %5544

5544:                                             ; preds = %5543
  call void @exit(i32 noundef 1) #12
  unreachable

5545:                                             ; No predecessors!
  br label %5546

5546:                                             ; preds = %5545
  br label %5547

5547:                                             ; preds = %5546, %5489
  br label %5548

5548:                                             ; preds = %5547
  br label %5549

5549:                                             ; preds = %5548
  br label %5550

5550:                                             ; preds = %5549
  %5551 = load i32, ptr @test_count, align 4, !tbaa !5
  %5552 = add nsw i32 %5551, 1
  store i32 %5552, ptr @test_count, align 4, !tbaa !5
  %5553 = load ptr, ptr %127, align 8, !tbaa !9
  %5554 = load ptr, ptr %6, align 8, !tbaa !9
  %5555 = call i32 @s2n_connection_set_config(ptr noundef %5553, ptr noundef %5554)
  %5556 = icmp eq i32 %5555, -1
  br i1 %5556, label %5557, label %5610

5557:                                             ; preds = %5550
  br label %5558

5558:                                             ; preds = %5557
  br label %5559

5559:                                             ; preds = %5558
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #10
  %5560 = call ptr @__errno_location() #11
  %5561 = load i32, ptr %5560, align 4, !tbaa !5
  store i32 %5561, ptr %139, align 4, !tbaa !5
  %5562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5563 = call i32 @s2n_print_stacktrace(ptr noundef %5562)
  %5564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5565 = trunc i8 %5564 to i1
  br i1 %5565, label %5566, label %5588

5566:                                             ; preds = %5559
  %5567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5568 = call i32 @fileno(ptr noundef %5567) #10
  %5569 = call i32 @isatty(i32 noundef %5568) #10
  %5570 = icmp ne i32 %5569, 0
  br i1 %5570, label %5571, label %5588

5571:                                             ; preds = %5566
  %5572 = load i32, ptr %139, align 4, !tbaa !5
  %5573 = call ptr @__errno_location() #11
  store i32 %5572, ptr %5573, align 4, !tbaa !5
  %5574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5575 = load i32, ptr @test_count, align 4, !tbaa !5
  %5576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5577 = load i32, ptr %5576, align 4, !tbaa !5
  %5578 = call ptr @s2n_strerror(i32 noundef %5577, ptr noundef @.str.4)
  %5579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5580 = load i32, ptr %5579, align 4, !tbaa !5
  %5581 = call ptr @s2n_strerror_debug(i32 noundef %5580, ptr noundef @.str.4)
  %5582 = call ptr @__errno_location() #11
  %5583 = load i32, ptr %5582, align 4, !tbaa !5
  %5584 = call ptr @strerror(i32 noundef %5583) #10
  %5585 = call ptr @__errno_location() #11
  %5586 = load i32, ptr %5585, align 4, !tbaa !5
  %5587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5574, ptr noundef @.str.2, i32 noundef %5575, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5578, ptr noundef %5581, ptr noundef %5584, i32 noundef %5586) #10
  br label %5605

5588:                                             ; preds = %5566, %5559
  %5589 = load i32, ptr %139, align 4, !tbaa !5
  %5590 = call ptr @__errno_location() #11
  store i32 %5589, ptr %5590, align 4, !tbaa !5
  %5591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5592 = load i32, ptr @test_count, align 4, !tbaa !5
  %5593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5594 = load i32, ptr %5593, align 4, !tbaa !5
  %5595 = call ptr @s2n_strerror(i32 noundef %5594, ptr noundef @.str.4)
  %5596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5597 = load i32, ptr %5596, align 4, !tbaa !5
  %5598 = call ptr @s2n_strerror_debug(i32 noundef %5597, ptr noundef @.str.4)
  %5599 = call ptr @__errno_location() #11
  %5600 = load i32, ptr %5599, align 4, !tbaa !5
  %5601 = call ptr @strerror(i32 noundef %5600) #10
  %5602 = call ptr @__errno_location() #11
  %5603 = load i32, ptr %5602, align 4, !tbaa !5
  %5604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5591, ptr noundef @.str.5, i32 noundef %5592, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5595, ptr noundef %5598, ptr noundef %5601, i32 noundef %5603) #10
  br label %5605

5605:                                             ; preds = %5588, %5571
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #10
  br label %5606

5606:                                             ; preds = %5605
  br label %5607

5607:                                             ; preds = %5606
  call void @exit(i32 noundef 1) #12
  unreachable

5608:                                             ; No predecessors!
  br label %5609

5609:                                             ; preds = %5608
  br label %5610

5610:                                             ; preds = %5609, %5550
  br label %5611

5611:                                             ; preds = %5610
  br label %5612

5612:                                             ; preds = %5611
  br label %5613

5613:                                             ; preds = %5612
  %5614 = load i32, ptr @test_count, align 4, !tbaa !5
  %5615 = add nsw i32 %5614, 1
  store i32 %5615, ptr @test_count, align 4, !tbaa !5
  %5616 = load ptr, ptr %128, align 8, !tbaa !9
  %5617 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %5616, i32 noundef 1)
  %5618 = icmp eq i32 %5617, -1
  br i1 %5618, label %5619, label %5672

5619:                                             ; preds = %5613
  br label %5620

5620:                                             ; preds = %5619
  br label %5621

5621:                                             ; preds = %5620
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #10
  %5622 = call ptr @__errno_location() #11
  %5623 = load i32, ptr %5622, align 4, !tbaa !5
  store i32 %5623, ptr %140, align 4, !tbaa !5
  %5624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5625 = call i32 @s2n_print_stacktrace(ptr noundef %5624)
  %5626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5627 = trunc i8 %5626 to i1
  br i1 %5627, label %5628, label %5650

5628:                                             ; preds = %5621
  %5629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5630 = call i32 @fileno(ptr noundef %5629) #10
  %5631 = call i32 @isatty(i32 noundef %5630) #10
  %5632 = icmp ne i32 %5631, 0
  br i1 %5632, label %5633, label %5650

5633:                                             ; preds = %5628
  %5634 = load i32, ptr %140, align 4, !tbaa !5
  %5635 = call ptr @__errno_location() #11
  store i32 %5634, ptr %5635, align 4, !tbaa !5
  %5636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5637 = load i32, ptr @test_count, align 4, !tbaa !5
  %5638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5639 = load i32, ptr %5638, align 4, !tbaa !5
  %5640 = call ptr @s2n_strerror(i32 noundef %5639, ptr noundef @.str.4)
  %5641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5642 = load i32, ptr %5641, align 4, !tbaa !5
  %5643 = call ptr @s2n_strerror_debug(i32 noundef %5642, ptr noundef @.str.4)
  %5644 = call ptr @__errno_location() #11
  %5645 = load i32, ptr %5644, align 4, !tbaa !5
  %5646 = call ptr @strerror(i32 noundef %5645) #10
  %5647 = call ptr @__errno_location() #11
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5636, ptr noundef @.str.2, i32 noundef %5637, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 289, ptr noundef %5640, ptr noundef %5643, ptr noundef %5646, i32 noundef %5648) #10
  br label %5667

5650:                                             ; preds = %5628, %5621
  %5651 = load i32, ptr %140, align 4, !tbaa !5
  %5652 = call ptr @__errno_location() #11
  store i32 %5651, ptr %5652, align 4, !tbaa !5
  %5653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5654 = load i32, ptr @test_count, align 4, !tbaa !5
  %5655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  %5657 = call ptr @s2n_strerror(i32 noundef %5656, ptr noundef @.str.4)
  %5658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call ptr @s2n_strerror_debug(i32 noundef %5659, ptr noundef @.str.4)
  %5661 = call ptr @__errno_location() #11
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call ptr @strerror(i32 noundef %5662) #10
  %5664 = call ptr @__errno_location() #11
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5653, ptr noundef @.str.5, i32 noundef %5654, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 289, ptr noundef %5657, ptr noundef %5660, ptr noundef %5663, i32 noundef %5665) #10
  br label %5667

5667:                                             ; preds = %5650, %5633
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #10
  br label %5668

5668:                                             ; preds = %5667
  br label %5669

5669:                                             ; preds = %5668
  call void @exit(i32 noundef 1) #12
  unreachable

5670:                                             ; No predecessors!
  br label %5671

5671:                                             ; preds = %5670
  br label %5672

5672:                                             ; preds = %5671, %5613
  br label %5673

5673:                                             ; preds = %5672
  br label %5674

5674:                                             ; preds = %5673
  br label %5675

5675:                                             ; preds = %5674
  %5676 = load i32, ptr @test_count, align 4, !tbaa !5
  %5677 = add nsw i32 %5676, 1
  store i32 %5677, ptr @test_count, align 4, !tbaa !5
  %5678 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %129, i32 noundef 0)
  %5679 = icmp eq i32 %5678, -1
  br i1 %5679, label %5680, label %5733

5680:                                             ; preds = %5675
  br label %5681

5681:                                             ; preds = %5680
  br label %5682

5682:                                             ; preds = %5681
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #10
  %5683 = call ptr @__errno_location() #11
  %5684 = load i32, ptr %5683, align 4, !tbaa !5
  store i32 %5684, ptr %141, align 4, !tbaa !5
  %5685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5686 = call i32 @s2n_print_stacktrace(ptr noundef %5685)
  %5687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5688 = trunc i8 %5687 to i1
  br i1 %5688, label %5689, label %5711

5689:                                             ; preds = %5682
  %5690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5691 = call i32 @fileno(ptr noundef %5690) #10
  %5692 = call i32 @isatty(i32 noundef %5691) #10
  %5693 = icmp ne i32 %5692, 0
  br i1 %5693, label %5694, label %5711

5694:                                             ; preds = %5689
  %5695 = load i32, ptr %141, align 4, !tbaa !5
  %5696 = call ptr @__errno_location() #11
  store i32 %5695, ptr %5696, align 4, !tbaa !5
  %5697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5698 = load i32, ptr @test_count, align 4, !tbaa !5
  %5699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5700 = load i32, ptr %5699, align 4, !tbaa !5
  %5701 = call ptr @s2n_strerror(i32 noundef %5700, ptr noundef @.str.4)
  %5702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5703 = load i32, ptr %5702, align 4, !tbaa !5
  %5704 = call ptr @s2n_strerror_debug(i32 noundef %5703, ptr noundef @.str.4)
  %5705 = call ptr @__errno_location() #11
  %5706 = load i32, ptr %5705, align 4, !tbaa !5
  %5707 = call ptr @strerror(i32 noundef %5706) #10
  %5708 = call ptr @__errno_location() #11
  %5709 = load i32, ptr %5708, align 4, !tbaa !5
  %5710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5697, ptr noundef @.str.2, i32 noundef %5698, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 292, ptr noundef %5701, ptr noundef %5704, ptr noundef %5707, i32 noundef %5709) #10
  br label %5728

5711:                                             ; preds = %5689, %5682
  %5712 = load i32, ptr %141, align 4, !tbaa !5
  %5713 = call ptr @__errno_location() #11
  store i32 %5712, ptr %5713, align 4, !tbaa !5
  %5714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5715 = load i32, ptr @test_count, align 4, !tbaa !5
  %5716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  %5718 = call ptr @s2n_strerror(i32 noundef %5717, ptr noundef @.str.4)
  %5719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call ptr @s2n_strerror_debug(i32 noundef %5720, ptr noundef @.str.4)
  %5722 = call ptr @__errno_location() #11
  %5723 = load i32, ptr %5722, align 4, !tbaa !5
  %5724 = call ptr @strerror(i32 noundef %5723) #10
  %5725 = call ptr @__errno_location() #11
  %5726 = load i32, ptr %5725, align 4, !tbaa !5
  %5727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5714, ptr noundef @.str.5, i32 noundef %5715, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 292, ptr noundef %5718, ptr noundef %5721, ptr noundef %5724, i32 noundef %5726) #10
  br label %5728

5728:                                             ; preds = %5711, %5694
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #10
  br label %5729

5729:                                             ; preds = %5728
  br label %5730

5730:                                             ; preds = %5729
  call void @exit(i32 noundef 1) #12
  unreachable

5731:                                             ; No predecessors!
  br label %5732

5732:                                             ; preds = %5731
  br label %5733

5733:                                             ; preds = %5732, %5675
  br label %5734

5734:                                             ; preds = %5733
  br label %5735

5735:                                             ; preds = %5734
  br label %5736

5736:                                             ; preds = %5735
  %5737 = load i32, ptr @test_count, align 4, !tbaa !5
  %5738 = add nsw i32 %5737, 1
  store i32 %5738, ptr @test_count, align 4, !tbaa !5
  %5739 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %130, i32 noundef 0)
  %5740 = icmp eq i32 %5739, -1
  br i1 %5740, label %5741, label %5794

5741:                                             ; preds = %5736
  br label %5742

5742:                                             ; preds = %5741
  br label %5743

5743:                                             ; preds = %5742
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %5744 = call ptr @__errno_location() #11
  %5745 = load i32, ptr %5744, align 4, !tbaa !5
  store i32 %5745, ptr %142, align 4, !tbaa !5
  %5746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5747 = call i32 @s2n_print_stacktrace(ptr noundef %5746)
  %5748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5749 = trunc i8 %5748 to i1
  br i1 %5749, label %5750, label %5772

5750:                                             ; preds = %5743
  %5751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5752 = call i32 @fileno(ptr noundef %5751) #10
  %5753 = call i32 @isatty(i32 noundef %5752) #10
  %5754 = icmp ne i32 %5753, 0
  br i1 %5754, label %5755, label %5772

5755:                                             ; preds = %5750
  %5756 = load i32, ptr %142, align 4, !tbaa !5
  %5757 = call ptr @__errno_location() #11
  store i32 %5756, ptr %5757, align 4, !tbaa !5
  %5758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5759 = load i32, ptr @test_count, align 4, !tbaa !5
  %5760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5761 = load i32, ptr %5760, align 4, !tbaa !5
  %5762 = call ptr @s2n_strerror(i32 noundef %5761, ptr noundef @.str.4)
  %5763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5764 = load i32, ptr %5763, align 4, !tbaa !5
  %5765 = call ptr @s2n_strerror_debug(i32 noundef %5764, ptr noundef @.str.4)
  %5766 = call ptr @__errno_location() #11
  %5767 = load i32, ptr %5766, align 4, !tbaa !5
  %5768 = call ptr @strerror(i32 noundef %5767) #10
  %5769 = call ptr @__errno_location() #11
  %5770 = load i32, ptr %5769, align 4, !tbaa !5
  %5771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5758, ptr noundef @.str.2, i32 noundef %5759, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 293, ptr noundef %5762, ptr noundef %5765, ptr noundef %5768, i32 noundef %5770) #10
  br label %5789

5772:                                             ; preds = %5750, %5743
  %5773 = load i32, ptr %142, align 4, !tbaa !5
  %5774 = call ptr @__errno_location() #11
  store i32 %5773, ptr %5774, align 4, !tbaa !5
  %5775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5776 = load i32, ptr @test_count, align 4, !tbaa !5
  %5777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5778 = load i32, ptr %5777, align 4, !tbaa !5
  %5779 = call ptr @s2n_strerror(i32 noundef %5778, ptr noundef @.str.4)
  %5780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5781 = load i32, ptr %5780, align 4, !tbaa !5
  %5782 = call ptr @s2n_strerror_debug(i32 noundef %5781, ptr noundef @.str.4)
  %5783 = call ptr @__errno_location() #11
  %5784 = load i32, ptr %5783, align 4, !tbaa !5
  %5785 = call ptr @strerror(i32 noundef %5784) #10
  %5786 = call ptr @__errno_location() #11
  %5787 = load i32, ptr %5786, align 4, !tbaa !5
  %5788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5775, ptr noundef @.str.5, i32 noundef %5776, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 293, ptr noundef %5779, ptr noundef %5782, ptr noundef %5785, i32 noundef %5787) #10
  br label %5789

5789:                                             ; preds = %5772, %5755
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %5790

5790:                                             ; preds = %5789
  br label %5791

5791:                                             ; preds = %5790
  call void @exit(i32 noundef 1) #12
  unreachable

5792:                                             ; No predecessors!
  br label %5793

5793:                                             ; preds = %5792
  br label %5794

5794:                                             ; preds = %5793, %5736
  br label %5795

5795:                                             ; preds = %5794
  br label %5796

5796:                                             ; preds = %5795
  br label %5797

5797:                                             ; preds = %5796
  %5798 = load i32, ptr @test_count, align 4, !tbaa !5
  %5799 = add nsw i32 %5798, 1
  store i32 %5799, ptr @test_count, align 4, !tbaa !5
  %5800 = load ptr, ptr %127, align 8, !tbaa !9
  %5801 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %130, ptr noundef %129, ptr noundef %5800)
  %5802 = icmp eq i32 %5801, -1
  br i1 %5802, label %5803, label %5856

5803:                                             ; preds = %5797
  br label %5804

5804:                                             ; preds = %5803
  br label %5805

5805:                                             ; preds = %5804
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #10
  %5806 = call ptr @__errno_location() #11
  %5807 = load i32, ptr %5806, align 4, !tbaa !5
  store i32 %5807, ptr %143, align 4, !tbaa !5
  %5808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5809 = call i32 @s2n_print_stacktrace(ptr noundef %5808)
  %5810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5811 = trunc i8 %5810 to i1
  br i1 %5811, label %5812, label %5834

5812:                                             ; preds = %5805
  %5813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5814 = call i32 @fileno(ptr noundef %5813) #10
  %5815 = call i32 @isatty(i32 noundef %5814) #10
  %5816 = icmp ne i32 %5815, 0
  br i1 %5816, label %5817, label %5834

5817:                                             ; preds = %5812
  %5818 = load i32, ptr %143, align 4, !tbaa !5
  %5819 = call ptr @__errno_location() #11
  store i32 %5818, ptr %5819, align 4, !tbaa !5
  %5820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5821 = load i32, ptr @test_count, align 4, !tbaa !5
  %5822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5823 = load i32, ptr %5822, align 4, !tbaa !5
  %5824 = call ptr @s2n_strerror(i32 noundef %5823, ptr noundef @.str.4)
  %5825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5826 = load i32, ptr %5825, align 4, !tbaa !5
  %5827 = call ptr @s2n_strerror_debug(i32 noundef %5826, ptr noundef @.str.4)
  %5828 = call ptr @__errno_location() #11
  %5829 = load i32, ptr %5828, align 4, !tbaa !5
  %5830 = call ptr @strerror(i32 noundef %5829) #10
  %5831 = call ptr @__errno_location() #11
  %5832 = load i32, ptr %5831, align 4, !tbaa !5
  %5833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5820, ptr noundef @.str.2, i32 noundef %5821, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 294, ptr noundef %5824, ptr noundef %5827, ptr noundef %5830, i32 noundef %5832) #10
  br label %5851

5834:                                             ; preds = %5812, %5805
  %5835 = load i32, ptr %143, align 4, !tbaa !5
  %5836 = call ptr @__errno_location() #11
  store i32 %5835, ptr %5836, align 4, !tbaa !5
  %5837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5838 = load i32, ptr @test_count, align 4, !tbaa !5
  %5839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5840 = load i32, ptr %5839, align 4, !tbaa !5
  %5841 = call ptr @s2n_strerror(i32 noundef %5840, ptr noundef @.str.4)
  %5842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5843 = load i32, ptr %5842, align 4, !tbaa !5
  %5844 = call ptr @s2n_strerror_debug(i32 noundef %5843, ptr noundef @.str.4)
  %5845 = call ptr @__errno_location() #11
  %5846 = load i32, ptr %5845, align 4, !tbaa !5
  %5847 = call ptr @strerror(i32 noundef %5846) #10
  %5848 = call ptr @__errno_location() #11
  %5849 = load i32, ptr %5848, align 4, !tbaa !5
  %5850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5837, ptr noundef @.str.5, i32 noundef %5838, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 294, ptr noundef %5841, ptr noundef %5844, ptr noundef %5847, i32 noundef %5849) #10
  br label %5851

5851:                                             ; preds = %5834, %5817
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #10
  br label %5852

5852:                                             ; preds = %5851
  br label %5853

5853:                                             ; preds = %5852
  call void @exit(i32 noundef 1) #12
  unreachable

5854:                                             ; No predecessors!
  br label %5855

5855:                                             ; preds = %5854
  br label %5856

5856:                                             ; preds = %5855, %5797
  br label %5857

5857:                                             ; preds = %5856
  br label %5858

5858:                                             ; preds = %5857
  br label %5859

5859:                                             ; preds = %5858
  %5860 = load i32, ptr @test_count, align 4, !tbaa !5
  %5861 = add nsw i32 %5860, 1
  store i32 %5861, ptr @test_count, align 4, !tbaa !5
  %5862 = load ptr, ptr %128, align 8, !tbaa !9
  %5863 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %129, ptr noundef %130, ptr noundef %5862)
  %5864 = icmp eq i32 %5863, -1
  br i1 %5864, label %5865, label %5918

5865:                                             ; preds = %5859
  br label %5866

5866:                                             ; preds = %5865
  br label %5867

5867:                                             ; preds = %5866
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #10
  %5868 = call ptr @__errno_location() #11
  %5869 = load i32, ptr %5868, align 4, !tbaa !5
  store i32 %5869, ptr %144, align 4, !tbaa !5
  %5870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5871 = call i32 @s2n_print_stacktrace(ptr noundef %5870)
  %5872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5873 = trunc i8 %5872 to i1
  br i1 %5873, label %5874, label %5896

5874:                                             ; preds = %5867
  %5875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5876 = call i32 @fileno(ptr noundef %5875) #10
  %5877 = call i32 @isatty(i32 noundef %5876) #10
  %5878 = icmp ne i32 %5877, 0
  br i1 %5878, label %5879, label %5896

5879:                                             ; preds = %5874
  %5880 = load i32, ptr %144, align 4, !tbaa !5
  %5881 = call ptr @__errno_location() #11
  store i32 %5880, ptr %5881, align 4, !tbaa !5
  %5882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5883 = load i32, ptr @test_count, align 4, !tbaa !5
  %5884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5885 = load i32, ptr %5884, align 4, !tbaa !5
  %5886 = call ptr @s2n_strerror(i32 noundef %5885, ptr noundef @.str.4)
  %5887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5888 = load i32, ptr %5887, align 4, !tbaa !5
  %5889 = call ptr @s2n_strerror_debug(i32 noundef %5888, ptr noundef @.str.4)
  %5890 = call ptr @__errno_location() #11
  %5891 = load i32, ptr %5890, align 4, !tbaa !5
  %5892 = call ptr @strerror(i32 noundef %5891) #10
  %5893 = call ptr @__errno_location() #11
  %5894 = load i32, ptr %5893, align 4, !tbaa !5
  %5895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5882, ptr noundef @.str.2, i32 noundef %5883, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 295, ptr noundef %5886, ptr noundef %5889, ptr noundef %5892, i32 noundef %5894) #10
  br label %5913

5896:                                             ; preds = %5874, %5867
  %5897 = load i32, ptr %144, align 4, !tbaa !5
  %5898 = call ptr @__errno_location() #11
  store i32 %5897, ptr %5898, align 4, !tbaa !5
  %5899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5900 = load i32, ptr @test_count, align 4, !tbaa !5
  %5901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5902 = load i32, ptr %5901, align 4, !tbaa !5
  %5903 = call ptr @s2n_strerror(i32 noundef %5902, ptr noundef @.str.4)
  %5904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5905 = load i32, ptr %5904, align 4, !tbaa !5
  %5906 = call ptr @s2n_strerror_debug(i32 noundef %5905, ptr noundef @.str.4)
  %5907 = call ptr @__errno_location() #11
  %5908 = load i32, ptr %5907, align 4, !tbaa !5
  %5909 = call ptr @strerror(i32 noundef %5908) #10
  %5910 = call ptr @__errno_location() #11
  %5911 = load i32, ptr %5910, align 4, !tbaa !5
  %5912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5899, ptr noundef @.str.5, i32 noundef %5900, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 295, ptr noundef %5903, ptr noundef %5906, ptr noundef %5909, i32 noundef %5911) #10
  br label %5913

5913:                                             ; preds = %5896, %5879
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #10
  br label %5914

5914:                                             ; preds = %5913
  br label %5915

5915:                                             ; preds = %5914
  call void @exit(i32 noundef 1) #12
  unreachable

5916:                                             ; No predecessors!
  br label %5917

5917:                                             ; preds = %5916
  br label %5918

5918:                                             ; preds = %5917, %5859
  br label %5919

5919:                                             ; preds = %5918
  br label %5920

5920:                                             ; preds = %5919
  br label %5921

5921:                                             ; preds = %5920
  br label %5922

5922:                                             ; preds = %5921
  %5923 = load i32, ptr @test_count, align 4, !tbaa !5
  %5924 = add nsw i32 %5923, 1
  store i32 %5924, ptr @test_count, align 4, !tbaa !5
  %5925 = load ptr, ptr %128, align 8, !tbaa !9
  %5926 = load ptr, ptr %127, align 8, !tbaa !9
  %5927 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5925, ptr noundef %5926)
  %5928 = icmp eq i32 %5927, -1
  br i1 %5928, label %5982, label %5929

5929:                                             ; preds = %5922
  br label %5930

5930:                                             ; preds = %5929
  br label %5931

5931:                                             ; preds = %5930
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #10
  %5932 = call ptr @__errno_location() #11
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  store i32 %5933, ptr %145, align 4, !tbaa !5
  %5934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5935 = call i32 @s2n_print_stacktrace(ptr noundef %5934)
  %5936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5937 = trunc i8 %5936 to i1
  br i1 %5937, label %5938, label %5960

5938:                                             ; preds = %5931
  %5939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5940 = call i32 @fileno(ptr noundef %5939) #10
  %5941 = call i32 @isatty(i32 noundef %5940) #10
  %5942 = icmp ne i32 %5941, 0
  br i1 %5942, label %5943, label %5960

5943:                                             ; preds = %5938
  %5944 = load i32, ptr %145, align 4, !tbaa !5
  %5945 = call ptr @__errno_location() #11
  store i32 %5944, ptr %5945, align 4, !tbaa !5
  %5946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5947 = load i32, ptr @test_count, align 4, !tbaa !5
  %5948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5949 = load i32, ptr %5948, align 4, !tbaa !5
  %5950 = call ptr @s2n_strerror(i32 noundef %5949, ptr noundef @.str.4)
  %5951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5952 = load i32, ptr %5951, align 4, !tbaa !5
  %5953 = call ptr @s2n_strerror_debug(i32 noundef %5952, ptr noundef @.str.4)
  %5954 = call ptr @__errno_location() #11
  %5955 = load i32, ptr %5954, align 4, !tbaa !5
  %5956 = call ptr @strerror(i32 noundef %5955) #10
  %5957 = call ptr @__errno_location() #11
  %5958 = load i32, ptr %5957, align 4, !tbaa !5
  %5959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5946, ptr noundef @.str.2, i32 noundef %5947, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 297, ptr noundef %5950, ptr noundef %5953, ptr noundef %5956, i32 noundef %5958) #10
  br label %5977

5960:                                             ; preds = %5938, %5931
  %5961 = load i32, ptr %145, align 4, !tbaa !5
  %5962 = call ptr @__errno_location() #11
  store i32 %5961, ptr %5962, align 4, !tbaa !5
  %5963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5964 = load i32, ptr @test_count, align 4, !tbaa !5
  %5965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5966 = load i32, ptr %5965, align 4, !tbaa !5
  %5967 = call ptr @s2n_strerror(i32 noundef %5966, ptr noundef @.str.4)
  %5968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5969 = load i32, ptr %5968, align 4, !tbaa !5
  %5970 = call ptr @s2n_strerror_debug(i32 noundef %5969, ptr noundef @.str.4)
  %5971 = call ptr @__errno_location() #11
  %5972 = load i32, ptr %5971, align 4, !tbaa !5
  %5973 = call ptr @strerror(i32 noundef %5972) #10
  %5974 = call ptr @__errno_location() #11
  %5975 = load i32, ptr %5974, align 4, !tbaa !5
  %5976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5963, ptr noundef @.str.5, i32 noundef %5964, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 297, ptr noundef %5967, ptr noundef %5970, ptr noundef %5973, i32 noundef %5975) #10
  br label %5977

5977:                                             ; preds = %5960, %5943
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #10
  br label %5978

5978:                                             ; preds = %5977
  br label %5979

5979:                                             ; preds = %5978
  call void @exit(i32 noundef 1) #12
  unreachable

5980:                                             ; No predecessors!
  br label %5981

5981:                                             ; preds = %5980
  br label %5982

5982:                                             ; preds = %5981, %5922
  br label %5983

5983:                                             ; preds = %5982
  br label %5984

5984:                                             ; preds = %5983
  br label %5985

5985:                                             ; preds = %5984
  %5986 = load i32, ptr @test_count, align 4, !tbaa !5
  %5987 = add nsw i32 %5986, 1
  store i32 %5987, ptr @test_count, align 4, !tbaa !5
  %5988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5989 = load i32, ptr %5988, align 4, !tbaa !5
  %5990 = icmp eq i32 %5989, 0
  br i1 %5990, label %5991, label %6044

5991:                                             ; preds = %5985
  br label %5992

5992:                                             ; preds = %5991
  br label %5993

5993:                                             ; preds = %5992
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #10
  %5994 = call ptr @__errno_location() #11
  %5995 = load i32, ptr %5994, align 4, !tbaa !5
  store i32 %5995, ptr %146, align 4, !tbaa !5
  %5996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5997 = call i32 @s2n_print_stacktrace(ptr noundef %5996)
  %5998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5999 = trunc i8 %5998 to i1
  br i1 %5999, label %6000, label %6022

6000:                                             ; preds = %5993
  %6001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6002 = call i32 @fileno(ptr noundef %6001) #10
  %6003 = call i32 @isatty(i32 noundef %6002) #10
  %6004 = icmp ne i32 %6003, 0
  br i1 %6004, label %6005, label %6022

6005:                                             ; preds = %6000
  %6006 = load i32, ptr %146, align 4, !tbaa !5
  %6007 = call ptr @__errno_location() #11
  store i32 %6006, ptr %6007, align 4, !tbaa !5
  %6008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6009 = load i32, ptr @test_count, align 4, !tbaa !5
  %6010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6011 = load i32, ptr %6010, align 4, !tbaa !5
  %6012 = call ptr @s2n_strerror(i32 noundef %6011, ptr noundef @.str.4)
  %6013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6014 = load i32, ptr %6013, align 4, !tbaa !5
  %6015 = call ptr @s2n_strerror_debug(i32 noundef %6014, ptr noundef @.str.4)
  %6016 = call ptr @__errno_location() #11
  %6017 = load i32, ptr %6016, align 4, !tbaa !5
  %6018 = call ptr @strerror(i32 noundef %6017) #10
  %6019 = call ptr @__errno_location() #11
  %6020 = load i32, ptr %6019, align 4, !tbaa !5
  %6021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6008, ptr noundef @.str.2, i32 noundef %6009, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6012, ptr noundef %6015, ptr noundef %6018, i32 noundef %6020) #10
  br label %6039

6022:                                             ; preds = %6000, %5993
  %6023 = load i32, ptr %146, align 4, !tbaa !5
  %6024 = call ptr @__errno_location() #11
  store i32 %6023, ptr %6024, align 4, !tbaa !5
  %6025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6026 = load i32, ptr @test_count, align 4, !tbaa !5
  %6027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6028 = load i32, ptr %6027, align 4, !tbaa !5
  %6029 = call ptr @s2n_strerror(i32 noundef %6028, ptr noundef @.str.4)
  %6030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6031 = load i32, ptr %6030, align 4, !tbaa !5
  %6032 = call ptr @s2n_strerror_debug(i32 noundef %6031, ptr noundef @.str.4)
  %6033 = call ptr @__errno_location() #11
  %6034 = load i32, ptr %6033, align 4, !tbaa !5
  %6035 = call ptr @strerror(i32 noundef %6034) #10
  %6036 = call ptr @__errno_location() #11
  %6037 = load i32, ptr %6036, align 4, !tbaa !5
  %6038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6025, ptr noundef @.str.5, i32 noundef %6026, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6029, ptr noundef %6032, ptr noundef %6035, i32 noundef %6037) #10
  br label %6039

6039:                                             ; preds = %6022, %6005
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #10
  br label %6040

6040:                                             ; preds = %6039
  br label %6041

6041:                                             ; preds = %6040
  call void @exit(i32 noundef 1) #12
  unreachable

6042:                                             ; No predecessors!
  br label %6043

6043:                                             ; preds = %6042
  br label %6044

6044:                                             ; preds = %6043, %5985
  br label %6045

6045:                                             ; preds = %6044
  br label %6046

6046:                                             ; preds = %6045
  br label %6047

6047:                                             ; preds = %6046
  %6048 = load i32, ptr @test_count, align 4, !tbaa !5
  %6049 = add nsw i32 %6048, 1
  store i32 %6049, ptr @test_count, align 4, !tbaa !5
  %6050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6051 = load i32, ptr %6050, align 4, !tbaa !5
  %6052 = call ptr @s2n_strerror_debug(i32 noundef %6051, ptr noundef @.str.4)
  %6053 = icmp eq ptr %6052, null
  br i1 %6053, label %6054, label %6107

6054:                                             ; preds = %6047
  br label %6055

6055:                                             ; preds = %6054
  br label %6056

6056:                                             ; preds = %6055
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #10
  %6057 = call ptr @__errno_location() #11
  %6058 = load i32, ptr %6057, align 4, !tbaa !5
  store i32 %6058, ptr %147, align 4, !tbaa !5
  %6059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6060 = call i32 @s2n_print_stacktrace(ptr noundef %6059)
  %6061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6062 = trunc i8 %6061 to i1
  br i1 %6062, label %6063, label %6085

6063:                                             ; preds = %6056
  %6064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6065 = call i32 @fileno(ptr noundef %6064) #10
  %6066 = call i32 @isatty(i32 noundef %6065) #10
  %6067 = icmp ne i32 %6066, 0
  br i1 %6067, label %6068, label %6085

6068:                                             ; preds = %6063
  %6069 = load i32, ptr %147, align 4, !tbaa !5
  %6070 = call ptr @__errno_location() #11
  store i32 %6069, ptr %6070, align 4, !tbaa !5
  %6071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6072 = load i32, ptr @test_count, align 4, !tbaa !5
  %6073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6074 = load i32, ptr %6073, align 4, !tbaa !5
  %6075 = call ptr @s2n_strerror(i32 noundef %6074, ptr noundef @.str.4)
  %6076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6077 = load i32, ptr %6076, align 4, !tbaa !5
  %6078 = call ptr @s2n_strerror_debug(i32 noundef %6077, ptr noundef @.str.4)
  %6079 = call ptr @__errno_location() #11
  %6080 = load i32, ptr %6079, align 4, !tbaa !5
  %6081 = call ptr @strerror(i32 noundef %6080) #10
  %6082 = call ptr @__errno_location() #11
  %6083 = load i32, ptr %6082, align 4, !tbaa !5
  %6084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6071, ptr noundef @.str.2, i32 noundef %6072, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6075, ptr noundef %6078, ptr noundef %6081, i32 noundef %6083) #10
  br label %6102

6085:                                             ; preds = %6063, %6056
  %6086 = load i32, ptr %147, align 4, !tbaa !5
  %6087 = call ptr @__errno_location() #11
  store i32 %6086, ptr %6087, align 4, !tbaa !5
  %6088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6089 = load i32, ptr @test_count, align 4, !tbaa !5
  %6090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6091 = load i32, ptr %6090, align 4, !tbaa !5
  %6092 = call ptr @s2n_strerror(i32 noundef %6091, ptr noundef @.str.4)
  %6093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6094 = load i32, ptr %6093, align 4, !tbaa !5
  %6095 = call ptr @s2n_strerror_debug(i32 noundef %6094, ptr noundef @.str.4)
  %6096 = call ptr @__errno_location() #11
  %6097 = load i32, ptr %6096, align 4, !tbaa !5
  %6098 = call ptr @strerror(i32 noundef %6097) #10
  %6099 = call ptr @__errno_location() #11
  %6100 = load i32, ptr %6099, align 4, !tbaa !5
  %6101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6088, ptr noundef @.str.5, i32 noundef %6089, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6092, ptr noundef %6095, ptr noundef %6098, i32 noundef %6100) #10
  br label %6102

6102:                                             ; preds = %6085, %6068
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %6103

6103:                                             ; preds = %6102
  br label %6104

6104:                                             ; preds = %6103
  call void @exit(i32 noundef 1) #12
  unreachable

6105:                                             ; No predecessors!
  br label %6106

6106:                                             ; preds = %6105
  br label %6107

6107:                                             ; preds = %6106, %6047
  br label %6108

6108:                                             ; preds = %6107
  br label %6109

6109:                                             ; preds = %6108
  br label %6110

6110:                                             ; preds = %6109
  %6111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6111, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6112 = call ptr @__errno_location() #11
  store i32 0, ptr %6112, align 4, !tbaa !5
  br label %6113

6113:                                             ; preds = %6110
  br label %6114

6114:                                             ; preds = %6113
  br label %6115

6115:                                             ; preds = %6114
  br label %6116

6116:                                             ; preds = %6115
  br label %6117

6117:                                             ; preds = %6116
  %6118 = load i32, ptr @test_count, align 4, !tbaa !5
  %6119 = add nsw i32 %6118, 1
  store i32 %6119, ptr @test_count, align 4, !tbaa !5
  %6120 = load ptr, ptr %128, align 8, !tbaa !9
  %6121 = call i32 @s2n_connection_client_cert_used(ptr noundef %6120)
  %6122 = icmp ne i32 %6121, 0
  br i1 %6122, label %6123, label %6176

6123:                                             ; preds = %6117
  br label %6124

6124:                                             ; preds = %6123
  br label %6125

6125:                                             ; preds = %6124
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #10
  %6126 = call ptr @__errno_location() #11
  %6127 = load i32, ptr %6126, align 4, !tbaa !5
  store i32 %6127, ptr %148, align 4, !tbaa !5
  %6128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6129 = call i32 @s2n_print_stacktrace(ptr noundef %6128)
  %6130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6131 = trunc i8 %6130 to i1
  br i1 %6131, label %6132, label %6154

6132:                                             ; preds = %6125
  %6133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6134 = call i32 @fileno(ptr noundef %6133) #10
  %6135 = call i32 @isatty(i32 noundef %6134) #10
  %6136 = icmp ne i32 %6135, 0
  br i1 %6136, label %6137, label %6154

6137:                                             ; preds = %6132
  %6138 = load i32, ptr %148, align 4, !tbaa !5
  %6139 = call ptr @__errno_location() #11
  store i32 %6138, ptr %6139, align 4, !tbaa !5
  %6140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6141 = load i32, ptr @test_count, align 4, !tbaa !5
  %6142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6143 = load i32, ptr %6142, align 4, !tbaa !5
  %6144 = call ptr @s2n_strerror(i32 noundef %6143, ptr noundef @.str.4)
  %6145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6146 = load i32, ptr %6145, align 4, !tbaa !5
  %6147 = call ptr @s2n_strerror_debug(i32 noundef %6146, ptr noundef @.str.4)
  %6148 = call ptr @__errno_location() #11
  %6149 = load i32, ptr %6148, align 4, !tbaa !5
  %6150 = call ptr @strerror(i32 noundef %6149) #10
  %6151 = call ptr @__errno_location() #11
  %6152 = load i32, ptr %6151, align 4, !tbaa !5
  %6153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6140, ptr noundef @.str.2, i32 noundef %6141, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 300, ptr noundef %6144, ptr noundef %6147, ptr noundef %6150, i32 noundef %6152) #10
  br label %6171

6154:                                             ; preds = %6132, %6125
  %6155 = load i32, ptr %148, align 4, !tbaa !5
  %6156 = call ptr @__errno_location() #11
  store i32 %6155, ptr %6156, align 4, !tbaa !5
  %6157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6158 = load i32, ptr @test_count, align 4, !tbaa !5
  %6159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6160 = load i32, ptr %6159, align 4, !tbaa !5
  %6161 = call ptr @s2n_strerror(i32 noundef %6160, ptr noundef @.str.4)
  %6162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6163 = load i32, ptr %6162, align 4, !tbaa !5
  %6164 = call ptr @s2n_strerror_debug(i32 noundef %6163, ptr noundef @.str.4)
  %6165 = call ptr @__errno_location() #11
  %6166 = load i32, ptr %6165, align 4, !tbaa !5
  %6167 = call ptr @strerror(i32 noundef %6166) #10
  %6168 = call ptr @__errno_location() #11
  %6169 = load i32, ptr %6168, align 4, !tbaa !5
  %6170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6157, ptr noundef @.str.5, i32 noundef %6158, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 300, ptr noundef %6161, ptr noundef %6164, ptr noundef %6167, i32 noundef %6169) #10
  br label %6171

6171:                                             ; preds = %6154, %6137
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #10
  br label %6172

6172:                                             ; preds = %6171
  br label %6173

6173:                                             ; preds = %6172
  call void @exit(i32 noundef 1) #12
  unreachable

6174:                                             ; No predecessors!
  br label %6175

6175:                                             ; preds = %6174
  br label %6176

6176:                                             ; preds = %6175, %6117
  br label %6177

6177:                                             ; preds = %6176
  br label %6178

6178:                                             ; preds = %6177
  br label %6179

6179:                                             ; preds = %6178
  %6180 = load i32, ptr @test_count, align 4, !tbaa !5
  %6181 = add nsw i32 %6180, 1
  store i32 %6181, ptr @test_count, align 4, !tbaa !5
  %6182 = load ptr, ptr %127, align 8, !tbaa !9
  %6183 = call i32 @s2n_connection_client_cert_used(ptr noundef %6182)
  %6184 = icmp ne i32 %6183, 0
  br i1 %6184, label %6185, label %6238

6185:                                             ; preds = %6179
  br label %6186

6186:                                             ; preds = %6185
  br label %6187

6187:                                             ; preds = %6186
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #10
  %6188 = call ptr @__errno_location() #11
  %6189 = load i32, ptr %6188, align 4, !tbaa !5
  store i32 %6189, ptr %149, align 4, !tbaa !5
  %6190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6191 = call i32 @s2n_print_stacktrace(ptr noundef %6190)
  %6192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6193 = trunc i8 %6192 to i1
  br i1 %6193, label %6194, label %6216

6194:                                             ; preds = %6187
  %6195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6196 = call i32 @fileno(ptr noundef %6195) #10
  %6197 = call i32 @isatty(i32 noundef %6196) #10
  %6198 = icmp ne i32 %6197, 0
  br i1 %6198, label %6199, label %6216

6199:                                             ; preds = %6194
  %6200 = load i32, ptr %149, align 4, !tbaa !5
  %6201 = call ptr @__errno_location() #11
  store i32 %6200, ptr %6201, align 4, !tbaa !5
  %6202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6203 = load i32, ptr @test_count, align 4, !tbaa !5
  %6204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6205 = load i32, ptr %6204, align 4, !tbaa !5
  %6206 = call ptr @s2n_strerror(i32 noundef %6205, ptr noundef @.str.4)
  %6207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6208 = load i32, ptr %6207, align 4, !tbaa !5
  %6209 = call ptr @s2n_strerror_debug(i32 noundef %6208, ptr noundef @.str.4)
  %6210 = call ptr @__errno_location() #11
  %6211 = load i32, ptr %6210, align 4, !tbaa !5
  %6212 = call ptr @strerror(i32 noundef %6211) #10
  %6213 = call ptr @__errno_location() #11
  %6214 = load i32, ptr %6213, align 4, !tbaa !5
  %6215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6202, ptr noundef @.str.2, i32 noundef %6203, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6206, ptr noundef %6209, ptr noundef %6212, i32 noundef %6214) #10
  br label %6233

6216:                                             ; preds = %6194, %6187
  %6217 = load i32, ptr %149, align 4, !tbaa !5
  %6218 = call ptr @__errno_location() #11
  store i32 %6217, ptr %6218, align 4, !tbaa !5
  %6219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6220 = load i32, ptr @test_count, align 4, !tbaa !5
  %6221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6222 = load i32, ptr %6221, align 4, !tbaa !5
  %6223 = call ptr @s2n_strerror(i32 noundef %6222, ptr noundef @.str.4)
  %6224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6225 = load i32, ptr %6224, align 4, !tbaa !5
  %6226 = call ptr @s2n_strerror_debug(i32 noundef %6225, ptr noundef @.str.4)
  %6227 = call ptr @__errno_location() #11
  %6228 = load i32, ptr %6227, align 4, !tbaa !5
  %6229 = call ptr @strerror(i32 noundef %6228) #10
  %6230 = call ptr @__errno_location() #11
  %6231 = load i32, ptr %6230, align 4, !tbaa !5
  %6232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6219, ptr noundef @.str.5, i32 noundef %6220, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6223, ptr noundef %6226, ptr noundef %6229, i32 noundef %6231) #10
  br label %6233

6233:                                             ; preds = %6216, %6199
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %6234

6234:                                             ; preds = %6233
  br label %6235

6235:                                             ; preds = %6234
  call void @exit(i32 noundef 1) #12
  unreachable

6236:                                             ; No predecessors!
  br label %6237

6237:                                             ; preds = %6236
  br label %6238

6238:                                             ; preds = %6237, %6179
  br label %6239

6239:                                             ; preds = %6238
  br label %6240

6240:                                             ; preds = %6239
  br label %6241

6241:                                             ; preds = %6240
  %6242 = load i32, ptr @test_count, align 4, !tbaa !5
  %6243 = add nsw i32 %6242, 1
  store i32 %6243, ptr @test_count, align 4, !tbaa !5
  %6244 = load ptr, ptr %127, align 8, !tbaa !9
  %6245 = call i32 @s2n_connection_free(ptr noundef %6244)
  %6246 = icmp eq i32 %6245, -1
  br i1 %6246, label %6247, label %6300

6247:                                             ; preds = %6241
  br label %6248

6248:                                             ; preds = %6247
  br label %6249

6249:                                             ; preds = %6248
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #10
  %6250 = call ptr @__errno_location() #11
  %6251 = load i32, ptr %6250, align 4, !tbaa !5
  store i32 %6251, ptr %150, align 4, !tbaa !5
  %6252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6253 = call i32 @s2n_print_stacktrace(ptr noundef %6252)
  %6254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6255 = trunc i8 %6254 to i1
  br i1 %6255, label %6256, label %6278

6256:                                             ; preds = %6249
  %6257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6258 = call i32 @fileno(ptr noundef %6257) #10
  %6259 = call i32 @isatty(i32 noundef %6258) #10
  %6260 = icmp ne i32 %6259, 0
  br i1 %6260, label %6261, label %6278

6261:                                             ; preds = %6256
  %6262 = load i32, ptr %150, align 4, !tbaa !5
  %6263 = call ptr @__errno_location() #11
  store i32 %6262, ptr %6263, align 4, !tbaa !5
  %6264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6265 = load i32, ptr @test_count, align 4, !tbaa !5
  %6266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6267 = load i32, ptr %6266, align 4, !tbaa !5
  %6268 = call ptr @s2n_strerror(i32 noundef %6267, ptr noundef @.str.4)
  %6269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6270 = load i32, ptr %6269, align 4, !tbaa !5
  %6271 = call ptr @s2n_strerror_debug(i32 noundef %6270, ptr noundef @.str.4)
  %6272 = call ptr @__errno_location() #11
  %6273 = load i32, ptr %6272, align 4, !tbaa !5
  %6274 = call ptr @strerror(i32 noundef %6273) #10
  %6275 = call ptr @__errno_location() #11
  %6276 = load i32, ptr %6275, align 4, !tbaa !5
  %6277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6264, ptr noundef @.str.2, i32 noundef %6265, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 303, ptr noundef %6268, ptr noundef %6271, ptr noundef %6274, i32 noundef %6276) #10
  br label %6295

6278:                                             ; preds = %6256, %6249
  %6279 = load i32, ptr %150, align 4, !tbaa !5
  %6280 = call ptr @__errno_location() #11
  store i32 %6279, ptr %6280, align 4, !tbaa !5
  %6281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6282 = load i32, ptr @test_count, align 4, !tbaa !5
  %6283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6284 = load i32, ptr %6283, align 4, !tbaa !5
  %6285 = call ptr @s2n_strerror(i32 noundef %6284, ptr noundef @.str.4)
  %6286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6287 = load i32, ptr %6286, align 4, !tbaa !5
  %6288 = call ptr @s2n_strerror_debug(i32 noundef %6287, ptr noundef @.str.4)
  %6289 = call ptr @__errno_location() #11
  %6290 = load i32, ptr %6289, align 4, !tbaa !5
  %6291 = call ptr @strerror(i32 noundef %6290) #10
  %6292 = call ptr @__errno_location() #11
  %6293 = load i32, ptr %6292, align 4, !tbaa !5
  %6294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6281, ptr noundef @.str.5, i32 noundef %6282, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 303, ptr noundef %6285, ptr noundef %6288, ptr noundef %6291, i32 noundef %6293) #10
  br label %6295

6295:                                             ; preds = %6278, %6261
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #10
  br label %6296

6296:                                             ; preds = %6295
  br label %6297

6297:                                             ; preds = %6296
  call void @exit(i32 noundef 1) #12
  unreachable

6298:                                             ; No predecessors!
  br label %6299

6299:                                             ; preds = %6298
  br label %6300

6300:                                             ; preds = %6299, %6241
  br label %6301

6301:                                             ; preds = %6300
  br label %6302

6302:                                             ; preds = %6301
  br label %6303

6303:                                             ; preds = %6302
  %6304 = load i32, ptr @test_count, align 4, !tbaa !5
  %6305 = add nsw i32 %6304, 1
  store i32 %6305, ptr @test_count, align 4, !tbaa !5
  %6306 = load ptr, ptr %128, align 8, !tbaa !9
  %6307 = call i32 @s2n_connection_free(ptr noundef %6306)
  %6308 = icmp eq i32 %6307, -1
  br i1 %6308, label %6309, label %6362

6309:                                             ; preds = %6303
  br label %6310

6310:                                             ; preds = %6309
  br label %6311

6311:                                             ; preds = %6310
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  %6312 = call ptr @__errno_location() #11
  %6313 = load i32, ptr %6312, align 4, !tbaa !5
  store i32 %6313, ptr %151, align 4, !tbaa !5
  %6314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6315 = call i32 @s2n_print_stacktrace(ptr noundef %6314)
  %6316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6317 = trunc i8 %6316 to i1
  br i1 %6317, label %6318, label %6340

6318:                                             ; preds = %6311
  %6319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6320 = call i32 @fileno(ptr noundef %6319) #10
  %6321 = call i32 @isatty(i32 noundef %6320) #10
  %6322 = icmp ne i32 %6321, 0
  br i1 %6322, label %6323, label %6340

6323:                                             ; preds = %6318
  %6324 = load i32, ptr %151, align 4, !tbaa !5
  %6325 = call ptr @__errno_location() #11
  store i32 %6324, ptr %6325, align 4, !tbaa !5
  %6326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6327 = load i32, ptr @test_count, align 4, !tbaa !5
  %6328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6329 = load i32, ptr %6328, align 4, !tbaa !5
  %6330 = call ptr @s2n_strerror(i32 noundef %6329, ptr noundef @.str.4)
  %6331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6332 = load i32, ptr %6331, align 4, !tbaa !5
  %6333 = call ptr @s2n_strerror_debug(i32 noundef %6332, ptr noundef @.str.4)
  %6334 = call ptr @__errno_location() #11
  %6335 = load i32, ptr %6334, align 4, !tbaa !5
  %6336 = call ptr @strerror(i32 noundef %6335) #10
  %6337 = call ptr @__errno_location() #11
  %6338 = load i32, ptr %6337, align 4, !tbaa !5
  %6339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6326, ptr noundef @.str.2, i32 noundef %6327, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 304, ptr noundef %6330, ptr noundef %6333, ptr noundef %6336, i32 noundef %6338) #10
  br label %6357

6340:                                             ; preds = %6318, %6311
  %6341 = load i32, ptr %151, align 4, !tbaa !5
  %6342 = call ptr @__errno_location() #11
  store i32 %6341, ptr %6342, align 4, !tbaa !5
  %6343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6344 = load i32, ptr @test_count, align 4, !tbaa !5
  %6345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6346 = load i32, ptr %6345, align 4, !tbaa !5
  %6347 = call ptr @s2n_strerror(i32 noundef %6346, ptr noundef @.str.4)
  %6348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6349 = load i32, ptr %6348, align 4, !tbaa !5
  %6350 = call ptr @s2n_strerror_debug(i32 noundef %6349, ptr noundef @.str.4)
  %6351 = call ptr @__errno_location() #11
  %6352 = load i32, ptr %6351, align 4, !tbaa !5
  %6353 = call ptr @strerror(i32 noundef %6352) #10
  %6354 = call ptr @__errno_location() #11
  %6355 = load i32, ptr %6354, align 4, !tbaa !5
  %6356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6343, ptr noundef @.str.5, i32 noundef %6344, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 304, ptr noundef %6347, ptr noundef %6350, ptr noundef %6353, i32 noundef %6355) #10
  br label %6357

6357:                                             ; preds = %6340, %6323
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  br label %6358

6358:                                             ; preds = %6357
  br label %6359

6359:                                             ; preds = %6358
  call void @exit(i32 noundef 1) #12
  unreachable

6360:                                             ; No predecessors!
  br label %6361

6361:                                             ; preds = %6360
  br label %6362

6362:                                             ; preds = %6361, %6303
  br label %6363

6363:                                             ; preds = %6362
  br label %6364

6364:                                             ; preds = %6363
  br label %6365

6365:                                             ; preds = %6364
  %6366 = load i32, ptr @test_count, align 4, !tbaa !5
  %6367 = add nsw i32 %6366, 1
  store i32 %6367, ptr @test_count, align 4, !tbaa !5
  %6368 = call i32 @s2n_stuffer_free(ptr noundef %130)
  %6369 = icmp eq i32 %6368, -1
  br i1 %6369, label %6370, label %6423

6370:                                             ; preds = %6365
  br label %6371

6371:                                             ; preds = %6370
  br label %6372

6372:                                             ; preds = %6371
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #10
  %6373 = call ptr @__errno_location() #11
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  store i32 %6374, ptr %152, align 4, !tbaa !5
  %6375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6376 = call i32 @s2n_print_stacktrace(ptr noundef %6375)
  %6377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6378 = trunc i8 %6377 to i1
  br i1 %6378, label %6379, label %6401

6379:                                             ; preds = %6372
  %6380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6381 = call i32 @fileno(ptr noundef %6380) #10
  %6382 = call i32 @isatty(i32 noundef %6381) #10
  %6383 = icmp ne i32 %6382, 0
  br i1 %6383, label %6384, label %6401

6384:                                             ; preds = %6379
  %6385 = load i32, ptr %152, align 4, !tbaa !5
  %6386 = call ptr @__errno_location() #11
  store i32 %6385, ptr %6386, align 4, !tbaa !5
  %6387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6388 = load i32, ptr @test_count, align 4, !tbaa !5
  %6389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6390 = load i32, ptr %6389, align 4, !tbaa !5
  %6391 = call ptr @s2n_strerror(i32 noundef %6390, ptr noundef @.str.4)
  %6392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6393 = load i32, ptr %6392, align 4, !tbaa !5
  %6394 = call ptr @s2n_strerror_debug(i32 noundef %6393, ptr noundef @.str.4)
  %6395 = call ptr @__errno_location() #11
  %6396 = load i32, ptr %6395, align 4, !tbaa !5
  %6397 = call ptr @strerror(i32 noundef %6396) #10
  %6398 = call ptr @__errno_location() #11
  %6399 = load i32, ptr %6398, align 4, !tbaa !5
  %6400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6387, ptr noundef @.str.2, i32 noundef %6388, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 305, ptr noundef %6391, ptr noundef %6394, ptr noundef %6397, i32 noundef %6399) #10
  br label %6418

6401:                                             ; preds = %6379, %6372
  %6402 = load i32, ptr %152, align 4, !tbaa !5
  %6403 = call ptr @__errno_location() #11
  store i32 %6402, ptr %6403, align 4, !tbaa !5
  %6404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6405 = load i32, ptr @test_count, align 4, !tbaa !5
  %6406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6407 = load i32, ptr %6406, align 4, !tbaa !5
  %6408 = call ptr @s2n_strerror(i32 noundef %6407, ptr noundef @.str.4)
  %6409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6410 = load i32, ptr %6409, align 4, !tbaa !5
  %6411 = call ptr @s2n_strerror_debug(i32 noundef %6410, ptr noundef @.str.4)
  %6412 = call ptr @__errno_location() #11
  %6413 = load i32, ptr %6412, align 4, !tbaa !5
  %6414 = call ptr @strerror(i32 noundef %6413) #10
  %6415 = call ptr @__errno_location() #11
  %6416 = load i32, ptr %6415, align 4, !tbaa !5
  %6417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6404, ptr noundef @.str.5, i32 noundef %6405, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 305, ptr noundef %6408, ptr noundef %6411, ptr noundef %6414, i32 noundef %6416) #10
  br label %6418

6418:                                             ; preds = %6401, %6384
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #10
  br label %6419

6419:                                             ; preds = %6418
  br label %6420

6420:                                             ; preds = %6419
  call void @exit(i32 noundef 1) #12
  unreachable

6421:                                             ; No predecessors!
  br label %6422

6422:                                             ; preds = %6421
  br label %6423

6423:                                             ; preds = %6422, %6365
  br label %6424

6424:                                             ; preds = %6423
  br label %6425

6425:                                             ; preds = %6424
  br label %6426

6426:                                             ; preds = %6425
  %6427 = load i32, ptr @test_count, align 4, !tbaa !5
  %6428 = add nsw i32 %6427, 1
  store i32 %6428, ptr @test_count, align 4, !tbaa !5
  %6429 = call i32 @s2n_stuffer_free(ptr noundef %129)
  %6430 = icmp eq i32 %6429, -1
  br i1 %6430, label %6431, label %6484

6431:                                             ; preds = %6426
  br label %6432

6432:                                             ; preds = %6431
  br label %6433

6433:                                             ; preds = %6432
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #10
  %6434 = call ptr @__errno_location() #11
  %6435 = load i32, ptr %6434, align 4, !tbaa !5
  store i32 %6435, ptr %153, align 4, !tbaa !5
  %6436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6437 = call i32 @s2n_print_stacktrace(ptr noundef %6436)
  %6438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6439 = trunc i8 %6438 to i1
  br i1 %6439, label %6440, label %6462

6440:                                             ; preds = %6433
  %6441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6442 = call i32 @fileno(ptr noundef %6441) #10
  %6443 = call i32 @isatty(i32 noundef %6442) #10
  %6444 = icmp ne i32 %6443, 0
  br i1 %6444, label %6445, label %6462

6445:                                             ; preds = %6440
  %6446 = load i32, ptr %153, align 4, !tbaa !5
  %6447 = call ptr @__errno_location() #11
  store i32 %6446, ptr %6447, align 4, !tbaa !5
  %6448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6449 = load i32, ptr @test_count, align 4, !tbaa !5
  %6450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6451 = load i32, ptr %6450, align 4, !tbaa !5
  %6452 = call ptr @s2n_strerror(i32 noundef %6451, ptr noundef @.str.4)
  %6453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6454 = load i32, ptr %6453, align 4, !tbaa !5
  %6455 = call ptr @s2n_strerror_debug(i32 noundef %6454, ptr noundef @.str.4)
  %6456 = call ptr @__errno_location() #11
  %6457 = load i32, ptr %6456, align 4, !tbaa !5
  %6458 = call ptr @strerror(i32 noundef %6457) #10
  %6459 = call ptr @__errno_location() #11
  %6460 = load i32, ptr %6459, align 4, !tbaa !5
  %6461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6448, ptr noundef @.str.2, i32 noundef %6449, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 306, ptr noundef %6452, ptr noundef %6455, ptr noundef %6458, i32 noundef %6460) #10
  br label %6479

6462:                                             ; preds = %6440, %6433
  %6463 = load i32, ptr %153, align 4, !tbaa !5
  %6464 = call ptr @__errno_location() #11
  store i32 %6463, ptr %6464, align 4, !tbaa !5
  %6465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6466 = load i32, ptr @test_count, align 4, !tbaa !5
  %6467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6468 = load i32, ptr %6467, align 4, !tbaa !5
  %6469 = call ptr @s2n_strerror(i32 noundef %6468, ptr noundef @.str.4)
  %6470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6471 = load i32, ptr %6470, align 4, !tbaa !5
  %6472 = call ptr @s2n_strerror_debug(i32 noundef %6471, ptr noundef @.str.4)
  %6473 = call ptr @__errno_location() #11
  %6474 = load i32, ptr %6473, align 4, !tbaa !5
  %6475 = call ptr @strerror(i32 noundef %6474) #10
  %6476 = call ptr @__errno_location() #11
  %6477 = load i32, ptr %6476, align 4, !tbaa !5
  %6478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6465, ptr noundef @.str.5, i32 noundef %6466, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 306, ptr noundef %6469, ptr noundef %6472, ptr noundef %6475, i32 noundef %6477) #10
  br label %6479

6479:                                             ; preds = %6462, %6445
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #10
  br label %6480

6480:                                             ; preds = %6479
  br label %6481

6481:                                             ; preds = %6480
  call void @exit(i32 noundef 1) #12
  unreachable

6482:                                             ; No predecessors!
  br label %6483

6483:                                             ; preds = %6482
  br label %6484

6484:                                             ; preds = %6483, %6426
  br label %6485

6485:                                             ; preds = %6484
  br label %6486

6486:                                             ; preds = %6485
  store i32 0, ptr %35, align 4
  br label %6487

6487:                                             ; preds = %6486, %5295
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %130) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %126) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %125) #10
  %6488 = load i32, ptr %35, align 4
  switch i32 %6488, label %8733 [
    i32 0, label %6489
    i32 491, label %6490
  ]

6489:                                             ; preds = %6487
  br label %6490

6490:                                             ; preds = %6489, %6487
  %6491 = load i64, ptr %124, align 8, !tbaa !24
  %6492 = add i64 %6491, 1
  store i64 %6492, ptr %124, align 8, !tbaa !24
  br label %5210, !llvm.loop !34

6493:                                             ; preds = %5217
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  store i32 0, ptr %154, align 4, !tbaa !5
  br label %6494

6494:                                             ; preds = %8444, %6493
  %6495 = load i32, ptr %154, align 4, !tbaa !5
  %6496 = icmp ult i32 %6495, 3
  br i1 %6496, label %6498, label %6497

6497:                                             ; preds = %6494
  store i32 616, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %8447

6498:                                             ; preds = %6494
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #10
  %6499 = call ptr @s2n_config_new()
  store ptr %6499, ptr %155, align 8, !tbaa !9
  br label %6500

6500:                                             ; preds = %6498
  %6501 = load i32, ptr @test_count, align 4, !tbaa !5
  %6502 = add nsw i32 %6501, 1
  store i32 %6502, ptr @test_count, align 4, !tbaa !5
  %6503 = load ptr, ptr %155, align 8, !tbaa !9
  %6504 = icmp eq ptr %6503, null
  br i1 %6504, label %6505, label %6558

6505:                                             ; preds = %6500
  br label %6506

6506:                                             ; preds = %6505
  br label %6507

6507:                                             ; preds = %6506
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %6508 = call ptr @__errno_location() #11
  %6509 = load i32, ptr %6508, align 4, !tbaa !5
  store i32 %6509, ptr %156, align 4, !tbaa !5
  %6510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6511 = call i32 @s2n_print_stacktrace(ptr noundef %6510)
  %6512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6513 = trunc i8 %6512 to i1
  br i1 %6513, label %6514, label %6536

6514:                                             ; preds = %6507
  %6515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6516 = call i32 @fileno(ptr noundef %6515) #10
  %6517 = call i32 @isatty(i32 noundef %6516) #10
  %6518 = icmp ne i32 %6517, 0
  br i1 %6518, label %6519, label %6536

6519:                                             ; preds = %6514
  %6520 = load i32, ptr %156, align 4, !tbaa !5
  %6521 = call ptr @__errno_location() #11
  store i32 %6520, ptr %6521, align 4, !tbaa !5
  %6522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6523 = load i32, ptr @test_count, align 4, !tbaa !5
  %6524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6525 = load i32, ptr %6524, align 4, !tbaa !5
  %6526 = call ptr @s2n_strerror(i32 noundef %6525, ptr noundef @.str.4)
  %6527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6528 = load i32, ptr %6527, align 4, !tbaa !5
  %6529 = call ptr @s2n_strerror_debug(i32 noundef %6528, ptr noundef @.str.4)
  %6530 = call ptr @__errno_location() #11
  %6531 = load i32, ptr %6530, align 4, !tbaa !5
  %6532 = call ptr @strerror(i32 noundef %6531) #10
  %6533 = call ptr @__errno_location() #11
  %6534 = load i32, ptr %6533, align 4, !tbaa !5
  %6535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6522, ptr noundef @.str.2, i32 noundef %6523, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 320, ptr noundef %6526, ptr noundef %6529, ptr noundef %6532, i32 noundef %6534) #10
  br label %6553

6536:                                             ; preds = %6514, %6507
  %6537 = load i32, ptr %156, align 4, !tbaa !5
  %6538 = call ptr @__errno_location() #11
  store i32 %6537, ptr %6538, align 4, !tbaa !5
  %6539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6540 = load i32, ptr @test_count, align 4, !tbaa !5
  %6541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6542 = load i32, ptr %6541, align 4, !tbaa !5
  %6543 = call ptr @s2n_strerror(i32 noundef %6542, ptr noundef @.str.4)
  %6544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6545 = load i32, ptr %6544, align 4, !tbaa !5
  %6546 = call ptr @s2n_strerror_debug(i32 noundef %6545, ptr noundef @.str.4)
  %6547 = call ptr @__errno_location() #11
  %6548 = load i32, ptr %6547, align 4, !tbaa !5
  %6549 = call ptr @strerror(i32 noundef %6548) #10
  %6550 = call ptr @__errno_location() #11
  %6551 = load i32, ptr %6550, align 4, !tbaa !5
  %6552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6539, ptr noundef @.str.5, i32 noundef %6540, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 320, ptr noundef %6543, ptr noundef %6546, ptr noundef %6549, i32 noundef %6551) #10
  br label %6553

6553:                                             ; preds = %6536, %6519
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %6554

6554:                                             ; preds = %6553
  br label %6555

6555:                                             ; preds = %6554
  call void @exit(i32 noundef 1) #12
  unreachable

6556:                                             ; No predecessors!
  br label %6557

6557:                                             ; preds = %6556
  br label %6558

6558:                                             ; preds = %6557, %6500
  br label %6559

6559:                                             ; preds = %6558
  br label %6560

6560:                                             ; preds = %6559
  br label %6561

6561:                                             ; preds = %6560
  %6562 = load i32, ptr @test_count, align 4, !tbaa !5
  %6563 = add nsw i32 %6562, 1
  store i32 %6563, ptr @test_count, align 4, !tbaa !5
  %6564 = load ptr, ptr %155, align 8, !tbaa !9
  %6565 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6564, ptr noundef @.str.57)
  %6566 = icmp eq i32 %6565, -1
  br i1 %6566, label %6567, label %6620

6567:                                             ; preds = %6561
  br label %6568

6568:                                             ; preds = %6567
  br label %6569

6569:                                             ; preds = %6568
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %6570 = call ptr @__errno_location() #11
  %6571 = load i32, ptr %6570, align 4, !tbaa !5
  store i32 %6571, ptr %157, align 4, !tbaa !5
  %6572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6573 = call i32 @s2n_print_stacktrace(ptr noundef %6572)
  %6574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6575 = trunc i8 %6574 to i1
  br i1 %6575, label %6576, label %6598

6576:                                             ; preds = %6569
  %6577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6578 = call i32 @fileno(ptr noundef %6577) #10
  %6579 = call i32 @isatty(i32 noundef %6578) #10
  %6580 = icmp ne i32 %6579, 0
  br i1 %6580, label %6581, label %6598

6581:                                             ; preds = %6576
  %6582 = load i32, ptr %157, align 4, !tbaa !5
  %6583 = call ptr @__errno_location() #11
  store i32 %6582, ptr %6583, align 4, !tbaa !5
  %6584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6585 = load i32, ptr @test_count, align 4, !tbaa !5
  %6586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6587 = load i32, ptr %6586, align 4, !tbaa !5
  %6588 = call ptr @s2n_strerror(i32 noundef %6587, ptr noundef @.str.4)
  %6589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6590 = load i32, ptr %6589, align 4, !tbaa !5
  %6591 = call ptr @s2n_strerror_debug(i32 noundef %6590, ptr noundef @.str.4)
  %6592 = call ptr @__errno_location() #11
  %6593 = load i32, ptr %6592, align 4, !tbaa !5
  %6594 = call ptr @strerror(i32 noundef %6593) #10
  %6595 = call ptr @__errno_location() #11
  %6596 = load i32, ptr %6595, align 4, !tbaa !5
  %6597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6584, ptr noundef @.str.2, i32 noundef %6585, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 321, ptr noundef %6588, ptr noundef %6591, ptr noundef %6594, i32 noundef %6596) #10
  br label %6615

6598:                                             ; preds = %6576, %6569
  %6599 = load i32, ptr %157, align 4, !tbaa !5
  %6600 = call ptr @__errno_location() #11
  store i32 %6599, ptr %6600, align 4, !tbaa !5
  %6601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6602 = load i32, ptr @test_count, align 4, !tbaa !5
  %6603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6604 = load i32, ptr %6603, align 4, !tbaa !5
  %6605 = call ptr @s2n_strerror(i32 noundef %6604, ptr noundef @.str.4)
  %6606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6607 = load i32, ptr %6606, align 4, !tbaa !5
  %6608 = call ptr @s2n_strerror_debug(i32 noundef %6607, ptr noundef @.str.4)
  %6609 = call ptr @__errno_location() #11
  %6610 = load i32, ptr %6609, align 4, !tbaa !5
  %6611 = call ptr @strerror(i32 noundef %6610) #10
  %6612 = call ptr @__errno_location() #11
  %6613 = load i32, ptr %6612, align 4, !tbaa !5
  %6614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6601, ptr noundef @.str.5, i32 noundef %6602, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 321, ptr noundef %6605, ptr noundef %6608, ptr noundef %6611, i32 noundef %6613) #10
  br label %6615

6615:                                             ; preds = %6598, %6581
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %6616

6616:                                             ; preds = %6615
  br label %6617

6617:                                             ; preds = %6616
  call void @exit(i32 noundef 1) #12
  unreachable

6618:                                             ; No predecessors!
  br label %6619

6619:                                             ; preds = %6618
  br label %6620

6620:                                             ; preds = %6619, %6561
  br label %6621

6621:                                             ; preds = %6620
  br label %6622

6622:                                             ; preds = %6621
  br label %6623

6623:                                             ; preds = %6622
  %6624 = load i32, ptr @test_count, align 4, !tbaa !5
  %6625 = add nsw i32 %6624, 1
  store i32 %6625, ptr @test_count, align 4, !tbaa !5
  %6626 = load ptr, ptr %155, align 8, !tbaa !9
  %6627 = call i32 @s2n_config_set_client_auth_type(ptr noundef %6626, i32 noundef 2)
  %6628 = icmp eq i32 %6627, -1
  br i1 %6628, label %6629, label %6682

6629:                                             ; preds = %6623
  br label %6630

6630:                                             ; preds = %6629
  br label %6631

6631:                                             ; preds = %6630
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #10
  %6632 = call ptr @__errno_location() #11
  %6633 = load i32, ptr %6632, align 4, !tbaa !5
  store i32 %6633, ptr %158, align 4, !tbaa !5
  %6634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6635 = call i32 @s2n_print_stacktrace(ptr noundef %6634)
  %6636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6637 = trunc i8 %6636 to i1
  br i1 %6637, label %6638, label %6660

6638:                                             ; preds = %6631
  %6639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6640 = call i32 @fileno(ptr noundef %6639) #10
  %6641 = call i32 @isatty(i32 noundef %6640) #10
  %6642 = icmp ne i32 %6641, 0
  br i1 %6642, label %6643, label %6660

6643:                                             ; preds = %6638
  %6644 = load i32, ptr %158, align 4, !tbaa !5
  %6645 = call ptr @__errno_location() #11
  store i32 %6644, ptr %6645, align 4, !tbaa !5
  %6646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6647 = load i32, ptr @test_count, align 4, !tbaa !5
  %6648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6649 = load i32, ptr %6648, align 4, !tbaa !5
  %6650 = call ptr @s2n_strerror(i32 noundef %6649, ptr noundef @.str.4)
  %6651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6652 = load i32, ptr %6651, align 4, !tbaa !5
  %6653 = call ptr @s2n_strerror_debug(i32 noundef %6652, ptr noundef @.str.4)
  %6654 = call ptr @__errno_location() #11
  %6655 = load i32, ptr %6654, align 4, !tbaa !5
  %6656 = call ptr @strerror(i32 noundef %6655) #10
  %6657 = call ptr @__errno_location() #11
  %6658 = load i32, ptr %6657, align 4, !tbaa !5
  %6659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6646, ptr noundef @.str.2, i32 noundef %6647, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 322, ptr noundef %6650, ptr noundef %6653, ptr noundef %6656, i32 noundef %6658) #10
  br label %6677

6660:                                             ; preds = %6638, %6631
  %6661 = load i32, ptr %158, align 4, !tbaa !5
  %6662 = call ptr @__errno_location() #11
  store i32 %6661, ptr %6662, align 4, !tbaa !5
  %6663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6664 = load i32, ptr @test_count, align 4, !tbaa !5
  %6665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6666 = load i32, ptr %6665, align 4, !tbaa !5
  %6667 = call ptr @s2n_strerror(i32 noundef %6666, ptr noundef @.str.4)
  %6668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6669 = load i32, ptr %6668, align 4, !tbaa !5
  %6670 = call ptr @s2n_strerror_debug(i32 noundef %6669, ptr noundef @.str.4)
  %6671 = call ptr @__errno_location() #11
  %6672 = load i32, ptr %6671, align 4, !tbaa !5
  %6673 = call ptr @strerror(i32 noundef %6672) #10
  %6674 = call ptr @__errno_location() #11
  %6675 = load i32, ptr %6674, align 4, !tbaa !5
  %6676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6663, ptr noundef @.str.5, i32 noundef %6664, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 322, ptr noundef %6667, ptr noundef %6670, ptr noundef %6673, i32 noundef %6675) #10
  br label %6677

6677:                                             ; preds = %6660, %6643
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #10
  br label %6678

6678:                                             ; preds = %6677
  br label %6679

6679:                                             ; preds = %6678
  call void @exit(i32 noundef 1) #12
  unreachable

6680:                                             ; No predecessors!
  br label %6681

6681:                                             ; preds = %6680
  br label %6682

6682:                                             ; preds = %6681, %6623
  br label %6683

6683:                                             ; preds = %6682
  br label %6684

6684:                                             ; preds = %6683
  br label %6685

6685:                                             ; preds = %6684
  %6686 = load i32, ptr @test_count, align 4, !tbaa !5
  %6687 = add nsw i32 %6686, 1
  store i32 %6687, ptr @test_count, align 4, !tbaa !5
  %6688 = load ptr, ptr %155, align 8, !tbaa !9
  %6689 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %6688, ptr noundef @.str.13, ptr noundef null)
  %6690 = icmp eq i32 %6689, -1
  br i1 %6690, label %6691, label %6744

6691:                                             ; preds = %6685
  br label %6692

6692:                                             ; preds = %6691
  br label %6693

6693:                                             ; preds = %6692
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #10
  %6694 = call ptr @__errno_location() #11
  %6695 = load i32, ptr %6694, align 4, !tbaa !5
  store i32 %6695, ptr %159, align 4, !tbaa !5
  %6696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6697 = call i32 @s2n_print_stacktrace(ptr noundef %6696)
  %6698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6699 = trunc i8 %6698 to i1
  br i1 %6699, label %6700, label %6722

6700:                                             ; preds = %6693
  %6701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6702 = call i32 @fileno(ptr noundef %6701) #10
  %6703 = call i32 @isatty(i32 noundef %6702) #10
  %6704 = icmp ne i32 %6703, 0
  br i1 %6704, label %6705, label %6722

6705:                                             ; preds = %6700
  %6706 = load i32, ptr %159, align 4, !tbaa !5
  %6707 = call ptr @__errno_location() #11
  store i32 %6706, ptr %6707, align 4, !tbaa !5
  %6708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6709 = load i32, ptr @test_count, align 4, !tbaa !5
  %6710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6711 = load i32, ptr %6710, align 4, !tbaa !5
  %6712 = call ptr @s2n_strerror(i32 noundef %6711, ptr noundef @.str.4)
  %6713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6714 = load i32, ptr %6713, align 4, !tbaa !5
  %6715 = call ptr @s2n_strerror_debug(i32 noundef %6714, ptr noundef @.str.4)
  %6716 = call ptr @__errno_location() #11
  %6717 = load i32, ptr %6716, align 4, !tbaa !5
  %6718 = call ptr @strerror(i32 noundef %6717) #10
  %6719 = call ptr @__errno_location() #11
  %6720 = load i32, ptr %6719, align 4, !tbaa !5
  %6721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6708, ptr noundef @.str.2, i32 noundef %6709, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 325, ptr noundef %6712, ptr noundef %6715, ptr noundef %6718, i32 noundef %6720) #10
  br label %6739

6722:                                             ; preds = %6700, %6693
  %6723 = load i32, ptr %159, align 4, !tbaa !5
  %6724 = call ptr @__errno_location() #11
  store i32 %6723, ptr %6724, align 4, !tbaa !5
  %6725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6726 = load i32, ptr @test_count, align 4, !tbaa !5
  %6727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6728 = load i32, ptr %6727, align 4, !tbaa !5
  %6729 = call ptr @s2n_strerror(i32 noundef %6728, ptr noundef @.str.4)
  %6730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6731 = load i32, ptr %6730, align 4, !tbaa !5
  %6732 = call ptr @s2n_strerror_debug(i32 noundef %6731, ptr noundef @.str.4)
  %6733 = call ptr @__errno_location() #11
  %6734 = load i32, ptr %6733, align 4, !tbaa !5
  %6735 = call ptr @strerror(i32 noundef %6734) #10
  %6736 = call ptr @__errno_location() #11
  %6737 = load i32, ptr %6736, align 4, !tbaa !5
  %6738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6725, ptr noundef @.str.5, i32 noundef %6726, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 325, ptr noundef %6729, ptr noundef %6732, ptr noundef %6735, i32 noundef %6737) #10
  br label %6739

6739:                                             ; preds = %6722, %6705
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #10
  br label %6740

6740:                                             ; preds = %6739
  br label %6741

6741:                                             ; preds = %6740
  call void @exit(i32 noundef 1) #12
  unreachable

6742:                                             ; No predecessors!
  br label %6743

6743:                                             ; preds = %6742
  br label %6744

6744:                                             ; preds = %6743, %6685
  br label %6745

6745:                                             ; preds = %6744
  br label %6746

6746:                                             ; preds = %6745
  br label %6747

6747:                                             ; preds = %6746
  %6748 = load i32, ptr @test_count, align 4, !tbaa !5
  %6749 = add nsw i32 %6748, 1
  store i32 %6749, ptr @test_count, align 4, !tbaa !5
  %6750 = load ptr, ptr %155, align 8, !tbaa !9
  %6751 = load ptr, ptr %12, align 8, !tbaa !9
  %6752 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6750, ptr noundef %6751)
  %6753 = icmp eq i32 %6752, -1
  br i1 %6753, label %6754, label %6807

6754:                                             ; preds = %6747
  br label %6755

6755:                                             ; preds = %6754
  br label %6756

6756:                                             ; preds = %6755
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #10
  %6757 = call ptr @__errno_location() #11
  %6758 = load i32, ptr %6757, align 4, !tbaa !5
  store i32 %6758, ptr %160, align 4, !tbaa !5
  %6759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6760 = call i32 @s2n_print_stacktrace(ptr noundef %6759)
  %6761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6762 = trunc i8 %6761 to i1
  br i1 %6762, label %6763, label %6785

6763:                                             ; preds = %6756
  %6764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6765 = call i32 @fileno(ptr noundef %6764) #10
  %6766 = call i32 @isatty(i32 noundef %6765) #10
  %6767 = icmp ne i32 %6766, 0
  br i1 %6767, label %6768, label %6785

6768:                                             ; preds = %6763
  %6769 = load i32, ptr %160, align 4, !tbaa !5
  %6770 = call ptr @__errno_location() #11
  store i32 %6769, ptr %6770, align 4, !tbaa !5
  %6771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6772 = load i32, ptr @test_count, align 4, !tbaa !5
  %6773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6774 = load i32, ptr %6773, align 4, !tbaa !5
  %6775 = call ptr @s2n_strerror(i32 noundef %6774, ptr noundef @.str.4)
  %6776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6777 = load i32, ptr %6776, align 4, !tbaa !5
  %6778 = call ptr @s2n_strerror_debug(i32 noundef %6777, ptr noundef @.str.4)
  %6779 = call ptr @__errno_location() #11
  %6780 = load i32, ptr %6779, align 4, !tbaa !5
  %6781 = call ptr @strerror(i32 noundef %6780) #10
  %6782 = call ptr @__errno_location() #11
  %6783 = load i32, ptr %6782, align 4, !tbaa !5
  %6784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6771, ptr noundef @.str.2, i32 noundef %6772, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 326, ptr noundef %6775, ptr noundef %6778, ptr noundef %6781, i32 noundef %6783) #10
  br label %6802

6785:                                             ; preds = %6763, %6756
  %6786 = load i32, ptr %160, align 4, !tbaa !5
  %6787 = call ptr @__errno_location() #11
  store i32 %6786, ptr %6787, align 4, !tbaa !5
  %6788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6789 = load i32, ptr @test_count, align 4, !tbaa !5
  %6790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6791 = load i32, ptr %6790, align 4, !tbaa !5
  %6792 = call ptr @s2n_strerror(i32 noundef %6791, ptr noundef @.str.4)
  %6793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6794 = load i32, ptr %6793, align 4, !tbaa !5
  %6795 = call ptr @s2n_strerror_debug(i32 noundef %6794, ptr noundef @.str.4)
  %6796 = call ptr @__errno_location() #11
  %6797 = load i32, ptr %6796, align 4, !tbaa !5
  %6798 = call ptr @strerror(i32 noundef %6797) #10
  %6799 = call ptr @__errno_location() #11
  %6800 = load i32, ptr %6799, align 4, !tbaa !5
  %6801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6788, ptr noundef @.str.5, i32 noundef %6789, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 326, ptr noundef %6792, ptr noundef %6795, ptr noundef %6798, i32 noundef %6800) #10
  br label %6802

6802:                                             ; preds = %6785, %6768
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #10
  br label %6803

6803:                                             ; preds = %6802
  br label %6804

6804:                                             ; preds = %6803
  call void @exit(i32 noundef 1) #12
  unreachable

6805:                                             ; No predecessors!
  br label %6806

6806:                                             ; preds = %6805
  br label %6807

6807:                                             ; preds = %6806, %6747
  br label %6808

6808:                                             ; preds = %6807
  br label %6809

6809:                                             ; preds = %6808
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #10
  %6810 = call ptr @s2n_config_new()
  store ptr %6810, ptr %161, align 8, !tbaa !9
  br label %6811

6811:                                             ; preds = %6809
  %6812 = load i32, ptr @test_count, align 4, !tbaa !5
  %6813 = add nsw i32 %6812, 1
  store i32 %6813, ptr @test_count, align 4, !tbaa !5
  %6814 = load ptr, ptr %161, align 8, !tbaa !9
  %6815 = icmp eq ptr %6814, null
  br i1 %6815, label %6816, label %6869

6816:                                             ; preds = %6811
  br label %6817

6817:                                             ; preds = %6816
  br label %6818

6818:                                             ; preds = %6817
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #10
  %6819 = call ptr @__errno_location() #11
  %6820 = load i32, ptr %6819, align 4, !tbaa !5
  store i32 %6820, ptr %162, align 4, !tbaa !5
  %6821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6822 = call i32 @s2n_print_stacktrace(ptr noundef %6821)
  %6823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6824 = trunc i8 %6823 to i1
  br i1 %6824, label %6825, label %6847

6825:                                             ; preds = %6818
  %6826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6827 = call i32 @fileno(ptr noundef %6826) #10
  %6828 = call i32 @isatty(i32 noundef %6827) #10
  %6829 = icmp ne i32 %6828, 0
  br i1 %6829, label %6830, label %6847

6830:                                             ; preds = %6825
  %6831 = load i32, ptr %162, align 4, !tbaa !5
  %6832 = call ptr @__errno_location() #11
  store i32 %6831, ptr %6832, align 4, !tbaa !5
  %6833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6834 = load i32, ptr @test_count, align 4, !tbaa !5
  %6835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6836 = load i32, ptr %6835, align 4, !tbaa !5
  %6837 = call ptr @s2n_strerror(i32 noundef %6836, ptr noundef @.str.4)
  %6838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6839 = load i32, ptr %6838, align 4, !tbaa !5
  %6840 = call ptr @s2n_strerror_debug(i32 noundef %6839, ptr noundef @.str.4)
  %6841 = call ptr @__errno_location() #11
  %6842 = load i32, ptr %6841, align 4, !tbaa !5
  %6843 = call ptr @strerror(i32 noundef %6842) #10
  %6844 = call ptr @__errno_location() #11
  %6845 = load i32, ptr %6844, align 4, !tbaa !5
  %6846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6833, ptr noundef @.str.2, i32 noundef %6834, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 329, ptr noundef %6837, ptr noundef %6840, ptr noundef %6843, i32 noundef %6845) #10
  br label %6864

6847:                                             ; preds = %6825, %6818
  %6848 = load i32, ptr %162, align 4, !tbaa !5
  %6849 = call ptr @__errno_location() #11
  store i32 %6848, ptr %6849, align 4, !tbaa !5
  %6850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6851 = load i32, ptr @test_count, align 4, !tbaa !5
  %6852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6853 = load i32, ptr %6852, align 4, !tbaa !5
  %6854 = call ptr @s2n_strerror(i32 noundef %6853, ptr noundef @.str.4)
  %6855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6856 = load i32, ptr %6855, align 4, !tbaa !5
  %6857 = call ptr @s2n_strerror_debug(i32 noundef %6856, ptr noundef @.str.4)
  %6858 = call ptr @__errno_location() #11
  %6859 = load i32, ptr %6858, align 4, !tbaa !5
  %6860 = call ptr @strerror(i32 noundef %6859) #10
  %6861 = call ptr @__errno_location() #11
  %6862 = load i32, ptr %6861, align 4, !tbaa !5
  %6863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6850, ptr noundef @.str.5, i32 noundef %6851, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 329, ptr noundef %6854, ptr noundef %6857, ptr noundef %6860, i32 noundef %6862) #10
  br label %6864

6864:                                             ; preds = %6847, %6830
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #10
  br label %6865

6865:                                             ; preds = %6864
  br label %6866

6866:                                             ; preds = %6865
  call void @exit(i32 noundef 1) #12
  unreachable

6867:                                             ; No predecessors!
  br label %6868

6868:                                             ; preds = %6867
  br label %6869

6869:                                             ; preds = %6868, %6811
  br label %6870

6870:                                             ; preds = %6869
  br label %6871

6871:                                             ; preds = %6870
  br label %6872

6872:                                             ; preds = %6871
  %6873 = load i32, ptr @test_count, align 4, !tbaa !5
  %6874 = add nsw i32 %6873, 1
  store i32 %6874, ptr @test_count, align 4, !tbaa !5
  %6875 = load ptr, ptr %161, align 8, !tbaa !9
  %6876 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6875, ptr noundef @.str.57)
  %6877 = icmp eq i32 %6876, -1
  br i1 %6877, label %6878, label %6931

6878:                                             ; preds = %6872
  br label %6879

6879:                                             ; preds = %6878
  br label %6880

6880:                                             ; preds = %6879
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %6881 = call ptr @__errno_location() #11
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  store i32 %6882, ptr %163, align 4, !tbaa !5
  %6883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6884 = call i32 @s2n_print_stacktrace(ptr noundef %6883)
  %6885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6886 = trunc i8 %6885 to i1
  br i1 %6886, label %6887, label %6909

6887:                                             ; preds = %6880
  %6888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6889 = call i32 @fileno(ptr noundef %6888) #10
  %6890 = call i32 @isatty(i32 noundef %6889) #10
  %6891 = icmp ne i32 %6890, 0
  br i1 %6891, label %6892, label %6909

6892:                                             ; preds = %6887
  %6893 = load i32, ptr %163, align 4, !tbaa !5
  %6894 = call ptr @__errno_location() #11
  store i32 %6893, ptr %6894, align 4, !tbaa !5
  %6895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6896 = load i32, ptr @test_count, align 4, !tbaa !5
  %6897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6898 = load i32, ptr %6897, align 4, !tbaa !5
  %6899 = call ptr @s2n_strerror(i32 noundef %6898, ptr noundef @.str.4)
  %6900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6901 = load i32, ptr %6900, align 4, !tbaa !5
  %6902 = call ptr @s2n_strerror_debug(i32 noundef %6901, ptr noundef @.str.4)
  %6903 = call ptr @__errno_location() #11
  %6904 = load i32, ptr %6903, align 4, !tbaa !5
  %6905 = call ptr @strerror(i32 noundef %6904) #10
  %6906 = call ptr @__errno_location() #11
  %6907 = load i32, ptr %6906, align 4, !tbaa !5
  %6908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6895, ptr noundef @.str.2, i32 noundef %6896, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 330, ptr noundef %6899, ptr noundef %6902, ptr noundef %6905, i32 noundef %6907) #10
  br label %6926

6909:                                             ; preds = %6887, %6880
  %6910 = load i32, ptr %163, align 4, !tbaa !5
  %6911 = call ptr @__errno_location() #11
  store i32 %6910, ptr %6911, align 4, !tbaa !5
  %6912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6913 = load i32, ptr @test_count, align 4, !tbaa !5
  %6914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6915 = load i32, ptr %6914, align 4, !tbaa !5
  %6916 = call ptr @s2n_strerror(i32 noundef %6915, ptr noundef @.str.4)
  %6917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6918 = load i32, ptr %6917, align 4, !tbaa !5
  %6919 = call ptr @s2n_strerror_debug(i32 noundef %6918, ptr noundef @.str.4)
  %6920 = call ptr @__errno_location() #11
  %6921 = load i32, ptr %6920, align 4, !tbaa !5
  %6922 = call ptr @strerror(i32 noundef %6921) #10
  %6923 = call ptr @__errno_location() #11
  %6924 = load i32, ptr %6923, align 4, !tbaa !5
  %6925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6912, ptr noundef @.str.5, i32 noundef %6913, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 330, ptr noundef %6916, ptr noundef %6919, ptr noundef %6922, i32 noundef %6924) #10
  br label %6926

6926:                                             ; preds = %6909, %6892
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %6927

6927:                                             ; preds = %6926
  br label %6928

6928:                                             ; preds = %6927
  call void @exit(i32 noundef 1) #12
  unreachable

6929:                                             ; No predecessors!
  br label %6930

6930:                                             ; preds = %6929
  br label %6931

6931:                                             ; preds = %6930, %6872
  br label %6932

6932:                                             ; preds = %6931
  br label %6933

6933:                                             ; preds = %6932
  call void @llvm.lifetime.start.p0(i64 2, ptr %164) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %164, ptr align 1 @__const.main.verify_data_allow, i64 2, i1 false)
  br label %6934

6934:                                             ; preds = %6933
  %6935 = load i32, ptr @test_count, align 4, !tbaa !5
  %6936 = add nsw i32 %6935, 1
  store i32 %6936, ptr @test_count, align 4, !tbaa !5
  %6937 = load ptr, ptr %161, align 8, !tbaa !9
  %6938 = call i32 @s2n_config_set_verify_host_callback(ptr noundef %6937, ptr noundef @verify_host_fn, ptr noundef %164)
  %6939 = icmp eq i32 %6938, -1
  br i1 %6939, label %6940, label %6993

6940:                                             ; preds = %6934
  br label %6941

6941:                                             ; preds = %6940
  br label %6942

6942:                                             ; preds = %6941
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #10
  %6943 = call ptr @__errno_location() #11
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  store i32 %6944, ptr %165, align 4, !tbaa !5
  %6945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6946 = call i32 @s2n_print_stacktrace(ptr noundef %6945)
  %6947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6948 = trunc i8 %6947 to i1
  br i1 %6948, label %6949, label %6971

6949:                                             ; preds = %6942
  %6950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6951 = call i32 @fileno(ptr noundef %6950) #10
  %6952 = call i32 @isatty(i32 noundef %6951) #10
  %6953 = icmp ne i32 %6952, 0
  br i1 %6953, label %6954, label %6971

6954:                                             ; preds = %6949
  %6955 = load i32, ptr %165, align 4, !tbaa !5
  %6956 = call ptr @__errno_location() #11
  store i32 %6955, ptr %6956, align 4, !tbaa !5
  %6957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6958 = load i32, ptr @test_count, align 4, !tbaa !5
  %6959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call ptr @s2n_strerror(i32 noundef %6960, ptr noundef @.str.4)
  %6962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = call ptr @s2n_strerror_debug(i32 noundef %6963, ptr noundef @.str.4)
  %6965 = call ptr @__errno_location() #11
  %6966 = load i32, ptr %6965, align 4, !tbaa !5
  %6967 = call ptr @strerror(i32 noundef %6966) #10
  %6968 = call ptr @__errno_location() #11
  %6969 = load i32, ptr %6968, align 4, !tbaa !5
  %6970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6957, ptr noundef @.str.2, i32 noundef %6958, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6961, ptr noundef %6964, ptr noundef %6967, i32 noundef %6969) #10
  br label %6988

6971:                                             ; preds = %6949, %6942
  %6972 = load i32, ptr %165, align 4, !tbaa !5
  %6973 = call ptr @__errno_location() #11
  store i32 %6972, ptr %6973, align 4, !tbaa !5
  %6974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6975 = load i32, ptr @test_count, align 4, !tbaa !5
  %6976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6977 = load i32, ptr %6976, align 4, !tbaa !5
  %6978 = call ptr @s2n_strerror(i32 noundef %6977, ptr noundef @.str.4)
  %6979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6980 = load i32, ptr %6979, align 4, !tbaa !5
  %6981 = call ptr @s2n_strerror_debug(i32 noundef %6980, ptr noundef @.str.4)
  %6982 = call ptr @__errno_location() #11
  %6983 = load i32, ptr %6982, align 4, !tbaa !5
  %6984 = call ptr @strerror(i32 noundef %6983) #10
  %6985 = call ptr @__errno_location() #11
  %6986 = load i32, ptr %6985, align 4, !tbaa !5
  %6987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6974, ptr noundef @.str.5, i32 noundef %6975, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6978, ptr noundef %6981, ptr noundef %6984, i32 noundef %6986) #10
  br label %6988

6988:                                             ; preds = %6971, %6954
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  br label %6989

6989:                                             ; preds = %6988
  br label %6990

6990:                                             ; preds = %6989
  call void @exit(i32 noundef 1) #12
  unreachable

6991:                                             ; No predecessors!
  br label %6992

6992:                                             ; preds = %6991
  br label %6993

6993:                                             ; preds = %6992, %6934
  br label %6994

6994:                                             ; preds = %6993
  br label %6995

6995:                                             ; preds = %6994
  br label %6996

6996:                                             ; preds = %6995
  %6997 = load i32, ptr @test_count, align 4, !tbaa !5
  %6998 = add nsw i32 %6997, 1
  store i32 %6998, ptr @test_count, align 4, !tbaa !5
  %6999 = load ptr, ptr %161, align 8, !tbaa !9
  %7000 = load ptr, ptr %12, align 8, !tbaa !9
  %7001 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6999, ptr noundef %7000)
  %7002 = icmp eq i32 %7001, -1
  br i1 %7002, label %7003, label %7056

7003:                                             ; preds = %6996
  br label %7004

7004:                                             ; preds = %7003
  br label %7005

7005:                                             ; preds = %7004
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #10
  %7006 = call ptr @__errno_location() #11
  %7007 = load i32, ptr %7006, align 4, !tbaa !5
  store i32 %7007, ptr %166, align 4, !tbaa !5
  %7008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7009 = call i32 @s2n_print_stacktrace(ptr noundef %7008)
  %7010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7011 = trunc i8 %7010 to i1
  br i1 %7011, label %7012, label %7034

7012:                                             ; preds = %7005
  %7013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7014 = call i32 @fileno(ptr noundef %7013) #10
  %7015 = call i32 @isatty(i32 noundef %7014) #10
  %7016 = icmp ne i32 %7015, 0
  br i1 %7016, label %7017, label %7034

7017:                                             ; preds = %7012
  %7018 = load i32, ptr %166, align 4, !tbaa !5
  %7019 = call ptr @__errno_location() #11
  store i32 %7018, ptr %7019, align 4, !tbaa !5
  %7020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7021 = load i32, ptr @test_count, align 4, !tbaa !5
  %7022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7023 = load i32, ptr %7022, align 4, !tbaa !5
  %7024 = call ptr @s2n_strerror(i32 noundef %7023, ptr noundef @.str.4)
  %7025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7026 = load i32, ptr %7025, align 4, !tbaa !5
  %7027 = call ptr @s2n_strerror_debug(i32 noundef %7026, ptr noundef @.str.4)
  %7028 = call ptr @__errno_location() #11
  %7029 = load i32, ptr %7028, align 4, !tbaa !5
  %7030 = call ptr @strerror(i32 noundef %7029) #10
  %7031 = call ptr @__errno_location() #11
  %7032 = load i32, ptr %7031, align 4, !tbaa !5
  %7033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7020, ptr noundef @.str.2, i32 noundef %7021, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 337, ptr noundef %7024, ptr noundef %7027, ptr noundef %7030, i32 noundef %7032) #10
  br label %7051

7034:                                             ; preds = %7012, %7005
  %7035 = load i32, ptr %166, align 4, !tbaa !5
  %7036 = call ptr @__errno_location() #11
  store i32 %7035, ptr %7036, align 4, !tbaa !5
  %7037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7038 = load i32, ptr @test_count, align 4, !tbaa !5
  %7039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7040 = load i32, ptr %7039, align 4, !tbaa !5
  %7041 = call ptr @s2n_strerror(i32 noundef %7040, ptr noundef @.str.4)
  %7042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7043 = load i32, ptr %7042, align 4, !tbaa !5
  %7044 = call ptr @s2n_strerror_debug(i32 noundef %7043, ptr noundef @.str.4)
  %7045 = call ptr @__errno_location() #11
  %7046 = load i32, ptr %7045, align 4, !tbaa !5
  %7047 = call ptr @strerror(i32 noundef %7046) #10
  %7048 = call ptr @__errno_location() #11
  %7049 = load i32, ptr %7048, align 4, !tbaa !5
  %7050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7037, ptr noundef @.str.5, i32 noundef %7038, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 337, ptr noundef %7041, ptr noundef %7044, ptr noundef %7047, i32 noundef %7049) #10
  br label %7051

7051:                                             ; preds = %7034, %7017
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #10
  br label %7052

7052:                                             ; preds = %7051
  br label %7053

7053:                                             ; preds = %7052
  call void @exit(i32 noundef 1) #12
  unreachable

7054:                                             ; No predecessors!
  br label %7055

7055:                                             ; preds = %7054
  br label %7056

7056:                                             ; preds = %7055, %6996
  br label %7057

7057:                                             ; preds = %7056
  br label %7058

7058:                                             ; preds = %7057
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #10
  %7059 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7059, ptr %167, align 8, !tbaa !9
  br label %7060

7060:                                             ; preds = %7058
  %7061 = load i32, ptr @test_count, align 4, !tbaa !5
  %7062 = add nsw i32 %7061, 1
  store i32 %7062, ptr @test_count, align 4, !tbaa !5
  %7063 = load ptr, ptr %167, align 8, !tbaa !9
  %7064 = icmp eq ptr %7063, null
  br i1 %7064, label %7065, label %7118

7065:                                             ; preds = %7060
  br label %7066

7066:                                             ; preds = %7065
  br label %7067

7067:                                             ; preds = %7066
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #10
  %7068 = call ptr @__errno_location() #11
  %7069 = load i32, ptr %7068, align 4, !tbaa !5
  store i32 %7069, ptr %168, align 4, !tbaa !5
  %7070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7071 = call i32 @s2n_print_stacktrace(ptr noundef %7070)
  %7072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7073 = trunc i8 %7072 to i1
  br i1 %7073, label %7074, label %7096

7074:                                             ; preds = %7067
  %7075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7076 = call i32 @fileno(ptr noundef %7075) #10
  %7077 = call i32 @isatty(i32 noundef %7076) #10
  %7078 = icmp ne i32 %7077, 0
  br i1 %7078, label %7079, label %7096

7079:                                             ; preds = %7074
  %7080 = load i32, ptr %168, align 4, !tbaa !5
  %7081 = call ptr @__errno_location() #11
  store i32 %7080, ptr %7081, align 4, !tbaa !5
  %7082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7083 = load i32, ptr @test_count, align 4, !tbaa !5
  %7084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7085 = load i32, ptr %7084, align 4, !tbaa !5
  %7086 = call ptr @s2n_strerror(i32 noundef %7085, ptr noundef @.str.4)
  %7087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7088 = load i32, ptr %7087, align 4, !tbaa !5
  %7089 = call ptr @s2n_strerror_debug(i32 noundef %7088, ptr noundef @.str.4)
  %7090 = call ptr @__errno_location() #11
  %7091 = load i32, ptr %7090, align 4, !tbaa !5
  %7092 = call ptr @strerror(i32 noundef %7091) #10
  %7093 = call ptr @__errno_location() #11
  %7094 = load i32, ptr %7093, align 4, !tbaa !5
  %7095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7082, ptr noundef @.str.2, i32 noundef %7083, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 341, ptr noundef %7086, ptr noundef %7089, ptr noundef %7092, i32 noundef %7094) #10
  br label %7113

7096:                                             ; preds = %7074, %7067
  %7097 = load i32, ptr %168, align 4, !tbaa !5
  %7098 = call ptr @__errno_location() #11
  store i32 %7097, ptr %7098, align 4, !tbaa !5
  %7099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7100 = load i32, ptr @test_count, align 4, !tbaa !5
  %7101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7102 = load i32, ptr %7101, align 4, !tbaa !5
  %7103 = call ptr @s2n_strerror(i32 noundef %7102, ptr noundef @.str.4)
  %7104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7105 = load i32, ptr %7104, align 4, !tbaa !5
  %7106 = call ptr @s2n_strerror_debug(i32 noundef %7105, ptr noundef @.str.4)
  %7107 = call ptr @__errno_location() #11
  %7108 = load i32, ptr %7107, align 4, !tbaa !5
  %7109 = call ptr @strerror(i32 noundef %7108) #10
  %7110 = call ptr @__errno_location() #11
  %7111 = load i32, ptr %7110, align 4, !tbaa !5
  %7112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7099, ptr noundef @.str.5, i32 noundef %7100, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 341, ptr noundef %7103, ptr noundef %7106, ptr noundef %7109, i32 noundef %7111) #10
  br label %7113

7113:                                             ; preds = %7096, %7079
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #10
  br label %7114

7114:                                             ; preds = %7113
  br label %7115

7115:                                             ; preds = %7114
  call void @exit(i32 noundef 1) #12
  unreachable

7116:                                             ; No predecessors!
  br label %7117

7117:                                             ; preds = %7116
  br label %7118

7118:                                             ; preds = %7117, %7060
  br label %7119

7119:                                             ; preds = %7118
  br label %7120

7120:                                             ; preds = %7119
  br label %7121

7121:                                             ; preds = %7120
  %7122 = load i32, ptr @test_count, align 4, !tbaa !5
  %7123 = add nsw i32 %7122, 1
  store i32 %7123, ptr @test_count, align 4, !tbaa !5
  %7124 = load ptr, ptr %167, align 8, !tbaa !9
  %7125 = call i32 @s2n_connection_set_blinding(ptr noundef %7124, i32 noundef 1)
  %7126 = icmp eq i32 %7125, -1
  br i1 %7126, label %7127, label %7180

7127:                                             ; preds = %7121
  br label %7128

7128:                                             ; preds = %7127
  br label %7129

7129:                                             ; preds = %7128
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  %7130 = call ptr @__errno_location() #11
  %7131 = load i32, ptr %7130, align 4, !tbaa !5
  store i32 %7131, ptr %169, align 4, !tbaa !5
  %7132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7133 = call i32 @s2n_print_stacktrace(ptr noundef %7132)
  %7134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7135 = trunc i8 %7134 to i1
  br i1 %7135, label %7136, label %7158

7136:                                             ; preds = %7129
  %7137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7138 = call i32 @fileno(ptr noundef %7137) #10
  %7139 = call i32 @isatty(i32 noundef %7138) #10
  %7140 = icmp ne i32 %7139, 0
  br i1 %7140, label %7141, label %7158

7141:                                             ; preds = %7136
  %7142 = load i32, ptr %169, align 4, !tbaa !5
  %7143 = call ptr @__errno_location() #11
  store i32 %7142, ptr %7143, align 4, !tbaa !5
  %7144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7145 = load i32, ptr @test_count, align 4, !tbaa !5
  %7146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7147 = load i32, ptr %7146, align 4, !tbaa !5
  %7148 = call ptr @s2n_strerror(i32 noundef %7147, ptr noundef @.str.4)
  %7149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7150 = load i32, ptr %7149, align 4, !tbaa !5
  %7151 = call ptr @s2n_strerror_debug(i32 noundef %7150, ptr noundef @.str.4)
  %7152 = call ptr @__errno_location() #11
  %7153 = load i32, ptr %7152, align 4, !tbaa !5
  %7154 = call ptr @strerror(i32 noundef %7153) #10
  %7155 = call ptr @__errno_location() #11
  %7156 = load i32, ptr %7155, align 4, !tbaa !5
  %7157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7144, ptr noundef @.str.2, i32 noundef %7145, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 342, ptr noundef %7148, ptr noundef %7151, ptr noundef %7154, i32 noundef %7156) #10
  br label %7175

7158:                                             ; preds = %7136, %7129
  %7159 = load i32, ptr %169, align 4, !tbaa !5
  %7160 = call ptr @__errno_location() #11
  store i32 %7159, ptr %7160, align 4, !tbaa !5
  %7161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7162 = load i32, ptr @test_count, align 4, !tbaa !5
  %7163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7164 = load i32, ptr %7163, align 4, !tbaa !5
  %7165 = call ptr @s2n_strerror(i32 noundef %7164, ptr noundef @.str.4)
  %7166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7167 = load i32, ptr %7166, align 4, !tbaa !5
  %7168 = call ptr @s2n_strerror_debug(i32 noundef %7167, ptr noundef @.str.4)
  %7169 = call ptr @__errno_location() #11
  %7170 = load i32, ptr %7169, align 4, !tbaa !5
  %7171 = call ptr @strerror(i32 noundef %7170) #10
  %7172 = call ptr @__errno_location() #11
  %7173 = load i32, ptr %7172, align 4, !tbaa !5
  %7174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7161, ptr noundef @.str.5, i32 noundef %7162, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 342, ptr noundef %7165, ptr noundef %7168, ptr noundef %7171, i32 noundef %7173) #10
  br label %7175

7175:                                             ; preds = %7158, %7141
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  br label %7176

7176:                                             ; preds = %7175
  br label %7177

7177:                                             ; preds = %7176
  call void @exit(i32 noundef 1) #12
  unreachable

7178:                                             ; No predecessors!
  br label %7179

7179:                                             ; preds = %7178
  br label %7180

7180:                                             ; preds = %7179, %7121
  br label %7181

7181:                                             ; preds = %7180
  br label %7182

7182:                                             ; preds = %7181
  %7183 = load i32, ptr %154, align 4, !tbaa !5
  switch i32 %7183, label %7562 [
    i32 0, label %7184
    i32 1, label %7310
    i32 2, label %7436
  ]

7184:                                             ; preds = %7182
  br label %7185

7185:                                             ; preds = %7184
  %7186 = load i32, ptr @test_count, align 4, !tbaa !5
  %7187 = add nsw i32 %7186, 1
  store i32 %7187, ptr @test_count, align 4, !tbaa !5
  %7188 = load ptr, ptr %161, align 8, !tbaa !9
  %7189 = call i32 @s2n_config_set_client_auth_type(ptr noundef %7188, i32 noundef 1)
  %7190 = icmp eq i32 %7189, -1
  br i1 %7190, label %7191, label %7244

7191:                                             ; preds = %7185
  br label %7192

7192:                                             ; preds = %7191
  br label %7193

7193:                                             ; preds = %7192
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #10
  %7194 = call ptr @__errno_location() #11
  %7195 = load i32, ptr %7194, align 4, !tbaa !5
  store i32 %7195, ptr %170, align 4, !tbaa !5
  %7196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7197 = call i32 @s2n_print_stacktrace(ptr noundef %7196)
  %7198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7199 = trunc i8 %7198 to i1
  br i1 %7199, label %7200, label %7222

7200:                                             ; preds = %7193
  %7201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7202 = call i32 @fileno(ptr noundef %7201) #10
  %7203 = call i32 @isatty(i32 noundef %7202) #10
  %7204 = icmp ne i32 %7203, 0
  br i1 %7204, label %7205, label %7222

7205:                                             ; preds = %7200
  %7206 = load i32, ptr %170, align 4, !tbaa !5
  %7207 = call ptr @__errno_location() #11
  store i32 %7206, ptr %7207, align 4, !tbaa !5
  %7208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7209 = load i32, ptr @test_count, align 4, !tbaa !5
  %7210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7211 = load i32, ptr %7210, align 4, !tbaa !5
  %7212 = call ptr @s2n_strerror(i32 noundef %7211, ptr noundef @.str.4)
  %7213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7214 = load i32, ptr %7213, align 4, !tbaa !5
  %7215 = call ptr @s2n_strerror_debug(i32 noundef %7214, ptr noundef @.str.4)
  %7216 = call ptr @__errno_location() #11
  %7217 = load i32, ptr %7216, align 4, !tbaa !5
  %7218 = call ptr @strerror(i32 noundef %7217) #10
  %7219 = call ptr @__errno_location() #11
  %7220 = load i32, ptr %7219, align 4, !tbaa !5
  %7221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7208, ptr noundef @.str.2, i32 noundef %7209, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 346, ptr noundef %7212, ptr noundef %7215, ptr noundef %7218, i32 noundef %7220) #10
  br label %7239

7222:                                             ; preds = %7200, %7193
  %7223 = load i32, ptr %170, align 4, !tbaa !5
  %7224 = call ptr @__errno_location() #11
  store i32 %7223, ptr %7224, align 4, !tbaa !5
  %7225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7226 = load i32, ptr @test_count, align 4, !tbaa !5
  %7227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7228 = load i32, ptr %7227, align 4, !tbaa !5
  %7229 = call ptr @s2n_strerror(i32 noundef %7228, ptr noundef @.str.4)
  %7230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7231 = load i32, ptr %7230, align 4, !tbaa !5
  %7232 = call ptr @s2n_strerror_debug(i32 noundef %7231, ptr noundef @.str.4)
  %7233 = call ptr @__errno_location() #11
  %7234 = load i32, ptr %7233, align 4, !tbaa !5
  %7235 = call ptr @strerror(i32 noundef %7234) #10
  %7236 = call ptr @__errno_location() #11
  %7237 = load i32, ptr %7236, align 4, !tbaa !5
  %7238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7225, ptr noundef @.str.5, i32 noundef %7226, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 346, ptr noundef %7229, ptr noundef %7232, ptr noundef %7235, i32 noundef %7237) #10
  br label %7239

7239:                                             ; preds = %7222, %7205
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #10
  br label %7240

7240:                                             ; preds = %7239
  br label %7241

7241:                                             ; preds = %7240
  call void @exit(i32 noundef 1) #12
  unreachable

7242:                                             ; No predecessors!
  br label %7243

7243:                                             ; preds = %7242
  br label %7244

7244:                                             ; preds = %7243, %7185
  br label %7245

7245:                                             ; preds = %7244
  br label %7246

7246:                                             ; preds = %7245
  br label %7247

7247:                                             ; preds = %7246
  %7248 = load i32, ptr @test_count, align 4, !tbaa !5
  %7249 = add nsw i32 %7248, 1
  store i32 %7249, ptr @test_count, align 4, !tbaa !5
  %7250 = load ptr, ptr %167, align 8, !tbaa !9
  %7251 = load ptr, ptr %161, align 8, !tbaa !9
  %7252 = call i32 @s2n_connection_set_config(ptr noundef %7250, ptr noundef %7251)
  %7253 = icmp eq i32 %7252, -1
  br i1 %7253, label %7254, label %7307

7254:                                             ; preds = %7247
  br label %7255

7255:                                             ; preds = %7254
  br label %7256

7256:                                             ; preds = %7255
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #10
  %7257 = call ptr @__errno_location() #11
  %7258 = load i32, ptr %7257, align 4, !tbaa !5
  store i32 %7258, ptr %171, align 4, !tbaa !5
  %7259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7260 = call i32 @s2n_print_stacktrace(ptr noundef %7259)
  %7261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7262 = trunc i8 %7261 to i1
  br i1 %7262, label %7263, label %7285

7263:                                             ; preds = %7256
  %7264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7265 = call i32 @fileno(ptr noundef %7264) #10
  %7266 = call i32 @isatty(i32 noundef %7265) #10
  %7267 = icmp ne i32 %7266, 0
  br i1 %7267, label %7268, label %7285

7268:                                             ; preds = %7263
  %7269 = load i32, ptr %171, align 4, !tbaa !5
  %7270 = call ptr @__errno_location() #11
  store i32 %7269, ptr %7270, align 4, !tbaa !5
  %7271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7272 = load i32, ptr @test_count, align 4, !tbaa !5
  %7273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  %7275 = call ptr @s2n_strerror(i32 noundef %7274, ptr noundef @.str.4)
  %7276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7277 = load i32, ptr %7276, align 4, !tbaa !5
  %7278 = call ptr @s2n_strerror_debug(i32 noundef %7277, ptr noundef @.str.4)
  %7279 = call ptr @__errno_location() #11
  %7280 = load i32, ptr %7279, align 4, !tbaa !5
  %7281 = call ptr @strerror(i32 noundef %7280) #10
  %7282 = call ptr @__errno_location() #11
  %7283 = load i32, ptr %7282, align 4, !tbaa !5
  %7284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7271, ptr noundef @.str.2, i32 noundef %7272, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 347, ptr noundef %7275, ptr noundef %7278, ptr noundef %7281, i32 noundef %7283) #10
  br label %7302

7285:                                             ; preds = %7263, %7256
  %7286 = load i32, ptr %171, align 4, !tbaa !5
  %7287 = call ptr @__errno_location() #11
  store i32 %7286, ptr %7287, align 4, !tbaa !5
  %7288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7289 = load i32, ptr @test_count, align 4, !tbaa !5
  %7290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7291 = load i32, ptr %7290, align 4, !tbaa !5
  %7292 = call ptr @s2n_strerror(i32 noundef %7291, ptr noundef @.str.4)
  %7293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7294 = load i32, ptr %7293, align 4, !tbaa !5
  %7295 = call ptr @s2n_strerror_debug(i32 noundef %7294, ptr noundef @.str.4)
  %7296 = call ptr @__errno_location() #11
  %7297 = load i32, ptr %7296, align 4, !tbaa !5
  %7298 = call ptr @strerror(i32 noundef %7297) #10
  %7299 = call ptr @__errno_location() #11
  %7300 = load i32, ptr %7299, align 4, !tbaa !5
  %7301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7288, ptr noundef @.str.5, i32 noundef %7289, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 347, ptr noundef %7292, ptr noundef %7295, ptr noundef %7298, i32 noundef %7300) #10
  br label %7302

7302:                                             ; preds = %7285, %7268
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #10
  br label %7303

7303:                                             ; preds = %7302
  br label %7304

7304:                                             ; preds = %7303
  call void @exit(i32 noundef 1) #12
  unreachable

7305:                                             ; No predecessors!
  br label %7306

7306:                                             ; preds = %7305
  br label %7307

7307:                                             ; preds = %7306, %7247
  br label %7308

7308:                                             ; preds = %7307
  br label %7309

7309:                                             ; preds = %7308
  br label %7615

7310:                                             ; preds = %7182
  br label %7311

7311:                                             ; preds = %7310
  %7312 = load i32, ptr @test_count, align 4, !tbaa !5
  %7313 = add nsw i32 %7312, 1
  store i32 %7313, ptr @test_count, align 4, !tbaa !5
  %7314 = load ptr, ptr %167, align 8, !tbaa !9
  %7315 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %7314, i32 noundef 1)
  %7316 = icmp eq i32 %7315, -1
  br i1 %7316, label %7317, label %7370

7317:                                             ; preds = %7311
  br label %7318

7318:                                             ; preds = %7317
  br label %7319

7319:                                             ; preds = %7318
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #10
  %7320 = call ptr @__errno_location() #11
  %7321 = load i32, ptr %7320, align 4, !tbaa !5
  store i32 %7321, ptr %172, align 4, !tbaa !5
  %7322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7323 = call i32 @s2n_print_stacktrace(ptr noundef %7322)
  %7324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7325 = trunc i8 %7324 to i1
  br i1 %7325, label %7326, label %7348

7326:                                             ; preds = %7319
  %7327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7328 = call i32 @fileno(ptr noundef %7327) #10
  %7329 = call i32 @isatty(i32 noundef %7328) #10
  %7330 = icmp ne i32 %7329, 0
  br i1 %7330, label %7331, label %7348

7331:                                             ; preds = %7326
  %7332 = load i32, ptr %172, align 4, !tbaa !5
  %7333 = call ptr @__errno_location() #11
  store i32 %7332, ptr %7333, align 4, !tbaa !5
  %7334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7335 = load i32, ptr @test_count, align 4, !tbaa !5
  %7336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7337 = load i32, ptr %7336, align 4, !tbaa !5
  %7338 = call ptr @s2n_strerror(i32 noundef %7337, ptr noundef @.str.4)
  %7339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7340 = load i32, ptr %7339, align 4, !tbaa !5
  %7341 = call ptr @s2n_strerror_debug(i32 noundef %7340, ptr noundef @.str.4)
  %7342 = call ptr @__errno_location() #11
  %7343 = load i32, ptr %7342, align 4, !tbaa !5
  %7344 = call ptr @strerror(i32 noundef %7343) #10
  %7345 = call ptr @__errno_location() #11
  %7346 = load i32, ptr %7345, align 4, !tbaa !5
  %7347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7334, ptr noundef @.str.2, i32 noundef %7335, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 350, ptr noundef %7338, ptr noundef %7341, ptr noundef %7344, i32 noundef %7346) #10
  br label %7365

7348:                                             ; preds = %7326, %7319
  %7349 = load i32, ptr %172, align 4, !tbaa !5
  %7350 = call ptr @__errno_location() #11
  store i32 %7349, ptr %7350, align 4, !tbaa !5
  %7351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7352 = load i32, ptr @test_count, align 4, !tbaa !5
  %7353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7354 = load i32, ptr %7353, align 4, !tbaa !5
  %7355 = call ptr @s2n_strerror(i32 noundef %7354, ptr noundef @.str.4)
  %7356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7357 = load i32, ptr %7356, align 4, !tbaa !5
  %7358 = call ptr @s2n_strerror_debug(i32 noundef %7357, ptr noundef @.str.4)
  %7359 = call ptr @__errno_location() #11
  %7360 = load i32, ptr %7359, align 4, !tbaa !5
  %7361 = call ptr @strerror(i32 noundef %7360) #10
  %7362 = call ptr @__errno_location() #11
  %7363 = load i32, ptr %7362, align 4, !tbaa !5
  %7364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7351, ptr noundef @.str.5, i32 noundef %7352, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 350, ptr noundef %7355, ptr noundef %7358, ptr noundef %7361, i32 noundef %7363) #10
  br label %7365

7365:                                             ; preds = %7348, %7331
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #10
  br label %7366

7366:                                             ; preds = %7365
  br label %7367

7367:                                             ; preds = %7366
  call void @exit(i32 noundef 1) #12
  unreachable

7368:                                             ; No predecessors!
  br label %7369

7369:                                             ; preds = %7368
  br label %7370

7370:                                             ; preds = %7369, %7311
  br label %7371

7371:                                             ; preds = %7370
  br label %7372

7372:                                             ; preds = %7371
  br label %7373

7373:                                             ; preds = %7372
  %7374 = load i32, ptr @test_count, align 4, !tbaa !5
  %7375 = add nsw i32 %7374, 1
  store i32 %7375, ptr @test_count, align 4, !tbaa !5
  %7376 = load ptr, ptr %167, align 8, !tbaa !9
  %7377 = load ptr, ptr %161, align 8, !tbaa !9
  %7378 = call i32 @s2n_connection_set_config(ptr noundef %7376, ptr noundef %7377)
  %7379 = icmp eq i32 %7378, -1
  br i1 %7379, label %7380, label %7433

7380:                                             ; preds = %7373
  br label %7381

7381:                                             ; preds = %7380
  br label %7382

7382:                                             ; preds = %7381
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #10
  %7383 = call ptr @__errno_location() #11
  %7384 = load i32, ptr %7383, align 4, !tbaa !5
  store i32 %7384, ptr %173, align 4, !tbaa !5
  %7385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7386 = call i32 @s2n_print_stacktrace(ptr noundef %7385)
  %7387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7388 = trunc i8 %7387 to i1
  br i1 %7388, label %7389, label %7411

7389:                                             ; preds = %7382
  %7390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7391 = call i32 @fileno(ptr noundef %7390) #10
  %7392 = call i32 @isatty(i32 noundef %7391) #10
  %7393 = icmp ne i32 %7392, 0
  br i1 %7393, label %7394, label %7411

7394:                                             ; preds = %7389
  %7395 = load i32, ptr %173, align 4, !tbaa !5
  %7396 = call ptr @__errno_location() #11
  store i32 %7395, ptr %7396, align 4, !tbaa !5
  %7397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7398 = load i32, ptr @test_count, align 4, !tbaa !5
  %7399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7400 = load i32, ptr %7399, align 4, !tbaa !5
  %7401 = call ptr @s2n_strerror(i32 noundef %7400, ptr noundef @.str.4)
  %7402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7403 = load i32, ptr %7402, align 4, !tbaa !5
  %7404 = call ptr @s2n_strerror_debug(i32 noundef %7403, ptr noundef @.str.4)
  %7405 = call ptr @__errno_location() #11
  %7406 = load i32, ptr %7405, align 4, !tbaa !5
  %7407 = call ptr @strerror(i32 noundef %7406) #10
  %7408 = call ptr @__errno_location() #11
  %7409 = load i32, ptr %7408, align 4, !tbaa !5
  %7410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7397, ptr noundef @.str.2, i32 noundef %7398, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 351, ptr noundef %7401, ptr noundef %7404, ptr noundef %7407, i32 noundef %7409) #10
  br label %7428

7411:                                             ; preds = %7389, %7382
  %7412 = load i32, ptr %173, align 4, !tbaa !5
  %7413 = call ptr @__errno_location() #11
  store i32 %7412, ptr %7413, align 4, !tbaa !5
  %7414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7415 = load i32, ptr @test_count, align 4, !tbaa !5
  %7416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7417 = load i32, ptr %7416, align 4, !tbaa !5
  %7418 = call ptr @s2n_strerror(i32 noundef %7417, ptr noundef @.str.4)
  %7419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7420 = load i32, ptr %7419, align 4, !tbaa !5
  %7421 = call ptr @s2n_strerror_debug(i32 noundef %7420, ptr noundef @.str.4)
  %7422 = call ptr @__errno_location() #11
  %7423 = load i32, ptr %7422, align 4, !tbaa !5
  %7424 = call ptr @strerror(i32 noundef %7423) #10
  %7425 = call ptr @__errno_location() #11
  %7426 = load i32, ptr %7425, align 4, !tbaa !5
  %7427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7414, ptr noundef @.str.5, i32 noundef %7415, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 351, ptr noundef %7418, ptr noundef %7421, ptr noundef %7424, i32 noundef %7426) #10
  br label %7428

7428:                                             ; preds = %7411, %7394
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #10
  br label %7429

7429:                                             ; preds = %7428
  br label %7430

7430:                                             ; preds = %7429
  call void @exit(i32 noundef 1) #12
  unreachable

7431:                                             ; No predecessors!
  br label %7432

7432:                                             ; preds = %7431
  br label %7433

7433:                                             ; preds = %7432, %7373
  br label %7434

7434:                                             ; preds = %7433
  br label %7435

7435:                                             ; preds = %7434
  br label %7615

7436:                                             ; preds = %7182
  br label %7437

7437:                                             ; preds = %7436
  %7438 = load i32, ptr @test_count, align 4, !tbaa !5
  %7439 = add nsw i32 %7438, 1
  store i32 %7439, ptr @test_count, align 4, !tbaa !5
  %7440 = load ptr, ptr %167, align 8, !tbaa !9
  %7441 = load ptr, ptr %161, align 8, !tbaa !9
  %7442 = call i32 @s2n_connection_set_config(ptr noundef %7440, ptr noundef %7441)
  %7443 = icmp eq i32 %7442, -1
  br i1 %7443, label %7444, label %7497

7444:                                             ; preds = %7437
  br label %7445

7445:                                             ; preds = %7444
  br label %7446

7446:                                             ; preds = %7445
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #10
  %7447 = call ptr @__errno_location() #11
  %7448 = load i32, ptr %7447, align 4, !tbaa !5
  store i32 %7448, ptr %174, align 4, !tbaa !5
  %7449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7450 = call i32 @s2n_print_stacktrace(ptr noundef %7449)
  %7451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7452 = trunc i8 %7451 to i1
  br i1 %7452, label %7453, label %7475

7453:                                             ; preds = %7446
  %7454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7455 = call i32 @fileno(ptr noundef %7454) #10
  %7456 = call i32 @isatty(i32 noundef %7455) #10
  %7457 = icmp ne i32 %7456, 0
  br i1 %7457, label %7458, label %7475

7458:                                             ; preds = %7453
  %7459 = load i32, ptr %174, align 4, !tbaa !5
  %7460 = call ptr @__errno_location() #11
  store i32 %7459, ptr %7460, align 4, !tbaa !5
  %7461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7462 = load i32, ptr @test_count, align 4, !tbaa !5
  %7463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7464 = load i32, ptr %7463, align 4, !tbaa !5
  %7465 = call ptr @s2n_strerror(i32 noundef %7464, ptr noundef @.str.4)
  %7466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7467 = load i32, ptr %7466, align 4, !tbaa !5
  %7468 = call ptr @s2n_strerror_debug(i32 noundef %7467, ptr noundef @.str.4)
  %7469 = call ptr @__errno_location() #11
  %7470 = load i32, ptr %7469, align 4, !tbaa !5
  %7471 = call ptr @strerror(i32 noundef %7470) #10
  %7472 = call ptr @__errno_location() #11
  %7473 = load i32, ptr %7472, align 4, !tbaa !5
  %7474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7461, ptr noundef @.str.2, i32 noundef %7462, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 354, ptr noundef %7465, ptr noundef %7468, ptr noundef %7471, i32 noundef %7473) #10
  br label %7492

7475:                                             ; preds = %7453, %7446
  %7476 = load i32, ptr %174, align 4, !tbaa !5
  %7477 = call ptr @__errno_location() #11
  store i32 %7476, ptr %7477, align 4, !tbaa !5
  %7478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7479 = load i32, ptr @test_count, align 4, !tbaa !5
  %7480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7481 = load i32, ptr %7480, align 4, !tbaa !5
  %7482 = call ptr @s2n_strerror(i32 noundef %7481, ptr noundef @.str.4)
  %7483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  %7485 = call ptr @s2n_strerror_debug(i32 noundef %7484, ptr noundef @.str.4)
  %7486 = call ptr @__errno_location() #11
  %7487 = load i32, ptr %7486, align 4, !tbaa !5
  %7488 = call ptr @strerror(i32 noundef %7487) #10
  %7489 = call ptr @__errno_location() #11
  %7490 = load i32, ptr %7489, align 4, !tbaa !5
  %7491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7478, ptr noundef @.str.5, i32 noundef %7479, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 354, ptr noundef %7482, ptr noundef %7485, ptr noundef %7488, i32 noundef %7490) #10
  br label %7492

7492:                                             ; preds = %7475, %7458
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #10
  br label %7493

7493:                                             ; preds = %7492
  br label %7494

7494:                                             ; preds = %7493
  call void @exit(i32 noundef 1) #12
  unreachable

7495:                                             ; No predecessors!
  br label %7496

7496:                                             ; preds = %7495
  br label %7497

7497:                                             ; preds = %7496, %7437
  br label %7498

7498:                                             ; preds = %7497
  br label %7499

7499:                                             ; preds = %7498
  br label %7500

7500:                                             ; preds = %7499
  %7501 = load i32, ptr @test_count, align 4, !tbaa !5
  %7502 = add nsw i32 %7501, 1
  store i32 %7502, ptr @test_count, align 4, !tbaa !5
  %7503 = load ptr, ptr %167, align 8, !tbaa !9
  %7504 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %7503, i32 noundef 1)
  %7505 = icmp eq i32 %7504, -1
  br i1 %7505, label %7506, label %7559

7506:                                             ; preds = %7500
  br label %7507

7507:                                             ; preds = %7506
  br label %7508

7508:                                             ; preds = %7507
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #10
  %7509 = call ptr @__errno_location() #11
  %7510 = load i32, ptr %7509, align 4, !tbaa !5
  store i32 %7510, ptr %175, align 4, !tbaa !5
  %7511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7512 = call i32 @s2n_print_stacktrace(ptr noundef %7511)
  %7513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7514 = trunc i8 %7513 to i1
  br i1 %7514, label %7515, label %7537

7515:                                             ; preds = %7508
  %7516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7517 = call i32 @fileno(ptr noundef %7516) #10
  %7518 = call i32 @isatty(i32 noundef %7517) #10
  %7519 = icmp ne i32 %7518, 0
  br i1 %7519, label %7520, label %7537

7520:                                             ; preds = %7515
  %7521 = load i32, ptr %175, align 4, !tbaa !5
  %7522 = call ptr @__errno_location() #11
  store i32 %7521, ptr %7522, align 4, !tbaa !5
  %7523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7524 = load i32, ptr @test_count, align 4, !tbaa !5
  %7525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7526 = load i32, ptr %7525, align 4, !tbaa !5
  %7527 = call ptr @s2n_strerror(i32 noundef %7526, ptr noundef @.str.4)
  %7528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7529 = load i32, ptr %7528, align 4, !tbaa !5
  %7530 = call ptr @s2n_strerror_debug(i32 noundef %7529, ptr noundef @.str.4)
  %7531 = call ptr @__errno_location() #11
  %7532 = load i32, ptr %7531, align 4, !tbaa !5
  %7533 = call ptr @strerror(i32 noundef %7532) #10
  %7534 = call ptr @__errno_location() #11
  %7535 = load i32, ptr %7534, align 4, !tbaa !5
  %7536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7523, ptr noundef @.str.2, i32 noundef %7524, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 355, ptr noundef %7527, ptr noundef %7530, ptr noundef %7533, i32 noundef %7535) #10
  br label %7554

7537:                                             ; preds = %7515, %7508
  %7538 = load i32, ptr %175, align 4, !tbaa !5
  %7539 = call ptr @__errno_location() #11
  store i32 %7538, ptr %7539, align 4, !tbaa !5
  %7540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7541 = load i32, ptr @test_count, align 4, !tbaa !5
  %7542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7543 = load i32, ptr %7542, align 4, !tbaa !5
  %7544 = call ptr @s2n_strerror(i32 noundef %7543, ptr noundef @.str.4)
  %7545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7546 = load i32, ptr %7545, align 4, !tbaa !5
  %7547 = call ptr @s2n_strerror_debug(i32 noundef %7546, ptr noundef @.str.4)
  %7548 = call ptr @__errno_location() #11
  %7549 = load i32, ptr %7548, align 4, !tbaa !5
  %7550 = call ptr @strerror(i32 noundef %7549) #10
  %7551 = call ptr @__errno_location() #11
  %7552 = load i32, ptr %7551, align 4, !tbaa !5
  %7553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7540, ptr noundef @.str.5, i32 noundef %7541, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 355, ptr noundef %7544, ptr noundef %7547, ptr noundef %7550, i32 noundef %7552) #10
  br label %7554

7554:                                             ; preds = %7537, %7520
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #10
  br label %7555

7555:                                             ; preds = %7554
  br label %7556

7556:                                             ; preds = %7555
  call void @exit(i32 noundef 1) #12
  unreachable

7557:                                             ; No predecessors!
  br label %7558

7558:                                             ; preds = %7557
  br label %7559

7559:                                             ; preds = %7558, %7500
  br label %7560

7560:                                             ; preds = %7559
  br label %7561

7561:                                             ; preds = %7560
  br label %7615

7562:                                             ; preds = %7182
  br label %7563

7563:                                             ; preds = %7562
  br label %7564

7564:                                             ; preds = %7563
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #10
  %7565 = call ptr @__errno_location() #11
  %7566 = load i32, ptr %7565, align 4, !tbaa !5
  store i32 %7566, ptr %176, align 4, !tbaa !5
  %7567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7568 = call i32 @s2n_print_stacktrace(ptr noundef %7567)
  %7569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7570 = trunc i8 %7569 to i1
  br i1 %7570, label %7571, label %7593

7571:                                             ; preds = %7564
  %7572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7573 = call i32 @fileno(ptr noundef %7572) #10
  %7574 = call i32 @isatty(i32 noundef %7573) #10
  %7575 = icmp ne i32 %7574, 0
  br i1 %7575, label %7576, label %7593

7576:                                             ; preds = %7571
  %7577 = load i32, ptr %176, align 4, !tbaa !5
  %7578 = call ptr @__errno_location() #11
  store i32 %7577, ptr %7578, align 4, !tbaa !5
  %7579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7580 = load i32, ptr @test_count, align 4, !tbaa !5
  %7581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7582 = load i32, ptr %7581, align 4, !tbaa !5
  %7583 = call ptr @s2n_strerror(i32 noundef %7582, ptr noundef @.str.4)
  %7584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7585 = load i32, ptr %7584, align 4, !tbaa !5
  %7586 = call ptr @s2n_strerror_debug(i32 noundef %7585, ptr noundef @.str.4)
  %7587 = call ptr @__errno_location() #11
  %7588 = load i32, ptr %7587, align 4, !tbaa !5
  %7589 = call ptr @strerror(i32 noundef %7588) #10
  %7590 = call ptr @__errno_location() #11
  %7591 = load i32, ptr %7590, align 4, !tbaa !5
  %7592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7579, ptr noundef @.str.2, i32 noundef %7580, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 358, ptr noundef %7583, ptr noundef %7586, ptr noundef %7589, i32 noundef %7591) #10
  br label %7610

7593:                                             ; preds = %7571, %7564
  %7594 = load i32, ptr %176, align 4, !tbaa !5
  %7595 = call ptr @__errno_location() #11
  store i32 %7594, ptr %7595, align 4, !tbaa !5
  %7596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7597 = load i32, ptr @test_count, align 4, !tbaa !5
  %7598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7599 = load i32, ptr %7598, align 4, !tbaa !5
  %7600 = call ptr @s2n_strerror(i32 noundef %7599, ptr noundef @.str.4)
  %7601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7602 = load i32, ptr %7601, align 4, !tbaa !5
  %7603 = call ptr @s2n_strerror_debug(i32 noundef %7602, ptr noundef @.str.4)
  %7604 = call ptr @__errno_location() #11
  %7605 = load i32, ptr %7604, align 4, !tbaa !5
  %7606 = call ptr @strerror(i32 noundef %7605) #10
  %7607 = call ptr @__errno_location() #11
  %7608 = load i32, ptr %7607, align 4, !tbaa !5
  %7609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7596, ptr noundef @.str.5, i32 noundef %7597, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 358, ptr noundef %7600, ptr noundef %7603, ptr noundef %7606, i32 noundef %7608) #10
  br label %7610

7610:                                             ; preds = %7593, %7576
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #10
  br label %7611

7611:                                             ; preds = %7610
  br label %7612

7612:                                             ; preds = %7611
  call void @exit(i32 noundef 1) #12
  unreachable

7613:                                             ; No predecessors!
  br label %7614

7614:                                             ; preds = %7613
  br label %7615

7615:                                             ; preds = %7614, %7561, %7435, %7309
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #10
  %7616 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7616, ptr %177, align 8, !tbaa !9
  br label %7617

7617:                                             ; preds = %7615
  %7618 = load i32, ptr @test_count, align 4, !tbaa !5
  %7619 = add nsw i32 %7618, 1
  store i32 %7619, ptr @test_count, align 4, !tbaa !5
  %7620 = load ptr, ptr %177, align 8, !tbaa !9
  %7621 = icmp eq ptr %7620, null
  br i1 %7621, label %7622, label %7675

7622:                                             ; preds = %7617
  br label %7623

7623:                                             ; preds = %7622
  br label %7624

7624:                                             ; preds = %7623
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %7625 = call ptr @__errno_location() #11
  %7626 = load i32, ptr %7625, align 4, !tbaa !5
  store i32 %7626, ptr %178, align 4, !tbaa !5
  %7627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7628 = call i32 @s2n_print_stacktrace(ptr noundef %7627)
  %7629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7630 = trunc i8 %7629 to i1
  br i1 %7630, label %7631, label %7653

7631:                                             ; preds = %7624
  %7632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7633 = call i32 @fileno(ptr noundef %7632) #10
  %7634 = call i32 @isatty(i32 noundef %7633) #10
  %7635 = icmp ne i32 %7634, 0
  br i1 %7635, label %7636, label %7653

7636:                                             ; preds = %7631
  %7637 = load i32, ptr %178, align 4, !tbaa !5
  %7638 = call ptr @__errno_location() #11
  store i32 %7637, ptr %7638, align 4, !tbaa !5
  %7639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7640 = load i32, ptr @test_count, align 4, !tbaa !5
  %7641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7642 = load i32, ptr %7641, align 4, !tbaa !5
  %7643 = call ptr @s2n_strerror(i32 noundef %7642, ptr noundef @.str.4)
  %7644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7645 = load i32, ptr %7644, align 4, !tbaa !5
  %7646 = call ptr @s2n_strerror_debug(i32 noundef %7645, ptr noundef @.str.4)
  %7647 = call ptr @__errno_location() #11
  %7648 = load i32, ptr %7647, align 4, !tbaa !5
  %7649 = call ptr @strerror(i32 noundef %7648) #10
  %7650 = call ptr @__errno_location() #11
  %7651 = load i32, ptr %7650, align 4, !tbaa !5
  %7652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7639, ptr noundef @.str.2, i32 noundef %7640, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 363, ptr noundef %7643, ptr noundef %7646, ptr noundef %7649, i32 noundef %7651) #10
  br label %7670

7653:                                             ; preds = %7631, %7624
  %7654 = load i32, ptr %178, align 4, !tbaa !5
  %7655 = call ptr @__errno_location() #11
  store i32 %7654, ptr %7655, align 4, !tbaa !5
  %7656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7657 = load i32, ptr @test_count, align 4, !tbaa !5
  %7658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7659 = load i32, ptr %7658, align 4, !tbaa !5
  %7660 = call ptr @s2n_strerror(i32 noundef %7659, ptr noundef @.str.4)
  %7661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7662 = load i32, ptr %7661, align 4, !tbaa !5
  %7663 = call ptr @s2n_strerror_debug(i32 noundef %7662, ptr noundef @.str.4)
  %7664 = call ptr @__errno_location() #11
  %7665 = load i32, ptr %7664, align 4, !tbaa !5
  %7666 = call ptr @strerror(i32 noundef %7665) #10
  %7667 = call ptr @__errno_location() #11
  %7668 = load i32, ptr %7667, align 4, !tbaa !5
  %7669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7656, ptr noundef @.str.5, i32 noundef %7657, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 363, ptr noundef %7660, ptr noundef %7663, ptr noundef %7666, i32 noundef %7668) #10
  br label %7670

7670:                                             ; preds = %7653, %7636
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %7671

7671:                                             ; preds = %7670
  br label %7672

7672:                                             ; preds = %7671
  call void @exit(i32 noundef 1) #12
  unreachable

7673:                                             ; No predecessors!
  br label %7674

7674:                                             ; preds = %7673
  br label %7675

7675:                                             ; preds = %7674, %7617
  br label %7676

7676:                                             ; preds = %7675
  br label %7677

7677:                                             ; preds = %7676
  br label %7678

7678:                                             ; preds = %7677
  %7679 = load i32, ptr @test_count, align 4, !tbaa !5
  %7680 = add nsw i32 %7679, 1
  store i32 %7680, ptr @test_count, align 4, !tbaa !5
  %7681 = load ptr, ptr %177, align 8, !tbaa !9
  %7682 = load ptr, ptr %155, align 8, !tbaa !9
  %7683 = call i32 @s2n_connection_set_config(ptr noundef %7681, ptr noundef %7682)
  %7684 = icmp eq i32 %7683, -1
  br i1 %7684, label %7685, label %7738

7685:                                             ; preds = %7678
  br label %7686

7686:                                             ; preds = %7685
  br label %7687

7687:                                             ; preds = %7686
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #10
  %7688 = call ptr @__errno_location() #11
  %7689 = load i32, ptr %7688, align 4, !tbaa !5
  store i32 %7689, ptr %179, align 4, !tbaa !5
  %7690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7691 = call i32 @s2n_print_stacktrace(ptr noundef %7690)
  %7692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7693 = trunc i8 %7692 to i1
  br i1 %7693, label %7694, label %7716

7694:                                             ; preds = %7687
  %7695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7696 = call i32 @fileno(ptr noundef %7695) #10
  %7697 = call i32 @isatty(i32 noundef %7696) #10
  %7698 = icmp ne i32 %7697, 0
  br i1 %7698, label %7699, label %7716

7699:                                             ; preds = %7694
  %7700 = load i32, ptr %179, align 4, !tbaa !5
  %7701 = call ptr @__errno_location() #11
  store i32 %7700, ptr %7701, align 4, !tbaa !5
  %7702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7703 = load i32, ptr @test_count, align 4, !tbaa !5
  %7704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7705 = load i32, ptr %7704, align 4, !tbaa !5
  %7706 = call ptr @s2n_strerror(i32 noundef %7705, ptr noundef @.str.4)
  %7707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7708 = load i32, ptr %7707, align 4, !tbaa !5
  %7709 = call ptr @s2n_strerror_debug(i32 noundef %7708, ptr noundef @.str.4)
  %7710 = call ptr @__errno_location() #11
  %7711 = load i32, ptr %7710, align 4, !tbaa !5
  %7712 = call ptr @strerror(i32 noundef %7711) #10
  %7713 = call ptr @__errno_location() #11
  %7714 = load i32, ptr %7713, align 4, !tbaa !5
  %7715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7702, ptr noundef @.str.2, i32 noundef %7703, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 364, ptr noundef %7706, ptr noundef %7709, ptr noundef %7712, i32 noundef %7714) #10
  br label %7733

7716:                                             ; preds = %7694, %7687
  %7717 = load i32, ptr %179, align 4, !tbaa !5
  %7718 = call ptr @__errno_location() #11
  store i32 %7717, ptr %7718, align 4, !tbaa !5
  %7719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7720 = load i32, ptr @test_count, align 4, !tbaa !5
  %7721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7722 = load i32, ptr %7721, align 4, !tbaa !5
  %7723 = call ptr @s2n_strerror(i32 noundef %7722, ptr noundef @.str.4)
  %7724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7725 = load i32, ptr %7724, align 4, !tbaa !5
  %7726 = call ptr @s2n_strerror_debug(i32 noundef %7725, ptr noundef @.str.4)
  %7727 = call ptr @__errno_location() #11
  %7728 = load i32, ptr %7727, align 4, !tbaa !5
  %7729 = call ptr @strerror(i32 noundef %7728) #10
  %7730 = call ptr @__errno_location() #11
  %7731 = load i32, ptr %7730, align 4, !tbaa !5
  %7732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7719, ptr noundef @.str.5, i32 noundef %7720, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 364, ptr noundef %7723, ptr noundef %7726, ptr noundef %7729, i32 noundef %7731) #10
  br label %7733

7733:                                             ; preds = %7716, %7699
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #10
  br label %7734

7734:                                             ; preds = %7733
  br label %7735

7735:                                             ; preds = %7734
  call void @exit(i32 noundef 1) #12
  unreachable

7736:                                             ; No predecessors!
  br label %7737

7737:                                             ; preds = %7736
  br label %7738

7738:                                             ; preds = %7737, %7678
  br label %7739

7739:                                             ; preds = %7738
  br label %7740

7740:                                             ; preds = %7739
  br label %7741

7741:                                             ; preds = %7740
  %7742 = load i32, ptr @test_count, align 4, !tbaa !5
  %7743 = add nsw i32 %7742, 1
  store i32 %7743, ptr @test_count, align 4, !tbaa !5
  %7744 = load ptr, ptr %177, align 8, !tbaa !9
  %7745 = call i32 @s2n_set_server_name(ptr noundef %7744, ptr noundef @.str.73)
  %7746 = icmp eq i32 %7745, -1
  br i1 %7746, label %7747, label %7800

7747:                                             ; preds = %7741
  br label %7748

7748:                                             ; preds = %7747
  br label %7749

7749:                                             ; preds = %7748
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #10
  %7750 = call ptr @__errno_location() #11
  %7751 = load i32, ptr %7750, align 4, !tbaa !5
  store i32 %7751, ptr %180, align 4, !tbaa !5
  %7752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7753 = call i32 @s2n_print_stacktrace(ptr noundef %7752)
  %7754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7755 = trunc i8 %7754 to i1
  br i1 %7755, label %7756, label %7778

7756:                                             ; preds = %7749
  %7757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7758 = call i32 @fileno(ptr noundef %7757) #10
  %7759 = call i32 @isatty(i32 noundef %7758) #10
  %7760 = icmp ne i32 %7759, 0
  br i1 %7760, label %7761, label %7778

7761:                                             ; preds = %7756
  %7762 = load i32, ptr %180, align 4, !tbaa !5
  %7763 = call ptr @__errno_location() #11
  store i32 %7762, ptr %7763, align 4, !tbaa !5
  %7764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7765 = load i32, ptr @test_count, align 4, !tbaa !5
  %7766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7767 = load i32, ptr %7766, align 4, !tbaa !5
  %7768 = call ptr @s2n_strerror(i32 noundef %7767, ptr noundef @.str.4)
  %7769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7770 = load i32, ptr %7769, align 4, !tbaa !5
  %7771 = call ptr @s2n_strerror_debug(i32 noundef %7770, ptr noundef @.str.4)
  %7772 = call ptr @__errno_location() #11
  %7773 = load i32, ptr %7772, align 4, !tbaa !5
  %7774 = call ptr @strerror(i32 noundef %7773) #10
  %7775 = call ptr @__errno_location() #11
  %7776 = load i32, ptr %7775, align 4, !tbaa !5
  %7777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7764, ptr noundef @.str.2, i32 noundef %7765, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 365, ptr noundef %7768, ptr noundef %7771, ptr noundef %7774, i32 noundef %7776) #10
  br label %7795

7778:                                             ; preds = %7756, %7749
  %7779 = load i32, ptr %180, align 4, !tbaa !5
  %7780 = call ptr @__errno_location() #11
  store i32 %7779, ptr %7780, align 4, !tbaa !5
  %7781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7782 = load i32, ptr @test_count, align 4, !tbaa !5
  %7783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7784 = load i32, ptr %7783, align 4, !tbaa !5
  %7785 = call ptr @s2n_strerror(i32 noundef %7784, ptr noundef @.str.4)
  %7786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7787 = load i32, ptr %7786, align 4, !tbaa !5
  %7788 = call ptr @s2n_strerror_debug(i32 noundef %7787, ptr noundef @.str.4)
  %7789 = call ptr @__errno_location() #11
  %7790 = load i32, ptr %7789, align 4, !tbaa !5
  %7791 = call ptr @strerror(i32 noundef %7790) #10
  %7792 = call ptr @__errno_location() #11
  %7793 = load i32, ptr %7792, align 4, !tbaa !5
  %7794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7781, ptr noundef @.str.5, i32 noundef %7782, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 365, ptr noundef %7785, ptr noundef %7788, ptr noundef %7791, i32 noundef %7793) #10
  br label %7795

7795:                                             ; preds = %7778, %7761
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #10
  br label %7796

7796:                                             ; preds = %7795
  br label %7797

7797:                                             ; preds = %7796
  call void @exit(i32 noundef 1) #12
  unreachable

7798:                                             ; No predecessors!
  br label %7799

7799:                                             ; preds = %7798
  br label %7800

7800:                                             ; preds = %7799, %7741
  br label %7801

7801:                                             ; preds = %7800
  br label %7802

7802:                                             ; preds = %7801
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #10
  call void @llvm.memset.p0.i64(ptr align 4 %181, i8 0, i64 8, i1 false)
  br label %7803

7803:                                             ; preds = %7802
  %7804 = load i32, ptr @test_count, align 4, !tbaa !5
  %7805 = add nsw i32 %7804, 1
  store i32 %7805, ptr @test_count, align 4, !tbaa !5
  %7806 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %181)
  %7807 = icmp eq i32 %7806, -1
  br i1 %7807, label %7808, label %7861

7808:                                             ; preds = %7803
  br label %7809

7809:                                             ; preds = %7808
  br label %7810

7810:                                             ; preds = %7809
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #10
  %7811 = call ptr @__errno_location() #11
  %7812 = load i32, ptr %7811, align 4, !tbaa !5
  store i32 %7812, ptr %182, align 4, !tbaa !5
  %7813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7814 = call i32 @s2n_print_stacktrace(ptr noundef %7813)
  %7815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7816 = trunc i8 %7815 to i1
  br i1 %7816, label %7817, label %7839

7817:                                             ; preds = %7810
  %7818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7819 = call i32 @fileno(ptr noundef %7818) #10
  %7820 = call i32 @isatty(i32 noundef %7819) #10
  %7821 = icmp ne i32 %7820, 0
  br i1 %7821, label %7822, label %7839

7822:                                             ; preds = %7817
  %7823 = load i32, ptr %182, align 4, !tbaa !5
  %7824 = call ptr @__errno_location() #11
  store i32 %7823, ptr %7824, align 4, !tbaa !5
  %7825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7826 = load i32, ptr @test_count, align 4, !tbaa !5
  %7827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call ptr @s2n_strerror(i32 noundef %7828, ptr noundef @.str.4)
  %7830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7831 = load i32, ptr %7830, align 4, !tbaa !5
  %7832 = call ptr @s2n_strerror_debug(i32 noundef %7831, ptr noundef @.str.4)
  %7833 = call ptr @__errno_location() #11
  %7834 = load i32, ptr %7833, align 4, !tbaa !5
  %7835 = call ptr @strerror(i32 noundef %7834) #10
  %7836 = call ptr @__errno_location() #11
  %7837 = load i32, ptr %7836, align 4, !tbaa !5
  %7838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7825, ptr noundef @.str.2, i32 noundef %7826, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 368, ptr noundef %7829, ptr noundef %7832, ptr noundef %7835, i32 noundef %7837) #10
  br label %7856

7839:                                             ; preds = %7817, %7810
  %7840 = load i32, ptr %182, align 4, !tbaa !5
  %7841 = call ptr @__errno_location() #11
  store i32 %7840, ptr %7841, align 4, !tbaa !5
  %7842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7843 = load i32, ptr @test_count, align 4, !tbaa !5
  %7844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7845 = load i32, ptr %7844, align 4, !tbaa !5
  %7846 = call ptr @s2n_strerror(i32 noundef %7845, ptr noundef @.str.4)
  %7847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call ptr @s2n_strerror_debug(i32 noundef %7848, ptr noundef @.str.4)
  %7850 = call ptr @__errno_location() #11
  %7851 = load i32, ptr %7850, align 4, !tbaa !5
  %7852 = call ptr @strerror(i32 noundef %7851) #10
  %7853 = call ptr @__errno_location() #11
  %7854 = load i32, ptr %7853, align 4, !tbaa !5
  %7855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7842, ptr noundef @.str.5, i32 noundef %7843, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 368, ptr noundef %7846, ptr noundef %7849, ptr noundef %7852, i32 noundef %7854) #10
  br label %7856

7856:                                             ; preds = %7839, %7822
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #10
  br label %7857

7857:                                             ; preds = %7856
  br label %7858

7858:                                             ; preds = %7857
  call void @exit(i32 noundef 1) #12
  unreachable

7859:                                             ; No predecessors!
  br label %7860

7860:                                             ; preds = %7859
  br label %7861

7861:                                             ; preds = %7860, %7803
  br label %7862

7862:                                             ; preds = %7861
  br label %7863

7863:                                             ; preds = %7862
  br label %7864

7864:                                             ; preds = %7863
  %7865 = load i32, ptr @test_count, align 4, !tbaa !5
  %7866 = add nsw i32 %7865, 1
  store i32 %7866, ptr @test_count, align 4, !tbaa !5
  %7867 = load ptr, ptr %177, align 8, !tbaa !9
  %7868 = call i32 @s2n_connection_set_io_pair(ptr noundef %7867, ptr noundef %181)
  %7869 = icmp eq i32 %7868, -1
  br i1 %7869, label %7870, label %7923

7870:                                             ; preds = %7864
  br label %7871

7871:                                             ; preds = %7870
  br label %7872

7872:                                             ; preds = %7871
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  %7873 = call ptr @__errno_location() #11
  %7874 = load i32, ptr %7873, align 4, !tbaa !5
  store i32 %7874, ptr %183, align 4, !tbaa !5
  %7875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7876 = call i32 @s2n_print_stacktrace(ptr noundef %7875)
  %7877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7878 = trunc i8 %7877 to i1
  br i1 %7878, label %7879, label %7901

7879:                                             ; preds = %7872
  %7880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7881 = call i32 @fileno(ptr noundef %7880) #10
  %7882 = call i32 @isatty(i32 noundef %7881) #10
  %7883 = icmp ne i32 %7882, 0
  br i1 %7883, label %7884, label %7901

7884:                                             ; preds = %7879
  %7885 = load i32, ptr %183, align 4, !tbaa !5
  %7886 = call ptr @__errno_location() #11
  store i32 %7885, ptr %7886, align 4, !tbaa !5
  %7887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7888 = load i32, ptr @test_count, align 4, !tbaa !5
  %7889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7890 = load i32, ptr %7889, align 4, !tbaa !5
  %7891 = call ptr @s2n_strerror(i32 noundef %7890, ptr noundef @.str.4)
  %7892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7893 = load i32, ptr %7892, align 4, !tbaa !5
  %7894 = call ptr @s2n_strerror_debug(i32 noundef %7893, ptr noundef @.str.4)
  %7895 = call ptr @__errno_location() #11
  %7896 = load i32, ptr %7895, align 4, !tbaa !5
  %7897 = call ptr @strerror(i32 noundef %7896) #10
  %7898 = call ptr @__errno_location() #11
  %7899 = load i32, ptr %7898, align 4, !tbaa !5
  %7900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7887, ptr noundef @.str.2, i32 noundef %7888, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 369, ptr noundef %7891, ptr noundef %7894, ptr noundef %7897, i32 noundef %7899) #10
  br label %7918

7901:                                             ; preds = %7879, %7872
  %7902 = load i32, ptr %183, align 4, !tbaa !5
  %7903 = call ptr @__errno_location() #11
  store i32 %7902, ptr %7903, align 4, !tbaa !5
  %7904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7905 = load i32, ptr @test_count, align 4, !tbaa !5
  %7906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7907 = load i32, ptr %7906, align 4, !tbaa !5
  %7908 = call ptr @s2n_strerror(i32 noundef %7907, ptr noundef @.str.4)
  %7909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7910 = load i32, ptr %7909, align 4, !tbaa !5
  %7911 = call ptr @s2n_strerror_debug(i32 noundef %7910, ptr noundef @.str.4)
  %7912 = call ptr @__errno_location() #11
  %7913 = load i32, ptr %7912, align 4, !tbaa !5
  %7914 = call ptr @strerror(i32 noundef %7913) #10
  %7915 = call ptr @__errno_location() #11
  %7916 = load i32, ptr %7915, align 4, !tbaa !5
  %7917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7904, ptr noundef @.str.5, i32 noundef %7905, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 369, ptr noundef %7908, ptr noundef %7911, ptr noundef %7914, i32 noundef %7916) #10
  br label %7918

7918:                                             ; preds = %7901, %7884
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %7919

7919:                                             ; preds = %7918
  br label %7920

7920:                                             ; preds = %7919
  call void @exit(i32 noundef 1) #12
  unreachable

7921:                                             ; No predecessors!
  br label %7922

7922:                                             ; preds = %7921
  br label %7923

7923:                                             ; preds = %7922, %7864
  br label %7924

7924:                                             ; preds = %7923
  br label %7925

7925:                                             ; preds = %7924
  br label %7926

7926:                                             ; preds = %7925
  %7927 = load i32, ptr @test_count, align 4, !tbaa !5
  %7928 = add nsw i32 %7927, 1
  store i32 %7928, ptr @test_count, align 4, !tbaa !5
  %7929 = load ptr, ptr %167, align 8, !tbaa !9
  %7930 = call i32 @s2n_connection_set_io_pair(ptr noundef %7929, ptr noundef %181)
  %7931 = icmp eq i32 %7930, -1
  br i1 %7931, label %7932, label %7985

7932:                                             ; preds = %7926
  br label %7933

7933:                                             ; preds = %7932
  br label %7934

7934:                                             ; preds = %7933
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #10
  %7935 = call ptr @__errno_location() #11
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  store i32 %7936, ptr %184, align 4, !tbaa !5
  %7937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7938 = call i32 @s2n_print_stacktrace(ptr noundef %7937)
  %7939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7940 = trunc i8 %7939 to i1
  br i1 %7940, label %7941, label %7963

7941:                                             ; preds = %7934
  %7942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7943 = call i32 @fileno(ptr noundef %7942) #10
  %7944 = call i32 @isatty(i32 noundef %7943) #10
  %7945 = icmp ne i32 %7944, 0
  br i1 %7945, label %7946, label %7963

7946:                                             ; preds = %7941
  %7947 = load i32, ptr %184, align 4, !tbaa !5
  %7948 = call ptr @__errno_location() #11
  store i32 %7947, ptr %7948, align 4, !tbaa !5
  %7949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7950 = load i32, ptr @test_count, align 4, !tbaa !5
  %7951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7952 = load i32, ptr %7951, align 4, !tbaa !5
  %7953 = call ptr @s2n_strerror(i32 noundef %7952, ptr noundef @.str.4)
  %7954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7955 = load i32, ptr %7954, align 4, !tbaa !5
  %7956 = call ptr @s2n_strerror_debug(i32 noundef %7955, ptr noundef @.str.4)
  %7957 = call ptr @__errno_location() #11
  %7958 = load i32, ptr %7957, align 4, !tbaa !5
  %7959 = call ptr @strerror(i32 noundef %7958) #10
  %7960 = call ptr @__errno_location() #11
  %7961 = load i32, ptr %7960, align 4, !tbaa !5
  %7962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7949, ptr noundef @.str.2, i32 noundef %7950, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 370, ptr noundef %7953, ptr noundef %7956, ptr noundef %7959, i32 noundef %7961) #10
  br label %7980

7963:                                             ; preds = %7941, %7934
  %7964 = load i32, ptr %184, align 4, !tbaa !5
  %7965 = call ptr @__errno_location() #11
  store i32 %7964, ptr %7965, align 4, !tbaa !5
  %7966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7967 = load i32, ptr @test_count, align 4, !tbaa !5
  %7968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7969 = load i32, ptr %7968, align 4, !tbaa !5
  %7970 = call ptr @s2n_strerror(i32 noundef %7969, ptr noundef @.str.4)
  %7971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7972 = load i32, ptr %7971, align 4, !tbaa !5
  %7973 = call ptr @s2n_strerror_debug(i32 noundef %7972, ptr noundef @.str.4)
  %7974 = call ptr @__errno_location() #11
  %7975 = load i32, ptr %7974, align 4, !tbaa !5
  %7976 = call ptr @strerror(i32 noundef %7975) #10
  %7977 = call ptr @__errno_location() #11
  %7978 = load i32, ptr %7977, align 4, !tbaa !5
  %7979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7966, ptr noundef @.str.5, i32 noundef %7967, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 370, ptr noundef %7970, ptr noundef %7973, ptr noundef %7976, i32 noundef %7978) #10
  br label %7980

7980:                                             ; preds = %7963, %7946
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #10
  br label %7981

7981:                                             ; preds = %7980
  br label %7982

7982:                                             ; preds = %7981
  call void @exit(i32 noundef 1) #12
  unreachable

7983:                                             ; No predecessors!
  br label %7984

7984:                                             ; preds = %7983
  br label %7985

7985:                                             ; preds = %7984, %7926
  br label %7986

7986:                                             ; preds = %7985
  br label %7987

7987:                                             ; preds = %7986
  br label %7988

7988:                                             ; preds = %7987
  br label %7989

7989:                                             ; preds = %7988
  br label %7990

7990:                                             ; preds = %7989
  %7991 = load i32, ptr @test_count, align 4, !tbaa !5
  %7992 = add nsw i32 %7991, 1
  store i32 %7992, ptr @test_count, align 4, !tbaa !5
  %7993 = load ptr, ptr %167, align 8, !tbaa !9
  %7994 = load ptr, ptr %177, align 8, !tbaa !9
  %7995 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %7993, ptr noundef %7994)
  %7996 = icmp eq i32 %7995, -1
  br i1 %7996, label %8050, label %7997

7997:                                             ; preds = %7990
  br label %7998

7998:                                             ; preds = %7997
  br label %7999

7999:                                             ; preds = %7998
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #10
  %8000 = call ptr @__errno_location() #11
  %8001 = load i32, ptr %8000, align 4, !tbaa !5
  store i32 %8001, ptr %185, align 4, !tbaa !5
  %8002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8003 = call i32 @s2n_print_stacktrace(ptr noundef %8002)
  %8004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8005 = trunc i8 %8004 to i1
  br i1 %8005, label %8006, label %8028

8006:                                             ; preds = %7999
  %8007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8008 = call i32 @fileno(ptr noundef %8007) #10
  %8009 = call i32 @isatty(i32 noundef %8008) #10
  %8010 = icmp ne i32 %8009, 0
  br i1 %8010, label %8011, label %8028

8011:                                             ; preds = %8006
  %8012 = load i32, ptr %185, align 4, !tbaa !5
  %8013 = call ptr @__errno_location() #11
  store i32 %8012, ptr %8013, align 4, !tbaa !5
  %8014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8015 = load i32, ptr @test_count, align 4, !tbaa !5
  %8016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8017 = load i32, ptr %8016, align 4, !tbaa !5
  %8018 = call ptr @s2n_strerror(i32 noundef %8017, ptr noundef @.str.4)
  %8019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8020 = load i32, ptr %8019, align 4, !tbaa !5
  %8021 = call ptr @s2n_strerror_debug(i32 noundef %8020, ptr noundef @.str.4)
  %8022 = call ptr @__errno_location() #11
  %8023 = load i32, ptr %8022, align 4, !tbaa !5
  %8024 = call ptr @strerror(i32 noundef %8023) #10
  %8025 = call ptr @__errno_location() #11
  %8026 = load i32, ptr %8025, align 4, !tbaa !5
  %8027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8014, ptr noundef @.str.2, i32 noundef %8015, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8018, ptr noundef %8021, ptr noundef %8024, i32 noundef %8026) #10
  br label %8045

8028:                                             ; preds = %8006, %7999
  %8029 = load i32, ptr %185, align 4, !tbaa !5
  %8030 = call ptr @__errno_location() #11
  store i32 %8029, ptr %8030, align 4, !tbaa !5
  %8031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8032 = load i32, ptr @test_count, align 4, !tbaa !5
  %8033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8034 = load i32, ptr %8033, align 4, !tbaa !5
  %8035 = call ptr @s2n_strerror(i32 noundef %8034, ptr noundef @.str.4)
  %8036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8037 = load i32, ptr %8036, align 4, !tbaa !5
  %8038 = call ptr @s2n_strerror_debug(i32 noundef %8037, ptr noundef @.str.4)
  %8039 = call ptr @__errno_location() #11
  %8040 = load i32, ptr %8039, align 4, !tbaa !5
  %8041 = call ptr @strerror(i32 noundef %8040) #10
  %8042 = call ptr @__errno_location() #11
  %8043 = load i32, ptr %8042, align 4, !tbaa !5
  %8044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8031, ptr noundef @.str.5, i32 noundef %8032, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8035, ptr noundef %8038, ptr noundef %8041, i32 noundef %8043) #10
  br label %8045

8045:                                             ; preds = %8028, %8011
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #10
  br label %8046

8046:                                             ; preds = %8045
  br label %8047

8047:                                             ; preds = %8046
  call void @exit(i32 noundef 1) #12
  unreachable

8048:                                             ; No predecessors!
  br label %8049

8049:                                             ; preds = %8048
  br label %8050

8050:                                             ; preds = %8049, %7990
  br label %8051

8051:                                             ; preds = %8050
  br label %8052

8052:                                             ; preds = %8051
  br label %8053

8053:                                             ; preds = %8052
  %8054 = load i32, ptr @test_count, align 4, !tbaa !5
  %8055 = add nsw i32 %8054, 1
  store i32 %8055, ptr @test_count, align 4, !tbaa !5
  %8056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8057 = load i32, ptr %8056, align 4, !tbaa !5
  %8058 = icmp eq i32 %8057, 335544366
  br i1 %8058, label %8112, label %8059

8059:                                             ; preds = %8053
  br label %8060

8060:                                             ; preds = %8059
  br label %8061

8061:                                             ; preds = %8060
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #10
  %8062 = call ptr @__errno_location() #11
  %8063 = load i32, ptr %8062, align 4, !tbaa !5
  store i32 %8063, ptr %186, align 4, !tbaa !5
  %8064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8065 = call i32 @s2n_print_stacktrace(ptr noundef %8064)
  %8066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8067 = trunc i8 %8066 to i1
  br i1 %8067, label %8068, label %8090

8068:                                             ; preds = %8061
  %8069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8070 = call i32 @fileno(ptr noundef %8069) #10
  %8071 = call i32 @isatty(i32 noundef %8070) #10
  %8072 = icmp ne i32 %8071, 0
  br i1 %8072, label %8073, label %8090

8073:                                             ; preds = %8068
  %8074 = load i32, ptr %186, align 4, !tbaa !5
  %8075 = call ptr @__errno_location() #11
  store i32 %8074, ptr %8075, align 4, !tbaa !5
  %8076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8077 = load i32, ptr @test_count, align 4, !tbaa !5
  %8078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8079 = load i32, ptr %8078, align 4, !tbaa !5
  %8080 = call ptr @s2n_strerror(i32 noundef %8079, ptr noundef @.str.4)
  %8081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8082 = load i32, ptr %8081, align 4, !tbaa !5
  %8083 = call ptr @s2n_strerror_debug(i32 noundef %8082, ptr noundef @.str.4)
  %8084 = call ptr @__errno_location() #11
  %8085 = load i32, ptr %8084, align 4, !tbaa !5
  %8086 = call ptr @strerror(i32 noundef %8085) #10
  %8087 = call ptr @__errno_location() #11
  %8088 = load i32, ptr %8087, align 4, !tbaa !5
  %8089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8076, ptr noundef @.str.2, i32 noundef %8077, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8080, ptr noundef %8083, ptr noundef %8086, i32 noundef %8088) #10
  br label %8107

8090:                                             ; preds = %8068, %8061
  %8091 = load i32, ptr %186, align 4, !tbaa !5
  %8092 = call ptr @__errno_location() #11
  store i32 %8091, ptr %8092, align 4, !tbaa !5
  %8093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8094 = load i32, ptr @test_count, align 4, !tbaa !5
  %8095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8096 = load i32, ptr %8095, align 4, !tbaa !5
  %8097 = call ptr @s2n_strerror(i32 noundef %8096, ptr noundef @.str.4)
  %8098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8099 = load i32, ptr %8098, align 4, !tbaa !5
  %8100 = call ptr @s2n_strerror_debug(i32 noundef %8099, ptr noundef @.str.4)
  %8101 = call ptr @__errno_location() #11
  %8102 = load i32, ptr %8101, align 4, !tbaa !5
  %8103 = call ptr @strerror(i32 noundef %8102) #10
  %8104 = call ptr @__errno_location() #11
  %8105 = load i32, ptr %8104, align 4, !tbaa !5
  %8106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8093, ptr noundef @.str.5, i32 noundef %8094, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8097, ptr noundef %8100, ptr noundef %8103, i32 noundef %8105) #10
  br label %8107

8107:                                             ; preds = %8090, %8073
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #10
  br label %8108

8108:                                             ; preds = %8107
  br label %8109

8109:                                             ; preds = %8108
  call void @exit(i32 noundef 1) #12
  unreachable

8110:                                             ; No predecessors!
  br label %8111

8111:                                             ; preds = %8110
  br label %8112

8112:                                             ; preds = %8111, %8053
  br label %8113

8113:                                             ; preds = %8112
  br label %8114

8114:                                             ; preds = %8113
  br label %8115

8115:                                             ; preds = %8114
  %8116 = load i32, ptr @test_count, align 4, !tbaa !5
  %8117 = add nsw i32 %8116, 1
  store i32 %8117, ptr @test_count, align 4, !tbaa !5
  %8118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8119 = load i32, ptr %8118, align 4, !tbaa !5
  %8120 = call ptr @s2n_strerror_debug(i32 noundef %8119, ptr noundef @.str.4)
  %8121 = icmp eq ptr %8120, null
  br i1 %8121, label %8122, label %8175

8122:                                             ; preds = %8115
  br label %8123

8123:                                             ; preds = %8122
  br label %8124

8124:                                             ; preds = %8123
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #10
  %8125 = call ptr @__errno_location() #11
  %8126 = load i32, ptr %8125, align 4, !tbaa !5
  store i32 %8126, ptr %187, align 4, !tbaa !5
  %8127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8128 = call i32 @s2n_print_stacktrace(ptr noundef %8127)
  %8129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8130 = trunc i8 %8129 to i1
  br i1 %8130, label %8131, label %8153

8131:                                             ; preds = %8124
  %8132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8133 = call i32 @fileno(ptr noundef %8132) #10
  %8134 = call i32 @isatty(i32 noundef %8133) #10
  %8135 = icmp ne i32 %8134, 0
  br i1 %8135, label %8136, label %8153

8136:                                             ; preds = %8131
  %8137 = load i32, ptr %187, align 4, !tbaa !5
  %8138 = call ptr @__errno_location() #11
  store i32 %8137, ptr %8138, align 4, !tbaa !5
  %8139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8140 = load i32, ptr @test_count, align 4, !tbaa !5
  %8141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8142 = load i32, ptr %8141, align 4, !tbaa !5
  %8143 = call ptr @s2n_strerror(i32 noundef %8142, ptr noundef @.str.4)
  %8144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8145 = load i32, ptr %8144, align 4, !tbaa !5
  %8146 = call ptr @s2n_strerror_debug(i32 noundef %8145, ptr noundef @.str.4)
  %8147 = call ptr @__errno_location() #11
  %8148 = load i32, ptr %8147, align 4, !tbaa !5
  %8149 = call ptr @strerror(i32 noundef %8148) #10
  %8150 = call ptr @__errno_location() #11
  %8151 = load i32, ptr %8150, align 4, !tbaa !5
  %8152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8139, ptr noundef @.str.2, i32 noundef %8140, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8143, ptr noundef %8146, ptr noundef %8149, i32 noundef %8151) #10
  br label %8170

8153:                                             ; preds = %8131, %8124
  %8154 = load i32, ptr %187, align 4, !tbaa !5
  %8155 = call ptr @__errno_location() #11
  store i32 %8154, ptr %8155, align 4, !tbaa !5
  %8156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8157 = load i32, ptr @test_count, align 4, !tbaa !5
  %8158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8159 = load i32, ptr %8158, align 4, !tbaa !5
  %8160 = call ptr @s2n_strerror(i32 noundef %8159, ptr noundef @.str.4)
  %8161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8162 = load i32, ptr %8161, align 4, !tbaa !5
  %8163 = call ptr @s2n_strerror_debug(i32 noundef %8162, ptr noundef @.str.4)
  %8164 = call ptr @__errno_location() #11
  %8165 = load i32, ptr %8164, align 4, !tbaa !5
  %8166 = call ptr @strerror(i32 noundef %8165) #10
  %8167 = call ptr @__errno_location() #11
  %8168 = load i32, ptr %8167, align 4, !tbaa !5
  %8169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8156, ptr noundef @.str.5, i32 noundef %8157, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8160, ptr noundef %8163, ptr noundef %8166, i32 noundef %8168) #10
  br label %8170

8170:                                             ; preds = %8153, %8136
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #10
  br label %8171

8171:                                             ; preds = %8170
  br label %8172

8172:                                             ; preds = %8171
  call void @exit(i32 noundef 1) #12
  unreachable

8173:                                             ; No predecessors!
  br label %8174

8174:                                             ; preds = %8173
  br label %8175

8175:                                             ; preds = %8174, %8115
  br label %8176

8176:                                             ; preds = %8175
  br label %8177

8177:                                             ; preds = %8176
  br label %8178

8178:                                             ; preds = %8177
  br label %8179

8179:                                             ; preds = %8178
  call void @llvm.lifetime.start.p0(i64 1, ptr %188) #10
  store i8 0, ptr %188, align 1, !tbaa !35
  br label %8180

8180:                                             ; preds = %8179
  %8181 = load i32, ptr @test_count, align 4, !tbaa !5
  %8182 = add nsw i32 %8181, 1
  store i32 %8182, ptr @test_count, align 4, !tbaa !5
  %8183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8184 = load i32, ptr %8183, align 4, !tbaa !5
  %8185 = call i32 @s2n_error_get_alert(i32 noundef %8184, ptr noundef %188)
  %8186 = icmp eq i32 %8185, -1
  br i1 %8186, label %8187, label %8240

8187:                                             ; preds = %8180
  br label %8188

8188:                                             ; preds = %8187
  br label %8189

8189:                                             ; preds = %8188
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #10
  %8190 = call ptr @__errno_location() #11
  %8191 = load i32, ptr %8190, align 4, !tbaa !5
  store i32 %8191, ptr %189, align 4, !tbaa !5
  %8192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8193 = call i32 @s2n_print_stacktrace(ptr noundef %8192)
  %8194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8195 = trunc i8 %8194 to i1
  br i1 %8195, label %8196, label %8218

8196:                                             ; preds = %8189
  %8197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8198 = call i32 @fileno(ptr noundef %8197) #10
  %8199 = call i32 @isatty(i32 noundef %8198) #10
  %8200 = icmp ne i32 %8199, 0
  br i1 %8200, label %8201, label %8218

8201:                                             ; preds = %8196
  %8202 = load i32, ptr %189, align 4, !tbaa !5
  %8203 = call ptr @__errno_location() #11
  store i32 %8202, ptr %8203, align 4, !tbaa !5
  %8204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8205 = load i32, ptr @test_count, align 4, !tbaa !5
  %8206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8207 = load i32, ptr %8206, align 4, !tbaa !5
  %8208 = call ptr @s2n_strerror(i32 noundef %8207, ptr noundef @.str.4)
  %8209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8210 = load i32, ptr %8209, align 4, !tbaa !5
  %8211 = call ptr @s2n_strerror_debug(i32 noundef %8210, ptr noundef @.str.4)
  %8212 = call ptr @__errno_location() #11
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  %8214 = call ptr @strerror(i32 noundef %8213) #10
  %8215 = call ptr @__errno_location() #11
  %8216 = load i32, ptr %8215, align 4, !tbaa !5
  %8217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8204, ptr noundef @.str.2, i32 noundef %8205, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8208, ptr noundef %8211, ptr noundef %8214, i32 noundef %8216) #10
  br label %8235

8218:                                             ; preds = %8196, %8189
  %8219 = load i32, ptr %189, align 4, !tbaa !5
  %8220 = call ptr @__errno_location() #11
  store i32 %8219, ptr %8220, align 4, !tbaa !5
  %8221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8222 = load i32, ptr @test_count, align 4, !tbaa !5
  %8223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8224 = load i32, ptr %8223, align 4, !tbaa !5
  %8225 = call ptr @s2n_strerror(i32 noundef %8224, ptr noundef @.str.4)
  %8226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8227 = load i32, ptr %8226, align 4, !tbaa !5
  %8228 = call ptr @s2n_strerror_debug(i32 noundef %8227, ptr noundef @.str.4)
  %8229 = call ptr @__errno_location() #11
  %8230 = load i32, ptr %8229, align 4, !tbaa !5
  %8231 = call ptr @strerror(i32 noundef %8230) #10
  %8232 = call ptr @__errno_location() #11
  %8233 = load i32, ptr %8232, align 4, !tbaa !5
  %8234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8221, ptr noundef @.str.5, i32 noundef %8222, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8225, ptr noundef %8228, ptr noundef %8231, i32 noundef %8233) #10
  br label %8235

8235:                                             ; preds = %8218, %8201
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #10
  br label %8236

8236:                                             ; preds = %8235
  br label %8237

8237:                                             ; preds = %8236
  call void @exit(i32 noundef 1) #12
  unreachable

8238:                                             ; No predecessors!
  br label %8239

8239:                                             ; preds = %8238
  br label %8240

8240:                                             ; preds = %8239, %8180
  br label %8241

8241:                                             ; preds = %8240
  br label %8242

8242:                                             ; preds = %8241
  br label %8243

8243:                                             ; preds = %8242
  %8244 = load i32, ptr @test_count, align 4, !tbaa !5
  %8245 = add nsw i32 %8244, 1
  store i32 %8245, ptr @test_count, align 4, !tbaa !5
  %8246 = load i8, ptr %188, align 1, !tbaa !35
  %8247 = zext i8 %8246 to i32
  %8248 = icmp eq i32 %8247, 46
  br i1 %8248, label %8302, label %8249

8249:                                             ; preds = %8243
  br label %8250

8250:                                             ; preds = %8249
  br label %8251

8251:                                             ; preds = %8250
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #10
  %8252 = call ptr @__errno_location() #11
  %8253 = load i32, ptr %8252, align 4, !tbaa !5
  store i32 %8253, ptr %190, align 4, !tbaa !5
  %8254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8255 = call i32 @s2n_print_stacktrace(ptr noundef %8254)
  %8256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8257 = trunc i8 %8256 to i1
  br i1 %8257, label %8258, label %8280

8258:                                             ; preds = %8251
  %8259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8260 = call i32 @fileno(ptr noundef %8259) #10
  %8261 = call i32 @isatty(i32 noundef %8260) #10
  %8262 = icmp ne i32 %8261, 0
  br i1 %8262, label %8263, label %8280

8263:                                             ; preds = %8258
  %8264 = load i32, ptr %190, align 4, !tbaa !5
  %8265 = call ptr @__errno_location() #11
  store i32 %8264, ptr %8265, align 4, !tbaa !5
  %8266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8267 = load i32, ptr @test_count, align 4, !tbaa !5
  %8268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8269 = load i32, ptr %8268, align 4, !tbaa !5
  %8270 = call ptr @s2n_strerror(i32 noundef %8269, ptr noundef @.str.4)
  %8271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8272 = load i32, ptr %8271, align 4, !tbaa !5
  %8273 = call ptr @s2n_strerror_debug(i32 noundef %8272, ptr noundef @.str.4)
  %8274 = call ptr @__errno_location() #11
  %8275 = load i32, ptr %8274, align 4, !tbaa !5
  %8276 = call ptr @strerror(i32 noundef %8275) #10
  %8277 = call ptr @__errno_location() #11
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8266, ptr noundef @.str.2, i32 noundef %8267, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8270, ptr noundef %8273, ptr noundef %8276, i32 noundef %8278) #10
  br label %8297

8280:                                             ; preds = %8258, %8251
  %8281 = load i32, ptr %190, align 4, !tbaa !5
  %8282 = call ptr @__errno_location() #11
  store i32 %8281, ptr %8282, align 4, !tbaa !5
  %8283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8284 = load i32, ptr @test_count, align 4, !tbaa !5
  %8285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8286 = load i32, ptr %8285, align 4, !tbaa !5
  %8287 = call ptr @s2n_strerror(i32 noundef %8286, ptr noundef @.str.4)
  %8288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8289 = load i32, ptr %8288, align 4, !tbaa !5
  %8290 = call ptr @s2n_strerror_debug(i32 noundef %8289, ptr noundef @.str.4)
  %8291 = call ptr @__errno_location() #11
  %8292 = load i32, ptr %8291, align 4, !tbaa !5
  %8293 = call ptr @strerror(i32 noundef %8292) #10
  %8294 = call ptr @__errno_location() #11
  %8295 = load i32, ptr %8294, align 4, !tbaa !5
  %8296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8283, ptr noundef @.str.5, i32 noundef %8284, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8287, ptr noundef %8290, ptr noundef %8293, i32 noundef %8295) #10
  br label %8297

8297:                                             ; preds = %8280, %8263
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  br label %8298

8298:                                             ; preds = %8297
  br label %8299

8299:                                             ; preds = %8298
  call void @exit(i32 noundef 1) #12
  unreachable

8300:                                             ; No predecessors!
  br label %8301

8301:                                             ; preds = %8300
  br label %8302

8302:                                             ; preds = %8301, %8243
  br label %8303

8303:                                             ; preds = %8302
  br label %8304

8304:                                             ; preds = %8303
  br label %8305

8305:                                             ; preds = %8304
  %8306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8306, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8307 = call ptr @__errno_location() #11
  store i32 0, ptr %8307, align 4, !tbaa !5
  br label %8308

8308:                                             ; preds = %8305
  br label %8309

8309:                                             ; preds = %8308
  call void @llvm.lifetime.end.p0(i64 1, ptr %188) #10
  br label %8310

8310:                                             ; preds = %8309
  br label %8311

8311:                                             ; preds = %8310
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #10
  store ptr null, ptr %191, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #10
  store i32 0, ptr %192, align 4, !tbaa !5
  br label %8312

8312:                                             ; preds = %8311
  %8313 = load i32, ptr @test_count, align 4, !tbaa !5
  %8314 = add nsw i32 %8313, 1
  store i32 %8314, ptr @test_count, align 4, !tbaa !5
  %8315 = load ptr, ptr %167, align 8, !tbaa !9
  %8316 = call i32 @s2n_connection_get_client_cert_chain(ptr noundef %8315, ptr noundef %191, ptr noundef %192)
  %8317 = icmp eq i32 %8316, -1
  br i1 %8317, label %8318, label %8371

8318:                                             ; preds = %8312
  br label %8319

8319:                                             ; preds = %8318
  br label %8320

8320:                                             ; preds = %8319
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #10
  %8321 = call ptr @__errno_location() #11
  %8322 = load i32, ptr %8321, align 4, !tbaa !5
  store i32 %8322, ptr %193, align 4, !tbaa !5
  %8323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8324 = call i32 @s2n_print_stacktrace(ptr noundef %8323)
  %8325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8326 = trunc i8 %8325 to i1
  br i1 %8326, label %8327, label %8349

8327:                                             ; preds = %8320
  %8328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8329 = call i32 @fileno(ptr noundef %8328) #10
  %8330 = call i32 @isatty(i32 noundef %8329) #10
  %8331 = icmp ne i32 %8330, 0
  br i1 %8331, label %8332, label %8349

8332:                                             ; preds = %8327
  %8333 = load i32, ptr %193, align 4, !tbaa !5
  %8334 = call ptr @__errno_location() #11
  store i32 %8333, ptr %8334, align 4, !tbaa !5
  %8335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8336 = load i32, ptr @test_count, align 4, !tbaa !5
  %8337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8338 = load i32, ptr %8337, align 4, !tbaa !5
  %8339 = call ptr @s2n_strerror(i32 noundef %8338, ptr noundef @.str.4)
  %8340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @s2n_strerror_debug(i32 noundef %8341, ptr noundef @.str.4)
  %8343 = call ptr @__errno_location() #11
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call ptr @strerror(i32 noundef %8344) #10
  %8346 = call ptr @__errno_location() #11
  %8347 = load i32, ptr %8346, align 4, !tbaa !5
  %8348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8335, ptr noundef @.str.2, i32 noundef %8336, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 382, ptr noundef %8339, ptr noundef %8342, ptr noundef %8345, i32 noundef %8347) #10
  br label %8366

8349:                                             ; preds = %8327, %8320
  %8350 = load i32, ptr %193, align 4, !tbaa !5
  %8351 = call ptr @__errno_location() #11
  store i32 %8350, ptr %8351, align 4, !tbaa !5
  %8352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8353 = load i32, ptr @test_count, align 4, !tbaa !5
  %8354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8355 = load i32, ptr %8354, align 4, !tbaa !5
  %8356 = call ptr @s2n_strerror(i32 noundef %8355, ptr noundef @.str.4)
  %8357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8358 = load i32, ptr %8357, align 4, !tbaa !5
  %8359 = call ptr @s2n_strerror_debug(i32 noundef %8358, ptr noundef @.str.4)
  %8360 = call ptr @__errno_location() #11
  %8361 = load i32, ptr %8360, align 4, !tbaa !5
  %8362 = call ptr @strerror(i32 noundef %8361) #10
  %8363 = call ptr @__errno_location() #11
  %8364 = load i32, ptr %8363, align 4, !tbaa !5
  %8365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8352, ptr noundef @.str.5, i32 noundef %8353, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 382, ptr noundef %8356, ptr noundef %8359, ptr noundef %8362, i32 noundef %8364) #10
  br label %8366

8366:                                             ; preds = %8349, %8332
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #10
  br label %8367

8367:                                             ; preds = %8366
  br label %8368

8368:                                             ; preds = %8367
  call void @exit(i32 noundef 1) #12
  unreachable

8369:                                             ; No predecessors!
  br label %8370

8370:                                             ; preds = %8369
  br label %8371

8371:                                             ; preds = %8370, %8312
  br label %8372

8372:                                             ; preds = %8371
  br label %8373

8373:                                             ; preds = %8372
  br label %8374

8374:                                             ; preds = %8373
  %8375 = load i32, ptr @test_count, align 4, !tbaa !5
  %8376 = add nsw i32 %8375, 1
  store i32 %8376, ptr @test_count, align 4, !tbaa !5
  %8377 = load i32, ptr %192, align 4, !tbaa !5
  %8378 = icmp ugt i32 %8377, 0
  br i1 %8378, label %8432, label %8379

8379:                                             ; preds = %8374
  br label %8380

8380:                                             ; preds = %8379
  br label %8381

8381:                                             ; preds = %8380
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #10
  %8382 = call ptr @__errno_location() #11
  %8383 = load i32, ptr %8382, align 4, !tbaa !5
  store i32 %8383, ptr %194, align 4, !tbaa !5
  %8384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8385 = call i32 @s2n_print_stacktrace(ptr noundef %8384)
  %8386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8387 = trunc i8 %8386 to i1
  br i1 %8387, label %8388, label %8410

8388:                                             ; preds = %8381
  %8389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8390 = call i32 @fileno(ptr noundef %8389) #10
  %8391 = call i32 @isatty(i32 noundef %8390) #10
  %8392 = icmp ne i32 %8391, 0
  br i1 %8392, label %8393, label %8410

8393:                                             ; preds = %8388
  %8394 = load i32, ptr %194, align 4, !tbaa !5
  %8395 = call ptr @__errno_location() #11
  store i32 %8394, ptr %8395, align 4, !tbaa !5
  %8396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8397 = load i32, ptr @test_count, align 4, !tbaa !5
  %8398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8399 = load i32, ptr %8398, align 4, !tbaa !5
  %8400 = call ptr @s2n_strerror(i32 noundef %8399, ptr noundef @.str.4)
  %8401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @s2n_strerror_debug(i32 noundef %8402, ptr noundef @.str.4)
  %8404 = call ptr @__errno_location() #11
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call ptr @strerror(i32 noundef %8405) #10
  %8407 = call ptr @__errno_location() #11
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  %8409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8396, ptr noundef @.str.2, i32 noundef %8397, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 383, ptr noundef %8400, ptr noundef %8403, ptr noundef %8406, i32 noundef %8408) #10
  br label %8427

8410:                                             ; preds = %8388, %8381
  %8411 = load i32, ptr %194, align 4, !tbaa !5
  %8412 = call ptr @__errno_location() #11
  store i32 %8411, ptr %8412, align 4, !tbaa !5
  %8413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8414 = load i32, ptr @test_count, align 4, !tbaa !5
  %8415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8416 = load i32, ptr %8415, align 4, !tbaa !5
  %8417 = call ptr @s2n_strerror(i32 noundef %8416, ptr noundef @.str.4)
  %8418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8419 = load i32, ptr %8418, align 4, !tbaa !5
  %8420 = call ptr @s2n_strerror_debug(i32 noundef %8419, ptr noundef @.str.4)
  %8421 = call ptr @__errno_location() #11
  %8422 = load i32, ptr %8421, align 4, !tbaa !5
  %8423 = call ptr @strerror(i32 noundef %8422) #10
  %8424 = call ptr @__errno_location() #11
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  %8426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8413, ptr noundef @.str.5, i32 noundef %8414, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 383, ptr noundef %8417, ptr noundef %8420, ptr noundef %8423, i32 noundef %8425) #10
  br label %8427

8427:                                             ; preds = %8410, %8393
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #10
  br label %8428

8428:                                             ; preds = %8427
  br label %8429

8429:                                             ; preds = %8428
  call void @exit(i32 noundef 1) #12
  unreachable

8430:                                             ; No predecessors!
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

8432:                                             ; preds = %8431, %8374
  br label %8433

8433:                                             ; preds = %8432
  br label %8434

8434:                                             ; preds = %8433
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #10
  %8435 = call i32 @s2n_io_pair_close(ptr noundef %181)
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #10
  %8436 = call i32 @s2n_connection_ptr_free(ptr noundef %177)
  %8437 = getelementptr inbounds %struct.s2n_result, ptr %195, i32 0, i32 0
  store i32 %8436, ptr %8437, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #10
  %8438 = call i32 @s2n_connection_ptr_free(ptr noundef %167)
  %8439 = getelementptr inbounds %struct.s2n_result, ptr %196, i32 0, i32 0
  store i32 %8438, ptr %8439, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr %164) #10
  %8440 = call i32 @s2n_config_ptr_free(ptr noundef %161)
  %8441 = getelementptr inbounds %struct.s2n_result, ptr %197, i32 0, i32 0
  store i32 %8440, ptr %8441, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #10
  %8442 = call i32 @s2n_config_ptr_free(ptr noundef %155)
  %8443 = getelementptr inbounds %struct.s2n_result, ptr %198, i32 0, i32 0
  store i32 %8442, ptr %8443, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #10
  br label %8444

8444:                                             ; preds = %8434
  %8445 = load i32, ptr %154, align 4, !tbaa !5
  %8446 = add i32 %8445, 1
  store i32 %8446, ptr %154, align 4, !tbaa !5
  br label %6494, !llvm.loop !36

8447:                                             ; preds = %6497
  br label %8448

8448:                                             ; preds = %8447
  %8449 = load i32, ptr @test_count, align 4, !tbaa !5
  %8450 = add nsw i32 %8449, 1
  store i32 %8450, ptr @test_count, align 4, !tbaa !5
  %8451 = load ptr, ptr %12, align 8, !tbaa !9
  %8452 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %8451)
  %8453 = icmp eq i32 %8452, -1
  br i1 %8453, label %8454, label %8507

8454:                                             ; preds = %8448
  br label %8455

8455:                                             ; preds = %8454
  br label %8456

8456:                                             ; preds = %8455
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #10
  %8457 = call ptr @__errno_location() #11
  %8458 = load i32, ptr %8457, align 4, !tbaa !5
  store i32 %8458, ptr %199, align 4, !tbaa !5
  %8459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8460 = call i32 @s2n_print_stacktrace(ptr noundef %8459)
  %8461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8462 = trunc i8 %8461 to i1
  br i1 %8462, label %8463, label %8485

8463:                                             ; preds = %8456
  %8464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8465 = call i32 @fileno(ptr noundef %8464) #10
  %8466 = call i32 @isatty(i32 noundef %8465) #10
  %8467 = icmp ne i32 %8466, 0
  br i1 %8467, label %8468, label %8485

8468:                                             ; preds = %8463
  %8469 = load i32, ptr %199, align 4, !tbaa !5
  %8470 = call ptr @__errno_location() #11
  store i32 %8469, ptr %8470, align 4, !tbaa !5
  %8471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8472 = load i32, ptr @test_count, align 4, !tbaa !5
  %8473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8474 = load i32, ptr %8473, align 4, !tbaa !5
  %8475 = call ptr @s2n_strerror(i32 noundef %8474, ptr noundef @.str.4)
  %8476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8477 = load i32, ptr %8476, align 4, !tbaa !5
  %8478 = call ptr @s2n_strerror_debug(i32 noundef %8477, ptr noundef @.str.4)
  %8479 = call ptr @__errno_location() #11
  %8480 = load i32, ptr %8479, align 4, !tbaa !5
  %8481 = call ptr @strerror(i32 noundef %8480) #10
  %8482 = call ptr @__errno_location() #11
  %8483 = load i32, ptr %8482, align 4, !tbaa !5
  %8484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8471, ptr noundef @.str.2, i32 noundef %8472, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 387, ptr noundef %8475, ptr noundef %8478, ptr noundef %8481, i32 noundef %8483) #10
  br label %8502

8485:                                             ; preds = %8463, %8456
  %8486 = load i32, ptr %199, align 4, !tbaa !5
  %8487 = call ptr @__errno_location() #11
  store i32 %8486, ptr %8487, align 4, !tbaa !5
  %8488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8489 = load i32, ptr @test_count, align 4, !tbaa !5
  %8490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8491 = load i32, ptr %8490, align 4, !tbaa !5
  %8492 = call ptr @s2n_strerror(i32 noundef %8491, ptr noundef @.str.4)
  %8493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8494 = load i32, ptr %8493, align 4, !tbaa !5
  %8495 = call ptr @s2n_strerror_debug(i32 noundef %8494, ptr noundef @.str.4)
  %8496 = call ptr @__errno_location() #11
  %8497 = load i32, ptr %8496, align 4, !tbaa !5
  %8498 = call ptr @strerror(i32 noundef %8497) #10
  %8499 = call ptr @__errno_location() #11
  %8500 = load i32, ptr %8499, align 4, !tbaa !5
  %8501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8488, ptr noundef @.str.5, i32 noundef %8489, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 387, ptr noundef %8492, ptr noundef %8495, ptr noundef %8498, i32 noundef %8500) #10
  br label %8502

8502:                                             ; preds = %8485, %8468
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #10
  br label %8503

8503:                                             ; preds = %8502
  br label %8504

8504:                                             ; preds = %8503
  call void @exit(i32 noundef 1) #12
  unreachable

8505:                                             ; No predecessors!
  br label %8506

8506:                                             ; preds = %8505
  br label %8507

8507:                                             ; preds = %8506, %8448
  br label %8508

8508:                                             ; preds = %8507
  br label %8509

8509:                                             ; preds = %8508
  br label %8510

8510:                                             ; preds = %8509
  %8511 = load i32, ptr @test_count, align 4, !tbaa !5
  %8512 = add nsw i32 %8511, 1
  store i32 %8512, ptr @test_count, align 4, !tbaa !5
  %8513 = load ptr, ptr %6, align 8, !tbaa !9
  %8514 = call i32 @s2n_config_free(ptr noundef %8513)
  %8515 = icmp eq i32 %8514, -1
  br i1 %8515, label %8516, label %8569

8516:                                             ; preds = %8510
  br label %8517

8517:                                             ; preds = %8516
  br label %8518

8518:                                             ; preds = %8517
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #10
  %8519 = call ptr @__errno_location() #11
  %8520 = load i32, ptr %8519, align 4, !tbaa !5
  store i32 %8520, ptr %200, align 4, !tbaa !5
  %8521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8522 = call i32 @s2n_print_stacktrace(ptr noundef %8521)
  %8523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8524 = trunc i8 %8523 to i1
  br i1 %8524, label %8525, label %8547

8525:                                             ; preds = %8518
  %8526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8527 = call i32 @fileno(ptr noundef %8526) #10
  %8528 = call i32 @isatty(i32 noundef %8527) #10
  %8529 = icmp ne i32 %8528, 0
  br i1 %8529, label %8530, label %8547

8530:                                             ; preds = %8525
  %8531 = load i32, ptr %200, align 4, !tbaa !5
  %8532 = call ptr @__errno_location() #11
  store i32 %8531, ptr %8532, align 4, !tbaa !5
  %8533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8534 = load i32, ptr @test_count, align 4, !tbaa !5
  %8535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8536 = load i32, ptr %8535, align 4, !tbaa !5
  %8537 = call ptr @s2n_strerror(i32 noundef %8536, ptr noundef @.str.4)
  %8538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8539 = load i32, ptr %8538, align 4, !tbaa !5
  %8540 = call ptr @s2n_strerror_debug(i32 noundef %8539, ptr noundef @.str.4)
  %8541 = call ptr @__errno_location() #11
  %8542 = load i32, ptr %8541, align 4, !tbaa !5
  %8543 = call ptr @strerror(i32 noundef %8542) #10
  %8544 = call ptr @__errno_location() #11
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  %8546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8533, ptr noundef @.str.2, i32 noundef %8534, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 388, ptr noundef %8537, ptr noundef %8540, ptr noundef %8543, i32 noundef %8545) #10
  br label %8564

8547:                                             ; preds = %8525, %8518
  %8548 = load i32, ptr %200, align 4, !tbaa !5
  %8549 = call ptr @__errno_location() #11
  store i32 %8548, ptr %8549, align 4, !tbaa !5
  %8550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8551 = load i32, ptr @test_count, align 4, !tbaa !5
  %8552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8553 = load i32, ptr %8552, align 4, !tbaa !5
  %8554 = call ptr @s2n_strerror(i32 noundef %8553, ptr noundef @.str.4)
  %8555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8556 = load i32, ptr %8555, align 4, !tbaa !5
  %8557 = call ptr @s2n_strerror_debug(i32 noundef %8556, ptr noundef @.str.4)
  %8558 = call ptr @__errno_location() #11
  %8559 = load i32, ptr %8558, align 4, !tbaa !5
  %8560 = call ptr @strerror(i32 noundef %8559) #10
  %8561 = call ptr @__errno_location() #11
  %8562 = load i32, ptr %8561, align 4, !tbaa !5
  %8563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8550, ptr noundef @.str.5, i32 noundef %8551, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 388, ptr noundef %8554, ptr noundef %8557, ptr noundef %8560, i32 noundef %8562) #10
  br label %8564

8564:                                             ; preds = %8547, %8530
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #10
  br label %8565

8565:                                             ; preds = %8564
  br label %8566

8566:                                             ; preds = %8565
  call void @exit(i32 noundef 1) #12
  unreachable

8567:                                             ; No predecessors!
  br label %8568

8568:                                             ; preds = %8567
  br label %8569

8569:                                             ; preds = %8568, %8510
  br label %8570

8570:                                             ; preds = %8569
  br label %8571

8571:                                             ; preds = %8570
  %8572 = load ptr, ptr %9, align 8, !tbaa !9
  call void @free(ptr noundef %8572) #10
  %8573 = load ptr, ptr %10, align 8, !tbaa !9
  call void @free(ptr noundef %8573) #10
  %8574 = load ptr, ptr %11, align 8, !tbaa !9
  call void @free(ptr noundef %8574) #10
  br label %8575

8575:                                             ; preds = %8571
  br label %8576

8576:                                             ; preds = %8575
  %8577 = call i32 @s2n_cleanup()
  %8578 = icmp eq i32 %8577, -1
  br i1 %8578, label %8579, label %8632

8579:                                             ; preds = %8576
  br label %8580

8580:                                             ; preds = %8579
  br label %8581

8581:                                             ; preds = %8580
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #10
  %8582 = call ptr @__errno_location() #11
  %8583 = load i32, ptr %8582, align 4, !tbaa !5
  store i32 %8583, ptr %201, align 4, !tbaa !5
  %8584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8585 = call i32 @s2n_print_stacktrace(ptr noundef %8584)
  %8586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8587 = trunc i8 %8586 to i1
  br i1 %8587, label %8588, label %8610

8588:                                             ; preds = %8581
  %8589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8590 = call i32 @fileno(ptr noundef %8589) #10
  %8591 = call i32 @isatty(i32 noundef %8590) #10
  %8592 = icmp ne i32 %8591, 0
  br i1 %8592, label %8593, label %8610

8593:                                             ; preds = %8588
  %8594 = load i32, ptr %201, align 4, !tbaa !5
  %8595 = call ptr @__errno_location() #11
  store i32 %8594, ptr %8595, align 4, !tbaa !5
  %8596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8597 = load i32, ptr @test_count, align 4, !tbaa !5
  %8598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8599 = load i32, ptr %8598, align 4, !tbaa !5
  %8600 = call ptr @s2n_strerror(i32 noundef %8599, ptr noundef @.str.4)
  %8601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8602 = load i32, ptr %8601, align 4, !tbaa !5
  %8603 = call ptr @s2n_strerror_debug(i32 noundef %8602, ptr noundef @.str.4)
  %8604 = call ptr @__errno_location() #11
  %8605 = load i32, ptr %8604, align 4, !tbaa !5
  %8606 = call ptr @strerror(i32 noundef %8605) #10
  %8607 = call ptr @__errno_location() #11
  %8608 = load i32, ptr %8607, align 4, !tbaa !5
  %8609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8596, ptr noundef @.str.2, i32 noundef %8597, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 392, ptr noundef %8600, ptr noundef %8603, ptr noundef %8606, i32 noundef %8608) #10
  br label %8627

8610:                                             ; preds = %8588, %8581
  %8611 = load i32, ptr %201, align 4, !tbaa !5
  %8612 = call ptr @__errno_location() #11
  store i32 %8611, ptr %8612, align 4, !tbaa !5
  %8613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8614 = load i32, ptr @test_count, align 4, !tbaa !5
  %8615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8616 = load i32, ptr %8615, align 4, !tbaa !5
  %8617 = call ptr @s2n_strerror(i32 noundef %8616, ptr noundef @.str.4)
  %8618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8619 = load i32, ptr %8618, align 4, !tbaa !5
  %8620 = call ptr @s2n_strerror_debug(i32 noundef %8619, ptr noundef @.str.4)
  %8621 = call ptr @__errno_location() #11
  %8622 = load i32, ptr %8621, align 4, !tbaa !5
  %8623 = call ptr @strerror(i32 noundef %8622) #10
  %8624 = call ptr @__errno_location() #11
  %8625 = load i32, ptr %8624, align 4, !tbaa !5
  %8626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8613, ptr noundef @.str.5, i32 noundef %8614, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 392, ptr noundef %8617, ptr noundef %8620, ptr noundef %8623, i32 noundef %8625) #10
  br label %8627

8627:                                             ; preds = %8610, %8593
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #10
  br label %8628

8628:                                             ; preds = %8627
  br label %8629

8629:                                             ; preds = %8628
  call void @exit(i32 noundef 1) #12
  unreachable

8630:                                             ; No predecessors!
  br label %8631

8631:                                             ; preds = %8630
  br label %8632

8632:                                             ; preds = %8631, %8576
  br label %8633

8633:                                             ; preds = %8632
  br label %8634

8634:                                             ; preds = %8633
  br label %8635

8635:                                             ; preds = %8634
  br label %8636

8636:                                             ; preds = %8635
  %8637 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %8638 = icmp eq i32 %8637, -1
  br i1 %8638, label %8639, label %8692

8639:                                             ; preds = %8636
  br label %8640

8640:                                             ; preds = %8639
  br label %8641

8641:                                             ; preds = %8640
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #10
  %8642 = call ptr @__errno_location() #11
  %8643 = load i32, ptr %8642, align 4, !tbaa !5
  store i32 %8643, ptr %202, align 4, !tbaa !5
  %8644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8645 = call i32 @s2n_print_stacktrace(ptr noundef %8644)
  %8646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8647 = trunc i8 %8646 to i1
  br i1 %8647, label %8648, label %8670

8648:                                             ; preds = %8641
  %8649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8650 = call i32 @fileno(ptr noundef %8649) #10
  %8651 = call i32 @isatty(i32 noundef %8650) #10
  %8652 = icmp ne i32 %8651, 0
  br i1 %8652, label %8653, label %8670

8653:                                             ; preds = %8648
  %8654 = load i32, ptr %202, align 4, !tbaa !5
  %8655 = call ptr @__errno_location() #11
  store i32 %8654, ptr %8655, align 4, !tbaa !5
  %8656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8657 = load i32, ptr @test_count, align 4, !tbaa !5
  %8658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8659 = load i32, ptr %8658, align 4, !tbaa !5
  %8660 = call ptr @s2n_strerror(i32 noundef %8659, ptr noundef @.str.4)
  %8661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8662 = load i32, ptr %8661, align 4, !tbaa !5
  %8663 = call ptr @s2n_strerror_debug(i32 noundef %8662, ptr noundef @.str.4)
  %8664 = call ptr @__errno_location() #11
  %8665 = load i32, ptr %8664, align 4, !tbaa !5
  %8666 = call ptr @strerror(i32 noundef %8665) #10
  %8667 = call ptr @__errno_location() #11
  %8668 = load i32, ptr %8667, align 4, !tbaa !5
  %8669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8656, ptr noundef @.str.2, i32 noundef %8657, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 392, ptr noundef %8660, ptr noundef %8663, ptr noundef %8666, i32 noundef %8668) #10
  br label %8687

8670:                                             ; preds = %8648, %8641
  %8671 = load i32, ptr %202, align 4, !tbaa !5
  %8672 = call ptr @__errno_location() #11
  store i32 %8671, ptr %8672, align 4, !tbaa !5
  %8673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8674 = load i32, ptr @test_count, align 4, !tbaa !5
  %8675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8676 = load i32, ptr %8675, align 4, !tbaa !5
  %8677 = call ptr @s2n_strerror(i32 noundef %8676, ptr noundef @.str.4)
  %8678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8679 = load i32, ptr %8678, align 4, !tbaa !5
  %8680 = call ptr @s2n_strerror_debug(i32 noundef %8679, ptr noundef @.str.4)
  %8681 = call ptr @__errno_location() #11
  %8682 = load i32, ptr %8681, align 4, !tbaa !5
  %8683 = call ptr @strerror(i32 noundef %8682) #10
  %8684 = call ptr @__errno_location() #11
  %8685 = load i32, ptr %8684, align 4, !tbaa !5
  %8686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8673, ptr noundef @.str.5, i32 noundef %8674, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 392, ptr noundef %8677, ptr noundef %8680, ptr noundef %8683, i32 noundef %8685) #10
  br label %8687

8687:                                             ; preds = %8670, %8653
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #10
  br label %8688

8688:                                             ; preds = %8687
  br label %8689

8689:                                             ; preds = %8688
  call void @exit(i32 noundef 1) #12
  unreachable

8690:                                             ; No predecessors!
  br label %8691

8691:                                             ; preds = %8690
  br label %8692

8692:                                             ; preds = %8691, %8636
  br label %8693

8693:                                             ; preds = %8692
  br label %8694

8694:                                             ; preds = %8693
  %8695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8696 = trunc i8 %8695 to i1
  br i1 %8696, label %8697, label %8713

8697:                                             ; preds = %8694
  %8698 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8699 = call i32 @fileno(ptr noundef %8698) #10
  %8700 = call i32 @isatty(i32 noundef %8699) #10
  %8701 = icmp ne i32 %8700, 0
  br i1 %8701, label %8702, label %8713

8702:                                             ; preds = %8697
  %8703 = load i32, ptr @test_count, align 4, !tbaa !5
  %8704 = icmp ne i32 %8703, 0
  br i1 %8704, label %8705, label %8709

8705:                                             ; preds = %8702
  %8706 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8707 = load i32, ptr @test_count, align 4, !tbaa !5
  %8708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8706, ptr noundef @.str.87, i32 noundef %8707) #10
  br label %8712

8709:                                             ; preds = %8702
  %8710 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8710, ptr noundef @.str.88) #10
  br label %8712

8712:                                             ; preds = %8709, %8705
  br label %8724

8713:                                             ; preds = %8697, %8694
  %8714 = load i32, ptr @test_count, align 4, !tbaa !5
  %8715 = icmp ne i32 %8714, 0
  br i1 %8715, label %8716, label %8720

8716:                                             ; preds = %8713
  %8717 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8718 = load i32, ptr @test_count, align 4, !tbaa !5
  %8719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8717, ptr noundef @.str.89, i32 noundef %8718) #10
  br label %8723

8720:                                             ; preds = %8713
  %8721 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8721, ptr noundef @.str.90) #10
  br label %8723

8723:                                             ; preds = %8720, %8716
  br label %8724

8724:                                             ; preds = %8723, %8712
  store i32 0, ptr %3, align 4
  store i32 1, ptr %35, align 4
  br label %8729

8725:                                             ; No predecessors!
  br label %8726

8726:                                             ; preds = %8725
  br label %8727

8727:                                             ; preds = %8726
  br label %8728

8728:                                             ; preds = %8727
  store i32 0, ptr %35, align 4
  br label %8729

8729:                                             ; preds = %8728, %8724
  call void @llvm.lifetime.end.p0(i64 2, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #10
  %8730 = load i32, ptr %35, align 4
  switch i32 %8730, label %8733 [
    i32 0, label %8731
    i32 1, label %8731
  ]

8731:                                             ; preds = %8729, %8729
  %8732 = load i32, ptr %3, align 4
  ret i32 %8732

8733:                                             ; preds = %8729, %6487, %5141, %3866, %2715
  unreachable
}

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

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

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #3

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #2

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #2

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #5

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #3

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #2

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

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

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare i32 @s2n_disable_tls13_in_test(...) #3

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #7

declare ptr @s2n_config_new() #3

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) #3

declare ptr @s2n_cert_chain_and_key_new() #3

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) #3

declare i32 @s2n_config_add_dhparams(ptr noundef, ptr noundef) #3

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

declare i32 @s2n_config_set_verify_host_callback(ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: nounwind uwtable
declare hidden zeroext i8 @verify_host_fn(ptr noundef, i64 noundef, ptr noundef) #0

declare i32 @s2n_config_set_verification_ca_location(ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

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

declare ptr @s2n_connection_new(i32 noundef) #3

declare i32 @s2n_connection_set_client_auth_type(ptr noundef, i32 noundef) #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #3

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #3

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) #3

declare i32 @s2n_connection_client_cert_used(ptr noundef) #3

declare i32 @s2n_connection_free(ptr noundef) #3

declare i32 @s2n_stuffer_free(ptr noundef) #3

declare i32 @s2n_config_set_client_auth_type(ptr noundef, i32 noundef) #3

declare void @s2n_debug_info_reset() #3

declare i32 @s2n_config_ptr_free(ptr noundef) #3

declare i32 @s2n_connection_ptr_free(ptr noundef) #3

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) #3

declare i32 @s2n_set_server_name(ptr noundef, ptr noundef) #3

declare i32 @s2n_io_pair_close(ptr noundef) #3

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #3

declare i32 @s2n_connection_set_io_pair(ptr noundef, ptr noundef) #3

declare i32 @s2n_error_get_alert(i32 noundef, ptr noundef) #3

declare i32 @s2n_connection_get_client_cert_chain(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

; Function Attrs: nounwind
declare void @free(ptr noundef) #2

declare i32 @s2n_cleanup() #3

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

!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/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 96}
!16 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !17, i64 24, !18, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !19, i64 144, !10, i64 152, !19, i64 160, !19, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !20, i64 304, !21, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !18, i64 448}
!17 = !{!"certs_by_type", !7, i64 0}
!18 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!19 = !{!"long", !7, i64 0}
!20 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!21 = !{!"short", !7, i64 0}
!22 = !{!23, !10, i64 8}
!23 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!24 = !{!19, !19, i64 0}
!25 = !{!26, !21, i64 0}
!26 = !{!"s2n_cipher_preferences", !21, i64 0, !10, i64 8, !12, i64 16}
!27 = !{!28, !7, i64 0}
!28 = !{!"host_verify_data", !7, i64 0, !7, i64 1}
!29 = !{!26, !10, i64 8}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = distinct !{!32, !31}
!33 = distinct !{!33, !31}
!34 = distinct !{!34, !31}
!35 = !{!7, !7, i64 0}
!36 = distinct !{!36, !31}


; 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"

%struct.host_verify_data = type { i8, i8 }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [79 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [107 x i8], align 1
@__const.main.verify_data = external hidden unnamed_addr constant %struct.host_verify_data, align 1
@.str.27 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [94 x i8], align 1
@__const.main.verify_data_allow = external hidden unnamed_addr constant %struct.host_verify_data, align 1
@.str.64 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca %struct.host_verify_data, align 2
  %4 = alloca %struct.s2n_cipher_preferences, align 8
  %5 = alloca %struct.s2n_security_policy, align 8
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca %struct.s2n_stuffer, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %struct.s2n_cipher_preferences, align 8
  %10 = alloca %struct.s2n_security_policy, align 8
  %11 = alloca %struct.s2n_stuffer, align 8
  %12 = alloca %struct.s2n_stuffer, align 8
  %13 = alloca ptr, align 8
  %14 = alloca %struct.s2n_cipher_preferences, align 8
  %15 = alloca %struct.s2n_security_policy, align 8
  %16 = alloca %struct.s2n_stuffer, align 8
  %17 = alloca %struct.s2n_stuffer, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %struct.s2n_cipher_preferences, align 8
  %20 = alloca %struct.s2n_security_policy, align 8
  %21 = alloca %struct.s2n_stuffer, align 8
  %22 = alloca %struct.s2n_stuffer, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca %struct.host_verify_data, align 2
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca %struct.s2n_test_io_pair, align 8
  %30 = alloca i8, align 1
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %33 = load ptr, ptr @stdout, align 8, !tbaa !9
  %34 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %35 = load ptr, ptr @stdout, align 8, !tbaa !9
  %36 = tail call i32 @fflush(ptr noundef %35)
  %37 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

39:                                               ; preds = %2
  %40 = tail call ptr @__errno_location() #13
  %41 = load i32, ptr %40, align 4, !tbaa !5
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = tail call i32 @s2n_print_stacktrace(ptr noundef %42) #12
  %44 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %45 = trunc nuw i8 %44 to i1
  br i1 %45, label %46, label %50

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #12
  %49 = tail call i32 @isatty(i32 noundef %48) #12
  %.not561 = icmp eq i32 %49, 0
  br i1 %.not561, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #12
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #12
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #12
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink, i32 noundef %53, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

63:                                               ; preds = %2
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr @test_count, align 4, !tbaa !5
  %66 = tail call i32 @s2n_enable_atexit() #12
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %92

68:                                               ; preds = %63
  %69 = tail call ptr @__errno_location() #13
  %70 = load i32, ptr %69, align 4, !tbaa !5
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = tail call i32 @s2n_print_stacktrace(ptr noundef %71) #12
  %73 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %74 = trunc nuw i8 %73 to i1
  br i1 %74, label %75, label %79

75:                                               ; preds = %68
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = tail call i32 @fileno(ptr noundef %76) #12
  %78 = tail call i32 @isatty(i32 noundef %77) #12
  %.not560 = icmp eq i32 %78, 0
  br i1 %.not560, label %79, label %80

79:                                               ; preds = %75, %68
  br label %80

80:                                               ; preds = %75, %79
  %.str.5.sink627 = phi ptr [ @.str.5, %79 ], [ @.str.2, %75 ]
  store i32 %70, ptr %69, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror(i32 noundef %84, ptr noundef nonnull @.str.4) #12
  %86 = load i32, ptr %83, align 4, !tbaa !5
  %87 = tail call ptr @s2n_strerror_debug(i32 noundef %86, ptr noundef nonnull @.str.4) #12
  %88 = load i32, ptr %69, align 4, !tbaa !5
  %89 = tail call ptr @strerror(i32 noundef %88) #12
  %90 = load i32, ptr %69, align 4, !tbaa !5
  %91 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef nonnull %.str.5.sink627, i32 noundef %82, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %85, ptr noundef %87, ptr noundef %89, i32 noundef %90) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

92:                                               ; preds = %63
  %93 = tail call i32 @s2n_init() #12
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

95:                                               ; preds = %92
  %96 = tail call ptr @__errno_location() #13
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @s2n_print_stacktrace(ptr noundef %98) #12
  %100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %101 = trunc nuw i8 %100 to i1
  br i1 %101, label %102, label %106

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #12
  %105 = tail call i32 @isatty(i32 noundef %104) #12
  %.not559 = icmp eq i32 %105, 0
  br i1 %.not559, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink638 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #12
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #12
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #12
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink638, i32 noundef %109, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

119:                                              ; preds = %92
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = tail call i32 (...) @s2n_disable_tls13_in_test() #12
  %123 = icmp eq i32 %122, -1
  br i1 %123, label %124, label %148

124:                                              ; preds = %119
  %125 = tail call ptr @__errno_location() #13
  %126 = load i32, ptr %125, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = tail call i32 @s2n_print_stacktrace(ptr noundef %127) #12
  %129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %130 = trunc nuw i8 %129 to i1
  br i1 %130, label %131, label %135

131:                                              ; preds = %124
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = tail call i32 @fileno(ptr noundef %132) #12
  %134 = tail call i32 @isatty(i32 noundef %133) #12
  %.not558 = icmp eq i32 %134, 0
  br i1 %.not558, label %135, label %136

135:                                              ; preds = %131, %124
  br label %136

136:                                              ; preds = %131, %135
  %.str.5.sink649 = phi ptr [ @.str.5, %135 ], [ @.str.2, %131 ]
  store i32 %126, ptr %125, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = tail call ptr @s2n_strerror(i32 noundef %140, ptr noundef nonnull @.str.4) #12
  %142 = load i32, ptr %139, align 4, !tbaa !5
  %143 = tail call ptr @s2n_strerror_debug(i32 noundef %142, ptr noundef nonnull @.str.4) #12
  %144 = load i32, ptr %125, align 4, !tbaa !5
  %145 = tail call ptr @strerror(i32 noundef %144) #12
  %146 = load i32, ptr %125, align 4, !tbaa !5
  %147 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef nonnull %.str.5.sink649, i32 noundef %138, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %141, ptr noundef %143, ptr noundef %145, i32 noundef %146) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

148:                                              ; preds = %119
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #16
  %152 = icmp eq ptr %151, null
  br i1 %152, label %153, label %177

153:                                              ; preds = %148
  %154 = tail call ptr @__errno_location() #13
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = tail call i32 @s2n_print_stacktrace(ptr noundef %156) #12
  %158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %159 = trunc nuw i8 %158 to i1
  br i1 %159, label %160, label %164

160:                                              ; preds = %153
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = tail call i32 @fileno(ptr noundef %161) #12
  %163 = tail call i32 @isatty(i32 noundef %162) #12
  %.not557 = icmp eq i32 %163, 0
  br i1 %.not557, label %164, label %165

164:                                              ; preds = %160, %153
  br label %165

165:                                              ; preds = %160, %164
  %.str.5.sink660 = phi ptr [ @.str.5, %164 ], [ @.str.2, %160 ]
  store i32 %155, ptr %154, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = tail call ptr @s2n_strerror(i32 noundef %169, ptr noundef nonnull @.str.4) #12
  %171 = load i32, ptr %168, align 4, !tbaa !5
  %172 = tail call ptr @s2n_strerror_debug(i32 noundef %171, ptr noundef nonnull @.str.4) #12
  %173 = load i32, ptr %154, align 4, !tbaa !5
  %174 = tail call ptr @strerror(i32 noundef %173) #12
  %175 = load i32, ptr %154, align 4, !tbaa !5
  %176 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull %.str.5.sink660, i32 noundef %167, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %170, ptr noundef %172, ptr noundef %174, i32 noundef %175) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

177:                                              ; preds = %148
  %178 = add nsw i32 %149, 2
  store i32 %178, ptr @test_count, align 4, !tbaa !5
  %179 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #16
  %180 = icmp eq ptr %179, null
  br i1 %180, label %181, label %205

181:                                              ; preds = %177
  %182 = tail call ptr @__errno_location() #13
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = tail call i32 @s2n_print_stacktrace(ptr noundef %184) #12
  %186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %187 = trunc nuw i8 %186 to i1
  br i1 %187, label %188, label %192

188:                                              ; preds = %181
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = tail call i32 @fileno(ptr noundef %189) #12
  %191 = tail call i32 @isatty(i32 noundef %190) #12
  %.not556 = icmp eq i32 %191, 0
  br i1 %.not556, label %192, label %193

192:                                              ; preds = %188, %181
  br label %193

193:                                              ; preds = %188, %192
  %.str.5.sink671 = phi ptr [ @.str.5, %192 ], [ @.str.2, %188 ]
  store i32 %183, ptr %182, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = tail call ptr @s2n_strerror(i32 noundef %197, ptr noundef nonnull @.str.4) #12
  %199 = load i32, ptr %196, align 4, !tbaa !5
  %200 = tail call ptr @s2n_strerror_debug(i32 noundef %199, ptr noundef nonnull @.str.4) #12
  %201 = load i32, ptr %182, align 4, !tbaa !5
  %202 = tail call ptr @strerror(i32 noundef %201) #12
  %203 = load i32, ptr %182, align 4, !tbaa !5
  %204 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef nonnull %.str.5.sink671, i32 noundef %195, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %198, ptr noundef %200, ptr noundef %202, i32 noundef %203) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

205:                                              ; preds = %177
  %206 = add nsw i32 %149, 3
  store i32 %206, ptr @test_count, align 4, !tbaa !5
  %207 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #16
  %208 = icmp eq ptr %207, null
  br i1 %208, label %209, label %233

209:                                              ; preds = %205
  %210 = tail call ptr @__errno_location() #13
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = tail call i32 @s2n_print_stacktrace(ptr noundef %212) #12
  %214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %215 = trunc nuw i8 %214 to i1
  br i1 %215, label %216, label %220

216:                                              ; preds = %209
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = tail call i32 @fileno(ptr noundef %217) #12
  %219 = tail call i32 @isatty(i32 noundef %218) #12
  %.not555 = icmp eq i32 %219, 0
  br i1 %.not555, label %220, label %221

220:                                              ; preds = %216, %209
  br label %221

221:                                              ; preds = %216, %220
  %.str.5.sink682 = phi ptr [ @.str.5, %220 ], [ @.str.2, %216 ]
  store i32 %211, ptr %210, align 4, !tbaa !5
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = load i32, ptr @test_count, align 4, !tbaa !5
  %224 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = tail call ptr @s2n_strerror(i32 noundef %225, ptr noundef nonnull @.str.4) #12
  %227 = load i32, ptr %224, align 4, !tbaa !5
  %228 = tail call ptr @s2n_strerror_debug(i32 noundef %227, ptr noundef nonnull @.str.4) #12
  %229 = load i32, ptr %210, align 4, !tbaa !5
  %230 = tail call ptr @strerror(i32 noundef %229) #12
  %231 = load i32, ptr %210, align 4, !tbaa !5
  %232 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %222, ptr noundef nonnull %.str.5.sink682, i32 noundef %223, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %226, ptr noundef %228, ptr noundef %230, i32 noundef %231) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

233:                                              ; preds = %205
  %234 = add nsw i32 %149, 4
  store i32 %234, ptr @test_count, align 4, !tbaa !5
  %235 = tail call ptr @s2n_config_new() #12
  %236 = icmp eq ptr %235, null
  br i1 %236, label %237, label %261

237:                                              ; preds = %233
  %238 = tail call ptr @__errno_location() #13
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %241 = tail call i32 @s2n_print_stacktrace(ptr noundef %240) #12
  %242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %243 = trunc nuw i8 %242 to i1
  br i1 %243, label %244, label %248

244:                                              ; preds = %237
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = tail call i32 @fileno(ptr noundef %245) #12
  %247 = tail call i32 @isatty(i32 noundef %246) #12
  %.not554 = icmp eq i32 %247, 0
  br i1 %.not554, label %248, label %249

248:                                              ; preds = %244, %237
  br label %249

249:                                              ; preds = %244, %248
  %.str.5.sink693 = phi ptr [ @.str.5, %248 ], [ @.str.2, %244 ]
  store i32 %239, ptr %238, align 4, !tbaa !5
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = tail call ptr @s2n_strerror(i32 noundef %253, ptr noundef nonnull @.str.4) #12
  %255 = load i32, ptr %252, align 4, !tbaa !5
  %256 = tail call ptr @s2n_strerror_debug(i32 noundef %255, ptr noundef nonnull @.str.4) #12
  %257 = load i32, ptr %238, align 4, !tbaa !5
  %258 = tail call ptr @strerror(i32 noundef %257) #12
  %259 = load i32, ptr %238, align 4, !tbaa !5
  %260 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %250, ptr noundef nonnull %.str.5.sink693, i32 noundef %251, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %254, ptr noundef %256, ptr noundef %258, i32 noundef %259) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

261:                                              ; preds = %233
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr @test_count, align 4, !tbaa !5
  %264 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.13, ptr noundef nonnull %151, i64 noundef 12000) #12
  %265 = icmp eq i32 %264, -1
  br i1 %265, label %266, label %290

266:                                              ; preds = %261
  %267 = tail call ptr @__errno_location() #13
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %270 = tail call i32 @s2n_print_stacktrace(ptr noundef %269) #12
  %271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %272 = trunc nuw i8 %271 to i1
  br i1 %272, label %273, label %277

273:                                              ; preds = %266
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = tail call i32 @fileno(ptr noundef %274) #12
  %276 = tail call i32 @isatty(i32 noundef %275) #12
  %.not553 = icmp eq i32 %276, 0
  br i1 %.not553, label %277, label %278

277:                                              ; preds = %273, %266
  br label %278

278:                                              ; preds = %273, %277
  %.str.5.sink704 = phi ptr [ @.str.5, %277 ], [ @.str.2, %273 ]
  store i32 %268, ptr %267, align 4, !tbaa !5
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = tail call ptr @s2n_strerror(i32 noundef %282, ptr noundef nonnull @.str.4) #12
  %284 = load i32, ptr %281, align 4, !tbaa !5
  %285 = tail call ptr @s2n_strerror_debug(i32 noundef %284, ptr noundef nonnull @.str.4) #12
  %286 = load i32, ptr %267, align 4, !tbaa !5
  %287 = tail call ptr @strerror(i32 noundef %286) #12
  %288 = load i32, ptr %267, align 4, !tbaa !5
  %289 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %279, ptr noundef nonnull %.str.5.sink704, i32 noundef %280, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %283, ptr noundef %285, ptr noundef %287, i32 noundef %288) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

290:                                              ; preds = %261
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = add nsw i32 %291, 1
  store i32 %292, ptr @test_count, align 4, !tbaa !5
  %293 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.15, ptr noundef nonnull %179, i64 noundef 12000) #12
  %294 = icmp eq i32 %293, -1
  br i1 %294, label %295, label %319

295:                                              ; preds = %290
  %296 = tail call ptr @__errno_location() #13
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = tail call i32 @s2n_print_stacktrace(ptr noundef %298) #12
  %300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %301 = trunc nuw i8 %300 to i1
  br i1 %301, label %302, label %306

302:                                              ; preds = %295
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = tail call i32 @fileno(ptr noundef %303) #12
  %305 = tail call i32 @isatty(i32 noundef %304) #12
  %.not552 = icmp eq i32 %305, 0
  br i1 %.not552, label %306, label %307

306:                                              ; preds = %302, %295
  br label %307

307:                                              ; preds = %302, %306
  %.str.5.sink715 = phi ptr [ @.str.5, %306 ], [ @.str.2, %302 ]
  store i32 %297, ptr %296, align 4, !tbaa !5
  %308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %309 = load i32, ptr @test_count, align 4, !tbaa !5
  %310 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = tail call ptr @s2n_strerror(i32 noundef %311, ptr noundef nonnull @.str.4) #12
  %313 = load i32, ptr %310, align 4, !tbaa !5
  %314 = tail call ptr @s2n_strerror_debug(i32 noundef %313, ptr noundef nonnull @.str.4) #12
  %315 = load i32, ptr %296, align 4, !tbaa !5
  %316 = tail call ptr @strerror(i32 noundef %315) #12
  %317 = load i32, ptr %296, align 4, !tbaa !5
  %318 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %308, ptr noundef nonnull %.str.5.sink715, i32 noundef %309, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %312, ptr noundef %314, ptr noundef %316, i32 noundef %317) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

319:                                              ; preds = %290
  %320 = load i32, ptr @test_count, align 4, !tbaa !5
  %321 = add nsw i32 %320, 1
  store i32 %321, ptr @test_count, align 4, !tbaa !5
  %322 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.17, ptr noundef nonnull %207, i64 noundef 12000) #12
  %323 = icmp eq i32 %322, -1
  br i1 %323, label %324, label %348

324:                                              ; preds = %319
  %325 = tail call ptr @__errno_location() #13
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %328 = tail call i32 @s2n_print_stacktrace(ptr noundef %327) #12
  %329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %330 = trunc nuw i8 %329 to i1
  br i1 %330, label %331, label %335

331:                                              ; preds = %324
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = tail call i32 @fileno(ptr noundef %332) #12
  %334 = tail call i32 @isatty(i32 noundef %333) #12
  %.not551 = icmp eq i32 %334, 0
  br i1 %.not551, label %335, label %336

335:                                              ; preds = %331, %324
  br label %336

336:                                              ; preds = %331, %335
  %.str.5.sink726 = phi ptr [ @.str.5, %335 ], [ @.str.2, %331 ]
  store i32 %326, ptr %325, align 4, !tbaa !5
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = load i32, ptr @test_count, align 4, !tbaa !5
  %339 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = tail call ptr @s2n_strerror(i32 noundef %340, ptr noundef nonnull @.str.4) #12
  %342 = load i32, ptr %339, align 4, !tbaa !5
  %343 = tail call ptr @s2n_strerror_debug(i32 noundef %342, ptr noundef nonnull @.str.4) #12
  %344 = load i32, ptr %325, align 4, !tbaa !5
  %345 = tail call ptr @strerror(i32 noundef %344) #12
  %346 = load i32, ptr %325, align 4, !tbaa !5
  %347 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %337, ptr noundef nonnull %.str.5.sink726, i32 noundef %338, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %341, ptr noundef %343, ptr noundef %345, i32 noundef %346) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

348:                                              ; preds = %319
  %349 = load i32, ptr @test_count, align 4, !tbaa !5
  %350 = add nsw i32 %349, 1
  store i32 %350, ptr @test_count, align 4, !tbaa !5
  %351 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %235, ptr noundef nonnull @.str.19) #12
  %352 = icmp eq i32 %351, -1
  br i1 %352, label %353, label %377

353:                                              ; preds = %348
  %354 = tail call ptr @__errno_location() #13
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = tail call i32 @s2n_print_stacktrace(ptr noundef %356) #12
  %358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %359 = trunc nuw i8 %358 to i1
  br i1 %359, label %360, label %364

360:                                              ; preds = %353
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = tail call i32 @fileno(ptr noundef %361) #12
  %363 = tail call i32 @isatty(i32 noundef %362) #12
  %.not550 = icmp eq i32 %363, 0
  br i1 %.not550, label %364, label %365

364:                                              ; preds = %360, %353
  br label %365

365:                                              ; preds = %360, %364
  %.str.5.sink737 = phi ptr [ @.str.5, %364 ], [ @.str.2, %360 ]
  store i32 %355, ptr %354, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = tail call ptr @s2n_strerror(i32 noundef %369, ptr noundef nonnull @.str.4) #12
  %371 = load i32, ptr %368, align 4, !tbaa !5
  %372 = tail call ptr @s2n_strerror_debug(i32 noundef %371, ptr noundef nonnull @.str.4) #12
  %373 = load i32, ptr %354, align 4, !tbaa !5
  %374 = tail call ptr @strerror(i32 noundef %373) #12
  %375 = load i32, ptr %354, align 4, !tbaa !5
  %376 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %366, ptr noundef nonnull %.str.5.sink737, i32 noundef %367, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %370, ptr noundef %372, ptr noundef %374, i32 noundef %375) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

377:                                              ; preds = %348
  %378 = load i32, ptr @test_count, align 4, !tbaa !5
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr @test_count, align 4, !tbaa !5
  %380 = tail call ptr @s2n_cert_chain_and_key_new() #12
  %381 = icmp eq ptr %380, null
  br i1 %381, label %382, label %406

382:                                              ; preds = %377
  %383 = tail call ptr @__errno_location() #13
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = tail call i32 @s2n_print_stacktrace(ptr noundef %385) #12
  %387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %388 = trunc nuw i8 %387 to i1
  br i1 %388, label %389, label %393

389:                                              ; preds = %382
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = tail call i32 @fileno(ptr noundef %390) #12
  %392 = tail call i32 @isatty(i32 noundef %391) #12
  %.not549 = icmp eq i32 %392, 0
  br i1 %.not549, label %393, label %394

393:                                              ; preds = %389, %382
  br label %394

394:                                              ; preds = %389, %393
  %.str.5.sink748 = phi ptr [ @.str.5, %393 ], [ @.str.2, %389 ]
  store i32 %384, ptr %383, align 4, !tbaa !5
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %398 = load i32, ptr %397, align 4, !tbaa !5
  %399 = tail call ptr @s2n_strerror(i32 noundef %398, ptr noundef nonnull @.str.4) #12
  %400 = load i32, ptr %397, align 4, !tbaa !5
  %401 = tail call ptr @s2n_strerror_debug(i32 noundef %400, ptr noundef nonnull @.str.4) #12
  %402 = load i32, ptr %383, align 4, !tbaa !5
  %403 = tail call ptr @strerror(i32 noundef %402) #12
  %404 = load i32, ptr %383, align 4, !tbaa !5
  %405 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %395, ptr noundef nonnull %.str.5.sink748, i32 noundef %396, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %399, ptr noundef %401, ptr noundef %403, i32 noundef %404) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

406:                                              ; preds = %377
  %407 = load i32, ptr @test_count, align 4, !tbaa !5
  %408 = add nsw i32 %407, 1
  store i32 %408, ptr @test_count, align 4, !tbaa !5
  %409 = tail call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %380, ptr noundef nonnull %151, ptr noundef nonnull %179) #12
  %410 = icmp eq i32 %409, -1
  br i1 %410, label %411, label %435

411:                                              ; preds = %406
  %412 = tail call ptr @__errno_location() #13
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = tail call i32 @s2n_print_stacktrace(ptr noundef %414) #12
  %416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %417 = trunc nuw i8 %416 to i1
  br i1 %417, label %418, label %422

418:                                              ; preds = %411
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = tail call i32 @fileno(ptr noundef %419) #12
  %421 = tail call i32 @isatty(i32 noundef %420) #12
  %.not548 = icmp eq i32 %421, 0
  br i1 %.not548, label %422, label %423

422:                                              ; preds = %418, %411
  br label %423

423:                                              ; preds = %418, %422
  %.str.5.sink759 = phi ptr [ @.str.5, %422 ], [ @.str.2, %418 ]
  store i32 %413, ptr %412, align 4, !tbaa !5
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = load i32, ptr @test_count, align 4, !tbaa !5
  %426 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = tail call ptr @s2n_strerror(i32 noundef %427, ptr noundef nonnull @.str.4) #12
  %429 = load i32, ptr %426, align 4, !tbaa !5
  %430 = tail call ptr @s2n_strerror_debug(i32 noundef %429, ptr noundef nonnull @.str.4) #12
  %431 = load i32, ptr %412, align 4, !tbaa !5
  %432 = tail call ptr @strerror(i32 noundef %431) #12
  %433 = load i32, ptr %412, align 4, !tbaa !5
  %434 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %424, ptr noundef nonnull %.str.5.sink759, i32 noundef %425, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %428, ptr noundef %430, ptr noundef %432, i32 noundef %433) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

435:                                              ; preds = %406
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr @test_count, align 4, !tbaa !5
  %438 = tail call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %235, ptr noundef nonnull %380) #12
  %439 = icmp eq i32 %438, -1
  br i1 %439, label %440, label %464

440:                                              ; preds = %435
  %441 = tail call ptr @__errno_location() #13
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = tail call i32 @s2n_print_stacktrace(ptr noundef %443) #12
  %445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %446 = trunc nuw i8 %445 to i1
  br i1 %446, label %447, label %451

447:                                              ; preds = %440
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = tail call i32 @fileno(ptr noundef %448) #12
  %450 = tail call i32 @isatty(i32 noundef %449) #12
  %.not547 = icmp eq i32 %450, 0
  br i1 %.not547, label %451, label %452

451:                                              ; preds = %447, %440
  br label %452

452:                                              ; preds = %447, %451
  %.str.5.sink770 = phi ptr [ @.str.5, %451 ], [ @.str.2, %447 ]
  store i32 %442, ptr %441, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = tail call ptr @s2n_strerror(i32 noundef %456, ptr noundef nonnull @.str.4) #12
  %458 = load i32, ptr %455, align 4, !tbaa !5
  %459 = tail call ptr @s2n_strerror_debug(i32 noundef %458, ptr noundef nonnull @.str.4) #12
  %460 = load i32, ptr %441, align 4, !tbaa !5
  %461 = tail call ptr @strerror(i32 noundef %460) #12
  %462 = load i32, ptr %441, align 4, !tbaa !5
  %463 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %453, ptr noundef nonnull %.str.5.sink770, i32 noundef %454, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %457, ptr noundef %459, ptr noundef %461, i32 noundef %462) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

464:                                              ; preds = %435
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %466 = add nsw i32 %465, 1
  store i32 %466, ptr @test_count, align 4, !tbaa !5
  %467 = tail call i32 @s2n_config_add_dhparams(ptr noundef nonnull %235, ptr noundef nonnull %207) #12
  %468 = icmp eq i32 %467, -1
  br i1 %468, label %469, label %493

469:                                              ; preds = %464
  %470 = tail call ptr @__errno_location() #13
  %471 = load i32, ptr %470, align 4, !tbaa !5
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = tail call i32 @s2n_print_stacktrace(ptr noundef %472) #12
  %474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %475 = trunc nuw i8 %474 to i1
  br i1 %475, label %476, label %480

476:                                              ; preds = %469
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = tail call i32 @fileno(ptr noundef %477) #12
  %479 = tail call i32 @isatty(i32 noundef %478) #12
  %.not546 = icmp eq i32 %479, 0
  br i1 %.not546, label %480, label %481

480:                                              ; preds = %476, %469
  br label %481

481:                                              ; preds = %476, %480
  %.str.5.sink781 = phi ptr [ @.str.5, %480 ], [ @.str.2, %476 ]
  store i32 %471, ptr %470, align 4, !tbaa !5
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = load i32, ptr @test_count, align 4, !tbaa !5
  %484 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %485 = load i32, ptr %484, align 4, !tbaa !5
  %486 = tail call ptr @s2n_strerror(i32 noundef %485, ptr noundef nonnull @.str.4) #12
  %487 = load i32, ptr %484, align 4, !tbaa !5
  %488 = tail call ptr @s2n_strerror_debug(i32 noundef %487, ptr noundef nonnull @.str.4) #12
  %489 = load i32, ptr %470, align 4, !tbaa !5
  %490 = tail call ptr @strerror(i32 noundef %489) #12
  %491 = load i32, ptr %470, align 4, !tbaa !5
  %492 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %482, ptr noundef nonnull %.str.5.sink781, i32 noundef %483, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %486, ptr noundef %488, ptr noundef %490, i32 noundef %491) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

493:                                              ; preds = %464
  %494 = load i32, ptr @test_count, align 4, !tbaa !5
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr @test_count, align 4, !tbaa !5
  %496 = getelementptr inbounds i8, ptr %235, i64 96
  %497 = load ptr, ptr %496, align 8, !tbaa !15
  %498 = icmp eq ptr %497, null
  br i1 %498, label %499, label %523

499:                                              ; preds = %493
  %500 = tail call ptr @__errno_location() #13
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = tail call i32 @s2n_print_stacktrace(ptr noundef %502) #12
  %504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %505 = trunc nuw i8 %504 to i1
  br i1 %505, label %506, label %510

506:                                              ; preds = %499
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = tail call i32 @fileno(ptr noundef %507) #12
  %509 = tail call i32 @isatty(i32 noundef %508) #12
  %.not545 = icmp eq i32 %509, 0
  br i1 %.not545, label %510, label %511

510:                                              ; preds = %506, %499
  br label %511

511:                                              ; preds = %506, %510
  %.str.5.sink792 = phi ptr [ @.str.5, %510 ], [ @.str.2, %506 ]
  store i32 %501, ptr %500, align 4, !tbaa !5
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = tail call ptr @s2n_strerror(i32 noundef %515, ptr noundef nonnull @.str.4) #12
  %517 = load i32, ptr %514, align 4, !tbaa !5
  %518 = tail call ptr @s2n_strerror_debug(i32 noundef %517, ptr noundef nonnull @.str.4) #12
  %519 = load i32, ptr %500, align 4, !tbaa !5
  %520 = tail call ptr @strerror(i32 noundef %519) #12
  %521 = load i32, ptr %500, align 4, !tbaa !5
  %522 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %512, ptr noundef nonnull %.str.5.sink792, i32 noundef %513, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %516, ptr noundef %518, ptr noundef %520, i32 noundef %521) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

523:                                              ; preds = %493
  %524 = add nsw i32 %494, 2
  store i32 %524, ptr @test_count, align 4, !tbaa !5
  %525 = getelementptr inbounds i8, ptr %497, i64 8
  %526 = load ptr, ptr %525, align 8, !tbaa !22
  %527 = icmp eq ptr %526, null
  br i1 %527, label %528, label %552

528:                                              ; preds = %523
  %529 = tail call ptr @__errno_location() #13
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %532 = tail call i32 @s2n_print_stacktrace(ptr noundef %531) #12
  %533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %534 = trunc nuw i8 %533 to i1
  br i1 %534, label %535, label %539

535:                                              ; preds = %528
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = tail call i32 @fileno(ptr noundef %536) #12
  %538 = tail call i32 @isatty(i32 noundef %537) #12
  %.not544 = icmp eq i32 %538, 0
  br i1 %.not544, label %539, label %540

539:                                              ; preds = %535, %528
  br label %540

540:                                              ; preds = %535, %539
  %.str.5.sink803 = phi ptr [ @.str.5, %539 ], [ @.str.2, %535 ]
  store i32 %530, ptr %529, align 4, !tbaa !5
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = load i32, ptr @test_count, align 4, !tbaa !5
  %543 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = tail call ptr @s2n_strerror(i32 noundef %544, ptr noundef nonnull @.str.4) #12
  %546 = load i32, ptr %543, align 4, !tbaa !5
  %547 = tail call ptr @s2n_strerror_debug(i32 noundef %546, ptr noundef nonnull @.str.4) #12
  %548 = load i32, ptr %529, align 4, !tbaa !5
  %549 = tail call ptr @strerror(i32 noundef %548) #12
  %550 = load i32, ptr %529, align 4, !tbaa !5
  %551 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %541, ptr noundef nonnull %.str.5.sink803, i32 noundef %542, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %545, ptr noundef %547, ptr noundef %549, i32 noundef %550) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

552:                                              ; preds = %523
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %3) #12
  %553 = load i16, ptr @__const.main.verify_data, align 1
  store i16 %553, ptr %3, align 2
  %554 = add nsw i32 %494, 3
  store i32 %554, ptr @test_count, align 4, !tbaa !5
  %555 = call i32 @s2n_config_set_verify_host_callback(ptr noundef nonnull %235, ptr noundef nonnull @verify_host_fn, ptr noundef nonnull %3) #12
  %556 = icmp eq i32 %555, -1
  br i1 %556, label %557, label %581

557:                                              ; preds = %552
  %558 = tail call ptr @__errno_location() #13
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %561 = call i32 @s2n_print_stacktrace(ptr noundef %560) #12
  %562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %563 = trunc nuw i8 %562 to i1
  br i1 %563, label %564, label %568

564:                                              ; preds = %557
  %565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %566 = call i32 @fileno(ptr noundef %565) #12
  %567 = call i32 @isatty(i32 noundef %566) #12
  %.not543 = icmp eq i32 %567, 0
  br i1 %.not543, label %568, label %569

568:                                              ; preds = %564, %557
  br label %569

569:                                              ; preds = %564, %568
  %.str.5.sink814 = phi ptr [ @.str.5, %568 ], [ @.str.2, %564 ]
  store i32 %559, ptr %558, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror(i32 noundef %573, ptr noundef nonnull @.str.4) #12
  %575 = load i32, ptr %572, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror_debug(i32 noundef %575, ptr noundef nonnull @.str.4) #12
  %577 = load i32, ptr %558, align 4, !tbaa !5
  %578 = call ptr @strerror(i32 noundef %577) #12
  %579 = load i32, ptr %558, align 4, !tbaa !5
  %580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %570, ptr noundef nonnull %.str.5.sink814, i32 noundef %571, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %574, ptr noundef %576, ptr noundef %578, i32 noundef %579) #14
  call void @exit(i32 noundef 1) #15
  unreachable

581:                                              ; preds = %552
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = add nsw i32 %582, 1
  store i32 %583, ptr @test_count, align 4, !tbaa !5
  %584 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %235, ptr noundef nonnull @.str.13, ptr noundef null) #12
  %585 = icmp eq i32 %584, -1
  br i1 %585, label %590, label %.preheader565

.preheader565:                                    ; preds = %581
  %586 = load i16, ptr %526, align 8, !tbaa !24
  %.not597 = icmp eq i16 %586, 0
  br i1 %.not597, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader565
  %587 = getelementptr inbounds i8, ptr %526, i64 8
  %588 = getelementptr inbounds i8, ptr %4, i64 8
  %589 = getelementptr inbounds i8, ptr %5, i64 8
  br label %622

590:                                              ; preds = %581
  %591 = tail call ptr @__errno_location() #13
  %592 = load i32, ptr %591, align 4, !tbaa !5
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = call i32 @s2n_print_stacktrace(ptr noundef %593) #12
  %595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %596 = trunc nuw i8 %595 to i1
  br i1 %596, label %597, label %601

597:                                              ; preds = %590
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = call i32 @fileno(ptr noundef %598) #12
  %600 = call i32 @isatty(i32 noundef %599) #12
  %.not542 = icmp eq i32 %600, 0
  br i1 %.not542, label %601, label %602

601:                                              ; preds = %597, %590
  br label %602

602:                                              ; preds = %597, %601
  %.str.5.sink825 = phi ptr [ @.str.5, %601 ], [ @.str.2, %597 ]
  store i32 %592, ptr %591, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %606 = load i32, ptr %605, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror(i32 noundef %606, ptr noundef nonnull @.str.4) #12
  %608 = load i32, ptr %605, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror_debug(i32 noundef %608, ptr noundef nonnull @.str.4) #12
  %610 = load i32, ptr %591, align 4, !tbaa !5
  %611 = call ptr @strerror(i32 noundef %610) #12
  %612 = load i32, ptr %591, align 4, !tbaa !5
  %613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %603, ptr noundef nonnull %.str.5.sink825, i32 noundef %604, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %607, ptr noundef %609, ptr noundef %611, i32 noundef %612) #14
  call void @exit(i32 noundef 1) #15
  unreachable

._crit_edge:                                      ; preds = %1146, %.preheader565
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr @test_count, align 4, !tbaa !5
  %616 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %235, i32 noundef 1) #12
  %617 = icmp eq i32 %616, -1
  br i1 %617, label %1151, label %.preheader564

.preheader564:                                    ; preds = %._crit_edge
  %618 = load i16, ptr %526, align 8, !tbaa !24
  %.not598 = icmp eq i16 %618, 0
  br i1 %.not598, label %._crit_edge590, label %.lr.ph589

.lr.ph589:                                        ; preds = %.preheader564
  %619 = getelementptr inbounds i8, ptr %526, i64 8
  %620 = getelementptr inbounds i8, ptr %9, i64 8
  %621 = getelementptr inbounds i8, ptr %10, i64 8
  br label %1183

622:                                              ; preds = %.lr.ph, %1146
  %.0587 = phi i64 [ 0, %.lr.ph ], [ %1147, %1146 ]
  store i8 0, ptr %3, align 2, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %5) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %526, i64 24, i1 false)
  store i16 1, ptr %4, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #12
  %623 = load ptr, ptr %587, align 8, !tbaa !28
  %624 = getelementptr inbounds ptr, ptr %623, i64 %.0587
  %625 = load ptr, ptr %624, align 8, !tbaa !9
  store ptr %625, ptr %8, align 8, !tbaa !9
  %626 = load i8, ptr %625, align 8
  %627 = and i8 %626, 1
  %.not520 = icmp eq i8 %627, 0
  br i1 %.not520, label %1146, label %628

628:                                              ; preds = %622
  store ptr %8, ptr %588, align 8, !tbaa !28
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %5, ptr noundef nonnull align 8 dereferenceable(64) %497, i64 64, i1 false)
  store ptr %4, ptr %589, align 8, !tbaa !22
  store ptr %5, ptr %496, align 8, !tbaa !15
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = add nsw i32 %629, 1
  store i32 %630, ptr @test_count, align 4, !tbaa !5
  %631 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %632 = icmp eq ptr %631, null
  br i1 %632, label %633, label %657

633:                                              ; preds = %628
  %634 = tail call ptr @__errno_location() #13
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = call i32 @s2n_print_stacktrace(ptr noundef %636) #12
  %638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %639 = trunc nuw i8 %638 to i1
  br i1 %639, label %640, label %644

640:                                              ; preds = %633
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = call i32 @fileno(ptr noundef %641) #12
  %643 = call i32 @isatty(i32 noundef %642) #12
  %.not541 = icmp eq i32 %643, 0
  br i1 %.not541, label %644, label %645

644:                                              ; preds = %640, %633
  br label %645

645:                                              ; preds = %640, %644
  %.str.5.sink836 = phi ptr [ @.str.5, %644 ], [ @.str.2, %640 ]
  store i32 %635, ptr %634, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror(i32 noundef %649, ptr noundef nonnull @.str.4) #12
  %651 = load i32, ptr %648, align 4, !tbaa !5
  %652 = call ptr @s2n_strerror_debug(i32 noundef %651, ptr noundef nonnull @.str.4) #12
  %653 = load i32, ptr %634, align 4, !tbaa !5
  %654 = call ptr @strerror(i32 noundef %653) #12
  %655 = load i32, ptr %634, align 4, !tbaa !5
  %656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %646, ptr noundef nonnull %.str.5.sink836, i32 noundef %647, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %650, ptr noundef %652, ptr noundef %654, i32 noundef %655) #14
  call void @exit(i32 noundef 1) #15
  unreachable

657:                                              ; preds = %628
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = add nsw i32 %658, 1
  store i32 %659, ptr @test_count, align 4, !tbaa !5
  %660 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %631, i32 noundef 1) #12
  %661 = icmp eq i32 %660, -1
  br i1 %661, label %662, label %686

662:                                              ; preds = %657
  %663 = tail call ptr @__errno_location() #13
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = call i32 @s2n_print_stacktrace(ptr noundef %665) #12
  %667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %668 = trunc nuw i8 %667 to i1
  br i1 %668, label %669, label %673

669:                                              ; preds = %662
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @fileno(ptr noundef %670) #12
  %672 = call i32 @isatty(i32 noundef %671) #12
  %.not540 = icmp eq i32 %672, 0
  br i1 %.not540, label %673, label %674

673:                                              ; preds = %669, %662
  br label %674

674:                                              ; preds = %669, %673
  %.str.5.sink847 = phi ptr [ @.str.5, %673 ], [ @.str.2, %669 ]
  store i32 %664, ptr %663, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror(i32 noundef %678, ptr noundef nonnull @.str.4) #12
  %680 = load i32, ptr %677, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror_debug(i32 noundef %680, ptr noundef nonnull @.str.4) #12
  %682 = load i32, ptr %663, align 4, !tbaa !5
  %683 = call ptr @strerror(i32 noundef %682) #12
  %684 = load i32, ptr %663, align 4, !tbaa !5
  %685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef nonnull %.str.5.sink847, i32 noundef %676, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %679, ptr noundef %681, ptr noundef %683, i32 noundef %684) #14
  call void @exit(i32 noundef 1) #15
  unreachable

686:                                              ; preds = %657
  %687 = load i32, ptr @test_count, align 4, !tbaa !5
  %688 = add nsw i32 %687, 1
  store i32 %688, ptr @test_count, align 4, !tbaa !5
  %689 = call i32 @s2n_connection_set_config(ptr noundef nonnull %631, ptr noundef nonnull %235) #12
  %690 = icmp eq i32 %689, -1
  br i1 %690, label %691, label %715

691:                                              ; preds = %686
  %692 = tail call ptr @__errno_location() #13
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = call i32 @s2n_print_stacktrace(ptr noundef %694) #12
  %696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %697 = trunc nuw i8 %696 to i1
  br i1 %697, label %698, label %702

698:                                              ; preds = %691
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @fileno(ptr noundef %699) #12
  %701 = call i32 @isatty(i32 noundef %700) #12
  %.not539 = icmp eq i32 %701, 0
  br i1 %.not539, label %702, label %703

702:                                              ; preds = %698, %691
  br label %703

703:                                              ; preds = %698, %702
  %.str.5.sink858 = phi ptr [ @.str.5, %702 ], [ @.str.2, %698 ]
  store i32 %693, ptr %692, align 4, !tbaa !5
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = call ptr @s2n_strerror(i32 noundef %707, ptr noundef nonnull @.str.4) #12
  %709 = load i32, ptr %706, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror_debug(i32 noundef %709, ptr noundef nonnull @.str.4) #12
  %711 = load i32, ptr %692, align 4, !tbaa !5
  %712 = call ptr @strerror(i32 noundef %711) #12
  %713 = load i32, ptr %692, align 4, !tbaa !5
  %714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %704, ptr noundef nonnull %.str.5.sink858, i32 noundef %705, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %708, ptr noundef %710, ptr noundef %712, i32 noundef %713) #14
  call void @exit(i32 noundef 1) #15
  unreachable

715:                                              ; preds = %686
  %716 = load i32, ptr @test_count, align 4, !tbaa !5
  %717 = add nsw i32 %716, 1
  store i32 %717, ptr @test_count, align 4, !tbaa !5
  %718 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %719 = icmp eq ptr %718, null
  br i1 %719, label %720, label %744

720:                                              ; preds = %715
  %721 = tail call ptr @__errno_location() #13
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @s2n_print_stacktrace(ptr noundef %723) #12
  %725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %727, label %731

727:                                              ; preds = %720
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @fileno(ptr noundef %728) #12
  %730 = call i32 @isatty(i32 noundef %729) #12
  %.not538 = icmp eq i32 %730, 0
  br i1 %.not538, label %731, label %732

731:                                              ; preds = %727, %720
  br label %732

732:                                              ; preds = %727, %731
  %.str.5.sink869 = phi ptr [ @.str.5, %731 ], [ @.str.2, %727 ]
  store i32 %722, ptr %721, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef nonnull @.str.4) #12
  %738 = load i32, ptr %735, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef %738, ptr noundef nonnull @.str.4) #12
  %740 = load i32, ptr %721, align 4, !tbaa !5
  %741 = call ptr @strerror(i32 noundef %740) #12
  %742 = load i32, ptr %721, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef nonnull %.str.5.sink869, i32 noundef %734, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %737, ptr noundef %739, ptr noundef %741, i32 noundef %742) #14
  call void @exit(i32 noundef 1) #15
  unreachable

744:                                              ; preds = %715
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %718, i32 noundef 1) #12
  %748 = icmp eq i32 %747, -1
  br i1 %748, label %749, label %773

749:                                              ; preds = %744
  %750 = tail call ptr @__errno_location() #13
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @s2n_print_stacktrace(ptr noundef %752) #12
  %754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %755 = trunc nuw i8 %754 to i1
  br i1 %755, label %756, label %760

756:                                              ; preds = %749
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = call i32 @fileno(ptr noundef %757) #12
  %759 = call i32 @isatty(i32 noundef %758) #12
  %.not537 = icmp eq i32 %759, 0
  br i1 %.not537, label %760, label %761

760:                                              ; preds = %756, %749
  br label %761

761:                                              ; preds = %756, %760
  %.str.5.sink880 = phi ptr [ @.str.5, %760 ], [ @.str.2, %756 ]
  store i32 %751, ptr %750, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror(i32 noundef %765, ptr noundef nonnull @.str.4) #12
  %767 = load i32, ptr %764, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef nonnull @.str.4) #12
  %769 = load i32, ptr %750, align 4, !tbaa !5
  %770 = call ptr @strerror(i32 noundef %769) #12
  %771 = load i32, ptr %750, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef nonnull %.str.5.sink880, i32 noundef %763, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %766, ptr noundef %768, ptr noundef %770, i32 noundef %771) #14
  call void @exit(i32 noundef 1) #15
  unreachable

773:                                              ; preds = %744
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = add nsw i32 %774, 1
  store i32 %775, ptr @test_count, align 4, !tbaa !5
  %776 = call i32 @s2n_connection_set_config(ptr noundef nonnull %718, ptr noundef nonnull %235) #12
  %777 = icmp eq i32 %776, -1
  br i1 %777, label %778, label %802

778:                                              ; preds = %773
  %779 = tail call ptr @__errno_location() #13
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = call i32 @s2n_print_stacktrace(ptr noundef %781) #12
  %783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %784 = trunc nuw i8 %783 to i1
  br i1 %784, label %785, label %789

785:                                              ; preds = %778
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = call i32 @fileno(ptr noundef %786) #12
  %788 = call i32 @isatty(i32 noundef %787) #12
  %.not536 = icmp eq i32 %788, 0
  br i1 %.not536, label %789, label %790

789:                                              ; preds = %785, %778
  br label %790

790:                                              ; preds = %785, %789
  %.str.5.sink891 = phi ptr [ @.str.5, %789 ], [ @.str.2, %785 ]
  store i32 %780, ptr %779, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror(i32 noundef %794, ptr noundef nonnull @.str.4) #12
  %796 = load i32, ptr %793, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror_debug(i32 noundef %796, ptr noundef nonnull @.str.4) #12
  %798 = load i32, ptr %779, align 4, !tbaa !5
  %799 = call ptr @strerror(i32 noundef %798) #12
  %800 = load i32, ptr %779, align 4, !tbaa !5
  %801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %791, ptr noundef nonnull %.str.5.sink891, i32 noundef %792, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %795, ptr noundef %797, ptr noundef %799, i32 noundef %800) #14
  call void @exit(i32 noundef 1) #15
  unreachable

802:                                              ; preds = %773
  %803 = load i32, ptr @test_count, align 4, !tbaa !5
  %804 = add nsw i32 %803, 1
  store i32 %804, ptr @test_count, align 4, !tbaa !5
  %805 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #12
  %806 = icmp eq i32 %805, -1
  br i1 %806, label %807, label %831

807:                                              ; preds = %802
  %808 = tail call ptr @__errno_location() #13
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @s2n_print_stacktrace(ptr noundef %810) #12
  %812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %813 = trunc nuw i8 %812 to i1
  br i1 %813, label %814, label %818

814:                                              ; preds = %807
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = call i32 @fileno(ptr noundef %815) #12
  %817 = call i32 @isatty(i32 noundef %816) #12
  %.not535 = icmp eq i32 %817, 0
  br i1 %.not535, label %818, label %819

818:                                              ; preds = %814, %807
  br label %819

819:                                              ; preds = %814, %818
  %.str.5.sink902 = phi ptr [ @.str.5, %818 ], [ @.str.2, %814 ]
  store i32 %809, ptr %808, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror(i32 noundef %823, ptr noundef nonnull @.str.4) #12
  %825 = load i32, ptr %822, align 4, !tbaa !5
  %826 = call ptr @s2n_strerror_debug(i32 noundef %825, ptr noundef nonnull @.str.4) #12
  %827 = load i32, ptr %808, align 4, !tbaa !5
  %828 = call ptr @strerror(i32 noundef %827) #12
  %829 = load i32, ptr %808, align 4, !tbaa !5
  %830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %820, ptr noundef nonnull %.str.5.sink902, i32 noundef %821, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %824, ptr noundef %826, ptr noundef %828, i32 noundef %829) #14
  call void @exit(i32 noundef 1) #15
  unreachable

831:                                              ; preds = %802
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr @test_count, align 4, !tbaa !5
  %834 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #12
  %835 = icmp eq i32 %834, -1
  br i1 %835, label %836, label %860

836:                                              ; preds = %831
  %837 = tail call ptr @__errno_location() #13
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @s2n_print_stacktrace(ptr noundef %839) #12
  %841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %842 = trunc nuw i8 %841 to i1
  br i1 %842, label %843, label %847

843:                                              ; preds = %836
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @fileno(ptr noundef %844) #12
  %846 = call i32 @isatty(i32 noundef %845) #12
  %.not534 = icmp eq i32 %846, 0
  br i1 %.not534, label %847, label %848

847:                                              ; preds = %843, %836
  br label %848

848:                                              ; preds = %843, %847
  %.str.5.sink913 = phi ptr [ @.str.5, %847 ], [ @.str.2, %843 ]
  store i32 %838, ptr %837, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = load i32, ptr @test_count, align 4, !tbaa !5
  %851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror(i32 noundef %852, ptr noundef nonnull @.str.4) #12
  %854 = load i32, ptr %851, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror_debug(i32 noundef %854, ptr noundef nonnull @.str.4) #12
  %856 = load i32, ptr %837, align 4, !tbaa !5
  %857 = call ptr @strerror(i32 noundef %856) #12
  %858 = load i32, ptr %837, align 4, !tbaa !5
  %859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %849, ptr noundef nonnull %.str.5.sink913, i32 noundef %850, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %853, ptr noundef %855, ptr noundef %857, i32 noundef %858) #14
  call void @exit(i32 noundef 1) #15
  unreachable

860:                                              ; preds = %831
  %861 = load i32, ptr @test_count, align 4, !tbaa !5
  %862 = add nsw i32 %861, 1
  store i32 %862, ptr @test_count, align 4, !tbaa !5
  %863 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %7, ptr noundef nonnull %6, ptr noundef nonnull %718) #12
  %864 = icmp eq i32 %863, -1
  br i1 %864, label %865, label %889

865:                                              ; preds = %860
  %866 = tail call ptr @__errno_location() #13
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @s2n_print_stacktrace(ptr noundef %868) #12
  %870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %871 = trunc nuw i8 %870 to i1
  br i1 %871, label %872, label %876

872:                                              ; preds = %865
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = call i32 @fileno(ptr noundef %873) #12
  %875 = call i32 @isatty(i32 noundef %874) #12
  %.not533 = icmp eq i32 %875, 0
  br i1 %.not533, label %876, label %877

876:                                              ; preds = %872, %865
  br label %877

877:                                              ; preds = %872, %876
  %.str.5.sink924 = phi ptr [ @.str.5, %876 ], [ @.str.2, %872 ]
  store i32 %867, ptr %866, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror(i32 noundef %881, ptr noundef nonnull @.str.4) #12
  %883 = load i32, ptr %880, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror_debug(i32 noundef %883, ptr noundef nonnull @.str.4) #12
  %885 = load i32, ptr %866, align 4, !tbaa !5
  %886 = call ptr @strerror(i32 noundef %885) #12
  %887 = load i32, ptr %866, align 4, !tbaa !5
  %888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef nonnull %.str.5.sink924, i32 noundef %879, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %882, ptr noundef %884, ptr noundef %886, i32 noundef %887) #14
  call void @exit(i32 noundef 1) #15
  unreachable

889:                                              ; preds = %860
  %890 = load i32, ptr @test_count, align 4, !tbaa !5
  %891 = add nsw i32 %890, 1
  store i32 %891, ptr @test_count, align 4, !tbaa !5
  %892 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %631) #12
  %893 = icmp eq i32 %892, -1
  br i1 %893, label %894, label %918

894:                                              ; preds = %889
  %895 = tail call ptr @__errno_location() #13
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = call i32 @s2n_print_stacktrace(ptr noundef %897) #12
  %899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %900 = trunc nuw i8 %899 to i1
  br i1 %900, label %901, label %905

901:                                              ; preds = %894
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = call i32 @fileno(ptr noundef %902) #12
  %904 = call i32 @isatty(i32 noundef %903) #12
  %.not532 = icmp eq i32 %904, 0
  br i1 %.not532, label %905, label %906

905:                                              ; preds = %901, %894
  br label %906

906:                                              ; preds = %901, %905
  %.str.5.sink935 = phi ptr [ @.str.5, %905 ], [ @.str.2, %901 ]
  store i32 %896, ptr %895, align 4, !tbaa !5
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = load i32, ptr @test_count, align 4, !tbaa !5
  %909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %910 = load i32, ptr %909, align 4, !tbaa !5
  %911 = call ptr @s2n_strerror(i32 noundef %910, ptr noundef nonnull @.str.4) #12
  %912 = load i32, ptr %909, align 4, !tbaa !5
  %913 = call ptr @s2n_strerror_debug(i32 noundef %912, ptr noundef nonnull @.str.4) #12
  %914 = load i32, ptr %895, align 4, !tbaa !5
  %915 = call ptr @strerror(i32 noundef %914) #12
  %916 = load i32, ptr %895, align 4, !tbaa !5
  %917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %907, ptr noundef nonnull %.str.5.sink935, i32 noundef %908, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %911, ptr noundef %913, ptr noundef %915, i32 noundef %916) #14
  call void @exit(i32 noundef 1) #15
  unreachable

918:                                              ; preds = %889
  %919 = load i32, ptr @test_count, align 4, !tbaa !5
  %920 = add nsw i32 %919, 1
  store i32 %920, ptr @test_count, align 4, !tbaa !5
  %921 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %631, ptr noundef nonnull %718) #12
  %922 = icmp eq i32 %921, -1
  br i1 %922, label %923, label %947

923:                                              ; preds = %918
  %924 = tail call ptr @__errno_location() #13
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = call i32 @s2n_print_stacktrace(ptr noundef %926) #12
  %928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %929 = trunc nuw i8 %928 to i1
  br i1 %929, label %930, label %934

930:                                              ; preds = %923
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = call i32 @fileno(ptr noundef %931) #12
  %933 = call i32 @isatty(i32 noundef %932) #12
  %.not531 = icmp eq i32 %933, 0
  br i1 %.not531, label %934, label %935

934:                                              ; preds = %930, %923
  br label %935

935:                                              ; preds = %930, %934
  %.str.5.sink946 = phi ptr [ @.str.5, %934 ], [ @.str.2, %930 ]
  store i32 %925, ptr %924, align 4, !tbaa !5
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call ptr @s2n_strerror(i32 noundef %939, ptr noundef nonnull @.str.4) #12
  %941 = load i32, ptr %938, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror_debug(i32 noundef %941, ptr noundef nonnull @.str.4) #12
  %943 = load i32, ptr %924, align 4, !tbaa !5
  %944 = call ptr @strerror(i32 noundef %943) #12
  %945 = load i32, ptr %924, align 4, !tbaa !5
  %946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %936, ptr noundef nonnull %.str.5.sink946, i32 noundef %937, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %940, ptr noundef %942, ptr noundef %944, i32 noundef %945) #14
  call void @exit(i32 noundef 1) #15
  unreachable

947:                                              ; preds = %918
  %948 = load i32, ptr @test_count, align 4, !tbaa !5
  %949 = add nsw i32 %948, 1
  store i32 %949, ptr @test_count, align 4, !tbaa !5
  %950 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %631) #12
  %.not521 = icmp eq i32 %950, 0
  br i1 %.not521, label %951, label %975

951:                                              ; preds = %947
  %952 = tail call ptr @__errno_location() #13
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %955 = call i32 @s2n_print_stacktrace(ptr noundef %954) #12
  %956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %957 = trunc nuw i8 %956 to i1
  br i1 %957, label %958, label %962

958:                                              ; preds = %951
  %959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %960 = call i32 @fileno(ptr noundef %959) #12
  %961 = call i32 @isatty(i32 noundef %960) #12
  %.not522 = icmp eq i32 %961, 0
  br i1 %.not522, label %962, label %963

962:                                              ; preds = %958, %951
  br label %963

963:                                              ; preds = %958, %962
  %.str.5.sink957 = phi ptr [ @.str.5, %962 ], [ @.str.2, %958 ]
  store i32 %953, ptr %952, align 4, !tbaa !5
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = load i32, ptr @test_count, align 4, !tbaa !5
  %966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror(i32 noundef %967, ptr noundef nonnull @.str.4) #12
  %969 = load i32, ptr %966, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror_debug(i32 noundef %969, ptr noundef nonnull @.str.4) #12
  %971 = load i32, ptr %952, align 4, !tbaa !5
  %972 = call ptr @strerror(i32 noundef %971) #12
  %973 = load i32, ptr %952, align 4, !tbaa !5
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %964, ptr noundef nonnull %.str.5.sink957, i32 noundef %965, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %968, ptr noundef %970, ptr noundef %972, i32 noundef %973) #14
  call void @exit(i32 noundef 1) #15
  unreachable

975:                                              ; preds = %947
  %976 = load i32, ptr @test_count, align 4, !tbaa !5
  %977 = add nsw i32 %976, 1
  store i32 %977, ptr @test_count, align 4, !tbaa !5
  %978 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %718) #12
  %.not523 = icmp eq i32 %978, 0
  br i1 %.not523, label %979, label %1003

979:                                              ; preds = %975
  %980 = tail call ptr @__errno_location() #13
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = call i32 @s2n_print_stacktrace(ptr noundef %982) #12
  %984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %985 = trunc nuw i8 %984 to i1
  br i1 %985, label %986, label %990

986:                                              ; preds = %979
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @fileno(ptr noundef %987) #12
  %989 = call i32 @isatty(i32 noundef %988) #12
  %.not524 = icmp eq i32 %989, 0
  br i1 %.not524, label %990, label %991

990:                                              ; preds = %986, %979
  br label %991

991:                                              ; preds = %986, %990
  %.str.5.sink968 = phi ptr [ @.str.5, %990 ], [ @.str.2, %986 ]
  store i32 %981, ptr %980, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = load i32, ptr @test_count, align 4, !tbaa !5
  %994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror(i32 noundef %995, ptr noundef nonnull @.str.4) #12
  %997 = load i32, ptr %994, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror_debug(i32 noundef %997, ptr noundef nonnull @.str.4) #12
  %999 = load i32, ptr %980, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #12
  %1001 = load i32, ptr %980, align 4, !tbaa !5
  %1002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %992, ptr noundef nonnull %.str.5.sink968, i32 noundef %993, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %996, ptr noundef %998, ptr noundef %1000, i32 noundef %1001) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1003:                                             ; preds = %975
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = add nsw i32 %1004, 1
  store i32 %1005, ptr @test_count, align 4, !tbaa !5
  %1006 = load i8, ptr %3, align 2, !tbaa !26
  %.not525 = icmp eq i8 %1006, 0
  br i1 %.not525, label %1007, label %1031

1007:                                             ; preds = %1003
  %1008 = tail call ptr @__errno_location() #13
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1011 = call i32 @s2n_print_stacktrace(ptr noundef %1010) #12
  %1012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1013 = trunc nuw i8 %1012 to i1
  br i1 %1013, label %1014, label %1018

1014:                                             ; preds = %1007
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = call i32 @fileno(ptr noundef %1015) #12
  %1017 = call i32 @isatty(i32 noundef %1016) #12
  %.not526 = icmp eq i32 %1017, 0
  br i1 %.not526, label %1018, label %1019

1018:                                             ; preds = %1014, %1007
  br label %1019

1019:                                             ; preds = %1014, %1018
  %.str.5.sink979 = phi ptr [ @.str.5, %1018 ], [ @.str.2, %1014 ]
  store i32 %1009, ptr %1008, align 4, !tbaa !5
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %1022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror(i32 noundef %1023, ptr noundef nonnull @.str.4) #12
  %1025 = load i32, ptr %1022, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror_debug(i32 noundef %1025, ptr noundef nonnull @.str.4) #12
  %1027 = load i32, ptr %1008, align 4, !tbaa !5
  %1028 = call ptr @strerror(i32 noundef %1027) #12
  %1029 = load i32, ptr %1008, align 4, !tbaa !5
  %1030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1020, ptr noundef nonnull %.str.5.sink979, i32 noundef %1021, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1024, ptr noundef %1026, ptr noundef %1028, i32 noundef %1029) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1031:                                             ; preds = %1003
  %1032 = add nsw i32 %1004, 2
  store i32 %1032, ptr @test_count, align 4, !tbaa !5
  %1033 = call i32 @s2n_connection_free(ptr noundef nonnull %718) #12
  %1034 = icmp eq i32 %1033, -1
  br i1 %1034, label %1035, label %1059

1035:                                             ; preds = %1031
  %1036 = tail call ptr @__errno_location() #13
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @s2n_print_stacktrace(ptr noundef %1038) #12
  %1040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1041 = trunc nuw i8 %1040 to i1
  br i1 %1041, label %1042, label %1046

1042:                                             ; preds = %1035
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = call i32 @fileno(ptr noundef %1043) #12
  %1045 = call i32 @isatty(i32 noundef %1044) #12
  %.not530 = icmp eq i32 %1045, 0
  br i1 %.not530, label %1046, label %1047

1046:                                             ; preds = %1042, %1035
  br label %1047

1047:                                             ; preds = %1042, %1046
  %.str.5.sink990 = phi ptr [ @.str.5, %1046 ], [ @.str.2, %1042 ]
  store i32 %1037, ptr %1036, align 4, !tbaa !5
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = load i32, ptr @test_count, align 4, !tbaa !5
  %1050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror(i32 noundef %1051, ptr noundef nonnull @.str.4) #12
  %1053 = load i32, ptr %1050, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror_debug(i32 noundef %1053, ptr noundef nonnull @.str.4) #12
  %1055 = load i32, ptr %1036, align 4, !tbaa !5
  %1056 = call ptr @strerror(i32 noundef %1055) #12
  %1057 = load i32, ptr %1036, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1048, ptr noundef nonnull %.str.5.sink990, i32 noundef %1049, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %1052, ptr noundef %1054, ptr noundef %1056, i32 noundef %1057) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1059:                                             ; preds = %1031
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = add nsw i32 %1060, 1
  store i32 %1061, ptr @test_count, align 4, !tbaa !5
  %1062 = call i32 @s2n_connection_free(ptr noundef nonnull %631) #12
  %1063 = icmp eq i32 %1062, -1
  br i1 %1063, label %1064, label %1088

1064:                                             ; preds = %1059
  %1065 = tail call ptr @__errno_location() #13
  %1066 = load i32, ptr %1065, align 4, !tbaa !5
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = call i32 @s2n_print_stacktrace(ptr noundef %1067) #12
  %1069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1070 = trunc nuw i8 %1069 to i1
  br i1 %1070, label %1071, label %1075

1071:                                             ; preds = %1064
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = call i32 @fileno(ptr noundef %1072) #12
  %1074 = call i32 @isatty(i32 noundef %1073) #12
  %.not529 = icmp eq i32 %1074, 0
  br i1 %.not529, label %1075, label %1076

1075:                                             ; preds = %1071, %1064
  br label %1076

1076:                                             ; preds = %1071, %1075
  %.str.5.sink1001 = phi ptr [ @.str.5, %1075 ], [ @.str.2, %1071 ]
  store i32 %1066, ptr %1065, align 4, !tbaa !5
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef nonnull @.str.4) #12
  %1082 = load i32, ptr %1079, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef nonnull @.str.4) #12
  %1084 = load i32, ptr %1065, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #12
  %1086 = load i32, ptr %1065, align 4, !tbaa !5
  %1087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1077, ptr noundef nonnull %.str.5.sink1001, i32 noundef %1078, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1081, ptr noundef %1083, ptr noundef %1085, i32 noundef %1086) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1088:                                             ; preds = %1059
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #12
  %1092 = icmp eq i32 %1091, -1
  br i1 %1092, label %1093, label %1117

1093:                                             ; preds = %1088
  %1094 = tail call ptr @__errno_location() #13
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = call i32 @s2n_print_stacktrace(ptr noundef %1096) #12
  %1098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1099 = trunc nuw i8 %1098 to i1
  br i1 %1099, label %1100, label %1104

1100:                                             ; preds = %1093
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @fileno(ptr noundef %1101) #12
  %1103 = call i32 @isatty(i32 noundef %1102) #12
  %.not528 = icmp eq i32 %1103, 0
  br i1 %.not528, label %1104, label %1105

1104:                                             ; preds = %1100, %1093
  br label %1105

1105:                                             ; preds = %1100, %1104
  %.str.5.sink1012 = phi ptr [ @.str.5, %1104 ], [ @.str.2, %1100 ]
  store i32 %1095, ptr %1094, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror(i32 noundef %1109, ptr noundef nonnull @.str.4) #12
  %1111 = load i32, ptr %1108, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef nonnull @.str.4) #12
  %1113 = load i32, ptr %1094, align 4, !tbaa !5
  %1114 = call ptr @strerror(i32 noundef %1113) #12
  %1115 = load i32, ptr %1094, align 4, !tbaa !5
  %1116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1106, ptr noundef nonnull %.str.5.sink1012, i32 noundef %1107, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1110, ptr noundef %1112, ptr noundef %1114, i32 noundef %1115) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1117:                                             ; preds = %1088
  %1118 = load i32, ptr @test_count, align 4, !tbaa !5
  %1119 = add nsw i32 %1118, 1
  store i32 %1119, ptr @test_count, align 4, !tbaa !5
  %1120 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #12
  %1121 = icmp eq i32 %1120, -1
  br i1 %1121, label %1122, label %1146

1122:                                             ; preds = %1117
  %1123 = tail call ptr @__errno_location() #13
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @s2n_print_stacktrace(ptr noundef %1125) #12
  %1127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1128 = trunc nuw i8 %1127 to i1
  br i1 %1128, label %1129, label %1133

1129:                                             ; preds = %1122
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @fileno(ptr noundef %1130) #12
  %1132 = call i32 @isatty(i32 noundef %1131) #12
  %.not527 = icmp eq i32 %1132, 0
  br i1 %.not527, label %1133, label %1134

1133:                                             ; preds = %1129, %1122
  br label %1134

1134:                                             ; preds = %1129, %1133
  %.str.5.sink1023 = phi ptr [ @.str.5, %1133 ], [ @.str.2, %1129 ]
  store i32 %1124, ptr %1123, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror(i32 noundef %1138, ptr noundef nonnull @.str.4) #12
  %1140 = load i32, ptr %1137, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror_debug(i32 noundef %1140, ptr noundef nonnull @.str.4) #12
  %1142 = load i32, ptr %1123, align 4, !tbaa !5
  %1143 = call ptr @strerror(i32 noundef %1142) #12
  %1144 = load i32, ptr %1123, align 4, !tbaa !5
  %1145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef nonnull %.str.5.sink1023, i32 noundef %1136, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1139, ptr noundef %1141, ptr noundef %1143, i32 noundef %1144) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1146:                                             ; preds = %1117, %622
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #12
  %1147 = add nuw nsw i64 %.0587, 1
  %1148 = load i16, ptr %526, align 8, !tbaa !24
  %1149 = zext i16 %1148 to i64
  %1150 = icmp ult i64 %1147, %1149
  br i1 %1150, label %622, label %._crit_edge, !llvm.loop !29

1151:                                             ; preds = %._crit_edge
  %1152 = tail call ptr @__errno_location() #13
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = call i32 @s2n_print_stacktrace(ptr noundef %1154) #12
  %1156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1157 = trunc nuw i8 %1156 to i1
  br i1 %1157, label %1158, label %1162

1158:                                             ; preds = %1151
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @fileno(ptr noundef %1159) #12
  %1161 = call i32 @isatty(i32 noundef %1160) #12
  %.not519 = icmp eq i32 %1161, 0
  br i1 %.not519, label %1162, label %1163

1162:                                             ; preds = %1158, %1151
  br label %1163

1163:                                             ; preds = %1158, %1162
  %.str.5.sink1034 = phi ptr [ @.str.5, %1162 ], [ @.str.2, %1158 ]
  store i32 %1153, ptr %1152, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror(i32 noundef %1167, ptr noundef nonnull @.str.4) #12
  %1169 = load i32, ptr %1166, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror_debug(i32 noundef %1169, ptr noundef nonnull @.str.4) #12
  %1171 = load i32, ptr %1152, align 4, !tbaa !5
  %1172 = call ptr @strerror(i32 noundef %1171) #12
  %1173 = load i32, ptr %1152, align 4, !tbaa !5
  %1174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef nonnull %.str.5.sink1034, i32 noundef %1165, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1168, ptr noundef %1170, ptr noundef %1172, i32 noundef %1173) #14
  call void @exit(i32 noundef 1) #15
  unreachable

._crit_edge590:                                   ; preds = %1622, %.preheader564
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %235, i32 noundef 0) #12
  %1178 = icmp eq i32 %1177, -1
  br i1 %1178, label %1627, label %.preheader563

.preheader563:                                    ; preds = %._crit_edge590
  %1179 = load i16, ptr %526, align 8, !tbaa !24
  %.not599 = icmp eq i16 %1179, 0
  br i1 %.not599, label %._crit_edge593, label %.lr.ph592

.lr.ph592:                                        ; preds = %.preheader563
  %1180 = getelementptr inbounds i8, ptr %526, i64 8
  %1181 = getelementptr inbounds i8, ptr %14, i64 8
  %1182 = getelementptr inbounds i8, ptr %15, i64 8
  br label %1660

1183:                                             ; preds = %.lr.ph589, %1622
  %.0400588 = phi i64 [ 0, %.lr.ph589 ], [ %1623, %1622 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %10) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %11, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %12, i8 0, i64 40, i1 false)
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %526, i64 24, i1 false)
  store i16 1, ptr %9, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  %1184 = load ptr, ptr %619, align 8, !tbaa !28
  %1185 = getelementptr inbounds ptr, ptr %1184, i64 %.0400588
  %1186 = load ptr, ptr %1185, align 8, !tbaa !9
  store ptr %1186, ptr %13, align 8, !tbaa !9
  %1187 = load i8, ptr %1186, align 8
  %1188 = and i8 %1187, 1
  %.not501 = icmp eq i8 %1188, 0
  br i1 %.not501, label %1622, label %1189

1189:                                             ; preds = %1183
  store ptr %13, ptr %620, align 8, !tbaa !28
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %10, ptr noundef nonnull align 8 dereferenceable(64) %497, i64 64, i1 false)
  store ptr %9, ptr %621, align 8, !tbaa !22
  store ptr %10, ptr %496, align 8, !tbaa !15
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1193 = icmp eq ptr %1192, null
  br i1 %1193, label %1194, label %1218

1194:                                             ; preds = %1189
  %1195 = tail call ptr @__errno_location() #13
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = call i32 @s2n_print_stacktrace(ptr noundef %1197) #12
  %1199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1200 = trunc nuw i8 %1199 to i1
  br i1 %1200, label %1201, label %1205

1201:                                             ; preds = %1194
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = call i32 @fileno(ptr noundef %1202) #12
  %1204 = call i32 @isatty(i32 noundef %1203) #12
  %.not518 = icmp eq i32 %1204, 0
  br i1 %.not518, label %1205, label %1206

1205:                                             ; preds = %1201, %1194
  br label %1206

1206:                                             ; preds = %1201, %1205
  %.str.5.sink1045 = phi ptr [ @.str.5, %1205 ], [ @.str.2, %1201 ]
  store i32 %1196, ptr %1195, align 4, !tbaa !5
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = load i32, ptr @test_count, align 4, !tbaa !5
  %1209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1210 = load i32, ptr %1209, align 4, !tbaa !5
  %1211 = call ptr @s2n_strerror(i32 noundef %1210, ptr noundef nonnull @.str.4) #12
  %1212 = load i32, ptr %1209, align 4, !tbaa !5
  %1213 = call ptr @s2n_strerror_debug(i32 noundef %1212, ptr noundef nonnull @.str.4) #12
  %1214 = load i32, ptr %1195, align 4, !tbaa !5
  %1215 = call ptr @strerror(i32 noundef %1214) #12
  %1216 = load i32, ptr %1195, align 4, !tbaa !5
  %1217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1207, ptr noundef nonnull %.str.5.sink1045, i32 noundef %1208, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1211, ptr noundef %1213, ptr noundef %1215, i32 noundef %1216) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1218:                                             ; preds = %1189
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = add nsw i32 %1219, 1
  store i32 %1220, ptr @test_count, align 4, !tbaa !5
  %1221 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1192, ptr noundef nonnull %235) #12
  %1222 = icmp eq i32 %1221, -1
  br i1 %1222, label %1223, label %1247

1223:                                             ; preds = %1218
  %1224 = tail call ptr @__errno_location() #13
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = call i32 @s2n_print_stacktrace(ptr noundef %1226) #12
  %1228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1229 = trunc nuw i8 %1228 to i1
  br i1 %1229, label %1230, label %1234

1230:                                             ; preds = %1223
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = call i32 @fileno(ptr noundef %1231) #12
  %1233 = call i32 @isatty(i32 noundef %1232) #12
  %.not517 = icmp eq i32 %1233, 0
  br i1 %.not517, label %1234, label %1235

1234:                                             ; preds = %1230, %1223
  br label %1235

1235:                                             ; preds = %1230, %1234
  %.str.5.sink1056 = phi ptr [ @.str.5, %1234 ], [ @.str.2, %1230 ]
  store i32 %1225, ptr %1224, align 4, !tbaa !5
  %1236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1237 = load i32, ptr @test_count, align 4, !tbaa !5
  %1238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror(i32 noundef %1239, ptr noundef nonnull @.str.4) #12
  %1241 = load i32, ptr %1238, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror_debug(i32 noundef %1241, ptr noundef nonnull @.str.4) #12
  %1243 = load i32, ptr %1224, align 4, !tbaa !5
  %1244 = call ptr @strerror(i32 noundef %1243) #12
  %1245 = load i32, ptr %1224, align 4, !tbaa !5
  %1246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1236, ptr noundef nonnull %.str.5.sink1056, i32 noundef %1237, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1240, ptr noundef %1242, ptr noundef %1244, i32 noundef %1245) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1247:                                             ; preds = %1218
  %1248 = load i32, ptr @test_count, align 4, !tbaa !5
  %1249 = add nsw i32 %1248, 1
  store i32 %1249, ptr @test_count, align 4, !tbaa !5
  %1250 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %1251 = icmp eq ptr %1250, null
  br i1 %1251, label %1252, label %1276

1252:                                             ; preds = %1247
  %1253 = tail call ptr @__errno_location() #13
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = call i32 @s2n_print_stacktrace(ptr noundef %1255) #12
  %1257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1258 = trunc nuw i8 %1257 to i1
  br i1 %1258, label %1259, label %1263

1259:                                             ; preds = %1252
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = call i32 @fileno(ptr noundef %1260) #12
  %1262 = call i32 @isatty(i32 noundef %1261) #12
  %.not516 = icmp eq i32 %1262, 0
  br i1 %.not516, label %1263, label %1264

1263:                                             ; preds = %1259, %1252
  br label %1264

1264:                                             ; preds = %1259, %1263
  %.str.5.sink1067 = phi ptr [ @.str.5, %1263 ], [ @.str.2, %1259 ]
  store i32 %1254, ptr %1253, align 4, !tbaa !5
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = load i32, ptr @test_count, align 4, !tbaa !5
  %1267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1268 = load i32, ptr %1267, align 4, !tbaa !5
  %1269 = call ptr @s2n_strerror(i32 noundef %1268, ptr noundef nonnull @.str.4) #12
  %1270 = load i32, ptr %1267, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef nonnull @.str.4) #12
  %1272 = load i32, ptr %1253, align 4, !tbaa !5
  %1273 = call ptr @strerror(i32 noundef %1272) #12
  %1274 = load i32, ptr %1253, align 4, !tbaa !5
  %1275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1265, ptr noundef nonnull %.str.5.sink1067, i32 noundef %1266, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1269, ptr noundef %1271, ptr noundef %1273, i32 noundef %1274) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1276:                                             ; preds = %1247
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr @test_count, align 4, !tbaa !5
  %1279 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1250, ptr noundef nonnull %235) #12
  %1280 = icmp eq i32 %1279, -1
  br i1 %1280, label %1281, label %1305

1281:                                             ; preds = %1276
  %1282 = tail call ptr @__errno_location() #13
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = call i32 @s2n_print_stacktrace(ptr noundef %1284) #12
  %1286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1287 = trunc nuw i8 %1286 to i1
  br i1 %1287, label %1288, label %1292

1288:                                             ; preds = %1281
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = call i32 @fileno(ptr noundef %1289) #12
  %1291 = call i32 @isatty(i32 noundef %1290) #12
  %.not515 = icmp eq i32 %1291, 0
  br i1 %.not515, label %1292, label %1293

1292:                                             ; preds = %1288, %1281
  br label %1293

1293:                                             ; preds = %1288, %1292
  %.str.5.sink1078 = phi ptr [ @.str.5, %1292 ], [ @.str.2, %1288 ]
  store i32 %1283, ptr %1282, align 4, !tbaa !5
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = load i32, ptr @test_count, align 4, !tbaa !5
  %1296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1297 = load i32, ptr %1296, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror(i32 noundef %1297, ptr noundef nonnull @.str.4) #12
  %1299 = load i32, ptr %1296, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror_debug(i32 noundef %1299, ptr noundef nonnull @.str.4) #12
  %1301 = load i32, ptr %1282, align 4, !tbaa !5
  %1302 = call ptr @strerror(i32 noundef %1301) #12
  %1303 = load i32, ptr %1282, align 4, !tbaa !5
  %1304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1294, ptr noundef nonnull %.str.5.sink1078, i32 noundef %1295, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1298, ptr noundef %1300, ptr noundef %1302, i32 noundef %1303) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1305:                                             ; preds = %1276
  %1306 = load i32, ptr @test_count, align 4, !tbaa !5
  %1307 = add nsw i32 %1306, 1
  store i32 %1307, ptr @test_count, align 4, !tbaa !5
  %1308 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %11, i32 noundef 0) #12
  %1309 = icmp eq i32 %1308, -1
  br i1 %1309, label %1310, label %1334

1310:                                             ; preds = %1305
  %1311 = tail call ptr @__errno_location() #13
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = call i32 @s2n_print_stacktrace(ptr noundef %1313) #12
  %1315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1316 = trunc nuw i8 %1315 to i1
  br i1 %1316, label %1317, label %1321

1317:                                             ; preds = %1310
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = call i32 @fileno(ptr noundef %1318) #12
  %1320 = call i32 @isatty(i32 noundef %1319) #12
  %.not514 = icmp eq i32 %1320, 0
  br i1 %.not514, label %1321, label %1322

1321:                                             ; preds = %1317, %1310
  br label %1322

1322:                                             ; preds = %1317, %1321
  %.str.5.sink1089 = phi ptr [ @.str.5, %1321 ], [ @.str.2, %1317 ]
  store i32 %1312, ptr %1311, align 4, !tbaa !5
  %1323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror(i32 noundef %1326, ptr noundef nonnull @.str.4) #12
  %1328 = load i32, ptr %1325, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror_debug(i32 noundef %1328, ptr noundef nonnull @.str.4) #12
  %1330 = load i32, ptr %1311, align 4, !tbaa !5
  %1331 = call ptr @strerror(i32 noundef %1330) #12
  %1332 = load i32, ptr %1311, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1323, ptr noundef nonnull %.str.5.sink1089, i32 noundef %1324, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1327, ptr noundef %1329, ptr noundef %1331, i32 noundef %1332) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1334:                                             ; preds = %1305
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = add nsw i32 %1335, 1
  store i32 %1336, ptr @test_count, align 4, !tbaa !5
  %1337 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %12, i32 noundef 0) #12
  %1338 = icmp eq i32 %1337, -1
  br i1 %1338, label %1339, label %1363

1339:                                             ; preds = %1334
  %1340 = tail call ptr @__errno_location() #13
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = call i32 @s2n_print_stacktrace(ptr noundef %1342) #12
  %1344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1345 = trunc nuw i8 %1344 to i1
  br i1 %1345, label %1346, label %1350

1346:                                             ; preds = %1339
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = call i32 @fileno(ptr noundef %1347) #12
  %1349 = call i32 @isatty(i32 noundef %1348) #12
  %.not513 = icmp eq i32 %1349, 0
  br i1 %.not513, label %1350, label %1351

1350:                                             ; preds = %1346, %1339
  br label %1351

1351:                                             ; preds = %1346, %1350
  %.str.5.sink1100 = phi ptr [ @.str.5, %1350 ], [ @.str.2, %1346 ]
  store i32 %1341, ptr %1340, align 4, !tbaa !5
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = load i32, ptr @test_count, align 4, !tbaa !5
  %1354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1355 = load i32, ptr %1354, align 4, !tbaa !5
  %1356 = call ptr @s2n_strerror(i32 noundef %1355, ptr noundef nonnull @.str.4) #12
  %1357 = load i32, ptr %1354, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror_debug(i32 noundef %1357, ptr noundef nonnull @.str.4) #12
  %1359 = load i32, ptr %1340, align 4, !tbaa !5
  %1360 = call ptr @strerror(i32 noundef %1359) #12
  %1361 = load i32, ptr %1340, align 4, !tbaa !5
  %1362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1352, ptr noundef nonnull %.str.5.sink1100, i32 noundef %1353, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1356, ptr noundef %1358, ptr noundef %1360, i32 noundef %1361) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1363:                                             ; preds = %1334
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = add nsw i32 %1364, 1
  store i32 %1365, ptr @test_count, align 4, !tbaa !5
  %1366 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %12, ptr noundef nonnull %11, ptr noundef nonnull %1250) #12
  %1367 = icmp eq i32 %1366, -1
  br i1 %1367, label %1368, label %1392

1368:                                             ; preds = %1363
  %1369 = tail call ptr @__errno_location() #13
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = call i32 @s2n_print_stacktrace(ptr noundef %1371) #12
  %1373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1374 = trunc nuw i8 %1373 to i1
  br i1 %1374, label %1375, label %1379

1375:                                             ; preds = %1368
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = call i32 @fileno(ptr noundef %1376) #12
  %1378 = call i32 @isatty(i32 noundef %1377) #12
  %.not512 = icmp eq i32 %1378, 0
  br i1 %.not512, label %1379, label %1380

1379:                                             ; preds = %1375, %1368
  br label %1380

1380:                                             ; preds = %1375, %1379
  %.str.5.sink1111 = phi ptr [ @.str.5, %1379 ], [ @.str.2, %1375 ]
  store i32 %1370, ptr %1369, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef nonnull @.str.4) #12
  %1386 = load i32, ptr %1383, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror_debug(i32 noundef %1386, ptr noundef nonnull @.str.4) #12
  %1388 = load i32, ptr %1369, align 4, !tbaa !5
  %1389 = call ptr @strerror(i32 noundef %1388) #12
  %1390 = load i32, ptr %1369, align 4, !tbaa !5
  %1391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1381, ptr noundef nonnull %.str.5.sink1111, i32 noundef %1382, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1385, ptr noundef %1387, ptr noundef %1389, i32 noundef %1390) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1392:                                             ; preds = %1363
  %1393 = load i32, ptr @test_count, align 4, !tbaa !5
  %1394 = add nsw i32 %1393, 1
  store i32 %1394, ptr @test_count, align 4, !tbaa !5
  %1395 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %1192) #12
  %1396 = icmp eq i32 %1395, -1
  br i1 %1396, label %1397, label %1421

1397:                                             ; preds = %1392
  %1398 = tail call ptr @__errno_location() #13
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = call i32 @s2n_print_stacktrace(ptr noundef %1400) #12
  %1402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1403 = trunc nuw i8 %1402 to i1
  br i1 %1403, label %1404, label %1408

1404:                                             ; preds = %1397
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = call i32 @fileno(ptr noundef %1405) #12
  %1407 = call i32 @isatty(i32 noundef %1406) #12
  %.not511 = icmp eq i32 %1407, 0
  br i1 %.not511, label %1408, label %1409

1408:                                             ; preds = %1404, %1397
  br label %1409

1409:                                             ; preds = %1404, %1408
  %.str.5.sink1122 = phi ptr [ @.str.5, %1408 ], [ @.str.2, %1404 ]
  store i32 %1399, ptr %1398, align 4, !tbaa !5
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1411 = load i32, ptr @test_count, align 4, !tbaa !5
  %1412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call ptr @s2n_strerror(i32 noundef %1413, ptr noundef nonnull @.str.4) #12
  %1415 = load i32, ptr %1412, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror_debug(i32 noundef %1415, ptr noundef nonnull @.str.4) #12
  %1417 = load i32, ptr %1398, align 4, !tbaa !5
  %1418 = call ptr @strerror(i32 noundef %1417) #12
  %1419 = load i32, ptr %1398, align 4, !tbaa !5
  %1420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1410, ptr noundef nonnull %.str.5.sink1122, i32 noundef %1411, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1414, ptr noundef %1416, ptr noundef %1418, i32 noundef %1419) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1421:                                             ; preds = %1392
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = add nsw i32 %1422, 1
  store i32 %1423, ptr @test_count, align 4, !tbaa !5
  %1424 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %1192, ptr noundef nonnull %1250) #12
  %1425 = icmp eq i32 %1424, -1
  br i1 %1425, label %1426, label %1450

1426:                                             ; preds = %1421
  %1427 = tail call ptr @__errno_location() #13
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @s2n_print_stacktrace(ptr noundef %1429) #12
  %1431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1432 = trunc nuw i8 %1431 to i1
  br i1 %1432, label %1433, label %1437

1433:                                             ; preds = %1426
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1435 = call i32 @fileno(ptr noundef %1434) #12
  %1436 = call i32 @isatty(i32 noundef %1435) #12
  %.not510 = icmp eq i32 %1436, 0
  br i1 %.not510, label %1437, label %1438

1437:                                             ; preds = %1433, %1426
  br label %1438

1438:                                             ; preds = %1433, %1437
  %.str.5.sink1133 = phi ptr [ @.str.5, %1437 ], [ @.str.2, %1433 ]
  store i32 %1428, ptr %1427, align 4, !tbaa !5
  %1439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1440 = load i32, ptr @test_count, align 4, !tbaa !5
  %1441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1442 = load i32, ptr %1441, align 4, !tbaa !5
  %1443 = call ptr @s2n_strerror(i32 noundef %1442, ptr noundef nonnull @.str.4) #12
  %1444 = load i32, ptr %1441, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror_debug(i32 noundef %1444, ptr noundef nonnull @.str.4) #12
  %1446 = load i32, ptr %1427, align 4, !tbaa !5
  %1447 = call ptr @strerror(i32 noundef %1446) #12
  %1448 = load i32, ptr %1427, align 4, !tbaa !5
  %1449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1439, ptr noundef nonnull %.str.5.sink1133, i32 noundef %1440, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1443, ptr noundef %1445, ptr noundef %1447, i32 noundef %1448) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1450:                                             ; preds = %1421
  %1451 = load i32, ptr @test_count, align 4, !tbaa !5
  %1452 = add nsw i32 %1451, 1
  store i32 %1452, ptr @test_count, align 4, !tbaa !5
  %1453 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %1192) #12
  %.not502 = icmp eq i32 %1453, 0
  br i1 %.not502, label %1454, label %1478

1454:                                             ; preds = %1450
  %1455 = tail call ptr @__errno_location() #13
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = call i32 @s2n_print_stacktrace(ptr noundef %1457) #12
  %1459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1460 = trunc nuw i8 %1459 to i1
  br i1 %1460, label %1461, label %1465

1461:                                             ; preds = %1454
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = call i32 @fileno(ptr noundef %1462) #12
  %1464 = call i32 @isatty(i32 noundef %1463) #12
  %.not503 = icmp eq i32 %1464, 0
  br i1 %.not503, label %1465, label %1466

1465:                                             ; preds = %1461, %1454
  br label %1466

1466:                                             ; preds = %1461, %1465
  %.str.5.sink1144 = phi ptr [ @.str.5, %1465 ], [ @.str.2, %1461 ]
  store i32 %1456, ptr %1455, align 4, !tbaa !5
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @s2n_strerror(i32 noundef %1470, ptr noundef nonnull @.str.4) #12
  %1472 = load i32, ptr %1469, align 4, !tbaa !5
  %1473 = call ptr @s2n_strerror_debug(i32 noundef %1472, ptr noundef nonnull @.str.4) #12
  %1474 = load i32, ptr %1455, align 4, !tbaa !5
  %1475 = call ptr @strerror(i32 noundef %1474) #12
  %1476 = load i32, ptr %1455, align 4, !tbaa !5
  %1477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1467, ptr noundef nonnull %.str.5.sink1144, i32 noundef %1468, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1471, ptr noundef %1473, ptr noundef %1475, i32 noundef %1476) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1478:                                             ; preds = %1450
  %1479 = load i32, ptr @test_count, align 4, !tbaa !5
  %1480 = add nsw i32 %1479, 1
  store i32 %1480, ptr @test_count, align 4, !tbaa !5
  %1481 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %1250) #12
  %.not504 = icmp eq i32 %1481, 0
  br i1 %.not504, label %1482, label %1506

1482:                                             ; preds = %1478
  %1483 = tail call ptr @__errno_location() #13
  %1484 = load i32, ptr %1483, align 4, !tbaa !5
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = call i32 @s2n_print_stacktrace(ptr noundef %1485) #12
  %1487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1488 = trunc nuw i8 %1487 to i1
  br i1 %1488, label %1489, label %1493

1489:                                             ; preds = %1482
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = call i32 @fileno(ptr noundef %1490) #12
  %1492 = call i32 @isatty(i32 noundef %1491) #12
  %.not505 = icmp eq i32 %1492, 0
  br i1 %.not505, label %1493, label %1494

1493:                                             ; preds = %1489, %1482
  br label %1494

1494:                                             ; preds = %1489, %1493
  %.str.5.sink1155 = phi ptr [ @.str.5, %1493 ], [ @.str.2, %1489 ]
  store i32 %1484, ptr %1483, align 4, !tbaa !5
  %1495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1496 = load i32, ptr @test_count, align 4, !tbaa !5
  %1497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1498 = load i32, ptr %1497, align 4, !tbaa !5
  %1499 = call ptr @s2n_strerror(i32 noundef %1498, ptr noundef nonnull @.str.4) #12
  %1500 = load i32, ptr %1497, align 4, !tbaa !5
  %1501 = call ptr @s2n_strerror_debug(i32 noundef %1500, ptr noundef nonnull @.str.4) #12
  %1502 = load i32, ptr %1483, align 4, !tbaa !5
  %1503 = call ptr @strerror(i32 noundef %1502) #12
  %1504 = load i32, ptr %1483, align 4, !tbaa !5
  %1505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1495, ptr noundef nonnull %.str.5.sink1155, i32 noundef %1496, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1499, ptr noundef %1501, ptr noundef %1503, i32 noundef %1504) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1506:                                             ; preds = %1478
  %1507 = load i32, ptr @test_count, align 4, !tbaa !5
  %1508 = add nsw i32 %1507, 1
  store i32 %1508, ptr @test_count, align 4, !tbaa !5
  %1509 = call i32 @s2n_connection_free(ptr noundef nonnull %1250) #12
  %1510 = icmp eq i32 %1509, -1
  br i1 %1510, label %1511, label %1535

1511:                                             ; preds = %1506
  %1512 = tail call ptr @__errno_location() #13
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1515 = call i32 @s2n_print_stacktrace(ptr noundef %1514) #12
  %1516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1517 = trunc nuw i8 %1516 to i1
  br i1 %1517, label %1518, label %1522

1518:                                             ; preds = %1511
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = call i32 @fileno(ptr noundef %1519) #12
  %1521 = call i32 @isatty(i32 noundef %1520) #12
  %.not509 = icmp eq i32 %1521, 0
  br i1 %.not509, label %1522, label %1523

1522:                                             ; preds = %1518, %1511
  br label %1523

1523:                                             ; preds = %1518, %1522
  %.str.5.sink1166 = phi ptr [ @.str.5, %1522 ], [ @.str.2, %1518 ]
  store i32 %1513, ptr %1512, align 4, !tbaa !5
  %1524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1525 = load i32, ptr @test_count, align 4, !tbaa !5
  %1526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1527 = load i32, ptr %1526, align 4, !tbaa !5
  %1528 = call ptr @s2n_strerror(i32 noundef %1527, ptr noundef nonnull @.str.4) #12
  %1529 = load i32, ptr %1526, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror_debug(i32 noundef %1529, ptr noundef nonnull @.str.4) #12
  %1531 = load i32, ptr %1512, align 4, !tbaa !5
  %1532 = call ptr @strerror(i32 noundef %1531) #12
  %1533 = load i32, ptr %1512, align 4, !tbaa !5
  %1534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1524, ptr noundef nonnull %.str.5.sink1166, i32 noundef %1525, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %1528, ptr noundef %1530, ptr noundef %1532, i32 noundef %1533) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1535:                                             ; preds = %1506
  %1536 = load i32, ptr @test_count, align 4, !tbaa !5
  %1537 = add nsw i32 %1536, 1
  store i32 %1537, ptr @test_count, align 4, !tbaa !5
  %1538 = call i32 @s2n_connection_free(ptr noundef nonnull %1192) #12
  %1539 = icmp eq i32 %1538, -1
  br i1 %1539, label %1540, label %1564

1540:                                             ; preds = %1535
  %1541 = tail call ptr @__errno_location() #13
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1544 = call i32 @s2n_print_stacktrace(ptr noundef %1543) #12
  %1545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1546 = trunc nuw i8 %1545 to i1
  br i1 %1546, label %1547, label %1551

1547:                                             ; preds = %1540
  %1548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1549 = call i32 @fileno(ptr noundef %1548) #12
  %1550 = call i32 @isatty(i32 noundef %1549) #12
  %.not508 = icmp eq i32 %1550, 0
  br i1 %.not508, label %1551, label %1552

1551:                                             ; preds = %1547, %1540
  br label %1552

1552:                                             ; preds = %1547, %1551
  %.str.5.sink1177 = phi ptr [ @.str.5, %1551 ], [ @.str.2, %1547 ]
  store i32 %1542, ptr %1541, align 4, !tbaa !5
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror(i32 noundef %1556, ptr noundef nonnull @.str.4) #12
  %1558 = load i32, ptr %1555, align 4, !tbaa !5
  %1559 = call ptr @s2n_strerror_debug(i32 noundef %1558, ptr noundef nonnull @.str.4) #12
  %1560 = load i32, ptr %1541, align 4, !tbaa !5
  %1561 = call ptr @strerror(i32 noundef %1560) #12
  %1562 = load i32, ptr %1541, align 4, !tbaa !5
  %1563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1553, ptr noundef nonnull %.str.5.sink1177, i32 noundef %1554, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1557, ptr noundef %1559, ptr noundef %1561, i32 noundef %1562) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1564:                                             ; preds = %1535
  %1565 = load i32, ptr @test_count, align 4, !tbaa !5
  %1566 = add nsw i32 %1565, 1
  store i32 %1566, ptr @test_count, align 4, !tbaa !5
  %1567 = call i32 @s2n_stuffer_free(ptr noundef nonnull %12) #12
  %1568 = icmp eq i32 %1567, -1
  br i1 %1568, label %1569, label %1593

1569:                                             ; preds = %1564
  %1570 = tail call ptr @__errno_location() #13
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = call i32 @s2n_print_stacktrace(ptr noundef %1572) #12
  %1574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1575 = trunc nuw i8 %1574 to i1
  br i1 %1575, label %1576, label %1580

1576:                                             ; preds = %1569
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @fileno(ptr noundef %1577) #12
  %1579 = call i32 @isatty(i32 noundef %1578) #12
  %.not507 = icmp eq i32 %1579, 0
  br i1 %.not507, label %1580, label %1581

1580:                                             ; preds = %1576, %1569
  br label %1581

1581:                                             ; preds = %1576, %1580
  %.str.5.sink1188 = phi ptr [ @.str.5, %1580 ], [ @.str.2, %1576 ]
  store i32 %1571, ptr %1570, align 4, !tbaa !5
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = load i32, ptr @test_count, align 4, !tbaa !5
  %1584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call ptr @s2n_strerror(i32 noundef %1585, ptr noundef nonnull @.str.4) #12
  %1587 = load i32, ptr %1584, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef nonnull @.str.4) #12
  %1589 = load i32, ptr %1570, align 4, !tbaa !5
  %1590 = call ptr @strerror(i32 noundef %1589) #12
  %1591 = load i32, ptr %1570, align 4, !tbaa !5
  %1592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1582, ptr noundef nonnull %.str.5.sink1188, i32 noundef %1583, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1586, ptr noundef %1588, ptr noundef %1590, i32 noundef %1591) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1593:                                             ; preds = %1564
  %1594 = load i32, ptr @test_count, align 4, !tbaa !5
  %1595 = add nsw i32 %1594, 1
  store i32 %1595, ptr @test_count, align 4, !tbaa !5
  %1596 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #12
  %1597 = icmp eq i32 %1596, -1
  br i1 %1597, label %1598, label %1622

1598:                                             ; preds = %1593
  %1599 = tail call ptr @__errno_location() #13
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = call i32 @s2n_print_stacktrace(ptr noundef %1601) #12
  %1603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1604 = trunc nuw i8 %1603 to i1
  br i1 %1604, label %1605, label %1609

1605:                                             ; preds = %1598
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = call i32 @fileno(ptr noundef %1606) #12
  %1608 = call i32 @isatty(i32 noundef %1607) #12
  %.not506 = icmp eq i32 %1608, 0
  br i1 %.not506, label %1609, label %1610

1609:                                             ; preds = %1605, %1598
  br label %1610

1610:                                             ; preds = %1605, %1609
  %.str.5.sink1199 = phi ptr [ @.str.5, %1609 ], [ @.str.2, %1605 ]
  store i32 %1600, ptr %1599, align 4, !tbaa !5
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = load i32, ptr @test_count, align 4, !tbaa !5
  %1613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror(i32 noundef %1614, ptr noundef nonnull @.str.4) #12
  %1616 = load i32, ptr %1613, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror_debug(i32 noundef %1616, ptr noundef nonnull @.str.4) #12
  %1618 = load i32, ptr %1599, align 4, !tbaa !5
  %1619 = call ptr @strerror(i32 noundef %1618) #12
  %1620 = load i32, ptr %1599, align 4, !tbaa !5
  %1621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1611, ptr noundef nonnull %.str.5.sink1199, i32 noundef %1612, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1615, ptr noundef %1617, ptr noundef %1619, i32 noundef %1620) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1622:                                             ; preds = %1593, %1183
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #12
  %1623 = add nuw nsw i64 %.0400588, 1
  %1624 = load i16, ptr %526, align 8, !tbaa !24
  %1625 = zext i16 %1624 to i64
  %1626 = icmp ult i64 %1623, %1625
  br i1 %1626, label %1183, label %._crit_edge590, !llvm.loop !31

1627:                                             ; preds = %._crit_edge590
  %1628 = tail call ptr @__errno_location() #13
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = call i32 @s2n_print_stacktrace(ptr noundef %1630) #12
  %1632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1633 = trunc nuw i8 %1632 to i1
  br i1 %1633, label %1634, label %1638

1634:                                             ; preds = %1627
  %1635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1636 = call i32 @fileno(ptr noundef %1635) #12
  %1637 = call i32 @isatty(i32 noundef %1636) #12
  %.not500 = icmp eq i32 %1637, 0
  br i1 %.not500, label %1638, label %1639

1638:                                             ; preds = %1634, %1627
  br label %1639

1639:                                             ; preds = %1634, %1638
  %.str.5.sink1210 = phi ptr [ @.str.5, %1638 ], [ @.str.2, %1634 ]
  store i32 %1629, ptr %1628, align 4, !tbaa !5
  %1640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1641 = load i32, ptr @test_count, align 4, !tbaa !5
  %1642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1643 = load i32, ptr %1642, align 4, !tbaa !5
  %1644 = call ptr @s2n_strerror(i32 noundef %1643, ptr noundef nonnull @.str.4) #12
  %1645 = load i32, ptr %1642, align 4, !tbaa !5
  %1646 = call ptr @s2n_strerror_debug(i32 noundef %1645, ptr noundef nonnull @.str.4) #12
  %1647 = load i32, ptr %1628, align 4, !tbaa !5
  %1648 = call ptr @strerror(i32 noundef %1647) #12
  %1649 = load i32, ptr %1628, align 4, !tbaa !5
  %1650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1640, ptr noundef nonnull %.str.5.sink1210, i32 noundef %1641, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1644, ptr noundef %1646, ptr noundef %1648, i32 noundef %1649) #14
  call void @exit(i32 noundef 1) #15
  unreachable

._crit_edge593:                                   ; preds = %2157, %.preheader563
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = add nsw i32 %1651, 1
  store i32 %1652, ptr @test_count, align 4, !tbaa !5
  %1653 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %235, i32 noundef 0) #12
  %1654 = icmp eq i32 %1653, -1
  br i1 %1654, label %2162, label %.preheader562

.preheader562:                                    ; preds = %._crit_edge593
  %1655 = load i16, ptr %526, align 8, !tbaa !24
  %.not600 = icmp eq i16 %1655, 0
  br i1 %.not600, label %.preheader562..preheader_crit_edge, label %.lr.ph595

.preheader562..preheader_crit_edge:               ; preds = %.preheader562
  %.pre = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  br label %.preheader

.lr.ph595:                                        ; preds = %.preheader562
  %1656 = getelementptr inbounds i8, ptr %526, i64 8
  %1657 = getelementptr inbounds i8, ptr %19, i64 8
  %1658 = getelementptr inbounds i8, ptr %20, i64 8
  %1659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  br label %2187

1660:                                             ; preds = %.lr.ph592, %2157
  %.0401591 = phi i64 [ 0, %.lr.ph592 ], [ %2158, %2157 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %16, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %17, i8 0, i64 40, i1 false)
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %526, i64 24, i1 false)
  store i16 1, ptr %14, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %1661 = load ptr, ptr %1180, align 8, !tbaa !28
  %1662 = getelementptr inbounds ptr, ptr %1661, i64 %.0401591
  %1663 = load ptr, ptr %1662, align 8, !tbaa !9
  store ptr %1663, ptr %18, align 8, !tbaa !9
  %1664 = load i8, ptr %1663, align 8
  %1665 = and i8 %1664, 1
  %.not480 = icmp eq i8 %1665, 0
  br i1 %.not480, label %2157, label %1666

1666:                                             ; preds = %1660
  store ptr %18, ptr %1181, align 8, !tbaa !28
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %15, ptr noundef nonnull align 8 dereferenceable(64) %497, i64 64, i1 false)
  store ptr %14, ptr %1182, align 8, !tbaa !22
  store ptr %15, ptr %496, align 8, !tbaa !15
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = add nsw i32 %1667, 1
  store i32 %1668, ptr @test_count, align 4, !tbaa !5
  %1669 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1670 = icmp eq ptr %1669, null
  br i1 %1670, label %1671, label %1695

1671:                                             ; preds = %1666
  %1672 = tail call ptr @__errno_location() #13
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = call i32 @s2n_print_stacktrace(ptr noundef %1674) #12
  %1676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1677 = trunc nuw i8 %1676 to i1
  br i1 %1677, label %1678, label %1682

1678:                                             ; preds = %1671
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = call i32 @fileno(ptr noundef %1679) #12
  %1681 = call i32 @isatty(i32 noundef %1680) #12
  %.not499 = icmp eq i32 %1681, 0
  br i1 %.not499, label %1682, label %1683

1682:                                             ; preds = %1678, %1671
  br label %1683

1683:                                             ; preds = %1678, %1682
  %.str.5.sink1221 = phi ptr [ @.str.5, %1682 ], [ @.str.2, %1678 ]
  store i32 %1673, ptr %1672, align 4, !tbaa !5
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror(i32 noundef %1687, ptr noundef nonnull @.str.4) #12
  %1689 = load i32, ptr %1686, align 4, !tbaa !5
  %1690 = call ptr @s2n_strerror_debug(i32 noundef %1689, ptr noundef nonnull @.str.4) #12
  %1691 = load i32, ptr %1672, align 4, !tbaa !5
  %1692 = call ptr @strerror(i32 noundef %1691) #12
  %1693 = load i32, ptr %1672, align 4, !tbaa !5
  %1694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1684, ptr noundef nonnull %.str.5.sink1221, i32 noundef %1685, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %1688, ptr noundef %1690, ptr noundef %1692, i32 noundef %1693) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1695:                                             ; preds = %1666
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = add nsw i32 %1696, 1
  store i32 %1697, ptr @test_count, align 4, !tbaa !5
  %1698 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1669, ptr noundef nonnull %235) #12
  %1699 = icmp eq i32 %1698, -1
  br i1 %1699, label %1700, label %1724

1700:                                             ; preds = %1695
  %1701 = tail call ptr @__errno_location() #13
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = call i32 @s2n_print_stacktrace(ptr noundef %1703) #12
  %1705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1706 = trunc nuw i8 %1705 to i1
  br i1 %1706, label %1707, label %1711

1707:                                             ; preds = %1700
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = call i32 @fileno(ptr noundef %1708) #12
  %1710 = call i32 @isatty(i32 noundef %1709) #12
  %.not498 = icmp eq i32 %1710, 0
  br i1 %.not498, label %1711, label %1712

1711:                                             ; preds = %1707, %1700
  br label %1712

1712:                                             ; preds = %1707, %1711
  %.str.5.sink1232 = phi ptr [ @.str.5, %1711 ], [ @.str.2, %1707 ]
  store i32 %1702, ptr %1701, align 4, !tbaa !5
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = load i32, ptr @test_count, align 4, !tbaa !5
  %1715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call ptr @s2n_strerror(i32 noundef %1716, ptr noundef nonnull @.str.4) #12
  %1718 = load i32, ptr %1715, align 4, !tbaa !5
  %1719 = call ptr @s2n_strerror_debug(i32 noundef %1718, ptr noundef nonnull @.str.4) #12
  %1720 = load i32, ptr %1701, align 4, !tbaa !5
  %1721 = call ptr @strerror(i32 noundef %1720) #12
  %1722 = load i32, ptr %1701, align 4, !tbaa !5
  %1723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1713, ptr noundef nonnull %.str.5.sink1232, i32 noundef %1714, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1717, ptr noundef %1719, ptr noundef %1721, i32 noundef %1722) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1724:                                             ; preds = %1695
  %1725 = load i32, ptr @test_count, align 4, !tbaa !5
  %1726 = add nsw i32 %1725, 1
  store i32 %1726, ptr @test_count, align 4, !tbaa !5
  %1727 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %1728 = icmp eq ptr %1727, null
  br i1 %1728, label %1729, label %1753

1729:                                             ; preds = %1724
  %1730 = tail call ptr @__errno_location() #13
  %1731 = load i32, ptr %1730, align 4, !tbaa !5
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = call i32 @s2n_print_stacktrace(ptr noundef %1732) #12
  %1734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1735 = trunc nuw i8 %1734 to i1
  br i1 %1735, label %1736, label %1740

1736:                                             ; preds = %1729
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = call i32 @fileno(ptr noundef %1737) #12
  %1739 = call i32 @isatty(i32 noundef %1738) #12
  %.not497 = icmp eq i32 %1739, 0
  br i1 %.not497, label %1740, label %1741

1740:                                             ; preds = %1736, %1729
  br label %1741

1741:                                             ; preds = %1736, %1740
  %.str.5.sink1243 = phi ptr [ @.str.5, %1740 ], [ @.str.2, %1736 ]
  store i32 %1731, ptr %1730, align 4, !tbaa !5
  %1742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1743 = load i32, ptr @test_count, align 4, !tbaa !5
  %1744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1745 = load i32, ptr %1744, align 4, !tbaa !5
  %1746 = call ptr @s2n_strerror(i32 noundef %1745, ptr noundef nonnull @.str.4) #12
  %1747 = load i32, ptr %1744, align 4, !tbaa !5
  %1748 = call ptr @s2n_strerror_debug(i32 noundef %1747, ptr noundef nonnull @.str.4) #12
  %1749 = load i32, ptr %1730, align 4, !tbaa !5
  %1750 = call ptr @strerror(i32 noundef %1749) #12
  %1751 = load i32, ptr %1730, align 4, !tbaa !5
  %1752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1742, ptr noundef nonnull %.str.5.sink1243, i32 noundef %1743, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %1746, ptr noundef %1748, ptr noundef %1750, i32 noundef %1751) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1753:                                             ; preds = %1724
  %1754 = load i32, ptr @test_count, align 4, !tbaa !5
  %1755 = add nsw i32 %1754, 1
  store i32 %1755, ptr @test_count, align 4, !tbaa !5
  %1756 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1727, ptr noundef nonnull %235) #12
  %1757 = icmp eq i32 %1756, -1
  br i1 %1757, label %1758, label %1782

1758:                                             ; preds = %1753
  %1759 = tail call ptr @__errno_location() #13
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = call i32 @s2n_print_stacktrace(ptr noundef %1761) #12
  %1763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1764 = trunc nuw i8 %1763 to i1
  br i1 %1764, label %1765, label %1769

1765:                                             ; preds = %1758
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = call i32 @fileno(ptr noundef %1766) #12
  %1768 = call i32 @isatty(i32 noundef %1767) #12
  %.not496 = icmp eq i32 %1768, 0
  br i1 %.not496, label %1769, label %1770

1769:                                             ; preds = %1765, %1758
  br label %1770

1770:                                             ; preds = %1765, %1769
  %.str.5.sink1254 = phi ptr [ @.str.5, %1769 ], [ @.str.2, %1765 ]
  store i32 %1760, ptr %1759, align 4, !tbaa !5
  %1771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1772 = load i32, ptr @test_count, align 4, !tbaa !5
  %1773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1774 = load i32, ptr %1773, align 4, !tbaa !5
  %1775 = call ptr @s2n_strerror(i32 noundef %1774, ptr noundef nonnull @.str.4) #12
  %1776 = load i32, ptr %1773, align 4, !tbaa !5
  %1777 = call ptr @s2n_strerror_debug(i32 noundef %1776, ptr noundef nonnull @.str.4) #12
  %1778 = load i32, ptr %1759, align 4, !tbaa !5
  %1779 = call ptr @strerror(i32 noundef %1778) #12
  %1780 = load i32, ptr %1759, align 4, !tbaa !5
  %1781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1771, ptr noundef nonnull %.str.5.sink1254, i32 noundef %1772, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %1775, ptr noundef %1777, ptr noundef %1779, i32 noundef %1780) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1782:                                             ; preds = %1753
  %1783 = load i32, ptr @test_count, align 4, !tbaa !5
  %1784 = add nsw i32 %1783, 1
  store i32 %1784, ptr @test_count, align 4, !tbaa !5
  %1785 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %1669, i32 noundef 1) #12
  %1786 = icmp eq i32 %1785, -1
  br i1 %1786, label %1787, label %1811

1787:                                             ; preds = %1782
  %1788 = tail call ptr @__errno_location() #13
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = call i32 @s2n_print_stacktrace(ptr noundef %1790) #12
  %1792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1793 = trunc nuw i8 %1792 to i1
  br i1 %1793, label %1794, label %1798

1794:                                             ; preds = %1787
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = call i32 @fileno(ptr noundef %1795) #12
  %1797 = call i32 @isatty(i32 noundef %1796) #12
  %.not495 = icmp eq i32 %1797, 0
  br i1 %.not495, label %1798, label %1799

1798:                                             ; preds = %1794, %1787
  br label %1799

1799:                                             ; preds = %1794, %1798
  %.str.5.sink1265 = phi ptr [ @.str.5, %1798 ], [ @.str.2, %1794 ]
  store i32 %1789, ptr %1788, align 4, !tbaa !5
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = load i32, ptr @test_count, align 4, !tbaa !5
  %1802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = call ptr @s2n_strerror(i32 noundef %1803, ptr noundef nonnull @.str.4) #12
  %1805 = load i32, ptr %1802, align 4, !tbaa !5
  %1806 = call ptr @s2n_strerror_debug(i32 noundef %1805, ptr noundef nonnull @.str.4) #12
  %1807 = load i32, ptr %1788, align 4, !tbaa !5
  %1808 = call ptr @strerror(i32 noundef %1807) #12
  %1809 = load i32, ptr %1788, align 4, !tbaa !5
  %1810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1800, ptr noundef nonnull %.str.5.sink1265, i32 noundef %1801, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1804, ptr noundef %1806, ptr noundef %1808, i32 noundef %1809) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1811:                                             ; preds = %1782
  %1812 = load i32, ptr @test_count, align 4, !tbaa !5
  %1813 = add nsw i32 %1812, 1
  store i32 %1813, ptr @test_count, align 4, !tbaa !5
  %1814 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %1727, i32 noundef 1) #12
  %1815 = icmp eq i32 %1814, -1
  br i1 %1815, label %1816, label %1840

1816:                                             ; preds = %1811
  %1817 = tail call ptr @__errno_location() #13
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = call i32 @s2n_print_stacktrace(ptr noundef %1819) #12
  %1821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1822 = trunc nuw i8 %1821 to i1
  br i1 %1822, label %1823, label %1827

1823:                                             ; preds = %1816
  %1824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1825 = call i32 @fileno(ptr noundef %1824) #12
  %1826 = call i32 @isatty(i32 noundef %1825) #12
  %.not494 = icmp eq i32 %1826, 0
  br i1 %.not494, label %1827, label %1828

1827:                                             ; preds = %1823, %1816
  br label %1828

1828:                                             ; preds = %1823, %1827
  %.str.5.sink1276 = phi ptr [ @.str.5, %1827 ], [ @.str.2, %1823 ]
  store i32 %1818, ptr %1817, align 4, !tbaa !5
  %1829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1830 = load i32, ptr @test_count, align 4, !tbaa !5
  %1831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call ptr @s2n_strerror(i32 noundef %1832, ptr noundef nonnull @.str.4) #12
  %1834 = load i32, ptr %1831, align 4, !tbaa !5
  %1835 = call ptr @s2n_strerror_debug(i32 noundef %1834, ptr noundef nonnull @.str.4) #12
  %1836 = load i32, ptr %1817, align 4, !tbaa !5
  %1837 = call ptr @strerror(i32 noundef %1836) #12
  %1838 = load i32, ptr %1817, align 4, !tbaa !5
  %1839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1829, ptr noundef nonnull %.str.5.sink1276, i32 noundef %1830, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1833, ptr noundef %1835, ptr noundef %1837, i32 noundef %1838) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1840:                                             ; preds = %1811
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = add nsw i32 %1841, 1
  store i32 %1842, ptr @test_count, align 4, !tbaa !5
  %1843 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %16, i32 noundef 0) #12
  %1844 = icmp eq i32 %1843, -1
  br i1 %1844, label %1845, label %1869

1845:                                             ; preds = %1840
  %1846 = tail call ptr @__errno_location() #13
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = call i32 @s2n_print_stacktrace(ptr noundef %1848) #12
  %1850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1851 = trunc nuw i8 %1850 to i1
  br i1 %1851, label %1852, label %1856

1852:                                             ; preds = %1845
  %1853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1854 = call i32 @fileno(ptr noundef %1853) #12
  %1855 = call i32 @isatty(i32 noundef %1854) #12
  %.not493 = icmp eq i32 %1855, 0
  br i1 %.not493, label %1856, label %1857

1856:                                             ; preds = %1852, %1845
  br label %1857

1857:                                             ; preds = %1852, %1856
  %.str.5.sink1287 = phi ptr [ @.str.5, %1856 ], [ @.str.2, %1852 ]
  store i32 %1847, ptr %1846, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef nonnull @.str.4) #12
  %1863 = load i32, ptr %1860, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror_debug(i32 noundef %1863, ptr noundef nonnull @.str.4) #12
  %1865 = load i32, ptr %1846, align 4, !tbaa !5
  %1866 = call ptr @strerror(i32 noundef %1865) #12
  %1867 = load i32, ptr %1846, align 4, !tbaa !5
  %1868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1858, ptr noundef nonnull %.str.5.sink1287, i32 noundef %1859, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %1862, ptr noundef %1864, ptr noundef %1866, i32 noundef %1867) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1869:                                             ; preds = %1840
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = add nsw i32 %1870, 1
  store i32 %1871, ptr @test_count, align 4, !tbaa !5
  %1872 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %17, i32 noundef 0) #12
  %1873 = icmp eq i32 %1872, -1
  br i1 %1873, label %1874, label %1898

1874:                                             ; preds = %1869
  %1875 = tail call ptr @__errno_location() #13
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = call i32 @s2n_print_stacktrace(ptr noundef %1877) #12
  %1879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1880 = trunc nuw i8 %1879 to i1
  br i1 %1880, label %1881, label %1885

1881:                                             ; preds = %1874
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @fileno(ptr noundef %1882) #12
  %1884 = call i32 @isatty(i32 noundef %1883) #12
  %.not492 = icmp eq i32 %1884, 0
  br i1 %.not492, label %1885, label %1886

1885:                                             ; preds = %1881, %1874
  br label %1886

1886:                                             ; preds = %1881, %1885
  %.str.5.sink1298 = phi ptr [ @.str.5, %1885 ], [ @.str.2, %1881 ]
  store i32 %1876, ptr %1875, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call ptr @s2n_strerror(i32 noundef %1890, ptr noundef nonnull @.str.4) #12
  %1892 = load i32, ptr %1889, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror_debug(i32 noundef %1892, ptr noundef nonnull @.str.4) #12
  %1894 = load i32, ptr %1875, align 4, !tbaa !5
  %1895 = call ptr @strerror(i32 noundef %1894) #12
  %1896 = load i32, ptr %1875, align 4, !tbaa !5
  %1897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef nonnull %.str.5.sink1298, i32 noundef %1888, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1891, ptr noundef %1893, ptr noundef %1895, i32 noundef %1896) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1898:                                             ; preds = %1869
  %1899 = load i32, ptr @test_count, align 4, !tbaa !5
  %1900 = add nsw i32 %1899, 1
  store i32 %1900, ptr @test_count, align 4, !tbaa !5
  %1901 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %17, ptr noundef nonnull %16, ptr noundef nonnull %1727) #12
  %1902 = icmp eq i32 %1901, -1
  br i1 %1902, label %1903, label %1927

1903:                                             ; preds = %1898
  %1904 = tail call ptr @__errno_location() #13
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = call i32 @s2n_print_stacktrace(ptr noundef %1906) #12
  %1908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1909 = trunc nuw i8 %1908 to i1
  br i1 %1909, label %1910, label %1914

1910:                                             ; preds = %1903
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = call i32 @fileno(ptr noundef %1911) #12
  %1913 = call i32 @isatty(i32 noundef %1912) #12
  %.not491 = icmp eq i32 %1913, 0
  br i1 %.not491, label %1914, label %1915

1914:                                             ; preds = %1910, %1903
  br label %1915

1915:                                             ; preds = %1910, %1914
  %.str.5.sink1309 = phi ptr [ @.str.5, %1914 ], [ @.str.2, %1910 ]
  store i32 %1905, ptr %1904, align 4, !tbaa !5
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call ptr @s2n_strerror(i32 noundef %1919, ptr noundef nonnull @.str.4) #12
  %1921 = load i32, ptr %1918, align 4, !tbaa !5
  %1922 = call ptr @s2n_strerror_debug(i32 noundef %1921, ptr noundef nonnull @.str.4) #12
  %1923 = load i32, ptr %1904, align 4, !tbaa !5
  %1924 = call ptr @strerror(i32 noundef %1923) #12
  %1925 = load i32, ptr %1904, align 4, !tbaa !5
  %1926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1916, ptr noundef nonnull %.str.5.sink1309, i32 noundef %1917, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %1920, ptr noundef %1922, ptr noundef %1924, i32 noundef %1925) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1927:                                             ; preds = %1898
  %1928 = load i32, ptr @test_count, align 4, !tbaa !5
  %1929 = add nsw i32 %1928, 1
  store i32 %1929, ptr @test_count, align 4, !tbaa !5
  %1930 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %1669) #12
  %1931 = icmp eq i32 %1930, -1
  br i1 %1931, label %1932, label %1956

1932:                                             ; preds = %1927
  %1933 = tail call ptr @__errno_location() #13
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = call i32 @s2n_print_stacktrace(ptr noundef %1935) #12
  %1937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1938 = trunc nuw i8 %1937 to i1
  br i1 %1938, label %1939, label %1943

1939:                                             ; preds = %1932
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = call i32 @fileno(ptr noundef %1940) #12
  %1942 = call i32 @isatty(i32 noundef %1941) #12
  %.not490 = icmp eq i32 %1942, 0
  br i1 %.not490, label %1943, label %1944

1943:                                             ; preds = %1939, %1932
  br label %1944

1944:                                             ; preds = %1939, %1943
  %.str.5.sink1320 = phi ptr [ @.str.5, %1943 ], [ @.str.2, %1939 ]
  store i32 %1934, ptr %1933, align 4, !tbaa !5
  %1945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @s2n_strerror(i32 noundef %1948, ptr noundef nonnull @.str.4) #12
  %1950 = load i32, ptr %1947, align 4, !tbaa !5
  %1951 = call ptr @s2n_strerror_debug(i32 noundef %1950, ptr noundef nonnull @.str.4) #12
  %1952 = load i32, ptr %1933, align 4, !tbaa !5
  %1953 = call ptr @strerror(i32 noundef %1952) #12
  %1954 = load i32, ptr %1933, align 4, !tbaa !5
  %1955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1945, ptr noundef nonnull %.str.5.sink1320, i32 noundef %1946, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %1949, ptr noundef %1951, ptr noundef %1953, i32 noundef %1954) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1956:                                             ; preds = %1927
  %1957 = load i32, ptr @test_count, align 4, !tbaa !5
  %1958 = add nsw i32 %1957, 1
  store i32 %1958, ptr @test_count, align 4, !tbaa !5
  %1959 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %1669, ptr noundef nonnull %1727) #12
  %1960 = icmp eq i32 %1959, -1
  br i1 %1960, label %1961, label %1985

1961:                                             ; preds = %1956
  %1962 = tail call ptr @__errno_location() #13
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1965 = call i32 @s2n_print_stacktrace(ptr noundef %1964) #12
  %1966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1967 = trunc nuw i8 %1966 to i1
  br i1 %1967, label %1968, label %1972

1968:                                             ; preds = %1961
  %1969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1970 = call i32 @fileno(ptr noundef %1969) #12
  %1971 = call i32 @isatty(i32 noundef %1970) #12
  %.not489 = icmp eq i32 %1971, 0
  br i1 %.not489, label %1972, label %1973

1972:                                             ; preds = %1968, %1961
  br label %1973

1973:                                             ; preds = %1968, %1972
  %.str.5.sink1331 = phi ptr [ @.str.5, %1972 ], [ @.str.2, %1968 ]
  store i32 %1963, ptr %1962, align 4, !tbaa !5
  %1974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %1976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call ptr @s2n_strerror(i32 noundef %1977, ptr noundef nonnull @.str.4) #12
  %1979 = load i32, ptr %1976, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror_debug(i32 noundef %1979, ptr noundef nonnull @.str.4) #12
  %1981 = load i32, ptr %1962, align 4, !tbaa !5
  %1982 = call ptr @strerror(i32 noundef %1981) #12
  %1983 = load i32, ptr %1962, align 4, !tbaa !5
  %1984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1974, ptr noundef nonnull %.str.5.sink1331, i32 noundef %1975, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1978, ptr noundef %1980, ptr noundef %1982, i32 noundef %1983) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1985:                                             ; preds = %1956
  %1986 = load i32, ptr @test_count, align 4, !tbaa !5
  %1987 = add nsw i32 %1986, 1
  store i32 %1987, ptr @test_count, align 4, !tbaa !5
  %1988 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %1669) #12
  %.not481 = icmp eq i32 %1988, 0
  br i1 %.not481, label %1989, label %2013

1989:                                             ; preds = %1985
  %1990 = tail call ptr @__errno_location() #13
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = call i32 @s2n_print_stacktrace(ptr noundef %1992) #12
  %1994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1995 = trunc nuw i8 %1994 to i1
  br i1 %1995, label %1996, label %2000

1996:                                             ; preds = %1989
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = call i32 @fileno(ptr noundef %1997) #12
  %1999 = call i32 @isatty(i32 noundef %1998) #12
  %.not482 = icmp eq i32 %1999, 0
  br i1 %.not482, label %2000, label %2001

2000:                                             ; preds = %1996, %1989
  br label %2001

2001:                                             ; preds = %1996, %2000
  %.str.5.sink1342 = phi ptr [ @.str.5, %2000 ], [ @.str.2, %1996 ]
  store i32 %1991, ptr %1990, align 4, !tbaa !5
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call ptr @s2n_strerror(i32 noundef %2005, ptr noundef nonnull @.str.4) #12
  %2007 = load i32, ptr %2004, align 4, !tbaa !5
  %2008 = call ptr @s2n_strerror_debug(i32 noundef %2007, ptr noundef nonnull @.str.4) #12
  %2009 = load i32, ptr %1990, align 4, !tbaa !5
  %2010 = call ptr @strerror(i32 noundef %2009) #12
  %2011 = load i32, ptr %1990, align 4, !tbaa !5
  %2012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2002, ptr noundef nonnull %.str.5.sink1342, i32 noundef %2003, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %2006, ptr noundef %2008, ptr noundef %2010, i32 noundef %2011) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2013:                                             ; preds = %1985
  %2014 = load i32, ptr @test_count, align 4, !tbaa !5
  %2015 = add nsw i32 %2014, 1
  store i32 %2015, ptr @test_count, align 4, !tbaa !5
  %2016 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %1727) #12
  %.not483 = icmp eq i32 %2016, 0
  br i1 %.not483, label %2017, label %2041

2017:                                             ; preds = %2013
  %2018 = tail call ptr @__errno_location() #13
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @s2n_print_stacktrace(ptr noundef %2020) #12
  %2022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2023 = trunc nuw i8 %2022 to i1
  br i1 %2023, label %2024, label %2028

2024:                                             ; preds = %2017
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = call i32 @fileno(ptr noundef %2025) #12
  %2027 = call i32 @isatty(i32 noundef %2026) #12
  %.not484 = icmp eq i32 %2027, 0
  br i1 %.not484, label %2028, label %2029

2028:                                             ; preds = %2024, %2017
  br label %2029

2029:                                             ; preds = %2024, %2028
  %.str.5.sink1353 = phi ptr [ @.str.5, %2028 ], [ @.str.2, %2024 ]
  store i32 %2019, ptr %2018, align 4, !tbaa !5
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = load i32, ptr @test_count, align 4, !tbaa !5
  %2032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror(i32 noundef %2033, ptr noundef nonnull @.str.4) #12
  %2035 = load i32, ptr %2032, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror_debug(i32 noundef %2035, ptr noundef nonnull @.str.4) #12
  %2037 = load i32, ptr %2018, align 4, !tbaa !5
  %2038 = call ptr @strerror(i32 noundef %2037) #12
  %2039 = load i32, ptr %2018, align 4, !tbaa !5
  %2040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2030, ptr noundef nonnull %.str.5.sink1353, i32 noundef %2031, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %2034, ptr noundef %2036, ptr noundef %2038, i32 noundef %2039) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2041:                                             ; preds = %2013
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = add nsw i32 %2042, 1
  store i32 %2043, ptr @test_count, align 4, !tbaa !5
  %2044 = call i32 @s2n_connection_free(ptr noundef nonnull %1727) #12
  %2045 = icmp eq i32 %2044, -1
  br i1 %2045, label %2046, label %2070

2046:                                             ; preds = %2041
  %2047 = tail call ptr @__errno_location() #13
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = call i32 @s2n_print_stacktrace(ptr noundef %2049) #12
  %2051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2052 = trunc nuw i8 %2051 to i1
  br i1 %2052, label %2053, label %2057

2053:                                             ; preds = %2046
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = call i32 @fileno(ptr noundef %2054) #12
  %2056 = call i32 @isatty(i32 noundef %2055) #12
  %.not488 = icmp eq i32 %2056, 0
  br i1 %.not488, label %2057, label %2058

2057:                                             ; preds = %2053, %2046
  br label %2058

2058:                                             ; preds = %2053, %2057
  %.str.5.sink1364 = phi ptr [ @.str.5, %2057 ], [ @.str.2, %2053 ]
  store i32 %2048, ptr %2047, align 4, !tbaa !5
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = load i32, ptr @test_count, align 4, !tbaa !5
  %2061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror(i32 noundef %2062, ptr noundef nonnull @.str.4) #12
  %2064 = load i32, ptr %2061, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror_debug(i32 noundef %2064, ptr noundef nonnull @.str.4) #12
  %2066 = load i32, ptr %2047, align 4, !tbaa !5
  %2067 = call ptr @strerror(i32 noundef %2066) #12
  %2068 = load i32, ptr %2047, align 4, !tbaa !5
  %2069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2059, ptr noundef nonnull %.str.5.sink1364, i32 noundef %2060, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %2063, ptr noundef %2065, ptr noundef %2067, i32 noundef %2068) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2070:                                             ; preds = %2041
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = add nsw i32 %2071, 1
  store i32 %2072, ptr @test_count, align 4, !tbaa !5
  %2073 = call i32 @s2n_connection_free(ptr noundef nonnull %1669) #12
  %2074 = icmp eq i32 %2073, -1
  br i1 %2074, label %2075, label %2099

2075:                                             ; preds = %2070
  %2076 = tail call ptr @__errno_location() #13
  %2077 = load i32, ptr %2076, align 4, !tbaa !5
  %2078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2079 = call i32 @s2n_print_stacktrace(ptr noundef %2078) #12
  %2080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2081 = trunc nuw i8 %2080 to i1
  br i1 %2081, label %2082, label %2086

2082:                                             ; preds = %2075
  %2083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2084 = call i32 @fileno(ptr noundef %2083) #12
  %2085 = call i32 @isatty(i32 noundef %2084) #12
  %.not487 = icmp eq i32 %2085, 0
  br i1 %.not487, label %2086, label %2087

2086:                                             ; preds = %2082, %2075
  br label %2087

2087:                                             ; preds = %2082, %2086
  %.str.5.sink1375 = phi ptr [ @.str.5, %2086 ], [ @.str.2, %2082 ]
  store i32 %2077, ptr %2076, align 4, !tbaa !5
  %2088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2089 = load i32, ptr @test_count, align 4, !tbaa !5
  %2090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2091 = load i32, ptr %2090, align 4, !tbaa !5
  %2092 = call ptr @s2n_strerror(i32 noundef %2091, ptr noundef nonnull @.str.4) #12
  %2093 = load i32, ptr %2090, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror_debug(i32 noundef %2093, ptr noundef nonnull @.str.4) #12
  %2095 = load i32, ptr %2076, align 4, !tbaa !5
  %2096 = call ptr @strerror(i32 noundef %2095) #12
  %2097 = load i32, ptr %2076, align 4, !tbaa !5
  %2098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2088, ptr noundef nonnull %.str.5.sink1375, i32 noundef %2089, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2092, ptr noundef %2094, ptr noundef %2096, i32 noundef %2097) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2099:                                             ; preds = %2070
  %2100 = load i32, ptr @test_count, align 4, !tbaa !5
  %2101 = add nsw i32 %2100, 1
  store i32 %2101, ptr @test_count, align 4, !tbaa !5
  %2102 = call i32 @s2n_stuffer_free(ptr noundef nonnull %17) #12
  %2103 = icmp eq i32 %2102, -1
  br i1 %2103, label %2104, label %2128

2104:                                             ; preds = %2099
  %2105 = tail call ptr @__errno_location() #13
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = call i32 @s2n_print_stacktrace(ptr noundef %2107) #12
  %2109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2110 = trunc nuw i8 %2109 to i1
  br i1 %2110, label %2111, label %2115

2111:                                             ; preds = %2104
  %2112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2113 = call i32 @fileno(ptr noundef %2112) #12
  %2114 = call i32 @isatty(i32 noundef %2113) #12
  %.not486 = icmp eq i32 %2114, 0
  br i1 %.not486, label %2115, label %2116

2115:                                             ; preds = %2111, %2104
  br label %2116

2116:                                             ; preds = %2111, %2115
  %.str.5.sink1386 = phi ptr [ @.str.5, %2115 ], [ @.str.2, %2111 ]
  store i32 %2106, ptr %2105, align 4, !tbaa !5
  %2117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2118 = load i32, ptr @test_count, align 4, !tbaa !5
  %2119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  %2121 = call ptr @s2n_strerror(i32 noundef %2120, ptr noundef nonnull @.str.4) #12
  %2122 = load i32, ptr %2119, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror_debug(i32 noundef %2122, ptr noundef nonnull @.str.4) #12
  %2124 = load i32, ptr %2105, align 4, !tbaa !5
  %2125 = call ptr @strerror(i32 noundef %2124) #12
  %2126 = load i32, ptr %2105, align 4, !tbaa !5
  %2127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2117, ptr noundef nonnull %.str.5.sink1386, i32 noundef %2118, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %2121, ptr noundef %2123, ptr noundef %2125, i32 noundef %2126) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2128:                                             ; preds = %2099
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = add nsw i32 %2129, 1
  store i32 %2130, ptr @test_count, align 4, !tbaa !5
  %2131 = call i32 @s2n_stuffer_free(ptr noundef nonnull %16) #12
  %2132 = icmp eq i32 %2131, -1
  br i1 %2132, label %2133, label %2157

2133:                                             ; preds = %2128
  %2134 = tail call ptr @__errno_location() #13
  %2135 = load i32, ptr %2134, align 4, !tbaa !5
  %2136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2137 = call i32 @s2n_print_stacktrace(ptr noundef %2136) #12
  %2138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2139 = trunc nuw i8 %2138 to i1
  br i1 %2139, label %2140, label %2144

2140:                                             ; preds = %2133
  %2141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2142 = call i32 @fileno(ptr noundef %2141) #12
  %2143 = call i32 @isatty(i32 noundef %2142) #12
  %.not485 = icmp eq i32 %2143, 0
  br i1 %.not485, label %2144, label %2145

2144:                                             ; preds = %2140, %2133
  br label %2145

2145:                                             ; preds = %2140, %2144
  %.str.5.sink1397 = phi ptr [ @.str.5, %2144 ], [ @.str.2, %2140 ]
  store i32 %2135, ptr %2134, align 4, !tbaa !5
  %2146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2147 = load i32, ptr @test_count, align 4, !tbaa !5
  %2148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  %2150 = call ptr @s2n_strerror(i32 noundef %2149, ptr noundef nonnull @.str.4) #12
  %2151 = load i32, ptr %2148, align 4, !tbaa !5
  %2152 = call ptr @s2n_strerror_debug(i32 noundef %2151, ptr noundef nonnull @.str.4) #12
  %2153 = load i32, ptr %2134, align 4, !tbaa !5
  %2154 = call ptr @strerror(i32 noundef %2153) #12
  %2155 = load i32, ptr %2134, align 4, !tbaa !5
  %2156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2146, ptr noundef nonnull %.str.5.sink1397, i32 noundef %2147, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %2150, ptr noundef %2152, ptr noundef %2154, i32 noundef %2155) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2157:                                             ; preds = %2128, %1660
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  %2158 = add nuw nsw i64 %.0401591, 1
  %2159 = load i16, ptr %526, align 8, !tbaa !24
  %2160 = zext i16 %2159 to i64
  %2161 = icmp ult i64 %2158, %2160
  br i1 %2161, label %1660, label %._crit_edge593, !llvm.loop !32

2162:                                             ; preds = %._crit_edge593
  %2163 = tail call ptr @__errno_location() #13
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = call i32 @s2n_print_stacktrace(ptr noundef %2165) #12
  %2167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2168 = trunc nuw i8 %2167 to i1
  br i1 %2168, label %2169, label %2173

2169:                                             ; preds = %2162
  %2170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2171 = call i32 @fileno(ptr noundef %2170) #12
  %2172 = call i32 @isatty(i32 noundef %2171) #12
  %.not479 = icmp eq i32 %2172, 0
  br i1 %.not479, label %2173, label %2174

2173:                                             ; preds = %2169, %2162
  br label %2174

2174:                                             ; preds = %2169, %2173
  %.str.5.sink1408 = phi ptr [ @.str.5, %2173 ], [ @.str.2, %2169 ]
  store i32 %2164, ptr %2163, align 4, !tbaa !5
  %2175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2176 = load i32, ptr @test_count, align 4, !tbaa !5
  %2177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror(i32 noundef %2178, ptr noundef nonnull @.str.4) #12
  %2180 = load i32, ptr %2177, align 4, !tbaa !5
  %2181 = call ptr @s2n_strerror_debug(i32 noundef %2180, ptr noundef nonnull @.str.4) #12
  %2182 = load i32, ptr %2163, align 4, !tbaa !5
  %2183 = call ptr @strerror(i32 noundef %2182) #12
  %2184 = load i32, ptr %2163, align 4, !tbaa !5
  %2185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2175, ptr noundef nonnull %.str.5.sink1408, i32 noundef %2176, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %2179, ptr noundef %2181, ptr noundef %2183, i32 noundef %2184) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader:                                       ; preds = %2689, %.preheader562..preheader_crit_edge
  %.pre-phi = phi ptr [ %.pre, %.preheader562..preheader_crit_edge ], [ %1659, %2689 ]
  %2186 = load i16, ptr @__const.main.verify_data_allow, align 1
  br label %2699

2187:                                             ; preds = %.lr.ph595, %2689
  %.0402594 = phi i64 [ 0, %.lr.ph595 ], [ %2690, %2689 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %20) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %21) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %21, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %22, i8 0, i64 40, i1 false)
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(24) %526, i64 24, i1 false)
  store i16 1, ptr %19, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  %2188 = load ptr, ptr %1656, align 8, !tbaa !28
  %2189 = getelementptr inbounds ptr, ptr %2188, i64 %.0402594
  %2190 = load ptr, ptr %2189, align 8, !tbaa !9
  store ptr %2190, ptr %23, align 8, !tbaa !9
  %2191 = load i8, ptr %2190, align 8
  %2192 = and i8 %2191, 1
  %.not458 = icmp eq i8 %2192, 0
  br i1 %.not458, label %2689, label %2193

2193:                                             ; preds = %2187
  store ptr %23, ptr %1657, align 8, !tbaa !28
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %20, ptr noundef nonnull align 8 dereferenceable(64) %497, i64 64, i1 false)
  store ptr %19, ptr %1658, align 8, !tbaa !22
  store ptr %20, ptr %496, align 8, !tbaa !15
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = add nsw i32 %2194, 1
  store i32 %2195, ptr @test_count, align 4, !tbaa !5
  %2196 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %2197 = icmp eq ptr %2196, null
  br i1 %2197, label %2198, label %2221

2198:                                             ; preds = %2193
  %2199 = tail call ptr @__errno_location() #13
  %2200 = load i32, ptr %2199, align 4, !tbaa !5
  %2201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2202 = call i32 @s2n_print_stacktrace(ptr noundef %2201) #12
  %2203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2204 = trunc nuw i8 %2203 to i1
  br i1 %2204, label %2205, label %2209

2205:                                             ; preds = %2198
  %2206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2207 = call i32 @fileno(ptr noundef %2206) #12
  %2208 = call i32 @isatty(i32 noundef %2207) #12
  %.not478 = icmp eq i32 %2208, 0
  br i1 %.not478, label %2209, label %2210

2209:                                             ; preds = %2205, %2198
  br label %2210

2210:                                             ; preds = %2205, %2209
  %.str.5.sink1419 = phi ptr [ @.str.5, %2209 ], [ @.str.2, %2205 ]
  store i32 %2200, ptr %2199, align 4, !tbaa !5
  %2211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2212 = load i32, ptr @test_count, align 4, !tbaa !5
  %2213 = load i32, ptr %1659, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror(i32 noundef %2213, ptr noundef nonnull @.str.4) #12
  %2215 = load i32, ptr %1659, align 4, !tbaa !5
  %2216 = call ptr @s2n_strerror_debug(i32 noundef %2215, ptr noundef nonnull @.str.4) #12
  %2217 = load i32, ptr %2199, align 4, !tbaa !5
  %2218 = call ptr @strerror(i32 noundef %2217) #12
  %2219 = load i32, ptr %2199, align 4, !tbaa !5
  %2220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2211, ptr noundef nonnull %.str.5.sink1419, i32 noundef %2212, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %2214, ptr noundef %2216, ptr noundef %2218, i32 noundef %2219) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2221:                                             ; preds = %2193
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = add nsw i32 %2222, 1
  store i32 %2223, ptr @test_count, align 4, !tbaa !5
  %2224 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2196, ptr noundef nonnull %235) #12
  %2225 = icmp eq i32 %2224, -1
  br i1 %2225, label %2226, label %2249

2226:                                             ; preds = %2221
  %2227 = tail call ptr @__errno_location() #13
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = call i32 @s2n_print_stacktrace(ptr noundef %2229) #12
  %2231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2232 = trunc nuw i8 %2231 to i1
  br i1 %2232, label %2233, label %2237

2233:                                             ; preds = %2226
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = call i32 @fileno(ptr noundef %2234) #12
  %2236 = call i32 @isatty(i32 noundef %2235) #12
  %.not477 = icmp eq i32 %2236, 0
  br i1 %.not477, label %2237, label %2238

2237:                                             ; preds = %2233, %2226
  br label %2238

2238:                                             ; preds = %2233, %2237
  %.str.5.sink1428 = phi ptr [ @.str.5, %2237 ], [ @.str.2, %2233 ]
  store i32 %2228, ptr %2227, align 4, !tbaa !5
  %2239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = load i32, ptr %1659, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror(i32 noundef %2241, ptr noundef nonnull @.str.4) #12
  %2243 = load i32, ptr %1659, align 4, !tbaa !5
  %2244 = call ptr @s2n_strerror_debug(i32 noundef %2243, ptr noundef nonnull @.str.4) #12
  %2245 = load i32, ptr %2227, align 4, !tbaa !5
  %2246 = call ptr @strerror(i32 noundef %2245) #12
  %2247 = load i32, ptr %2227, align 4, !tbaa !5
  %2248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2239, ptr noundef nonnull %.str.5.sink1428, i32 noundef %2240, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %2242, ptr noundef %2244, ptr noundef %2246, i32 noundef %2247) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2249:                                             ; preds = %2221
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = add nsw i32 %2250, 1
  store i32 %2251, ptr @test_count, align 4, !tbaa !5
  %2252 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %2253 = icmp eq ptr %2252, null
  br i1 %2253, label %2254, label %2277

2254:                                             ; preds = %2249
  %2255 = tail call ptr @__errno_location() #13
  %2256 = load i32, ptr %2255, align 4, !tbaa !5
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = call i32 @s2n_print_stacktrace(ptr noundef %2257) #12
  %2259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2260 = trunc nuw i8 %2259 to i1
  br i1 %2260, label %2261, label %2265

2261:                                             ; preds = %2254
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = call i32 @fileno(ptr noundef %2262) #12
  %2264 = call i32 @isatty(i32 noundef %2263) #12
  %.not476 = icmp eq i32 %2264, 0
  br i1 %.not476, label %2265, label %2266

2265:                                             ; preds = %2261, %2254
  br label %2266

2266:                                             ; preds = %2261, %2265
  %.str.5.sink1437 = phi ptr [ @.str.5, %2265 ], [ @.str.2, %2261 ]
  store i32 %2256, ptr %2255, align 4, !tbaa !5
  %2267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %2269 = load i32, ptr %1659, align 4, !tbaa !5
  %2270 = call ptr @s2n_strerror(i32 noundef %2269, ptr noundef nonnull @.str.4) #12
  %2271 = load i32, ptr %1659, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror_debug(i32 noundef %2271, ptr noundef nonnull @.str.4) #12
  %2273 = load i32, ptr %2255, align 4, !tbaa !5
  %2274 = call ptr @strerror(i32 noundef %2273) #12
  %2275 = load i32, ptr %2255, align 4, !tbaa !5
  %2276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2267, ptr noundef nonnull %.str.5.sink1437, i32 noundef %2268, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %2270, ptr noundef %2272, ptr noundef %2274, i32 noundef %2275) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2277:                                             ; preds = %2249
  %2278 = load i32, ptr @test_count, align 4, !tbaa !5
  %2279 = add nsw i32 %2278, 1
  store i32 %2279, ptr @test_count, align 4, !tbaa !5
  %2280 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2252, ptr noundef nonnull %235) #12
  %2281 = icmp eq i32 %2280, -1
  br i1 %2281, label %2282, label %2305

2282:                                             ; preds = %2277
  %2283 = tail call ptr @__errno_location() #13
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @s2n_print_stacktrace(ptr noundef %2285) #12
  %2287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2288 = trunc nuw i8 %2287 to i1
  br i1 %2288, label %2289, label %2293

2289:                                             ; preds = %2282
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = call i32 @fileno(ptr noundef %2290) #12
  %2292 = call i32 @isatty(i32 noundef %2291) #12
  %.not475 = icmp eq i32 %2292, 0
  br i1 %.not475, label %2293, label %2294

2293:                                             ; preds = %2289, %2282
  br label %2294

2294:                                             ; preds = %2289, %2293
  %.str.5.sink1446 = phi ptr [ @.str.5, %2293 ], [ @.str.2, %2289 ]
  store i32 %2284, ptr %2283, align 4, !tbaa !5
  %2295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2296 = load i32, ptr @test_count, align 4, !tbaa !5
  %2297 = load i32, ptr %1659, align 4, !tbaa !5
  %2298 = call ptr @s2n_strerror(i32 noundef %2297, ptr noundef nonnull @.str.4) #12
  %2299 = load i32, ptr %1659, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror_debug(i32 noundef %2299, ptr noundef nonnull @.str.4) #12
  %2301 = load i32, ptr %2283, align 4, !tbaa !5
  %2302 = call ptr @strerror(i32 noundef %2301) #12
  %2303 = load i32, ptr %2283, align 4, !tbaa !5
  %2304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2295, ptr noundef nonnull %.str.5.sink1446, i32 noundef %2296, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %2298, ptr noundef %2300, ptr noundef %2302, i32 noundef %2303) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2305:                                             ; preds = %2277
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %2307 = add nsw i32 %2306, 1
  store i32 %2307, ptr @test_count, align 4, !tbaa !5
  %2308 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %2196, i32 noundef 1) #12
  %2309 = icmp eq i32 %2308, -1
  br i1 %2309, label %2310, label %2333

2310:                                             ; preds = %2305
  %2311 = tail call ptr @__errno_location() #13
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = call i32 @s2n_print_stacktrace(ptr noundef %2313) #12
  %2315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2316 = trunc nuw i8 %2315 to i1
  br i1 %2316, label %2317, label %2321

2317:                                             ; preds = %2310
  %2318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2319 = call i32 @fileno(ptr noundef %2318) #12
  %2320 = call i32 @isatty(i32 noundef %2319) #12
  %.not474 = icmp eq i32 %2320, 0
  br i1 %.not474, label %2321, label %2322

2321:                                             ; preds = %2317, %2310
  br label %2322

2322:                                             ; preds = %2317, %2321
  %.str.5.sink1455 = phi ptr [ @.str.5, %2321 ], [ @.str.2, %2317 ]
  store i32 %2312, ptr %2311, align 4, !tbaa !5
  %2323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2324 = load i32, ptr @test_count, align 4, !tbaa !5
  %2325 = load i32, ptr %1659, align 4, !tbaa !5
  %2326 = call ptr @s2n_strerror(i32 noundef %2325, ptr noundef nonnull @.str.4) #12
  %2327 = load i32, ptr %1659, align 4, !tbaa !5
  %2328 = call ptr @s2n_strerror_debug(i32 noundef %2327, ptr noundef nonnull @.str.4) #12
  %2329 = load i32, ptr %2311, align 4, !tbaa !5
  %2330 = call ptr @strerror(i32 noundef %2329) #12
  %2331 = load i32, ptr %2311, align 4, !tbaa !5
  %2332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2323, ptr noundef nonnull %.str.5.sink1455, i32 noundef %2324, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 289, ptr noundef %2326, ptr noundef %2328, ptr noundef %2330, i32 noundef %2331) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2333:                                             ; preds = %2305
  %2334 = load i32, ptr @test_count, align 4, !tbaa !5
  %2335 = add nsw i32 %2334, 1
  store i32 %2335, ptr @test_count, align 4, !tbaa !5
  %2336 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %21, i32 noundef 0) #12
  %2337 = icmp eq i32 %2336, -1
  br i1 %2337, label %2338, label %2361

2338:                                             ; preds = %2333
  %2339 = tail call ptr @__errno_location() #13
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = call i32 @s2n_print_stacktrace(ptr noundef %2341) #12
  %2343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2344 = trunc nuw i8 %2343 to i1
  br i1 %2344, label %2345, label %2349

2345:                                             ; preds = %2338
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = call i32 @fileno(ptr noundef %2346) #12
  %2348 = call i32 @isatty(i32 noundef %2347) #12
  %.not473 = icmp eq i32 %2348, 0
  br i1 %.not473, label %2349, label %2350

2349:                                             ; preds = %2345, %2338
  br label %2350

2350:                                             ; preds = %2345, %2349
  %.str.5.sink1464 = phi ptr [ @.str.5, %2349 ], [ @.str.2, %2345 ]
  store i32 %2340, ptr %2339, align 4, !tbaa !5
  %2351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2352 = load i32, ptr @test_count, align 4, !tbaa !5
  %2353 = load i32, ptr %1659, align 4, !tbaa !5
  %2354 = call ptr @s2n_strerror(i32 noundef %2353, ptr noundef nonnull @.str.4) #12
  %2355 = load i32, ptr %1659, align 4, !tbaa !5
  %2356 = call ptr @s2n_strerror_debug(i32 noundef %2355, ptr noundef nonnull @.str.4) #12
  %2357 = load i32, ptr %2339, align 4, !tbaa !5
  %2358 = call ptr @strerror(i32 noundef %2357) #12
  %2359 = load i32, ptr %2339, align 4, !tbaa !5
  %2360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2351, ptr noundef nonnull %.str.5.sink1464, i32 noundef %2352, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2354, ptr noundef %2356, ptr noundef %2358, i32 noundef %2359) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2361:                                             ; preds = %2333
  %2362 = load i32, ptr @test_count, align 4, !tbaa !5
  %2363 = add nsw i32 %2362, 1
  store i32 %2363, ptr @test_count, align 4, !tbaa !5
  %2364 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %22, i32 noundef 0) #12
  %2365 = icmp eq i32 %2364, -1
  br i1 %2365, label %2366, label %2389

2366:                                             ; preds = %2361
  %2367 = tail call ptr @__errno_location() #13
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  %2369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2370 = call i32 @s2n_print_stacktrace(ptr noundef %2369) #12
  %2371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2372 = trunc nuw i8 %2371 to i1
  br i1 %2372, label %2373, label %2377

2373:                                             ; preds = %2366
  %2374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2375 = call i32 @fileno(ptr noundef %2374) #12
  %2376 = call i32 @isatty(i32 noundef %2375) #12
  %.not472 = icmp eq i32 %2376, 0
  br i1 %.not472, label %2377, label %2378

2377:                                             ; preds = %2373, %2366
  br label %2378

2378:                                             ; preds = %2373, %2377
  %.str.5.sink1473 = phi ptr [ @.str.5, %2377 ], [ @.str.2, %2373 ]
  store i32 %2368, ptr %2367, align 4, !tbaa !5
  %2379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2380 = load i32, ptr @test_count, align 4, !tbaa !5
  %2381 = load i32, ptr %1659, align 4, !tbaa !5
  %2382 = call ptr @s2n_strerror(i32 noundef %2381, ptr noundef nonnull @.str.4) #12
  %2383 = load i32, ptr %1659, align 4, !tbaa !5
  %2384 = call ptr @s2n_strerror_debug(i32 noundef %2383, ptr noundef nonnull @.str.4) #12
  %2385 = load i32, ptr %2367, align 4, !tbaa !5
  %2386 = call ptr @strerror(i32 noundef %2385) #12
  %2387 = load i32, ptr %2367, align 4, !tbaa !5
  %2388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2379, ptr noundef nonnull %.str.5.sink1473, i32 noundef %2380, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2382, ptr noundef %2384, ptr noundef %2386, i32 noundef %2387) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2389:                                             ; preds = %2361
  %2390 = load i32, ptr @test_count, align 4, !tbaa !5
  %2391 = add nsw i32 %2390, 1
  store i32 %2391, ptr @test_count, align 4, !tbaa !5
  %2392 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %22, ptr noundef nonnull %21, ptr noundef nonnull %2252) #12
  %2393 = icmp eq i32 %2392, -1
  br i1 %2393, label %2394, label %2417

2394:                                             ; preds = %2389
  %2395 = tail call ptr @__errno_location() #13
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = call i32 @s2n_print_stacktrace(ptr noundef %2397) #12
  %2399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2400 = trunc nuw i8 %2399 to i1
  br i1 %2400, label %2401, label %2405

2401:                                             ; preds = %2394
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = call i32 @fileno(ptr noundef %2402) #12
  %2404 = call i32 @isatty(i32 noundef %2403) #12
  %.not471 = icmp eq i32 %2404, 0
  br i1 %.not471, label %2405, label %2406

2405:                                             ; preds = %2401, %2394
  br label %2406

2406:                                             ; preds = %2401, %2405
  %.str.5.sink1482 = phi ptr [ @.str.5, %2405 ], [ @.str.2, %2401 ]
  store i32 %2396, ptr %2395, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = load i32, ptr %1659, align 4, !tbaa !5
  %2410 = call ptr @s2n_strerror(i32 noundef %2409, ptr noundef nonnull @.str.4) #12
  %2411 = load i32, ptr %1659, align 4, !tbaa !5
  %2412 = call ptr @s2n_strerror_debug(i32 noundef %2411, ptr noundef nonnull @.str.4) #12
  %2413 = load i32, ptr %2395, align 4, !tbaa !5
  %2414 = call ptr @strerror(i32 noundef %2413) #12
  %2415 = load i32, ptr %2395, align 4, !tbaa !5
  %2416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2407, ptr noundef nonnull %.str.5.sink1482, i32 noundef %2408, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %2410, ptr noundef %2412, ptr noundef %2414, i32 noundef %2415) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2417:                                             ; preds = %2389
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = add nsw i32 %2418, 1
  store i32 %2419, ptr @test_count, align 4, !tbaa !5
  %2420 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %2196) #12
  %2421 = icmp eq i32 %2420, -1
  br i1 %2421, label %2422, label %2445

2422:                                             ; preds = %2417
  %2423 = tail call ptr @__errno_location() #13
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2426 = call i32 @s2n_print_stacktrace(ptr noundef %2425) #12
  %2427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2428 = trunc nuw i8 %2427 to i1
  br i1 %2428, label %2429, label %2433

2429:                                             ; preds = %2422
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = call i32 @fileno(ptr noundef %2430) #12
  %2432 = call i32 @isatty(i32 noundef %2431) #12
  %.not470 = icmp eq i32 %2432, 0
  br i1 %.not470, label %2433, label %2434

2433:                                             ; preds = %2429, %2422
  br label %2434

2434:                                             ; preds = %2429, %2433
  %.str.5.sink1491 = phi ptr [ @.str.5, %2433 ], [ @.str.2, %2429 ]
  store i32 %2424, ptr %2423, align 4, !tbaa !5
  %2435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2436 = load i32, ptr @test_count, align 4, !tbaa !5
  %2437 = load i32, ptr %1659, align 4, !tbaa !5
  %2438 = call ptr @s2n_strerror(i32 noundef %2437, ptr noundef nonnull @.str.4) #12
  %2439 = load i32, ptr %1659, align 4, !tbaa !5
  %2440 = call ptr @s2n_strerror_debug(i32 noundef %2439, ptr noundef nonnull @.str.4) #12
  %2441 = load i32, ptr %2423, align 4, !tbaa !5
  %2442 = call ptr @strerror(i32 noundef %2441) #12
  %2443 = load i32, ptr %2423, align 4, !tbaa !5
  %2444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2435, ptr noundef nonnull %.str.5.sink1491, i32 noundef %2436, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %2438, ptr noundef %2440, ptr noundef %2442, i32 noundef %2443) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2445:                                             ; preds = %2417
  %2446 = load i32, ptr @test_count, align 4, !tbaa !5
  %2447 = add nsw i32 %2446, 1
  store i32 %2447, ptr @test_count, align 4, !tbaa !5
  %2448 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %2196, ptr noundef nonnull %2252) #12
  %2449 = icmp eq i32 %2448, -1
  br i1 %2449, label %2473, label %2450

2450:                                             ; preds = %2445
  %2451 = tail call ptr @__errno_location() #13
  %2452 = load i32, ptr %2451, align 4, !tbaa !5
  %2453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2454 = call i32 @s2n_print_stacktrace(ptr noundef %2453) #12
  %2455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2456 = trunc nuw i8 %2455 to i1
  br i1 %2456, label %2457, label %2461

2457:                                             ; preds = %2450
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = call i32 @fileno(ptr noundef %2458) #12
  %2460 = call i32 @isatty(i32 noundef %2459) #12
  %.not459 = icmp eq i32 %2460, 0
  br i1 %.not459, label %2461, label %2462

2461:                                             ; preds = %2457, %2450
  br label %2462

2462:                                             ; preds = %2457, %2461
  %.str.5.sink1500 = phi ptr [ @.str.5, %2461 ], [ @.str.2, %2457 ]
  store i32 %2452, ptr %2451, align 4, !tbaa !5
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = load i32, ptr @test_count, align 4, !tbaa !5
  %2465 = load i32, ptr %1659, align 4, !tbaa !5
  %2466 = call ptr @s2n_strerror(i32 noundef %2465, ptr noundef nonnull @.str.4) #12
  %2467 = load i32, ptr %1659, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror_debug(i32 noundef %2467, ptr noundef nonnull @.str.4) #12
  %2469 = load i32, ptr %2451, align 4, !tbaa !5
  %2470 = call ptr @strerror(i32 noundef %2469) #12
  %2471 = load i32, ptr %2451, align 4, !tbaa !5
  %2472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2463, ptr noundef nonnull %.str.5.sink1500, i32 noundef %2464, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %2466, ptr noundef %2468, ptr noundef %2470, i32 noundef %2471) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2473:                                             ; preds = %2445
  %2474 = load i32, ptr @test_count, align 4, !tbaa !5
  %2475 = add nsw i32 %2474, 1
  store i32 %2475, ptr @test_count, align 4, !tbaa !5
  %2476 = load i32, ptr %1659, align 4, !tbaa !5
  %2477 = icmp eq i32 %2476, 0
  br i1 %2477, label %2478, label %2501

2478:                                             ; preds = %2473
  %2479 = tail call ptr @__errno_location() #13
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2482 = call i32 @s2n_print_stacktrace(ptr noundef %2481) #12
  %2483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2484 = trunc nuw i8 %2483 to i1
  br i1 %2484, label %2485, label %2489

2485:                                             ; preds = %2478
  %2486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2487 = call i32 @fileno(ptr noundef %2486) #12
  %2488 = call i32 @isatty(i32 noundef %2487) #12
  %.not469 = icmp eq i32 %2488, 0
  br i1 %.not469, label %2489, label %2490

2489:                                             ; preds = %2485, %2478
  br label %2490

2490:                                             ; preds = %2485, %2489
  %.str.5.sink1509 = phi ptr [ @.str.5, %2489 ], [ @.str.2, %2485 ]
  store i32 %2480, ptr %2479, align 4, !tbaa !5
  %2491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = load i32, ptr %1659, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror(i32 noundef %2493, ptr noundef nonnull @.str.4) #12
  %2495 = load i32, ptr %1659, align 4, !tbaa !5
  %2496 = call ptr @s2n_strerror_debug(i32 noundef %2495, ptr noundef nonnull @.str.4) #12
  %2497 = load i32, ptr %2479, align 4, !tbaa !5
  %2498 = call ptr @strerror(i32 noundef %2497) #12
  %2499 = load i32, ptr %2479, align 4, !tbaa !5
  %2500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2491, ptr noundef nonnull %.str.5.sink1509, i32 noundef %2492, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %2494, ptr noundef %2496, ptr noundef %2498, i32 noundef %2499) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2501:                                             ; preds = %2473
  %2502 = add nsw i32 %2474, 2
  store i32 %2502, ptr @test_count, align 4, !tbaa !5
  %2503 = call ptr @s2n_strerror_debug(i32 noundef %2476, ptr noundef nonnull @.str.4) #12
  %2504 = icmp eq ptr %2503, null
  br i1 %2504, label %2505, label %2528

2505:                                             ; preds = %2501
  %2506 = tail call ptr @__errno_location() #13
  %2507 = load i32, ptr %2506, align 4, !tbaa !5
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = call i32 @s2n_print_stacktrace(ptr noundef %2508) #12
  %2510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2511 = trunc nuw i8 %2510 to i1
  br i1 %2511, label %2512, label %2516

2512:                                             ; preds = %2505
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = call i32 @fileno(ptr noundef %2513) #12
  %2515 = call i32 @isatty(i32 noundef %2514) #12
  %.not468 = icmp eq i32 %2515, 0
  br i1 %.not468, label %2516, label %2517

2516:                                             ; preds = %2512, %2505
  br label %2517

2517:                                             ; preds = %2512, %2516
  %.str.5.sink1518 = phi ptr [ @.str.5, %2516 ], [ @.str.2, %2512 ]
  store i32 %2507, ptr %2506, align 4, !tbaa !5
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = load i32, ptr @test_count, align 4, !tbaa !5
  %2520 = load i32, ptr %1659, align 4, !tbaa !5
  %2521 = call ptr @s2n_strerror(i32 noundef %2520, ptr noundef nonnull @.str.4) #12
  %2522 = load i32, ptr %1659, align 4, !tbaa !5
  %2523 = call ptr @s2n_strerror_debug(i32 noundef %2522, ptr noundef nonnull @.str.4) #12
  %2524 = load i32, ptr %2506, align 4, !tbaa !5
  %2525 = call ptr @strerror(i32 noundef %2524) #12
  %2526 = load i32, ptr %2506, align 4, !tbaa !5
  %2527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2518, ptr noundef nonnull %.str.5.sink1518, i32 noundef %2519, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %2521, ptr noundef %2523, ptr noundef %2525, i32 noundef %2526) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2528:                                             ; preds = %2501
  store i32 0, ptr %1659, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %2529 = tail call ptr @__errno_location() #13
  store i32 0, ptr %2529, align 4, !tbaa !5
  %2530 = load i32, ptr @test_count, align 4, !tbaa !5
  %2531 = add nsw i32 %2530, 1
  store i32 %2531, ptr @test_count, align 4, !tbaa !5
  %2532 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %2196) #12
  %.not460 = icmp eq i32 %2532, 0
  br i1 %.not460, label %2555, label %2533

2533:                                             ; preds = %2528
  %2534 = load i32, ptr %2529, align 4, !tbaa !5
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = call i32 @s2n_print_stacktrace(ptr noundef %2535) #12
  %2537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2538 = trunc nuw i8 %2537 to i1
  br i1 %2538, label %2539, label %2543

2539:                                             ; preds = %2533
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = call i32 @fileno(ptr noundef %2540) #12
  %2542 = call i32 @isatty(i32 noundef %2541) #12
  %.not467 = icmp eq i32 %2542, 0
  br i1 %.not467, label %2543, label %2544

2543:                                             ; preds = %2539, %2533
  br label %2544

2544:                                             ; preds = %2539, %2543
  %.str.5.sink1527 = phi ptr [ @.str.5, %2543 ], [ @.str.2, %2539 ]
  store i32 %2534, ptr %2529, align 4, !tbaa !5
  %2545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2546 = load i32, ptr @test_count, align 4, !tbaa !5
  %2547 = load i32, ptr %1659, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror(i32 noundef %2547, ptr noundef nonnull @.str.4) #12
  %2549 = load i32, ptr %1659, align 4, !tbaa !5
  %2550 = call ptr @s2n_strerror_debug(i32 noundef %2549, ptr noundef nonnull @.str.4) #12
  %2551 = load i32, ptr %2529, align 4, !tbaa !5
  %2552 = call ptr @strerror(i32 noundef %2551) #12
  %2553 = load i32, ptr %2529, align 4, !tbaa !5
  %2554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2545, ptr noundef nonnull %.str.5.sink1527, i32 noundef %2546, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %2548, ptr noundef %2550, ptr noundef %2552, i32 noundef %2553) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2555:                                             ; preds = %2528
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = add nsw i32 %2556, 1
  store i32 %2557, ptr @test_count, align 4, !tbaa !5
  %2558 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %2252) #12
  %.not461 = icmp eq i32 %2558, 0
  br i1 %.not461, label %2581, label %2559

2559:                                             ; preds = %2555
  %2560 = load i32, ptr %2529, align 4, !tbaa !5
  %2561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2562 = call i32 @s2n_print_stacktrace(ptr noundef %2561) #12
  %2563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2564 = trunc nuw i8 %2563 to i1
  br i1 %2564, label %2565, label %2569

2565:                                             ; preds = %2559
  %2566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2567 = call i32 @fileno(ptr noundef %2566) #12
  %2568 = call i32 @isatty(i32 noundef %2567) #12
  %.not466 = icmp eq i32 %2568, 0
  br i1 %.not466, label %2569, label %2570

2569:                                             ; preds = %2565, %2559
  br label %2570

2570:                                             ; preds = %2565, %2569
  %.str.5.sink1536 = phi ptr [ @.str.5, %2569 ], [ @.str.2, %2565 ]
  store i32 %2560, ptr %2529, align 4, !tbaa !5
  %2571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2572 = load i32, ptr @test_count, align 4, !tbaa !5
  %2573 = load i32, ptr %1659, align 4, !tbaa !5
  %2574 = call ptr @s2n_strerror(i32 noundef %2573, ptr noundef nonnull @.str.4) #12
  %2575 = load i32, ptr %1659, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror_debug(i32 noundef %2575, ptr noundef nonnull @.str.4) #12
  %2577 = load i32, ptr %2529, align 4, !tbaa !5
  %2578 = call ptr @strerror(i32 noundef %2577) #12
  %2579 = load i32, ptr %2529, align 4, !tbaa !5
  %2580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2571, ptr noundef nonnull %.str.5.sink1536, i32 noundef %2572, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %2574, ptr noundef %2576, ptr noundef %2578, i32 noundef %2579) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2581:                                             ; preds = %2555
  %2582 = load i32, ptr @test_count, align 4, !tbaa !5
  %2583 = add nsw i32 %2582, 1
  store i32 %2583, ptr @test_count, align 4, !tbaa !5
  %2584 = call i32 @s2n_connection_free(ptr noundef nonnull %2252) #12
  %2585 = icmp eq i32 %2584, -1
  br i1 %2585, label %2586, label %2608

2586:                                             ; preds = %2581
  %2587 = load i32, ptr %2529, align 4, !tbaa !5
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @s2n_print_stacktrace(ptr noundef %2588) #12
  %2590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2591 = trunc nuw i8 %2590 to i1
  br i1 %2591, label %2592, label %2596

2592:                                             ; preds = %2586
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = call i32 @fileno(ptr noundef %2593) #12
  %2595 = call i32 @isatty(i32 noundef %2594) #12
  %.not465 = icmp eq i32 %2595, 0
  br i1 %.not465, label %2596, label %2597

2596:                                             ; preds = %2592, %2586
  br label %2597

2597:                                             ; preds = %2592, %2596
  %.str.5.sink1545 = phi ptr [ @.str.5, %2596 ], [ @.str.2, %2592 ]
  store i32 %2587, ptr %2529, align 4, !tbaa !5
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = load i32, ptr @test_count, align 4, !tbaa !5
  %2600 = load i32, ptr %1659, align 4, !tbaa !5
  %2601 = call ptr @s2n_strerror(i32 noundef %2600, ptr noundef nonnull @.str.4) #12
  %2602 = load i32, ptr %1659, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror_debug(i32 noundef %2602, ptr noundef nonnull @.str.4) #12
  %2604 = load i32, ptr %2529, align 4, !tbaa !5
  %2605 = call ptr @strerror(i32 noundef %2604) #12
  %2606 = load i32, ptr %2529, align 4, !tbaa !5
  %2607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2598, ptr noundef nonnull %.str.5.sink1545, i32 noundef %2599, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2601, ptr noundef %2603, ptr noundef %2605, i32 noundef %2606) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2608:                                             ; preds = %2581
  %2609 = load i32, ptr @test_count, align 4, !tbaa !5
  %2610 = add nsw i32 %2609, 1
  store i32 %2610, ptr @test_count, align 4, !tbaa !5
  %2611 = call i32 @s2n_connection_free(ptr noundef nonnull %2196) #12
  %2612 = icmp eq i32 %2611, -1
  br i1 %2612, label %2613, label %2635

2613:                                             ; preds = %2608
  %2614 = load i32, ptr %2529, align 4, !tbaa !5
  %2615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2616 = call i32 @s2n_print_stacktrace(ptr noundef %2615) #12
  %2617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2618 = trunc nuw i8 %2617 to i1
  br i1 %2618, label %2619, label %2623

2619:                                             ; preds = %2613
  %2620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2621 = call i32 @fileno(ptr noundef %2620) #12
  %2622 = call i32 @isatty(i32 noundef %2621) #12
  %.not464 = icmp eq i32 %2622, 0
  br i1 %.not464, label %2623, label %2624

2623:                                             ; preds = %2619, %2613
  br label %2624

2624:                                             ; preds = %2619, %2623
  %.str.5.sink1554 = phi ptr [ @.str.5, %2623 ], [ @.str.2, %2619 ]
  store i32 %2614, ptr %2529, align 4, !tbaa !5
  %2625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2626 = load i32, ptr @test_count, align 4, !tbaa !5
  %2627 = load i32, ptr %1659, align 4, !tbaa !5
  %2628 = call ptr @s2n_strerror(i32 noundef %2627, ptr noundef nonnull @.str.4) #12
  %2629 = load i32, ptr %1659, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror_debug(i32 noundef %2629, ptr noundef nonnull @.str.4) #12
  %2631 = load i32, ptr %2529, align 4, !tbaa !5
  %2632 = call ptr @strerror(i32 noundef %2631) #12
  %2633 = load i32, ptr %2529, align 4, !tbaa !5
  %2634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2625, ptr noundef nonnull %.str.5.sink1554, i32 noundef %2626, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %2628, ptr noundef %2630, ptr noundef %2632, i32 noundef %2633) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2635:                                             ; preds = %2608
  %2636 = load i32, ptr @test_count, align 4, !tbaa !5
  %2637 = add nsw i32 %2636, 1
  store i32 %2637, ptr @test_count, align 4, !tbaa !5
  %2638 = call i32 @s2n_stuffer_free(ptr noundef nonnull %22) #12
  %2639 = icmp eq i32 %2638, -1
  br i1 %2639, label %2640, label %2662

2640:                                             ; preds = %2635
  %2641 = load i32, ptr %2529, align 4, !tbaa !5
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = call i32 @s2n_print_stacktrace(ptr noundef %2642) #12
  %2644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2645 = trunc nuw i8 %2644 to i1
  br i1 %2645, label %2646, label %2650

2646:                                             ; preds = %2640
  %2647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2648 = call i32 @fileno(ptr noundef %2647) #12
  %2649 = call i32 @isatty(i32 noundef %2648) #12
  %.not463 = icmp eq i32 %2649, 0
  br i1 %.not463, label %2650, label %2651

2650:                                             ; preds = %2646, %2640
  br label %2651

2651:                                             ; preds = %2646, %2650
  %.str.5.sink1563 = phi ptr [ @.str.5, %2650 ], [ @.str.2, %2646 ]
  store i32 %2641, ptr %2529, align 4, !tbaa !5
  %2652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2653 = load i32, ptr @test_count, align 4, !tbaa !5
  %2654 = load i32, ptr %1659, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror(i32 noundef %2654, ptr noundef nonnull @.str.4) #12
  %2656 = load i32, ptr %1659, align 4, !tbaa !5
  %2657 = call ptr @s2n_strerror_debug(i32 noundef %2656, ptr noundef nonnull @.str.4) #12
  %2658 = load i32, ptr %2529, align 4, !tbaa !5
  %2659 = call ptr @strerror(i32 noundef %2658) #12
  %2660 = load i32, ptr %2529, align 4, !tbaa !5
  %2661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2652, ptr noundef nonnull %.str.5.sink1563, i32 noundef %2653, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2655, ptr noundef %2657, ptr noundef %2659, i32 noundef %2660) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2662:                                             ; preds = %2635
  %2663 = load i32, ptr @test_count, align 4, !tbaa !5
  %2664 = add nsw i32 %2663, 1
  store i32 %2664, ptr @test_count, align 4, !tbaa !5
  %2665 = call i32 @s2n_stuffer_free(ptr noundef nonnull %21) #12
  %2666 = icmp eq i32 %2665, -1
  br i1 %2666, label %2667, label %2689

2667:                                             ; preds = %2662
  %2668 = load i32, ptr %2529, align 4, !tbaa !5
  %2669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2670 = call i32 @s2n_print_stacktrace(ptr noundef %2669) #12
  %2671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2672 = trunc nuw i8 %2671 to i1
  br i1 %2672, label %2673, label %2677

2673:                                             ; preds = %2667
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = call i32 @fileno(ptr noundef %2674) #12
  %2676 = call i32 @isatty(i32 noundef %2675) #12
  %.not462 = icmp eq i32 %2676, 0
  br i1 %.not462, label %2677, label %2678

2677:                                             ; preds = %2673, %2667
  br label %2678

2678:                                             ; preds = %2673, %2677
  %.str.5.sink1572 = phi ptr [ @.str.5, %2677 ], [ @.str.2, %2673 ]
  store i32 %2668, ptr %2529, align 4, !tbaa !5
  %2679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2680 = load i32, ptr @test_count, align 4, !tbaa !5
  %2681 = load i32, ptr %1659, align 4, !tbaa !5
  %2682 = call ptr @s2n_strerror(i32 noundef %2681, ptr noundef nonnull @.str.4) #12
  %2683 = load i32, ptr %1659, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror_debug(i32 noundef %2683, ptr noundef nonnull @.str.4) #12
  %2685 = load i32, ptr %2529, align 4, !tbaa !5
  %2686 = call ptr @strerror(i32 noundef %2685) #12
  %2687 = load i32, ptr %2529, align 4, !tbaa !5
  %2688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2679, ptr noundef nonnull %.str.5.sink1572, i32 noundef %2680, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %2682, ptr noundef %2684, ptr noundef %2686, i32 noundef %2687) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2689:                                             ; preds = %2662, %2187
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #12
  %2690 = add nuw nsw i64 %.0402594, 1
  %2691 = load i16, ptr %526, align 8, !tbaa !24
  %2692 = zext i16 %2691 to i64
  %2693 = icmp ult i64 %2690, %2692
  br i1 %2693, label %2187, label %.preheader, !llvm.loop !33

2694:                                             ; preds = %3551
  %2695 = load i32, ptr @test_count, align 4, !tbaa !5
  %2696 = add nsw i32 %2695, 1
  store i32 %2696, ptr @test_count, align 4, !tbaa !5
  %2697 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %380) #12
  %2698 = icmp eq i32 %2697, -1
  br i1 %2698, label %3558, label %3580

2699:                                             ; preds = %.preheader, %3551
  %.0403596 = phi i32 [ 0, %.preheader ], [ %3557, %3551 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %2700 = call ptr @s2n_config_new() #12
  store ptr %2700, ptr %24, align 8, !tbaa !9
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = add nsw i32 %2701, 1
  store i32 %2702, ptr @test_count, align 4, !tbaa !5
  %2703 = icmp eq ptr %2700, null
  br i1 %2703, label %2704, label %2727

2704:                                             ; preds = %2699
  %2705 = tail call ptr @__errno_location() #13
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = call i32 @s2n_print_stacktrace(ptr noundef %2707) #12
  %2709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2710 = trunc nuw i8 %2709 to i1
  br i1 %2710, label %2711, label %2715

2711:                                             ; preds = %2704
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = call i32 @fileno(ptr noundef %2712) #12
  %2714 = call i32 @isatty(i32 noundef %2713) #12
  %.not457 = icmp eq i32 %2714, 0
  br i1 %.not457, label %2715, label %2716

2715:                                             ; preds = %2711, %2704
  br label %2716

2716:                                             ; preds = %2711, %2715
  %.str.5.sink1581 = phi ptr [ @.str.5, %2715 ], [ @.str.2, %2711 ]
  store i32 %2706, ptr %2705, align 4, !tbaa !5
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = load i32, ptr @test_count, align 4, !tbaa !5
  %2719 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2720 = call ptr @s2n_strerror(i32 noundef %2719, ptr noundef nonnull @.str.4) #12
  %2721 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2722 = call ptr @s2n_strerror_debug(i32 noundef %2721, ptr noundef nonnull @.str.4) #12
  %2723 = load i32, ptr %2705, align 4, !tbaa !5
  %2724 = call ptr @strerror(i32 noundef %2723) #12
  %2725 = load i32, ptr %2705, align 4, !tbaa !5
  %2726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2717, ptr noundef nonnull %.str.5.sink1581, i32 noundef %2718, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %2720, ptr noundef %2722, ptr noundef %2724, i32 noundef %2725) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2727:                                             ; preds = %2699
  %2728 = add nsw i32 %2701, 2
  store i32 %2728, ptr @test_count, align 4, !tbaa !5
  %2729 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2700, ptr noundef nonnull @.str.57) #12
  %2730 = icmp eq i32 %2729, -1
  br i1 %2730, label %2731, label %2754

2731:                                             ; preds = %2727
  %2732 = tail call ptr @__errno_location() #13
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = call i32 @s2n_print_stacktrace(ptr noundef %2734) #12
  %2736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2737 = trunc nuw i8 %2736 to i1
  br i1 %2737, label %2738, label %2742

2738:                                             ; preds = %2731
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = call i32 @fileno(ptr noundef %2739) #12
  %2741 = call i32 @isatty(i32 noundef %2740) #12
  %.not456 = icmp eq i32 %2741, 0
  br i1 %.not456, label %2742, label %2743

2742:                                             ; preds = %2738, %2731
  br label %2743

2743:                                             ; preds = %2738, %2742
  %.str.5.sink1590 = phi ptr [ @.str.5, %2742 ], [ @.str.2, %2738 ]
  store i32 %2733, ptr %2732, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = load i32, ptr @test_count, align 4, !tbaa !5
  %2746 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2747 = call ptr @s2n_strerror(i32 noundef %2746, ptr noundef nonnull @.str.4) #12
  %2748 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror_debug(i32 noundef %2748, ptr noundef nonnull @.str.4) #12
  %2750 = load i32, ptr %2732, align 4, !tbaa !5
  %2751 = call ptr @strerror(i32 noundef %2750) #12
  %2752 = load i32, ptr %2732, align 4, !tbaa !5
  %2753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2744, ptr noundef nonnull %.str.5.sink1590, i32 noundef %2745, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2747, ptr noundef %2749, ptr noundef %2751, i32 noundef %2752) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2754:                                             ; preds = %2727
  %2755 = load i32, ptr @test_count, align 4, !tbaa !5
  %2756 = add nsw i32 %2755, 1
  store i32 %2756, ptr @test_count, align 4, !tbaa !5
  %2757 = load ptr, ptr %24, align 8, !tbaa !9
  %2758 = call i32 @s2n_config_set_client_auth_type(ptr noundef %2757, i32 noundef 2) #12
  %2759 = icmp eq i32 %2758, -1
  br i1 %2759, label %2760, label %2783

2760:                                             ; preds = %2754
  %2761 = tail call ptr @__errno_location() #13
  %2762 = load i32, ptr %2761, align 4, !tbaa !5
  %2763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2764 = call i32 @s2n_print_stacktrace(ptr noundef %2763) #12
  %2765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2766 = trunc nuw i8 %2765 to i1
  br i1 %2766, label %2767, label %2771

2767:                                             ; preds = %2760
  %2768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2769 = call i32 @fileno(ptr noundef %2768) #12
  %2770 = call i32 @isatty(i32 noundef %2769) #12
  %.not455 = icmp eq i32 %2770, 0
  br i1 %.not455, label %2771, label %2772

2771:                                             ; preds = %2767, %2760
  br label %2772

2772:                                             ; preds = %2767, %2771
  %.str.5.sink1599 = phi ptr [ @.str.5, %2771 ], [ @.str.2, %2767 ]
  store i32 %2762, ptr %2761, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = load i32, ptr @test_count, align 4, !tbaa !5
  %2775 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2776 = call ptr @s2n_strerror(i32 noundef %2775, ptr noundef nonnull @.str.4) #12
  %2777 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2778 = call ptr @s2n_strerror_debug(i32 noundef %2777, ptr noundef nonnull @.str.4) #12
  %2779 = load i32, ptr %2761, align 4, !tbaa !5
  %2780 = call ptr @strerror(i32 noundef %2779) #12
  %2781 = load i32, ptr %2761, align 4, !tbaa !5
  %2782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2773, ptr noundef nonnull %.str.5.sink1599, i32 noundef %2774, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 322, ptr noundef %2776, ptr noundef %2778, ptr noundef %2780, i32 noundef %2781) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2783:                                             ; preds = %2754
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = add nsw i32 %2784, 1
  store i32 %2785, ptr @test_count, align 4, !tbaa !5
  %2786 = load ptr, ptr %24, align 8, !tbaa !9
  %2787 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %2786, ptr noundef nonnull @.str.13, ptr noundef null) #12
  %2788 = icmp eq i32 %2787, -1
  br i1 %2788, label %2789, label %2812

2789:                                             ; preds = %2783
  %2790 = tail call ptr @__errno_location() #13
  %2791 = load i32, ptr %2790, align 4, !tbaa !5
  %2792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2793 = call i32 @s2n_print_stacktrace(ptr noundef %2792) #12
  %2794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2795 = trunc nuw i8 %2794 to i1
  br i1 %2795, label %2796, label %2800

2796:                                             ; preds = %2789
  %2797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2798 = call i32 @fileno(ptr noundef %2797) #12
  %2799 = call i32 @isatty(i32 noundef %2798) #12
  %.not454 = icmp eq i32 %2799, 0
  br i1 %.not454, label %2800, label %2801

2800:                                             ; preds = %2796, %2789
  br label %2801

2801:                                             ; preds = %2796, %2800
  %.str.5.sink1608 = phi ptr [ @.str.5, %2800 ], [ @.str.2, %2796 ]
  store i32 %2791, ptr %2790, align 4, !tbaa !5
  %2802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2803 = load i32, ptr @test_count, align 4, !tbaa !5
  %2804 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2805 = call ptr @s2n_strerror(i32 noundef %2804, ptr noundef nonnull @.str.4) #12
  %2806 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2807 = call ptr @s2n_strerror_debug(i32 noundef %2806, ptr noundef nonnull @.str.4) #12
  %2808 = load i32, ptr %2790, align 4, !tbaa !5
  %2809 = call ptr @strerror(i32 noundef %2808) #12
  %2810 = load i32, ptr %2790, align 4, !tbaa !5
  %2811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2802, ptr noundef nonnull %.str.5.sink1608, i32 noundef %2803, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %2805, ptr noundef %2807, ptr noundef %2809, i32 noundef %2810) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2812:                                             ; preds = %2783
  %2813 = load i32, ptr @test_count, align 4, !tbaa !5
  %2814 = add nsw i32 %2813, 1
  store i32 %2814, ptr @test_count, align 4, !tbaa !5
  %2815 = load ptr, ptr %24, align 8, !tbaa !9
  %2816 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2815, ptr noundef nonnull %380) #12
  %2817 = icmp eq i32 %2816, -1
  br i1 %2817, label %2818, label %2841

2818:                                             ; preds = %2812
  %2819 = tail call ptr @__errno_location() #13
  %2820 = load i32, ptr %2819, align 4, !tbaa !5
  %2821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2822 = call i32 @s2n_print_stacktrace(ptr noundef %2821) #12
  %2823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2824 = trunc nuw i8 %2823 to i1
  br i1 %2824, label %2825, label %2829

2825:                                             ; preds = %2818
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = call i32 @fileno(ptr noundef %2826) #12
  %2828 = call i32 @isatty(i32 noundef %2827) #12
  %.not453 = icmp eq i32 %2828, 0
  br i1 %.not453, label %2829, label %2830

2829:                                             ; preds = %2825, %2818
  br label %2830

2830:                                             ; preds = %2825, %2829
  %.str.5.sink1617 = phi ptr [ @.str.5, %2829 ], [ @.str.2, %2825 ]
  store i32 %2820, ptr %2819, align 4, !tbaa !5
  %2831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2832 = load i32, ptr @test_count, align 4, !tbaa !5
  %2833 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2834 = call ptr @s2n_strerror(i32 noundef %2833, ptr noundef nonnull @.str.4) #12
  %2835 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2836 = call ptr @s2n_strerror_debug(i32 noundef %2835, ptr noundef nonnull @.str.4) #12
  %2837 = load i32, ptr %2819, align 4, !tbaa !5
  %2838 = call ptr @strerror(i32 noundef %2837) #12
  %2839 = load i32, ptr %2819, align 4, !tbaa !5
  %2840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2831, ptr noundef nonnull %.str.5.sink1617, i32 noundef %2832, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %2834, ptr noundef %2836, ptr noundef %2838, i32 noundef %2839) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2841:                                             ; preds = %2812
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #12
  %2842 = call ptr @s2n_config_new() #12
  store ptr %2842, ptr %25, align 8, !tbaa !9
  %2843 = load i32, ptr @test_count, align 4, !tbaa !5
  %2844 = add nsw i32 %2843, 1
  store i32 %2844, ptr @test_count, align 4, !tbaa !5
  %2845 = icmp eq ptr %2842, null
  br i1 %2845, label %2846, label %2869

2846:                                             ; preds = %2841
  %2847 = tail call ptr @__errno_location() #13
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = call i32 @s2n_print_stacktrace(ptr noundef %2849) #12
  %2851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2852 = trunc nuw i8 %2851 to i1
  br i1 %2852, label %2853, label %2857

2853:                                             ; preds = %2846
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = call i32 @fileno(ptr noundef %2854) #12
  %2856 = call i32 @isatty(i32 noundef %2855) #12
  %.not452 = icmp eq i32 %2856, 0
  br i1 %.not452, label %2857, label %2858

2857:                                             ; preds = %2853, %2846
  br label %2858

2858:                                             ; preds = %2853, %2857
  %.str.5.sink1626 = phi ptr [ @.str.5, %2857 ], [ @.str.2, %2853 ]
  store i32 %2848, ptr %2847, align 4, !tbaa !5
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = load i32, ptr @test_count, align 4, !tbaa !5
  %2861 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2862 = call ptr @s2n_strerror(i32 noundef %2861, ptr noundef nonnull @.str.4) #12
  %2863 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror_debug(i32 noundef %2863, ptr noundef nonnull @.str.4) #12
  %2865 = load i32, ptr %2847, align 4, !tbaa !5
  %2866 = call ptr @strerror(i32 noundef %2865) #12
  %2867 = load i32, ptr %2847, align 4, !tbaa !5
  %2868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2859, ptr noundef nonnull %.str.5.sink1626, i32 noundef %2860, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %2862, ptr noundef %2864, ptr noundef %2866, i32 noundef %2867) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2869:                                             ; preds = %2841
  %2870 = add nsw i32 %2843, 2
  store i32 %2870, ptr @test_count, align 4, !tbaa !5
  %2871 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2842, ptr noundef nonnull @.str.57) #12
  %2872 = icmp eq i32 %2871, -1
  br i1 %2872, label %2873, label %2896

2873:                                             ; preds = %2869
  %2874 = tail call ptr @__errno_location() #13
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2877 = call i32 @s2n_print_stacktrace(ptr noundef %2876) #12
  %2878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2879 = trunc nuw i8 %2878 to i1
  br i1 %2879, label %2880, label %2884

2880:                                             ; preds = %2873
  %2881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2882 = call i32 @fileno(ptr noundef %2881) #12
  %2883 = call i32 @isatty(i32 noundef %2882) #12
  %.not451 = icmp eq i32 %2883, 0
  br i1 %.not451, label %2884, label %2885

2884:                                             ; preds = %2880, %2873
  br label %2885

2885:                                             ; preds = %2880, %2884
  %.str.5.sink1635 = phi ptr [ @.str.5, %2884 ], [ @.str.2, %2880 ]
  store i32 %2875, ptr %2874, align 4, !tbaa !5
  %2886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2887 = load i32, ptr @test_count, align 4, !tbaa !5
  %2888 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2889 = call ptr @s2n_strerror(i32 noundef %2888, ptr noundef nonnull @.str.4) #12
  %2890 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2891 = call ptr @s2n_strerror_debug(i32 noundef %2890, ptr noundef nonnull @.str.4) #12
  %2892 = load i32, ptr %2874, align 4, !tbaa !5
  %2893 = call ptr @strerror(i32 noundef %2892) #12
  %2894 = load i32, ptr %2874, align 4, !tbaa !5
  %2895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2886, ptr noundef nonnull %.str.5.sink1635, i32 noundef %2887, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %2889, ptr noundef %2891, ptr noundef %2893, i32 noundef %2894) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2896:                                             ; preds = %2869
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %26) #12
  store i16 %2186, ptr %26, align 2
  %2897 = load i32, ptr @test_count, align 4, !tbaa !5
  %2898 = add nsw i32 %2897, 1
  store i32 %2898, ptr @test_count, align 4, !tbaa !5
  %2899 = load ptr, ptr %25, align 8, !tbaa !9
  %2900 = call i32 @s2n_config_set_verify_host_callback(ptr noundef %2899, ptr noundef nonnull @verify_host_fn, ptr noundef nonnull %26) #12
  %2901 = icmp eq i32 %2900, -1
  br i1 %2901, label %2902, label %2925

2902:                                             ; preds = %2896
  %2903 = tail call ptr @__errno_location() #13
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = call i32 @s2n_print_stacktrace(ptr noundef %2905) #12
  %2907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2908 = trunc nuw i8 %2907 to i1
  br i1 %2908, label %2909, label %2913

2909:                                             ; preds = %2902
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = call i32 @fileno(ptr noundef %2910) #12
  %2912 = call i32 @isatty(i32 noundef %2911) #12
  %.not450 = icmp eq i32 %2912, 0
  br i1 %.not450, label %2913, label %2914

2913:                                             ; preds = %2909, %2902
  br label %2914

2914:                                             ; preds = %2909, %2913
  %.str.5.sink1644 = phi ptr [ @.str.5, %2913 ], [ @.str.2, %2909 ]
  store i32 %2904, ptr %2903, align 4, !tbaa !5
  %2915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2916 = load i32, ptr @test_count, align 4, !tbaa !5
  %2917 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2918 = call ptr @s2n_strerror(i32 noundef %2917, ptr noundef nonnull @.str.4) #12
  %2919 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2920 = call ptr @s2n_strerror_debug(i32 noundef %2919, ptr noundef nonnull @.str.4) #12
  %2921 = load i32, ptr %2903, align 4, !tbaa !5
  %2922 = call ptr @strerror(i32 noundef %2921) #12
  %2923 = load i32, ptr %2903, align 4, !tbaa !5
  %2924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2915, ptr noundef nonnull %.str.5.sink1644, i32 noundef %2916, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %2918, ptr noundef %2920, ptr noundef %2922, i32 noundef %2923) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2925:                                             ; preds = %2896
  %2926 = load i32, ptr @test_count, align 4, !tbaa !5
  %2927 = add nsw i32 %2926, 1
  store i32 %2927, ptr @test_count, align 4, !tbaa !5
  %2928 = load ptr, ptr %25, align 8, !tbaa !9
  %2929 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2928, ptr noundef nonnull %380) #12
  %2930 = icmp eq i32 %2929, -1
  br i1 %2930, label %2931, label %2954

2931:                                             ; preds = %2925
  %2932 = tail call ptr @__errno_location() #13
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = call i32 @s2n_print_stacktrace(ptr noundef %2934) #12
  %2936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2937 = trunc nuw i8 %2936 to i1
  br i1 %2937, label %2938, label %2942

2938:                                             ; preds = %2931
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = call i32 @fileno(ptr noundef %2939) #12
  %2941 = call i32 @isatty(i32 noundef %2940) #12
  %.not449 = icmp eq i32 %2941, 0
  br i1 %.not449, label %2942, label %2943

2942:                                             ; preds = %2938, %2931
  br label %2943

2943:                                             ; preds = %2938, %2942
  %.str.5.sink1653 = phi ptr [ @.str.5, %2942 ], [ @.str.2, %2938 ]
  store i32 %2933, ptr %2932, align 4, !tbaa !5
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = load i32, ptr @test_count, align 4, !tbaa !5
  %2946 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef nonnull @.str.4) #12
  %2948 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2949 = call ptr @s2n_strerror_debug(i32 noundef %2948, ptr noundef nonnull @.str.4) #12
  %2950 = load i32, ptr %2932, align 4, !tbaa !5
  %2951 = call ptr @strerror(i32 noundef %2950) #12
  %2952 = load i32, ptr %2932, align 4, !tbaa !5
  %2953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2944, ptr noundef nonnull %.str.5.sink1653, i32 noundef %2945, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 337, ptr noundef %2947, ptr noundef %2949, ptr noundef %2951, i32 noundef %2952) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2954:                                             ; preds = %2925
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %2955 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2955, ptr %27, align 8, !tbaa !9
  %2956 = load i32, ptr @test_count, align 4, !tbaa !5
  %2957 = add nsw i32 %2956, 1
  store i32 %2957, ptr @test_count, align 4, !tbaa !5
  %2958 = icmp eq ptr %2955, null
  br i1 %2958, label %2959, label %2982

2959:                                             ; preds = %2954
  %2960 = tail call ptr @__errno_location() #13
  %2961 = load i32, ptr %2960, align 4, !tbaa !5
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = call i32 @s2n_print_stacktrace(ptr noundef %2962) #12
  %2964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2965 = trunc nuw i8 %2964 to i1
  br i1 %2965, label %2966, label %2970

2966:                                             ; preds = %2959
  %2967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2968 = call i32 @fileno(ptr noundef %2967) #12
  %2969 = call i32 @isatty(i32 noundef %2968) #12
  %.not448 = icmp eq i32 %2969, 0
  br i1 %.not448, label %2970, label %2971

2970:                                             ; preds = %2966, %2959
  br label %2971

2971:                                             ; preds = %2966, %2970
  %.str.5.sink1662 = phi ptr [ @.str.5, %2970 ], [ @.str.2, %2966 ]
  store i32 %2961, ptr %2960, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror(i32 noundef %2974, ptr noundef nonnull @.str.4) #12
  %2976 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %2977 = call ptr @s2n_strerror_debug(i32 noundef %2976, ptr noundef nonnull @.str.4) #12
  %2978 = load i32, ptr %2960, align 4, !tbaa !5
  %2979 = call ptr @strerror(i32 noundef %2978) #12
  %2980 = load i32, ptr %2960, align 4, !tbaa !5
  %2981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2972, ptr noundef nonnull %.str.5.sink1662, i32 noundef %2973, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2975, ptr noundef %2977, ptr noundef %2979, i32 noundef %2980) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2982:                                             ; preds = %2954
  %2983 = add nsw i32 %2956, 2
  store i32 %2983, ptr @test_count, align 4, !tbaa !5
  %2984 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %2955, i32 noundef 1) #12
  %2985 = icmp eq i32 %2984, -1
  br i1 %2985, label %2986, label %3009

2986:                                             ; preds = %2982
  %2987 = tail call ptr @__errno_location() #13
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  %2989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2990 = call i32 @s2n_print_stacktrace(ptr noundef %2989) #12
  %2991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2992 = trunc nuw i8 %2991 to i1
  br i1 %2992, label %2993, label %2997

2993:                                             ; preds = %2986
  %2994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2995 = call i32 @fileno(ptr noundef %2994) #12
  %2996 = call i32 @isatty(i32 noundef %2995) #12
  %.not447 = icmp eq i32 %2996, 0
  br i1 %.not447, label %2997, label %2998

2997:                                             ; preds = %2993, %2986
  br label %2998

2998:                                             ; preds = %2993, %2997
  %.str.5.sink1671 = phi ptr [ @.str.5, %2997 ], [ @.str.2, %2993 ]
  store i32 %2988, ptr %2987, align 4, !tbaa !5
  %2999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3000 = load i32, ptr @test_count, align 4, !tbaa !5
  %3001 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3002 = call ptr @s2n_strerror(i32 noundef %3001, ptr noundef nonnull @.str.4) #12
  %3003 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3004 = call ptr @s2n_strerror_debug(i32 noundef %3003, ptr noundef nonnull @.str.4) #12
  %3005 = load i32, ptr %2987, align 4, !tbaa !5
  %3006 = call ptr @strerror(i32 noundef %3005) #12
  %3007 = load i32, ptr %2987, align 4, !tbaa !5
  %3008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2999, ptr noundef nonnull %.str.5.sink1671, i32 noundef %3000, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %3002, ptr noundef %3004, ptr noundef %3006, i32 noundef %3007) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3009:                                             ; preds = %2982
  %3010 = load i32, ptr @test_count, align 4, !tbaa !5
  %3011 = add nsw i32 %3010, 1
  store i32 %3011, ptr @test_count, align 4, !tbaa !5
  switch i32 %.0403596, label %default.unreachable [
    i32 0, label %3012
    i32 1, label %3069
    i32 2, label %3126
  ]

3012:                                             ; preds = %3009
  %3013 = load ptr, ptr %25, align 8, !tbaa !9
  %3014 = call i32 @s2n_config_set_client_auth_type(ptr noundef %3013, i32 noundef 1) #12
  %3015 = icmp eq i32 %3014, -1
  br i1 %3015, label %3016, label %3039

3016:                                             ; preds = %3012
  %3017 = tail call ptr @__errno_location() #13
  %3018 = load i32, ptr %3017, align 4, !tbaa !5
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @s2n_print_stacktrace(ptr noundef %3019) #12
  %3021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3022 = trunc nuw i8 %3021 to i1
  br i1 %3022, label %3023, label %3027

3023:                                             ; preds = %3016
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = call i32 @fileno(ptr noundef %3024) #12
  %3026 = call i32 @isatty(i32 noundef %3025) #12
  %.not446 = icmp eq i32 %3026, 0
  br i1 %.not446, label %3027, label %3028

3027:                                             ; preds = %3023, %3016
  br label %3028

3028:                                             ; preds = %3023, %3027
  %.str.5.sink1680 = phi ptr [ @.str.5, %3027 ], [ @.str.2, %3023 ]
  store i32 %3018, ptr %3017, align 4, !tbaa !5
  %3029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3030 = load i32, ptr @test_count, align 4, !tbaa !5
  %3031 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3032 = call ptr @s2n_strerror(i32 noundef %3031, ptr noundef nonnull @.str.4) #12
  %3033 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3034 = call ptr @s2n_strerror_debug(i32 noundef %3033, ptr noundef nonnull @.str.4) #12
  %3035 = load i32, ptr %3017, align 4, !tbaa !5
  %3036 = call ptr @strerror(i32 noundef %3035) #12
  %3037 = load i32, ptr %3017, align 4, !tbaa !5
  %3038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3029, ptr noundef nonnull %.str.5.sink1680, i32 noundef %3030, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 346, ptr noundef %3032, ptr noundef %3034, ptr noundef %3036, i32 noundef %3037) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3039:                                             ; preds = %3012
  %3040 = load i32, ptr @test_count, align 4, !tbaa !5
  %3041 = add nsw i32 %3040, 1
  store i32 %3041, ptr @test_count, align 4, !tbaa !5
  %3042 = load ptr, ptr %27, align 8, !tbaa !9
  %3043 = load ptr, ptr %25, align 8, !tbaa !9
  %3044 = call i32 @s2n_connection_set_config(ptr noundef %3042, ptr noundef %3043) #12
  %3045 = icmp eq i32 %3044, -1
  br i1 %3045, label %3046, label %3183

3046:                                             ; preds = %3039
  %3047 = tail call ptr @__errno_location() #13
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3050 = call i32 @s2n_print_stacktrace(ptr noundef %3049) #12
  %3051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3052 = trunc nuw i8 %3051 to i1
  br i1 %3052, label %3053, label %3057

3053:                                             ; preds = %3046
  %3054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3055 = call i32 @fileno(ptr noundef %3054) #12
  %3056 = call i32 @isatty(i32 noundef %3055) #12
  %.not445 = icmp eq i32 %3056, 0
  br i1 %.not445, label %3057, label %3058

3057:                                             ; preds = %3053, %3046
  br label %3058

3058:                                             ; preds = %3053, %3057
  %.str.5.sink1689 = phi ptr [ @.str.5, %3057 ], [ @.str.2, %3053 ]
  store i32 %3048, ptr %3047, align 4, !tbaa !5
  %3059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3060 = load i32, ptr @test_count, align 4, !tbaa !5
  %3061 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3062 = call ptr @s2n_strerror(i32 noundef %3061, ptr noundef nonnull @.str.4) #12
  %3063 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3064 = call ptr @s2n_strerror_debug(i32 noundef %3063, ptr noundef nonnull @.str.4) #12
  %3065 = load i32, ptr %3047, align 4, !tbaa !5
  %3066 = call ptr @strerror(i32 noundef %3065) #12
  %3067 = load i32, ptr %3047, align 4, !tbaa !5
  %3068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3059, ptr noundef nonnull %.str.5.sink1689, i32 noundef %3060, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 347, ptr noundef %3062, ptr noundef %3064, ptr noundef %3066, i32 noundef %3067) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3069:                                             ; preds = %3009
  %3070 = load ptr, ptr %27, align 8, !tbaa !9
  %3071 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %3070, i32 noundef 1) #12
  %3072 = icmp eq i32 %3071, -1
  br i1 %3072, label %3073, label %3096

3073:                                             ; preds = %3069
  %3074 = tail call ptr @__errno_location() #13
  %3075 = load i32, ptr %3074, align 4, !tbaa !5
  %3076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3077 = call i32 @s2n_print_stacktrace(ptr noundef %3076) #12
  %3078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3079 = trunc nuw i8 %3078 to i1
  br i1 %3079, label %3080, label %3084

3080:                                             ; preds = %3073
  %3081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3082 = call i32 @fileno(ptr noundef %3081) #12
  %3083 = call i32 @isatty(i32 noundef %3082) #12
  %.not430 = icmp eq i32 %3083, 0
  br i1 %.not430, label %3084, label %3085

3084:                                             ; preds = %3080, %3073
  br label %3085

3085:                                             ; preds = %3080, %3084
  %.str.5.sink1698 = phi ptr [ @.str.5, %3084 ], [ @.str.2, %3080 ]
  store i32 %3075, ptr %3074, align 4, !tbaa !5
  %3086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3087 = load i32, ptr @test_count, align 4, !tbaa !5
  %3088 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror(i32 noundef %3088, ptr noundef nonnull @.str.4) #12
  %3090 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror_debug(i32 noundef %3090, ptr noundef nonnull @.str.4) #12
  %3092 = load i32, ptr %3074, align 4, !tbaa !5
  %3093 = call ptr @strerror(i32 noundef %3092) #12
  %3094 = load i32, ptr %3074, align 4, !tbaa !5
  %3095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3086, ptr noundef nonnull %.str.5.sink1698, i32 noundef %3087, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 350, ptr noundef %3089, ptr noundef %3091, ptr noundef %3093, i32 noundef %3094) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3096:                                             ; preds = %3069
  %3097 = load i32, ptr @test_count, align 4, !tbaa !5
  %3098 = add nsw i32 %3097, 1
  store i32 %3098, ptr @test_count, align 4, !tbaa !5
  %3099 = load ptr, ptr %27, align 8, !tbaa !9
  %3100 = load ptr, ptr %25, align 8, !tbaa !9
  %3101 = call i32 @s2n_connection_set_config(ptr noundef %3099, ptr noundef %3100) #12
  %3102 = icmp eq i32 %3101, -1
  br i1 %3102, label %3103, label %3183

3103:                                             ; preds = %3096
  %3104 = tail call ptr @__errno_location() #13
  %3105 = load i32, ptr %3104, align 4, !tbaa !5
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3107 = call i32 @s2n_print_stacktrace(ptr noundef %3106) #12
  %3108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3109 = trunc nuw i8 %3108 to i1
  br i1 %3109, label %3110, label %3114

3110:                                             ; preds = %3103
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = call i32 @fileno(ptr noundef %3111) #12
  %3113 = call i32 @isatty(i32 noundef %3112) #12
  %.not429 = icmp eq i32 %3113, 0
  br i1 %.not429, label %3114, label %3115

3114:                                             ; preds = %3110, %3103
  br label %3115

3115:                                             ; preds = %3110, %3114
  %.str.5.sink1707 = phi ptr [ @.str.5, %3114 ], [ @.str.2, %3110 ]
  store i32 %3105, ptr %3104, align 4, !tbaa !5
  %3116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3119 = call ptr @s2n_strerror(i32 noundef %3118, ptr noundef nonnull @.str.4) #12
  %3120 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3121 = call ptr @s2n_strerror_debug(i32 noundef %3120, ptr noundef nonnull @.str.4) #12
  %3122 = load i32, ptr %3104, align 4, !tbaa !5
  %3123 = call ptr @strerror(i32 noundef %3122) #12
  %3124 = load i32, ptr %3104, align 4, !tbaa !5
  %3125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3116, ptr noundef nonnull %.str.5.sink1707, i32 noundef %3117, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %3119, ptr noundef %3121, ptr noundef %3123, i32 noundef %3124) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3126:                                             ; preds = %3009
  %3127 = load ptr, ptr %27, align 8, !tbaa !9
  %3128 = load ptr, ptr %25, align 8, !tbaa !9
  %3129 = call i32 @s2n_connection_set_config(ptr noundef %3127, ptr noundef %3128) #12
  %3130 = icmp eq i32 %3129, -1
  br i1 %3130, label %3131, label %3154

3131:                                             ; preds = %3126
  %3132 = tail call ptr @__errno_location() #13
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3135 = call i32 @s2n_print_stacktrace(ptr noundef %3134) #12
  %3136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3137 = trunc nuw i8 %3136 to i1
  br i1 %3137, label %3138, label %3142

3138:                                             ; preds = %3131
  %3139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3140 = call i32 @fileno(ptr noundef %3139) #12
  %3141 = call i32 @isatty(i32 noundef %3140) #12
  %.not428 = icmp eq i32 %3141, 0
  br i1 %.not428, label %3142, label %3143

3142:                                             ; preds = %3138, %3131
  br label %3143

3143:                                             ; preds = %3138, %3142
  %.str.5.sink1716 = phi ptr [ @.str.5, %3142 ], [ @.str.2, %3138 ]
  store i32 %3133, ptr %3132, align 4, !tbaa !5
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = load i32, ptr @test_count, align 4, !tbaa !5
  %3146 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3147 = call ptr @s2n_strerror(i32 noundef %3146, ptr noundef nonnull @.str.4) #12
  %3148 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3149 = call ptr @s2n_strerror_debug(i32 noundef %3148, ptr noundef nonnull @.str.4) #12
  %3150 = load i32, ptr %3132, align 4, !tbaa !5
  %3151 = call ptr @strerror(i32 noundef %3150) #12
  %3152 = load i32, ptr %3132, align 4, !tbaa !5
  %3153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3144, ptr noundef nonnull %.str.5.sink1716, i32 noundef %3145, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %3147, ptr noundef %3149, ptr noundef %3151, i32 noundef %3152) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3154:                                             ; preds = %3126
  %3155 = load i32, ptr @test_count, align 4, !tbaa !5
  %3156 = add nsw i32 %3155, 1
  store i32 %3156, ptr @test_count, align 4, !tbaa !5
  %3157 = load ptr, ptr %27, align 8, !tbaa !9
  %3158 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %3157, i32 noundef 1) #12
  %3159 = icmp eq i32 %3158, -1
  br i1 %3159, label %3160, label %3183

3160:                                             ; preds = %3154
  %3161 = tail call ptr @__errno_location() #13
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = call i32 @s2n_print_stacktrace(ptr noundef %3163) #12
  %3165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3166 = trunc nuw i8 %3165 to i1
  br i1 %3166, label %3167, label %3171

3167:                                             ; preds = %3160
  %3168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3169 = call i32 @fileno(ptr noundef %3168) #12
  %3170 = call i32 @isatty(i32 noundef %3169) #12
  %.not427 = icmp eq i32 %3170, 0
  br i1 %.not427, label %3171, label %3172

3171:                                             ; preds = %3167, %3160
  br label %3172

3172:                                             ; preds = %3167, %3171
  %.str.5.sink1725 = phi ptr [ @.str.5, %3171 ], [ @.str.2, %3167 ]
  store i32 %3162, ptr %3161, align 4, !tbaa !5
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = load i32, ptr @test_count, align 4, !tbaa !5
  %3175 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3176 = call ptr @s2n_strerror(i32 noundef %3175, ptr noundef nonnull @.str.4) #12
  %3177 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3178 = call ptr @s2n_strerror_debug(i32 noundef %3177, ptr noundef nonnull @.str.4) #12
  %3179 = load i32, ptr %3161, align 4, !tbaa !5
  %3180 = call ptr @strerror(i32 noundef %3179) #12
  %3181 = load i32, ptr %3161, align 4, !tbaa !5
  %3182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3173, ptr noundef nonnull %.str.5.sink1725, i32 noundef %3174, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 355, ptr noundef %3176, ptr noundef %3178, ptr noundef %3180, i32 noundef %3181) #14
  call void @exit(i32 noundef 1) #15
  unreachable

default.unreachable:                              ; preds = %3009
  unreachable

3183:                                             ; preds = %3154, %3096, %3039
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #12
  %3184 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %3184, ptr %28, align 8, !tbaa !9
  %3185 = load i32, ptr @test_count, align 4, !tbaa !5
  %3186 = add nsw i32 %3185, 1
  store i32 %3186, ptr @test_count, align 4, !tbaa !5
  %3187 = icmp eq ptr %3184, null
  br i1 %3187, label %3188, label %3211

3188:                                             ; preds = %3183
  %3189 = tail call ptr @__errno_location() #13
  %3190 = load i32, ptr %3189, align 4, !tbaa !5
  %3191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3192 = call i32 @s2n_print_stacktrace(ptr noundef %3191) #12
  %3193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3194 = trunc nuw i8 %3193 to i1
  br i1 %3194, label %3195, label %3199

3195:                                             ; preds = %3188
  %3196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3197 = call i32 @fileno(ptr noundef %3196) #12
  %3198 = call i32 @isatty(i32 noundef %3197) #12
  %.not444 = icmp eq i32 %3198, 0
  br i1 %.not444, label %3199, label %3200

3199:                                             ; preds = %3195, %3188
  br label %3200

3200:                                             ; preds = %3195, %3199
  %.str.5.sink1734 = phi ptr [ @.str.5, %3199 ], [ @.str.2, %3195 ]
  store i32 %3190, ptr %3189, align 4, !tbaa !5
  %3201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3202 = load i32, ptr @test_count, align 4, !tbaa !5
  %3203 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3204 = call ptr @s2n_strerror(i32 noundef %3203, ptr noundef nonnull @.str.4) #12
  %3205 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3206 = call ptr @s2n_strerror_debug(i32 noundef %3205, ptr noundef nonnull @.str.4) #12
  %3207 = load i32, ptr %3189, align 4, !tbaa !5
  %3208 = call ptr @strerror(i32 noundef %3207) #12
  %3209 = load i32, ptr %3189, align 4, !tbaa !5
  %3210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3201, ptr noundef nonnull %.str.5.sink1734, i32 noundef %3202, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 363, ptr noundef %3204, ptr noundef %3206, ptr noundef %3208, i32 noundef %3209) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3211:                                             ; preds = %3183
  %3212 = add nsw i32 %3185, 2
  store i32 %3212, ptr @test_count, align 4, !tbaa !5
  %3213 = load ptr, ptr %24, align 8, !tbaa !9
  %3214 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3184, ptr noundef %3213) #12
  %3215 = icmp eq i32 %3214, -1
  br i1 %3215, label %3216, label %3239

3216:                                             ; preds = %3211
  %3217 = tail call ptr @__errno_location() #13
  %3218 = load i32, ptr %3217, align 4, !tbaa !5
  %3219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3220 = call i32 @s2n_print_stacktrace(ptr noundef %3219) #12
  %3221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3222 = trunc nuw i8 %3221 to i1
  br i1 %3222, label %3223, label %3227

3223:                                             ; preds = %3216
  %3224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3225 = call i32 @fileno(ptr noundef %3224) #12
  %3226 = call i32 @isatty(i32 noundef %3225) #12
  %.not443 = icmp eq i32 %3226, 0
  br i1 %.not443, label %3227, label %3228

3227:                                             ; preds = %3223, %3216
  br label %3228

3228:                                             ; preds = %3223, %3227
  %.str.5.sink1743 = phi ptr [ @.str.5, %3227 ], [ @.str.2, %3223 ]
  store i32 %3218, ptr %3217, align 4, !tbaa !5
  %3229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3230 = load i32, ptr @test_count, align 4, !tbaa !5
  %3231 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3232 = call ptr @s2n_strerror(i32 noundef %3231, ptr noundef nonnull @.str.4) #12
  %3233 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3234 = call ptr @s2n_strerror_debug(i32 noundef %3233, ptr noundef nonnull @.str.4) #12
  %3235 = load i32, ptr %3217, align 4, !tbaa !5
  %3236 = call ptr @strerror(i32 noundef %3235) #12
  %3237 = load i32, ptr %3217, align 4, !tbaa !5
  %3238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3229, ptr noundef nonnull %.str.5.sink1743, i32 noundef %3230, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 364, ptr noundef %3232, ptr noundef %3234, ptr noundef %3236, i32 noundef %3237) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3239:                                             ; preds = %3211
  %3240 = load i32, ptr @test_count, align 4, !tbaa !5
  %3241 = add nsw i32 %3240, 1
  store i32 %3241, ptr @test_count, align 4, !tbaa !5
  %3242 = load ptr, ptr %28, align 8, !tbaa !9
  %3243 = call i32 @s2n_set_server_name(ptr noundef %3242, ptr noundef nonnull @.str.73) #12
  %3244 = icmp eq i32 %3243, -1
  br i1 %3244, label %3245, label %3268

3245:                                             ; preds = %3239
  %3246 = tail call ptr @__errno_location() #13
  %3247 = load i32, ptr %3246, align 4, !tbaa !5
  %3248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3249 = call i32 @s2n_print_stacktrace(ptr noundef %3248) #12
  %3250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3251 = trunc nuw i8 %3250 to i1
  br i1 %3251, label %3252, label %3256

3252:                                             ; preds = %3245
  %3253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3254 = call i32 @fileno(ptr noundef %3253) #12
  %3255 = call i32 @isatty(i32 noundef %3254) #12
  %.not442 = icmp eq i32 %3255, 0
  br i1 %.not442, label %3256, label %3257

3256:                                             ; preds = %3252, %3245
  br label %3257

3257:                                             ; preds = %3252, %3256
  %.str.5.sink1752 = phi ptr [ @.str.5, %3256 ], [ @.str.2, %3252 ]
  store i32 %3247, ptr %3246, align 4, !tbaa !5
  %3258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3259 = load i32, ptr @test_count, align 4, !tbaa !5
  %3260 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3261 = call ptr @s2n_strerror(i32 noundef %3260, ptr noundef nonnull @.str.4) #12
  %3262 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3263 = call ptr @s2n_strerror_debug(i32 noundef %3262, ptr noundef nonnull @.str.4) #12
  %3264 = load i32, ptr %3246, align 4, !tbaa !5
  %3265 = call ptr @strerror(i32 noundef %3264) #12
  %3266 = load i32, ptr %3246, align 4, !tbaa !5
  %3267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3258, ptr noundef nonnull %.str.5.sink1752, i32 noundef %3259, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 365, ptr noundef %3261, ptr noundef %3263, ptr noundef %3265, i32 noundef %3266) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3268:                                             ; preds = %3239
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  store i64 0, ptr %29, align 8
  %3269 = load i32, ptr @test_count, align 4, !tbaa !5
  %3270 = add nsw i32 %3269, 1
  store i32 %3270, ptr @test_count, align 4, !tbaa !5
  %3271 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %29) #12
  %3272 = icmp eq i32 %3271, -1
  br i1 %3272, label %3273, label %3296

3273:                                             ; preds = %3268
  %3274 = tail call ptr @__errno_location() #13
  %3275 = load i32, ptr %3274, align 4, !tbaa !5
  %3276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3277 = call i32 @s2n_print_stacktrace(ptr noundef %3276) #12
  %3278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3279 = trunc nuw i8 %3278 to i1
  br i1 %3279, label %3280, label %3284

3280:                                             ; preds = %3273
  %3281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3282 = call i32 @fileno(ptr noundef %3281) #12
  %3283 = call i32 @isatty(i32 noundef %3282) #12
  %.not441 = icmp eq i32 %3283, 0
  br i1 %.not441, label %3284, label %3285

3284:                                             ; preds = %3280, %3273
  br label %3285

3285:                                             ; preds = %3280, %3284
  %.str.5.sink1761 = phi ptr [ @.str.5, %3284 ], [ @.str.2, %3280 ]
  store i32 %3275, ptr %3274, align 4, !tbaa !5
  %3286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3287 = load i32, ptr @test_count, align 4, !tbaa !5
  %3288 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3289 = call ptr @s2n_strerror(i32 noundef %3288, ptr noundef nonnull @.str.4) #12
  %3290 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3291 = call ptr @s2n_strerror_debug(i32 noundef %3290, ptr noundef nonnull @.str.4) #12
  %3292 = load i32, ptr %3274, align 4, !tbaa !5
  %3293 = call ptr @strerror(i32 noundef %3292) #12
  %3294 = load i32, ptr %3274, align 4, !tbaa !5
  %3295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3286, ptr noundef nonnull %.str.5.sink1761, i32 noundef %3287, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %3289, ptr noundef %3291, ptr noundef %3293, i32 noundef %3294) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3296:                                             ; preds = %3268
  %3297 = load i32, ptr @test_count, align 4, !tbaa !5
  %3298 = add nsw i32 %3297, 1
  store i32 %3298, ptr @test_count, align 4, !tbaa !5
  %3299 = load ptr, ptr %28, align 8, !tbaa !9
  %3300 = call i32 @s2n_connection_set_io_pair(ptr noundef %3299, ptr noundef nonnull %29) #12
  %3301 = icmp eq i32 %3300, -1
  br i1 %3301, label %3302, label %3325

3302:                                             ; preds = %3296
  %3303 = tail call ptr @__errno_location() #13
  %3304 = load i32, ptr %3303, align 4, !tbaa !5
  %3305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3306 = call i32 @s2n_print_stacktrace(ptr noundef %3305) #12
  %3307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3308 = trunc nuw i8 %3307 to i1
  br i1 %3308, label %3309, label %3313

3309:                                             ; preds = %3302
  %3310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3311 = call i32 @fileno(ptr noundef %3310) #12
  %3312 = call i32 @isatty(i32 noundef %3311) #12
  %.not440 = icmp eq i32 %3312, 0
  br i1 %.not440, label %3313, label %3314

3313:                                             ; preds = %3309, %3302
  br label %3314

3314:                                             ; preds = %3309, %3313
  %.str.5.sink1770 = phi ptr [ @.str.5, %3313 ], [ @.str.2, %3309 ]
  store i32 %3304, ptr %3303, align 4, !tbaa !5
  %3315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3316 = load i32, ptr @test_count, align 4, !tbaa !5
  %3317 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3318 = call ptr @s2n_strerror(i32 noundef %3317, ptr noundef nonnull @.str.4) #12
  %3319 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3320 = call ptr @s2n_strerror_debug(i32 noundef %3319, ptr noundef nonnull @.str.4) #12
  %3321 = load i32, ptr %3303, align 4, !tbaa !5
  %3322 = call ptr @strerror(i32 noundef %3321) #12
  %3323 = load i32, ptr %3303, align 4, !tbaa !5
  %3324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3315, ptr noundef nonnull %.str.5.sink1770, i32 noundef %3316, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %3318, ptr noundef %3320, ptr noundef %3322, i32 noundef %3323) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3325:                                             ; preds = %3296
  %3326 = load i32, ptr @test_count, align 4, !tbaa !5
  %3327 = add nsw i32 %3326, 1
  store i32 %3327, ptr @test_count, align 4, !tbaa !5
  %3328 = load ptr, ptr %27, align 8, !tbaa !9
  %3329 = call i32 @s2n_connection_set_io_pair(ptr noundef %3328, ptr noundef nonnull %29) #12
  %3330 = icmp eq i32 %3329, -1
  br i1 %3330, label %3331, label %3354

3331:                                             ; preds = %3325
  %3332 = tail call ptr @__errno_location() #13
  %3333 = load i32, ptr %3332, align 4, !tbaa !5
  %3334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3335 = call i32 @s2n_print_stacktrace(ptr noundef %3334) #12
  %3336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3337 = trunc nuw i8 %3336 to i1
  br i1 %3337, label %3338, label %3342

3338:                                             ; preds = %3331
  %3339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3340 = call i32 @fileno(ptr noundef %3339) #12
  %3341 = call i32 @isatty(i32 noundef %3340) #12
  %.not439 = icmp eq i32 %3341, 0
  br i1 %.not439, label %3342, label %3343

3342:                                             ; preds = %3338, %3331
  br label %3343

3343:                                             ; preds = %3338, %3342
  %.str.5.sink1779 = phi ptr [ @.str.5, %3342 ], [ @.str.2, %3338 ]
  store i32 %3333, ptr %3332, align 4, !tbaa !5
  %3344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3345 = load i32, ptr @test_count, align 4, !tbaa !5
  %3346 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3347 = call ptr @s2n_strerror(i32 noundef %3346, ptr noundef nonnull @.str.4) #12
  %3348 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3349 = call ptr @s2n_strerror_debug(i32 noundef %3348, ptr noundef nonnull @.str.4) #12
  %3350 = load i32, ptr %3332, align 4, !tbaa !5
  %3351 = call ptr @strerror(i32 noundef %3350) #12
  %3352 = load i32, ptr %3332, align 4, !tbaa !5
  %3353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3344, ptr noundef nonnull %.str.5.sink1779, i32 noundef %3345, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %3347, ptr noundef %3349, ptr noundef %3351, i32 noundef %3352) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3354:                                             ; preds = %3325
  %3355 = load i32, ptr @test_count, align 4, !tbaa !5
  %3356 = add nsw i32 %3355, 1
  store i32 %3356, ptr @test_count, align 4, !tbaa !5
  %3357 = load ptr, ptr %27, align 8, !tbaa !9
  %3358 = load ptr, ptr %28, align 8, !tbaa !9
  %3359 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3357, ptr noundef %3358) #12
  %3360 = icmp eq i32 %3359, -1
  br i1 %3360, label %3384, label %3361

3361:                                             ; preds = %3354
  %3362 = tail call ptr @__errno_location() #13
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  %3364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3365 = call i32 @s2n_print_stacktrace(ptr noundef %3364) #12
  %3366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3367 = trunc nuw i8 %3366 to i1
  br i1 %3367, label %3368, label %3372

3368:                                             ; preds = %3361
  %3369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3370 = call i32 @fileno(ptr noundef %3369) #12
  %3371 = call i32 @isatty(i32 noundef %3370) #12
  %.not431 = icmp eq i32 %3371, 0
  br i1 %.not431, label %3372, label %3373

3372:                                             ; preds = %3368, %3361
  br label %3373

3373:                                             ; preds = %3368, %3372
  %.str.5.sink1788 = phi ptr [ @.str.5, %3372 ], [ @.str.2, %3368 ]
  store i32 %3363, ptr %3362, align 4, !tbaa !5
  %3374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3375 = load i32, ptr @test_count, align 4, !tbaa !5
  %3376 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3377 = call ptr @s2n_strerror(i32 noundef %3376, ptr noundef nonnull @.str.4) #12
  %3378 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3379 = call ptr @s2n_strerror_debug(i32 noundef %3378, ptr noundef nonnull @.str.4) #12
  %3380 = load i32, ptr %3362, align 4, !tbaa !5
  %3381 = call ptr @strerror(i32 noundef %3380) #12
  %3382 = load i32, ptr %3362, align 4, !tbaa !5
  %3383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3374, ptr noundef nonnull %.str.5.sink1788, i32 noundef %3375, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %3377, ptr noundef %3379, ptr noundef %3381, i32 noundef %3382) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3384:                                             ; preds = %3354
  %3385 = load i32, ptr @test_count, align 4, !tbaa !5
  %3386 = add nsw i32 %3385, 1
  store i32 %3386, ptr @test_count, align 4, !tbaa !5
  %3387 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3388 = icmp eq i32 %3387, 335544366
  br i1 %3388, label %3412, label %3389

3389:                                             ; preds = %3384
  %3390 = tail call ptr @__errno_location() #13
  %3391 = load i32, ptr %3390, align 4, !tbaa !5
  %3392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3393 = call i32 @s2n_print_stacktrace(ptr noundef %3392) #12
  %3394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3395 = trunc nuw i8 %3394 to i1
  br i1 %3395, label %3396, label %3400

3396:                                             ; preds = %3389
  %3397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3398 = call i32 @fileno(ptr noundef %3397) #12
  %3399 = call i32 @isatty(i32 noundef %3398) #12
  %.not432 = icmp eq i32 %3399, 0
  br i1 %.not432, label %3400, label %3401

3400:                                             ; preds = %3396, %3389
  br label %3401

3401:                                             ; preds = %3396, %3400
  %.str.5.sink1797 = phi ptr [ @.str.5, %3400 ], [ @.str.2, %3396 ]
  store i32 %3391, ptr %3390, align 4, !tbaa !5
  %3402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3403 = load i32, ptr @test_count, align 4, !tbaa !5
  %3404 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3405 = call ptr @s2n_strerror(i32 noundef %3404, ptr noundef nonnull @.str.4) #12
  %3406 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3407 = call ptr @s2n_strerror_debug(i32 noundef %3406, ptr noundef nonnull @.str.4) #12
  %3408 = load i32, ptr %3390, align 4, !tbaa !5
  %3409 = call ptr @strerror(i32 noundef %3408) #12
  %3410 = load i32, ptr %3390, align 4, !tbaa !5
  %3411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3402, ptr noundef nonnull %.str.5.sink1797, i32 noundef %3403, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %3405, ptr noundef %3407, ptr noundef %3409, i32 noundef %3410) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3412:                                             ; preds = %3384
  %3413 = add nsw i32 %3385, 2
  store i32 %3413, ptr @test_count, align 4, !tbaa !5
  %3414 = call ptr @s2n_strerror_debug(i32 noundef 335544366, ptr noundef nonnull @.str.4) #12
  %3415 = icmp eq ptr %3414, null
  br i1 %3415, label %3416, label %3439

3416:                                             ; preds = %3412
  %3417 = tail call ptr @__errno_location() #13
  %3418 = load i32, ptr %3417, align 4, !tbaa !5
  %3419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3420 = call i32 @s2n_print_stacktrace(ptr noundef %3419) #12
  %3421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3422 = trunc nuw i8 %3421 to i1
  br i1 %3422, label %3423, label %3427

3423:                                             ; preds = %3416
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = call i32 @fileno(ptr noundef %3424) #12
  %3426 = call i32 @isatty(i32 noundef %3425) #12
  %.not438 = icmp eq i32 %3426, 0
  br i1 %.not438, label %3427, label %3428

3427:                                             ; preds = %3423, %3416
  br label %3428

3428:                                             ; preds = %3423, %3427
  %.str.5.sink1806 = phi ptr [ @.str.5, %3427 ], [ @.str.2, %3423 ]
  store i32 %3418, ptr %3417, align 4, !tbaa !5
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = load i32, ptr @test_count, align 4, !tbaa !5
  %3431 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3432 = call ptr @s2n_strerror(i32 noundef %3431, ptr noundef nonnull @.str.4) #12
  %3433 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3434 = call ptr @s2n_strerror_debug(i32 noundef %3433, ptr noundef nonnull @.str.4) #12
  %3435 = load i32, ptr %3417, align 4, !tbaa !5
  %3436 = call ptr @strerror(i32 noundef %3435) #12
  %3437 = load i32, ptr %3417, align 4, !tbaa !5
  %3438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3429, ptr noundef nonnull %.str.5.sink1806, i32 noundef %3430, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %3432, ptr noundef %3434, ptr noundef %3436, i32 noundef %3437) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3439:                                             ; preds = %3412
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #12
  store i8 0, ptr %30, align 1, !tbaa !34
  %3440 = load i32, ptr @test_count, align 4, !tbaa !5
  %3441 = add nsw i32 %3440, 1
  store i32 %3441, ptr @test_count, align 4, !tbaa !5
  %3442 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3443 = call i32 @s2n_error_get_alert(i32 noundef %3442, ptr noundef nonnull %30) #12
  %3444 = icmp eq i32 %3443, -1
  br i1 %3444, label %3445, label %3468

3445:                                             ; preds = %3439
  %3446 = tail call ptr @__errno_location() #13
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  %3448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3449 = call i32 @s2n_print_stacktrace(ptr noundef %3448) #12
  %3450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3451 = trunc nuw i8 %3450 to i1
  br i1 %3451, label %3452, label %3456

3452:                                             ; preds = %3445
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = call i32 @fileno(ptr noundef %3453) #12
  %3455 = call i32 @isatty(i32 noundef %3454) #12
  %.not437 = icmp eq i32 %3455, 0
  br i1 %.not437, label %3456, label %3457

3456:                                             ; preds = %3452, %3445
  br label %3457

3457:                                             ; preds = %3452, %3456
  %.str.5.sink1815 = phi ptr [ @.str.5, %3456 ], [ @.str.2, %3452 ]
  store i32 %3447, ptr %3446, align 4, !tbaa !5
  %3458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3459 = load i32, ptr @test_count, align 4, !tbaa !5
  %3460 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3461 = call ptr @s2n_strerror(i32 noundef %3460, ptr noundef nonnull @.str.4) #12
  %3462 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3463 = call ptr @s2n_strerror_debug(i32 noundef %3462, ptr noundef nonnull @.str.4) #12
  %3464 = load i32, ptr %3446, align 4, !tbaa !5
  %3465 = call ptr @strerror(i32 noundef %3464) #12
  %3466 = load i32, ptr %3446, align 4, !tbaa !5
  %3467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3458, ptr noundef nonnull %.str.5.sink1815, i32 noundef %3459, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %3461, ptr noundef %3463, ptr noundef %3465, i32 noundef %3466) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3468:                                             ; preds = %3439
  %3469 = load i32, ptr @test_count, align 4, !tbaa !5
  %3470 = add nsw i32 %3469, 1
  store i32 %3470, ptr @test_count, align 4, !tbaa !5
  %3471 = load i8, ptr %30, align 1, !tbaa !34
  %3472 = icmp eq i8 %3471, 46
  br i1 %3472, label %3496, label %3473

3473:                                             ; preds = %3468
  %3474 = tail call ptr @__errno_location() #13
  %3475 = load i32, ptr %3474, align 4, !tbaa !5
  %3476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3477 = call i32 @s2n_print_stacktrace(ptr noundef %3476) #12
  %3478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3479 = trunc nuw i8 %3478 to i1
  br i1 %3479, label %3480, label %3484

3480:                                             ; preds = %3473
  %3481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3482 = call i32 @fileno(ptr noundef %3481) #12
  %3483 = call i32 @isatty(i32 noundef %3482) #12
  %.not433 = icmp eq i32 %3483, 0
  br i1 %.not433, label %3484, label %3485

3484:                                             ; preds = %3480, %3473
  br label %3485

3485:                                             ; preds = %3480, %3484
  %.str.5.sink1824 = phi ptr [ @.str.5, %3484 ], [ @.str.2, %3480 ]
  store i32 %3475, ptr %3474, align 4, !tbaa !5
  %3486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3487 = load i32, ptr @test_count, align 4, !tbaa !5
  %3488 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3489 = call ptr @s2n_strerror(i32 noundef %3488, ptr noundef nonnull @.str.4) #12
  %3490 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3491 = call ptr @s2n_strerror_debug(i32 noundef %3490, ptr noundef nonnull @.str.4) #12
  %3492 = load i32, ptr %3474, align 4, !tbaa !5
  %3493 = call ptr @strerror(i32 noundef %3492) #12
  %3494 = load i32, ptr %3474, align 4, !tbaa !5
  %3495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3486, ptr noundef nonnull %.str.5.sink1824, i32 noundef %3487, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %3489, ptr noundef %3491, ptr noundef %3493, i32 noundef %3494) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3496:                                             ; preds = %3468
  store i32 0, ptr %.pre-phi, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %3497 = tail call ptr @__errno_location() #13
  store i32 0, ptr %3497, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #12
  store ptr null, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #12
  store i32 0, ptr %32, align 4, !tbaa !5
  %3498 = load i32, ptr @test_count, align 4, !tbaa !5
  %3499 = add nsw i32 %3498, 1
  store i32 %3499, ptr @test_count, align 4, !tbaa !5
  %3500 = load ptr, ptr %27, align 8, !tbaa !9
  %3501 = call i32 @s2n_connection_get_client_cert_chain(ptr noundef %3500, ptr noundef nonnull %31, ptr noundef nonnull %32) #12
  %3502 = icmp eq i32 %3501, -1
  br i1 %3502, label %3503, label %3525

3503:                                             ; preds = %3496
  %3504 = load i32, ptr %3497, align 4, !tbaa !5
  %3505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3506 = call i32 @s2n_print_stacktrace(ptr noundef %3505) #12
  %3507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3508 = trunc nuw i8 %3507 to i1
  br i1 %3508, label %3509, label %3513

3509:                                             ; preds = %3503
  %3510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3511 = call i32 @fileno(ptr noundef %3510) #12
  %3512 = call i32 @isatty(i32 noundef %3511) #12
  %.not436 = icmp eq i32 %3512, 0
  br i1 %.not436, label %3513, label %3514

3513:                                             ; preds = %3509, %3503
  br label %3514

3514:                                             ; preds = %3509, %3513
  %.str.5.sink1833 = phi ptr [ @.str.5, %3513 ], [ @.str.2, %3509 ]
  store i32 %3504, ptr %3497, align 4, !tbaa !5
  %3515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3516 = load i32, ptr @test_count, align 4, !tbaa !5
  %3517 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3518 = call ptr @s2n_strerror(i32 noundef %3517, ptr noundef nonnull @.str.4) #12
  %3519 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3520 = call ptr @s2n_strerror_debug(i32 noundef %3519, ptr noundef nonnull @.str.4) #12
  %3521 = load i32, ptr %3497, align 4, !tbaa !5
  %3522 = call ptr @strerror(i32 noundef %3521) #12
  %3523 = load i32, ptr %3497, align 4, !tbaa !5
  %3524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3515, ptr noundef nonnull %.str.5.sink1833, i32 noundef %3516, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %3518, ptr noundef %3520, ptr noundef %3522, i32 noundef %3523) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3525:                                             ; preds = %3496
  %3526 = load i32, ptr @test_count, align 4, !tbaa !5
  %3527 = add nsw i32 %3526, 1
  store i32 %3527, ptr @test_count, align 4, !tbaa !5
  %3528 = load i32, ptr %32, align 4, !tbaa !5
  %.not434 = icmp eq i32 %3528, 0
  br i1 %.not434, label %3529, label %3551

3529:                                             ; preds = %3525
  %3530 = load i32, ptr %3497, align 4, !tbaa !5
  %3531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3532 = call i32 @s2n_print_stacktrace(ptr noundef %3531) #12
  %3533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3534 = trunc nuw i8 %3533 to i1
  br i1 %3534, label %3535, label %3539

3535:                                             ; preds = %3529
  %3536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3537 = call i32 @fileno(ptr noundef %3536) #12
  %3538 = call i32 @isatty(i32 noundef %3537) #12
  %.not435 = icmp eq i32 %3538, 0
  br i1 %.not435, label %3539, label %3540

3539:                                             ; preds = %3535, %3529
  br label %3540

3540:                                             ; preds = %3535, %3539
  %.str.5.sink1842 = phi ptr [ @.str.5, %3539 ], [ @.str.2, %3535 ]
  store i32 %3530, ptr %3497, align 4, !tbaa !5
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = load i32, ptr @test_count, align 4, !tbaa !5
  %3543 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3544 = call ptr @s2n_strerror(i32 noundef %3543, ptr noundef nonnull @.str.4) #12
  %3545 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3546 = call ptr @s2n_strerror_debug(i32 noundef %3545, ptr noundef nonnull @.str.4) #12
  %3547 = load i32, ptr %3497, align 4, !tbaa !5
  %3548 = call ptr @strerror(i32 noundef %3547) #12
  %3549 = load i32, ptr %3497, align 4, !tbaa !5
  %3550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3541, ptr noundef nonnull %.str.5.sink1842, i32 noundef %3542, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 383, ptr noundef %3544, ptr noundef %3546, ptr noundef %3548, i32 noundef %3549) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3551:                                             ; preds = %3525
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #12
  %3552 = call i32 @s2n_io_pair_close(ptr noundef nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  %3553 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  %3554 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %26) #12
  %3555 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  %3556 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %3557 = add nuw nsw i32 %.0403596, 1
  %exitcond.not = icmp eq i32 %3557, 3
  br i1 %exitcond.not, label %2694, label %2699, !llvm.loop !35

3558:                                             ; preds = %2694
  %3559 = load i32, ptr %3497, align 4, !tbaa !5
  %3560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3561 = call i32 @s2n_print_stacktrace(ptr noundef %3560) #12
  %3562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3563 = trunc nuw i8 %3562 to i1
  br i1 %3563, label %3564, label %3568

3564:                                             ; preds = %3558
  %3565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3566 = call i32 @fileno(ptr noundef %3565) #12
  %3567 = call i32 @isatty(i32 noundef %3566) #12
  %.not426 = icmp eq i32 %3567, 0
  br i1 %.not426, label %3568, label %3569

3568:                                             ; preds = %3564, %3558
  br label %3569

3569:                                             ; preds = %3564, %3568
  %.str.5.sink1851 = phi ptr [ @.str.5, %3568 ], [ @.str.2, %3564 ]
  store i32 %3559, ptr %3497, align 4, !tbaa !5
  %3570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3571 = load i32, ptr @test_count, align 4, !tbaa !5
  %3572 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3573 = call ptr @s2n_strerror(i32 noundef %3572, ptr noundef nonnull @.str.4) #12
  %3574 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3575 = call ptr @s2n_strerror_debug(i32 noundef %3574, ptr noundef nonnull @.str.4) #12
  %3576 = load i32, ptr %3497, align 4, !tbaa !5
  %3577 = call ptr @strerror(i32 noundef %3576) #12
  %3578 = load i32, ptr %3497, align 4, !tbaa !5
  %3579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3570, ptr noundef nonnull %.str.5.sink1851, i32 noundef %3571, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %3573, ptr noundef %3575, ptr noundef %3577, i32 noundef %3578) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3580:                                             ; preds = %2694
  %3581 = load i32, ptr @test_count, align 4, !tbaa !5
  %3582 = add nsw i32 %3581, 1
  store i32 %3582, ptr @test_count, align 4, !tbaa !5
  %3583 = call i32 @s2n_config_free(ptr noundef nonnull %235) #12
  %3584 = icmp eq i32 %3583, -1
  br i1 %3584, label %3585, label %3607

3585:                                             ; preds = %3580
  %3586 = load i32, ptr %3497, align 4, !tbaa !5
  %3587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3588 = call i32 @s2n_print_stacktrace(ptr noundef %3587) #12
  %3589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3590 = trunc nuw i8 %3589 to i1
  br i1 %3590, label %3591, label %3595

3591:                                             ; preds = %3585
  %3592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3593 = call i32 @fileno(ptr noundef %3592) #12
  %3594 = call i32 @isatty(i32 noundef %3593) #12
  %.not425 = icmp eq i32 %3594, 0
  br i1 %.not425, label %3595, label %3596

3595:                                             ; preds = %3591, %3585
  br label %3596

3596:                                             ; preds = %3591, %3595
  %.str.5.sink1860 = phi ptr [ @.str.5, %3595 ], [ @.str.2, %3591 ]
  store i32 %3586, ptr %3497, align 4, !tbaa !5
  %3597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3598 = load i32, ptr @test_count, align 4, !tbaa !5
  %3599 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3600 = call ptr @s2n_strerror(i32 noundef %3599, ptr noundef nonnull @.str.4) #12
  %3601 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3602 = call ptr @s2n_strerror_debug(i32 noundef %3601, ptr noundef nonnull @.str.4) #12
  %3603 = load i32, ptr %3497, align 4, !tbaa !5
  %3604 = call ptr @strerror(i32 noundef %3603) #12
  %3605 = load i32, ptr %3497, align 4, !tbaa !5
  %3606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3597, ptr noundef nonnull %.str.5.sink1860, i32 noundef %3598, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 388, ptr noundef %3600, ptr noundef %3602, ptr noundef %3604, i32 noundef %3605) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3607:                                             ; preds = %3580
  call void @free(ptr noundef %151) #12
  call void @free(ptr noundef %179) #12
  call void @free(ptr noundef %207) #12
  %3608 = call i32 @s2n_cleanup() #12
  %3609 = icmp eq i32 %3608, -1
  br i1 %3609, label %3610, label %3632

3610:                                             ; preds = %3607
  %3611 = load i32, ptr %3497, align 4, !tbaa !5
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = call i32 @s2n_print_stacktrace(ptr noundef %3612) #12
  %3614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3615 = trunc nuw i8 %3614 to i1
  br i1 %3615, label %3616, label %3620

3616:                                             ; preds = %3610
  %3617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3618 = call i32 @fileno(ptr noundef %3617) #12
  %3619 = call i32 @isatty(i32 noundef %3618) #12
  %.not424 = icmp eq i32 %3619, 0
  br i1 %.not424, label %3620, label %3621

3620:                                             ; preds = %3616, %3610
  br label %3621

3621:                                             ; preds = %3616, %3620
  %.str.5.sink1869 = phi ptr [ @.str.5, %3620 ], [ @.str.2, %3616 ]
  store i32 %3611, ptr %3497, align 4, !tbaa !5
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = load i32, ptr @test_count, align 4, !tbaa !5
  %3624 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3625 = call ptr @s2n_strerror(i32 noundef %3624, ptr noundef nonnull @.str.4) #12
  %3626 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3627 = call ptr @s2n_strerror_debug(i32 noundef %3626, ptr noundef nonnull @.str.4) #12
  %3628 = load i32, ptr %3497, align 4, !tbaa !5
  %3629 = call ptr @strerror(i32 noundef %3628) #12
  %3630 = load i32, ptr %3497, align 4, !tbaa !5
  %3631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3622, ptr noundef nonnull %.str.5.sink1869, i32 noundef %3623, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %3625, ptr noundef %3627, ptr noundef %3629, i32 noundef %3630) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3632:                                             ; preds = %3607
  %3633 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %3634 = icmp eq i32 %3633, -1
  br i1 %3634, label %3635, label %3657

3635:                                             ; preds = %3632
  %3636 = load i32, ptr %3497, align 4, !tbaa !5
  %3637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3638 = call i32 @s2n_print_stacktrace(ptr noundef %3637) #12
  %3639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3640 = trunc nuw i8 %3639 to i1
  br i1 %3640, label %3641, label %3645

3641:                                             ; preds = %3635
  %3642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3643 = call i32 @fileno(ptr noundef %3642) #12
  %3644 = call i32 @isatty(i32 noundef %3643) #12
  %.not423 = icmp eq i32 %3644, 0
  br i1 %.not423, label %3645, label %3646

3645:                                             ; preds = %3641, %3635
  br label %3646

3646:                                             ; preds = %3641, %3645
  %.str.5.sink1878 = phi ptr [ @.str.5, %3645 ], [ @.str.2, %3641 ]
  store i32 %3636, ptr %3497, align 4, !tbaa !5
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = load i32, ptr @test_count, align 4, !tbaa !5
  %3649 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3650 = call ptr @s2n_strerror(i32 noundef %3649, ptr noundef nonnull @.str.4) #12
  %3651 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %3652 = call ptr @s2n_strerror_debug(i32 noundef %3651, ptr noundef nonnull @.str.4) #12
  %3653 = load i32, ptr %3497, align 4, !tbaa !5
  %3654 = call ptr @strerror(i32 noundef %3653) #12
  %3655 = load i32, ptr %3497, align 4, !tbaa !5
  %3656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3647, ptr noundef nonnull %.str.5.sink1878, i32 noundef %3648, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %3650, ptr noundef %3652, ptr noundef %3654, i32 noundef %3655) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3657:                                             ; preds = %3632
  %3658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3659 = trunc nuw i8 %3658 to i1
  br i1 %3659, label %3660, label %3671

3660:                                             ; preds = %3657
  %3661 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3662 = call i32 @fileno(ptr noundef %3661) #12
  %3663 = call i32 @isatty(i32 noundef %3662) #12
  %.not = icmp eq i32 %3663, 0
  br i1 %.not, label %3671, label %3664

3664:                                             ; preds = %3660
  %3665 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not422 = icmp eq i32 %3665, 0
  %3666 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not422, label %3669, label %3667

3667:                                             ; preds = %3664
  %3668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3666, ptr noundef nonnull @.str.87, i32 noundef %3665) #12
  br label %3678

3669:                                             ; preds = %3664
  %3670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3666, ptr noundef nonnull @.str.88) #12
  br label %3678

3671:                                             ; preds = %3660, %3657
  %3672 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not421 = icmp eq i32 %3672, 0
  %3673 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not421, label %3676, label %3674

3674:                                             ; preds = %3671
  %3675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3673, ptr noundef nonnull @.str.89, i32 noundef %3672) #12
  br label %3678

3676:                                             ; preds = %3671
  %3677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3673, ptr noundef nonnull @.str.90) #12
  br label %3678

3678:                                             ; preds = %3674, %3676, %3667, %3669
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %3) #12
  ret i32 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: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #2

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

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #5

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

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #6

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #5

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #3

declare i32 @s2n_init() local_unnamed_addr #3

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8

declare ptr @s2n_config_new() local_unnamed_addr #3

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #3

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_add_dhparams(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_verify_host_callback(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden zeroext i8 @verify_host_fn(ptr noundef, i64 noundef, ptr noundef) #0

declare i32 @s2n_config_set_verification_ca_location(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_client_auth_type(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_client_cert_used(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_client_auth_type(ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @s2n_debug_info_reset() local_unnamed_addr #3

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_set_server_name(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_io_pair(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_error_get_alert(i32 noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_get_client_cert_chain(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #11

declare i32 @s2n_cleanup() local_unnamed_addr #3

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 nosync nounwind willreturn memory(none) "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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #11 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { cold nounwind }
attributes #15 = { noreturn nounwind }
attributes #16 = { nounwind allocsize(0) }

!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/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 96}
!16 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !17, i64 24, !18, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !19, i64 144, !10, i64 152, !19, i64 160, !19, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !20, i64 304, !21, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !18, i64 448}
!17 = !{!"certs_by_type", !7, i64 0}
!18 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!19 = !{!"long", !7, i64 0}
!20 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!21 = !{!"short", !7, i64 0}
!22 = !{!23, !10, i64 8}
!23 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!24 = !{!25, !21, i64 0}
!25 = !{!"s2n_cipher_preferences", !21, i64 0, !10, i64 8, !12, i64 16}
!26 = !{!27, !7, i64 0}
!27 = !{!"host_verify_data", !7, i64 0, !7, i64 1}
!28 = !{!25, !10, i64 8}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = distinct !{!31, !30}
!32 = distinct !{!32, !30}
!33 = distinct !{!33, !30}
!34 = !{!7, !7, i64 0}
!35 = distinct !{!35, !30}


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