; LLVM IR from aws/s2n-tls :: tests/unit (s2n_optional_client_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.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_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 }
%struct.s2n_blob = type { ptr, i32, i32, 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 [88 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 [65 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.71 = 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 ptr, align 8
  %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 ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca %struct.s2n_cipher_preferences, align 8
  %44 = alloca %struct.s2n_security_policy, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca i64, align 8
  %48 = alloca i32, align 4
  %49 = alloca ptr, align 8
  %50 = alloca i64, align 8
  %51 = alloca i32, align 4
  %52 = alloca %struct.s2n_test_io_pair, 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 i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.s2n_cipher_preferences, align 8
  %75 = alloca %struct.s2n_security_policy, align 8
  %76 = alloca ptr, align 8
  %77 = alloca ptr, align 8
  %78 = alloca i64, align 8
  %79 = alloca i32, align 4
  %80 = alloca ptr, align 8
  %81 = alloca i64, align 8
  %82 = alloca i32, align 4
  %83 = alloca %struct.s2n_test_io_pair, 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 i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_cipher_preferences, align 8
  %105 = alloca %struct.s2n_security_policy, align 8
  %106 = alloca ptr, align 8
  %107 = alloca ptr, align 8
  %108 = alloca i64, align 8
  %109 = alloca i32, align 4
  %110 = alloca ptr, align 8
  %111 = alloca i64, align 8
  %112 = alloca i32, align 4
  %113 = alloca %struct.s2n_test_io_pair, 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 i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca %struct.s2n_cipher_preferences, align 8
  %136 = alloca %struct.s2n_security_policy, align 8
  %137 = alloca ptr, align 8
  %138 = alloca ptr, align 8
  %139 = alloca i64, align 8
  %140 = alloca i32, align 4
  %141 = alloca ptr, align 8
  %142 = alloca i64, align 8
  %143 = alloca i32, align 4
  %144 = alloca %struct.s2n_test_io_pair, 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 i32, align 4
  %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 i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca %struct.s2n_cipher_preferences, align 8
  %168 = alloca %struct.s2n_security_policy, align 8
  %169 = alloca ptr, align 8
  %170 = alloca ptr, align 8
  %171 = alloca i64, align 8
  %172 = alloca i32, align 4
  %173 = alloca ptr, align 8
  %174 = alloca i64, align 8
  %175 = alloca i32, align 4
  %176 = alloca %struct.s2n_test_io_pair, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, 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 i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca %struct.s2n_cipher_preferences, align 8
  %207 = alloca %struct.s2n_security_policy, align 8
  %208 = alloca ptr, align 8
  %209 = alloca ptr, align 8
  %210 = alloca i64, align 8
  %211 = alloca i32, align 4
  %212 = alloca ptr, align 8
  %213 = alloca i64, align 8
  %214 = alloca i32, align 4
  %215 = alloca %struct.s2n_test_io_pair, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca i32, align 4
  %225 = alloca i32, align 4
  %226 = alloca i32, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca i32, align 4
  %236 = alloca %struct.s2n_result, 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) #9
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  store ptr null, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  store ptr null, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  store ptr null, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  store ptr null, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  store ptr null, ptr %13, align 8, !tbaa !9
  br label %237

237:                                              ; preds = %2
  br label %238

238:                                              ; preds = %237
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %239 = load ptr, ptr @stdout, align 8, !tbaa !9
  %240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %239, ptr noundef @.str, ptr noundef @.str.1) #9
  %241 = load ptr, ptr @stdout, align 8, !tbaa !9
  %242 = call i32 @fflush(ptr noundef %241)
  br label %243

243:                                              ; preds = %238
  %244 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %245 = icmp eq i32 %244, -1
  br i1 %245, label %246, label %299

246:                                              ; preds = %243
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %249 = call ptr @__errno_location() #10
  %250 = load i32, ptr %249, align 4, !tbaa !5
  store i32 %250, ptr %14, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = call i32 @s2n_print_stacktrace(ptr noundef %251)
  %253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %254 = trunc i8 %253 to i1
  br i1 %254, label %255, label %277

255:                                              ; preds = %248
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @fileno(ptr noundef %256) #9
  %258 = call i32 @isatty(i32 noundef %257) #9
  %259 = icmp ne i32 %258, 0
  br i1 %259, label %260, label %277

260:                                              ; preds = %255
  %261 = load i32, ptr %14, align 4, !tbaa !5
  %262 = call ptr @__errno_location() #10
  store i32 %261, ptr %262, align 4, !tbaa !5
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror(i32 noundef %266, ptr noundef @.str.4)
  %268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = call ptr @s2n_strerror_debug(i32 noundef %269, ptr noundef @.str.4)
  %271 = call ptr @__errno_location() #10
  %272 = load i32, ptr %271, align 4, !tbaa !5
  %273 = call ptr @strerror(i32 noundef %272) #9
  %274 = call ptr @__errno_location() #10
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef @.str.2, i32 noundef %264, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 37, ptr noundef %267, ptr noundef %270, ptr noundef %273, i32 noundef %275) #9
  br label %294

277:                                              ; preds = %255, %248
  %278 = load i32, ptr %14, align 4, !tbaa !5
  %279 = call ptr @__errno_location() #10
  store i32 %278, ptr %279, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = load i32, ptr @test_count, align 4, !tbaa !5
  %282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call ptr @s2n_strerror(i32 noundef %283, ptr noundef @.str.4)
  %285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = call ptr @s2n_strerror_debug(i32 noundef %286, ptr noundef @.str.4)
  %288 = call ptr @__errno_location() #10
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call ptr @strerror(i32 noundef %289) #9
  %291 = call ptr @__errno_location() #10
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef @.str.5, i32 noundef %281, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 37, ptr noundef %284, ptr noundef %287, ptr noundef %290, i32 noundef %292) #9
  br label %294

294:                                              ; preds = %277, %260
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %295

295:                                              ; preds = %294
  br label %296

296:                                              ; preds = %295
  call void @exit(i32 noundef 1) #11
  unreachable

297:                                              ; No predecessors!
  br label %298

298:                                              ; preds = %297
  br label %299

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

300:                                              ; preds = %299
  br label %301

301:                                              ; preds = %300
  br label %302

302:                                              ; preds = %301
  %303 = load i32, ptr @test_count, align 4, !tbaa !5
  %304 = add nsw i32 %303, 1
  store i32 %304, ptr @test_count, align 4, !tbaa !5
  %305 = call i32 @s2n_enable_atexit()
  %306 = icmp eq i32 %305, -1
  br i1 %306, label %307, label %360

307:                                              ; preds = %302
  br label %308

308:                                              ; preds = %307
  br label %309

309:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %310 = call ptr @__errno_location() #10
  %311 = load i32, ptr %310, align 4, !tbaa !5
  store i32 %311, ptr %15, align 4, !tbaa !5
  %312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %313 = call i32 @s2n_print_stacktrace(ptr noundef %312)
  %314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %315 = trunc i8 %314 to i1
  br i1 %315, label %316, label %338

316:                                              ; preds = %309
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = call i32 @fileno(ptr noundef %317) #9
  %319 = call i32 @isatty(i32 noundef %318) #9
  %320 = icmp ne i32 %319, 0
  br i1 %320, label %321, label %338

321:                                              ; preds = %316
  %322 = load i32, ptr %15, align 4, !tbaa !5
  %323 = call ptr @__errno_location() #10
  store i32 %322, ptr %323, align 4, !tbaa !5
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = load i32, ptr @test_count, align 4, !tbaa !5
  %326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = call ptr @s2n_strerror(i32 noundef %327, ptr noundef @.str.4)
  %329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = call ptr @s2n_strerror_debug(i32 noundef %330, ptr noundef @.str.4)
  %332 = call ptr @__errno_location() #10
  %333 = load i32, ptr %332, align 4, !tbaa !5
  %334 = call ptr @strerror(i32 noundef %333) #9
  %335 = call ptr @__errno_location() #10
  %336 = load i32, ptr %335, align 4, !tbaa !5
  %337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %324, ptr noundef @.str.2, i32 noundef %325, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 37, ptr noundef %328, ptr noundef %331, ptr noundef %334, i32 noundef %336) #9
  br label %355

338:                                              ; preds = %316, %309
  %339 = load i32, ptr %15, align 4, !tbaa !5
  %340 = call ptr @__errno_location() #10
  store i32 %339, ptr %340, align 4, !tbaa !5
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = load i32, ptr @test_count, align 4, !tbaa !5
  %343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @s2n_strerror(i32 noundef %344, ptr noundef @.str.4)
  %346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror_debug(i32 noundef %347, ptr noundef @.str.4)
  %349 = call ptr @__errno_location() #10
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = call ptr @strerror(i32 noundef %350) #9
  %352 = call ptr @__errno_location() #10
  %353 = load i32, ptr %352, align 4, !tbaa !5
  %354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %341, ptr noundef @.str.5, i32 noundef %342, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 37, ptr noundef %345, ptr noundef %348, ptr noundef %351, i32 noundef %353) #9
  br label %355

355:                                              ; preds = %338, %321
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %356

356:                                              ; preds = %355
  br label %357

357:                                              ; preds = %356
  call void @exit(i32 noundef 1) #11
  unreachable

358:                                              ; No predecessors!
  br label %359

359:                                              ; preds = %358
  br label %360

360:                                              ; preds = %359, %302
  br label %361

361:                                              ; preds = %360
  br label %362

362:                                              ; preds = %361
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363
  br label %365

365:                                              ; preds = %364
  %366 = call i32 @s2n_init()
  %367 = icmp eq i32 %366, -1
  br i1 %367, label %368, label %421

368:                                              ; preds = %365
  br label %369

369:                                              ; preds = %368
  br label %370

370:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %371 = call ptr @__errno_location() #10
  %372 = load i32, ptr %371, align 4, !tbaa !5
  store i32 %372, ptr %16, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = call i32 @s2n_print_stacktrace(ptr noundef %373)
  %375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %376 = trunc i8 %375 to i1
  br i1 %376, label %377, label %399

377:                                              ; preds = %370
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = call i32 @fileno(ptr noundef %378) #9
  %380 = call i32 @isatty(i32 noundef %379) #9
  %381 = icmp ne i32 %380, 0
  br i1 %381, label %382, label %399

382:                                              ; preds = %377
  %383 = load i32, ptr %16, align 4, !tbaa !5
  %384 = call ptr @__errno_location() #10
  store i32 %383, ptr %384, align 4, !tbaa !5
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror(i32 noundef %388, ptr noundef @.str.4)
  %390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = call ptr @s2n_strerror_debug(i32 noundef %391, ptr noundef @.str.4)
  %393 = call ptr @__errno_location() #10
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = call ptr @strerror(i32 noundef %394) #9
  %396 = call ptr @__errno_location() #10
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef @.str.2, i32 noundef %386, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 37, ptr noundef %389, ptr noundef %392, ptr noundef %395, i32 noundef %397) #9
  br label %416

399:                                              ; preds = %377, %370
  %400 = load i32, ptr %16, align 4, !tbaa !5
  %401 = call ptr @__errno_location() #10
  store i32 %400, ptr %401, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = load i32, ptr @test_count, align 4, !tbaa !5
  %404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror(i32 noundef %405, ptr noundef @.str.4)
  %407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @s2n_strerror_debug(i32 noundef %408, ptr noundef @.str.4)
  %410 = call ptr @__errno_location() #10
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call ptr @strerror(i32 noundef %411) #9
  %413 = call ptr @__errno_location() #10
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %402, ptr noundef @.str.5, i32 noundef %403, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 37, ptr noundef %406, ptr noundef %409, ptr noundef %412, i32 noundef %414) #9
  br label %416

416:                                              ; preds = %399, %382
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %417

417:                                              ; preds = %416
  br label %418

418:                                              ; preds = %417
  call void @exit(i32 noundef 1) #11
  unreachable

419:                                              ; No predecessors!
  br label %420

420:                                              ; preds = %419
  br label %421

421:                                              ; preds = %420, %365
  br label %422

422:                                              ; preds = %421
  br label %423

423:                                              ; preds = %422
  br label %424

424:                                              ; preds = %423
  br label %425

425:                                              ; preds = %424
  br label %426

426:                                              ; preds = %425
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = add nsw i32 %427, 1
  store i32 %428, ptr @test_count, align 4, !tbaa !5
  %429 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %429, ptr %10, align 8, !tbaa !9
  %430 = icmp eq ptr %429, null
  br i1 %430, label %431, label %484

431:                                              ; preds = %426
  br label %432

432:                                              ; preds = %431
  br label %433

433:                                              ; preds = %432
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %434 = call ptr @__errno_location() #10
  %435 = load i32, ptr %434, align 4, !tbaa !5
  store i32 %435, ptr %17, align 4, !tbaa !5
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @s2n_print_stacktrace(ptr noundef %436)
  %438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %439 = trunc i8 %438 to i1
  br i1 %439, label %440, label %462

440:                                              ; preds = %433
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = call i32 @fileno(ptr noundef %441) #9
  %443 = call i32 @isatty(i32 noundef %442) #9
  %444 = icmp ne i32 %443, 0
  br i1 %444, label %445, label %462

445:                                              ; preds = %440
  %446 = load i32, ptr %17, align 4, !tbaa !5
  %447 = call ptr @__errno_location() #10
  store i32 %446, ptr %447, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = load i32, ptr @test_count, align 4, !tbaa !5
  %450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %451 = load i32, ptr %450, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror(i32 noundef %451, ptr noundef @.str.4)
  %453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %454 = load i32, ptr %453, align 4, !tbaa !5
  %455 = call ptr @s2n_strerror_debug(i32 noundef %454, ptr noundef @.str.4)
  %456 = call ptr @__errno_location() #10
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = call ptr @strerror(i32 noundef %457) #9
  %459 = call ptr @__errno_location() #10
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %448, ptr noundef @.str.2, i32 noundef %449, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 39, ptr noundef %452, ptr noundef %455, ptr noundef %458, i32 noundef %460) #9
  br label %479

462:                                              ; preds = %440, %433
  %463 = load i32, ptr %17, align 4, !tbaa !5
  %464 = call ptr @__errno_location() #10
  store i32 %463, ptr %464, align 4, !tbaa !5
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = load i32, ptr @test_count, align 4, !tbaa !5
  %467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %468 = load i32, ptr %467, align 4, !tbaa !5
  %469 = call ptr @s2n_strerror(i32 noundef %468, ptr noundef @.str.4)
  %470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %471 = load i32, ptr %470, align 4, !tbaa !5
  %472 = call ptr @s2n_strerror_debug(i32 noundef %471, ptr noundef @.str.4)
  %473 = call ptr @__errno_location() #10
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call ptr @strerror(i32 noundef %474) #9
  %476 = call ptr @__errno_location() #10
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %465, ptr noundef @.str.5, i32 noundef %466, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 39, ptr noundef %469, ptr noundef %472, ptr noundef %475, i32 noundef %477) #9
  br label %479

479:                                              ; preds = %462, %445
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %480

480:                                              ; preds = %479
  br label %481

481:                                              ; preds = %480
  call void @exit(i32 noundef 1) #11
  unreachable

482:                                              ; No predecessors!
  br label %483

483:                                              ; preds = %482
  br label %484

484:                                              ; preds = %483, %426
  br label %485

485:                                              ; preds = %484
  br label %486

486:                                              ; preds = %485
  br label %487

487:                                              ; preds = %486
  %488 = load i32, ptr @test_count, align 4, !tbaa !5
  %489 = add nsw i32 %488, 1
  store i32 %489, ptr @test_count, align 4, !tbaa !5
  %490 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %490, ptr %11, align 8, !tbaa !9
  %491 = icmp eq ptr %490, null
  br i1 %491, label %492, label %545

492:                                              ; preds = %487
  br label %493

493:                                              ; preds = %492
  br label %494

494:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %495 = call ptr @__errno_location() #10
  %496 = load i32, ptr %495, align 4, !tbaa !5
  store i32 %496, ptr %18, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = call i32 @s2n_print_stacktrace(ptr noundef %497)
  %499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %500 = trunc i8 %499 to i1
  br i1 %500, label %501, label %523

501:                                              ; preds = %494
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = call i32 @fileno(ptr noundef %502) #9
  %504 = call i32 @isatty(i32 noundef %503) #9
  %505 = icmp ne i32 %504, 0
  br i1 %505, label %506, label %523

506:                                              ; preds = %501
  %507 = load i32, ptr %18, align 4, !tbaa !5
  %508 = call ptr @__errno_location() #10
  store i32 %507, ptr %508, align 4, !tbaa !5
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = load i32, ptr @test_count, align 4, !tbaa !5
  %511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror(i32 noundef %512, ptr noundef @.str.4)
  %514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @s2n_strerror_debug(i32 noundef %515, ptr noundef @.str.4)
  %517 = call ptr @__errno_location() #10
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call ptr @strerror(i32 noundef %518) #9
  %520 = call ptr @__errno_location() #10
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %509, ptr noundef @.str.2, i32 noundef %510, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 40, ptr noundef %513, ptr noundef %516, ptr noundef %519, i32 noundef %521) #9
  br label %540

523:                                              ; preds = %501, %494
  %524 = load i32, ptr %18, align 4, !tbaa !5
  %525 = call ptr @__errno_location() #10
  store i32 %524, ptr %525, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror(i32 noundef %529, ptr noundef @.str.4)
  %531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror_debug(i32 noundef %532, ptr noundef @.str.4)
  %534 = call ptr @__errno_location() #10
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call ptr @strerror(i32 noundef %535) #9
  %537 = call ptr @__errno_location() #10
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef @.str.5, i32 noundef %527, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 40, ptr noundef %530, ptr noundef %533, ptr noundef %536, i32 noundef %538) #9
  br label %540

540:                                              ; preds = %523, %506
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %541

541:                                              ; preds = %540
  br label %542

542:                                              ; preds = %541
  call void @exit(i32 noundef 1) #11
  unreachable

543:                                              ; No predecessors!
  br label %544

544:                                              ; preds = %543
  br label %545

545:                                              ; preds = %544, %487
  br label %546

546:                                              ; preds = %545
  br label %547

547:                                              ; preds = %546
  br label %548

548:                                              ; preds = %547
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = add nsw i32 %549, 1
  store i32 %550, ptr @test_count, align 4, !tbaa !5
  %551 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %551, ptr %12, align 8, !tbaa !9
  %552 = icmp eq ptr %551, null
  br i1 %552, label %553, label %606

553:                                              ; preds = %548
  br label %554

554:                                              ; preds = %553
  br label %555

555:                                              ; preds = %554
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %556 = call ptr @__errno_location() #10
  %557 = load i32, ptr %556, align 4, !tbaa !5
  store i32 %557, ptr %19, align 4, !tbaa !5
  %558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %559 = call i32 @s2n_print_stacktrace(ptr noundef %558)
  %560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %561 = trunc i8 %560 to i1
  br i1 %561, label %562, label %584

562:                                              ; preds = %555
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = call i32 @fileno(ptr noundef %563) #9
  %565 = call i32 @isatty(i32 noundef %564) #9
  %566 = icmp ne i32 %565, 0
  br i1 %566, label %567, label %584

567:                                              ; preds = %562
  %568 = load i32, ptr %19, align 4, !tbaa !5
  %569 = call ptr @__errno_location() #10
  store i32 %568, ptr %569, 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 @.str.4)
  %575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror_debug(i32 noundef %576, ptr noundef @.str.4)
  %578 = call ptr @__errno_location() #10
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = call ptr @strerror(i32 noundef %579) #9
  %581 = call ptr @__errno_location() #10
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %570, ptr noundef @.str.2, i32 noundef %571, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 41, ptr noundef %574, ptr noundef %577, ptr noundef %580, i32 noundef %582) #9
  br label %601

584:                                              ; preds = %562, %555
  %585 = load i32, ptr %19, align 4, !tbaa !5
  %586 = call ptr @__errno_location() #10
  store i32 %585, ptr %586, align 4, !tbaa !5
  %587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %588 = load i32, ptr @test_count, align 4, !tbaa !5
  %589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %590 = load i32, ptr %589, align 4, !tbaa !5
  %591 = call ptr @s2n_strerror(i32 noundef %590, ptr noundef @.str.4)
  %592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = call ptr @s2n_strerror_debug(i32 noundef %593, ptr noundef @.str.4)
  %595 = call ptr @__errno_location() #10
  %596 = load i32, ptr %595, align 4, !tbaa !5
  %597 = call ptr @strerror(i32 noundef %596) #9
  %598 = call ptr @__errno_location() #10
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %587, ptr noundef @.str.5, i32 noundef %588, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 41, ptr noundef %591, ptr noundef %594, ptr noundef %597, i32 noundef %599) #9
  br label %601

601:                                              ; preds = %584, %567
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %602

602:                                              ; preds = %601
  br label %603

603:                                              ; preds = %602
  call void @exit(i32 noundef 1) #11
  unreachable

604:                                              ; No predecessors!
  br label %605

605:                                              ; preds = %604
  br label %606

606:                                              ; preds = %605, %548
  br label %607

607:                                              ; preds = %606
  br label %608

608:                                              ; preds = %607
  br label %609

609:                                              ; preds = %608
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr @test_count, align 4, !tbaa !5
  %612 = call ptr @s2n_config_new()
  store ptr %612, ptr %7, align 8, !tbaa !9
  %613 = icmp eq ptr %612, null
  br i1 %613, label %614, label %667

614:                                              ; preds = %609
  br label %615

615:                                              ; preds = %614
  br label %616

616:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %617 = call ptr @__errno_location() #10
  %618 = load i32, ptr %617, align 4, !tbaa !5
  store i32 %618, ptr %20, align 4, !tbaa !5
  %619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = call i32 @s2n_print_stacktrace(ptr noundef %619)
  %621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %622 = trunc i8 %621 to i1
  br i1 %622, label %623, label %645

623:                                              ; preds = %616
  %624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %625 = call i32 @fileno(ptr noundef %624) #9
  %626 = call i32 @isatty(i32 noundef %625) #9
  %627 = icmp ne i32 %626, 0
  br i1 %627, label %628, label %645

628:                                              ; preds = %623
  %629 = load i32, ptr %20, align 4, !tbaa !5
  %630 = call ptr @__errno_location() #10
  store i32 %629, ptr %630, align 4, !tbaa !5
  %631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %632 = load i32, ptr @test_count, align 4, !tbaa !5
  %633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror(i32 noundef %634, ptr noundef @.str.4)
  %636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = call ptr @s2n_strerror_debug(i32 noundef %637, ptr noundef @.str.4)
  %639 = call ptr @__errno_location() #10
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = call ptr @strerror(i32 noundef %640) #9
  %642 = call ptr @__errno_location() #10
  %643 = load i32, ptr %642, align 4, !tbaa !5
  %644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %631, ptr noundef @.str.2, i32 noundef %632, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 44, ptr noundef %635, ptr noundef %638, ptr noundef %641, i32 noundef %643) #9
  br label %662

645:                                              ; preds = %623, %616
  %646 = load i32, ptr %20, align 4, !tbaa !5
  %647 = call ptr @__errno_location() #10
  store i32 %646, ptr %647, align 4, !tbaa !5
  %648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %649 = load i32, ptr @test_count, align 4, !tbaa !5
  %650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = call ptr @s2n_strerror(i32 noundef %651, ptr noundef @.str.4)
  %653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror_debug(i32 noundef %654, ptr noundef @.str.4)
  %656 = call ptr @__errno_location() #10
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = call ptr @strerror(i32 noundef %657) #9
  %659 = call ptr @__errno_location() #10
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %648, ptr noundef @.str.5, i32 noundef %649, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 44, ptr noundef %652, ptr noundef %655, ptr noundef %658, i32 noundef %660) #9
  br label %662

662:                                              ; preds = %645, %628
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663
  call void @exit(i32 noundef 1) #11
  unreachable

665:                                              ; No predecessors!
  br label %666

666:                                              ; preds = %665
  br label %667

667:                                              ; preds = %666, %609
  br label %668

668:                                              ; preds = %667
  br label %669

669:                                              ; preds = %668
  br label %670

670:                                              ; preds = %669
  %671 = load i32, ptr @test_count, align 4, !tbaa !5
  %672 = add nsw i32 %671, 1
  store i32 %672, ptr @test_count, align 4, !tbaa !5
  %673 = load ptr, ptr %7, align 8, !tbaa !9
  %674 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %673, ptr noundef @.str.12)
  %675 = icmp eq i32 %674, -1
  br i1 %675, label %676, label %729

676:                                              ; preds = %670
  br label %677

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %677
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %679 = call ptr @__errno_location() #10
  %680 = load i32, ptr %679, align 4, !tbaa !5
  store i32 %680, ptr %21, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = call i32 @s2n_print_stacktrace(ptr noundef %681)
  %683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %684 = trunc i8 %683 to i1
  br i1 %684, label %685, label %707

685:                                              ; preds = %678
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = call i32 @fileno(ptr noundef %686) #9
  %688 = call i32 @isatty(i32 noundef %687) #9
  %689 = icmp ne i32 %688, 0
  br i1 %689, label %690, label %707

690:                                              ; preds = %685
  %691 = load i32, ptr %21, align 4, !tbaa !5
  %692 = call ptr @__errno_location() #10
  store i32 %691, ptr %692, align 4, !tbaa !5
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror(i32 noundef %696, ptr noundef @.str.4)
  %698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror_debug(i32 noundef %699, ptr noundef @.str.4)
  %701 = call ptr @__errno_location() #10
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call ptr @strerror(i32 noundef %702) #9
  %704 = call ptr @__errno_location() #10
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %693, ptr noundef @.str.2, i32 noundef %694, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 45, ptr noundef %697, ptr noundef %700, ptr noundef %703, i32 noundef %705) #9
  br label %724

707:                                              ; preds = %685, %678
  %708 = load i32, ptr %21, align 4, !tbaa !5
  %709 = call ptr @__errno_location() #10
  store i32 %708, ptr %709, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror(i32 noundef %713, ptr noundef @.str.4)
  %715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror_debug(i32 noundef %716, ptr noundef @.str.4)
  %718 = call ptr @__errno_location() #10
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @strerror(i32 noundef %719) #9
  %721 = call ptr @__errno_location() #10
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %710, ptr noundef @.str.5, i32 noundef %711, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 45, ptr noundef %714, ptr noundef %717, ptr noundef %720, i32 noundef %722) #9
  br label %724

724:                                              ; preds = %707, %690
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %725

725:                                              ; preds = %724
  br label %726

726:                                              ; preds = %725
  call void @exit(i32 noundef 1) #11
  unreachable

727:                                              ; No predecessors!
  br label %728

728:                                              ; preds = %727
  br label %729

729:                                              ; preds = %728, %670
  br label %730

730:                                              ; preds = %729
  br label %731

731:                                              ; preds = %730
  br label %732

732:                                              ; preds = %731
  %733 = load i32, ptr @test_count, align 4, !tbaa !5
  %734 = add nsw i32 %733, 1
  store i32 %734, ptr @test_count, align 4, !tbaa !5
  %735 = load ptr, ptr %10, align 8, !tbaa !9
  %736 = call i32 @s2n_read_test_pem(ptr noundef @.str.14, ptr noundef %735, i64 noundef 12000)
  %737 = icmp eq i32 %736, -1
  br i1 %737, label %738, label %791

738:                                              ; preds = %732
  br label %739

739:                                              ; preds = %738
  br label %740

740:                                              ; preds = %739
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %741 = call ptr @__errno_location() #10
  %742 = load i32, ptr %741, align 4, !tbaa !5
  store i32 %742, ptr %22, align 4, !tbaa !5
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = call i32 @s2n_print_stacktrace(ptr noundef %743)
  %745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %746 = trunc i8 %745 to i1
  br i1 %746, label %747, label %769

747:                                              ; preds = %740
  %748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %749 = call i32 @fileno(ptr noundef %748) #9
  %750 = call i32 @isatty(i32 noundef %749) #9
  %751 = icmp ne i32 %750, 0
  br i1 %751, label %752, label %769

752:                                              ; preds = %747
  %753 = load i32, ptr %22, align 4, !tbaa !5
  %754 = call ptr @__errno_location() #10
  store i32 %753, ptr %754, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror(i32 noundef %758, ptr noundef @.str.4)
  %760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror_debug(i32 noundef %761, ptr noundef @.str.4)
  %763 = call ptr @__errno_location() #10
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call ptr @strerror(i32 noundef %764) #9
  %766 = call ptr @__errno_location() #10
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %755, ptr noundef @.str.2, i32 noundef %756, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 46, ptr noundef %759, ptr noundef %762, ptr noundef %765, i32 noundef %767) #9
  br label %786

769:                                              ; preds = %747, %740
  %770 = load i32, ptr %22, align 4, !tbaa !5
  %771 = call ptr @__errno_location() #10
  store i32 %770, ptr %771, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror(i32 noundef %775, ptr noundef @.str.4)
  %777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call ptr @s2n_strerror_debug(i32 noundef %778, ptr noundef @.str.4)
  %780 = call ptr @__errno_location() #10
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call ptr @strerror(i32 noundef %781) #9
  %783 = call ptr @__errno_location() #10
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %772, ptr noundef @.str.5, i32 noundef %773, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 46, ptr noundef %776, ptr noundef %779, ptr noundef %782, i32 noundef %784) #9
  br label %786

786:                                              ; preds = %769, %752
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %787

787:                                              ; preds = %786
  br label %788

788:                                              ; preds = %787
  call void @exit(i32 noundef 1) #11
  unreachable

789:                                              ; No predecessors!
  br label %790

790:                                              ; preds = %789
  br label %791

791:                                              ; preds = %790, %732
  br label %792

792:                                              ; preds = %791
  br label %793

793:                                              ; preds = %792
  br label %794

794:                                              ; preds = %793
  %795 = load i32, ptr @test_count, align 4, !tbaa !5
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr @test_count, align 4, !tbaa !5
  %797 = load ptr, ptr %11, align 8, !tbaa !9
  %798 = call i32 @s2n_read_test_pem(ptr noundef @.str.16, ptr noundef %797, i64 noundef 12000)
  %799 = icmp eq i32 %798, -1
  br i1 %799, label %800, label %853

800:                                              ; preds = %794
  br label %801

801:                                              ; preds = %800
  br label %802

802:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %803 = call ptr @__errno_location() #10
  %804 = load i32, ptr %803, align 4, !tbaa !5
  store i32 %804, ptr %23, align 4, !tbaa !5
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @s2n_print_stacktrace(ptr noundef %805)
  %807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %808 = trunc i8 %807 to i1
  br i1 %808, label %809, label %831

809:                                              ; preds = %802
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @fileno(ptr noundef %810) #9
  %812 = call i32 @isatty(i32 noundef %811) #9
  %813 = icmp ne i32 %812, 0
  br i1 %813, label %814, label %831

814:                                              ; preds = %809
  %815 = load i32, ptr %23, align 4, !tbaa !5
  %816 = call ptr @__errno_location() #10
  store i32 %815, ptr %816, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror(i32 noundef %820, ptr noundef @.str.4)
  %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_debug(i32 noundef %823, ptr noundef @.str.4)
  %825 = call ptr @__errno_location() #10
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #9
  %828 = call ptr @__errno_location() #10
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %817, ptr noundef @.str.2, i32 noundef %818, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 47, ptr noundef %821, ptr noundef %824, ptr noundef %827, i32 noundef %829) #9
  br label %848

831:                                              ; preds = %809, %802
  %832 = load i32, ptr %23, align 4, !tbaa !5
  %833 = call ptr @__errno_location() #10
  store i32 %832, ptr %833, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror(i32 noundef %837, ptr noundef @.str.4)
  %839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror_debug(i32 noundef %840, ptr noundef @.str.4)
  %842 = call ptr @__errno_location() #10
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @strerror(i32 noundef %843) #9
  %845 = call ptr @__errno_location() #10
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %834, ptr noundef @.str.5, i32 noundef %835, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 47, ptr noundef %838, ptr noundef %841, ptr noundef %844, i32 noundef %846) #9
  br label %848

848:                                              ; preds = %831, %814
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849
  call void @exit(i32 noundef 1) #11
  unreachable

851:                                              ; No predecessors!
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852, %794
  br label %854

854:                                              ; preds = %853
  br label %855

855:                                              ; preds = %854
  br label %856

856:                                              ; preds = %855
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = load ptr, ptr %12, align 8, !tbaa !9
  %860 = call i32 @s2n_read_test_pem(ptr noundef @.str.18, ptr noundef %859, i64 noundef 12000)
  %861 = icmp eq i32 %860, -1
  br i1 %861, label %862, label %915

862:                                              ; preds = %856
  br label %863

863:                                              ; preds = %862
  br label %864

864:                                              ; preds = %863
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %865 = call ptr @__errno_location() #10
  %866 = load i32, ptr %865, align 4, !tbaa !5
  store i32 %866, ptr %24, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = call i32 @s2n_print_stacktrace(ptr noundef %867)
  %869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %870 = trunc i8 %869 to i1
  br i1 %870, label %871, label %893

871:                                              ; preds = %864
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = call i32 @fileno(ptr noundef %872) #9
  %874 = call i32 @isatty(i32 noundef %873) #9
  %875 = icmp ne i32 %874, 0
  br i1 %875, label %876, label %893

876:                                              ; preds = %871
  %877 = load i32, ptr %24, align 4, !tbaa !5
  %878 = call ptr @__errno_location() #10
  store i32 %877, ptr %878, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror(i32 noundef %882, ptr noundef @.str.4)
  %884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %885 = load i32, ptr %884, align 4, !tbaa !5
  %886 = call ptr @s2n_strerror_debug(i32 noundef %885, ptr noundef @.str.4)
  %887 = call ptr @__errno_location() #10
  %888 = load i32, ptr %887, align 4, !tbaa !5
  %889 = call ptr @strerror(i32 noundef %888) #9
  %890 = call ptr @__errno_location() #10
  %891 = load i32, ptr %890, align 4, !tbaa !5
  %892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %879, ptr noundef @.str.2, i32 noundef %880, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 48, ptr noundef %883, ptr noundef %886, ptr noundef %889, i32 noundef %891) #9
  br label %910

893:                                              ; preds = %871, %864
  %894 = load i32, ptr %24, align 4, !tbaa !5
  %895 = call ptr @__errno_location() #10
  store i32 %894, ptr %895, align 4, !tbaa !5
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror(i32 noundef %899, ptr noundef @.str.4)
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror_debug(i32 noundef %902, ptr noundef @.str.4)
  %904 = call ptr @__errno_location() #10
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @strerror(i32 noundef %905) #9
  %907 = call ptr @__errno_location() #10
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %896, ptr noundef @.str.5, i32 noundef %897, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 48, ptr noundef %900, ptr noundef %903, ptr noundef %906, i32 noundef %908) #9
  br label %910

910:                                              ; preds = %893, %876
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %911

911:                                              ; preds = %910
  br label %912

912:                                              ; preds = %911
  call void @exit(i32 noundef 1) #11
  unreachable

913:                                              ; No predecessors!
  br label %914

914:                                              ; preds = %913
  br label %915

915:                                              ; preds = %914, %856
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  br label %918

918:                                              ; preds = %917
  %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 ptr @s2n_cert_chain_and_key_new()
  store ptr %921, ptr %13, align 8, !tbaa !9
  %922 = icmp eq ptr %921, null
  br i1 %922, label %923, label %976

923:                                              ; preds = %918
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %926 = call ptr @__errno_location() #10
  %927 = load i32, ptr %926, align 4, !tbaa !5
  store i32 %927, ptr %25, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = call i32 @s2n_print_stacktrace(ptr noundef %928)
  %930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %931 = trunc i8 %930 to i1
  br i1 %931, label %932, label %954

932:                                              ; preds = %925
  %933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %934 = call i32 @fileno(ptr noundef %933) #9
  %935 = call i32 @isatty(i32 noundef %934) #9
  %936 = icmp ne i32 %935, 0
  br i1 %936, label %937, label %954

937:                                              ; preds = %932
  %938 = load i32, ptr %25, align 4, !tbaa !5
  %939 = call ptr @__errno_location() #10
  store i32 %938, ptr %939, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %943 = load i32, ptr %942, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror(i32 noundef %943, ptr noundef @.str.4)
  %945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror_debug(i32 noundef %946, ptr noundef @.str.4)
  %948 = call ptr @__errno_location() #10
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = call ptr @strerror(i32 noundef %949) #9
  %951 = call ptr @__errno_location() #10
  %952 = load i32, ptr %951, align 4, !tbaa !5
  %953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %940, ptr noundef @.str.2, i32 noundef %941, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 50, ptr noundef %944, ptr noundef %947, ptr noundef %950, i32 noundef %952) #9
  br label %971

954:                                              ; preds = %932, %925
  %955 = load i32, ptr %25, align 4, !tbaa !5
  %956 = call ptr @__errno_location() #10
  store i32 %955, ptr %956, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror(i32 noundef %960, ptr noundef @.str.4)
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror_debug(i32 noundef %963, ptr noundef @.str.4)
  %965 = call ptr @__errno_location() #10
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @strerror(i32 noundef %966) #9
  %968 = call ptr @__errno_location() #10
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %957, ptr noundef @.str.5, i32 noundef %958, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 50, ptr noundef %961, ptr noundef %964, ptr noundef %967, i32 noundef %969) #9
  br label %971

971:                                              ; preds = %954, %937
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %972

972:                                              ; preds = %971
  br label %973

973:                                              ; preds = %972
  call void @exit(i32 noundef 1) #11
  unreachable

974:                                              ; No predecessors!
  br label %975

975:                                              ; preds = %974
  br label %976

976:                                              ; preds = %975, %918
  br label %977

977:                                              ; preds = %976
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  %980 = load i32, ptr @test_count, align 4, !tbaa !5
  %981 = add nsw i32 %980, 1
  store i32 %981, ptr @test_count, align 4, !tbaa !5
  %982 = load ptr, ptr %13, align 8, !tbaa !9
  %983 = load ptr, ptr %10, align 8, !tbaa !9
  %984 = load ptr, ptr %11, align 8, !tbaa !9
  %985 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %982, ptr noundef %983, ptr noundef %984)
  %986 = icmp eq i32 %985, -1
  br i1 %986, label %987, label %1040

987:                                              ; preds = %979
  br label %988

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %988
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %990 = call ptr @__errno_location() #10
  %991 = load i32, ptr %990, align 4, !tbaa !5
  store i32 %991, ptr %26, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = call i32 @s2n_print_stacktrace(ptr noundef %992)
  %994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %995 = trunc i8 %994 to i1
  br i1 %995, label %996, label %1018

996:                                              ; preds = %989
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = call i32 @fileno(ptr noundef %997) #9
  %999 = call i32 @isatty(i32 noundef %998) #9
  %1000 = icmp ne i32 %999, 0
  br i1 %1000, label %1001, label %1018

1001:                                             ; preds = %996
  %1002 = load i32, ptr %26, align 4, !tbaa !5
  %1003 = call ptr @__errno_location() #10
  store i32 %1002, ptr %1003, align 4, !tbaa !5
  %1004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1005 = load i32, ptr @test_count, align 4, !tbaa !5
  %1006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror(i32 noundef %1007, ptr noundef @.str.4)
  %1009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror_debug(i32 noundef %1010, ptr noundef @.str.4)
  %1012 = call ptr @__errno_location() #10
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @strerror(i32 noundef %1013) #9
  %1015 = call ptr @__errno_location() #10
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1004, ptr noundef @.str.2, i32 noundef %1005, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 51, ptr noundef %1008, ptr noundef %1011, ptr noundef %1014, i32 noundef %1016) #9
  br label %1035

1018:                                             ; preds = %996, %989
  %1019 = load i32, ptr %26, align 4, !tbaa !5
  %1020 = call ptr @__errno_location() #10
  store i32 %1019, ptr %1020, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror(i32 noundef %1024, ptr noundef @.str.4)
  %1026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror_debug(i32 noundef %1027, ptr noundef @.str.4)
  %1029 = call ptr @__errno_location() #10
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @strerror(i32 noundef %1030) #9
  %1032 = call ptr @__errno_location() #10
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef @.str.5, i32 noundef %1022, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 51, ptr noundef %1025, ptr noundef %1028, ptr noundef %1031, i32 noundef %1033) #9
  br label %1035

1035:                                             ; preds = %1018, %1001
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036
  call void @exit(i32 noundef 1) #11
  unreachable

1038:                                             ; No predecessors!
  br label %1039

1039:                                             ; preds = %1038
  br label %1040

1040:                                             ; preds = %1039, %979
  br label %1041

1041:                                             ; preds = %1040
  br label %1042

1042:                                             ; preds = %1041
  br label %1043

1043:                                             ; preds = %1042
  %1044 = load i32, ptr @test_count, align 4, !tbaa !5
  %1045 = add nsw i32 %1044, 1
  store i32 %1045, ptr @test_count, align 4, !tbaa !5
  %1046 = load ptr, ptr %7, align 8, !tbaa !9
  %1047 = load ptr, ptr %13, align 8, !tbaa !9
  %1048 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1046, ptr noundef %1047)
  %1049 = icmp eq i32 %1048, -1
  br i1 %1049, label %1050, label %1103

1050:                                             ; preds = %1043
  br label %1051

1051:                                             ; preds = %1050
  br label %1052

1052:                                             ; preds = %1051
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %1053 = call ptr @__errno_location() #10
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  store i32 %1054, ptr %27, align 4, !tbaa !5
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = call i32 @s2n_print_stacktrace(ptr noundef %1055)
  %1057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1058 = trunc i8 %1057 to i1
  br i1 %1058, label %1059, label %1081

1059:                                             ; preds = %1052
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = call i32 @fileno(ptr noundef %1060) #9
  %1062 = call i32 @isatty(i32 noundef %1061) #9
  %1063 = icmp ne i32 %1062, 0
  br i1 %1063, label %1064, label %1081

1064:                                             ; preds = %1059
  %1065 = load i32, ptr %27, align 4, !tbaa !5
  %1066 = call ptr @__errno_location() #10
  store i32 %1065, ptr %1066, align 4, !tbaa !5
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = load i32, ptr @test_count, align 4, !tbaa !5
  %1069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1070 = load i32, ptr %1069, align 4, !tbaa !5
  %1071 = call ptr @s2n_strerror(i32 noundef %1070, ptr noundef @.str.4)
  %1072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  %1074 = call ptr @s2n_strerror_debug(i32 noundef %1073, ptr noundef @.str.4)
  %1075 = call ptr @__errno_location() #10
  %1076 = load i32, ptr %1075, align 4, !tbaa !5
  %1077 = call ptr @strerror(i32 noundef %1076) #9
  %1078 = call ptr @__errno_location() #10
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1067, ptr noundef @.str.2, i32 noundef %1068, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 52, ptr noundef %1071, ptr noundef %1074, ptr noundef %1077, i32 noundef %1079) #9
  br label %1098

1081:                                             ; preds = %1059, %1052
  %1082 = load i32, ptr %27, align 4, !tbaa !5
  %1083 = call ptr @__errno_location() #10
  store i32 %1082, ptr %1083, align 4, !tbaa !5
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %1086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror(i32 noundef %1087, ptr noundef @.str.4)
  %1089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call ptr @s2n_strerror_debug(i32 noundef %1090, ptr noundef @.str.4)
  %1092 = call ptr @__errno_location() #10
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @strerror(i32 noundef %1093) #9
  %1095 = call ptr @__errno_location() #10
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1084, ptr noundef @.str.5, i32 noundef %1085, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 52, ptr noundef %1088, ptr noundef %1091, ptr noundef %1094, i32 noundef %1096) #9
  br label %1098

1098:                                             ; preds = %1081, %1064
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1099

1099:                                             ; preds = %1098
  br label %1100

1100:                                             ; preds = %1099
  call void @exit(i32 noundef 1) #11
  unreachable

1101:                                             ; No predecessors!
  br label %1102

1102:                                             ; preds = %1101
  br label %1103

1103:                                             ; preds = %1102, %1043
  br label %1104

1104:                                             ; preds = %1103
  br label %1105

1105:                                             ; preds = %1104
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  store ptr null, ptr %28, align 8, !tbaa !9
  br label %1106

1106:                                             ; preds = %1105
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = add nsw i32 %1107, 1
  store i32 %1108, ptr @test_count, align 4, !tbaa !5
  %1109 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %28, ptr noundef @.str.23, ptr noundef @.str.24)
  %1110 = icmp eq i32 %1109, -1
  br i1 %1110, label %1111, label %1164

1111:                                             ; preds = %1106
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %1114 = call ptr @__errno_location() #10
  %1115 = load i32, ptr %1114, align 4, !tbaa !5
  store i32 %1115, ptr %29, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = call i32 @s2n_print_stacktrace(ptr noundef %1116)
  %1118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1119 = trunc i8 %1118 to i1
  br i1 %1119, label %1120, label %1142

1120:                                             ; preds = %1113
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = call i32 @fileno(ptr noundef %1121) #9
  %1123 = call i32 @isatty(i32 noundef %1122) #9
  %1124 = icmp ne i32 %1123, 0
  br i1 %1124, label %1125, label %1142

1125:                                             ; preds = %1120
  %1126 = load i32, ptr %29, align 4, !tbaa !5
  %1127 = call ptr @__errno_location() #10
  store i32 %1126, ptr %1127, align 4, !tbaa !5
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = load i32, ptr @test_count, align 4, !tbaa !5
  %1130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror(i32 noundef %1131, ptr noundef @.str.4)
  %1133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call ptr @s2n_strerror_debug(i32 noundef %1134, ptr noundef @.str.4)
  %1136 = call ptr @__errno_location() #10
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @strerror(i32 noundef %1137) #9
  %1139 = call ptr @__errno_location() #10
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1128, ptr noundef @.str.2, i32 noundef %1129, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 56, ptr noundef %1132, ptr noundef %1135, ptr noundef %1138, i32 noundef %1140) #9
  br label %1159

1142:                                             ; preds = %1120, %1113
  %1143 = load i32, ptr %29, align 4, !tbaa !5
  %1144 = call ptr @__errno_location() #10
  store i32 %1143, ptr %1144, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror(i32 noundef %1148, ptr noundef @.str.4)
  %1150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror_debug(i32 noundef %1151, ptr noundef @.str.4)
  %1153 = call ptr @__errno_location() #10
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @strerror(i32 noundef %1154) #9
  %1156 = call ptr @__errno_location() #10
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1145, ptr noundef @.str.5, i32 noundef %1146, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 56, ptr noundef %1149, ptr noundef %1152, ptr noundef %1155, i32 noundef %1157) #9
  br label %1159

1159:                                             ; preds = %1142, %1125
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

1161:                                             ; preds = %1160
  call void @exit(i32 noundef 1) #11
  unreachable

1162:                                             ; No predecessors!
  br label %1163

1163:                                             ; preds = %1162
  br label %1164

1164:                                             ; preds = %1163, %1106
  br label %1165

1165:                                             ; preds = %1164
  br label %1166

1166:                                             ; preds = %1165
  br label %1167

1167:                                             ; preds = %1166
  %1168 = load i32, ptr @test_count, align 4, !tbaa !5
  %1169 = add nsw i32 %1168, 1
  store i32 %1169, ptr @test_count, align 4, !tbaa !5
  %1170 = load ptr, ptr %7, align 8, !tbaa !9
  %1171 = load ptr, ptr %28, align 8, !tbaa !9
  %1172 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1170, ptr noundef %1171)
  %1173 = icmp eq i32 %1172, -1
  br i1 %1173, label %1174, label %1227

1174:                                             ; preds = %1167
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

1176:                                             ; preds = %1175
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %1177 = call ptr @__errno_location() #10
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  store i32 %1178, ptr %30, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = call i32 @s2n_print_stacktrace(ptr noundef %1179)
  %1181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1182 = trunc i8 %1181 to i1
  br i1 %1182, label %1183, label %1205

1183:                                             ; preds = %1176
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @fileno(ptr noundef %1184) #9
  %1186 = call i32 @isatty(i32 noundef %1185) #9
  %1187 = icmp ne i32 %1186, 0
  br i1 %1187, label %1188, label %1205

1188:                                             ; preds = %1183
  %1189 = load i32, ptr %30, align 4, !tbaa !5
  %1190 = call ptr @__errno_location() #10
  store i32 %1189, ptr %1190, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror(i32 noundef %1194, ptr noundef @.str.4)
  %1196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror_debug(i32 noundef %1197, ptr noundef @.str.4)
  %1199 = call ptr @__errno_location() #10
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call ptr @strerror(i32 noundef %1200) #9
  %1202 = call ptr @__errno_location() #10
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef @.str.2, i32 noundef %1192, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 57, ptr noundef %1195, ptr noundef %1198, ptr noundef %1201, i32 noundef %1203) #9
  br label %1222

1205:                                             ; preds = %1183, %1176
  %1206 = load i32, ptr %30, align 4, !tbaa !5
  %1207 = call ptr @__errno_location() #10
  store i32 %1206, ptr %1207, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = load i32, ptr @test_count, align 4, !tbaa !5
  %1210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror(i32 noundef %1211, ptr noundef @.str.4)
  %1213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror_debug(i32 noundef %1214, ptr noundef @.str.4)
  %1216 = call ptr @__errno_location() #10
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @strerror(i32 noundef %1217) #9
  %1219 = call ptr @__errno_location() #10
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1208, ptr noundef @.str.5, i32 noundef %1209, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 57, ptr noundef %1212, ptr noundef %1215, ptr noundef %1218, i32 noundef %1220) #9
  br label %1222

1222:                                             ; preds = %1205, %1188
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1223

1223:                                             ; preds = %1222
  br label %1224

1224:                                             ; preds = %1223
  call void @exit(i32 noundef 1) #11
  unreachable

1225:                                             ; No predecessors!
  br label %1226

1226:                                             ; preds = %1225
  br label %1227

1227:                                             ; preds = %1226, %1167
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228
  br label %1230

1230:                                             ; preds = %1229
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = add nsw i32 %1231, 1
  store i32 %1232, ptr @test_count, align 4, !tbaa !5
  %1233 = load ptr, ptr %7, align 8, !tbaa !9
  %1234 = load ptr, ptr %12, align 8, !tbaa !9
  %1235 = call i32 @s2n_config_add_dhparams(ptr noundef %1233, ptr noundef %1234)
  %1236 = icmp eq i32 %1235, -1
  br i1 %1236, label %1237, label %1290

1237:                                             ; preds = %1230
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %1240 = call ptr @__errno_location() #10
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  store i32 %1241, ptr %31, align 4, !tbaa !5
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = call i32 @s2n_print_stacktrace(ptr noundef %1242)
  %1244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1245 = trunc i8 %1244 to i1
  br i1 %1245, label %1246, label %1268

1246:                                             ; preds = %1239
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @fileno(ptr noundef %1247) #9
  %1249 = call i32 @isatty(i32 noundef %1248) #9
  %1250 = icmp ne i32 %1249, 0
  br i1 %1250, label %1251, label %1268

1251:                                             ; preds = %1246
  %1252 = load i32, ptr %31, align 4, !tbaa !5
  %1253 = call ptr @__errno_location() #10
  store i32 %1252, ptr %1253, align 4, !tbaa !5
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = load i32, ptr @test_count, align 4, !tbaa !5
  %1256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call ptr @s2n_strerror(i32 noundef %1257, ptr noundef @.str.4)
  %1259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror_debug(i32 noundef %1260, ptr noundef @.str.4)
  %1262 = call ptr @__errno_location() #10
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #9
  %1265 = call ptr @__errno_location() #10
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1254, ptr noundef @.str.2, i32 noundef %1255, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1258, ptr noundef %1261, ptr noundef %1264, i32 noundef %1266) #9
  br label %1285

1268:                                             ; preds = %1246, %1239
  %1269 = load i32, ptr %31, align 4, !tbaa !5
  %1270 = call ptr @__errno_location() #10
  store i32 %1269, ptr %1270, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = load i32, ptr @test_count, align 4, !tbaa !5
  %1273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1274 = load i32, ptr %1273, align 4, !tbaa !5
  %1275 = call ptr @s2n_strerror(i32 noundef %1274, ptr noundef @.str.4)
  %1276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1277 = load i32, ptr %1276, align 4, !tbaa !5
  %1278 = call ptr @s2n_strerror_debug(i32 noundef %1277, ptr noundef @.str.4)
  %1279 = call ptr @__errno_location() #10
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @strerror(i32 noundef %1280) #9
  %1282 = call ptr @__errno_location() #10
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1271, ptr noundef @.str.5, i32 noundef %1272, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1275, ptr noundef %1278, ptr noundef %1281, i32 noundef %1283) #9
  br label %1285

1285:                                             ; preds = %1268, %1251
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1286

1286:                                             ; preds = %1285
  br label %1287

1287:                                             ; preds = %1286
  call void @exit(i32 noundef 1) #11
  unreachable

1288:                                             ; No predecessors!
  br label %1289

1289:                                             ; preds = %1288
  br label %1290

1290:                                             ; preds = %1289, %1230
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

1292:                                             ; preds = %1291
  br label %1293

1293:                                             ; preds = %1292
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %1295 = add nsw i32 %1294, 1
  store i32 %1295, ptr @test_count, align 4, !tbaa !5
  %1296 = load ptr, ptr %7, align 8, !tbaa !9
  %1297 = getelementptr inbounds %struct.s2n_config, ptr %1296, i32 0, i32 7
  %1298 = load ptr, ptr %1297, align 8, !tbaa !15
  store ptr %1298, ptr %8, align 8, !tbaa !9
  %1299 = icmp eq ptr %1298, null
  br i1 %1299, label %1300, label %1353

1300:                                             ; preds = %1293
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %1303 = call ptr @__errno_location() #10
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  store i32 %1304, ptr %32, align 4, !tbaa !5
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = call i32 @s2n_print_stacktrace(ptr noundef %1305)
  %1307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1308 = trunc i8 %1307 to i1
  br i1 %1308, label %1309, label %1331

1309:                                             ; preds = %1302
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = call i32 @fileno(ptr noundef %1310) #9
  %1312 = call i32 @isatty(i32 noundef %1311) #9
  %1313 = icmp ne i32 %1312, 0
  br i1 %1313, label %1314, label %1331

1314:                                             ; preds = %1309
  %1315 = load i32, ptr %32, align 4, !tbaa !5
  %1316 = call ptr @__errno_location() #10
  store i32 %1315, ptr %1316, align 4, !tbaa !5
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = load i32, ptr @test_count, align 4, !tbaa !5
  %1319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call ptr @s2n_strerror(i32 noundef %1320, ptr noundef @.str.4)
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror_debug(i32 noundef %1323, ptr noundef @.str.4)
  %1325 = call ptr @__errno_location() #10
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @strerror(i32 noundef %1326) #9
  %1328 = call ptr @__errno_location() #10
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1317, ptr noundef @.str.2, i32 noundef %1318, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1321, ptr noundef %1324, ptr noundef %1327, i32 noundef %1329) #9
  br label %1348

1331:                                             ; preds = %1309, %1302
  %1332 = load i32, ptr %32, align 4, !tbaa !5
  %1333 = call ptr @__errno_location() #10
  store i32 %1332, ptr %1333, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = call ptr @s2n_strerror(i32 noundef %1337, ptr noundef @.str.4)
  %1339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror_debug(i32 noundef %1340, ptr noundef @.str.4)
  %1342 = call ptr @__errno_location() #10
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @strerror(i32 noundef %1343) #9
  %1345 = call ptr @__errno_location() #10
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1334, ptr noundef @.str.5, i32 noundef %1335, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1338, ptr noundef %1341, ptr noundef %1344, i32 noundef %1346) #9
  br label %1348

1348:                                             ; preds = %1331, %1314
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

1350:                                             ; preds = %1349
  call void @exit(i32 noundef 1) #11
  unreachable

1351:                                             ; No predecessors!
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

1353:                                             ; preds = %1352, %1293
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355
  %1357 = load i32, ptr @test_count, align 4, !tbaa !5
  %1358 = add nsw i32 %1357, 1
  store i32 %1358, ptr @test_count, align 4, !tbaa !5
  %1359 = load ptr, ptr %8, align 8, !tbaa !9
  %1360 = getelementptr inbounds %struct.s2n_security_policy, ptr %1359, i32 0, i32 1
  %1361 = load ptr, ptr %1360, align 8, !tbaa !22
  store ptr %1361, ptr %9, align 8, !tbaa !9
  %1362 = icmp eq ptr %1361, null
  br i1 %1362, label %1363, label %1416

1363:                                             ; preds = %1356
  br label %1364

1364:                                             ; preds = %1363
  br label %1365

1365:                                             ; preds = %1364
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1366 = call ptr @__errno_location() #10
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  store i32 %1367, ptr %33, align 4, !tbaa !5
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = call i32 @s2n_print_stacktrace(ptr noundef %1368)
  %1370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1371 = trunc i8 %1370 to i1
  br i1 %1371, label %1372, label %1394

1372:                                             ; preds = %1365
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = call i32 @fileno(ptr noundef %1373) #9
  %1375 = call i32 @isatty(i32 noundef %1374) #9
  %1376 = icmp ne i32 %1375, 0
  br i1 %1376, label %1377, label %1394

1377:                                             ; preds = %1372
  %1378 = load i32, ptr %33, align 4, !tbaa !5
  %1379 = call ptr @__errno_location() #10
  store i32 %1378, ptr %1379, align 4, !tbaa !5
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror(i32 noundef %1383, ptr noundef @.str.4)
  %1385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror_debug(i32 noundef %1386, ptr noundef @.str.4)
  %1388 = call ptr @__errno_location() #10
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @strerror(i32 noundef %1389) #9
  %1391 = call ptr @__errno_location() #10
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef @.str.2, i32 noundef %1381, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1384, ptr noundef %1387, ptr noundef %1390, i32 noundef %1392) #9
  br label %1411

1394:                                             ; preds = %1372, %1365
  %1395 = load i32, ptr %33, align 4, !tbaa !5
  %1396 = call ptr @__errno_location() #10
  store i32 %1395, ptr %1396, align 4, !tbaa !5
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = load i32, ptr @test_count, align 4, !tbaa !5
  %1399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1400 = load i32, ptr %1399, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror(i32 noundef %1400, ptr noundef @.str.4)
  %1402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1403 = load i32, ptr %1402, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror_debug(i32 noundef %1403, ptr noundef @.str.4)
  %1405 = call ptr @__errno_location() #10
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call ptr @strerror(i32 noundef %1406) #9
  %1408 = call ptr @__errno_location() #10
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1397, ptr noundef @.str.5, i32 noundef %1398, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1401, ptr noundef %1404, ptr noundef %1407, i32 noundef %1409) #9
  br label %1411

1411:                                             ; preds = %1394, %1377
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1412

1412:                                             ; preds = %1411
  br label %1413

1413:                                             ; preds = %1412
  call void @exit(i32 noundef 1) #11
  unreachable

1414:                                             ; No predecessors!
  br label %1415

1415:                                             ; preds = %1414
  br label %1416

1416:                                             ; preds = %1415, %1356
  br label %1417

1417:                                             ; preds = %1416
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

1419:                                             ; preds = %1418
  %1420 = load i32, ptr @test_count, align 4, !tbaa !5
  %1421 = add nsw i32 %1420, 1
  store i32 %1421, ptr @test_count, align 4, !tbaa !5
  %1422 = call ptr @s2n_config_new()
  store ptr %1422, ptr %6, align 8, !tbaa !9
  %1423 = icmp eq ptr %1422, null
  br i1 %1423, label %1424, label %1477

1424:                                             ; preds = %1419
  br label %1425

1425:                                             ; preds = %1424
  br label %1426

1426:                                             ; preds = %1425
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1427 = call ptr @__errno_location() #10
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  store i32 %1428, ptr %34, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @s2n_print_stacktrace(ptr noundef %1429)
  %1431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1432 = trunc i8 %1431 to i1
  br i1 %1432, label %1433, label %1455

1433:                                             ; preds = %1426
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1435 = call i32 @fileno(ptr noundef %1434) #9
  %1436 = call i32 @isatty(i32 noundef %1435) #9
  %1437 = icmp ne i32 %1436, 0
  br i1 %1437, label %1438, label %1455

1438:                                             ; preds = %1433
  %1439 = load i32, ptr %34, align 4, !tbaa !5
  %1440 = call ptr @__errno_location() #10
  store i32 %1439, ptr %1440, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror(i32 noundef %1444, ptr noundef @.str.4)
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror_debug(i32 noundef %1447, ptr noundef @.str.4)
  %1449 = call ptr @__errno_location() #10
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @strerror(i32 noundef %1450) #9
  %1452 = call ptr @__errno_location() #10
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef @.str.2, i32 noundef %1442, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1445, ptr noundef %1448, ptr noundef %1451, i32 noundef %1453) #9
  br label %1472

1455:                                             ; preds = %1433, %1426
  %1456 = load i32, ptr %34, align 4, !tbaa !5
  %1457 = call ptr @__errno_location() #10
  store i32 %1456, ptr %1457, align 4, !tbaa !5
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = load i32, ptr @test_count, align 4, !tbaa !5
  %1460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  %1462 = call ptr @s2n_strerror(i32 noundef %1461, ptr noundef @.str.4)
  %1463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror_debug(i32 noundef %1464, ptr noundef @.str.4)
  %1466 = call ptr @__errno_location() #10
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @strerror(i32 noundef %1467) #9
  %1469 = call ptr @__errno_location() #10
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1458, ptr noundef @.str.5, i32 noundef %1459, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1462, ptr noundef %1465, ptr noundef %1468, i32 noundef %1470) #9
  br label %1472

1472:                                             ; preds = %1455, %1438
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1473

1473:                                             ; preds = %1472
  br label %1474

1474:                                             ; preds = %1473
  call void @exit(i32 noundef 1) #11
  unreachable

1475:                                             ; No predecessors!
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476, %1419
  br label %1478

1478:                                             ; preds = %1477
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1479
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = add nsw i32 %1481, 1
  store i32 %1482, ptr @test_count, align 4, !tbaa !5
  %1483 = load ptr, ptr %6, align 8, !tbaa !9
  %1484 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1483, ptr noundef @.str.12)
  %1485 = icmp eq i32 %1484, -1
  br i1 %1485, label %1486, label %1539

1486:                                             ; preds = %1480
  br label %1487

1487:                                             ; preds = %1486
  br label %1488

1488:                                             ; preds = %1487
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1489 = call ptr @__errno_location() #10
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  store i32 %1490, ptr %35, align 4, !tbaa !5
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = call i32 @s2n_print_stacktrace(ptr noundef %1491)
  %1493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1494 = trunc i8 %1493 to i1
  br i1 %1494, label %1495, label %1517

1495:                                             ; preds = %1488
  %1496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1497 = call i32 @fileno(ptr noundef %1496) #9
  %1498 = call i32 @isatty(i32 noundef %1497) #9
  %1499 = icmp ne i32 %1498, 0
  br i1 %1499, label %1500, label %1517

1500:                                             ; preds = %1495
  %1501 = load i32, ptr %35, align 4, !tbaa !5
  %1502 = call ptr @__errno_location() #10
  store i32 %1501, ptr %1502, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  %1507 = call ptr @s2n_strerror(i32 noundef %1506, ptr noundef @.str.4)
  %1508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = call ptr @s2n_strerror_debug(i32 noundef %1509, ptr noundef @.str.4)
  %1511 = call ptr @__errno_location() #10
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = call ptr @strerror(i32 noundef %1512) #9
  %1514 = call ptr @__errno_location() #10
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  %1516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1503, ptr noundef @.str.2, i32 noundef %1504, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1507, ptr noundef %1510, ptr noundef %1513, i32 noundef %1515) #9
  br label %1534

1517:                                             ; preds = %1495, %1488
  %1518 = load i32, ptr %35, align 4, !tbaa !5
  %1519 = call ptr @__errno_location() #10
  store i32 %1518, ptr %1519, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = load i32, ptr @test_count, align 4, !tbaa !5
  %1522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1523 = load i32, ptr %1522, align 4, !tbaa !5
  %1524 = call ptr @s2n_strerror(i32 noundef %1523, ptr noundef @.str.4)
  %1525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1526 = load i32, ptr %1525, align 4, !tbaa !5
  %1527 = call ptr @s2n_strerror_debug(i32 noundef %1526, ptr noundef @.str.4)
  %1528 = call ptr @__errno_location() #10
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  %1530 = call ptr @strerror(i32 noundef %1529) #9
  %1531 = call ptr @__errno_location() #10
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1520, ptr noundef @.str.5, i32 noundef %1521, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1524, ptr noundef %1527, ptr noundef %1530, i32 noundef %1532) #9
  br label %1534

1534:                                             ; preds = %1517, %1500
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1535

1535:                                             ; preds = %1534
  br label %1536

1536:                                             ; preds = %1535
  call void @exit(i32 noundef 1) #11
  unreachable

1537:                                             ; No predecessors!
  br label %1538

1538:                                             ; preds = %1537
  br label %1539

1539:                                             ; preds = %1538, %1480
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

1541:                                             ; preds = %1540
  br label %1542

1542:                                             ; preds = %1541
  %1543 = load i32, ptr @test_count, align 4, !tbaa !5
  %1544 = add nsw i32 %1543, 1
  store i32 %1544, ptr @test_count, align 4, !tbaa !5
  %1545 = load ptr, ptr %6, align 8, !tbaa !9
  %1546 = load ptr, ptr %13, align 8, !tbaa !9
  %1547 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1545, ptr noundef %1546)
  %1548 = icmp eq i32 %1547, -1
  br i1 %1548, label %1549, label %1602

1549:                                             ; preds = %1542
  br label %1550

1550:                                             ; preds = %1549
  br label %1551

1551:                                             ; preds = %1550
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1552 = call ptr @__errno_location() #10
  %1553 = load i32, ptr %1552, align 4, !tbaa !5
  store i32 %1553, ptr %36, align 4, !tbaa !5
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = call i32 @s2n_print_stacktrace(ptr noundef %1554)
  %1556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1557 = trunc i8 %1556 to i1
  br i1 %1557, label %1558, label %1580

1558:                                             ; preds = %1551
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = call i32 @fileno(ptr noundef %1559) #9
  %1561 = call i32 @isatty(i32 noundef %1560) #9
  %1562 = icmp ne i32 %1561, 0
  br i1 %1562, label %1563, label %1580

1563:                                             ; preds = %1558
  %1564 = load i32, ptr %36, align 4, !tbaa !5
  %1565 = call ptr @__errno_location() #10
  store i32 %1564, ptr %1565, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = load i32, ptr @test_count, align 4, !tbaa !5
  %1568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = call ptr @s2n_strerror(i32 noundef %1569, ptr noundef @.str.4)
  %1571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror_debug(i32 noundef %1572, ptr noundef @.str.4)
  %1574 = call ptr @__errno_location() #10
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = call ptr @strerror(i32 noundef %1575) #9
  %1577 = call ptr @__errno_location() #10
  %1578 = load i32, ptr %1577, align 4, !tbaa !5
  %1579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1566, ptr noundef @.str.2, i32 noundef %1567, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1570, ptr noundef %1573, ptr noundef %1576, i32 noundef %1578) #9
  br label %1597

1580:                                             ; preds = %1558, %1551
  %1581 = load i32, ptr %36, align 4, !tbaa !5
  %1582 = call ptr @__errno_location() #10
  store i32 %1581, ptr %1582, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call ptr @s2n_strerror(i32 noundef %1586, ptr noundef @.str.4)
  %1588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror_debug(i32 noundef %1589, ptr noundef @.str.4)
  %1591 = call ptr @__errno_location() #10
  %1592 = load i32, ptr %1591, align 4, !tbaa !5
  %1593 = call ptr @strerror(i32 noundef %1592) #9
  %1594 = call ptr @__errno_location() #10
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1583, ptr noundef @.str.5, i32 noundef %1584, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1587, ptr noundef %1590, ptr noundef %1593, i32 noundef %1595) #9
  br label %1597

1597:                                             ; preds = %1580, %1563
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598
  call void @exit(i32 noundef 1) #11
  unreachable

1600:                                             ; No predecessors!
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

1602:                                             ; preds = %1601, %1542
  br label %1603

1603:                                             ; preds = %1602
  br label %1604

1604:                                             ; preds = %1603
  br label %1605

1605:                                             ; preds = %1604
  %1606 = load i32, ptr @test_count, align 4, !tbaa !5
  %1607 = add nsw i32 %1606, 1
  store i32 %1607, ptr @test_count, align 4, !tbaa !5
  %1608 = load ptr, ptr %6, align 8, !tbaa !9
  %1609 = call i32 @s2n_config_disable_x509_verification(ptr noundef %1608)
  %1610 = icmp eq i32 %1609, -1
  br i1 %1610, label %1611, label %1664

1611:                                             ; preds = %1605
  br label %1612

1612:                                             ; preds = %1611
  br label %1613

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

1620:                                             ; preds = %1613
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @fileno(ptr noundef %1621) #9
  %1623 = call i32 @isatty(i32 noundef %1622) #9
  %1624 = icmp ne i32 %1623, 0
  br i1 %1624, label %1625, label %1642

1625:                                             ; preds = %1620
  %1626 = load i32, ptr %37, align 4, !tbaa !5
  %1627 = call ptr @__errno_location() #10
  store i32 %1626, ptr %1627, align 4, !tbaa !5
  %1628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1629 = load i32, ptr @test_count, align 4, !tbaa !5
  %1630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror(i32 noundef %1631, ptr noundef @.str.4)
  %1633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror_debug(i32 noundef %1634, ptr noundef @.str.4)
  %1636 = call ptr @__errno_location() #10
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call ptr @strerror(i32 noundef %1637) #9
  %1639 = call ptr @__errno_location() #10
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1628, ptr noundef @.str.2, i32 noundef %1629, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1632, ptr noundef %1635, ptr noundef %1638, i32 noundef %1640) #9
  br label %1659

1642:                                             ; preds = %1620, %1613
  %1643 = load i32, ptr %37, align 4, !tbaa !5
  %1644 = call ptr @__errno_location() #10
  store i32 %1643, ptr %1644, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef @.str.4)
  %1650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror_debug(i32 noundef %1651, ptr noundef @.str.4)
  %1653 = call ptr @__errno_location() #10
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call ptr @strerror(i32 noundef %1654) #9
  %1656 = call ptr @__errno_location() #10
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef @.str.5, i32 noundef %1646, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1649, ptr noundef %1652, ptr noundef %1655, i32 noundef %1657) #9
  br label %1659

1659:                                             ; preds = %1642, %1625
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1660

1660:                                             ; preds = %1659
  br label %1661

1661:                                             ; preds = %1660
  call void @exit(i32 noundef 1) #11
  unreachable

1662:                                             ; No predecessors!
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

1664:                                             ; preds = %1663, %1605
  br label %1665

1665:                                             ; preds = %1664
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

1667:                                             ; preds = %1666
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = add nsw i32 %1668, 1
  store i32 %1669, ptr @test_count, align 4, !tbaa !5
  %1670 = load ptr, ptr %6, align 8, !tbaa !9
  %1671 = call i32 @s2n_config_set_client_auth_type(ptr noundef %1670, i32 noundef 2)
  %1672 = icmp eq i32 %1671, -1
  br i1 %1672, label %1673, label %1726

1673:                                             ; preds = %1667
  br label %1674

1674:                                             ; preds = %1673
  br label %1675

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

1682:                                             ; preds = %1675
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = call i32 @fileno(ptr noundef %1683) #9
  %1685 = call i32 @isatty(i32 noundef %1684) #9
  %1686 = icmp ne i32 %1685, 0
  br i1 %1686, label %1687, label %1704

1687:                                             ; preds = %1682
  %1688 = load i32, ptr %38, align 4, !tbaa !5
  %1689 = call ptr @__errno_location() #10
  store i32 %1688, ptr %1689, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror(i32 noundef %1693, ptr noundef @.str.4)
  %1695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1696 = load i32, ptr %1695, align 4, !tbaa !5
  %1697 = call ptr @s2n_strerror_debug(i32 noundef %1696, ptr noundef @.str.4)
  %1698 = call ptr @__errno_location() #10
  %1699 = load i32, ptr %1698, align 4, !tbaa !5
  %1700 = call ptr @strerror(i32 noundef %1699) #9
  %1701 = call ptr @__errno_location() #10
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1690, ptr noundef @.str.2, i32 noundef %1691, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1694, ptr noundef %1697, ptr noundef %1700, i32 noundef %1702) #9
  br label %1721

1704:                                             ; preds = %1682, %1675
  %1705 = load i32, ptr %38, align 4, !tbaa !5
  %1706 = call ptr @__errno_location() #10
  store i32 %1705, ptr %1706, align 4, !tbaa !5
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1708 = load i32, ptr @test_count, align 4, !tbaa !5
  %1709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror(i32 noundef %1710, ptr noundef @.str.4)
  %1712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = call ptr @s2n_strerror_debug(i32 noundef %1713, ptr noundef @.str.4)
  %1715 = call ptr @__errno_location() #10
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call ptr @strerror(i32 noundef %1716) #9
  %1718 = call ptr @__errno_location() #10
  %1719 = load i32, ptr %1718, align 4, !tbaa !5
  %1720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1707, ptr noundef @.str.5, i32 noundef %1708, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1711, ptr noundef %1714, ptr noundef %1717, i32 noundef %1719) #9
  br label %1721

1721:                                             ; preds = %1704, %1687
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1722

1722:                                             ; preds = %1721
  br label %1723

1723:                                             ; preds = %1722
  call void @exit(i32 noundef 1) #11
  unreachable

1724:                                             ; No predecessors!
  br label %1725

1725:                                             ; preds = %1724
  br label %1726

1726:                                             ; preds = %1725, %1667
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

1729:                                             ; preds = %1728
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = add nsw i32 %1730, 1
  store i32 %1731, ptr @test_count, align 4, !tbaa !5
  %1732 = load ptr, ptr %7, align 8, !tbaa !9
  %1733 = call i32 @s2n_config_set_client_auth_type(ptr noundef %1732, i32 noundef 2)
  %1734 = icmp eq i32 %1733, -1
  br i1 %1734, label %1735, label %1788

1735:                                             ; preds = %1729
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

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

1744:                                             ; preds = %1737
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @fileno(ptr noundef %1745) #9
  %1747 = call i32 @isatty(i32 noundef %1746) #9
  %1748 = icmp ne i32 %1747, 0
  br i1 %1748, label %1749, label %1766

1749:                                             ; preds = %1744
  %1750 = load i32, ptr %39, align 4, !tbaa !5
  %1751 = call ptr @__errno_location() #10
  store i32 %1750, ptr %1751, align 4, !tbaa !5
  %1752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1753 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1755, ptr noundef @.str.4)
  %1757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @s2n_strerror_debug(i32 noundef %1758, ptr noundef @.str.4)
  %1760 = call ptr @__errno_location() #10
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #9
  %1763 = call ptr @__errno_location() #10
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1752, ptr noundef @.str.2, i32 noundef %1753, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1756, ptr noundef %1759, ptr noundef %1762, i32 noundef %1764) #9
  br label %1783

1766:                                             ; preds = %1744, %1737
  %1767 = load i32, ptr %39, align 4, !tbaa !5
  %1768 = call ptr @__errno_location() #10
  store i32 %1767, ptr %1768, align 4, !tbaa !5
  %1769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1770 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1772, ptr noundef @.str.4)
  %1774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @s2n_strerror_debug(i32 noundef %1775, ptr noundef @.str.4)
  %1777 = call ptr @__errno_location() #10
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call ptr @strerror(i32 noundef %1778) #9
  %1780 = call ptr @__errno_location() #10
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1769, ptr noundef @.str.5, i32 noundef %1770, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1773, ptr noundef %1776, ptr noundef %1779, i32 noundef %1781) #9
  br label %1783

1783:                                             ; preds = %1766, %1749
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1784

1784:                                             ; preds = %1783
  br label %1785

1785:                                             ; preds = %1784
  call void @exit(i32 noundef 1) #11
  unreachable

1786:                                             ; No predecessors!
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

1788:                                             ; preds = %1787, %1729
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

1790:                                             ; preds = %1789
  br label %1791

1791:                                             ; preds = %1790
  %1792 = load i32, ptr @test_count, align 4, !tbaa !5
  %1793 = add nsw i32 %1792, 1
  store i32 %1793, ptr @test_count, align 4, !tbaa !5
  %1794 = load ptr, ptr %7, align 8, !tbaa !9
  %1795 = call i32 @s2n_config_disable_x509_verification(ptr noundef %1794)
  %1796 = icmp eq i32 %1795, -1
  br i1 %1796, label %1797, label %1850

1797:                                             ; preds = %1791
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

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

1806:                                             ; preds = %1799
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @fileno(ptr noundef %1807) #9
  %1809 = call i32 @isatty(i32 noundef %1808) #9
  %1810 = icmp ne i32 %1809, 0
  br i1 %1810, label %1811, label %1828

1811:                                             ; preds = %1806
  %1812 = load i32, ptr %40, align 4, !tbaa !5
  %1813 = call ptr @__errno_location() #10
  store i32 %1812, ptr %1813, align 4, !tbaa !5
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = load i32, ptr @test_count, align 4, !tbaa !5
  %1816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef @.str.4)
  %1819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror_debug(i32 noundef %1820, ptr noundef @.str.4)
  %1822 = call ptr @__errno_location() #10
  %1823 = load i32, ptr %1822, align 4, !tbaa !5
  %1824 = call ptr @strerror(i32 noundef %1823) #9
  %1825 = call ptr @__errno_location() #10
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1814, ptr noundef @.str.2, i32 noundef %1815, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1818, ptr noundef %1821, ptr noundef %1824, i32 noundef %1826) #9
  br label %1845

1828:                                             ; preds = %1806, %1799
  %1829 = load i32, ptr %40, align 4, !tbaa !5
  %1830 = call ptr @__errno_location() #10
  store i32 %1829, ptr %1830, align 4, !tbaa !5
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = load i32, ptr @test_count, align 4, !tbaa !5
  %1833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call ptr @s2n_strerror(i32 noundef %1834, ptr noundef @.str.4)
  %1836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef @.str.4)
  %1839 = call ptr @__errno_location() #10
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = call ptr @strerror(i32 noundef %1840) #9
  %1842 = call ptr @__errno_location() #10
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1831, ptr noundef @.str.5, i32 noundef %1832, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1835, ptr noundef %1838, ptr noundef %1841, i32 noundef %1843) #9
  br label %1845

1845:                                             ; preds = %1828, %1811
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1846

1846:                                             ; preds = %1845
  br label %1847

1847:                                             ; preds = %1846
  call void @exit(i32 noundef 1) #11
  unreachable

1848:                                             ; No predecessors!
  br label %1849

1849:                                             ; preds = %1848
  br label %1850

1850:                                             ; preds = %1849, %1791
  br label %1851

1851:                                             ; preds = %1850
  br label %1852

1852:                                             ; preds = %1851
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  store i32 0, ptr %41, align 4, !tbaa !5
  br label %1853

1853:                                             ; preds = %2760, %1852
  %1854 = load i32, ptr %41, align 4, !tbaa !5
  %1855 = load ptr, ptr %8, align 8, !tbaa !9
  %1856 = getelementptr inbounds %struct.s2n_security_policy, ptr %1855, i32 0, i32 1
  %1857 = load ptr, ptr %1856, align 8, !tbaa !22
  %1858 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %1857, i32 0, i32 0
  %1859 = load i16, ptr %1858, align 8, !tbaa !24
  %1860 = zext i16 %1859 to i32
  %1861 = icmp slt i32 %1854, %1860
  br i1 %1861, label %1863, label %1862

1862:                                             ; preds = %1853
  store i32 162, ptr %42, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %2763

1863:                                             ; preds = %1853
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %44) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  store ptr null, ptr %45, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  store ptr null, ptr %46, align 8, !tbaa !9
  br label %1864

1864:                                             ; preds = %1863
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  store i64 24, ptr %47, align 8, !tbaa !26
  %1865 = load i64, ptr %47, align 8, !tbaa !26
  %1866 = icmp ne i64 %1865, 0
  br i1 %1866, label %1867, label %1925

1867:                                             ; preds = %1864
  %1868 = load ptr, ptr %9, align 8, !tbaa !9
  %1869 = load i64, ptr %47, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %43, ptr align 8 %1868, i64 %1869, i1 false)
  %1870 = icmp eq ptr %43, null
  br i1 %1870, label %1871, label %1924

1871:                                             ; preds = %1867
  br label %1872

1872:                                             ; preds = %1871
  br label %1873

1873:                                             ; preds = %1872
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %1874 = call ptr @__errno_location() #10
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  store i32 %1875, ptr %48, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = call i32 @s2n_print_stacktrace(ptr noundef %1876)
  %1878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1879 = trunc i8 %1878 to i1
  br i1 %1879, label %1880, label %1902

1880:                                             ; preds = %1873
  %1881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1882 = call i32 @fileno(ptr noundef %1881) #9
  %1883 = call i32 @isatty(i32 noundef %1882) #9
  %1884 = icmp ne i32 %1883, 0
  br i1 %1884, label %1885, label %1902

1885:                                             ; preds = %1880
  %1886 = load i32, ptr %48, align 4, !tbaa !5
  %1887 = call ptr @__errno_location() #10
  store i32 %1886, ptr %1887, align 4, !tbaa !5
  %1888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1889 = load i32, ptr @test_count, align 4, !tbaa !5
  %1890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror(i32 noundef %1891, ptr noundef @.str.4)
  %1893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = call ptr @s2n_strerror_debug(i32 noundef %1894, ptr noundef @.str.4)
  %1896 = call ptr @__errno_location() #10
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call ptr @strerror(i32 noundef %1897) #9
  %1899 = call ptr @__errno_location() #10
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1888, ptr noundef @.str.2, i32 noundef %1889, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1892, ptr noundef %1895, ptr noundef %1898, i32 noundef %1900) #9
  br label %1919

1902:                                             ; preds = %1880, %1873
  %1903 = load i32, ptr %48, align 4, !tbaa !5
  %1904 = call ptr @__errno_location() #10
  store i32 %1903, ptr %1904, align 4, !tbaa !5
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror(i32 noundef %1908, ptr noundef @.str.4)
  %1910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call ptr @s2n_strerror_debug(i32 noundef %1911, ptr noundef @.str.4)
  %1913 = call ptr @__errno_location() #10
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  %1915 = call ptr @strerror(i32 noundef %1914) #9
  %1916 = call ptr @__errno_location() #10
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1905, ptr noundef @.str.5, i32 noundef %1906, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1909, ptr noundef %1912, ptr noundef %1915, i32 noundef %1917) #9
  br label %1919

1919:                                             ; preds = %1902, %1885
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %1920

1920:                                             ; preds = %1919
  br label %1921

1921:                                             ; preds = %1920
  call void @exit(i32 noundef 1) #11
  unreachable

1922:                                             ; No predecessors!
  br label %1923

1923:                                             ; preds = %1922
  br label %1924

1924:                                             ; preds = %1923, %1867
  br label %1925

1925:                                             ; preds = %1924, %1864
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  br label %1926

1926:                                             ; preds = %1925
  br label %1927

1927:                                             ; preds = %1926
  %1928 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %43, i32 0, i32 0
  store i16 1, ptr %1928, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %1929 = load ptr, ptr %9, align 8, !tbaa !9
  %1930 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %1929, i32 0, i32 1
  %1931 = load ptr, ptr %1930, align 8, !tbaa !27
  %1932 = load i32, ptr %41, align 4, !tbaa !5
  %1933 = sext i32 %1932 to i64
  %1934 = getelementptr inbounds ptr, ptr %1931, i64 %1933
  %1935 = load ptr, ptr %1934, align 8, !tbaa !9
  store ptr %1935, ptr %49, align 8, !tbaa !9
  %1936 = load ptr, ptr %49, align 8, !tbaa !9
  %1937 = load i8, ptr %1936, align 8
  %1938 = and i8 %1937, 1
  %1939 = zext i8 %1938 to i32
  %1940 = icmp ne i32 %1939, 0
  br i1 %1940, label %1942, label %1941

1941:                                             ; preds = %1927
  store i32 164, ptr %42, align 4
  br label %2757

1942:                                             ; preds = %1927
  %1943 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %43, i32 0, i32 1
  store ptr %49, ptr %1943, align 8, !tbaa !27
  br label %1944

1944:                                             ; preds = %1942
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  store i64 64, ptr %50, align 8, !tbaa !26
  %1945 = load i64, ptr %50, align 8, !tbaa !26
  %1946 = icmp ne i64 %1945, 0
  br i1 %1946, label %1947, label %2005

1947:                                             ; preds = %1944
  %1948 = load ptr, ptr %8, align 8, !tbaa !9
  %1949 = load i64, ptr %50, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %44, ptr align 8 %1948, i64 %1949, i1 false)
  %1950 = icmp eq ptr %44, null
  br i1 %1950, label %1951, label %2004

1951:                                             ; preds = %1947
  br label %1952

1952:                                             ; preds = %1951
  br label %1953

1953:                                             ; preds = %1952
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %1954 = call ptr @__errno_location() #10
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  store i32 %1955, ptr %51, align 4, !tbaa !5
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = call i32 @s2n_print_stacktrace(ptr noundef %1956)
  %1958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1959 = trunc i8 %1958 to i1
  br i1 %1959, label %1960, label %1982

1960:                                             ; preds = %1953
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = call i32 @fileno(ptr noundef %1961) #9
  %1963 = call i32 @isatty(i32 noundef %1962) #9
  %1964 = icmp ne i32 %1963, 0
  br i1 %1964, label %1965, label %1982

1965:                                             ; preds = %1960
  %1966 = load i32, ptr %51, align 4, !tbaa !5
  %1967 = call ptr @__errno_location() #10
  store i32 %1966, ptr %1967, align 4, !tbaa !5
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = load i32, ptr @test_count, align 4, !tbaa !5
  %1970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror(i32 noundef %1971, ptr noundef @.str.4)
  %1973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror_debug(i32 noundef %1974, ptr noundef @.str.4)
  %1976 = call ptr @__errno_location() #10
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call ptr @strerror(i32 noundef %1977) #9
  %1979 = call ptr @__errno_location() #10
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1968, ptr noundef @.str.2, i32 noundef %1969, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1972, ptr noundef %1975, ptr noundef %1978, i32 noundef %1980) #9
  br label %1999

1982:                                             ; preds = %1960, %1953
  %1983 = load i32, ptr %51, align 4, !tbaa !5
  %1984 = call ptr @__errno_location() #10
  store i32 %1983, ptr %1984, align 4, !tbaa !5
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = load i32, ptr @test_count, align 4, !tbaa !5
  %1987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call ptr @s2n_strerror(i32 noundef %1988, ptr noundef @.str.4)
  %1990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = call ptr @s2n_strerror_debug(i32 noundef %1991, ptr noundef @.str.4)
  %1993 = call ptr @__errno_location() #10
  %1994 = load i32, ptr %1993, align 4, !tbaa !5
  %1995 = call ptr @strerror(i32 noundef %1994) #9
  %1996 = call ptr @__errno_location() #10
  %1997 = load i32, ptr %1996, align 4, !tbaa !5
  %1998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1985, ptr noundef @.str.5, i32 noundef %1986, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1989, ptr noundef %1992, ptr noundef %1995, i32 noundef %1997) #9
  br label %1999

1999:                                             ; preds = %1982, %1965
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2000

2000:                                             ; preds = %1999
  br label %2001

2001:                                             ; preds = %2000
  call void @exit(i32 noundef 1) #11
  unreachable

2002:                                             ; No predecessors!
  br label %2003

2003:                                             ; preds = %2002
  br label %2004

2004:                                             ; preds = %2003, %1947
  br label %2005

2005:                                             ; preds = %2004, %1944
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %2006

2006:                                             ; preds = %2005
  br label %2007

2007:                                             ; preds = %2006
  %2008 = getelementptr inbounds %struct.s2n_security_policy, ptr %44, i32 0, i32 1
  store ptr %43, ptr %2008, align 8, !tbaa !22
  %2009 = load ptr, ptr %6, align 8, !tbaa !9
  %2010 = getelementptr inbounds %struct.s2n_config, ptr %2009, i32 0, i32 7
  store ptr %44, ptr %2010, align 8, !tbaa !15
  %2011 = load ptr, ptr %7, align 8, !tbaa !9
  %2012 = getelementptr inbounds %struct.s2n_config, ptr %2011, i32 0, i32 7
  store ptr %44, ptr %2012, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  br label %2013

2013:                                             ; preds = %2007
  %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_io_pair_init_non_blocking(ptr noundef %52)
  %2017 = icmp eq i32 %2016, -1
  br i1 %2017, label %2018, label %2071

2018:                                             ; preds = %2013
  br label %2019

2019:                                             ; preds = %2018
  br label %2020

2020:                                             ; preds = %2019
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %2021 = call ptr @__errno_location() #10
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  store i32 %2022, ptr %53, align 4, !tbaa !5
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = call i32 @s2n_print_stacktrace(ptr noundef %2023)
  %2025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2026 = trunc i8 %2025 to i1
  br i1 %2026, label %2027, label %2049

2027:                                             ; preds = %2020
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = call i32 @fileno(ptr noundef %2028) #9
  %2030 = call i32 @isatty(i32 noundef %2029) #9
  %2031 = icmp ne i32 %2030, 0
  br i1 %2031, label %2032, label %2049

2032:                                             ; preds = %2027
  %2033 = load i32, ptr %53, align 4, !tbaa !5
  %2034 = call ptr @__errno_location() #10
  store i32 %2033, ptr %2034, align 4, !tbaa !5
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = load i32, ptr @test_count, align 4, !tbaa !5
  %2037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror(i32 noundef %2038, ptr noundef @.str.4)
  %2040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2041 = load i32, ptr %2040, align 4, !tbaa !5
  %2042 = call ptr @s2n_strerror_debug(i32 noundef %2041, ptr noundef @.str.4)
  %2043 = call ptr @__errno_location() #10
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @strerror(i32 noundef %2044) #9
  %2046 = call ptr @__errno_location() #10
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2035, ptr noundef @.str.2, i32 noundef %2036, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2039, ptr noundef %2042, ptr noundef %2045, i32 noundef %2047) #9
  br label %2066

2049:                                             ; preds = %2027, %2020
  %2050 = load i32, ptr %53, align 4, !tbaa !5
  %2051 = call ptr @__errno_location() #10
  store i32 %2050, ptr %2051, align 4, !tbaa !5
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror(i32 noundef %2055, ptr noundef @.str.4)
  %2057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef @.str.4)
  %2060 = call ptr @__errno_location() #10
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @strerror(i32 noundef %2061) #9
  %2063 = call ptr @__errno_location() #10
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2052, ptr noundef @.str.5, i32 noundef %2053, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2056, ptr noundef %2059, ptr noundef %2062, i32 noundef %2064) #9
  br label %2066

2066:                                             ; preds = %2049, %2032
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2067

2067:                                             ; preds = %2066
  br label %2068

2068:                                             ; preds = %2067
  call void @exit(i32 noundef 1) #11
  unreachable

2069:                                             ; No predecessors!
  br label %2070

2070:                                             ; preds = %2069
  br label %2071

2071:                                             ; preds = %2070, %2013
  br label %2072

2072:                                             ; preds = %2071
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

2074:                                             ; preds = %2073
  %2075 = load i32, ptr @test_count, align 4, !tbaa !5
  %2076 = add nsw i32 %2075, 1
  store i32 %2076, ptr @test_count, align 4, !tbaa !5
  %2077 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2077, ptr %45, align 8, !tbaa !9
  %2078 = icmp eq ptr %2077, null
  br i1 %2078, label %2079, label %2132

2079:                                             ; preds = %2074
  br label %2080

2080:                                             ; preds = %2079
  br label %2081

2081:                                             ; preds = %2080
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2082 = call ptr @__errno_location() #10
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  store i32 %2083, ptr %54, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = call i32 @s2n_print_stacktrace(ptr noundef %2084)
  %2086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2087 = trunc i8 %2086 to i1
  br i1 %2087, label %2088, label %2110

2088:                                             ; preds = %2081
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = call i32 @fileno(ptr noundef %2089) #9
  %2091 = call i32 @isatty(i32 noundef %2090) #9
  %2092 = icmp ne i32 %2091, 0
  br i1 %2092, label %2093, label %2110

2093:                                             ; preds = %2088
  %2094 = load i32, ptr %54, align 4, !tbaa !5
  %2095 = call ptr @__errno_location() #10
  store i32 %2094, ptr %2095, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = load i32, ptr @test_count, align 4, !tbaa !5
  %2098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror(i32 noundef %2099, ptr noundef @.str.4)
  %2101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror_debug(i32 noundef %2102, ptr noundef @.str.4)
  %2104 = call ptr @__errno_location() #10
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @strerror(i32 noundef %2105) #9
  %2107 = call ptr @__errno_location() #10
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2096, ptr noundef @.str.2, i32 noundef %2097, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2100, ptr noundef %2103, ptr noundef %2106, i32 noundef %2108) #9
  br label %2127

2110:                                             ; preds = %2088, %2081
  %2111 = load i32, ptr %54, align 4, !tbaa !5
  %2112 = call ptr @__errno_location() #10
  store i32 %2111, ptr %2112, align 4, !tbaa !5
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = load i32, ptr @test_count, align 4, !tbaa !5
  %2115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror(i32 noundef %2116, ptr noundef @.str.4)
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror_debug(i32 noundef %2119, ptr noundef @.str.4)
  %2121 = call ptr @__errno_location() #10
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @strerror(i32 noundef %2122) #9
  %2124 = call ptr @__errno_location() #10
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2113, ptr noundef @.str.5, i32 noundef %2114, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2117, ptr noundef %2120, ptr noundef %2123, i32 noundef %2125) #9
  br label %2127

2127:                                             ; preds = %2110, %2093
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2128

2128:                                             ; preds = %2127
  br label %2129

2129:                                             ; preds = %2128
  call void @exit(i32 noundef 1) #11
  unreachable

2130:                                             ; No predecessors!
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131, %2074
  br label %2133

2133:                                             ; preds = %2132
  br label %2134

2134:                                             ; preds = %2133
  br label %2135

2135:                                             ; preds = %2134
  %2136 = load i32, ptr @test_count, align 4, !tbaa !5
  %2137 = add nsw i32 %2136, 1
  store i32 %2137, ptr @test_count, align 4, !tbaa !5
  %2138 = load ptr, ptr %45, align 8, !tbaa !9
  %2139 = load ptr, ptr %6, align 8, !tbaa !9
  %2140 = call i32 @s2n_connection_set_config(ptr noundef %2138, ptr noundef %2139)
  %2141 = icmp eq i32 %2140, -1
  br i1 %2141, label %2142, label %2195

2142:                                             ; preds = %2135
  br label %2143

2143:                                             ; preds = %2142
  br label %2144

2144:                                             ; preds = %2143
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %2145 = call ptr @__errno_location() #10
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  store i32 %2146, ptr %55, align 4, !tbaa !5
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = call i32 @s2n_print_stacktrace(ptr noundef %2147)
  %2149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2150 = trunc i8 %2149 to i1
  br i1 %2150, label %2151, label %2173

2151:                                             ; preds = %2144
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = call i32 @fileno(ptr noundef %2152) #9
  %2154 = call i32 @isatty(i32 noundef %2153) #9
  %2155 = icmp ne i32 %2154, 0
  br i1 %2155, label %2156, label %2173

2156:                                             ; preds = %2151
  %2157 = load i32, ptr %55, align 4, !tbaa !5
  %2158 = call ptr @__errno_location() #10
  store i32 %2157, ptr %2158, align 4, !tbaa !5
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = load i32, ptr @test_count, align 4, !tbaa !5
  %2161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call ptr @s2n_strerror(i32 noundef %2162, ptr noundef @.str.4)
  %2164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call ptr @s2n_strerror_debug(i32 noundef %2165, ptr noundef @.str.4)
  %2167 = call ptr @__errno_location() #10
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call ptr @strerror(i32 noundef %2168) #9
  %2170 = call ptr @__errno_location() #10
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2159, ptr noundef @.str.2, i32 noundef %2160, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2163, ptr noundef %2166, ptr noundef %2169, i32 noundef %2171) #9
  br label %2190

2173:                                             ; preds = %2151, %2144
  %2174 = load i32, ptr %55, align 4, !tbaa !5
  %2175 = call ptr @__errno_location() #10
  store i32 %2174, ptr %2175, align 4, !tbaa !5
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = load i32, ptr @test_count, align 4, !tbaa !5
  %2178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  %2180 = call ptr @s2n_strerror(i32 noundef %2179, ptr noundef @.str.4)
  %2181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call ptr @s2n_strerror_debug(i32 noundef %2182, ptr noundef @.str.4)
  %2184 = call ptr @__errno_location() #10
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #9
  %2187 = call ptr @__errno_location() #10
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2176, ptr noundef @.str.5, i32 noundef %2177, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2180, ptr noundef %2183, ptr noundef %2186, i32 noundef %2188) #9
  br label %2190

2190:                                             ; preds = %2173, %2156
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2191

2191:                                             ; preds = %2190
  br label %2192

2192:                                             ; preds = %2191
  call void @exit(i32 noundef 1) #11
  unreachable

2193:                                             ; No predecessors!
  br label %2194

2194:                                             ; preds = %2193
  br label %2195

2195:                                             ; preds = %2194, %2135
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

2197:                                             ; preds = %2196
  br label %2198

2198:                                             ; preds = %2197
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = add nsw i32 %2199, 1
  store i32 %2200, ptr @test_count, align 4, !tbaa !5
  %2201 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2201, ptr %46, align 8, !tbaa !9
  %2202 = icmp eq ptr %2201, null
  br i1 %2202, label %2203, label %2256

2203:                                             ; preds = %2198
  br label %2204

2204:                                             ; preds = %2203
  br label %2205

2205:                                             ; preds = %2204
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %2206 = call ptr @__errno_location() #10
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  store i32 %2207, ptr %56, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = call i32 @s2n_print_stacktrace(ptr noundef %2208)
  %2210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2211 = trunc i8 %2210 to i1
  br i1 %2211, label %2212, label %2234

2212:                                             ; preds = %2205
  %2213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2214 = call i32 @fileno(ptr noundef %2213) #9
  %2215 = call i32 @isatty(i32 noundef %2214) #9
  %2216 = icmp ne i32 %2215, 0
  br i1 %2216, label %2217, label %2234

2217:                                             ; preds = %2212
  %2218 = load i32, ptr %56, align 4, !tbaa !5
  %2219 = call ptr @__errno_location() #10
  store i32 %2218, ptr %2219, align 4, !tbaa !5
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = load i32, ptr @test_count, align 4, !tbaa !5
  %2222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call ptr @s2n_strerror(i32 noundef %2223, ptr noundef @.str.4)
  %2225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  %2227 = call ptr @s2n_strerror_debug(i32 noundef %2226, ptr noundef @.str.4)
  %2228 = call ptr @__errno_location() #10
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call ptr @strerror(i32 noundef %2229) #9
  %2231 = call ptr @__errno_location() #10
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2220, ptr noundef @.str.2, i32 noundef %2221, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2224, ptr noundef %2227, ptr noundef %2230, i32 noundef %2232) #9
  br label %2251

2234:                                             ; preds = %2212, %2205
  %2235 = load i32, ptr %56, align 4, !tbaa !5
  %2236 = call ptr @__errno_location() #10
  store i32 %2235, ptr %2236, align 4, !tbaa !5
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = load i32, ptr @test_count, align 4, !tbaa !5
  %2239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call ptr @s2n_strerror(i32 noundef %2240, ptr noundef @.str.4)
  %2242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call ptr @s2n_strerror_debug(i32 noundef %2243, ptr noundef @.str.4)
  %2245 = call ptr @__errno_location() #10
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call ptr @strerror(i32 noundef %2246) #9
  %2248 = call ptr @__errno_location() #10
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  %2250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2237, ptr noundef @.str.5, i32 noundef %2238, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2241, ptr noundef %2244, ptr noundef %2247, i32 noundef %2249) #9
  br label %2251

2251:                                             ; preds = %2234, %2217
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252
  call void @exit(i32 noundef 1) #11
  unreachable

2254:                                             ; No predecessors!
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

2256:                                             ; preds = %2255, %2198
  br label %2257

2257:                                             ; preds = %2256
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

2259:                                             ; preds = %2258
  %2260 = load i32, ptr @test_count, align 4, !tbaa !5
  %2261 = add nsw i32 %2260, 1
  store i32 %2261, ptr @test_count, align 4, !tbaa !5
  %2262 = load ptr, ptr %46, align 8, !tbaa !9
  %2263 = load ptr, ptr %7, align 8, !tbaa !9
  %2264 = call i32 @s2n_connection_set_config(ptr noundef %2262, ptr noundef %2263)
  %2265 = icmp eq i32 %2264, -1
  br i1 %2265, label %2266, label %2319

2266:                                             ; preds = %2259
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

2268:                                             ; preds = %2267
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2269 = call ptr @__errno_location() #10
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  store i32 %2270, ptr %57, align 4, !tbaa !5
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = call i32 @s2n_print_stacktrace(ptr noundef %2271)
  %2273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2274 = trunc i8 %2273 to i1
  br i1 %2274, label %2275, label %2297

2275:                                             ; preds = %2268
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = call i32 @fileno(ptr noundef %2276) #9
  %2278 = call i32 @isatty(i32 noundef %2277) #9
  %2279 = icmp ne i32 %2278, 0
  br i1 %2279, label %2280, label %2297

2280:                                             ; preds = %2275
  %2281 = load i32, ptr %57, align 4, !tbaa !5
  %2282 = call ptr @__errno_location() #10
  store i32 %2281, ptr %2282, align 4, !tbaa !5
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror(i32 noundef %2286, ptr noundef @.str.4)
  %2288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror_debug(i32 noundef %2289, ptr noundef @.str.4)
  %2291 = call ptr @__errno_location() #10
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call ptr @strerror(i32 noundef %2292) #9
  %2294 = call ptr @__errno_location() #10
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2283, ptr noundef @.str.2, i32 noundef %2284, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2287, ptr noundef %2290, ptr noundef %2293, i32 noundef %2295) #9
  br label %2314

2297:                                             ; preds = %2275, %2268
  %2298 = load i32, ptr %57, align 4, !tbaa !5
  %2299 = call ptr @__errno_location() #10
  store i32 %2298, ptr %2299, align 4, !tbaa !5
  %2300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2301 = load i32, ptr @test_count, align 4, !tbaa !5
  %2302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @s2n_strerror(i32 noundef %2303, ptr noundef @.str.4)
  %2305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call ptr @s2n_strerror_debug(i32 noundef %2306, ptr noundef @.str.4)
  %2308 = call ptr @__errno_location() #10
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call ptr @strerror(i32 noundef %2309) #9
  %2311 = call ptr @__errno_location() #10
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2300, ptr noundef @.str.5, i32 noundef %2301, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2304, ptr noundef %2307, ptr noundef %2310, i32 noundef %2312) #9
  br label %2314

2314:                                             ; preds = %2297, %2280
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  call void @exit(i32 noundef 1) #11
  unreachable

2317:                                             ; No predecessors!
  br label %2318

2318:                                             ; preds = %2317
  br label %2319

2319:                                             ; preds = %2318, %2259
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320
  br label %2322

2322:                                             ; preds = %2321
  %2323 = load i32, ptr @test_count, align 4, !tbaa !5
  %2324 = add nsw i32 %2323, 1
  store i32 %2324, ptr @test_count, align 4, !tbaa !5
  %2325 = load ptr, ptr %45, align 8, !tbaa !9
  %2326 = load ptr, ptr %46, align 8, !tbaa !9
  %2327 = call i32 @s2n_connections_set_io_pair(ptr noundef %2325, ptr noundef %2326, ptr noundef %52)
  %2328 = icmp eq i32 %2327, -1
  br i1 %2328, label %2329, label %2382

2329:                                             ; preds = %2322
  br label %2330

2330:                                             ; preds = %2329
  br label %2331

2331:                                             ; preds = %2330
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  %2332 = call ptr @__errno_location() #10
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  store i32 %2333, ptr %58, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = call i32 @s2n_print_stacktrace(ptr noundef %2334)
  %2336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2337 = trunc i8 %2336 to i1
  br i1 %2337, label %2338, label %2360

2338:                                             ; preds = %2331
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @fileno(ptr noundef %2339) #9
  %2341 = call i32 @isatty(i32 noundef %2340) #9
  %2342 = icmp ne i32 %2341, 0
  br i1 %2342, label %2343, label %2360

2343:                                             ; preds = %2338
  %2344 = load i32, ptr %58, align 4, !tbaa !5
  %2345 = call ptr @__errno_location() #10
  store i32 %2344, ptr %2345, align 4, !tbaa !5
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef @.str.4)
  %2351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror_debug(i32 noundef %2352, ptr noundef @.str.4)
  %2354 = call ptr @__errno_location() #10
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call ptr @strerror(i32 noundef %2355) #9
  %2357 = call ptr @__errno_location() #10
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef @.str.2, i32 noundef %2347, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2350, ptr noundef %2353, ptr noundef %2356, i32 noundef %2358) #9
  br label %2377

2360:                                             ; preds = %2338, %2331
  %2361 = load i32, ptr %58, align 4, !tbaa !5
  %2362 = call ptr @__errno_location() #10
  store i32 %2361, ptr %2362, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @s2n_strerror(i32 noundef %2366, ptr noundef @.str.4)
  %2368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2369 = load i32, ptr %2368, align 4, !tbaa !5
  %2370 = call ptr @s2n_strerror_debug(i32 noundef %2369, ptr noundef @.str.4)
  %2371 = call ptr @__errno_location() #10
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = call ptr @strerror(i32 noundef %2372) #9
  %2374 = call ptr @__errno_location() #10
  %2375 = load i32, ptr %2374, align 4, !tbaa !5
  %2376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2363, ptr noundef @.str.5, i32 noundef %2364, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2367, ptr noundef %2370, ptr noundef %2373, i32 noundef %2375) #9
  br label %2377

2377:                                             ; preds = %2360, %2343
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2378

2378:                                             ; preds = %2377
  br label %2379

2379:                                             ; preds = %2378
  call void @exit(i32 noundef 1) #11
  unreachable

2380:                                             ; No predecessors!
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

2382:                                             ; preds = %2381, %2322
  br label %2383

2383:                                             ; preds = %2382
  br label %2384

2384:                                             ; preds = %2383
  br label %2385

2385:                                             ; preds = %2384
  %2386 = load i32, ptr @test_count, align 4, !tbaa !5
  %2387 = add nsw i32 %2386, 1
  store i32 %2387, ptr @test_count, align 4, !tbaa !5
  %2388 = load ptr, ptr %46, align 8, !tbaa !9
  %2389 = load ptr, ptr %45, align 8, !tbaa !9
  %2390 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2388, ptr noundef %2389)
  %2391 = icmp eq i32 %2390, -1
  br i1 %2391, label %2392, label %2445

2392:                                             ; preds = %2385
  br label %2393

2393:                                             ; preds = %2392
  br label %2394

2394:                                             ; preds = %2393
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #9
  %2395 = call ptr @__errno_location() #10
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  store i32 %2396, ptr %59, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = call i32 @s2n_print_stacktrace(ptr noundef %2397)
  %2399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2400 = trunc i8 %2399 to i1
  br i1 %2400, label %2401, label %2423

2401:                                             ; preds = %2394
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = call i32 @fileno(ptr noundef %2402) #9
  %2404 = call i32 @isatty(i32 noundef %2403) #9
  %2405 = icmp ne i32 %2404, 0
  br i1 %2405, label %2406, label %2423

2406:                                             ; preds = %2401
  %2407 = load i32, ptr %59, align 4, !tbaa !5
  %2408 = call ptr @__errno_location() #10
  store i32 %2407, ptr %2408, align 4, !tbaa !5
  %2409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2410 = load i32, ptr @test_count, align 4, !tbaa !5
  %2411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2412 = load i32, ptr %2411, align 4, !tbaa !5
  %2413 = call ptr @s2n_strerror(i32 noundef %2412, ptr noundef @.str.4)
  %2414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2415 = load i32, ptr %2414, align 4, !tbaa !5
  %2416 = call ptr @s2n_strerror_debug(i32 noundef %2415, ptr noundef @.str.4)
  %2417 = call ptr @__errno_location() #10
  %2418 = load i32, ptr %2417, align 4, !tbaa !5
  %2419 = call ptr @strerror(i32 noundef %2418) #9
  %2420 = call ptr @__errno_location() #10
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2409, ptr noundef @.str.2, i32 noundef %2410, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2413, ptr noundef %2416, ptr noundef %2419, i32 noundef %2421) #9
  br label %2440

2423:                                             ; preds = %2401, %2394
  %2424 = load i32, ptr %59, align 4, !tbaa !5
  %2425 = call ptr @__errno_location() #10
  store i32 %2424, ptr %2425, align 4, !tbaa !5
  %2426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2427 = load i32, ptr @test_count, align 4, !tbaa !5
  %2428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror(i32 noundef %2429, ptr noundef @.str.4)
  %2431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2432 = load i32, ptr %2431, align 4, !tbaa !5
  %2433 = call ptr @s2n_strerror_debug(i32 noundef %2432, ptr noundef @.str.4)
  %2434 = call ptr @__errno_location() #10
  %2435 = load i32, ptr %2434, align 4, !tbaa !5
  %2436 = call ptr @strerror(i32 noundef %2435) #9
  %2437 = call ptr @__errno_location() #10
  %2438 = load i32, ptr %2437, align 4, !tbaa !5
  %2439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2426, ptr noundef @.str.5, i32 noundef %2427, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2430, ptr noundef %2433, ptr noundef %2436, i32 noundef %2438) #9
  br label %2440

2440:                                             ; preds = %2423, %2406
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2441

2441:                                             ; preds = %2440
  br label %2442

2442:                                             ; preds = %2441
  call void @exit(i32 noundef 1) #11
  unreachable

2443:                                             ; No predecessors!
  br label %2444

2444:                                             ; preds = %2443
  br label %2445

2445:                                             ; preds = %2444, %2385
  br label %2446

2446:                                             ; preds = %2445
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

2448:                                             ; preds = %2447
  %2449 = load i32, ptr @test_count, align 4, !tbaa !5
  %2450 = add nsw i32 %2449, 1
  store i32 %2450, ptr @test_count, align 4, !tbaa !5
  %2451 = load ptr, ptr %46, align 8, !tbaa !9
  %2452 = call i32 @s2n_connection_client_cert_used(ptr noundef %2451)
  %2453 = icmp ne i32 %2452, 0
  br i1 %2453, label %2507, label %2454

2454:                                             ; preds = %2448
  br label %2455

2455:                                             ; preds = %2454
  br label %2456

2456:                                             ; preds = %2455
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %2457 = call ptr @__errno_location() #10
  %2458 = load i32, ptr %2457, align 4, !tbaa !5
  store i32 %2458, ptr %60, align 4, !tbaa !5
  %2459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2460 = call i32 @s2n_print_stacktrace(ptr noundef %2459)
  %2461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2462 = trunc i8 %2461 to i1
  br i1 %2462, label %2463, label %2485

2463:                                             ; preds = %2456
  %2464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2465 = call i32 @fileno(ptr noundef %2464) #9
  %2466 = call i32 @isatty(i32 noundef %2465) #9
  %2467 = icmp ne i32 %2466, 0
  br i1 %2467, label %2468, label %2485

2468:                                             ; preds = %2463
  %2469 = load i32, ptr %60, align 4, !tbaa !5
  %2470 = call ptr @__errno_location() #10
  store i32 %2469, ptr %2470, align 4, !tbaa !5
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = load i32, ptr @test_count, align 4, !tbaa !5
  %2473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call ptr @s2n_strerror(i32 noundef %2474, ptr noundef @.str.4)
  %2476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror_debug(i32 noundef %2477, ptr noundef @.str.4)
  %2479 = call ptr @__errno_location() #10
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @strerror(i32 noundef %2480) #9
  %2482 = call ptr @__errno_location() #10
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2471, ptr noundef @.str.2, i32 noundef %2472, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2475, ptr noundef %2478, ptr noundef %2481, i32 noundef %2483) #9
  br label %2502

2485:                                             ; preds = %2463, %2456
  %2486 = load i32, ptr %60, align 4, !tbaa !5
  %2487 = call ptr @__errno_location() #10
  store i32 %2486, ptr %2487, align 4, !tbaa !5
  %2488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2489 = load i32, ptr @test_count, align 4, !tbaa !5
  %2490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call ptr @s2n_strerror(i32 noundef %2491, ptr noundef @.str.4)
  %2493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror_debug(i32 noundef %2494, ptr noundef @.str.4)
  %2496 = call ptr @__errno_location() #10
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = call ptr @strerror(i32 noundef %2497) #9
  %2499 = call ptr @__errno_location() #10
  %2500 = load i32, ptr %2499, align 4, !tbaa !5
  %2501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2488, ptr noundef @.str.5, i32 noundef %2489, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2492, ptr noundef %2495, ptr noundef %2498, i32 noundef %2500) #9
  br label %2502

2502:                                             ; preds = %2485, %2468
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

2504:                                             ; preds = %2503
  call void @exit(i32 noundef 1) #11
  unreachable

2505:                                             ; No predecessors!
  br label %2506

2506:                                             ; preds = %2505
  br label %2507

2507:                                             ; preds = %2506, %2448
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508
  br label %2510

2510:                                             ; preds = %2509
  %2511 = load i32, ptr @test_count, align 4, !tbaa !5
  %2512 = add nsw i32 %2511, 1
  store i32 %2512, ptr @test_count, align 4, !tbaa !5
  %2513 = load ptr, ptr %45, align 8, !tbaa !9
  %2514 = call i32 @s2n_connection_client_cert_used(ptr noundef %2513)
  %2515 = icmp ne i32 %2514, 0
  br i1 %2515, label %2569, label %2516

2516:                                             ; preds = %2510
  br label %2517

2517:                                             ; preds = %2516
  br label %2518

2518:                                             ; preds = %2517
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %2519 = call ptr @__errno_location() #10
  %2520 = load i32, ptr %2519, align 4, !tbaa !5
  store i32 %2520, ptr %61, align 4, !tbaa !5
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = call i32 @s2n_print_stacktrace(ptr noundef %2521)
  %2523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2524 = trunc i8 %2523 to i1
  br i1 %2524, label %2525, label %2547

2525:                                             ; preds = %2518
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = call i32 @fileno(ptr noundef %2526) #9
  %2528 = call i32 @isatty(i32 noundef %2527) #9
  %2529 = icmp ne i32 %2528, 0
  br i1 %2529, label %2530, label %2547

2530:                                             ; preds = %2525
  %2531 = load i32, ptr %61, align 4, !tbaa !5
  %2532 = call ptr @__errno_location() #10
  store i32 %2531, ptr %2532, align 4, !tbaa !5
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2534 = load i32, ptr @test_count, align 4, !tbaa !5
  %2535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror(i32 noundef %2536, ptr noundef @.str.4)
  %2538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror_debug(i32 noundef %2539, ptr noundef @.str.4)
  %2541 = call ptr @__errno_location() #10
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @strerror(i32 noundef %2542) #9
  %2544 = call ptr @__errno_location() #10
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2533, ptr noundef @.str.2, i32 noundef %2534, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2537, ptr noundef %2540, ptr noundef %2543, i32 noundef %2545) #9
  br label %2564

2547:                                             ; preds = %2525, %2518
  %2548 = load i32, ptr %61, align 4, !tbaa !5
  %2549 = call ptr @__errno_location() #10
  store i32 %2548, ptr %2549, align 4, !tbaa !5
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = load i32, ptr @test_count, align 4, !tbaa !5
  %2552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call ptr @s2n_strerror(i32 noundef %2553, ptr noundef @.str.4)
  %2555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call ptr @s2n_strerror_debug(i32 noundef %2556, ptr noundef @.str.4)
  %2558 = call ptr @__errno_location() #10
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call ptr @strerror(i32 noundef %2559) #9
  %2561 = call ptr @__errno_location() #10
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  %2563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2550, ptr noundef @.str.5, i32 noundef %2551, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2554, ptr noundef %2557, ptr noundef %2560, i32 noundef %2562) #9
  br label %2564

2564:                                             ; preds = %2547, %2530
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2565

2565:                                             ; preds = %2564
  br label %2566

2566:                                             ; preds = %2565
  call void @exit(i32 noundef 1) #11
  unreachable

2567:                                             ; No predecessors!
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568, %2510
  br label %2570

2570:                                             ; preds = %2569
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

2572:                                             ; preds = %2571
  %2573 = load i32, ptr @test_count, align 4, !tbaa !5
  %2574 = add nsw i32 %2573, 1
  store i32 %2574, ptr @test_count, align 4, !tbaa !5
  %2575 = load ptr, ptr %45, align 8, !tbaa !9
  %2576 = call i32 @s2n_connection_free(ptr noundef %2575)
  %2577 = icmp eq i32 %2576, -1
  br i1 %2577, label %2578, label %2631

2578:                                             ; preds = %2572
  br label %2579

2579:                                             ; preds = %2578
  br label %2580

2580:                                             ; preds = %2579
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %2581 = call ptr @__errno_location() #10
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  store i32 %2582, ptr %62, align 4, !tbaa !5
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @s2n_print_stacktrace(ptr noundef %2583)
  %2585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2586 = trunc i8 %2585 to i1
  br i1 %2586, label %2587, label %2609

2587:                                             ; preds = %2580
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @fileno(ptr noundef %2588) #9
  %2590 = call i32 @isatty(i32 noundef %2589) #9
  %2591 = icmp ne i32 %2590, 0
  br i1 %2591, label %2592, label %2609

2592:                                             ; preds = %2587
  %2593 = load i32, ptr %62, align 4, !tbaa !5
  %2594 = call ptr @__errno_location() #10
  store i32 %2593, ptr %2594, align 4, !tbaa !5
  %2595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2596 = load i32, ptr @test_count, align 4, !tbaa !5
  %2597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2598 = load i32, ptr %2597, align 4, !tbaa !5
  %2599 = call ptr @s2n_strerror(i32 noundef %2598, ptr noundef @.str.4)
  %2600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2601 = load i32, ptr %2600, align 4, !tbaa !5
  %2602 = call ptr @s2n_strerror_debug(i32 noundef %2601, ptr noundef @.str.4)
  %2603 = call ptr @__errno_location() #10
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @strerror(i32 noundef %2604) #9
  %2606 = call ptr @__errno_location() #10
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2595, ptr noundef @.str.2, i32 noundef %2596, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2599, ptr noundef %2602, ptr noundef %2605, i32 noundef %2607) #9
  br label %2626

2609:                                             ; preds = %2587, %2580
  %2610 = load i32, ptr %62, align 4, !tbaa !5
  %2611 = call ptr @__errno_location() #10
  store i32 %2610, ptr %2611, align 4, !tbaa !5
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = load i32, ptr @test_count, align 4, !tbaa !5
  %2614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror(i32 noundef %2615, ptr noundef @.str.4)
  %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_debug(i32 noundef %2618, ptr noundef @.str.4)
  %2620 = call ptr @__errno_location() #10
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @strerror(i32 noundef %2621) #9
  %2623 = call ptr @__errno_location() #10
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2612, ptr noundef @.str.5, i32 noundef %2613, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2616, ptr noundef %2619, ptr noundef %2622, i32 noundef %2624) #9
  br label %2626

2626:                                             ; preds = %2609, %2592
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2627

2627:                                             ; preds = %2626
  br label %2628

2628:                                             ; preds = %2627
  call void @exit(i32 noundef 1) #11
  unreachable

2629:                                             ; No predecessors!
  br label %2630

2630:                                             ; preds = %2629
  br label %2631

2631:                                             ; preds = %2630, %2572
  br label %2632

2632:                                             ; preds = %2631
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

2634:                                             ; preds = %2633
  %2635 = load i32, ptr @test_count, align 4, !tbaa !5
  %2636 = add nsw i32 %2635, 1
  store i32 %2636, ptr @test_count, align 4, !tbaa !5
  %2637 = load ptr, ptr %46, align 8, !tbaa !9
  %2638 = call i32 @s2n_connection_free(ptr noundef %2637)
  %2639 = icmp eq i32 %2638, -1
  br i1 %2639, label %2640, label %2693

2640:                                             ; preds = %2634
  br label %2641

2641:                                             ; preds = %2640
  br label %2642

2642:                                             ; preds = %2641
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %2643 = call ptr @__errno_location() #10
  %2644 = load i32, ptr %2643, align 4, !tbaa !5
  store i32 %2644, ptr %63, align 4, !tbaa !5
  %2645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2646 = call i32 @s2n_print_stacktrace(ptr noundef %2645)
  %2647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2648 = trunc i8 %2647 to i1
  br i1 %2648, label %2649, label %2671

2649:                                             ; preds = %2642
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = call i32 @fileno(ptr noundef %2650) #9
  %2652 = call i32 @isatty(i32 noundef %2651) #9
  %2653 = icmp ne i32 %2652, 0
  br i1 %2653, label %2654, label %2671

2654:                                             ; preds = %2649
  %2655 = load i32, ptr %63, align 4, !tbaa !5
  %2656 = call ptr @__errno_location() #10
  store i32 %2655, ptr %2656, align 4, !tbaa !5
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = load i32, ptr @test_count, align 4, !tbaa !5
  %2659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror(i32 noundef %2660, ptr noundef @.str.4)
  %2662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @s2n_strerror_debug(i32 noundef %2663, ptr noundef @.str.4)
  %2665 = call ptr @__errno_location() #10
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call ptr @strerror(i32 noundef %2666) #9
  %2668 = call ptr @__errno_location() #10
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2657, ptr noundef @.str.2, i32 noundef %2658, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2661, ptr noundef %2664, ptr noundef %2667, i32 noundef %2669) #9
  br label %2688

2671:                                             ; preds = %2649, %2642
  %2672 = load i32, ptr %63, align 4, !tbaa !5
  %2673 = call ptr @__errno_location() #10
  store i32 %2672, ptr %2673, align 4, !tbaa !5
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = load i32, ptr @test_count, align 4, !tbaa !5
  %2676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror(i32 noundef %2677, ptr noundef @.str.4)
  %2679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror_debug(i32 noundef %2680, ptr noundef @.str.4)
  %2682 = call ptr @__errno_location() #10
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @strerror(i32 noundef %2683) #9
  %2685 = call ptr @__errno_location() #10
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2674, ptr noundef @.str.5, i32 noundef %2675, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2678, ptr noundef %2681, ptr noundef %2684, i32 noundef %2686) #9
  br label %2688

2688:                                             ; preds = %2671, %2654
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %2689

2689:                                             ; preds = %2688
  br label %2690

2690:                                             ; preds = %2689
  call void @exit(i32 noundef 1) #11
  unreachable

2691:                                             ; No predecessors!
  br label %2692

2692:                                             ; preds = %2691
  br label %2693

2693:                                             ; preds = %2692, %2634
  br label %2694

2694:                                             ; preds = %2693
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

2696:                                             ; preds = %2695
  %2697 = load i32, ptr @test_count, align 4, !tbaa !5
  %2698 = add nsw i32 %2697, 1
  store i32 %2698, ptr @test_count, align 4, !tbaa !5
  %2699 = call i32 @s2n_io_pair_close(ptr noundef %52)
  %2700 = icmp eq i32 %2699, -1
  br i1 %2700, label %2701, label %2754

2701:                                             ; preds = %2696
  br label %2702

2702:                                             ; preds = %2701
  br label %2703

2703:                                             ; preds = %2702
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  %2704 = call ptr @__errno_location() #10
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  store i32 %2705, ptr %64, align 4, !tbaa !5
  %2706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2707 = call i32 @s2n_print_stacktrace(ptr noundef %2706)
  %2708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2709 = trunc i8 %2708 to i1
  br i1 %2709, label %2710, label %2732

2710:                                             ; preds = %2703
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = call i32 @fileno(ptr noundef %2711) #9
  %2713 = call i32 @isatty(i32 noundef %2712) #9
  %2714 = icmp ne i32 %2713, 0
  br i1 %2714, label %2715, label %2732

2715:                                             ; preds = %2710
  %2716 = load i32, ptr %64, align 4, !tbaa !5
  %2717 = call ptr @__errno_location() #10
  store i32 %2716, ptr %2717, align 4, !tbaa !5
  %2718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2719 = load i32, ptr @test_count, align 4, !tbaa !5
  %2720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @s2n_strerror(i32 noundef %2721, ptr noundef @.str.4)
  %2723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror_debug(i32 noundef %2724, ptr noundef @.str.4)
  %2726 = call ptr @__errno_location() #10
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call ptr @strerror(i32 noundef %2727) #9
  %2729 = call ptr @__errno_location() #10
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2718, ptr noundef @.str.2, i32 noundef %2719, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2722, ptr noundef %2725, ptr noundef %2728, i32 noundef %2730) #9
  br label %2749

2732:                                             ; preds = %2710, %2703
  %2733 = load i32, ptr %64, align 4, !tbaa !5
  %2734 = call ptr @__errno_location() #10
  store i32 %2733, ptr %2734, align 4, !tbaa !5
  %2735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2736 = load i32, ptr @test_count, align 4, !tbaa !5
  %2737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2738 = load i32, ptr %2737, align 4, !tbaa !5
  %2739 = call ptr @s2n_strerror(i32 noundef %2738, ptr noundef @.str.4)
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror_debug(i32 noundef %2741, ptr noundef @.str.4)
  %2743 = call ptr @__errno_location() #10
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call ptr @strerror(i32 noundef %2744) #9
  %2746 = call ptr @__errno_location() #10
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2735, ptr noundef @.str.5, i32 noundef %2736, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2739, ptr noundef %2742, ptr noundef %2745, i32 noundef %2747) #9
  br label %2749

2749:                                             ; preds = %2732, %2715
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %2750

2750:                                             ; preds = %2749
  br label %2751

2751:                                             ; preds = %2750
  call void @exit(i32 noundef 1) #11
  unreachable

2752:                                             ; No predecessors!
  br label %2753

2753:                                             ; preds = %2752
  br label %2754

2754:                                             ; preds = %2753, %2696
  br label %2755

2755:                                             ; preds = %2754
  br label %2756

2756:                                             ; preds = %2755
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  store i32 0, ptr %42, align 4
  br label %2757

2757:                                             ; preds = %2756, %1941
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #9
  %2758 = load i32, ptr %42, align 4
  switch i32 %2758, label %10829 [
    i32 0, label %2759
    i32 164, label %2760
  ]

2759:                                             ; preds = %2757
  br label %2760

2760:                                             ; preds = %2759, %2757
  %2761 = load i32, ptr %41, align 4, !tbaa !5
  %2762 = add nsw i32 %2761, 1
  store i32 %2762, ptr %41, align 4, !tbaa !5
  br label %1853, !llvm.loop !28

2763:                                             ; preds = %1862
  br label %2764

2764:                                             ; preds = %2763
  %2765 = load i32, ptr @test_count, align 4, !tbaa !5
  %2766 = add nsw i32 %2765, 1
  store i32 %2766, ptr @test_count, align 4, !tbaa !5
  %2767 = load ptr, ptr %6, align 8, !tbaa !9
  %2768 = call i32 @s2n_config_free(ptr noundef %2767)
  %2769 = icmp eq i32 %2768, -1
  br i1 %2769, label %2770, label %2823

2770:                                             ; preds = %2764
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

2772:                                             ; preds = %2771
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %2773 = call ptr @__errno_location() #10
  %2774 = load i32, ptr %2773, align 4, !tbaa !5
  store i32 %2774, ptr %65, align 4, !tbaa !5
  %2775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2776 = call i32 @s2n_print_stacktrace(ptr noundef %2775)
  %2777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2778 = trunc i8 %2777 to i1
  br i1 %2778, label %2779, label %2801

2779:                                             ; preds = %2772
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = call i32 @fileno(ptr noundef %2780) #9
  %2782 = call i32 @isatty(i32 noundef %2781) #9
  %2783 = icmp ne i32 %2782, 0
  br i1 %2783, label %2784, label %2801

2784:                                             ; preds = %2779
  %2785 = load i32, ptr %65, align 4, !tbaa !5
  %2786 = call ptr @__errno_location() #10
  store i32 %2785, ptr %2786, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = load i32, ptr @test_count, align 4, !tbaa !5
  %2789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call ptr @s2n_strerror(i32 noundef %2790, ptr noundef @.str.4)
  %2792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror_debug(i32 noundef %2793, ptr noundef @.str.4)
  %2795 = call ptr @__errno_location() #10
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @strerror(i32 noundef %2796) #9
  %2798 = call ptr @__errno_location() #10
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2787, ptr noundef @.str.2, i32 noundef %2788, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2791, ptr noundef %2794, ptr noundef %2797, i32 noundef %2799) #9
  br label %2818

2801:                                             ; preds = %2779, %2772
  %2802 = load i32, ptr %65, align 4, !tbaa !5
  %2803 = call ptr @__errno_location() #10
  store i32 %2802, ptr %2803, align 4, !tbaa !5
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = load i32, ptr @test_count, align 4, !tbaa !5
  %2806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @s2n_strerror(i32 noundef %2807, ptr noundef @.str.4)
  %2809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror_debug(i32 noundef %2810, ptr noundef @.str.4)
  %2812 = call ptr @__errno_location() #10
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call ptr @strerror(i32 noundef %2813) #9
  %2815 = call ptr @__errno_location() #10
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2804, ptr noundef @.str.5, i32 noundef %2805, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2808, ptr noundef %2811, ptr noundef %2814, i32 noundef %2816) #9
  br label %2818

2818:                                             ; preds = %2801, %2784
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

2820:                                             ; preds = %2819
  call void @exit(i32 noundef 1) #11
  unreachable

2821:                                             ; No predecessors!
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

2823:                                             ; preds = %2822, %2764
  br label %2824

2824:                                             ; preds = %2823
  br label %2825

2825:                                             ; preds = %2824
  br label %2826

2826:                                             ; preds = %2825
  %2827 = load i32, ptr @test_count, align 4, !tbaa !5
  %2828 = add nsw i32 %2827, 1
  store i32 %2828, ptr @test_count, align 4, !tbaa !5
  %2829 = call ptr @s2n_config_new()
  store ptr %2829, ptr %6, align 8, !tbaa !9
  %2830 = icmp eq ptr %2829, null
  br i1 %2830, label %2831, label %2884

2831:                                             ; preds = %2826
  br label %2832

2832:                                             ; preds = %2831
  br label %2833

2833:                                             ; preds = %2832
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %2834 = call ptr @__errno_location() #10
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  store i32 %2835, ptr %66, align 4, !tbaa !5
  %2836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2837 = call i32 @s2n_print_stacktrace(ptr noundef %2836)
  %2838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2839 = trunc i8 %2838 to i1
  br i1 %2839, label %2840, label %2862

2840:                                             ; preds = %2833
  %2841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2842 = call i32 @fileno(ptr noundef %2841) #9
  %2843 = call i32 @isatty(i32 noundef %2842) #9
  %2844 = icmp ne i32 %2843, 0
  br i1 %2844, label %2845, label %2862

2845:                                             ; preds = %2840
  %2846 = load i32, ptr %66, align 4, !tbaa !5
  %2847 = call ptr @__errno_location() #10
  store i32 %2846, ptr %2847, align 4, !tbaa !5
  %2848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2849 = load i32, ptr @test_count, align 4, !tbaa !5
  %2850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @s2n_strerror(i32 noundef %2851, ptr noundef @.str.4)
  %2853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call ptr @s2n_strerror_debug(i32 noundef %2854, ptr noundef @.str.4)
  %2856 = call ptr @__errno_location() #10
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  %2858 = call ptr @strerror(i32 noundef %2857) #9
  %2859 = call ptr @__errno_location() #10
  %2860 = load i32, ptr %2859, align 4, !tbaa !5
  %2861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2848, ptr noundef @.str.2, i32 noundef %2849, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2852, ptr noundef %2855, ptr noundef %2858, i32 noundef %2860) #9
  br label %2879

2862:                                             ; preds = %2840, %2833
  %2863 = load i32, ptr %66, align 4, !tbaa !5
  %2864 = call ptr @__errno_location() #10
  store i32 %2863, ptr %2864, align 4, !tbaa !5
  %2865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2866 = load i32, ptr @test_count, align 4, !tbaa !5
  %2867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call ptr @s2n_strerror(i32 noundef %2868, ptr noundef @.str.4)
  %2870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call ptr @s2n_strerror_debug(i32 noundef %2871, ptr noundef @.str.4)
  %2873 = call ptr @__errno_location() #10
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  %2875 = call ptr @strerror(i32 noundef %2874) #9
  %2876 = call ptr @__errno_location() #10
  %2877 = load i32, ptr %2876, align 4, !tbaa !5
  %2878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2865, ptr noundef @.str.5, i32 noundef %2866, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2869, ptr noundef %2872, ptr noundef %2875, i32 noundef %2877) #9
  br label %2879

2879:                                             ; preds = %2862, %2845
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880
  call void @exit(i32 noundef 1) #11
  unreachable

2882:                                             ; No predecessors!
  br label %2883

2883:                                             ; preds = %2882
  br label %2884

2884:                                             ; preds = %2883, %2826
  br label %2885

2885:                                             ; preds = %2884
  br label %2886

2886:                                             ; preds = %2885
  br label %2887

2887:                                             ; preds = %2886
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = add nsw i32 %2888, 1
  store i32 %2889, ptr @test_count, align 4, !tbaa !5
  %2890 = load ptr, ptr %6, align 8, !tbaa !9
  %2891 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2890, ptr noundef @.str.12)
  %2892 = icmp eq i32 %2891, -1
  br i1 %2892, label %2893, label %2946

2893:                                             ; preds = %2887
  br label %2894

2894:                                             ; preds = %2893
  br label %2895

2895:                                             ; preds = %2894
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %2896 = call ptr @__errno_location() #10
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  store i32 %2897, ptr %67, align 4, !tbaa !5
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = call i32 @s2n_print_stacktrace(ptr noundef %2898)
  %2900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2901 = trunc i8 %2900 to i1
  br i1 %2901, label %2902, label %2924

2902:                                             ; preds = %2895
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = call i32 @fileno(ptr noundef %2903) #9
  %2905 = call i32 @isatty(i32 noundef %2904) #9
  %2906 = icmp ne i32 %2905, 0
  br i1 %2906, label %2907, label %2924

2907:                                             ; preds = %2902
  %2908 = load i32, ptr %67, align 4, !tbaa !5
  %2909 = call ptr @__errno_location() #10
  store i32 %2908, ptr %2909, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = load i32, ptr @test_count, align 4, !tbaa !5
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror(i32 noundef %2913, ptr noundef @.str.4)
  %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_debug(i32 noundef %2916, ptr noundef @.str.4)
  %2918 = call ptr @__errno_location() #10
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @strerror(i32 noundef %2919) #9
  %2921 = call ptr @__errno_location() #10
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2910, ptr noundef @.str.2, i32 noundef %2911, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2914, ptr noundef %2917, ptr noundef %2920, i32 noundef %2922) #9
  br label %2941

2924:                                             ; preds = %2902, %2895
  %2925 = load i32, ptr %67, align 4, !tbaa !5
  %2926 = call ptr @__errno_location() #10
  store i32 %2925, ptr %2926, align 4, !tbaa !5
  %2927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2928 = load i32, ptr @test_count, align 4, !tbaa !5
  %2929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call ptr @s2n_strerror(i32 noundef %2930, ptr noundef @.str.4)
  %2932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call ptr @s2n_strerror_debug(i32 noundef %2933, ptr noundef @.str.4)
  %2935 = call ptr @__errno_location() #10
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call ptr @strerror(i32 noundef %2936) #9
  %2938 = call ptr @__errno_location() #10
  %2939 = load i32, ptr %2938, align 4, !tbaa !5
  %2940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2927, ptr noundef @.str.5, i32 noundef %2928, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2931, ptr noundef %2934, ptr noundef %2937, i32 noundef %2939) #9
  br label %2941

2941:                                             ; preds = %2924, %2907
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942
  call void @exit(i32 noundef 1) #11
  unreachable

2944:                                             ; No predecessors!
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

2946:                                             ; preds = %2945, %2887
  br label %2947

2947:                                             ; preds = %2946
  br label %2948

2948:                                             ; preds = %2947
  br label %2949

2949:                                             ; preds = %2948
  %2950 = load i32, ptr @test_count, align 4, !tbaa !5
  %2951 = add nsw i32 %2950, 1
  store i32 %2951, ptr @test_count, align 4, !tbaa !5
  %2952 = load ptr, ptr %6, align 8, !tbaa !9
  %2953 = load ptr, ptr %13, align 8, !tbaa !9
  %2954 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2952, ptr noundef %2953)
  %2955 = icmp eq i32 %2954, -1
  br i1 %2955, label %2956, label %3009

2956:                                             ; preds = %2949
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %2959 = call ptr @__errno_location() #10
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  store i32 %2960, ptr %68, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = call i32 @s2n_print_stacktrace(ptr noundef %2961)
  %2963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2964 = trunc i8 %2963 to i1
  br i1 %2964, label %2965, label %2987

2965:                                             ; preds = %2958
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = call i32 @fileno(ptr noundef %2966) #9
  %2968 = call i32 @isatty(i32 noundef %2967) #9
  %2969 = icmp ne i32 %2968, 0
  br i1 %2969, label %2970, label %2987

2970:                                             ; preds = %2965
  %2971 = load i32, ptr %68, align 4, !tbaa !5
  %2972 = call ptr @__errno_location() #10
  store i32 %2971, ptr %2972, align 4, !tbaa !5
  %2973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2974 = load i32, ptr @test_count, align 4, !tbaa !5
  %2975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2976 = load i32, ptr %2975, align 4, !tbaa !5
  %2977 = call ptr @s2n_strerror(i32 noundef %2976, ptr noundef @.str.4)
  %2978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = call ptr @s2n_strerror_debug(i32 noundef %2979, ptr noundef @.str.4)
  %2981 = call ptr @__errno_location() #10
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  %2983 = call ptr @strerror(i32 noundef %2982) #9
  %2984 = call ptr @__errno_location() #10
  %2985 = load i32, ptr %2984, align 4, !tbaa !5
  %2986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2973, ptr noundef @.str.2, i32 noundef %2974, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2977, ptr noundef %2980, ptr noundef %2983, i32 noundef %2985) #9
  br label %3004

2987:                                             ; preds = %2965, %2958
  %2988 = load i32, ptr %68, align 4, !tbaa !5
  %2989 = call ptr @__errno_location() #10
  store i32 %2988, ptr %2989, align 4, !tbaa !5
  %2990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2991 = load i32, ptr @test_count, align 4, !tbaa !5
  %2992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @s2n_strerror(i32 noundef %2993, ptr noundef @.str.4)
  %2995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror_debug(i32 noundef %2996, ptr noundef @.str.4)
  %2998 = call ptr @__errno_location() #10
  %2999 = load i32, ptr %2998, align 4, !tbaa !5
  %3000 = call ptr @strerror(i32 noundef %2999) #9
  %3001 = call ptr @__errno_location() #10
  %3002 = load i32, ptr %3001, align 4, !tbaa !5
  %3003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2990, ptr noundef @.str.5, i32 noundef %2991, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2994, ptr noundef %2997, ptr noundef %3000, i32 noundef %3002) #9
  br label %3004

3004:                                             ; preds = %2987, %2970
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005
  call void @exit(i32 noundef 1) #11
  unreachable

3007:                                             ; No predecessors!
  br label %3008

3008:                                             ; preds = %3007
  br label %3009

3009:                                             ; preds = %3008, %2949
  br label %3010

3010:                                             ; preds = %3009
  br label %3011

3011:                                             ; preds = %3010
  br label %3012

3012:                                             ; preds = %3011
  %3013 = load i32, ptr @test_count, align 4, !tbaa !5
  %3014 = add nsw i32 %3013, 1
  store i32 %3014, ptr @test_count, align 4, !tbaa !5
  %3015 = load ptr, ptr %6, align 8, !tbaa !9
  %3016 = call i32 @s2n_config_disable_x509_verification(ptr noundef %3015)
  %3017 = icmp eq i32 %3016, -1
  br i1 %3017, label %3018, label %3071

3018:                                             ; preds = %3012
  br label %3019

3019:                                             ; preds = %3018
  br label %3020

3020:                                             ; preds = %3019
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %3021 = call ptr @__errno_location() #10
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  store i32 %3022, ptr %69, align 4, !tbaa !5
  %3023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3024 = call i32 @s2n_print_stacktrace(ptr noundef %3023)
  %3025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3026 = trunc i8 %3025 to i1
  br i1 %3026, label %3027, label %3049

3027:                                             ; preds = %3020
  %3028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3029 = call i32 @fileno(ptr noundef %3028) #9
  %3030 = call i32 @isatty(i32 noundef %3029) #9
  %3031 = icmp ne i32 %3030, 0
  br i1 %3031, label %3032, label %3049

3032:                                             ; preds = %3027
  %3033 = load i32, ptr %69, align 4, !tbaa !5
  %3034 = call ptr @__errno_location() #10
  store i32 %3033, ptr %3034, align 4, !tbaa !5
  %3035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3036 = load i32, ptr @test_count, align 4, !tbaa !5
  %3037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  %3039 = call ptr @s2n_strerror(i32 noundef %3038, ptr noundef @.str.4)
  %3040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3041 = load i32, ptr %3040, align 4, !tbaa !5
  %3042 = call ptr @s2n_strerror_debug(i32 noundef %3041, ptr noundef @.str.4)
  %3043 = call ptr @__errno_location() #10
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = call ptr @strerror(i32 noundef %3044) #9
  %3046 = call ptr @__errno_location() #10
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3035, ptr noundef @.str.2, i32 noundef %3036, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 135, ptr noundef %3039, ptr noundef %3042, ptr noundef %3045, i32 noundef %3047) #9
  br label %3066

3049:                                             ; preds = %3027, %3020
  %3050 = load i32, ptr %69, align 4, !tbaa !5
  %3051 = call ptr @__errno_location() #10
  store i32 %3050, ptr %3051, align 4, !tbaa !5
  %3052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3053 = load i32, ptr @test_count, align 4, !tbaa !5
  %3054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror(i32 noundef %3055, ptr noundef @.str.4)
  %3057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call ptr @s2n_strerror_debug(i32 noundef %3058, ptr noundef @.str.4)
  %3060 = call ptr @__errno_location() #10
  %3061 = load i32, ptr %3060, align 4, !tbaa !5
  %3062 = call ptr @strerror(i32 noundef %3061) #9
  %3063 = call ptr @__errno_location() #10
  %3064 = load i32, ptr %3063, align 4, !tbaa !5
  %3065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3052, ptr noundef @.str.5, i32 noundef %3053, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 135, ptr noundef %3056, ptr noundef %3059, ptr noundef %3062, i32 noundef %3064) #9
  br label %3066

3066:                                             ; preds = %3049, %3032
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3067

3067:                                             ; preds = %3066
  br label %3068

3068:                                             ; preds = %3067
  call void @exit(i32 noundef 1) #11
  unreachable

3069:                                             ; No predecessors!
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070, %3012
  br label %3072

3072:                                             ; preds = %3071
  br label %3073

3073:                                             ; preds = %3072
  br label %3074

3074:                                             ; preds = %3073
  %3075 = load i32, ptr @test_count, align 4, !tbaa !5
  %3076 = add nsw i32 %3075, 1
  store i32 %3076, ptr @test_count, align 4, !tbaa !5
  %3077 = load ptr, ptr %6, align 8, !tbaa !9
  %3078 = call i32 @s2n_config_set_client_auth_type(ptr noundef %3077, i32 noundef 2)
  %3079 = icmp eq i32 %3078, -1
  br i1 %3079, label %3080, label %3133

3080:                                             ; preds = %3074
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

3082:                                             ; preds = %3081
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %3083 = call ptr @__errno_location() #10
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  store i32 %3084, ptr %70, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = call i32 @s2n_print_stacktrace(ptr noundef %3085)
  %3087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3088 = trunc i8 %3087 to i1
  br i1 %3088, label %3089, label %3111

3089:                                             ; preds = %3082
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = call i32 @fileno(ptr noundef %3090) #9
  %3092 = call i32 @isatty(i32 noundef %3091) #9
  %3093 = icmp ne i32 %3092, 0
  br i1 %3093, label %3094, label %3111

3094:                                             ; preds = %3089
  %3095 = load i32, ptr %70, align 4, !tbaa !5
  %3096 = call ptr @__errno_location() #10
  store i32 %3095, ptr %3096, align 4, !tbaa !5
  %3097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3098 = load i32, ptr @test_count, align 4, !tbaa !5
  %3099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3100 = load i32, ptr %3099, align 4, !tbaa !5
  %3101 = call ptr @s2n_strerror(i32 noundef %3100, ptr noundef @.str.4)
  %3102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3103 = load i32, ptr %3102, align 4, !tbaa !5
  %3104 = call ptr @s2n_strerror_debug(i32 noundef %3103, ptr noundef @.str.4)
  %3105 = call ptr @__errno_location() #10
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = call ptr @strerror(i32 noundef %3106) #9
  %3108 = call ptr @__errno_location() #10
  %3109 = load i32, ptr %3108, align 4, !tbaa !5
  %3110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3097, ptr noundef @.str.2, i32 noundef %3098, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3101, ptr noundef %3104, ptr noundef %3107, i32 noundef %3109) #9
  br label %3128

3111:                                             ; preds = %3089, %3082
  %3112 = load i32, ptr %70, align 4, !tbaa !5
  %3113 = call ptr @__errno_location() #10
  store i32 %3112, ptr %3113, align 4, !tbaa !5
  %3114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3115 = load i32, ptr @test_count, align 4, !tbaa !5
  %3116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3117 = load i32, ptr %3116, align 4, !tbaa !5
  %3118 = call ptr @s2n_strerror(i32 noundef %3117, ptr noundef @.str.4)
  %3119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3120 = load i32, ptr %3119, align 4, !tbaa !5
  %3121 = call ptr @s2n_strerror_debug(i32 noundef %3120, ptr noundef @.str.4)
  %3122 = call ptr @__errno_location() #10
  %3123 = load i32, ptr %3122, align 4, !tbaa !5
  %3124 = call ptr @strerror(i32 noundef %3123) #9
  %3125 = call ptr @__errno_location() #10
  %3126 = load i32, ptr %3125, align 4, !tbaa !5
  %3127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3114, ptr noundef @.str.5, i32 noundef %3115, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3118, ptr noundef %3121, ptr noundef %3124, i32 noundef %3126) #9
  br label %3128

3128:                                             ; preds = %3111, %3094
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %3129

3129:                                             ; preds = %3128
  br label %3130

3130:                                             ; preds = %3129
  call void @exit(i32 noundef 1) #11
  unreachable

3131:                                             ; No predecessors!
  br label %3132

3132:                                             ; preds = %3131
  br label %3133

3133:                                             ; preds = %3132, %3074
  br label %3134

3134:                                             ; preds = %3133
  br label %3135

3135:                                             ; preds = %3134
  br label %3136

3136:                                             ; preds = %3135
  %3137 = load i32, ptr @test_count, align 4, !tbaa !5
  %3138 = add nsw i32 %3137, 1
  store i32 %3138, ptr @test_count, align 4, !tbaa !5
  %3139 = load ptr, ptr %7, align 8, !tbaa !9
  %3140 = call i32 @s2n_config_set_client_auth_type(ptr noundef %3139, i32 noundef 0)
  %3141 = icmp eq i32 %3140, -1
  br i1 %3141, label %3142, label %3195

3142:                                             ; preds = %3136
  br label %3143

3143:                                             ; preds = %3142
  br label %3144

3144:                                             ; preds = %3143
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  %3145 = call ptr @__errno_location() #10
  %3146 = load i32, ptr %3145, align 4, !tbaa !5
  store i32 %3146, ptr %71, align 4, !tbaa !5
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3148 = call i32 @s2n_print_stacktrace(ptr noundef %3147)
  %3149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3150 = trunc i8 %3149 to i1
  br i1 %3150, label %3151, label %3173

3151:                                             ; preds = %3144
  %3152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3153 = call i32 @fileno(ptr noundef %3152) #9
  %3154 = call i32 @isatty(i32 noundef %3153) #9
  %3155 = icmp ne i32 %3154, 0
  br i1 %3155, label %3156, label %3173

3156:                                             ; preds = %3151
  %3157 = load i32, ptr %71, align 4, !tbaa !5
  %3158 = call ptr @__errno_location() #10
  store i32 %3157, ptr %3158, align 4, !tbaa !5
  %3159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3160 = load i32, ptr @test_count, align 4, !tbaa !5
  %3161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  %3163 = call ptr @s2n_strerror(i32 noundef %3162, ptr noundef @.str.4)
  %3164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3165 = load i32, ptr %3164, align 4, !tbaa !5
  %3166 = call ptr @s2n_strerror_debug(i32 noundef %3165, ptr noundef @.str.4)
  %3167 = call ptr @__errno_location() #10
  %3168 = load i32, ptr %3167, align 4, !tbaa !5
  %3169 = call ptr @strerror(i32 noundef %3168) #9
  %3170 = call ptr @__errno_location() #10
  %3171 = load i32, ptr %3170, align 4, !tbaa !5
  %3172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3159, ptr noundef @.str.2, i32 noundef %3160, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 139, ptr noundef %3163, ptr noundef %3166, ptr noundef %3169, i32 noundef %3171) #9
  br label %3190

3173:                                             ; preds = %3151, %3144
  %3174 = load i32, ptr %71, align 4, !tbaa !5
  %3175 = call ptr @__errno_location() #10
  store i32 %3174, ptr %3175, align 4, !tbaa !5
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = load i32, ptr @test_count, align 4, !tbaa !5
  %3178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3179 = load i32, ptr %3178, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror(i32 noundef %3179, ptr noundef @.str.4)
  %3181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  %3183 = call ptr @s2n_strerror_debug(i32 noundef %3182, ptr noundef @.str.4)
  %3184 = call ptr @__errno_location() #10
  %3185 = load i32, ptr %3184, align 4, !tbaa !5
  %3186 = call ptr @strerror(i32 noundef %3185) #9
  %3187 = call ptr @__errno_location() #10
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3176, ptr noundef @.str.5, i32 noundef %3177, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 139, ptr noundef %3180, ptr noundef %3183, ptr noundef %3186, i32 noundef %3188) #9
  br label %3190

3190:                                             ; preds = %3173, %3156
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3191

3191:                                             ; preds = %3190
  br label %3192

3192:                                             ; preds = %3191
  call void @exit(i32 noundef 1) #11
  unreachable

3193:                                             ; No predecessors!
  br label %3194

3194:                                             ; preds = %3193
  br label %3195

3195:                                             ; preds = %3194, %3136
  br label %3196

3196:                                             ; preds = %3195
  br label %3197

3197:                                             ; preds = %3196
  br label %3198

3198:                                             ; preds = %3197
  %3199 = load i32, ptr @test_count, align 4, !tbaa !5
  %3200 = add nsw i32 %3199, 1
  store i32 %3200, ptr @test_count, align 4, !tbaa !5
  %3201 = load ptr, ptr %7, align 8, !tbaa !9
  %3202 = call i32 @s2n_config_disable_x509_verification(ptr noundef %3201)
  %3203 = icmp eq i32 %3202, -1
  br i1 %3203, label %3204, label %3257

3204:                                             ; preds = %3198
  br label %3205

3205:                                             ; preds = %3204
  br label %3206

3206:                                             ; preds = %3205
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %3207 = call ptr @__errno_location() #10
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  store i32 %3208, ptr %72, align 4, !tbaa !5
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3210 = call i32 @s2n_print_stacktrace(ptr noundef %3209)
  %3211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3212 = trunc i8 %3211 to i1
  br i1 %3212, label %3213, label %3235

3213:                                             ; preds = %3206
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = call i32 @fileno(ptr noundef %3214) #9
  %3216 = call i32 @isatty(i32 noundef %3215) #9
  %3217 = icmp ne i32 %3216, 0
  br i1 %3217, label %3218, label %3235

3218:                                             ; preds = %3213
  %3219 = load i32, ptr %72, align 4, !tbaa !5
  %3220 = call ptr @__errno_location() #10
  store i32 %3219, ptr %3220, align 4, !tbaa !5
  %3221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3222 = load i32, ptr @test_count, align 4, !tbaa !5
  %3223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  %3225 = call ptr @s2n_strerror(i32 noundef %3224, ptr noundef @.str.4)
  %3226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = call ptr @s2n_strerror_debug(i32 noundef %3227, ptr noundef @.str.4)
  %3229 = call ptr @__errno_location() #10
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  %3231 = call ptr @strerror(i32 noundef %3230) #9
  %3232 = call ptr @__errno_location() #10
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3221, ptr noundef @.str.2, i32 noundef %3222, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 140, ptr noundef %3225, ptr noundef %3228, ptr noundef %3231, i32 noundef %3233) #9
  br label %3252

3235:                                             ; preds = %3213, %3206
  %3236 = load i32, ptr %72, align 4, !tbaa !5
  %3237 = call ptr @__errno_location() #10
  store i32 %3236, ptr %3237, align 4, !tbaa !5
  %3238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3239 = load i32, ptr @test_count, align 4, !tbaa !5
  %3240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3241 = load i32, ptr %3240, align 4, !tbaa !5
  %3242 = call ptr @s2n_strerror(i32 noundef %3241, ptr noundef @.str.4)
  %3243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3244 = load i32, ptr %3243, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror_debug(i32 noundef %3244, ptr noundef @.str.4)
  %3246 = call ptr @__errno_location() #10
  %3247 = load i32, ptr %3246, align 4, !tbaa !5
  %3248 = call ptr @strerror(i32 noundef %3247) #9
  %3249 = call ptr @__errno_location() #10
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3238, ptr noundef @.str.5, i32 noundef %3239, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 140, ptr noundef %3242, ptr noundef %3245, ptr noundef %3248, i32 noundef %3250) #9
  br label %3252

3252:                                             ; preds = %3235, %3218
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3253

3253:                                             ; preds = %3252
  br label %3254

3254:                                             ; preds = %3253
  call void @exit(i32 noundef 1) #11
  unreachable

3255:                                             ; No predecessors!
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

3257:                                             ; preds = %3256, %3198
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

3259:                                             ; preds = %3258
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  store i32 0, ptr %73, align 4, !tbaa !5
  br label %3260

3260:                                             ; preds = %4165, %3259
  %3261 = load i32, ptr %73, align 4, !tbaa !5
  %3262 = load ptr, ptr %9, align 8, !tbaa !9
  %3263 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %3262, i32 0, i32 0
  %3264 = load i16, ptr %3263, align 8, !tbaa !24
  %3265 = zext i16 %3264 to i32
  %3266 = icmp slt i32 %3261, %3265
  br i1 %3266, label %3268, label %3267

3267:                                             ; preds = %3260
  store i32 297, ptr %42, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %4168

3268:                                             ; preds = %3260
  call void @llvm.lifetime.start.p0(i64 24, ptr %74) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %75) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #9
  store ptr null, ptr %76, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #9
  store ptr null, ptr %77, align 8, !tbaa !9
  br label %3269

3269:                                             ; preds = %3268
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  store i64 24, ptr %78, align 8, !tbaa !26
  %3270 = load i64, ptr %78, align 8, !tbaa !26
  %3271 = icmp ne i64 %3270, 0
  br i1 %3271, label %3272, label %3330

3272:                                             ; preds = %3269
  %3273 = load ptr, ptr %9, align 8, !tbaa !9
  %3274 = load i64, ptr %78, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %74, ptr align 8 %3273, i64 %3274, i1 false)
  %3275 = icmp eq ptr %74, null
  br i1 %3275, label %3276, label %3329

3276:                                             ; preds = %3272
  br label %3277

3277:                                             ; preds = %3276
  br label %3278

3278:                                             ; preds = %3277
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %3279 = call ptr @__errno_location() #10
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  store i32 %3280, ptr %79, align 4, !tbaa !5
  %3281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3282 = call i32 @s2n_print_stacktrace(ptr noundef %3281)
  %3283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3284 = trunc i8 %3283 to i1
  br i1 %3284, label %3285, label %3307

3285:                                             ; preds = %3278
  %3286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3287 = call i32 @fileno(ptr noundef %3286) #9
  %3288 = call i32 @isatty(i32 noundef %3287) #9
  %3289 = icmp ne i32 %3288, 0
  br i1 %3289, label %3290, label %3307

3290:                                             ; preds = %3285
  %3291 = load i32, ptr %79, align 4, !tbaa !5
  %3292 = call ptr @__errno_location() #10
  store i32 %3291, ptr %3292, align 4, !tbaa !5
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @s2n_strerror(i32 noundef %3296, ptr noundef @.str.4)
  %3298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call ptr @s2n_strerror_debug(i32 noundef %3299, ptr noundef @.str.4)
  %3301 = call ptr @__errno_location() #10
  %3302 = load i32, ptr %3301, align 4, !tbaa !5
  %3303 = call ptr @strerror(i32 noundef %3302) #9
  %3304 = call ptr @__errno_location() #10
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3293, ptr noundef @.str.2, i32 noundef %3294, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3297, ptr noundef %3300, ptr noundef %3303, i32 noundef %3305) #9
  br label %3324

3307:                                             ; preds = %3285, %3278
  %3308 = load i32, ptr %79, align 4, !tbaa !5
  %3309 = call ptr @__errno_location() #10
  store i32 %3308, ptr %3309, align 4, !tbaa !5
  %3310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3311 = load i32, ptr @test_count, align 4, !tbaa !5
  %3312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3313 = load i32, ptr %3312, align 4, !tbaa !5
  %3314 = call ptr @s2n_strerror(i32 noundef %3313, ptr noundef @.str.4)
  %3315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  %3317 = call ptr @s2n_strerror_debug(i32 noundef %3316, ptr noundef @.str.4)
  %3318 = call ptr @__errno_location() #10
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  %3320 = call ptr @strerror(i32 noundef %3319) #9
  %3321 = call ptr @__errno_location() #10
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3310, ptr noundef @.str.5, i32 noundef %3311, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3314, ptr noundef %3317, ptr noundef %3320, i32 noundef %3322) #9
  br label %3324

3324:                                             ; preds = %3307, %3290
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3325

3325:                                             ; preds = %3324
  br label %3326

3326:                                             ; preds = %3325
  call void @exit(i32 noundef 1) #11
  unreachable

3327:                                             ; No predecessors!
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

3329:                                             ; preds = %3328, %3272
  br label %3330

3330:                                             ; preds = %3329, %3269
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

3332:                                             ; preds = %3331
  %3333 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %74, i32 0, i32 0
  store i16 1, ptr %3333, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #9
  %3334 = load ptr, ptr %9, align 8, !tbaa !9
  %3335 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %3334, i32 0, i32 1
  %3336 = load ptr, ptr %3335, align 8, !tbaa !27
  %3337 = load i32, ptr %73, align 4, !tbaa !5
  %3338 = sext i32 %3337 to i64
  %3339 = getelementptr inbounds ptr, ptr %3336, i64 %3338
  %3340 = load ptr, ptr %3339, align 8, !tbaa !9
  store ptr %3340, ptr %80, align 8, !tbaa !9
  %3341 = load ptr, ptr %80, align 8, !tbaa !9
  %3342 = load i8, ptr %3341, align 8
  %3343 = and i8 %3342, 1
  %3344 = zext i8 %3343 to i32
  %3345 = icmp ne i32 %3344, 0
  br i1 %3345, label %3347, label %3346

3346:                                             ; preds = %3332
  store i32 299, ptr %42, align 4
  br label %4162

3347:                                             ; preds = %3332
  %3348 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %74, i32 0, i32 1
  store ptr %80, ptr %3348, align 8, !tbaa !27
  br label %3349

3349:                                             ; preds = %3347
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  store i64 64, ptr %81, align 8, !tbaa !26
  %3350 = load i64, ptr %81, align 8, !tbaa !26
  %3351 = icmp ne i64 %3350, 0
  br i1 %3351, label %3352, label %3410

3352:                                             ; preds = %3349
  %3353 = load ptr, ptr %8, align 8, !tbaa !9
  %3354 = load i64, ptr %81, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %75, ptr align 8 %3353, i64 %3354, i1 false)
  %3355 = icmp eq ptr %75, null
  br i1 %3355, label %3356, label %3409

3356:                                             ; preds = %3352
  br label %3357

3357:                                             ; preds = %3356
  br label %3358

3358:                                             ; preds = %3357
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %3359 = call ptr @__errno_location() #10
  %3360 = load i32, ptr %3359, align 4, !tbaa !5
  store i32 %3360, ptr %82, align 4, !tbaa !5
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = call i32 @s2n_print_stacktrace(ptr noundef %3361)
  %3363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3364 = trunc i8 %3363 to i1
  br i1 %3364, label %3365, label %3387

3365:                                             ; preds = %3358
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = call i32 @fileno(ptr noundef %3366) #9
  %3368 = call i32 @isatty(i32 noundef %3367) #9
  %3369 = icmp ne i32 %3368, 0
  br i1 %3369, label %3370, label %3387

3370:                                             ; preds = %3365
  %3371 = load i32, ptr %82, align 4, !tbaa !5
  %3372 = call ptr @__errno_location() #10
  store i32 %3371, ptr %3372, align 4, !tbaa !5
  %3373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3374 = load i32, ptr @test_count, align 4, !tbaa !5
  %3375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call ptr @s2n_strerror(i32 noundef %3376, ptr noundef @.str.4)
  %3378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call ptr @s2n_strerror_debug(i32 noundef %3379, ptr noundef @.str.4)
  %3381 = call ptr @__errno_location() #10
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call ptr @strerror(i32 noundef %3382) #9
  %3384 = call ptr @__errno_location() #10
  %3385 = load i32, ptr %3384, align 4, !tbaa !5
  %3386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3373, ptr noundef @.str.2, i32 noundef %3374, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3377, ptr noundef %3380, ptr noundef %3383, i32 noundef %3385) #9
  br label %3404

3387:                                             ; preds = %3365, %3358
  %3388 = load i32, ptr %82, align 4, !tbaa !5
  %3389 = call ptr @__errno_location() #10
  store i32 %3388, ptr %3389, align 4, !tbaa !5
  %3390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3391 = load i32, ptr @test_count, align 4, !tbaa !5
  %3392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3393 = load i32, ptr %3392, align 4, !tbaa !5
  %3394 = call ptr @s2n_strerror(i32 noundef %3393, ptr noundef @.str.4)
  %3395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3396 = load i32, ptr %3395, align 4, !tbaa !5
  %3397 = call ptr @s2n_strerror_debug(i32 noundef %3396, ptr noundef @.str.4)
  %3398 = call ptr @__errno_location() #10
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  %3400 = call ptr @strerror(i32 noundef %3399) #9
  %3401 = call ptr @__errno_location() #10
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  %3403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3390, ptr noundef @.str.5, i32 noundef %3391, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3394, ptr noundef %3397, ptr noundef %3400, i32 noundef %3402) #9
  br label %3404

3404:                                             ; preds = %3387, %3370
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %3405

3405:                                             ; preds = %3404
  br label %3406

3406:                                             ; preds = %3405
  call void @exit(i32 noundef 1) #11
  unreachable

3407:                                             ; No predecessors!
  br label %3408

3408:                                             ; preds = %3407
  br label %3409

3409:                                             ; preds = %3408, %3352
  br label %3410

3410:                                             ; preds = %3409, %3349
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  br label %3411

3411:                                             ; preds = %3410
  br label %3412

3412:                                             ; preds = %3411
  %3413 = getelementptr inbounds %struct.s2n_security_policy, ptr %75, i32 0, i32 1
  store ptr %74, ptr %3413, align 8, !tbaa !22
  %3414 = load ptr, ptr %6, align 8, !tbaa !9
  %3415 = getelementptr inbounds %struct.s2n_config, ptr %3414, i32 0, i32 7
  store ptr %75, ptr %3415, align 8, !tbaa !15
  %3416 = load ptr, ptr %7, align 8, !tbaa !9
  %3417 = getelementptr inbounds %struct.s2n_config, ptr %3416, i32 0, i32 7
  store ptr %75, ptr %3417, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  br label %3418

3418:                                             ; preds = %3412
  %3419 = load i32, ptr @test_count, align 4, !tbaa !5
  %3420 = add nsw i32 %3419, 1
  store i32 %3420, ptr @test_count, align 4, !tbaa !5
  %3421 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %83)
  %3422 = icmp eq i32 %3421, -1
  br i1 %3422, label %3423, label %3476

3423:                                             ; preds = %3418
  br label %3424

3424:                                             ; preds = %3423
  br label %3425

3425:                                             ; preds = %3424
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  %3426 = call ptr @__errno_location() #10
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  store i32 %3427, ptr %84, align 4, !tbaa !5
  %3428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3429 = call i32 @s2n_print_stacktrace(ptr noundef %3428)
  %3430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3431 = trunc i8 %3430 to i1
  br i1 %3431, label %3432, label %3454

3432:                                             ; preds = %3425
  %3433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3434 = call i32 @fileno(ptr noundef %3433) #9
  %3435 = call i32 @isatty(i32 noundef %3434) #9
  %3436 = icmp ne i32 %3435, 0
  br i1 %3436, label %3437, label %3454

3437:                                             ; preds = %3432
  %3438 = load i32, ptr %84, align 4, !tbaa !5
  %3439 = call ptr @__errno_location() #10
  store i32 %3438, ptr %3439, align 4, !tbaa !5
  %3440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3441 = load i32, ptr @test_count, align 4, !tbaa !5
  %3442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call ptr @s2n_strerror(i32 noundef %3443, ptr noundef @.str.4)
  %3445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3446 = load i32, ptr %3445, align 4, !tbaa !5
  %3447 = call ptr @s2n_strerror_debug(i32 noundef %3446, ptr noundef @.str.4)
  %3448 = call ptr @__errno_location() #10
  %3449 = load i32, ptr %3448, align 4, !tbaa !5
  %3450 = call ptr @strerror(i32 noundef %3449) #9
  %3451 = call ptr @__errno_location() #10
  %3452 = load i32, ptr %3451, align 4, !tbaa !5
  %3453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3440, ptr noundef @.str.2, i32 noundef %3441, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3444, ptr noundef %3447, ptr noundef %3450, i32 noundef %3452) #9
  br label %3471

3454:                                             ; preds = %3432, %3425
  %3455 = load i32, ptr %84, align 4, !tbaa !5
  %3456 = call ptr @__errno_location() #10
  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() #10
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  %3467 = call ptr @strerror(i32 noundef %3466) #9
  %3468 = call ptr @__errno_location() #10
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  %3470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3457, ptr noundef @.str.5, i32 noundef %3458, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3461, ptr noundef %3464, ptr noundef %3467, i32 noundef %3469) #9
  br label %3471

3471:                                             ; preds = %3454, %3437
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %3472

3472:                                             ; preds = %3471
  br label %3473

3473:                                             ; preds = %3472
  call void @exit(i32 noundef 1) #11
  unreachable

3474:                                             ; No predecessors!
  br label %3475

3475:                                             ; preds = %3474
  br label %3476

3476:                                             ; preds = %3475, %3418
  br label %3477

3477:                                             ; preds = %3476
  br label %3478

3478:                                             ; preds = %3477
  br label %3479

3479:                                             ; preds = %3478
  %3480 = load i32, ptr @test_count, align 4, !tbaa !5
  %3481 = add nsw i32 %3480, 1
  store i32 %3481, ptr @test_count, align 4, !tbaa !5
  %3482 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3482, ptr %76, align 8, !tbaa !9
  %3483 = icmp eq ptr %3482, null
  br i1 %3483, label %3484, label %3537

3484:                                             ; preds = %3479
  br label %3485

3485:                                             ; preds = %3484
  br label %3486

3486:                                             ; preds = %3485
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %3487 = call ptr @__errno_location() #10
  %3488 = load i32, ptr %3487, align 4, !tbaa !5
  store i32 %3488, ptr %85, align 4, !tbaa !5
  %3489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3490 = call i32 @s2n_print_stacktrace(ptr noundef %3489)
  %3491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3492 = trunc i8 %3491 to i1
  br i1 %3492, label %3493, label %3515

3493:                                             ; preds = %3486
  %3494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3495 = call i32 @fileno(ptr noundef %3494) #9
  %3496 = call i32 @isatty(i32 noundef %3495) #9
  %3497 = icmp ne i32 %3496, 0
  br i1 %3497, label %3498, label %3515

3498:                                             ; preds = %3493
  %3499 = load i32, ptr %85, align 4, !tbaa !5
  %3500 = call ptr @__errno_location() #10
  store i32 %3499, ptr %3500, align 4, !tbaa !5
  %3501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3502 = load i32, ptr @test_count, align 4, !tbaa !5
  %3503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3504 = load i32, ptr %3503, align 4, !tbaa !5
  %3505 = call ptr @s2n_strerror(i32 noundef %3504, ptr noundef @.str.4)
  %3506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3507 = load i32, ptr %3506, align 4, !tbaa !5
  %3508 = call ptr @s2n_strerror_debug(i32 noundef %3507, ptr noundef @.str.4)
  %3509 = call ptr @__errno_location() #10
  %3510 = load i32, ptr %3509, align 4, !tbaa !5
  %3511 = call ptr @strerror(i32 noundef %3510) #9
  %3512 = call ptr @__errno_location() #10
  %3513 = load i32, ptr %3512, align 4, !tbaa !5
  %3514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3501, ptr noundef @.str.2, i32 noundef %3502, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3505, ptr noundef %3508, ptr noundef %3511, i32 noundef %3513) #9
  br label %3532

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

3532:                                             ; preds = %3515, %3498
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %3533

3533:                                             ; preds = %3532
  br label %3534

3534:                                             ; preds = %3533
  call void @exit(i32 noundef 1) #11
  unreachable

3535:                                             ; No predecessors!
  br label %3536

3536:                                             ; preds = %3535
  br label %3537

3537:                                             ; preds = %3536, %3479
  br label %3538

3538:                                             ; preds = %3537
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

3540:                                             ; preds = %3539
  %3541 = load i32, ptr @test_count, align 4, !tbaa !5
  %3542 = add nsw i32 %3541, 1
  store i32 %3542, ptr @test_count, align 4, !tbaa !5
  %3543 = load ptr, ptr %76, align 8, !tbaa !9
  %3544 = load ptr, ptr %6, align 8, !tbaa !9
  %3545 = call i32 @s2n_connection_set_config(ptr noundef %3543, ptr noundef %3544)
  %3546 = icmp eq i32 %3545, -1
  br i1 %3546, label %3547, label %3600

3547:                                             ; preds = %3540
  br label %3548

3548:                                             ; preds = %3547
  br label %3549

3549:                                             ; preds = %3548
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %3550 = call ptr @__errno_location() #10
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  store i32 %3551, ptr %86, align 4, !tbaa !5
  %3552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3553 = call i32 @s2n_print_stacktrace(ptr noundef %3552)
  %3554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3555 = trunc i8 %3554 to i1
  br i1 %3555, label %3556, label %3578

3556:                                             ; preds = %3549
  %3557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3558 = call i32 @fileno(ptr noundef %3557) #9
  %3559 = call i32 @isatty(i32 noundef %3558) #9
  %3560 = icmp ne i32 %3559, 0
  br i1 %3560, label %3561, label %3578

3561:                                             ; preds = %3556
  %3562 = load i32, ptr %86, align 4, !tbaa !5
  %3563 = call ptr @__errno_location() #10
  store i32 %3562, ptr %3563, align 4, !tbaa !5
  %3564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3565 = load i32, ptr @test_count, align 4, !tbaa !5
  %3566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call ptr @s2n_strerror(i32 noundef %3567, ptr noundef @.str.4)
  %3569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3570 = load i32, ptr %3569, align 4, !tbaa !5
  %3571 = call ptr @s2n_strerror_debug(i32 noundef %3570, ptr noundef @.str.4)
  %3572 = call ptr @__errno_location() #10
  %3573 = load i32, ptr %3572, align 4, !tbaa !5
  %3574 = call ptr @strerror(i32 noundef %3573) #9
  %3575 = call ptr @__errno_location() #10
  %3576 = load i32, ptr %3575, align 4, !tbaa !5
  %3577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3564, ptr noundef @.str.2, i32 noundef %3565, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3568, ptr noundef %3571, ptr noundef %3574, i32 noundef %3576) #9
  br label %3595

3578:                                             ; preds = %3556, %3549
  %3579 = load i32, ptr %86, align 4, !tbaa !5
  %3580 = call ptr @__errno_location() #10
  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() #10
  %3590 = load i32, ptr %3589, align 4, !tbaa !5
  %3591 = call ptr @strerror(i32 noundef %3590) #9
  %3592 = call ptr @__errno_location() #10
  %3593 = load i32, ptr %3592, align 4, !tbaa !5
  %3594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3581, ptr noundef @.str.5, i32 noundef %3582, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3585, ptr noundef %3588, ptr noundef %3591, i32 noundef %3593) #9
  br label %3595

3595:                                             ; preds = %3578, %3561
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %3596

3596:                                             ; preds = %3595
  br label %3597

3597:                                             ; preds = %3596
  call void @exit(i32 noundef 1) #11
  unreachable

3598:                                             ; No predecessors!
  br label %3599

3599:                                             ; preds = %3598
  br label %3600

3600:                                             ; preds = %3599, %3540
  br label %3601

3601:                                             ; preds = %3600
  br label %3602

3602:                                             ; preds = %3601
  br label %3603

3603:                                             ; preds = %3602
  %3604 = load i32, ptr @test_count, align 4, !tbaa !5
  %3605 = add nsw i32 %3604, 1
  store i32 %3605, ptr @test_count, align 4, !tbaa !5
  %3606 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3606, ptr %77, align 8, !tbaa !9
  %3607 = icmp eq ptr %3606, null
  br i1 %3607, label %3608, label %3661

3608:                                             ; preds = %3603
  br label %3609

3609:                                             ; preds = %3608
  br label %3610

3610:                                             ; preds = %3609
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  %3611 = call ptr @__errno_location() #10
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  store i32 %3612, ptr %87, align 4, !tbaa !5
  %3613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3614 = call i32 @s2n_print_stacktrace(ptr noundef %3613)
  %3615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3616 = trunc i8 %3615 to i1
  br i1 %3616, label %3617, label %3639

3617:                                             ; preds = %3610
  %3618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3619 = call i32 @fileno(ptr noundef %3618) #9
  %3620 = call i32 @isatty(i32 noundef %3619) #9
  %3621 = icmp ne i32 %3620, 0
  br i1 %3621, label %3622, label %3639

3622:                                             ; preds = %3617
  %3623 = load i32, ptr %87, align 4, !tbaa !5
  %3624 = call ptr @__errno_location() #10
  store i32 %3623, ptr %3624, align 4, !tbaa !5
  %3625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3626 = load i32, ptr @test_count, align 4, !tbaa !5
  %3627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @s2n_strerror(i32 noundef %3628, ptr noundef @.str.4)
  %3630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call ptr @s2n_strerror_debug(i32 noundef %3631, ptr noundef @.str.4)
  %3633 = call ptr @__errno_location() #10
  %3634 = load i32, ptr %3633, align 4, !tbaa !5
  %3635 = call ptr @strerror(i32 noundef %3634) #9
  %3636 = call ptr @__errno_location() #10
  %3637 = load i32, ptr %3636, align 4, !tbaa !5
  %3638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3625, ptr noundef @.str.2, i32 noundef %3626, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 174, ptr noundef %3629, ptr noundef %3632, ptr noundef %3635, i32 noundef %3637) #9
  br label %3656

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

3656:                                             ; preds = %3639, %3622
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %3657

3657:                                             ; preds = %3656
  br label %3658

3658:                                             ; preds = %3657
  call void @exit(i32 noundef 1) #11
  unreachable

3659:                                             ; No predecessors!
  br label %3660

3660:                                             ; preds = %3659
  br label %3661

3661:                                             ; preds = %3660, %3603
  br label %3662

3662:                                             ; preds = %3661
  br label %3663

3663:                                             ; preds = %3662
  br label %3664

3664:                                             ; preds = %3663
  %3665 = load i32, ptr @test_count, align 4, !tbaa !5
  %3666 = add nsw i32 %3665, 1
  store i32 %3666, ptr @test_count, align 4, !tbaa !5
  %3667 = load ptr, ptr %77, align 8, !tbaa !9
  %3668 = load ptr, ptr %7, align 8, !tbaa !9
  %3669 = call i32 @s2n_connection_set_config(ptr noundef %3667, ptr noundef %3668)
  %3670 = icmp eq i32 %3669, -1
  br i1 %3670, label %3671, label %3724

3671:                                             ; preds = %3664
  br label %3672

3672:                                             ; preds = %3671
  br label %3673

3673:                                             ; preds = %3672
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  %3674 = call ptr @__errno_location() #10
  %3675 = load i32, ptr %3674, align 4, !tbaa !5
  store i32 %3675, ptr %88, align 4, !tbaa !5
  %3676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3677 = call i32 @s2n_print_stacktrace(ptr noundef %3676)
  %3678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3679 = trunc i8 %3678 to i1
  br i1 %3679, label %3680, label %3702

3680:                                             ; preds = %3673
  %3681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3682 = call i32 @fileno(ptr noundef %3681) #9
  %3683 = call i32 @isatty(i32 noundef %3682) #9
  %3684 = icmp ne i32 %3683, 0
  br i1 %3684, label %3685, label %3702

3685:                                             ; preds = %3680
  %3686 = load i32, ptr %88, align 4, !tbaa !5
  %3687 = call ptr @__errno_location() #10
  store i32 %3686, ptr %3687, align 4, !tbaa !5
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = load i32, ptr @test_count, align 4, !tbaa !5
  %3690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3691 = load i32, ptr %3690, align 4, !tbaa !5
  %3692 = call ptr @s2n_strerror(i32 noundef %3691, ptr noundef @.str.4)
  %3693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3694 = load i32, ptr %3693, align 4, !tbaa !5
  %3695 = call ptr @s2n_strerror_debug(i32 noundef %3694, ptr noundef @.str.4)
  %3696 = call ptr @__errno_location() #10
  %3697 = load i32, ptr %3696, align 4, !tbaa !5
  %3698 = call ptr @strerror(i32 noundef %3697) #9
  %3699 = call ptr @__errno_location() #10
  %3700 = load i32, ptr %3699, align 4, !tbaa !5
  %3701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3688, ptr noundef @.str.2, i32 noundef %3689, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3692, ptr noundef %3695, ptr noundef %3698, i32 noundef %3700) #9
  br label %3719

3702:                                             ; preds = %3680, %3673
  %3703 = load i32, ptr %88, align 4, !tbaa !5
  %3704 = call ptr @__errno_location() #10
  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() #10
  %3714 = load i32, ptr %3713, align 4, !tbaa !5
  %3715 = call ptr @strerror(i32 noundef %3714) #9
  %3716 = call ptr @__errno_location() #10
  %3717 = load i32, ptr %3716, align 4, !tbaa !5
  %3718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3705, ptr noundef @.str.5, i32 noundef %3706, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3709, ptr noundef %3712, ptr noundef %3715, i32 noundef %3717) #9
  br label %3719

3719:                                             ; preds = %3702, %3685
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %3720

3720:                                             ; preds = %3719
  br label %3721

3721:                                             ; preds = %3720
  call void @exit(i32 noundef 1) #11
  unreachable

3722:                                             ; No predecessors!
  br label %3723

3723:                                             ; preds = %3722
  br label %3724

3724:                                             ; preds = %3723, %3664
  br label %3725

3725:                                             ; preds = %3724
  br label %3726

3726:                                             ; preds = %3725
  br label %3727

3727:                                             ; preds = %3726
  %3728 = load i32, ptr @test_count, align 4, !tbaa !5
  %3729 = add nsw i32 %3728, 1
  store i32 %3729, ptr @test_count, align 4, !tbaa !5
  %3730 = load ptr, ptr %76, align 8, !tbaa !9
  %3731 = load ptr, ptr %77, align 8, !tbaa !9
  %3732 = call i32 @s2n_connections_set_io_pair(ptr noundef %3730, ptr noundef %3731, ptr noundef %83)
  %3733 = icmp eq i32 %3732, -1
  br i1 %3733, label %3734, label %3787

3734:                                             ; preds = %3727
  br label %3735

3735:                                             ; preds = %3734
  br label %3736

3736:                                             ; preds = %3735
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  %3737 = call ptr @__errno_location() #10
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  store i32 %3738, ptr %89, align 4, !tbaa !5
  %3739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3740 = call i32 @s2n_print_stacktrace(ptr noundef %3739)
  %3741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3742 = trunc i8 %3741 to i1
  br i1 %3742, label %3743, label %3765

3743:                                             ; preds = %3736
  %3744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3745 = call i32 @fileno(ptr noundef %3744) #9
  %3746 = call i32 @isatty(i32 noundef %3745) #9
  %3747 = icmp ne i32 %3746, 0
  br i1 %3747, label %3748, label %3765

3748:                                             ; preds = %3743
  %3749 = load i32, ptr %89, align 4, !tbaa !5
  %3750 = call ptr @__errno_location() #10
  store i32 %3749, ptr %3750, align 4, !tbaa !5
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = load i32, ptr @test_count, align 4, !tbaa !5
  %3753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3754 = load i32, ptr %3753, align 4, !tbaa !5
  %3755 = call ptr @s2n_strerror(i32 noundef %3754, ptr noundef @.str.4)
  %3756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3757 = load i32, ptr %3756, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror_debug(i32 noundef %3757, ptr noundef @.str.4)
  %3759 = call ptr @__errno_location() #10
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  %3761 = call ptr @strerror(i32 noundef %3760) #9
  %3762 = call ptr @__errno_location() #10
  %3763 = load i32, ptr %3762, align 4, !tbaa !5
  %3764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3751, ptr noundef @.str.2, i32 noundef %3752, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3755, ptr noundef %3758, ptr noundef %3761, i32 noundef %3763) #9
  br label %3782

3765:                                             ; preds = %3743, %3736
  %3766 = load i32, ptr %89, align 4, !tbaa !5
  %3767 = call ptr @__errno_location() #10
  store i32 %3766, ptr %3767, align 4, !tbaa !5
  %3768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3769 = load i32, ptr @test_count, align 4, !tbaa !5
  %3770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3771 = load i32, ptr %3770, align 4, !tbaa !5
  %3772 = call ptr @s2n_strerror(i32 noundef %3771, ptr noundef @.str.4)
  %3773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3774 = load i32, ptr %3773, align 4, !tbaa !5
  %3775 = call ptr @s2n_strerror_debug(i32 noundef %3774, ptr noundef @.str.4)
  %3776 = call ptr @__errno_location() #10
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  %3778 = call ptr @strerror(i32 noundef %3777) #9
  %3779 = call ptr @__errno_location() #10
  %3780 = load i32, ptr %3779, align 4, !tbaa !5
  %3781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3768, ptr noundef @.str.5, i32 noundef %3769, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3772, ptr noundef %3775, ptr noundef %3778, i32 noundef %3780) #9
  br label %3782

3782:                                             ; preds = %3765, %3748
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %3783

3783:                                             ; preds = %3782
  br label %3784

3784:                                             ; preds = %3783
  call void @exit(i32 noundef 1) #11
  unreachable

3785:                                             ; No predecessors!
  br label %3786

3786:                                             ; preds = %3785
  br label %3787

3787:                                             ; preds = %3786, %3727
  br label %3788

3788:                                             ; preds = %3787
  br label %3789

3789:                                             ; preds = %3788
  br label %3790

3790:                                             ; preds = %3789
  %3791 = load i32, ptr @test_count, align 4, !tbaa !5
  %3792 = add nsw i32 %3791, 1
  store i32 %3792, ptr @test_count, align 4, !tbaa !5
  %3793 = load ptr, ptr %77, align 8, !tbaa !9
  %3794 = load ptr, ptr %76, align 8, !tbaa !9
  %3795 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3793, ptr noundef %3794)
  %3796 = icmp eq i32 %3795, -1
  br i1 %3796, label %3797, label %3850

3797:                                             ; preds = %3790
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  %3800 = call ptr @__errno_location() #10
  %3801 = load i32, ptr %3800, align 4, !tbaa !5
  store i32 %3801, ptr %90, align 4, !tbaa !5
  %3802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3803 = call i32 @s2n_print_stacktrace(ptr noundef %3802)
  %3804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3805 = trunc i8 %3804 to i1
  br i1 %3805, label %3806, label %3828

3806:                                             ; preds = %3799
  %3807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3808 = call i32 @fileno(ptr noundef %3807) #9
  %3809 = call i32 @isatty(i32 noundef %3808) #9
  %3810 = icmp ne i32 %3809, 0
  br i1 %3810, label %3811, label %3828

3811:                                             ; preds = %3806
  %3812 = load i32, ptr %90, align 4, !tbaa !5
  %3813 = call ptr @__errno_location() #10
  store i32 %3812, ptr %3813, align 4, !tbaa !5
  %3814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3815 = load i32, ptr @test_count, align 4, !tbaa !5
  %3816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3817 = load i32, ptr %3816, align 4, !tbaa !5
  %3818 = call ptr @s2n_strerror(i32 noundef %3817, ptr noundef @.str.4)
  %3819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3820 = load i32, ptr %3819, align 4, !tbaa !5
  %3821 = call ptr @s2n_strerror_debug(i32 noundef %3820, ptr noundef @.str.4)
  %3822 = call ptr @__errno_location() #10
  %3823 = load i32, ptr %3822, align 4, !tbaa !5
  %3824 = call ptr @strerror(i32 noundef %3823) #9
  %3825 = call ptr @__errno_location() #10
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3814, ptr noundef @.str.2, i32 noundef %3815, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 180, ptr noundef %3818, ptr noundef %3821, ptr noundef %3824, i32 noundef %3826) #9
  br label %3845

3828:                                             ; preds = %3806, %3799
  %3829 = load i32, ptr %90, align 4, !tbaa !5
  %3830 = call ptr @__errno_location() #10
  store i32 %3829, ptr %3830, align 4, !tbaa !5
  %3831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3832 = load i32, ptr @test_count, align 4, !tbaa !5
  %3833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3834 = load i32, ptr %3833, align 4, !tbaa !5
  %3835 = call ptr @s2n_strerror(i32 noundef %3834, ptr noundef @.str.4)
  %3836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3837 = load i32, ptr %3836, align 4, !tbaa !5
  %3838 = call ptr @s2n_strerror_debug(i32 noundef %3837, ptr noundef @.str.4)
  %3839 = call ptr @__errno_location() #10
  %3840 = load i32, ptr %3839, align 4, !tbaa !5
  %3841 = call ptr @strerror(i32 noundef %3840) #9
  %3842 = call ptr @__errno_location() #10
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3831, ptr noundef @.str.5, i32 noundef %3832, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 180, ptr noundef %3835, ptr noundef %3838, ptr noundef %3841, i32 noundef %3843) #9
  br label %3845

3845:                                             ; preds = %3828, %3811
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %3846

3846:                                             ; preds = %3845
  br label %3847

3847:                                             ; preds = %3846
  call void @exit(i32 noundef 1) #11
  unreachable

3848:                                             ; No predecessors!
  br label %3849

3849:                                             ; preds = %3848
  br label %3850

3850:                                             ; preds = %3849, %3790
  br label %3851

3851:                                             ; preds = %3850
  br label %3852

3852:                                             ; preds = %3851
  br label %3853

3853:                                             ; preds = %3852
  %3854 = load i32, ptr @test_count, align 4, !tbaa !5
  %3855 = add nsw i32 %3854, 1
  store i32 %3855, ptr @test_count, align 4, !tbaa !5
  %3856 = load ptr, ptr %77, align 8, !tbaa !9
  %3857 = call i32 @s2n_connection_client_cert_used(ptr noundef %3856)
  %3858 = icmp ne i32 %3857, 0
  br i1 %3858, label %3859, label %3912

3859:                                             ; preds = %3853
  br label %3860

3860:                                             ; preds = %3859
  br label %3861

3861:                                             ; preds = %3860
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %3862 = call ptr @__errno_location() #10
  %3863 = load i32, ptr %3862, align 4, !tbaa !5
  store i32 %3863, ptr %91, align 4, !tbaa !5
  %3864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3865 = call i32 @s2n_print_stacktrace(ptr noundef %3864)
  %3866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3867 = trunc i8 %3866 to i1
  br i1 %3867, label %3868, label %3890

3868:                                             ; preds = %3861
  %3869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3870 = call i32 @fileno(ptr noundef %3869) #9
  %3871 = call i32 @isatty(i32 noundef %3870) #9
  %3872 = icmp ne i32 %3871, 0
  br i1 %3872, label %3873, label %3890

3873:                                             ; preds = %3868
  %3874 = load i32, ptr %91, align 4, !tbaa !5
  %3875 = call ptr @__errno_location() #10
  store i32 %3874, ptr %3875, align 4, !tbaa !5
  %3876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3877 = load i32, ptr @test_count, align 4, !tbaa !5
  %3878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3879 = load i32, ptr %3878, align 4, !tbaa !5
  %3880 = call ptr @s2n_strerror(i32 noundef %3879, ptr noundef @.str.4)
  %3881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3882 = load i32, ptr %3881, align 4, !tbaa !5
  %3883 = call ptr @s2n_strerror_debug(i32 noundef %3882, ptr noundef @.str.4)
  %3884 = call ptr @__errno_location() #10
  %3885 = load i32, ptr %3884, align 4, !tbaa !5
  %3886 = call ptr @strerror(i32 noundef %3885) #9
  %3887 = call ptr @__errno_location() #10
  %3888 = load i32, ptr %3887, align 4, !tbaa !5
  %3889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3876, ptr noundef @.str.2, i32 noundef %3877, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3880, ptr noundef %3883, ptr noundef %3886, i32 noundef %3888) #9
  br label %3907

3890:                                             ; preds = %3868, %3861
  %3891 = load i32, ptr %91, align 4, !tbaa !5
  %3892 = call ptr @__errno_location() #10
  store i32 %3891, ptr %3892, align 4, !tbaa !5
  %3893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3894 = load i32, ptr @test_count, align 4, !tbaa !5
  %3895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  %3897 = call ptr @s2n_strerror(i32 noundef %3896, ptr noundef @.str.4)
  %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_debug(i32 noundef %3899, ptr noundef @.str.4)
  %3901 = call ptr @__errno_location() #10
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call ptr @strerror(i32 noundef %3902) #9
  %3904 = call ptr @__errno_location() #10
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3893, ptr noundef @.str.5, i32 noundef %3894, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3897, ptr noundef %3900, ptr noundef %3903, i32 noundef %3905) #9
  br label %3907

3907:                                             ; preds = %3890, %3873
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %3908

3908:                                             ; preds = %3907
  br label %3909

3909:                                             ; preds = %3908
  call void @exit(i32 noundef 1) #11
  unreachable

3910:                                             ; No predecessors!
  br label %3911

3911:                                             ; preds = %3910
  br label %3912

3912:                                             ; preds = %3911, %3853
  br label %3913

3913:                                             ; preds = %3912
  br label %3914

3914:                                             ; preds = %3913
  br label %3915

3915:                                             ; preds = %3914
  %3916 = load i32, ptr @test_count, align 4, !tbaa !5
  %3917 = add nsw i32 %3916, 1
  store i32 %3917, ptr @test_count, align 4, !tbaa !5
  %3918 = load ptr, ptr %76, align 8, !tbaa !9
  %3919 = call i32 @s2n_connection_client_cert_used(ptr noundef %3918)
  %3920 = icmp ne i32 %3919, 0
  br i1 %3920, label %3921, label %3974

3921:                                             ; preds = %3915
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

3923:                                             ; preds = %3922
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %3924 = call ptr @__errno_location() #10
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  store i32 %3925, ptr %92, align 4, !tbaa !5
  %3926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3927 = call i32 @s2n_print_stacktrace(ptr noundef %3926)
  %3928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3929 = trunc i8 %3928 to i1
  br i1 %3929, label %3930, label %3952

3930:                                             ; preds = %3923
  %3931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3932 = call i32 @fileno(ptr noundef %3931) #9
  %3933 = call i32 @isatty(i32 noundef %3932) #9
  %3934 = icmp ne i32 %3933, 0
  br i1 %3934, label %3935, label %3952

3935:                                             ; preds = %3930
  %3936 = load i32, ptr %92, align 4, !tbaa !5
  %3937 = call ptr @__errno_location() #10
  store i32 %3936, ptr %3937, align 4, !tbaa !5
  %3938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3939 = load i32, ptr @test_count, align 4, !tbaa !5
  %3940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3941 = load i32, ptr %3940, align 4, !tbaa !5
  %3942 = call ptr @s2n_strerror(i32 noundef %3941, ptr noundef @.str.4)
  %3943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3944 = load i32, ptr %3943, align 4, !tbaa !5
  %3945 = call ptr @s2n_strerror_debug(i32 noundef %3944, ptr noundef @.str.4)
  %3946 = call ptr @__errno_location() #10
  %3947 = load i32, ptr %3946, align 4, !tbaa !5
  %3948 = call ptr @strerror(i32 noundef %3947) #9
  %3949 = call ptr @__errno_location() #10
  %3950 = load i32, ptr %3949, align 4, !tbaa !5
  %3951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3938, ptr noundef @.str.2, i32 noundef %3939, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3942, ptr noundef %3945, ptr noundef %3948, i32 noundef %3950) #9
  br label %3969

3952:                                             ; preds = %3930, %3923
  %3953 = load i32, ptr %92, align 4, !tbaa !5
  %3954 = call ptr @__errno_location() #10
  store i32 %3953, ptr %3954, align 4, !tbaa !5
  %3955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3956 = load i32, ptr @test_count, align 4, !tbaa !5
  %3957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call ptr @s2n_strerror(i32 noundef %3958, ptr noundef @.str.4)
  %3960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call ptr @s2n_strerror_debug(i32 noundef %3961, ptr noundef @.str.4)
  %3963 = call ptr @__errno_location() #10
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  %3965 = call ptr @strerror(i32 noundef %3964) #9
  %3966 = call ptr @__errno_location() #10
  %3967 = load i32, ptr %3966, align 4, !tbaa !5
  %3968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3955, ptr noundef @.str.5, i32 noundef %3956, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3959, ptr noundef %3962, ptr noundef %3965, i32 noundef %3967) #9
  br label %3969

3969:                                             ; preds = %3952, %3935
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %3970

3970:                                             ; preds = %3969
  br label %3971

3971:                                             ; preds = %3970
  call void @exit(i32 noundef 1) #11
  unreachable

3972:                                             ; No predecessors!
  br label %3973

3973:                                             ; preds = %3972
  br label %3974

3974:                                             ; preds = %3973, %3915
  br label %3975

3975:                                             ; preds = %3974
  br label %3976

3976:                                             ; preds = %3975
  br label %3977

3977:                                             ; preds = %3976
  %3978 = load i32, ptr @test_count, align 4, !tbaa !5
  %3979 = add nsw i32 %3978, 1
  store i32 %3979, ptr @test_count, align 4, !tbaa !5
  %3980 = load ptr, ptr %76, align 8, !tbaa !9
  %3981 = call i32 @s2n_connection_free(ptr noundef %3980)
  %3982 = icmp eq i32 %3981, -1
  br i1 %3982, label %3983, label %4036

3983:                                             ; preds = %3977
  br label %3984

3984:                                             ; preds = %3983
  br label %3985

3985:                                             ; preds = %3984
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %3986 = call ptr @__errno_location() #10
  %3987 = load i32, ptr %3986, align 4, !tbaa !5
  store i32 %3987, ptr %93, align 4, !tbaa !5
  %3988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3989 = call i32 @s2n_print_stacktrace(ptr noundef %3988)
  %3990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3991 = trunc i8 %3990 to i1
  br i1 %3991, label %3992, label %4014

3992:                                             ; preds = %3985
  %3993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3994 = call i32 @fileno(ptr noundef %3993) #9
  %3995 = call i32 @isatty(i32 noundef %3994) #9
  %3996 = icmp ne i32 %3995, 0
  br i1 %3996, label %3997, label %4014

3997:                                             ; preds = %3992
  %3998 = load i32, ptr %93, align 4, !tbaa !5
  %3999 = call ptr @__errno_location() #10
  store i32 %3998, ptr %3999, align 4, !tbaa !5
  %4000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4001 = load i32, ptr @test_count, align 4, !tbaa !5
  %4002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4003 = load i32, ptr %4002, align 4, !tbaa !5
  %4004 = call ptr @s2n_strerror(i32 noundef %4003, ptr noundef @.str.4)
  %4005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  %4007 = call ptr @s2n_strerror_debug(i32 noundef %4006, ptr noundef @.str.4)
  %4008 = call ptr @__errno_location() #10
  %4009 = load i32, ptr %4008, align 4, !tbaa !5
  %4010 = call ptr @strerror(i32 noundef %4009) #9
  %4011 = call ptr @__errno_location() #10
  %4012 = load i32, ptr %4011, align 4, !tbaa !5
  %4013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4000, ptr noundef @.str.2, i32 noundef %4001, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4004, ptr noundef %4007, ptr noundef %4010, i32 noundef %4012) #9
  br label %4031

4014:                                             ; preds = %3992, %3985
  %4015 = load i32, ptr %93, align 4, !tbaa !5
  %4016 = call ptr @__errno_location() #10
  store i32 %4015, ptr %4016, align 4, !tbaa !5
  %4017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4018 = load i32, ptr @test_count, align 4, !tbaa !5
  %4019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4020 = load i32, ptr %4019, align 4, !tbaa !5
  %4021 = call ptr @s2n_strerror(i32 noundef %4020, ptr noundef @.str.4)
  %4022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4023 = load i32, ptr %4022, align 4, !tbaa !5
  %4024 = call ptr @s2n_strerror_debug(i32 noundef %4023, ptr noundef @.str.4)
  %4025 = call ptr @__errno_location() #10
  %4026 = load i32, ptr %4025, align 4, !tbaa !5
  %4027 = call ptr @strerror(i32 noundef %4026) #9
  %4028 = call ptr @__errno_location() #10
  %4029 = load i32, ptr %4028, align 4, !tbaa !5
  %4030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4017, ptr noundef @.str.5, i32 noundef %4018, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4021, ptr noundef %4024, ptr noundef %4027, i32 noundef %4029) #9
  br label %4031

4031:                                             ; preds = %4014, %3997
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %4032

4032:                                             ; preds = %4031
  br label %4033

4033:                                             ; preds = %4032
  call void @exit(i32 noundef 1) #11
  unreachable

4034:                                             ; No predecessors!
  br label %4035

4035:                                             ; preds = %4034
  br label %4036

4036:                                             ; preds = %4035, %3977
  br label %4037

4037:                                             ; preds = %4036
  br label %4038

4038:                                             ; preds = %4037
  br label %4039

4039:                                             ; preds = %4038
  %4040 = load i32, ptr @test_count, align 4, !tbaa !5
  %4041 = add nsw i32 %4040, 1
  store i32 %4041, ptr @test_count, align 4, !tbaa !5
  %4042 = load ptr, ptr %77, align 8, !tbaa !9
  %4043 = call i32 @s2n_connection_free(ptr noundef %4042)
  %4044 = icmp eq i32 %4043, -1
  br i1 %4044, label %4045, label %4098

4045:                                             ; preds = %4039
  br label %4046

4046:                                             ; preds = %4045
  br label %4047

4047:                                             ; preds = %4046
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %4048 = call ptr @__errno_location() #10
  %4049 = load i32, ptr %4048, align 4, !tbaa !5
  store i32 %4049, ptr %94, align 4, !tbaa !5
  %4050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4051 = call i32 @s2n_print_stacktrace(ptr noundef %4050)
  %4052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4053 = trunc i8 %4052 to i1
  br i1 %4053, label %4054, label %4076

4054:                                             ; preds = %4047
  %4055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4056 = call i32 @fileno(ptr noundef %4055) #9
  %4057 = call i32 @isatty(i32 noundef %4056) #9
  %4058 = icmp ne i32 %4057, 0
  br i1 %4058, label %4059, label %4076

4059:                                             ; preds = %4054
  %4060 = load i32, ptr %94, align 4, !tbaa !5
  %4061 = call ptr @__errno_location() #10
  store i32 %4060, ptr %4061, align 4, !tbaa !5
  %4062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4063 = load i32, ptr @test_count, align 4, !tbaa !5
  %4064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4065 = load i32, ptr %4064, align 4, !tbaa !5
  %4066 = call ptr @s2n_strerror(i32 noundef %4065, ptr noundef @.str.4)
  %4067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4068 = load i32, ptr %4067, align 4, !tbaa !5
  %4069 = call ptr @s2n_strerror_debug(i32 noundef %4068, ptr noundef @.str.4)
  %4070 = call ptr @__errno_location() #10
  %4071 = load i32, ptr %4070, align 4, !tbaa !5
  %4072 = call ptr @strerror(i32 noundef %4071) #9
  %4073 = call ptr @__errno_location() #10
  %4074 = load i32, ptr %4073, align 4, !tbaa !5
  %4075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4062, ptr noundef @.str.2, i32 noundef %4063, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4066, ptr noundef %4069, ptr noundef %4072, i32 noundef %4074) #9
  br label %4093

4076:                                             ; preds = %4054, %4047
  %4077 = load i32, ptr %94, align 4, !tbaa !5
  %4078 = call ptr @__errno_location() #10
  store i32 %4077, ptr %4078, align 4, !tbaa !5
  %4079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4080 = load i32, ptr @test_count, align 4, !tbaa !5
  %4081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4082 = load i32, ptr %4081, align 4, !tbaa !5
  %4083 = call ptr @s2n_strerror(i32 noundef %4082, ptr noundef @.str.4)
  %4084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4085 = load i32, ptr %4084, align 4, !tbaa !5
  %4086 = call ptr @s2n_strerror_debug(i32 noundef %4085, ptr noundef @.str.4)
  %4087 = call ptr @__errno_location() #10
  %4088 = load i32, ptr %4087, align 4, !tbaa !5
  %4089 = call ptr @strerror(i32 noundef %4088) #9
  %4090 = call ptr @__errno_location() #10
  %4091 = load i32, ptr %4090, align 4, !tbaa !5
  %4092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4079, ptr noundef @.str.5, i32 noundef %4080, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4083, ptr noundef %4086, ptr noundef %4089, i32 noundef %4091) #9
  br label %4093

4093:                                             ; preds = %4076, %4059
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %4094

4094:                                             ; preds = %4093
  br label %4095

4095:                                             ; preds = %4094
  call void @exit(i32 noundef 1) #11
  unreachable

4096:                                             ; No predecessors!
  br label %4097

4097:                                             ; preds = %4096
  br label %4098

4098:                                             ; preds = %4097, %4039
  br label %4099

4099:                                             ; preds = %4098
  br label %4100

4100:                                             ; preds = %4099
  br label %4101

4101:                                             ; preds = %4100
  %4102 = load i32, ptr @test_count, align 4, !tbaa !5
  %4103 = add nsw i32 %4102, 1
  store i32 %4103, ptr @test_count, align 4, !tbaa !5
  %4104 = call i32 @s2n_io_pair_close(ptr noundef %83)
  %4105 = icmp eq i32 %4104, -1
  br i1 %4105, label %4106, label %4159

4106:                                             ; preds = %4101
  br label %4107

4107:                                             ; preds = %4106
  br label %4108

4108:                                             ; preds = %4107
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  %4109 = call ptr @__errno_location() #10
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  store i32 %4110, ptr %95, align 4, !tbaa !5
  %4111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4112 = call i32 @s2n_print_stacktrace(ptr noundef %4111)
  %4113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4114 = trunc i8 %4113 to i1
  br i1 %4114, label %4115, label %4137

4115:                                             ; preds = %4108
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = call i32 @fileno(ptr noundef %4116) #9
  %4118 = call i32 @isatty(i32 noundef %4117) #9
  %4119 = icmp ne i32 %4118, 0
  br i1 %4119, label %4120, label %4137

4120:                                             ; preds = %4115
  %4121 = load i32, ptr %95, align 4, !tbaa !5
  %4122 = call ptr @__errno_location() #10
  store i32 %4121, ptr %4122, align 4, !tbaa !5
  %4123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4124 = load i32, ptr @test_count, align 4, !tbaa !5
  %4125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4126 = load i32, ptr %4125, align 4, !tbaa !5
  %4127 = call ptr @s2n_strerror(i32 noundef %4126, ptr noundef @.str.4)
  %4128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4129 = load i32, ptr %4128, align 4, !tbaa !5
  %4130 = call ptr @s2n_strerror_debug(i32 noundef %4129, ptr noundef @.str.4)
  %4131 = call ptr @__errno_location() #10
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  %4133 = call ptr @strerror(i32 noundef %4132) #9
  %4134 = call ptr @__errno_location() #10
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  %4136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4123, ptr noundef @.str.2, i32 noundef %4124, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 188, ptr noundef %4127, ptr noundef %4130, ptr noundef %4133, i32 noundef %4135) #9
  br label %4154

4137:                                             ; preds = %4115, %4108
  %4138 = load i32, ptr %95, align 4, !tbaa !5
  %4139 = call ptr @__errno_location() #10
  store i32 %4138, ptr %4139, align 4, !tbaa !5
  %4140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4141 = load i32, ptr @test_count, align 4, !tbaa !5
  %4142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4143 = load i32, ptr %4142, align 4, !tbaa !5
  %4144 = call ptr @s2n_strerror(i32 noundef %4143, ptr noundef @.str.4)
  %4145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4146 = load i32, ptr %4145, align 4, !tbaa !5
  %4147 = call ptr @s2n_strerror_debug(i32 noundef %4146, ptr noundef @.str.4)
  %4148 = call ptr @__errno_location() #10
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  %4150 = call ptr @strerror(i32 noundef %4149) #9
  %4151 = call ptr @__errno_location() #10
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4140, ptr noundef @.str.5, i32 noundef %4141, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 188, ptr noundef %4144, ptr noundef %4147, ptr noundef %4150, i32 noundef %4152) #9
  br label %4154

4154:                                             ; preds = %4137, %4120
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %4155

4155:                                             ; preds = %4154
  br label %4156

4156:                                             ; preds = %4155
  call void @exit(i32 noundef 1) #11
  unreachable

4157:                                             ; No predecessors!
  br label %4158

4158:                                             ; preds = %4157
  br label %4159

4159:                                             ; preds = %4158, %4101
  br label %4160

4160:                                             ; preds = %4159
  br label %4161

4161:                                             ; preds = %4160
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  store i32 0, ptr %42, align 4
  br label %4162

4162:                                             ; preds = %4161, %3346
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %74) #9
  %4163 = load i32, ptr %42, align 4
  switch i32 %4163, label %10829 [
    i32 0, label %4164
    i32 299, label %4165
  ]

4164:                                             ; preds = %4162
  br label %4165

4165:                                             ; preds = %4164, %4162
  %4166 = load i32, ptr %73, align 4, !tbaa !5
  %4167 = add nsw i32 %4166, 1
  store i32 %4167, ptr %73, align 4, !tbaa !5
  br label %3260, !llvm.loop !30

4168:                                             ; preds = %3267
  br label %4169

4169:                                             ; preds = %4168
  %4170 = load i32, ptr @test_count, align 4, !tbaa !5
  %4171 = add nsw i32 %4170, 1
  store i32 %4171, ptr @test_count, align 4, !tbaa !5
  %4172 = load ptr, ptr %6, align 8, !tbaa !9
  %4173 = call i32 @s2n_config_free(ptr noundef %4172)
  %4174 = icmp eq i32 %4173, -1
  br i1 %4174, label %4175, label %4228

4175:                                             ; preds = %4169
  br label %4176

4176:                                             ; preds = %4175
  br label %4177

4177:                                             ; preds = %4176
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %4178 = call ptr @__errno_location() #10
  %4179 = load i32, ptr %4178, align 4, !tbaa !5
  store i32 %4179, ptr %96, align 4, !tbaa !5
  %4180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4181 = call i32 @s2n_print_stacktrace(ptr noundef %4180)
  %4182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4183 = trunc i8 %4182 to i1
  br i1 %4183, label %4184, label %4206

4184:                                             ; preds = %4177
  %4185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4186 = call i32 @fileno(ptr noundef %4185) #9
  %4187 = call i32 @isatty(i32 noundef %4186) #9
  %4188 = icmp ne i32 %4187, 0
  br i1 %4188, label %4189, label %4206

4189:                                             ; preds = %4184
  %4190 = load i32, ptr %96, align 4, !tbaa !5
  %4191 = call ptr @__errno_location() #10
  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() #10
  %4201 = load i32, ptr %4200, align 4, !tbaa !5
  %4202 = call ptr @strerror(i32 noundef %4201) #9
  %4203 = call ptr @__errno_location() #10
  %4204 = load i32, ptr %4203, align 4, !tbaa !5
  %4205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4192, ptr noundef @.str.2, i32 noundef %4193, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 191, ptr noundef %4196, ptr noundef %4199, ptr noundef %4202, i32 noundef %4204) #9
  br label %4223

4206:                                             ; preds = %4184, %4177
  %4207 = load i32, ptr %96, align 4, !tbaa !5
  %4208 = call ptr @__errno_location() #10
  store i32 %4207, ptr %4208, align 4, !tbaa !5
  %4209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4210 = load i32, ptr @test_count, align 4, !tbaa !5
  %4211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4212 = load i32, ptr %4211, align 4, !tbaa !5
  %4213 = call ptr @s2n_strerror(i32 noundef %4212, ptr noundef @.str.4)
  %4214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call ptr @s2n_strerror_debug(i32 noundef %4215, ptr noundef @.str.4)
  %4217 = call ptr @__errno_location() #10
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call ptr @strerror(i32 noundef %4218) #9
  %4220 = call ptr @__errno_location() #10
  %4221 = load i32, ptr %4220, align 4, !tbaa !5
  %4222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4209, ptr noundef @.str.5, i32 noundef %4210, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 191, ptr noundef %4213, ptr noundef %4216, ptr noundef %4219, i32 noundef %4221) #9
  br label %4223

4223:                                             ; preds = %4206, %4189
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  br label %4224

4224:                                             ; preds = %4223
  br label %4225

4225:                                             ; preds = %4224
  call void @exit(i32 noundef 1) #11
  unreachable

4226:                                             ; No predecessors!
  br label %4227

4227:                                             ; preds = %4226
  br label %4228

4228:                                             ; preds = %4227, %4169
  br label %4229

4229:                                             ; preds = %4228
  br label %4230

4230:                                             ; preds = %4229
  br label %4231

4231:                                             ; preds = %4230
  %4232 = load i32, ptr @test_count, align 4, !tbaa !5
  %4233 = add nsw i32 %4232, 1
  store i32 %4233, ptr @test_count, align 4, !tbaa !5
  %4234 = call ptr @s2n_config_new()
  store ptr %4234, ptr %6, align 8, !tbaa !9
  %4235 = icmp eq ptr %4234, null
  br i1 %4235, label %4236, label %4289

4236:                                             ; preds = %4231
  br label %4237

4237:                                             ; preds = %4236
  br label %4238

4238:                                             ; preds = %4237
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %4239 = call ptr @__errno_location() #10
  %4240 = load i32, ptr %4239, align 4, !tbaa !5
  store i32 %4240, ptr %97, align 4, !tbaa !5
  %4241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4242 = call i32 @s2n_print_stacktrace(ptr noundef %4241)
  %4243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4244 = trunc i8 %4243 to i1
  br i1 %4244, label %4245, label %4267

4245:                                             ; preds = %4238
  %4246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4247 = call i32 @fileno(ptr noundef %4246) #9
  %4248 = call i32 @isatty(i32 noundef %4247) #9
  %4249 = icmp ne i32 %4248, 0
  br i1 %4249, label %4250, label %4267

4250:                                             ; preds = %4245
  %4251 = load i32, ptr %97, align 4, !tbaa !5
  %4252 = call ptr @__errno_location() #10
  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() #10
  %4262 = load i32, ptr %4261, align 4, !tbaa !5
  %4263 = call ptr @strerror(i32 noundef %4262) #9
  %4264 = call ptr @__errno_location() #10
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  %4266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4253, ptr noundef @.str.2, i32 noundef %4254, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 197, ptr noundef %4257, ptr noundef %4260, ptr noundef %4263, i32 noundef %4265) #9
  br label %4284

4267:                                             ; preds = %4245, %4238
  %4268 = load i32, ptr %97, align 4, !tbaa !5
  %4269 = call ptr @__errno_location() #10
  store i32 %4268, ptr %4269, align 4, !tbaa !5
  %4270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4271 = load i32, ptr @test_count, align 4, !tbaa !5
  %4272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call ptr @s2n_strerror(i32 noundef %4273, ptr noundef @.str.4)
  %4275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  %4277 = call ptr @s2n_strerror_debug(i32 noundef %4276, ptr noundef @.str.4)
  %4278 = call ptr @__errno_location() #10
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @strerror(i32 noundef %4279) #9
  %4281 = call ptr @__errno_location() #10
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4270, ptr noundef @.str.5, i32 noundef %4271, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 197, ptr noundef %4274, ptr noundef %4277, ptr noundef %4280, i32 noundef %4282) #9
  br label %4284

4284:                                             ; preds = %4267, %4250
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4285

4285:                                             ; preds = %4284
  br label %4286

4286:                                             ; preds = %4285
  call void @exit(i32 noundef 1) #11
  unreachable

4287:                                             ; No predecessors!
  br label %4288

4288:                                             ; preds = %4287
  br label %4289

4289:                                             ; preds = %4288, %4231
  br label %4290

4290:                                             ; preds = %4289
  br label %4291

4291:                                             ; preds = %4290
  br label %4292

4292:                                             ; preds = %4291
  %4293 = load i32, ptr @test_count, align 4, !tbaa !5
  %4294 = add nsw i32 %4293, 1
  store i32 %4294, ptr @test_count, align 4, !tbaa !5
  %4295 = load ptr, ptr %6, align 8, !tbaa !9
  %4296 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %4295, ptr noundef @.str.12)
  %4297 = icmp eq i32 %4296, -1
  br i1 %4297, label %4298, label %4351

4298:                                             ; preds = %4292
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

4300:                                             ; preds = %4299
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  %4301 = call ptr @__errno_location() #10
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  store i32 %4302, ptr %98, align 4, !tbaa !5
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = call i32 @s2n_print_stacktrace(ptr noundef %4303)
  %4305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4306 = trunc i8 %4305 to i1
  br i1 %4306, label %4307, label %4329

4307:                                             ; preds = %4300
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4309 = call i32 @fileno(ptr noundef %4308) #9
  %4310 = call i32 @isatty(i32 noundef %4309) #9
  %4311 = icmp ne i32 %4310, 0
  br i1 %4311, label %4312, label %4329

4312:                                             ; preds = %4307
  %4313 = load i32, ptr %98, align 4, !tbaa !5
  %4314 = call ptr @__errno_location() #10
  store i32 %4313, ptr %4314, align 4, !tbaa !5
  %4315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4316 = load i32, ptr @test_count, align 4, !tbaa !5
  %4317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  %4319 = call ptr @s2n_strerror(i32 noundef %4318, ptr noundef @.str.4)
  %4320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4321 = load i32, ptr %4320, align 4, !tbaa !5
  %4322 = call ptr @s2n_strerror_debug(i32 noundef %4321, ptr noundef @.str.4)
  %4323 = call ptr @__errno_location() #10
  %4324 = load i32, ptr %4323, align 4, !tbaa !5
  %4325 = call ptr @strerror(i32 noundef %4324) #9
  %4326 = call ptr @__errno_location() #10
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  %4328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4315, ptr noundef @.str.2, i32 noundef %4316, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 198, ptr noundef %4319, ptr noundef %4322, ptr noundef %4325, i32 noundef %4327) #9
  br label %4346

4329:                                             ; preds = %4307, %4300
  %4330 = load i32, ptr %98, align 4, !tbaa !5
  %4331 = call ptr @__errno_location() #10
  store i32 %4330, ptr %4331, align 4, !tbaa !5
  %4332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4333 = load i32, ptr @test_count, align 4, !tbaa !5
  %4334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4335 = load i32, ptr %4334, align 4, !tbaa !5
  %4336 = call ptr @s2n_strerror(i32 noundef %4335, ptr noundef @.str.4)
  %4337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  %4339 = call ptr @s2n_strerror_debug(i32 noundef %4338, ptr noundef @.str.4)
  %4340 = call ptr @__errno_location() #10
  %4341 = load i32, ptr %4340, align 4, !tbaa !5
  %4342 = call ptr @strerror(i32 noundef %4341) #9
  %4343 = call ptr @__errno_location() #10
  %4344 = load i32, ptr %4343, align 4, !tbaa !5
  %4345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4332, ptr noundef @.str.5, i32 noundef %4333, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 198, ptr noundef %4336, ptr noundef %4339, ptr noundef %4342, i32 noundef %4344) #9
  br label %4346

4346:                                             ; preds = %4329, %4312
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %4347

4347:                                             ; preds = %4346
  br label %4348

4348:                                             ; preds = %4347
  call void @exit(i32 noundef 1) #11
  unreachable

4349:                                             ; No predecessors!
  br label %4350

4350:                                             ; preds = %4349
  br label %4351

4351:                                             ; preds = %4350, %4292
  br label %4352

4352:                                             ; preds = %4351
  br label %4353

4353:                                             ; preds = %4352
  br label %4354

4354:                                             ; preds = %4353
  %4355 = load i32, ptr @test_count, align 4, !tbaa !5
  %4356 = add nsw i32 %4355, 1
  store i32 %4356, ptr @test_count, align 4, !tbaa !5
  %4357 = load ptr, ptr %6, align 8, !tbaa !9
  %4358 = call i32 @s2n_config_disable_x509_verification(ptr noundef %4357)
  %4359 = icmp eq i32 %4358, -1
  br i1 %4359, label %4360, label %4413

4360:                                             ; preds = %4354
  br label %4361

4361:                                             ; preds = %4360
  br label %4362

4362:                                             ; preds = %4361
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  %4363 = call ptr @__errno_location() #10
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  store i32 %4364, ptr %99, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = call i32 @s2n_print_stacktrace(ptr noundef %4365)
  %4367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4368 = trunc i8 %4367 to i1
  br i1 %4368, label %4369, label %4391

4369:                                             ; preds = %4362
  %4370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4371 = call i32 @fileno(ptr noundef %4370) #9
  %4372 = call i32 @isatty(i32 noundef %4371) #9
  %4373 = icmp ne i32 %4372, 0
  br i1 %4373, label %4374, label %4391

4374:                                             ; preds = %4369
  %4375 = load i32, ptr %99, align 4, !tbaa !5
  %4376 = call ptr @__errno_location() #10
  store i32 %4375, ptr %4376, align 4, !tbaa !5
  %4377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4378 = load i32, ptr @test_count, align 4, !tbaa !5
  %4379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call ptr @s2n_strerror(i32 noundef %4380, ptr noundef @.str.4)
  %4382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call ptr @s2n_strerror_debug(i32 noundef %4383, ptr noundef @.str.4)
  %4385 = call ptr @__errno_location() #10
  %4386 = load i32, ptr %4385, align 4, !tbaa !5
  %4387 = call ptr @strerror(i32 noundef %4386) #9
  %4388 = call ptr @__errno_location() #10
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  %4390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4377, ptr noundef @.str.2, i32 noundef %4378, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 199, ptr noundef %4381, ptr noundef %4384, ptr noundef %4387, i32 noundef %4389) #9
  br label %4408

4391:                                             ; preds = %4369, %4362
  %4392 = load i32, ptr %99, align 4, !tbaa !5
  %4393 = call ptr @__errno_location() #10
  store i32 %4392, ptr %4393, align 4, !tbaa !5
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = load i32, ptr @test_count, align 4, !tbaa !5
  %4396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = call ptr @s2n_strerror(i32 noundef %4397, ptr noundef @.str.4)
  %4399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  %4401 = call ptr @s2n_strerror_debug(i32 noundef %4400, ptr noundef @.str.4)
  %4402 = call ptr @__errno_location() #10
  %4403 = load i32, ptr %4402, align 4, !tbaa !5
  %4404 = call ptr @strerror(i32 noundef %4403) #9
  %4405 = call ptr @__errno_location() #10
  %4406 = load i32, ptr %4405, align 4, !tbaa !5
  %4407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4394, ptr noundef @.str.5, i32 noundef %4395, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 199, ptr noundef %4398, ptr noundef %4401, ptr noundef %4404, i32 noundef %4406) #9
  br label %4408

4408:                                             ; preds = %4391, %4374
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

4410:                                             ; preds = %4409
  call void @exit(i32 noundef 1) #11
  unreachable

4411:                                             ; No predecessors!
  br label %4412

4412:                                             ; preds = %4411
  br label %4413

4413:                                             ; preds = %4412, %4354
  br label %4414

4414:                                             ; preds = %4413
  br label %4415

4415:                                             ; preds = %4414
  br label %4416

4416:                                             ; preds = %4415
  %4417 = load i32, ptr @test_count, align 4, !tbaa !5
  %4418 = add nsw i32 %4417, 1
  store i32 %4418, ptr @test_count, align 4, !tbaa !5
  %4419 = load ptr, ptr %6, align 8, !tbaa !9
  %4420 = call i32 @s2n_config_set_client_auth_type(ptr noundef %4419, i32 noundef 2)
  %4421 = icmp eq i32 %4420, -1
  br i1 %4421, label %4422, label %4475

4422:                                             ; preds = %4416
  br label %4423

4423:                                             ; preds = %4422
  br label %4424

4424:                                             ; preds = %4423
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %4425 = call ptr @__errno_location() #10
  %4426 = load i32, ptr %4425, align 4, !tbaa !5
  store i32 %4426, ptr %100, align 4, !tbaa !5
  %4427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4428 = call i32 @s2n_print_stacktrace(ptr noundef %4427)
  %4429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4430 = trunc i8 %4429 to i1
  br i1 %4430, label %4431, label %4453

4431:                                             ; preds = %4424
  %4432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4433 = call i32 @fileno(ptr noundef %4432) #9
  %4434 = call i32 @isatty(i32 noundef %4433) #9
  %4435 = icmp ne i32 %4434, 0
  br i1 %4435, label %4436, label %4453

4436:                                             ; preds = %4431
  %4437 = load i32, ptr %100, align 4, !tbaa !5
  %4438 = call ptr @__errno_location() #10
  store i32 %4437, ptr %4438, align 4, !tbaa !5
  %4439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4440 = load i32, ptr @test_count, align 4, !tbaa !5
  %4441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call ptr @s2n_strerror(i32 noundef %4442, ptr noundef @.str.4)
  %4444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = call ptr @s2n_strerror_debug(i32 noundef %4445, ptr noundef @.str.4)
  %4447 = call ptr @__errno_location() #10
  %4448 = load i32, ptr %4447, align 4, !tbaa !5
  %4449 = call ptr @strerror(i32 noundef %4448) #9
  %4450 = call ptr @__errno_location() #10
  %4451 = load i32, ptr %4450, align 4, !tbaa !5
  %4452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4439, ptr noundef @.str.2, i32 noundef %4440, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4443, ptr noundef %4446, ptr noundef %4449, i32 noundef %4451) #9
  br label %4470

4453:                                             ; preds = %4431, %4424
  %4454 = load i32, ptr %100, align 4, !tbaa !5
  %4455 = call ptr @__errno_location() #10
  store i32 %4454, ptr %4455, align 4, !tbaa !5
  %4456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4457 = load i32, ptr @test_count, align 4, !tbaa !5
  %4458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4459 = load i32, ptr %4458, align 4, !tbaa !5
  %4460 = call ptr @s2n_strerror(i32 noundef %4459, ptr noundef @.str.4)
  %4461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  %4463 = call ptr @s2n_strerror_debug(i32 noundef %4462, ptr noundef @.str.4)
  %4464 = call ptr @__errno_location() #10
  %4465 = load i32, ptr %4464, align 4, !tbaa !5
  %4466 = call ptr @strerror(i32 noundef %4465) #9
  %4467 = call ptr @__errno_location() #10
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  %4469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4456, ptr noundef @.str.5, i32 noundef %4457, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4460, ptr noundef %4463, ptr noundef %4466, i32 noundef %4468) #9
  br label %4470

4470:                                             ; preds = %4453, %4436
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %4471

4471:                                             ; preds = %4470
  br label %4472

4472:                                             ; preds = %4471
  call void @exit(i32 noundef 1) #11
  unreachable

4473:                                             ; No predecessors!
  br label %4474

4474:                                             ; preds = %4473
  br label %4475

4475:                                             ; preds = %4474, %4416
  br label %4476

4476:                                             ; preds = %4475
  br label %4477

4477:                                             ; preds = %4476
  br label %4478

4478:                                             ; preds = %4477
  %4479 = load i32, ptr @test_count, align 4, !tbaa !5
  %4480 = add nsw i32 %4479, 1
  store i32 %4480, ptr @test_count, align 4, !tbaa !5
  %4481 = load ptr, ptr %7, align 8, !tbaa !9
  %4482 = call i32 @s2n_config_set_client_auth_type(ptr noundef %4481, i32 noundef 2)
  %4483 = icmp eq i32 %4482, -1
  br i1 %4483, label %4484, label %4537

4484:                                             ; preds = %4478
  br label %4485

4485:                                             ; preds = %4484
  br label %4486

4486:                                             ; preds = %4485
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #9
  %4487 = call ptr @__errno_location() #10
  %4488 = load i32, ptr %4487, align 4, !tbaa !5
  store i32 %4488, ptr %101, align 4, !tbaa !5
  %4489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4490 = call i32 @s2n_print_stacktrace(ptr noundef %4489)
  %4491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4492 = trunc i8 %4491 to i1
  br i1 %4492, label %4493, label %4515

4493:                                             ; preds = %4486
  %4494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4495 = call i32 @fileno(ptr noundef %4494) #9
  %4496 = call i32 @isatty(i32 noundef %4495) #9
  %4497 = icmp ne i32 %4496, 0
  br i1 %4497, label %4498, label %4515

4498:                                             ; preds = %4493
  %4499 = load i32, ptr %101, align 4, !tbaa !5
  %4500 = call ptr @__errno_location() #10
  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() #10
  %4510 = load i32, ptr %4509, align 4, !tbaa !5
  %4511 = call ptr @strerror(i32 noundef %4510) #9
  %4512 = call ptr @__errno_location() #10
  %4513 = load i32, ptr %4512, align 4, !tbaa !5
  %4514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4501, ptr noundef @.str.2, i32 noundef %4502, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 203, ptr noundef %4505, ptr noundef %4508, ptr noundef %4511, i32 noundef %4513) #9
  br label %4532

4515:                                             ; preds = %4493, %4486
  %4516 = load i32, ptr %101, align 4, !tbaa !5
  %4517 = call ptr @__errno_location() #10
  store i32 %4516, ptr %4517, align 4, !tbaa !5
  %4518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4519 = load i32, ptr @test_count, align 4, !tbaa !5
  %4520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4521 = load i32, ptr %4520, align 4, !tbaa !5
  %4522 = call ptr @s2n_strerror(i32 noundef %4521, ptr noundef @.str.4)
  %4523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4524 = load i32, ptr %4523, align 4, !tbaa !5
  %4525 = call ptr @s2n_strerror_debug(i32 noundef %4524, ptr noundef @.str.4)
  %4526 = call ptr @__errno_location() #10
  %4527 = load i32, ptr %4526, align 4, !tbaa !5
  %4528 = call ptr @strerror(i32 noundef %4527) #9
  %4529 = call ptr @__errno_location() #10
  %4530 = load i32, ptr %4529, align 4, !tbaa !5
  %4531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4518, ptr noundef @.str.5, i32 noundef %4519, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 203, ptr noundef %4522, ptr noundef %4525, ptr noundef %4528, i32 noundef %4530) #9
  br label %4532

4532:                                             ; preds = %4515, %4498
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  br label %4533

4533:                                             ; preds = %4532
  br label %4534

4534:                                             ; preds = %4533
  call void @exit(i32 noundef 1) #11
  unreachable

4535:                                             ; No predecessors!
  br label %4536

4536:                                             ; preds = %4535
  br label %4537

4537:                                             ; preds = %4536, %4478
  br label %4538

4538:                                             ; preds = %4537
  br label %4539

4539:                                             ; preds = %4538
  br label %4540

4540:                                             ; preds = %4539
  %4541 = load i32, ptr @test_count, align 4, !tbaa !5
  %4542 = add nsw i32 %4541, 1
  store i32 %4542, ptr @test_count, align 4, !tbaa !5
  %4543 = load ptr, ptr %7, align 8, !tbaa !9
  %4544 = call i32 @s2n_config_disable_x509_verification(ptr noundef %4543)
  %4545 = icmp eq i32 %4544, -1
  br i1 %4545, label %4546, label %4599

4546:                                             ; preds = %4540
  br label %4547

4547:                                             ; preds = %4546
  br label %4548

4548:                                             ; preds = %4547
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  %4549 = call ptr @__errno_location() #10
  %4550 = load i32, ptr %4549, align 4, !tbaa !5
  store i32 %4550, ptr %102, align 4, !tbaa !5
  %4551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4552 = call i32 @s2n_print_stacktrace(ptr noundef %4551)
  %4553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4554 = trunc i8 %4553 to i1
  br i1 %4554, label %4555, label %4577

4555:                                             ; preds = %4548
  %4556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4557 = call i32 @fileno(ptr noundef %4556) #9
  %4558 = call i32 @isatty(i32 noundef %4557) #9
  %4559 = icmp ne i32 %4558, 0
  br i1 %4559, label %4560, label %4577

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

4577:                                             ; preds = %4555, %4548
  %4578 = load i32, ptr %102, align 4, !tbaa !5
  %4579 = call ptr @__errno_location() #10
  store i32 %4578, ptr %4579, align 4, !tbaa !5
  %4580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4581 = load i32, ptr @test_count, align 4, !tbaa !5
  %4582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4583 = load i32, ptr %4582, align 4, !tbaa !5
  %4584 = call ptr @s2n_strerror(i32 noundef %4583, ptr noundef @.str.4)
  %4585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4586 = load i32, ptr %4585, align 4, !tbaa !5
  %4587 = call ptr @s2n_strerror_debug(i32 noundef %4586, ptr noundef @.str.4)
  %4588 = call ptr @__errno_location() #10
  %4589 = load i32, ptr %4588, align 4, !tbaa !5
  %4590 = call ptr @strerror(i32 noundef %4589) #9
  %4591 = call ptr @__errno_location() #10
  %4592 = load i32, ptr %4591, align 4, !tbaa !5
  %4593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4580, ptr noundef @.str.5, i32 noundef %4581, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 204, ptr noundef %4584, ptr noundef %4587, ptr noundef %4590, i32 noundef %4592) #9
  br label %4594

4594:                                             ; preds = %4577, %4560
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  br label %4595

4595:                                             ; preds = %4594
  br label %4596

4596:                                             ; preds = %4595
  call void @exit(i32 noundef 1) #11
  unreachable

4597:                                             ; No predecessors!
  br label %4598

4598:                                             ; preds = %4597
  br label %4599

4599:                                             ; preds = %4598, %4540
  br label %4600

4600:                                             ; preds = %4599
  br label %4601

4601:                                             ; preds = %4600
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  store i32 0, ptr %103, align 4, !tbaa !5
  br label %4602

4602:                                             ; preds = %5507, %4601
  %4603 = load i32, ptr %103, align 4, !tbaa !5
  %4604 = load ptr, ptr %9, align 8, !tbaa !9
  %4605 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %4604, i32 0, i32 0
  %4606 = load i16, ptr %4605, align 8, !tbaa !24
  %4607 = zext i16 %4606 to i32
  %4608 = icmp slt i32 %4603, %4607
  br i1 %4608, label %4610, label %4609

4609:                                             ; preds = %4602
  store i32 426, ptr %42, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %5510

4610:                                             ; preds = %4602
  call void @llvm.lifetime.start.p0(i64 24, ptr %104) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %105) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #9
  store ptr null, ptr %106, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #9
  store ptr null, ptr %107, align 8, !tbaa !9
  br label %4611

4611:                                             ; preds = %4610
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #9
  store i64 24, ptr %108, align 8, !tbaa !26
  %4612 = load i64, ptr %108, align 8, !tbaa !26
  %4613 = icmp ne i64 %4612, 0
  br i1 %4613, label %4614, label %4672

4614:                                             ; preds = %4611
  %4615 = load ptr, ptr %9, align 8, !tbaa !9
  %4616 = load i64, ptr %108, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %104, ptr align 8 %4615, i64 %4616, i1 false)
  %4617 = icmp eq ptr %104, null
  br i1 %4617, label %4618, label %4671

4618:                                             ; preds = %4614
  br label %4619

4619:                                             ; preds = %4618
  br label %4620

4620:                                             ; preds = %4619
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #9
  %4621 = call ptr @__errno_location() #10
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  store i32 %4622, ptr %109, align 4, !tbaa !5
  %4623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4624 = call i32 @s2n_print_stacktrace(ptr noundef %4623)
  %4625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4626 = trunc i8 %4625 to i1
  br i1 %4626, label %4627, label %4649

4627:                                             ; preds = %4620
  %4628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4629 = call i32 @fileno(ptr noundef %4628) #9
  %4630 = call i32 @isatty(i32 noundef %4629) #9
  %4631 = icmp ne i32 %4630, 0
  br i1 %4631, label %4632, label %4649

4632:                                             ; preds = %4627
  %4633 = load i32, ptr %109, align 4, !tbaa !5
  %4634 = call ptr @__errno_location() #10
  store i32 %4633, ptr %4634, align 4, !tbaa !5
  %4635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4636 = load i32, ptr @test_count, align 4, !tbaa !5
  %4637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call ptr @s2n_strerror(i32 noundef %4638, ptr noundef @.str.4)
  %4640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call ptr @s2n_strerror_debug(i32 noundef %4641, ptr noundef @.str.4)
  %4643 = call ptr @__errno_location() #10
  %4644 = load i32, ptr %4643, align 4, !tbaa !5
  %4645 = call ptr @strerror(i32 noundef %4644) #9
  %4646 = call ptr @__errno_location() #10
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  %4648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4635, ptr noundef @.str.2, i32 noundef %4636, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4639, ptr noundef %4642, ptr noundef %4645, i32 noundef %4647) #9
  br label %4666

4649:                                             ; preds = %4627, %4620
  %4650 = load i32, ptr %109, align 4, !tbaa !5
  %4651 = call ptr @__errno_location() #10
  store i32 %4650, ptr %4651, align 4, !tbaa !5
  %4652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4653 = load i32, ptr @test_count, align 4, !tbaa !5
  %4654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  %4656 = call ptr @s2n_strerror(i32 noundef %4655, ptr noundef @.str.4)
  %4657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4658 = load i32, ptr %4657, align 4, !tbaa !5
  %4659 = call ptr @s2n_strerror_debug(i32 noundef %4658, ptr noundef @.str.4)
  %4660 = call ptr @__errno_location() #10
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call ptr @strerror(i32 noundef %4661) #9
  %4663 = call ptr @__errno_location() #10
  %4664 = load i32, ptr %4663, align 4, !tbaa !5
  %4665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4652, ptr noundef @.str.5, i32 noundef %4653, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4656, ptr noundef %4659, ptr noundef %4662, i32 noundef %4664) #9
  br label %4666

4666:                                             ; preds = %4649, %4632
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %4667

4667:                                             ; preds = %4666
  br label %4668

4668:                                             ; preds = %4667
  call void @exit(i32 noundef 1) #11
  unreachable

4669:                                             ; No predecessors!
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670, %4614
  br label %4672

4672:                                             ; preds = %4671, %4611
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #9
  br label %4673

4673:                                             ; preds = %4672
  br label %4674

4674:                                             ; preds = %4673
  %4675 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %104, i32 0, i32 0
  store i16 1, ptr %4675, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #9
  %4676 = load ptr, ptr %9, align 8, !tbaa !9
  %4677 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %4676, i32 0, i32 1
  %4678 = load ptr, ptr %4677, align 8, !tbaa !27
  %4679 = load i32, ptr %103, align 4, !tbaa !5
  %4680 = sext i32 %4679 to i64
  %4681 = getelementptr inbounds ptr, ptr %4678, i64 %4680
  %4682 = load ptr, ptr %4681, align 8, !tbaa !9
  store ptr %4682, ptr %110, align 8, !tbaa !9
  %4683 = load ptr, ptr %110, align 8, !tbaa !9
  %4684 = load i8, ptr %4683, align 8
  %4685 = and i8 %4684, 1
  %4686 = zext i8 %4685 to i32
  %4687 = icmp ne i32 %4686, 0
  br i1 %4687, label %4689, label %4688

4688:                                             ; preds = %4674
  store i32 428, ptr %42, align 4
  br label %5504

4689:                                             ; preds = %4674
  %4690 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %104, i32 0, i32 1
  store ptr %110, ptr %4690, align 8, !tbaa !27
  br label %4691

4691:                                             ; preds = %4689
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #9
  store i64 64, ptr %111, align 8, !tbaa !26
  %4692 = load i64, ptr %111, align 8, !tbaa !26
  %4693 = icmp ne i64 %4692, 0
  br i1 %4693, label %4694, label %4752

4694:                                             ; preds = %4691
  %4695 = load ptr, ptr %8, align 8, !tbaa !9
  %4696 = load i64, ptr %111, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %105, ptr align 8 %4695, i64 %4696, i1 false)
  %4697 = icmp eq ptr %105, null
  br i1 %4697, label %4698, label %4751

4698:                                             ; preds = %4694
  br label %4699

4699:                                             ; preds = %4698
  br label %4700

4700:                                             ; preds = %4699
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #9
  %4701 = call ptr @__errno_location() #10
  %4702 = load i32, ptr %4701, align 4, !tbaa !5
  store i32 %4702, ptr %112, align 4, !tbaa !5
  %4703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4704 = call i32 @s2n_print_stacktrace(ptr noundef %4703)
  %4705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4706 = trunc i8 %4705 to i1
  br i1 %4706, label %4707, label %4729

4707:                                             ; preds = %4700
  %4708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4709 = call i32 @fileno(ptr noundef %4708) #9
  %4710 = call i32 @isatty(i32 noundef %4709) #9
  %4711 = icmp ne i32 %4710, 0
  br i1 %4711, label %4712, label %4729

4712:                                             ; preds = %4707
  %4713 = load i32, ptr %112, align 4, !tbaa !5
  %4714 = call ptr @__errno_location() #10
  store i32 %4713, ptr %4714, align 4, !tbaa !5
  %4715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4716 = load i32, ptr @test_count, align 4, !tbaa !5
  %4717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4718 = load i32, ptr %4717, align 4, !tbaa !5
  %4719 = call ptr @s2n_strerror(i32 noundef %4718, ptr noundef @.str.4)
  %4720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4721 = load i32, ptr %4720, align 4, !tbaa !5
  %4722 = call ptr @s2n_strerror_debug(i32 noundef %4721, ptr noundef @.str.4)
  %4723 = call ptr @__errno_location() #10
  %4724 = load i32, ptr %4723, align 4, !tbaa !5
  %4725 = call ptr @strerror(i32 noundef %4724) #9
  %4726 = call ptr @__errno_location() #10
  %4727 = load i32, ptr %4726, align 4, !tbaa !5
  %4728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4715, ptr noundef @.str.2, i32 noundef %4716, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 225, ptr noundef %4719, ptr noundef %4722, ptr noundef %4725, i32 noundef %4727) #9
  br label %4746

4729:                                             ; preds = %4707, %4700
  %4730 = load i32, ptr %112, align 4, !tbaa !5
  %4731 = call ptr @__errno_location() #10
  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() #10
  %4741 = load i32, ptr %4740, align 4, !tbaa !5
  %4742 = call ptr @strerror(i32 noundef %4741) #9
  %4743 = call ptr @__errno_location() #10
  %4744 = load i32, ptr %4743, align 4, !tbaa !5
  %4745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4732, ptr noundef @.str.5, i32 noundef %4733, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 225, ptr noundef %4736, ptr noundef %4739, ptr noundef %4742, i32 noundef %4744) #9
  br label %4746

4746:                                             ; preds = %4729, %4712
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #9
  br label %4747

4747:                                             ; preds = %4746
  br label %4748

4748:                                             ; preds = %4747
  call void @exit(i32 noundef 1) #11
  unreachable

4749:                                             ; No predecessors!
  br label %4750

4750:                                             ; preds = %4749
  br label %4751

4751:                                             ; preds = %4750, %4694
  br label %4752

4752:                                             ; preds = %4751, %4691
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  br label %4753

4753:                                             ; preds = %4752
  br label %4754

4754:                                             ; preds = %4753
  %4755 = getelementptr inbounds %struct.s2n_security_policy, ptr %105, i32 0, i32 1
  store ptr %104, ptr %4755, align 8, !tbaa !22
  %4756 = load ptr, ptr %6, align 8, !tbaa !9
  %4757 = getelementptr inbounds %struct.s2n_config, ptr %4756, i32 0, i32 7
  store ptr %105, ptr %4757, align 8, !tbaa !15
  %4758 = load ptr, ptr %7, align 8, !tbaa !9
  %4759 = getelementptr inbounds %struct.s2n_config, ptr %4758, i32 0, i32 7
  store ptr %105, ptr %4759, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #9
  br label %4760

4760:                                             ; preds = %4754
  %4761 = load i32, ptr @test_count, align 4, !tbaa !5
  %4762 = add nsw i32 %4761, 1
  store i32 %4762, ptr @test_count, align 4, !tbaa !5
  %4763 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %113)
  %4764 = icmp eq i32 %4763, -1
  br i1 %4764, label %4765, label %4818

4765:                                             ; preds = %4760
  br label %4766

4766:                                             ; preds = %4765
  br label %4767

4767:                                             ; preds = %4766
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #9
  %4768 = call ptr @__errno_location() #10
  %4769 = load i32, ptr %4768, align 4, !tbaa !5
  store i32 %4769, ptr %114, align 4, !tbaa !5
  %4770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4771 = call i32 @s2n_print_stacktrace(ptr noundef %4770)
  %4772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4773 = trunc i8 %4772 to i1
  br i1 %4773, label %4774, label %4796

4774:                                             ; preds = %4767
  %4775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4776 = call i32 @fileno(ptr noundef %4775) #9
  %4777 = call i32 @isatty(i32 noundef %4776) #9
  %4778 = icmp ne i32 %4777, 0
  br i1 %4778, label %4779, label %4796

4779:                                             ; preds = %4774
  %4780 = load i32, ptr %114, align 4, !tbaa !5
  %4781 = call ptr @__errno_location() #10
  store i32 %4780, ptr %4781, align 4, !tbaa !5
  %4782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4783 = load i32, ptr @test_count, align 4, !tbaa !5
  %4784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4785 = load i32, ptr %4784, align 4, !tbaa !5
  %4786 = call ptr @s2n_strerror(i32 noundef %4785, ptr noundef @.str.4)
  %4787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4788 = load i32, ptr %4787, align 4, !tbaa !5
  %4789 = call ptr @s2n_strerror_debug(i32 noundef %4788, ptr noundef @.str.4)
  %4790 = call ptr @__errno_location() #10
  %4791 = load i32, ptr %4790, align 4, !tbaa !5
  %4792 = call ptr @strerror(i32 noundef %4791) #9
  %4793 = call ptr @__errno_location() #10
  %4794 = load i32, ptr %4793, align 4, !tbaa !5
  %4795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4782, ptr noundef @.str.2, i32 noundef %4783, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4786, ptr noundef %4789, ptr noundef %4792, i32 noundef %4794) #9
  br label %4813

4796:                                             ; preds = %4774, %4767
  %4797 = load i32, ptr %114, align 4, !tbaa !5
  %4798 = call ptr @__errno_location() #10
  store i32 %4797, ptr %4798, align 4, !tbaa !5
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = load i32, ptr @test_count, align 4, !tbaa !5
  %4801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4802 = load i32, ptr %4801, align 4, !tbaa !5
  %4803 = call ptr @s2n_strerror(i32 noundef %4802, ptr noundef @.str.4)
  %4804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4805 = load i32, ptr %4804, align 4, !tbaa !5
  %4806 = call ptr @s2n_strerror_debug(i32 noundef %4805, ptr noundef @.str.4)
  %4807 = call ptr @__errno_location() #10
  %4808 = load i32, ptr %4807, align 4, !tbaa !5
  %4809 = call ptr @strerror(i32 noundef %4808) #9
  %4810 = call ptr @__errno_location() #10
  %4811 = load i32, ptr %4810, align 4, !tbaa !5
  %4812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4799, ptr noundef @.str.5, i32 noundef %4800, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4803, ptr noundef %4806, ptr noundef %4809, i32 noundef %4811) #9
  br label %4813

4813:                                             ; preds = %4796, %4779
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #9
  br label %4814

4814:                                             ; preds = %4813
  br label %4815

4815:                                             ; preds = %4814
  call void @exit(i32 noundef 1) #11
  unreachable

4816:                                             ; No predecessors!
  br label %4817

4817:                                             ; preds = %4816
  br label %4818

4818:                                             ; preds = %4817, %4760
  br label %4819

4819:                                             ; preds = %4818
  br label %4820

4820:                                             ; preds = %4819
  br label %4821

4821:                                             ; preds = %4820
  %4822 = load i32, ptr @test_count, align 4, !tbaa !5
  %4823 = add nsw i32 %4822, 1
  store i32 %4823, ptr @test_count, align 4, !tbaa !5
  %4824 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4824, ptr %106, align 8, !tbaa !9
  %4825 = icmp eq ptr %4824, null
  br i1 %4825, label %4826, label %4879

4826:                                             ; preds = %4821
  br label %4827

4827:                                             ; preds = %4826
  br label %4828

4828:                                             ; preds = %4827
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #9
  %4829 = call ptr @__errno_location() #10
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  store i32 %4830, ptr %115, align 4, !tbaa !5
  %4831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4832 = call i32 @s2n_print_stacktrace(ptr noundef %4831)
  %4833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4834 = trunc i8 %4833 to i1
  br i1 %4834, label %4835, label %4857

4835:                                             ; preds = %4828
  %4836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4837 = call i32 @fileno(ptr noundef %4836) #9
  %4838 = call i32 @isatty(i32 noundef %4837) #9
  %4839 = icmp ne i32 %4838, 0
  br i1 %4839, label %4840, label %4857

4840:                                             ; preds = %4835
  %4841 = load i32, ptr %115, align 4, !tbaa !5
  %4842 = call ptr @__errno_location() #10
  store i32 %4841, ptr %4842, align 4, !tbaa !5
  %4843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4844 = load i32, ptr @test_count, align 4, !tbaa !5
  %4845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4846 = load i32, ptr %4845, align 4, !tbaa !5
  %4847 = call ptr @s2n_strerror(i32 noundef %4846, ptr noundef @.str.4)
  %4848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call ptr @s2n_strerror_debug(i32 noundef %4849, ptr noundef @.str.4)
  %4851 = call ptr @__errno_location() #10
  %4852 = load i32, ptr %4851, align 4, !tbaa !5
  %4853 = call ptr @strerror(i32 noundef %4852) #9
  %4854 = call ptr @__errno_location() #10
  %4855 = load i32, ptr %4854, align 4, !tbaa !5
  %4856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4843, ptr noundef @.str.2, i32 noundef %4844, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4847, ptr noundef %4850, ptr noundef %4853, i32 noundef %4855) #9
  br label %4874

4857:                                             ; preds = %4835, %4828
  %4858 = load i32, ptr %115, align 4, !tbaa !5
  %4859 = call ptr @__errno_location() #10
  store i32 %4858, ptr %4859, align 4, !tbaa !5
  %4860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4861 = load i32, ptr @test_count, align 4, !tbaa !5
  %4862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4863 = load i32, ptr %4862, align 4, !tbaa !5
  %4864 = call ptr @s2n_strerror(i32 noundef %4863, ptr noundef @.str.4)
  %4865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4866 = load i32, ptr %4865, align 4, !tbaa !5
  %4867 = call ptr @s2n_strerror_debug(i32 noundef %4866, ptr noundef @.str.4)
  %4868 = call ptr @__errno_location() #10
  %4869 = load i32, ptr %4868, align 4, !tbaa !5
  %4870 = call ptr @strerror(i32 noundef %4869) #9
  %4871 = call ptr @__errno_location() #10
  %4872 = load i32, ptr %4871, align 4, !tbaa !5
  %4873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4860, ptr noundef @.str.5, i32 noundef %4861, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4864, ptr noundef %4867, ptr noundef %4870, i32 noundef %4872) #9
  br label %4874

4874:                                             ; preds = %4857, %4840
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #9
  br label %4875

4875:                                             ; preds = %4874
  br label %4876

4876:                                             ; preds = %4875
  call void @exit(i32 noundef 1) #11
  unreachable

4877:                                             ; No predecessors!
  br label %4878

4878:                                             ; preds = %4877
  br label %4879

4879:                                             ; preds = %4878, %4821
  br label %4880

4880:                                             ; preds = %4879
  br label %4881

4881:                                             ; preds = %4880
  br label %4882

4882:                                             ; preds = %4881
  %4883 = load i32, ptr @test_count, align 4, !tbaa !5
  %4884 = add nsw i32 %4883, 1
  store i32 %4884, ptr @test_count, align 4, !tbaa !5
  %4885 = load ptr, ptr %106, align 8, !tbaa !9
  %4886 = load ptr, ptr %6, align 8, !tbaa !9
  %4887 = call i32 @s2n_connection_set_config(ptr noundef %4885, ptr noundef %4886)
  %4888 = icmp eq i32 %4887, -1
  br i1 %4888, label %4889, label %4942

4889:                                             ; preds = %4882
  br label %4890

4890:                                             ; preds = %4889
  br label %4891

4891:                                             ; preds = %4890
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #9
  %4892 = call ptr @__errno_location() #10
  %4893 = load i32, ptr %4892, align 4, !tbaa !5
  store i32 %4893, ptr %116, align 4, !tbaa !5
  %4894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4895 = call i32 @s2n_print_stacktrace(ptr noundef %4894)
  %4896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4897 = trunc i8 %4896 to i1
  br i1 %4897, label %4898, label %4920

4898:                                             ; preds = %4891
  %4899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4900 = call i32 @fileno(ptr noundef %4899) #9
  %4901 = call i32 @isatty(i32 noundef %4900) #9
  %4902 = icmp ne i32 %4901, 0
  br i1 %4902, label %4903, label %4920

4903:                                             ; preds = %4898
  %4904 = load i32, ptr %116, align 4, !tbaa !5
  %4905 = call ptr @__errno_location() #10
  store i32 %4904, ptr %4905, align 4, !tbaa !5
  %4906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4907 = load i32, ptr @test_count, align 4, !tbaa !5
  %4908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4909 = load i32, ptr %4908, align 4, !tbaa !5
  %4910 = call ptr @s2n_strerror(i32 noundef %4909, ptr noundef @.str.4)
  %4911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4912 = load i32, ptr %4911, align 4, !tbaa !5
  %4913 = call ptr @s2n_strerror_debug(i32 noundef %4912, ptr noundef @.str.4)
  %4914 = call ptr @__errno_location() #10
  %4915 = load i32, ptr %4914, align 4, !tbaa !5
  %4916 = call ptr @strerror(i32 noundef %4915) #9
  %4917 = call ptr @__errno_location() #10
  %4918 = load i32, ptr %4917, align 4, !tbaa !5
  %4919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4906, ptr noundef @.str.2, i32 noundef %4907, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 236, ptr noundef %4910, ptr noundef %4913, ptr noundef %4916, i32 noundef %4918) #9
  br label %4937

4920:                                             ; preds = %4898, %4891
  %4921 = load i32, ptr %116, align 4, !tbaa !5
  %4922 = call ptr @__errno_location() #10
  store i32 %4921, ptr %4922, align 4, !tbaa !5
  %4923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4924 = load i32, ptr @test_count, align 4, !tbaa !5
  %4925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4926 = load i32, ptr %4925, align 4, !tbaa !5
  %4927 = call ptr @s2n_strerror(i32 noundef %4926, ptr noundef @.str.4)
  %4928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4929 = load i32, ptr %4928, align 4, !tbaa !5
  %4930 = call ptr @s2n_strerror_debug(i32 noundef %4929, ptr noundef @.str.4)
  %4931 = call ptr @__errno_location() #10
  %4932 = load i32, ptr %4931, align 4, !tbaa !5
  %4933 = call ptr @strerror(i32 noundef %4932) #9
  %4934 = call ptr @__errno_location() #10
  %4935 = load i32, ptr %4934, align 4, !tbaa !5
  %4936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4923, ptr noundef @.str.5, i32 noundef %4924, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 236, ptr noundef %4927, ptr noundef %4930, ptr noundef %4933, i32 noundef %4935) #9
  br label %4937

4937:                                             ; preds = %4920, %4903
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #9
  br label %4938

4938:                                             ; preds = %4937
  br label %4939

4939:                                             ; preds = %4938
  call void @exit(i32 noundef 1) #11
  unreachable

4940:                                             ; No predecessors!
  br label %4941

4941:                                             ; preds = %4940
  br label %4942

4942:                                             ; preds = %4941, %4882
  br label %4943

4943:                                             ; preds = %4942
  br label %4944

4944:                                             ; preds = %4943
  br label %4945

4945:                                             ; preds = %4944
  %4946 = load i32, ptr @test_count, align 4, !tbaa !5
  %4947 = add nsw i32 %4946, 1
  store i32 %4947, ptr @test_count, align 4, !tbaa !5
  %4948 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4948, ptr %107, align 8, !tbaa !9
  %4949 = icmp eq ptr %4948, null
  br i1 %4949, label %4950, label %5003

4950:                                             ; preds = %4945
  br label %4951

4951:                                             ; preds = %4950
  br label %4952

4952:                                             ; preds = %4951
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #9
  %4953 = call ptr @__errno_location() #10
  %4954 = load i32, ptr %4953, align 4, !tbaa !5
  store i32 %4954, ptr %117, align 4, !tbaa !5
  %4955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4956 = call i32 @s2n_print_stacktrace(ptr noundef %4955)
  %4957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4958 = trunc i8 %4957 to i1
  br i1 %4958, label %4959, label %4981

4959:                                             ; preds = %4952
  %4960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4961 = call i32 @fileno(ptr noundef %4960) #9
  %4962 = call i32 @isatty(i32 noundef %4961) #9
  %4963 = icmp ne i32 %4962, 0
  br i1 %4963, label %4964, label %4981

4964:                                             ; preds = %4959
  %4965 = load i32, ptr %117, align 4, !tbaa !5
  %4966 = call ptr @__errno_location() #10
  store i32 %4965, ptr %4966, align 4, !tbaa !5
  %4967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4968 = load i32, ptr @test_count, align 4, !tbaa !5
  %4969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4970 = load i32, ptr %4969, align 4, !tbaa !5
  %4971 = call ptr @s2n_strerror(i32 noundef %4970, ptr noundef @.str.4)
  %4972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4973 = load i32, ptr %4972, align 4, !tbaa !5
  %4974 = call ptr @s2n_strerror_debug(i32 noundef %4973, ptr noundef @.str.4)
  %4975 = call ptr @__errno_location() #10
  %4976 = load i32, ptr %4975, align 4, !tbaa !5
  %4977 = call ptr @strerror(i32 noundef %4976) #9
  %4978 = call ptr @__errno_location() #10
  %4979 = load i32, ptr %4978, align 4, !tbaa !5
  %4980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4967, ptr noundef @.str.2, i32 noundef %4968, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 238, ptr noundef %4971, ptr noundef %4974, ptr noundef %4977, i32 noundef %4979) #9
  br label %4998

4981:                                             ; preds = %4959, %4952
  %4982 = load i32, ptr %117, align 4, !tbaa !5
  %4983 = call ptr @__errno_location() #10
  store i32 %4982, ptr %4983, align 4, !tbaa !5
  %4984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4985 = load i32, ptr @test_count, align 4, !tbaa !5
  %4986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4987 = load i32, ptr %4986, align 4, !tbaa !5
  %4988 = call ptr @s2n_strerror(i32 noundef %4987, ptr noundef @.str.4)
  %4989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4990 = load i32, ptr %4989, align 4, !tbaa !5
  %4991 = call ptr @s2n_strerror_debug(i32 noundef %4990, ptr noundef @.str.4)
  %4992 = call ptr @__errno_location() #10
  %4993 = load i32, ptr %4992, align 4, !tbaa !5
  %4994 = call ptr @strerror(i32 noundef %4993) #9
  %4995 = call ptr @__errno_location() #10
  %4996 = load i32, ptr %4995, align 4, !tbaa !5
  %4997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4984, ptr noundef @.str.5, i32 noundef %4985, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 238, ptr noundef %4988, ptr noundef %4991, ptr noundef %4994, i32 noundef %4996) #9
  br label %4998

4998:                                             ; preds = %4981, %4964
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #9
  br label %4999

4999:                                             ; preds = %4998
  br label %5000

5000:                                             ; preds = %4999
  call void @exit(i32 noundef 1) #11
  unreachable

5001:                                             ; No predecessors!
  br label %5002

5002:                                             ; preds = %5001
  br label %5003

5003:                                             ; preds = %5002, %4945
  br label %5004

5004:                                             ; preds = %5003
  br label %5005

5005:                                             ; preds = %5004
  br label %5006

5006:                                             ; preds = %5005
  %5007 = load i32, ptr @test_count, align 4, !tbaa !5
  %5008 = add nsw i32 %5007, 1
  store i32 %5008, ptr @test_count, align 4, !tbaa !5
  %5009 = load ptr, ptr %107, align 8, !tbaa !9
  %5010 = load ptr, ptr %7, align 8, !tbaa !9
  %5011 = call i32 @s2n_connection_set_config(ptr noundef %5009, ptr noundef %5010)
  %5012 = icmp eq i32 %5011, -1
  br i1 %5012, label %5013, label %5066

5013:                                             ; preds = %5006
  br label %5014

5014:                                             ; preds = %5013
  br label %5015

5015:                                             ; preds = %5014
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #9
  %5016 = call ptr @__errno_location() #10
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  store i32 %5017, ptr %118, align 4, !tbaa !5
  %5018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5019 = call i32 @s2n_print_stacktrace(ptr noundef %5018)
  %5020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5021 = trunc i8 %5020 to i1
  br i1 %5021, label %5022, label %5044

5022:                                             ; preds = %5015
  %5023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5024 = call i32 @fileno(ptr noundef %5023) #9
  %5025 = call i32 @isatty(i32 noundef %5024) #9
  %5026 = icmp ne i32 %5025, 0
  br i1 %5026, label %5027, label %5044

5027:                                             ; preds = %5022
  %5028 = load i32, ptr %118, align 4, !tbaa !5
  %5029 = call ptr @__errno_location() #10
  store i32 %5028, ptr %5029, align 4, !tbaa !5
  %5030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5031 = load i32, ptr @test_count, align 4, !tbaa !5
  %5032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5033 = load i32, ptr %5032, align 4, !tbaa !5
  %5034 = call ptr @s2n_strerror(i32 noundef %5033, ptr noundef @.str.4)
  %5035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5036 = load i32, ptr %5035, align 4, !tbaa !5
  %5037 = call ptr @s2n_strerror_debug(i32 noundef %5036, ptr noundef @.str.4)
  %5038 = call ptr @__errno_location() #10
  %5039 = load i32, ptr %5038, align 4, !tbaa !5
  %5040 = call ptr @strerror(i32 noundef %5039) #9
  %5041 = call ptr @__errno_location() #10
  %5042 = load i32, ptr %5041, align 4, !tbaa !5
  %5043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5030, ptr noundef @.str.2, i32 noundef %5031, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 239, ptr noundef %5034, ptr noundef %5037, ptr noundef %5040, i32 noundef %5042) #9
  br label %5061

5044:                                             ; preds = %5022, %5015
  %5045 = load i32, ptr %118, align 4, !tbaa !5
  %5046 = call ptr @__errno_location() #10
  store i32 %5045, ptr %5046, align 4, !tbaa !5
  %5047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5048 = load i32, ptr @test_count, align 4, !tbaa !5
  %5049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5050 = load i32, ptr %5049, align 4, !tbaa !5
  %5051 = call ptr @s2n_strerror(i32 noundef %5050, ptr noundef @.str.4)
  %5052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5053 = load i32, ptr %5052, align 4, !tbaa !5
  %5054 = call ptr @s2n_strerror_debug(i32 noundef %5053, ptr noundef @.str.4)
  %5055 = call ptr @__errno_location() #10
  %5056 = load i32, ptr %5055, align 4, !tbaa !5
  %5057 = call ptr @strerror(i32 noundef %5056) #9
  %5058 = call ptr @__errno_location() #10
  %5059 = load i32, ptr %5058, align 4, !tbaa !5
  %5060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5047, ptr noundef @.str.5, i32 noundef %5048, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 239, ptr noundef %5051, ptr noundef %5054, ptr noundef %5057, i32 noundef %5059) #9
  br label %5061

5061:                                             ; preds = %5044, %5027
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #9
  br label %5062

5062:                                             ; preds = %5061
  br label %5063

5063:                                             ; preds = %5062
  call void @exit(i32 noundef 1) #11
  unreachable

5064:                                             ; No predecessors!
  br label %5065

5065:                                             ; preds = %5064
  br label %5066

5066:                                             ; preds = %5065, %5006
  br label %5067

5067:                                             ; preds = %5066
  br label %5068

5068:                                             ; preds = %5067
  br label %5069

5069:                                             ; preds = %5068
  %5070 = load i32, ptr @test_count, align 4, !tbaa !5
  %5071 = add nsw i32 %5070, 1
  store i32 %5071, ptr @test_count, align 4, !tbaa !5
  %5072 = load ptr, ptr %106, align 8, !tbaa !9
  %5073 = load ptr, ptr %107, align 8, !tbaa !9
  %5074 = call i32 @s2n_connections_set_io_pair(ptr noundef %5072, ptr noundef %5073, ptr noundef %113)
  %5075 = icmp eq i32 %5074, -1
  br i1 %5075, label %5076, label %5129

5076:                                             ; preds = %5069
  br label %5077

5077:                                             ; preds = %5076
  br label %5078

5078:                                             ; preds = %5077
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #9
  %5079 = call ptr @__errno_location() #10
  %5080 = load i32, ptr %5079, align 4, !tbaa !5
  store i32 %5080, ptr %119, align 4, !tbaa !5
  %5081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5082 = call i32 @s2n_print_stacktrace(ptr noundef %5081)
  %5083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5084 = trunc i8 %5083 to i1
  br i1 %5084, label %5085, label %5107

5085:                                             ; preds = %5078
  %5086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5087 = call i32 @fileno(ptr noundef %5086) #9
  %5088 = call i32 @isatty(i32 noundef %5087) #9
  %5089 = icmp ne i32 %5088, 0
  br i1 %5089, label %5090, label %5107

5090:                                             ; preds = %5085
  %5091 = load i32, ptr %119, align 4, !tbaa !5
  %5092 = call ptr @__errno_location() #10
  store i32 %5091, ptr %5092, align 4, !tbaa !5
  %5093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5094 = load i32, ptr @test_count, align 4, !tbaa !5
  %5095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5096 = load i32, ptr %5095, align 4, !tbaa !5
  %5097 = call ptr @s2n_strerror(i32 noundef %5096, ptr noundef @.str.4)
  %5098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5099 = load i32, ptr %5098, align 4, !tbaa !5
  %5100 = call ptr @s2n_strerror_debug(i32 noundef %5099, ptr noundef @.str.4)
  %5101 = call ptr @__errno_location() #10
  %5102 = load i32, ptr %5101, align 4, !tbaa !5
  %5103 = call ptr @strerror(i32 noundef %5102) #9
  %5104 = call ptr @__errno_location() #10
  %5105 = load i32, ptr %5104, align 4, !tbaa !5
  %5106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5093, ptr noundef @.str.2, i32 noundef %5094, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5097, ptr noundef %5100, ptr noundef %5103, i32 noundef %5105) #9
  br label %5124

5107:                                             ; preds = %5085, %5078
  %5108 = load i32, ptr %119, align 4, !tbaa !5
  %5109 = call ptr @__errno_location() #10
  store i32 %5108, ptr %5109, align 4, !tbaa !5
  %5110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5111 = load i32, ptr @test_count, align 4, !tbaa !5
  %5112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5113 = load i32, ptr %5112, align 4, !tbaa !5
  %5114 = call ptr @s2n_strerror(i32 noundef %5113, ptr noundef @.str.4)
  %5115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5116 = load i32, ptr %5115, align 4, !tbaa !5
  %5117 = call ptr @s2n_strerror_debug(i32 noundef %5116, ptr noundef @.str.4)
  %5118 = call ptr @__errno_location() #10
  %5119 = load i32, ptr %5118, align 4, !tbaa !5
  %5120 = call ptr @strerror(i32 noundef %5119) #9
  %5121 = call ptr @__errno_location() #10
  %5122 = load i32, ptr %5121, align 4, !tbaa !5
  %5123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5110, ptr noundef @.str.5, i32 noundef %5111, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5114, ptr noundef %5117, ptr noundef %5120, i32 noundef %5122) #9
  br label %5124

5124:                                             ; preds = %5107, %5090
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #9
  br label %5125

5125:                                             ; preds = %5124
  br label %5126

5126:                                             ; preds = %5125
  call void @exit(i32 noundef 1) #11
  unreachable

5127:                                             ; No predecessors!
  br label %5128

5128:                                             ; preds = %5127
  br label %5129

5129:                                             ; preds = %5128, %5069
  br label %5130

5130:                                             ; preds = %5129
  br label %5131

5131:                                             ; preds = %5130
  br label %5132

5132:                                             ; preds = %5131
  %5133 = load i32, ptr @test_count, align 4, !tbaa !5
  %5134 = add nsw i32 %5133, 1
  store i32 %5134, ptr @test_count, align 4, !tbaa !5
  %5135 = load ptr, ptr %107, align 8, !tbaa !9
  %5136 = load ptr, ptr %106, align 8, !tbaa !9
  %5137 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5135, ptr noundef %5136)
  %5138 = icmp eq i32 %5137, -1
  br i1 %5138, label %5139, label %5192

5139:                                             ; preds = %5132
  br label %5140

5140:                                             ; preds = %5139
  br label %5141

5141:                                             ; preds = %5140
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #9
  %5142 = call ptr @__errno_location() #10
  %5143 = load i32, ptr %5142, align 4, !tbaa !5
  store i32 %5143, ptr %120, align 4, !tbaa !5
  %5144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5145 = call i32 @s2n_print_stacktrace(ptr noundef %5144)
  %5146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5147 = trunc i8 %5146 to i1
  br i1 %5147, label %5148, label %5170

5148:                                             ; preds = %5141
  %5149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5150 = call i32 @fileno(ptr noundef %5149) #9
  %5151 = call i32 @isatty(i32 noundef %5150) #9
  %5152 = icmp ne i32 %5151, 0
  br i1 %5152, label %5153, label %5170

5153:                                             ; preds = %5148
  %5154 = load i32, ptr %120, align 4, !tbaa !5
  %5155 = call ptr @__errno_location() #10
  store i32 %5154, ptr %5155, align 4, !tbaa !5
  %5156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5157 = load i32, ptr @test_count, align 4, !tbaa !5
  %5158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5159 = load i32, ptr %5158, align 4, !tbaa !5
  %5160 = call ptr @s2n_strerror(i32 noundef %5159, ptr noundef @.str.4)
  %5161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5162 = load i32, ptr %5161, align 4, !tbaa !5
  %5163 = call ptr @s2n_strerror_debug(i32 noundef %5162, ptr noundef @.str.4)
  %5164 = call ptr @__errno_location() #10
  %5165 = load i32, ptr %5164, align 4, !tbaa !5
  %5166 = call ptr @strerror(i32 noundef %5165) #9
  %5167 = call ptr @__errno_location() #10
  %5168 = load i32, ptr %5167, align 4, !tbaa !5
  %5169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5156, ptr noundef @.str.2, i32 noundef %5157, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5160, ptr noundef %5163, ptr noundef %5166, i32 noundef %5168) #9
  br label %5187

5170:                                             ; preds = %5148, %5141
  %5171 = load i32, ptr %120, align 4, !tbaa !5
  %5172 = call ptr @__errno_location() #10
  store i32 %5171, ptr %5172, align 4, !tbaa !5
  %5173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5174 = load i32, ptr @test_count, align 4, !tbaa !5
  %5175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5176 = load i32, ptr %5175, align 4, !tbaa !5
  %5177 = call ptr @s2n_strerror(i32 noundef %5176, ptr noundef @.str.4)
  %5178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5179 = load i32, ptr %5178, align 4, !tbaa !5
  %5180 = call ptr @s2n_strerror_debug(i32 noundef %5179, ptr noundef @.str.4)
  %5181 = call ptr @__errno_location() #10
  %5182 = load i32, ptr %5181, align 4, !tbaa !5
  %5183 = call ptr @strerror(i32 noundef %5182) #9
  %5184 = call ptr @__errno_location() #10
  %5185 = load i32, ptr %5184, align 4, !tbaa !5
  %5186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5173, ptr noundef @.str.5, i32 noundef %5174, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5177, ptr noundef %5180, ptr noundef %5183, i32 noundef %5185) #9
  br label %5187

5187:                                             ; preds = %5170, %5153
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #9
  br label %5188

5188:                                             ; preds = %5187
  br label %5189

5189:                                             ; preds = %5188
  call void @exit(i32 noundef 1) #11
  unreachable

5190:                                             ; No predecessors!
  br label %5191

5191:                                             ; preds = %5190
  br label %5192

5192:                                             ; preds = %5191, %5132
  br label %5193

5193:                                             ; preds = %5192
  br label %5194

5194:                                             ; preds = %5193
  br label %5195

5195:                                             ; preds = %5194
  %5196 = load i32, ptr @test_count, align 4, !tbaa !5
  %5197 = add nsw i32 %5196, 1
  store i32 %5197, ptr @test_count, align 4, !tbaa !5
  %5198 = load ptr, ptr %107, align 8, !tbaa !9
  %5199 = call i32 @s2n_connection_client_cert_used(ptr noundef %5198)
  %5200 = icmp ne i32 %5199, 0
  br i1 %5200, label %5201, label %5254

5201:                                             ; preds = %5195
  br label %5202

5202:                                             ; preds = %5201
  br label %5203

5203:                                             ; preds = %5202
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #9
  %5204 = call ptr @__errno_location() #10
  %5205 = load i32, ptr %5204, align 4, !tbaa !5
  store i32 %5205, ptr %121, align 4, !tbaa !5
  %5206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5207 = call i32 @s2n_print_stacktrace(ptr noundef %5206)
  %5208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5209 = trunc i8 %5208 to i1
  br i1 %5209, label %5210, label %5232

5210:                                             ; preds = %5203
  %5211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5212 = call i32 @fileno(ptr noundef %5211) #9
  %5213 = call i32 @isatty(i32 noundef %5212) #9
  %5214 = icmp ne i32 %5213, 0
  br i1 %5214, label %5215, label %5232

5215:                                             ; preds = %5210
  %5216 = load i32, ptr %121, align 4, !tbaa !5
  %5217 = call ptr @__errno_location() #10
  store i32 %5216, ptr %5217, align 4, !tbaa !5
  %5218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5219 = load i32, ptr @test_count, align 4, !tbaa !5
  %5220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @s2n_strerror(i32 noundef %5221, ptr noundef @.str.4)
  %5223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call ptr @s2n_strerror_debug(i32 noundef %5224, ptr noundef @.str.4)
  %5226 = call ptr @__errno_location() #10
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @strerror(i32 noundef %5227) #9
  %5229 = call ptr @__errno_location() #10
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5218, ptr noundef @.str.2, i32 noundef %5219, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 247, ptr noundef %5222, ptr noundef %5225, ptr noundef %5228, i32 noundef %5230) #9
  br label %5249

5232:                                             ; preds = %5210, %5203
  %5233 = load i32, ptr %121, align 4, !tbaa !5
  %5234 = call ptr @__errno_location() #10
  store i32 %5233, ptr %5234, align 4, !tbaa !5
  %5235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5236 = load i32, ptr @test_count, align 4, !tbaa !5
  %5237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5238 = load i32, ptr %5237, align 4, !tbaa !5
  %5239 = call ptr @s2n_strerror(i32 noundef %5238, ptr noundef @.str.4)
  %5240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5241 = load i32, ptr %5240, align 4, !tbaa !5
  %5242 = call ptr @s2n_strerror_debug(i32 noundef %5241, ptr noundef @.str.4)
  %5243 = call ptr @__errno_location() #10
  %5244 = load i32, ptr %5243, align 4, !tbaa !5
  %5245 = call ptr @strerror(i32 noundef %5244) #9
  %5246 = call ptr @__errno_location() #10
  %5247 = load i32, ptr %5246, align 4, !tbaa !5
  %5248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5235, ptr noundef @.str.5, i32 noundef %5236, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 247, ptr noundef %5239, ptr noundef %5242, ptr noundef %5245, i32 noundef %5247) #9
  br label %5249

5249:                                             ; preds = %5232, %5215
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #9
  br label %5250

5250:                                             ; preds = %5249
  br label %5251

5251:                                             ; preds = %5250
  call void @exit(i32 noundef 1) #11
  unreachable

5252:                                             ; No predecessors!
  br label %5253

5253:                                             ; preds = %5252
  br label %5254

5254:                                             ; preds = %5253, %5195
  br label %5255

5255:                                             ; preds = %5254
  br label %5256

5256:                                             ; preds = %5255
  br label %5257

5257:                                             ; preds = %5256
  %5258 = load i32, ptr @test_count, align 4, !tbaa !5
  %5259 = add nsw i32 %5258, 1
  store i32 %5259, ptr @test_count, align 4, !tbaa !5
  %5260 = load ptr, ptr %106, align 8, !tbaa !9
  %5261 = call i32 @s2n_connection_client_cert_used(ptr noundef %5260)
  %5262 = icmp ne i32 %5261, 0
  br i1 %5262, label %5263, label %5316

5263:                                             ; preds = %5257
  br label %5264

5264:                                             ; preds = %5263
  br label %5265

5265:                                             ; preds = %5264
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #9
  %5266 = call ptr @__errno_location() #10
  %5267 = load i32, ptr %5266, align 4, !tbaa !5
  store i32 %5267, ptr %122, align 4, !tbaa !5
  %5268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5269 = call i32 @s2n_print_stacktrace(ptr noundef %5268)
  %5270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5271 = trunc i8 %5270 to i1
  br i1 %5271, label %5272, label %5294

5272:                                             ; preds = %5265
  %5273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5274 = call i32 @fileno(ptr noundef %5273) #9
  %5275 = call i32 @isatty(i32 noundef %5274) #9
  %5276 = icmp ne i32 %5275, 0
  br i1 %5276, label %5277, label %5294

5277:                                             ; preds = %5272
  %5278 = load i32, ptr %122, align 4, !tbaa !5
  %5279 = call ptr @__errno_location() #10
  store i32 %5278, ptr %5279, align 4, !tbaa !5
  %5280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5281 = load i32, ptr @test_count, align 4, !tbaa !5
  %5282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5283 = load i32, ptr %5282, align 4, !tbaa !5
  %5284 = call ptr @s2n_strerror(i32 noundef %5283, ptr noundef @.str.4)
  %5285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5286 = load i32, ptr %5285, align 4, !tbaa !5
  %5287 = call ptr @s2n_strerror_debug(i32 noundef %5286, ptr noundef @.str.4)
  %5288 = call ptr @__errno_location() #10
  %5289 = load i32, ptr %5288, align 4, !tbaa !5
  %5290 = call ptr @strerror(i32 noundef %5289) #9
  %5291 = call ptr @__errno_location() #10
  %5292 = load i32, ptr %5291, align 4, !tbaa !5
  %5293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5280, ptr noundef @.str.2, i32 noundef %5281, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 248, ptr noundef %5284, ptr noundef %5287, ptr noundef %5290, i32 noundef %5292) #9
  br label %5311

5294:                                             ; preds = %5272, %5265
  %5295 = load i32, ptr %122, align 4, !tbaa !5
  %5296 = call ptr @__errno_location() #10
  store i32 %5295, ptr %5296, align 4, !tbaa !5
  %5297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5298 = load i32, ptr @test_count, align 4, !tbaa !5
  %5299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5300 = load i32, ptr %5299, align 4, !tbaa !5
  %5301 = call ptr @s2n_strerror(i32 noundef %5300, ptr noundef @.str.4)
  %5302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5303 = load i32, ptr %5302, align 4, !tbaa !5
  %5304 = call ptr @s2n_strerror_debug(i32 noundef %5303, ptr noundef @.str.4)
  %5305 = call ptr @__errno_location() #10
  %5306 = load i32, ptr %5305, align 4, !tbaa !5
  %5307 = call ptr @strerror(i32 noundef %5306) #9
  %5308 = call ptr @__errno_location() #10
  %5309 = load i32, ptr %5308, align 4, !tbaa !5
  %5310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5297, ptr noundef @.str.5, i32 noundef %5298, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 248, ptr noundef %5301, ptr noundef %5304, ptr noundef %5307, i32 noundef %5309) #9
  br label %5311

5311:                                             ; preds = %5294, %5277
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #9
  br label %5312

5312:                                             ; preds = %5311
  br label %5313

5313:                                             ; preds = %5312
  call void @exit(i32 noundef 1) #11
  unreachable

5314:                                             ; No predecessors!
  br label %5315

5315:                                             ; preds = %5314
  br label %5316

5316:                                             ; preds = %5315, %5257
  br label %5317

5317:                                             ; preds = %5316
  br label %5318

5318:                                             ; preds = %5317
  br label %5319

5319:                                             ; preds = %5318
  %5320 = load i32, ptr @test_count, align 4, !tbaa !5
  %5321 = add nsw i32 %5320, 1
  store i32 %5321, ptr @test_count, align 4, !tbaa !5
  %5322 = load ptr, ptr %106, align 8, !tbaa !9
  %5323 = call i32 @s2n_connection_free(ptr noundef %5322)
  %5324 = icmp eq i32 %5323, -1
  br i1 %5324, label %5325, label %5378

5325:                                             ; preds = %5319
  br label %5326

5326:                                             ; preds = %5325
  br label %5327

5327:                                             ; preds = %5326
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #9
  %5328 = call ptr @__errno_location() #10
  %5329 = load i32, ptr %5328, align 4, !tbaa !5
  store i32 %5329, ptr %123, align 4, !tbaa !5
  %5330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5331 = call i32 @s2n_print_stacktrace(ptr noundef %5330)
  %5332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5333 = trunc i8 %5332 to i1
  br i1 %5333, label %5334, label %5356

5334:                                             ; preds = %5327
  %5335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5336 = call i32 @fileno(ptr noundef %5335) #9
  %5337 = call i32 @isatty(i32 noundef %5336) #9
  %5338 = icmp ne i32 %5337, 0
  br i1 %5338, label %5339, label %5356

5339:                                             ; preds = %5334
  %5340 = load i32, ptr %123, align 4, !tbaa !5
  %5341 = call ptr @__errno_location() #10
  store i32 %5340, ptr %5341, align 4, !tbaa !5
  %5342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5343 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5345, ptr noundef @.str.4)
  %5347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5348 = load i32, ptr %5347, align 4, !tbaa !5
  %5349 = call ptr @s2n_strerror_debug(i32 noundef %5348, ptr noundef @.str.4)
  %5350 = call ptr @__errno_location() #10
  %5351 = load i32, ptr %5350, align 4, !tbaa !5
  %5352 = call ptr @strerror(i32 noundef %5351) #9
  %5353 = call ptr @__errno_location() #10
  %5354 = load i32, ptr %5353, align 4, !tbaa !5
  %5355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5342, ptr noundef @.str.2, i32 noundef %5343, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 250, ptr noundef %5346, ptr noundef %5349, ptr noundef %5352, i32 noundef %5354) #9
  br label %5373

5356:                                             ; preds = %5334, %5327
  %5357 = load i32, ptr %123, align 4, !tbaa !5
  %5358 = call ptr @__errno_location() #10
  store i32 %5357, ptr %5358, align 4, !tbaa !5
  %5359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5360 = load i32, ptr @test_count, align 4, !tbaa !5
  %5361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5362 = load i32, ptr %5361, align 4, !tbaa !5
  %5363 = call ptr @s2n_strerror(i32 noundef %5362, ptr noundef @.str.4)
  %5364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5365 = load i32, ptr %5364, align 4, !tbaa !5
  %5366 = call ptr @s2n_strerror_debug(i32 noundef %5365, ptr noundef @.str.4)
  %5367 = call ptr @__errno_location() #10
  %5368 = load i32, ptr %5367, align 4, !tbaa !5
  %5369 = call ptr @strerror(i32 noundef %5368) #9
  %5370 = call ptr @__errno_location() #10
  %5371 = load i32, ptr %5370, align 4, !tbaa !5
  %5372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5359, ptr noundef @.str.5, i32 noundef %5360, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 250, ptr noundef %5363, ptr noundef %5366, ptr noundef %5369, i32 noundef %5371) #9
  br label %5373

5373:                                             ; preds = %5356, %5339
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #9
  br label %5374

5374:                                             ; preds = %5373
  br label %5375

5375:                                             ; preds = %5374
  call void @exit(i32 noundef 1) #11
  unreachable

5376:                                             ; No predecessors!
  br label %5377

5377:                                             ; preds = %5376
  br label %5378

5378:                                             ; preds = %5377, %5319
  br label %5379

5379:                                             ; preds = %5378
  br label %5380

5380:                                             ; preds = %5379
  br label %5381

5381:                                             ; preds = %5380
  %5382 = load i32, ptr @test_count, align 4, !tbaa !5
  %5383 = add nsw i32 %5382, 1
  store i32 %5383, ptr @test_count, align 4, !tbaa !5
  %5384 = load ptr, ptr %107, align 8, !tbaa !9
  %5385 = call i32 @s2n_connection_free(ptr noundef %5384)
  %5386 = icmp eq i32 %5385, -1
  br i1 %5386, label %5387, label %5440

5387:                                             ; preds = %5381
  br label %5388

5388:                                             ; preds = %5387
  br label %5389

5389:                                             ; preds = %5388
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #9
  %5390 = call ptr @__errno_location() #10
  %5391 = load i32, ptr %5390, align 4, !tbaa !5
  store i32 %5391, ptr %124, align 4, !tbaa !5
  %5392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5393 = call i32 @s2n_print_stacktrace(ptr noundef %5392)
  %5394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5395 = trunc i8 %5394 to i1
  br i1 %5395, label %5396, label %5418

5396:                                             ; preds = %5389
  %5397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5398 = call i32 @fileno(ptr noundef %5397) #9
  %5399 = call i32 @isatty(i32 noundef %5398) #9
  %5400 = icmp ne i32 %5399, 0
  br i1 %5400, label %5401, label %5418

5401:                                             ; preds = %5396
  %5402 = load i32, ptr %124, align 4, !tbaa !5
  %5403 = call ptr @__errno_location() #10
  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() #10
  %5413 = load i32, ptr %5412, align 4, !tbaa !5
  %5414 = call ptr @strerror(i32 noundef %5413) #9
  %5415 = call ptr @__errno_location() #10
  %5416 = load i32, ptr %5415, align 4, !tbaa !5
  %5417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5404, ptr noundef @.str.2, i32 noundef %5405, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 251, ptr noundef %5408, ptr noundef %5411, ptr noundef %5414, i32 noundef %5416) #9
  br label %5435

5418:                                             ; preds = %5396, %5389
  %5419 = load i32, ptr %124, align 4, !tbaa !5
  %5420 = call ptr @__errno_location() #10
  store i32 %5419, ptr %5420, align 4, !tbaa !5
  %5421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5422 = load i32, ptr @test_count, align 4, !tbaa !5
  %5423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5424 = load i32, ptr %5423, align 4, !tbaa !5
  %5425 = call ptr @s2n_strerror(i32 noundef %5424, ptr noundef @.str.4)
  %5426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5427 = load i32, ptr %5426, align 4, !tbaa !5
  %5428 = call ptr @s2n_strerror_debug(i32 noundef %5427, ptr noundef @.str.4)
  %5429 = call ptr @__errno_location() #10
  %5430 = load i32, ptr %5429, align 4, !tbaa !5
  %5431 = call ptr @strerror(i32 noundef %5430) #9
  %5432 = call ptr @__errno_location() #10
  %5433 = load i32, ptr %5432, align 4, !tbaa !5
  %5434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5421, ptr noundef @.str.5, i32 noundef %5422, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 251, ptr noundef %5425, ptr noundef %5428, ptr noundef %5431, i32 noundef %5433) #9
  br label %5435

5435:                                             ; preds = %5418, %5401
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #9
  br label %5436

5436:                                             ; preds = %5435
  br label %5437

5437:                                             ; preds = %5436
  call void @exit(i32 noundef 1) #11
  unreachable

5438:                                             ; No predecessors!
  br label %5439

5439:                                             ; preds = %5438
  br label %5440

5440:                                             ; preds = %5439, %5381
  br label %5441

5441:                                             ; preds = %5440
  br label %5442

5442:                                             ; preds = %5441
  br label %5443

5443:                                             ; preds = %5442
  %5444 = load i32, ptr @test_count, align 4, !tbaa !5
  %5445 = add nsw i32 %5444, 1
  store i32 %5445, ptr @test_count, align 4, !tbaa !5
  %5446 = call i32 @s2n_io_pair_close(ptr noundef %113)
  %5447 = icmp eq i32 %5446, -1
  br i1 %5447, label %5448, label %5501

5448:                                             ; preds = %5443
  br label %5449

5449:                                             ; preds = %5448
  br label %5450

5450:                                             ; preds = %5449
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #9
  %5451 = call ptr @__errno_location() #10
  %5452 = load i32, ptr %5451, align 4, !tbaa !5
  store i32 %5452, ptr %125, align 4, !tbaa !5
  %5453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5454 = call i32 @s2n_print_stacktrace(ptr noundef %5453)
  %5455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5456 = trunc i8 %5455 to i1
  br i1 %5456, label %5457, label %5479

5457:                                             ; preds = %5450
  %5458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5459 = call i32 @fileno(ptr noundef %5458) #9
  %5460 = call i32 @isatty(i32 noundef %5459) #9
  %5461 = icmp ne i32 %5460, 0
  br i1 %5461, label %5462, label %5479

5462:                                             ; preds = %5457
  %5463 = load i32, ptr %125, align 4, !tbaa !5
  %5464 = call ptr @__errno_location() #10
  store i32 %5463, ptr %5464, align 4, !tbaa !5
  %5465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5466 = load i32, ptr @test_count, align 4, !tbaa !5
  %5467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call ptr @s2n_strerror(i32 noundef %5468, ptr noundef @.str.4)
  %5470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call ptr @s2n_strerror_debug(i32 noundef %5471, ptr noundef @.str.4)
  %5473 = call ptr @__errno_location() #10
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  %5475 = call ptr @strerror(i32 noundef %5474) #9
  %5476 = call ptr @__errno_location() #10
  %5477 = load i32, ptr %5476, align 4, !tbaa !5
  %5478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5465, ptr noundef @.str.2, i32 noundef %5466, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 252, ptr noundef %5469, ptr noundef %5472, ptr noundef %5475, i32 noundef %5477) #9
  br label %5496

5479:                                             ; preds = %5457, %5450
  %5480 = load i32, ptr %125, align 4, !tbaa !5
  %5481 = call ptr @__errno_location() #10
  store i32 %5480, ptr %5481, align 4, !tbaa !5
  %5482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5483 = load i32, ptr @test_count, align 4, !tbaa !5
  %5484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5485 = load i32, ptr %5484, align 4, !tbaa !5
  %5486 = call ptr @s2n_strerror(i32 noundef %5485, ptr noundef @.str.4)
  %5487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5488 = load i32, ptr %5487, align 4, !tbaa !5
  %5489 = call ptr @s2n_strerror_debug(i32 noundef %5488, ptr noundef @.str.4)
  %5490 = call ptr @__errno_location() #10
  %5491 = load i32, ptr %5490, align 4, !tbaa !5
  %5492 = call ptr @strerror(i32 noundef %5491) #9
  %5493 = call ptr @__errno_location() #10
  %5494 = load i32, ptr %5493, align 4, !tbaa !5
  %5495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5482, ptr noundef @.str.5, i32 noundef %5483, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 252, ptr noundef %5486, ptr noundef %5489, ptr noundef %5492, i32 noundef %5494) #9
  br label %5496

5496:                                             ; preds = %5479, %5462
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #9
  br label %5497

5497:                                             ; preds = %5496
  br label %5498

5498:                                             ; preds = %5497
  call void @exit(i32 noundef 1) #11
  unreachable

5499:                                             ; No predecessors!
  br label %5500

5500:                                             ; preds = %5499
  br label %5501

5501:                                             ; preds = %5500, %5443
  br label %5502

5502:                                             ; preds = %5501
  br label %5503

5503:                                             ; preds = %5502
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #9
  store i32 0, ptr %42, align 4
  br label %5504

5504:                                             ; preds = %5503, %4688
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %104) #9
  %5505 = load i32, ptr %42, align 4
  switch i32 %5505, label %10829 [
    i32 0, label %5506
    i32 428, label %5507
  ]

5506:                                             ; preds = %5504
  br label %5507

5507:                                             ; preds = %5506, %5504
  %5508 = load i32, ptr %103, align 4, !tbaa !5
  %5509 = add nsw i32 %5508, 1
  store i32 %5509, ptr %103, align 4, !tbaa !5
  br label %4602, !llvm.loop !31

5510:                                             ; preds = %4609
  br label %5511

5511:                                             ; preds = %5510
  %5512 = load i32, ptr @test_count, align 4, !tbaa !5
  %5513 = add nsw i32 %5512, 1
  store i32 %5513, ptr @test_count, align 4, !tbaa !5
  %5514 = load ptr, ptr %6, align 8, !tbaa !9
  %5515 = call i32 @s2n_config_free(ptr noundef %5514)
  %5516 = icmp eq i32 %5515, -1
  br i1 %5516, label %5517, label %5570

5517:                                             ; preds = %5511
  br label %5518

5518:                                             ; preds = %5517
  br label %5519

5519:                                             ; preds = %5518
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #9
  %5520 = call ptr @__errno_location() #10
  %5521 = load i32, ptr %5520, align 4, !tbaa !5
  store i32 %5521, ptr %126, align 4, !tbaa !5
  %5522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5523 = call i32 @s2n_print_stacktrace(ptr noundef %5522)
  %5524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5525 = trunc i8 %5524 to i1
  br i1 %5525, label %5526, label %5548

5526:                                             ; preds = %5519
  %5527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5528 = call i32 @fileno(ptr noundef %5527) #9
  %5529 = call i32 @isatty(i32 noundef %5528) #9
  %5530 = icmp ne i32 %5529, 0
  br i1 %5530, label %5531, label %5548

5531:                                             ; preds = %5526
  %5532 = load i32, ptr %126, align 4, !tbaa !5
  %5533 = call ptr @__errno_location() #10
  store i32 %5532, ptr %5533, align 4, !tbaa !5
  %5534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5535 = load i32, ptr @test_count, align 4, !tbaa !5
  %5536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5537 = load i32, ptr %5536, align 4, !tbaa !5
  %5538 = call ptr @s2n_strerror(i32 noundef %5537, ptr noundef @.str.4)
  %5539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5540 = load i32, ptr %5539, align 4, !tbaa !5
  %5541 = call ptr @s2n_strerror_debug(i32 noundef %5540, ptr noundef @.str.4)
  %5542 = call ptr @__errno_location() #10
  %5543 = load i32, ptr %5542, align 4, !tbaa !5
  %5544 = call ptr @strerror(i32 noundef %5543) #9
  %5545 = call ptr @__errno_location() #10
  %5546 = load i32, ptr %5545, align 4, !tbaa !5
  %5547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5534, ptr noundef @.str.2, i32 noundef %5535, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 255, ptr noundef %5538, ptr noundef %5541, ptr noundef %5544, i32 noundef %5546) #9
  br label %5565

5548:                                             ; preds = %5526, %5519
  %5549 = load i32, ptr %126, align 4, !tbaa !5
  %5550 = call ptr @__errno_location() #10
  store i32 %5549, ptr %5550, align 4, !tbaa !5
  %5551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5552 = load i32, ptr @test_count, align 4, !tbaa !5
  %5553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5554 = load i32, ptr %5553, align 4, !tbaa !5
  %5555 = call ptr @s2n_strerror(i32 noundef %5554, ptr noundef @.str.4)
  %5556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5557 = load i32, ptr %5556, align 4, !tbaa !5
  %5558 = call ptr @s2n_strerror_debug(i32 noundef %5557, ptr noundef @.str.4)
  %5559 = call ptr @__errno_location() #10
  %5560 = load i32, ptr %5559, align 4, !tbaa !5
  %5561 = call ptr @strerror(i32 noundef %5560) #9
  %5562 = call ptr @__errno_location() #10
  %5563 = load i32, ptr %5562, align 4, !tbaa !5
  %5564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5551, ptr noundef @.str.5, i32 noundef %5552, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 255, ptr noundef %5555, ptr noundef %5558, ptr noundef %5561, i32 noundef %5563) #9
  br label %5565

5565:                                             ; preds = %5548, %5531
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #9
  br label %5566

5566:                                             ; preds = %5565
  br label %5567

5567:                                             ; preds = %5566
  call void @exit(i32 noundef 1) #11
  unreachable

5568:                                             ; No predecessors!
  br label %5569

5569:                                             ; preds = %5568
  br label %5570

5570:                                             ; preds = %5569, %5511
  br label %5571

5571:                                             ; preds = %5570
  br label %5572

5572:                                             ; preds = %5571
  br label %5573

5573:                                             ; preds = %5572
  %5574 = load i32, ptr @test_count, align 4, !tbaa !5
  %5575 = add nsw i32 %5574, 1
  store i32 %5575, ptr @test_count, align 4, !tbaa !5
  %5576 = call ptr @s2n_config_new()
  store ptr %5576, ptr %6, align 8, !tbaa !9
  %5577 = icmp eq ptr %5576, null
  br i1 %5577, label %5578, label %5631

5578:                                             ; preds = %5573
  br label %5579

5579:                                             ; preds = %5578
  br label %5580

5580:                                             ; preds = %5579
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #9
  %5581 = call ptr @__errno_location() #10
  %5582 = load i32, ptr %5581, align 4, !tbaa !5
  store i32 %5582, ptr %127, align 4, !tbaa !5
  %5583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5584 = call i32 @s2n_print_stacktrace(ptr noundef %5583)
  %5585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5586 = trunc i8 %5585 to i1
  br i1 %5586, label %5587, label %5609

5587:                                             ; preds = %5580
  %5588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5589 = call i32 @fileno(ptr noundef %5588) #9
  %5590 = call i32 @isatty(i32 noundef %5589) #9
  %5591 = icmp ne i32 %5590, 0
  br i1 %5591, label %5592, label %5609

5592:                                             ; preds = %5587
  %5593 = load i32, ptr %127, align 4, !tbaa !5
  %5594 = call ptr @__errno_location() #10
  store i32 %5593, ptr %5594, align 4, !tbaa !5
  %5595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5596 = load i32, ptr @test_count, align 4, !tbaa !5
  %5597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5598 = load i32, ptr %5597, align 4, !tbaa !5
  %5599 = call ptr @s2n_strerror(i32 noundef %5598, ptr noundef @.str.4)
  %5600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5601 = load i32, ptr %5600, align 4, !tbaa !5
  %5602 = call ptr @s2n_strerror_debug(i32 noundef %5601, ptr noundef @.str.4)
  %5603 = call ptr @__errno_location() #10
  %5604 = load i32, ptr %5603, align 4, !tbaa !5
  %5605 = call ptr @strerror(i32 noundef %5604) #9
  %5606 = call ptr @__errno_location() #10
  %5607 = load i32, ptr %5606, align 4, !tbaa !5
  %5608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5595, ptr noundef @.str.2, i32 noundef %5596, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 261, ptr noundef %5599, ptr noundef %5602, ptr noundef %5605, i32 noundef %5607) #9
  br label %5626

5609:                                             ; preds = %5587, %5580
  %5610 = load i32, ptr %127, align 4, !tbaa !5
  %5611 = call ptr @__errno_location() #10
  store i32 %5610, ptr %5611, align 4, !tbaa !5
  %5612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5613 = load i32, ptr @test_count, align 4, !tbaa !5
  %5614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  %5616 = call ptr @s2n_strerror(i32 noundef %5615, ptr noundef @.str.4)
  %5617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  %5619 = call ptr @s2n_strerror_debug(i32 noundef %5618, ptr noundef @.str.4)
  %5620 = call ptr @__errno_location() #10
  %5621 = load i32, ptr %5620, align 4, !tbaa !5
  %5622 = call ptr @strerror(i32 noundef %5621) #9
  %5623 = call ptr @__errno_location() #10
  %5624 = load i32, ptr %5623, align 4, !tbaa !5
  %5625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5612, ptr noundef @.str.5, i32 noundef %5613, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 261, ptr noundef %5616, ptr noundef %5619, ptr noundef %5622, i32 noundef %5624) #9
  br label %5626

5626:                                             ; preds = %5609, %5592
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #9
  br label %5627

5627:                                             ; preds = %5626
  br label %5628

5628:                                             ; preds = %5627
  call void @exit(i32 noundef 1) #11
  unreachable

5629:                                             ; No predecessors!
  br label %5630

5630:                                             ; preds = %5629
  br label %5631

5631:                                             ; preds = %5630, %5573
  br label %5632

5632:                                             ; preds = %5631
  br label %5633

5633:                                             ; preds = %5632
  br label %5634

5634:                                             ; preds = %5633
  %5635 = load i32, ptr @test_count, align 4, !tbaa !5
  %5636 = add nsw i32 %5635, 1
  store i32 %5636, ptr @test_count, align 4, !tbaa !5
  %5637 = load ptr, ptr %6, align 8, !tbaa !9
  %5638 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %5637, ptr noundef @.str.12)
  %5639 = icmp eq i32 %5638, -1
  br i1 %5639, label %5640, label %5693

5640:                                             ; preds = %5634
  br label %5641

5641:                                             ; preds = %5640
  br label %5642

5642:                                             ; preds = %5641
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #9
  %5643 = call ptr @__errno_location() #10
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  store i32 %5644, ptr %128, align 4, !tbaa !5
  %5645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5646 = call i32 @s2n_print_stacktrace(ptr noundef %5645)
  %5647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5648 = trunc i8 %5647 to i1
  br i1 %5648, label %5649, label %5671

5649:                                             ; preds = %5642
  %5650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5651 = call i32 @fileno(ptr noundef %5650) #9
  %5652 = call i32 @isatty(i32 noundef %5651) #9
  %5653 = icmp ne i32 %5652, 0
  br i1 %5653, label %5654, label %5671

5654:                                             ; preds = %5649
  %5655 = load i32, ptr %128, align 4, !tbaa !5
  %5656 = call ptr @__errno_location() #10
  store i32 %5655, ptr %5656, align 4, !tbaa !5
  %5657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5658 = load i32, ptr @test_count, align 4, !tbaa !5
  %5659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5660 = load i32, ptr %5659, align 4, !tbaa !5
  %5661 = call ptr @s2n_strerror(i32 noundef %5660, ptr noundef @.str.4)
  %5662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5663 = load i32, ptr %5662, align 4, !tbaa !5
  %5664 = call ptr @s2n_strerror_debug(i32 noundef %5663, ptr noundef @.str.4)
  %5665 = call ptr @__errno_location() #10
  %5666 = load i32, ptr %5665, align 4, !tbaa !5
  %5667 = call ptr @strerror(i32 noundef %5666) #9
  %5668 = call ptr @__errno_location() #10
  %5669 = load i32, ptr %5668, align 4, !tbaa !5
  %5670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5657, ptr noundef @.str.2, i32 noundef %5658, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5661, ptr noundef %5664, ptr noundef %5667, i32 noundef %5669) #9
  br label %5688

5671:                                             ; preds = %5649, %5642
  %5672 = load i32, ptr %128, align 4, !tbaa !5
  %5673 = call ptr @__errno_location() #10
  store i32 %5672, ptr %5673, align 4, !tbaa !5
  %5674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5675 = load i32, ptr @test_count, align 4, !tbaa !5
  %5676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5677 = load i32, ptr %5676, align 4, !tbaa !5
  %5678 = call ptr @s2n_strerror(i32 noundef %5677, ptr noundef @.str.4)
  %5679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5680 = load i32, ptr %5679, align 4, !tbaa !5
  %5681 = call ptr @s2n_strerror_debug(i32 noundef %5680, ptr noundef @.str.4)
  %5682 = call ptr @__errno_location() #10
  %5683 = load i32, ptr %5682, align 4, !tbaa !5
  %5684 = call ptr @strerror(i32 noundef %5683) #9
  %5685 = call ptr @__errno_location() #10
  %5686 = load i32, ptr %5685, align 4, !tbaa !5
  %5687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5674, ptr noundef @.str.5, i32 noundef %5675, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5678, ptr noundef %5681, ptr noundef %5684, i32 noundef %5686) #9
  br label %5688

5688:                                             ; preds = %5671, %5654
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #9
  br label %5689

5689:                                             ; preds = %5688
  br label %5690

5690:                                             ; preds = %5689
  call void @exit(i32 noundef 1) #11
  unreachable

5691:                                             ; No predecessors!
  br label %5692

5692:                                             ; preds = %5691
  br label %5693

5693:                                             ; preds = %5692, %5634
  br label %5694

5694:                                             ; preds = %5693
  br label %5695

5695:                                             ; preds = %5694
  br label %5696

5696:                                             ; preds = %5695
  %5697 = load i32, ptr @test_count, align 4, !tbaa !5
  %5698 = add nsw i32 %5697, 1
  store i32 %5698, ptr @test_count, align 4, !tbaa !5
  %5699 = load ptr, ptr %6, align 8, !tbaa !9
  %5700 = load ptr, ptr %13, align 8, !tbaa !9
  %5701 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %5699, ptr noundef %5700)
  %5702 = icmp eq i32 %5701, -1
  br i1 %5702, label %5703, label %5756

5703:                                             ; preds = %5696
  br label %5704

5704:                                             ; preds = %5703
  br label %5705

5705:                                             ; preds = %5704
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #9
  %5706 = call ptr @__errno_location() #10
  %5707 = load i32, ptr %5706, align 4, !tbaa !5
  store i32 %5707, ptr %129, align 4, !tbaa !5
  %5708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5709 = call i32 @s2n_print_stacktrace(ptr noundef %5708)
  %5710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5711 = trunc i8 %5710 to i1
  br i1 %5711, label %5712, label %5734

5712:                                             ; preds = %5705
  %5713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5714 = call i32 @fileno(ptr noundef %5713) #9
  %5715 = call i32 @isatty(i32 noundef %5714) #9
  %5716 = icmp ne i32 %5715, 0
  br i1 %5716, label %5717, label %5734

5717:                                             ; preds = %5712
  %5718 = load i32, ptr %129, align 4, !tbaa !5
  %5719 = call ptr @__errno_location() #10
  store i32 %5718, ptr %5719, align 4, !tbaa !5
  %5720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5721 = load i32, ptr @test_count, align 4, !tbaa !5
  %5722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5723 = load i32, ptr %5722, align 4, !tbaa !5
  %5724 = call ptr @s2n_strerror(i32 noundef %5723, ptr noundef @.str.4)
  %5725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5726 = load i32, ptr %5725, align 4, !tbaa !5
  %5727 = call ptr @s2n_strerror_debug(i32 noundef %5726, ptr noundef @.str.4)
  %5728 = call ptr @__errno_location() #10
  %5729 = load i32, ptr %5728, align 4, !tbaa !5
  %5730 = call ptr @strerror(i32 noundef %5729) #9
  %5731 = call ptr @__errno_location() #10
  %5732 = load i32, ptr %5731, align 4, !tbaa !5
  %5733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5720, ptr noundef @.str.2, i32 noundef %5721, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 263, ptr noundef %5724, ptr noundef %5727, ptr noundef %5730, i32 noundef %5732) #9
  br label %5751

5734:                                             ; preds = %5712, %5705
  %5735 = load i32, ptr %129, align 4, !tbaa !5
  %5736 = call ptr @__errno_location() #10
  store i32 %5735, ptr %5736, align 4, !tbaa !5
  %5737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5738 = load i32, ptr @test_count, align 4, !tbaa !5
  %5739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5740 = load i32, ptr %5739, align 4, !tbaa !5
  %5741 = call ptr @s2n_strerror(i32 noundef %5740, ptr noundef @.str.4)
  %5742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5743 = load i32, ptr %5742, align 4, !tbaa !5
  %5744 = call ptr @s2n_strerror_debug(i32 noundef %5743, ptr noundef @.str.4)
  %5745 = call ptr @__errno_location() #10
  %5746 = load i32, ptr %5745, align 4, !tbaa !5
  %5747 = call ptr @strerror(i32 noundef %5746) #9
  %5748 = call ptr @__errno_location() #10
  %5749 = load i32, ptr %5748, align 4, !tbaa !5
  %5750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5737, ptr noundef @.str.5, i32 noundef %5738, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 263, ptr noundef %5741, ptr noundef %5744, ptr noundef %5747, i32 noundef %5749) #9
  br label %5751

5751:                                             ; preds = %5734, %5717
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #9
  br label %5752

5752:                                             ; preds = %5751
  br label %5753

5753:                                             ; preds = %5752
  call void @exit(i32 noundef 1) #11
  unreachable

5754:                                             ; No predecessors!
  br label %5755

5755:                                             ; preds = %5754
  br label %5756

5756:                                             ; preds = %5755, %5696
  br label %5757

5757:                                             ; preds = %5756
  br label %5758

5758:                                             ; preds = %5757
  br label %5759

5759:                                             ; preds = %5758
  %5760 = load i32, ptr @test_count, align 4, !tbaa !5
  %5761 = add nsw i32 %5760, 1
  store i32 %5761, ptr @test_count, align 4, !tbaa !5
  %5762 = load ptr, ptr %6, align 8, !tbaa !9
  %5763 = call i32 @s2n_config_disable_x509_verification(ptr noundef %5762)
  %5764 = icmp eq i32 %5763, -1
  br i1 %5764, label %5765, label %5818

5765:                                             ; preds = %5759
  br label %5766

5766:                                             ; preds = %5765
  br label %5767

5767:                                             ; preds = %5766
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #9
  %5768 = call ptr @__errno_location() #10
  %5769 = load i32, ptr %5768, align 4, !tbaa !5
  store i32 %5769, ptr %130, align 4, !tbaa !5
  %5770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5771 = call i32 @s2n_print_stacktrace(ptr noundef %5770)
  %5772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5773 = trunc i8 %5772 to i1
  br i1 %5773, label %5774, label %5796

5774:                                             ; preds = %5767
  %5775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5776 = call i32 @fileno(ptr noundef %5775) #9
  %5777 = call i32 @isatty(i32 noundef %5776) #9
  %5778 = icmp ne i32 %5777, 0
  br i1 %5778, label %5779, label %5796

5779:                                             ; preds = %5774
  %5780 = load i32, ptr %130, align 4, !tbaa !5
  %5781 = call ptr @__errno_location() #10
  store i32 %5780, ptr %5781, align 4, !tbaa !5
  %5782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5783 = load i32, ptr @test_count, align 4, !tbaa !5
  %5784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5785 = load i32, ptr %5784, align 4, !tbaa !5
  %5786 = call ptr @s2n_strerror(i32 noundef %5785, ptr noundef @.str.4)
  %5787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5788 = load i32, ptr %5787, align 4, !tbaa !5
  %5789 = call ptr @s2n_strerror_debug(i32 noundef %5788, ptr noundef @.str.4)
  %5790 = call ptr @__errno_location() #10
  %5791 = load i32, ptr %5790, align 4, !tbaa !5
  %5792 = call ptr @strerror(i32 noundef %5791) #9
  %5793 = call ptr @__errno_location() #10
  %5794 = load i32, ptr %5793, align 4, !tbaa !5
  %5795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5782, ptr noundef @.str.2, i32 noundef %5783, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 264, ptr noundef %5786, ptr noundef %5789, ptr noundef %5792, i32 noundef %5794) #9
  br label %5813

5796:                                             ; preds = %5774, %5767
  %5797 = load i32, ptr %130, align 4, !tbaa !5
  %5798 = call ptr @__errno_location() #10
  store i32 %5797, ptr %5798, align 4, !tbaa !5
  %5799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5800 = load i32, ptr @test_count, align 4, !tbaa !5
  %5801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5802 = load i32, ptr %5801, align 4, !tbaa !5
  %5803 = call ptr @s2n_strerror(i32 noundef %5802, ptr noundef @.str.4)
  %5804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5805 = load i32, ptr %5804, align 4, !tbaa !5
  %5806 = call ptr @s2n_strerror_debug(i32 noundef %5805, ptr noundef @.str.4)
  %5807 = call ptr @__errno_location() #10
  %5808 = load i32, ptr %5807, align 4, !tbaa !5
  %5809 = call ptr @strerror(i32 noundef %5808) #9
  %5810 = call ptr @__errno_location() #10
  %5811 = load i32, ptr %5810, align 4, !tbaa !5
  %5812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5799, ptr noundef @.str.5, i32 noundef %5800, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 264, ptr noundef %5803, ptr noundef %5806, ptr noundef %5809, i32 noundef %5811) #9
  br label %5813

5813:                                             ; preds = %5796, %5779
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #9
  br label %5814

5814:                                             ; preds = %5813
  br label %5815

5815:                                             ; preds = %5814
  call void @exit(i32 noundef 1) #11
  unreachable

5816:                                             ; No predecessors!
  br label %5817

5817:                                             ; preds = %5816
  br label %5818

5818:                                             ; preds = %5817, %5759
  br label %5819

5819:                                             ; preds = %5818
  br label %5820

5820:                                             ; preds = %5819
  br label %5821

5821:                                             ; preds = %5820
  %5822 = load i32, ptr @test_count, align 4, !tbaa !5
  %5823 = add nsw i32 %5822, 1
  store i32 %5823, ptr @test_count, align 4, !tbaa !5
  %5824 = load ptr, ptr %6, align 8, !tbaa !9
  %5825 = call i32 @s2n_config_set_client_auth_type(ptr noundef %5824, i32 noundef 1)
  %5826 = icmp eq i32 %5825, -1
  br i1 %5826, label %5827, label %5880

5827:                                             ; preds = %5821
  br label %5828

5828:                                             ; preds = %5827
  br label %5829

5829:                                             ; preds = %5828
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #9
  %5830 = call ptr @__errno_location() #10
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  store i32 %5831, ptr %131, align 4, !tbaa !5
  %5832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5833 = call i32 @s2n_print_stacktrace(ptr noundef %5832)
  %5834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5835 = trunc i8 %5834 to i1
  br i1 %5835, label %5836, label %5858

5836:                                             ; preds = %5829
  %5837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5838 = call i32 @fileno(ptr noundef %5837) #9
  %5839 = call i32 @isatty(i32 noundef %5838) #9
  %5840 = icmp ne i32 %5839, 0
  br i1 %5840, label %5841, label %5858

5841:                                             ; preds = %5836
  %5842 = load i32, ptr %131, align 4, !tbaa !5
  %5843 = call ptr @__errno_location() #10
  store i32 %5842, ptr %5843, align 4, !tbaa !5
  %5844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5845 = load i32, ptr @test_count, align 4, !tbaa !5
  %5846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5847 = load i32, ptr %5846, align 4, !tbaa !5
  %5848 = call ptr @s2n_strerror(i32 noundef %5847, ptr noundef @.str.4)
  %5849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5850 = load i32, ptr %5849, align 4, !tbaa !5
  %5851 = call ptr @s2n_strerror_debug(i32 noundef %5850, ptr noundef @.str.4)
  %5852 = call ptr @__errno_location() #10
  %5853 = load i32, ptr %5852, align 4, !tbaa !5
  %5854 = call ptr @strerror(i32 noundef %5853) #9
  %5855 = call ptr @__errno_location() #10
  %5856 = load i32, ptr %5855, align 4, !tbaa !5
  %5857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5844, ptr noundef @.str.2, i32 noundef %5845, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 265, ptr noundef %5848, ptr noundef %5851, ptr noundef %5854, i32 noundef %5856) #9
  br label %5875

5858:                                             ; preds = %5836, %5829
  %5859 = load i32, ptr %131, align 4, !tbaa !5
  %5860 = call ptr @__errno_location() #10
  store i32 %5859, ptr %5860, align 4, !tbaa !5
  %5861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5862 = load i32, ptr @test_count, align 4, !tbaa !5
  %5863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5864 = load i32, ptr %5863, align 4, !tbaa !5
  %5865 = call ptr @s2n_strerror(i32 noundef %5864, ptr noundef @.str.4)
  %5866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5867 = load i32, ptr %5866, align 4, !tbaa !5
  %5868 = call ptr @s2n_strerror_debug(i32 noundef %5867, ptr noundef @.str.4)
  %5869 = call ptr @__errno_location() #10
  %5870 = load i32, ptr %5869, align 4, !tbaa !5
  %5871 = call ptr @strerror(i32 noundef %5870) #9
  %5872 = call ptr @__errno_location() #10
  %5873 = load i32, ptr %5872, align 4, !tbaa !5
  %5874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5861, ptr noundef @.str.5, i32 noundef %5862, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 265, ptr noundef %5865, ptr noundef %5868, ptr noundef %5871, i32 noundef %5873) #9
  br label %5875

5875:                                             ; preds = %5858, %5841
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #9
  br label %5876

5876:                                             ; preds = %5875
  br label %5877

5877:                                             ; preds = %5876
  call void @exit(i32 noundef 1) #11
  unreachable

5878:                                             ; No predecessors!
  br label %5879

5879:                                             ; preds = %5878
  br label %5880

5880:                                             ; preds = %5879, %5821
  br label %5881

5881:                                             ; preds = %5880
  br label %5882

5882:                                             ; preds = %5881
  br label %5883

5883:                                             ; preds = %5882
  %5884 = load i32, ptr @test_count, align 4, !tbaa !5
  %5885 = add nsw i32 %5884, 1
  store i32 %5885, ptr @test_count, align 4, !tbaa !5
  %5886 = load ptr, ptr %7, align 8, !tbaa !9
  %5887 = call i32 @s2n_config_set_client_auth_type(ptr noundef %5886, i32 noundef 0)
  %5888 = icmp eq i32 %5887, -1
  br i1 %5888, label %5889, label %5942

5889:                                             ; preds = %5883
  br label %5890

5890:                                             ; preds = %5889
  br label %5891

5891:                                             ; preds = %5890
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #9
  %5892 = call ptr @__errno_location() #10
  %5893 = load i32, ptr %5892, align 4, !tbaa !5
  store i32 %5893, ptr %132, align 4, !tbaa !5
  %5894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5895 = call i32 @s2n_print_stacktrace(ptr noundef %5894)
  %5896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5897 = trunc i8 %5896 to i1
  br i1 %5897, label %5898, label %5920

5898:                                             ; preds = %5891
  %5899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5900 = call i32 @fileno(ptr noundef %5899) #9
  %5901 = call i32 @isatty(i32 noundef %5900) #9
  %5902 = icmp ne i32 %5901, 0
  br i1 %5902, label %5903, label %5920

5903:                                             ; preds = %5898
  %5904 = load i32, ptr %132, align 4, !tbaa !5
  %5905 = call ptr @__errno_location() #10
  store i32 %5904, ptr %5905, align 4, !tbaa !5
  %5906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5907 = load i32, ptr @test_count, align 4, !tbaa !5
  %5908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5909 = load i32, ptr %5908, align 4, !tbaa !5
  %5910 = call ptr @s2n_strerror(i32 noundef %5909, ptr noundef @.str.4)
  %5911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5912 = load i32, ptr %5911, align 4, !tbaa !5
  %5913 = call ptr @s2n_strerror_debug(i32 noundef %5912, ptr noundef @.str.4)
  %5914 = call ptr @__errno_location() #10
  %5915 = load i32, ptr %5914, align 4, !tbaa !5
  %5916 = call ptr @strerror(i32 noundef %5915) #9
  %5917 = call ptr @__errno_location() #10
  %5918 = load i32, ptr %5917, align 4, !tbaa !5
  %5919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5906, ptr noundef @.str.2, i32 noundef %5907, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5910, ptr noundef %5913, ptr noundef %5916, i32 noundef %5918) #9
  br label %5937

5920:                                             ; preds = %5898, %5891
  %5921 = load i32, ptr %132, align 4, !tbaa !5
  %5922 = call ptr @__errno_location() #10
  store i32 %5921, ptr %5922, align 4, !tbaa !5
  %5923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5924 = load i32, ptr @test_count, align 4, !tbaa !5
  %5925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5926 = load i32, ptr %5925, align 4, !tbaa !5
  %5927 = call ptr @s2n_strerror(i32 noundef %5926, ptr noundef @.str.4)
  %5928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  %5930 = call ptr @s2n_strerror_debug(i32 noundef %5929, ptr noundef @.str.4)
  %5931 = call ptr @__errno_location() #10
  %5932 = load i32, ptr %5931, align 4, !tbaa !5
  %5933 = call ptr @strerror(i32 noundef %5932) #9
  %5934 = call ptr @__errno_location() #10
  %5935 = load i32, ptr %5934, align 4, !tbaa !5
  %5936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5923, ptr noundef @.str.5, i32 noundef %5924, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5927, ptr noundef %5930, ptr noundef %5933, i32 noundef %5935) #9
  br label %5937

5937:                                             ; preds = %5920, %5903
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #9
  br label %5938

5938:                                             ; preds = %5937
  br label %5939

5939:                                             ; preds = %5938
  call void @exit(i32 noundef 1) #11
  unreachable

5940:                                             ; No predecessors!
  br label %5941

5941:                                             ; preds = %5940
  br label %5942

5942:                                             ; preds = %5941, %5883
  br label %5943

5943:                                             ; preds = %5942
  br label %5944

5944:                                             ; preds = %5943
  br label %5945

5945:                                             ; preds = %5944
  %5946 = load i32, ptr @test_count, align 4, !tbaa !5
  %5947 = add nsw i32 %5946, 1
  store i32 %5947, ptr @test_count, align 4, !tbaa !5
  %5948 = load ptr, ptr %7, align 8, !tbaa !9
  %5949 = call i32 @s2n_config_disable_x509_verification(ptr noundef %5948)
  %5950 = icmp eq i32 %5949, -1
  br i1 %5950, label %5951, label %6004

5951:                                             ; preds = %5945
  br label %5952

5952:                                             ; preds = %5951
  br label %5953

5953:                                             ; preds = %5952
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #9
  %5954 = call ptr @__errno_location() #10
  %5955 = load i32, ptr %5954, align 4, !tbaa !5
  store i32 %5955, ptr %133, align 4, !tbaa !5
  %5956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5957 = call i32 @s2n_print_stacktrace(ptr noundef %5956)
  %5958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5959 = trunc i8 %5958 to i1
  br i1 %5959, label %5960, label %5982

5960:                                             ; preds = %5953
  %5961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5962 = call i32 @fileno(ptr noundef %5961) #9
  %5963 = call i32 @isatty(i32 noundef %5962) #9
  %5964 = icmp ne i32 %5963, 0
  br i1 %5964, label %5965, label %5982

5965:                                             ; preds = %5960
  %5966 = load i32, ptr %133, align 4, !tbaa !5
  %5967 = call ptr @__errno_location() #10
  store i32 %5966, ptr %5967, align 4, !tbaa !5
  %5968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5969 = load i32, ptr @test_count, align 4, !tbaa !5
  %5970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5971 = load i32, ptr %5970, align 4, !tbaa !5
  %5972 = call ptr @s2n_strerror(i32 noundef %5971, ptr noundef @.str.4)
  %5973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5974 = load i32, ptr %5973, align 4, !tbaa !5
  %5975 = call ptr @s2n_strerror_debug(i32 noundef %5974, ptr noundef @.str.4)
  %5976 = call ptr @__errno_location() #10
  %5977 = load i32, ptr %5976, align 4, !tbaa !5
  %5978 = call ptr @strerror(i32 noundef %5977) #9
  %5979 = call ptr @__errno_location() #10
  %5980 = load i32, ptr %5979, align 4, !tbaa !5
  %5981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5968, ptr noundef @.str.2, i32 noundef %5969, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5972, ptr noundef %5975, ptr noundef %5978, i32 noundef %5980) #9
  br label %5999

5982:                                             ; preds = %5960, %5953
  %5983 = load i32, ptr %133, align 4, !tbaa !5
  %5984 = call ptr @__errno_location() #10
  store i32 %5983, ptr %5984, align 4, !tbaa !5
  %5985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5986 = load i32, ptr @test_count, align 4, !tbaa !5
  %5987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5988 = load i32, ptr %5987, align 4, !tbaa !5
  %5989 = call ptr @s2n_strerror(i32 noundef %5988, ptr noundef @.str.4)
  %5990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5991 = load i32, ptr %5990, align 4, !tbaa !5
  %5992 = call ptr @s2n_strerror_debug(i32 noundef %5991, ptr noundef @.str.4)
  %5993 = call ptr @__errno_location() #10
  %5994 = load i32, ptr %5993, align 4, !tbaa !5
  %5995 = call ptr @strerror(i32 noundef %5994) #9
  %5996 = call ptr @__errno_location() #10
  %5997 = load i32, ptr %5996, align 4, !tbaa !5
  %5998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5985, ptr noundef @.str.5, i32 noundef %5986, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5989, ptr noundef %5992, ptr noundef %5995, i32 noundef %5997) #9
  br label %5999

5999:                                             ; preds = %5982, %5965
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #9
  br label %6000

6000:                                             ; preds = %5999
  br label %6001

6001:                                             ; preds = %6000
  call void @exit(i32 noundef 1) #11
  unreachable

6002:                                             ; No predecessors!
  br label %6003

6003:                                             ; preds = %6002
  br label %6004

6004:                                             ; preds = %6003, %5945
  br label %6005

6005:                                             ; preds = %6004
  br label %6006

6006:                                             ; preds = %6005
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #9
  store i32 0, ptr %134, align 4, !tbaa !5
  br label %6007

6007:                                             ; preds = %7036, %6006
  %6008 = load i32, ptr %134, align 4, !tbaa !5
  %6009 = load ptr, ptr %9, align 8, !tbaa !9
  %6010 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %6009, i32 0, i32 0
  %6011 = load i16, ptr %6010, align 8, !tbaa !24
  %6012 = zext i16 %6011 to i32
  %6013 = icmp slt i32 %6008, %6012
  br i1 %6013, label %6015, label %6014

6014:                                             ; preds = %6007
  store i32 561, ptr %42, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #9
  br label %7039

6015:                                             ; preds = %6007
  call void @llvm.lifetime.start.p0(i64 24, ptr %135) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %136) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #9
  store ptr null, ptr %137, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #9
  store ptr null, ptr %138, align 8, !tbaa !9
  br label %6016

6016:                                             ; preds = %6015
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #9
  store i64 24, ptr %139, align 8, !tbaa !26
  %6017 = load i64, ptr %139, align 8, !tbaa !26
  %6018 = icmp ne i64 %6017, 0
  br i1 %6018, label %6019, label %6077

6019:                                             ; preds = %6016
  %6020 = load ptr, ptr %9, align 8, !tbaa !9
  %6021 = load i64, ptr %139, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %135, ptr align 8 %6020, i64 %6021, i1 false)
  %6022 = icmp eq ptr %135, null
  br i1 %6022, label %6023, label %6076

6023:                                             ; preds = %6019
  br label %6024

6024:                                             ; preds = %6023
  br label %6025

6025:                                             ; preds = %6024
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #9
  %6026 = call ptr @__errno_location() #10
  %6027 = load i32, ptr %6026, align 4, !tbaa !5
  store i32 %6027, ptr %140, align 4, !tbaa !5
  %6028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6029 = call i32 @s2n_print_stacktrace(ptr noundef %6028)
  %6030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6031 = trunc i8 %6030 to i1
  br i1 %6031, label %6032, label %6054

6032:                                             ; preds = %6025
  %6033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6034 = call i32 @fileno(ptr noundef %6033) #9
  %6035 = call i32 @isatty(i32 noundef %6034) #9
  %6036 = icmp ne i32 %6035, 0
  br i1 %6036, label %6037, label %6054

6037:                                             ; preds = %6032
  %6038 = load i32, ptr %140, align 4, !tbaa !5
  %6039 = call ptr @__errno_location() #10
  store i32 %6038, ptr %6039, align 4, !tbaa !5
  %6040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6041 = load i32, ptr @test_count, align 4, !tbaa !5
  %6042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6043 = load i32, ptr %6042, align 4, !tbaa !5
  %6044 = call ptr @s2n_strerror(i32 noundef %6043, ptr noundef @.str.4)
  %6045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6046 = load i32, ptr %6045, align 4, !tbaa !5
  %6047 = call ptr @s2n_strerror_debug(i32 noundef %6046, ptr noundef @.str.4)
  %6048 = call ptr @__errno_location() #10
  %6049 = load i32, ptr %6048, align 4, !tbaa !5
  %6050 = call ptr @strerror(i32 noundef %6049) #9
  %6051 = call ptr @__errno_location() #10
  %6052 = load i32, ptr %6051, align 4, !tbaa !5
  %6053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6040, ptr noundef @.str.2, i32 noundef %6041, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 279, ptr noundef %6044, ptr noundef %6047, ptr noundef %6050, i32 noundef %6052) #9
  br label %6071

6054:                                             ; preds = %6032, %6025
  %6055 = load i32, ptr %140, align 4, !tbaa !5
  %6056 = call ptr @__errno_location() #10
  store i32 %6055, ptr %6056, align 4, !tbaa !5
  %6057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6058 = load i32, ptr @test_count, align 4, !tbaa !5
  %6059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6060 = load i32, ptr %6059, align 4, !tbaa !5
  %6061 = call ptr @s2n_strerror(i32 noundef %6060, ptr noundef @.str.4)
  %6062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6063 = load i32, ptr %6062, align 4, !tbaa !5
  %6064 = call ptr @s2n_strerror_debug(i32 noundef %6063, ptr noundef @.str.4)
  %6065 = call ptr @__errno_location() #10
  %6066 = load i32, ptr %6065, align 4, !tbaa !5
  %6067 = call ptr @strerror(i32 noundef %6066) #9
  %6068 = call ptr @__errno_location() #10
  %6069 = load i32, ptr %6068, align 4, !tbaa !5
  %6070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6057, ptr noundef @.str.5, i32 noundef %6058, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 279, ptr noundef %6061, ptr noundef %6064, ptr noundef %6067, i32 noundef %6069) #9
  br label %6071

6071:                                             ; preds = %6054, %6037
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #9
  br label %6072

6072:                                             ; preds = %6071
  br label %6073

6073:                                             ; preds = %6072
  call void @exit(i32 noundef 1) #11
  unreachable

6074:                                             ; No predecessors!
  br label %6075

6075:                                             ; preds = %6074
  br label %6076

6076:                                             ; preds = %6075, %6019
  br label %6077

6077:                                             ; preds = %6076, %6016
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #9
  br label %6078

6078:                                             ; preds = %6077
  br label %6079

6079:                                             ; preds = %6078
  %6080 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %135, i32 0, i32 0
  store i16 1, ptr %6080, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #9
  %6081 = load ptr, ptr %9, align 8, !tbaa !9
  %6082 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %6081, i32 0, i32 1
  %6083 = load ptr, ptr %6082, align 8, !tbaa !27
  %6084 = load i32, ptr %134, align 4, !tbaa !5
  %6085 = sext i32 %6084 to i64
  %6086 = getelementptr inbounds ptr, ptr %6083, i64 %6085
  %6087 = load ptr, ptr %6086, align 8, !tbaa !9
  store ptr %6087, ptr %141, align 8, !tbaa !9
  %6088 = load ptr, ptr %141, align 8, !tbaa !9
  %6089 = load i8, ptr %6088, align 8
  %6090 = and i8 %6089, 1
  %6091 = zext i8 %6090 to i32
  %6092 = icmp ne i32 %6091, 0
  br i1 %6092, label %6094, label %6093

6093:                                             ; preds = %6079
  store i32 563, ptr %42, align 4
  br label %7033

6094:                                             ; preds = %6079
  %6095 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %135, i32 0, i32 1
  store ptr %141, ptr %6095, align 8, !tbaa !27
  br label %6096

6096:                                             ; preds = %6094
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #9
  store i64 64, ptr %142, align 8, !tbaa !26
  %6097 = load i64, ptr %142, align 8, !tbaa !26
  %6098 = icmp ne i64 %6097, 0
  br i1 %6098, label %6099, label %6157

6099:                                             ; preds = %6096
  %6100 = load ptr, ptr %8, align 8, !tbaa !9
  %6101 = load i64, ptr %142, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %136, ptr align 8 %6100, i64 %6101, i1 false)
  %6102 = icmp eq ptr %136, null
  br i1 %6102, label %6103, label %6156

6103:                                             ; preds = %6099
  br label %6104

6104:                                             ; preds = %6103
  br label %6105

6105:                                             ; preds = %6104
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #9
  %6106 = call ptr @__errno_location() #10
  %6107 = load i32, ptr %6106, align 4, !tbaa !5
  store i32 %6107, ptr %143, align 4, !tbaa !5
  %6108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6109 = call i32 @s2n_print_stacktrace(ptr noundef %6108)
  %6110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6111 = trunc i8 %6110 to i1
  br i1 %6111, label %6112, label %6134

6112:                                             ; preds = %6105
  %6113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6114 = call i32 @fileno(ptr noundef %6113) #9
  %6115 = call i32 @isatty(i32 noundef %6114) #9
  %6116 = icmp ne i32 %6115, 0
  br i1 %6116, label %6117, label %6134

6117:                                             ; preds = %6112
  %6118 = load i32, ptr %143, align 4, !tbaa !5
  %6119 = call ptr @__errno_location() #10
  store i32 %6118, ptr %6119, align 4, !tbaa !5
  %6120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6121 = load i32, ptr @test_count, align 4, !tbaa !5
  %6122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  %6124 = call ptr @s2n_strerror(i32 noundef %6123, ptr noundef @.str.4)
  %6125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6126 = load i32, ptr %6125, align 4, !tbaa !5
  %6127 = call ptr @s2n_strerror_debug(i32 noundef %6126, ptr noundef @.str.4)
  %6128 = call ptr @__errno_location() #10
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = call ptr @strerror(i32 noundef %6129) #9
  %6131 = call ptr @__errno_location() #10
  %6132 = load i32, ptr %6131, align 4, !tbaa !5
  %6133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6120, ptr noundef @.str.2, i32 noundef %6121, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6124, ptr noundef %6127, ptr noundef %6130, i32 noundef %6132) #9
  br label %6151

6134:                                             ; preds = %6112, %6105
  %6135 = load i32, ptr %143, align 4, !tbaa !5
  %6136 = call ptr @__errno_location() #10
  store i32 %6135, ptr %6136, align 4, !tbaa !5
  %6137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6138 = load i32, ptr @test_count, align 4, !tbaa !5
  %6139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6140 = load i32, ptr %6139, align 4, !tbaa !5
  %6141 = call ptr @s2n_strerror(i32 noundef %6140, ptr noundef @.str.4)
  %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_debug(i32 noundef %6143, ptr noundef @.str.4)
  %6145 = call ptr @__errno_location() #10
  %6146 = load i32, ptr %6145, align 4, !tbaa !5
  %6147 = call ptr @strerror(i32 noundef %6146) #9
  %6148 = call ptr @__errno_location() #10
  %6149 = load i32, ptr %6148, align 4, !tbaa !5
  %6150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6137, ptr noundef @.str.5, i32 noundef %6138, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6141, ptr noundef %6144, ptr noundef %6147, i32 noundef %6149) #9
  br label %6151

6151:                                             ; preds = %6134, %6117
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #9
  br label %6152

6152:                                             ; preds = %6151
  br label %6153

6153:                                             ; preds = %6152
  call void @exit(i32 noundef 1) #11
  unreachable

6154:                                             ; No predecessors!
  br label %6155

6155:                                             ; preds = %6154
  br label %6156

6156:                                             ; preds = %6155, %6099
  br label %6157

6157:                                             ; preds = %6156, %6096
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #9
  br label %6158

6158:                                             ; preds = %6157
  br label %6159

6159:                                             ; preds = %6158
  %6160 = getelementptr inbounds %struct.s2n_security_policy, ptr %136, i32 0, i32 1
  store ptr %135, ptr %6160, align 8, !tbaa !22
  %6161 = load ptr, ptr %6, align 8, !tbaa !9
  %6162 = getelementptr inbounds %struct.s2n_config, ptr %6161, i32 0, i32 7
  store ptr %136, ptr %6162, align 8, !tbaa !15
  %6163 = load ptr, ptr %7, align 8, !tbaa !9
  %6164 = getelementptr inbounds %struct.s2n_config, ptr %6163, i32 0, i32 7
  store ptr %136, ptr %6164, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #9
  br label %6165

6165:                                             ; preds = %6159
  %6166 = load i32, ptr @test_count, align 4, !tbaa !5
  %6167 = add nsw i32 %6166, 1
  store i32 %6167, ptr @test_count, align 4, !tbaa !5
  %6168 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %144)
  %6169 = icmp eq i32 %6168, -1
  br i1 %6169, label %6170, label %6223

6170:                                             ; preds = %6165
  br label %6171

6171:                                             ; preds = %6170
  br label %6172

6172:                                             ; preds = %6171
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #9
  %6173 = call ptr @__errno_location() #10
  %6174 = load i32, ptr %6173, align 4, !tbaa !5
  store i32 %6174, ptr %145, align 4, !tbaa !5
  %6175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6176 = call i32 @s2n_print_stacktrace(ptr noundef %6175)
  %6177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6178 = trunc i8 %6177 to i1
  br i1 %6178, label %6179, label %6201

6179:                                             ; preds = %6172
  %6180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6181 = call i32 @fileno(ptr noundef %6180) #9
  %6182 = call i32 @isatty(i32 noundef %6181) #9
  %6183 = icmp ne i32 %6182, 0
  br i1 %6183, label %6184, label %6201

6184:                                             ; preds = %6179
  %6185 = load i32, ptr %145, align 4, !tbaa !5
  %6186 = call ptr @__errno_location() #10
  store i32 %6185, ptr %6186, align 4, !tbaa !5
  %6187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6188 = load i32, ptr @test_count, align 4, !tbaa !5
  %6189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6190 = load i32, ptr %6189, align 4, !tbaa !5
  %6191 = call ptr @s2n_strerror(i32 noundef %6190, ptr noundef @.str.4)
  %6192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6193 = load i32, ptr %6192, align 4, !tbaa !5
  %6194 = call ptr @s2n_strerror_debug(i32 noundef %6193, ptr noundef @.str.4)
  %6195 = call ptr @__errno_location() #10
  %6196 = load i32, ptr %6195, align 4, !tbaa !5
  %6197 = call ptr @strerror(i32 noundef %6196) #9
  %6198 = call ptr @__errno_location() #10
  %6199 = load i32, ptr %6198, align 4, !tbaa !5
  %6200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6187, ptr noundef @.str.2, i32 noundef %6188, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 298, ptr noundef %6191, ptr noundef %6194, ptr noundef %6197, i32 noundef %6199) #9
  br label %6218

6201:                                             ; preds = %6179, %6172
  %6202 = load i32, ptr %145, align 4, !tbaa !5
  %6203 = call ptr @__errno_location() #10
  store i32 %6202, ptr %6203, align 4, !tbaa !5
  %6204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6205 = load i32, ptr @test_count, align 4, !tbaa !5
  %6206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6207 = load i32, ptr %6206, align 4, !tbaa !5
  %6208 = call ptr @s2n_strerror(i32 noundef %6207, ptr noundef @.str.4)
  %6209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6210 = load i32, ptr %6209, align 4, !tbaa !5
  %6211 = call ptr @s2n_strerror_debug(i32 noundef %6210, ptr noundef @.str.4)
  %6212 = call ptr @__errno_location() #10
  %6213 = load i32, ptr %6212, align 4, !tbaa !5
  %6214 = call ptr @strerror(i32 noundef %6213) #9
  %6215 = call ptr @__errno_location() #10
  %6216 = load i32, ptr %6215, align 4, !tbaa !5
  %6217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6204, ptr noundef @.str.5, i32 noundef %6205, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 298, ptr noundef %6208, ptr noundef %6211, ptr noundef %6214, i32 noundef %6216) #9
  br label %6218

6218:                                             ; preds = %6201, %6184
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #9
  br label %6219

6219:                                             ; preds = %6218
  br label %6220

6220:                                             ; preds = %6219
  call void @exit(i32 noundef 1) #11
  unreachable

6221:                                             ; No predecessors!
  br label %6222

6222:                                             ; preds = %6221
  br label %6223

6223:                                             ; preds = %6222, %6165
  br label %6224

6224:                                             ; preds = %6223
  br label %6225

6225:                                             ; preds = %6224
  br label %6226

6226:                                             ; preds = %6225
  %6227 = load i32, ptr @test_count, align 4, !tbaa !5
  %6228 = add nsw i32 %6227, 1
  store i32 %6228, ptr @test_count, align 4, !tbaa !5
  %6229 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6229, ptr %137, align 8, !tbaa !9
  %6230 = icmp eq ptr %6229, null
  br i1 %6230, label %6231, label %6284

6231:                                             ; preds = %6226
  br label %6232

6232:                                             ; preds = %6231
  br label %6233

6233:                                             ; preds = %6232
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #9
  %6234 = call ptr @__errno_location() #10
  %6235 = load i32, ptr %6234, align 4, !tbaa !5
  store i32 %6235, ptr %146, align 4, !tbaa !5
  %6236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6237 = call i32 @s2n_print_stacktrace(ptr noundef %6236)
  %6238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6239 = trunc i8 %6238 to i1
  br i1 %6239, label %6240, label %6262

6240:                                             ; preds = %6233
  %6241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6242 = call i32 @fileno(ptr noundef %6241) #9
  %6243 = call i32 @isatty(i32 noundef %6242) #9
  %6244 = icmp ne i32 %6243, 0
  br i1 %6244, label %6245, label %6262

6245:                                             ; preds = %6240
  %6246 = load i32, ptr %146, align 4, !tbaa !5
  %6247 = call ptr @__errno_location() #10
  store i32 %6246, ptr %6247, align 4, !tbaa !5
  %6248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6249 = load i32, ptr @test_count, align 4, !tbaa !5
  %6250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6251 = load i32, ptr %6250, align 4, !tbaa !5
  %6252 = call ptr @s2n_strerror(i32 noundef %6251, ptr noundef @.str.4)
  %6253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6254 = load i32, ptr %6253, align 4, !tbaa !5
  %6255 = call ptr @s2n_strerror_debug(i32 noundef %6254, ptr noundef @.str.4)
  %6256 = call ptr @__errno_location() #10
  %6257 = load i32, ptr %6256, align 4, !tbaa !5
  %6258 = call ptr @strerror(i32 noundef %6257) #9
  %6259 = call ptr @__errno_location() #10
  %6260 = load i32, ptr %6259, align 4, !tbaa !5
  %6261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6248, ptr noundef @.str.2, i32 noundef %6249, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 300, ptr noundef %6252, ptr noundef %6255, ptr noundef %6258, i32 noundef %6260) #9
  br label %6279

6262:                                             ; preds = %6240, %6233
  %6263 = load i32, ptr %146, align 4, !tbaa !5
  %6264 = call ptr @__errno_location() #10
  store i32 %6263, ptr %6264, align 4, !tbaa !5
  %6265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6266 = load i32, ptr @test_count, align 4, !tbaa !5
  %6267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6268 = load i32, ptr %6267, align 4, !tbaa !5
  %6269 = call ptr @s2n_strerror(i32 noundef %6268, ptr noundef @.str.4)
  %6270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6271 = load i32, ptr %6270, align 4, !tbaa !5
  %6272 = call ptr @s2n_strerror_debug(i32 noundef %6271, ptr noundef @.str.4)
  %6273 = call ptr @__errno_location() #10
  %6274 = load i32, ptr %6273, align 4, !tbaa !5
  %6275 = call ptr @strerror(i32 noundef %6274) #9
  %6276 = call ptr @__errno_location() #10
  %6277 = load i32, ptr %6276, align 4, !tbaa !5
  %6278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6265, ptr noundef @.str.5, i32 noundef %6266, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 300, ptr noundef %6269, ptr noundef %6272, ptr noundef %6275, i32 noundef %6277) #9
  br label %6279

6279:                                             ; preds = %6262, %6245
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #9
  br label %6280

6280:                                             ; preds = %6279
  br label %6281

6281:                                             ; preds = %6280
  call void @exit(i32 noundef 1) #11
  unreachable

6282:                                             ; No predecessors!
  br label %6283

6283:                                             ; preds = %6282
  br label %6284

6284:                                             ; preds = %6283, %6226
  br label %6285

6285:                                             ; preds = %6284
  br label %6286

6286:                                             ; preds = %6285
  br label %6287

6287:                                             ; preds = %6286
  %6288 = load i32, ptr @test_count, align 4, !tbaa !5
  %6289 = add nsw i32 %6288, 1
  store i32 %6289, ptr @test_count, align 4, !tbaa !5
  %6290 = load ptr, ptr %137, align 8, !tbaa !9
  %6291 = load ptr, ptr %6, align 8, !tbaa !9
  %6292 = call i32 @s2n_connection_set_config(ptr noundef %6290, ptr noundef %6291)
  %6293 = icmp eq i32 %6292, -1
  br i1 %6293, label %6294, label %6347

6294:                                             ; preds = %6287
  br label %6295

6295:                                             ; preds = %6294
  br label %6296

6296:                                             ; preds = %6295
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #9
  %6297 = call ptr @__errno_location() #10
  %6298 = load i32, ptr %6297, align 4, !tbaa !5
  store i32 %6298, ptr %147, align 4, !tbaa !5
  %6299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6300 = call i32 @s2n_print_stacktrace(ptr noundef %6299)
  %6301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6302 = trunc i8 %6301 to i1
  br i1 %6302, label %6303, label %6325

6303:                                             ; preds = %6296
  %6304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6305 = call i32 @fileno(ptr noundef %6304) #9
  %6306 = call i32 @isatty(i32 noundef %6305) #9
  %6307 = icmp ne i32 %6306, 0
  br i1 %6307, label %6308, label %6325

6308:                                             ; preds = %6303
  %6309 = load i32, ptr %147, align 4, !tbaa !5
  %6310 = call ptr @__errno_location() #10
  store i32 %6309, ptr %6310, align 4, !tbaa !5
  %6311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6312 = load i32, ptr @test_count, align 4, !tbaa !5
  %6313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6314 = load i32, ptr %6313, align 4, !tbaa !5
  %6315 = call ptr @s2n_strerror(i32 noundef %6314, ptr noundef @.str.4)
  %6316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6317 = load i32, ptr %6316, align 4, !tbaa !5
  %6318 = call ptr @s2n_strerror_debug(i32 noundef %6317, ptr noundef @.str.4)
  %6319 = call ptr @__errno_location() #10
  %6320 = load i32, ptr %6319, align 4, !tbaa !5
  %6321 = call ptr @strerror(i32 noundef %6320) #9
  %6322 = call ptr @__errno_location() #10
  %6323 = load i32, ptr %6322, align 4, !tbaa !5
  %6324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6311, ptr noundef @.str.2, i32 noundef %6312, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6315, ptr noundef %6318, ptr noundef %6321, i32 noundef %6323) #9
  br label %6342

6325:                                             ; preds = %6303, %6296
  %6326 = load i32, ptr %147, align 4, !tbaa !5
  %6327 = call ptr @__errno_location() #10
  store i32 %6326, ptr %6327, align 4, !tbaa !5
  %6328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6329 = load i32, ptr @test_count, align 4, !tbaa !5
  %6330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6331 = load i32, ptr %6330, align 4, !tbaa !5
  %6332 = call ptr @s2n_strerror(i32 noundef %6331, ptr noundef @.str.4)
  %6333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6334 = load i32, ptr %6333, align 4, !tbaa !5
  %6335 = call ptr @s2n_strerror_debug(i32 noundef %6334, ptr noundef @.str.4)
  %6336 = call ptr @__errno_location() #10
  %6337 = load i32, ptr %6336, align 4, !tbaa !5
  %6338 = call ptr @strerror(i32 noundef %6337) #9
  %6339 = call ptr @__errno_location() #10
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  %6341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6328, ptr noundef @.str.5, i32 noundef %6329, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6332, ptr noundef %6335, ptr noundef %6338, i32 noundef %6340) #9
  br label %6342

6342:                                             ; preds = %6325, %6308
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #9
  br label %6343

6343:                                             ; preds = %6342
  br label %6344

6344:                                             ; preds = %6343
  call void @exit(i32 noundef 1) #11
  unreachable

6345:                                             ; No predecessors!
  br label %6346

6346:                                             ; preds = %6345
  br label %6347

6347:                                             ; preds = %6346, %6287
  br label %6348

6348:                                             ; preds = %6347
  br label %6349

6349:                                             ; preds = %6348
  br label %6350

6350:                                             ; preds = %6349
  %6351 = load i32, ptr @test_count, align 4, !tbaa !5
  %6352 = add nsw i32 %6351, 1
  store i32 %6352, ptr @test_count, align 4, !tbaa !5
  %6353 = load ptr, ptr %137, align 8, !tbaa !9
  %6354 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %6353, i32 noundef 1)
  %6355 = icmp eq i32 %6354, -1
  br i1 %6355, label %6356, label %6409

6356:                                             ; preds = %6350
  br label %6357

6357:                                             ; preds = %6356
  br label %6358

6358:                                             ; preds = %6357
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #9
  %6359 = call ptr @__errno_location() #10
  %6360 = load i32, ptr %6359, align 4, !tbaa !5
  store i32 %6360, ptr %148, align 4, !tbaa !5
  %6361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6362 = call i32 @s2n_print_stacktrace(ptr noundef %6361)
  %6363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6364 = trunc i8 %6363 to i1
  br i1 %6364, label %6365, label %6387

6365:                                             ; preds = %6358
  %6366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6367 = call i32 @fileno(ptr noundef %6366) #9
  %6368 = call i32 @isatty(i32 noundef %6367) #9
  %6369 = icmp ne i32 %6368, 0
  br i1 %6369, label %6370, label %6387

6370:                                             ; preds = %6365
  %6371 = load i32, ptr %148, align 4, !tbaa !5
  %6372 = call ptr @__errno_location() #10
  store i32 %6371, ptr %6372, align 4, !tbaa !5
  %6373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6374 = load i32, ptr @test_count, align 4, !tbaa !5
  %6375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6376 = load i32, ptr %6375, align 4, !tbaa !5
  %6377 = call ptr @s2n_strerror(i32 noundef %6376, ptr noundef @.str.4)
  %6378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6379 = load i32, ptr %6378, align 4, !tbaa !5
  %6380 = call ptr @s2n_strerror_debug(i32 noundef %6379, ptr noundef @.str.4)
  %6381 = call ptr @__errno_location() #10
  %6382 = load i32, ptr %6381, align 4, !tbaa !5
  %6383 = call ptr @strerror(i32 noundef %6382) #9
  %6384 = call ptr @__errno_location() #10
  %6385 = load i32, ptr %6384, align 4, !tbaa !5
  %6386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6373, ptr noundef @.str.2, i32 noundef %6374, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 304, ptr noundef %6377, ptr noundef %6380, ptr noundef %6383, i32 noundef %6385) #9
  br label %6404

6387:                                             ; preds = %6365, %6358
  %6388 = load i32, ptr %148, align 4, !tbaa !5
  %6389 = call ptr @__errno_location() #10
  store i32 %6388, ptr %6389, align 4, !tbaa !5
  %6390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6391 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6393, ptr noundef @.str.4)
  %6395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6396 = load i32, ptr %6395, align 4, !tbaa !5
  %6397 = call ptr @s2n_strerror_debug(i32 noundef %6396, ptr noundef @.str.4)
  %6398 = call ptr @__errno_location() #10
  %6399 = load i32, ptr %6398, align 4, !tbaa !5
  %6400 = call ptr @strerror(i32 noundef %6399) #9
  %6401 = call ptr @__errno_location() #10
  %6402 = load i32, ptr %6401, align 4, !tbaa !5
  %6403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6390, ptr noundef @.str.5, i32 noundef %6391, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 304, ptr noundef %6394, ptr noundef %6397, ptr noundef %6400, i32 noundef %6402) #9
  br label %6404

6404:                                             ; preds = %6387, %6370
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #9
  br label %6405

6405:                                             ; preds = %6404
  br label %6406

6406:                                             ; preds = %6405
  call void @exit(i32 noundef 1) #11
  unreachable

6407:                                             ; No predecessors!
  br label %6408

6408:                                             ; preds = %6407
  br label %6409

6409:                                             ; preds = %6408, %6350
  br label %6410

6410:                                             ; preds = %6409
  br label %6411

6411:                                             ; preds = %6410
  br label %6412

6412:                                             ; preds = %6411
  %6413 = load i32, ptr @test_count, align 4, !tbaa !5
  %6414 = add nsw i32 %6413, 1
  store i32 %6414, ptr @test_count, align 4, !tbaa !5
  %6415 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6415, ptr %138, align 8, !tbaa !9
  %6416 = icmp eq ptr %6415, null
  br i1 %6416, label %6417, label %6470

6417:                                             ; preds = %6412
  br label %6418

6418:                                             ; preds = %6417
  br label %6419

6419:                                             ; preds = %6418
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #9
  %6420 = call ptr @__errno_location() #10
  %6421 = load i32, ptr %6420, align 4, !tbaa !5
  store i32 %6421, ptr %149, align 4, !tbaa !5
  %6422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6423 = call i32 @s2n_print_stacktrace(ptr noundef %6422)
  %6424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6425 = trunc i8 %6424 to i1
  br i1 %6425, label %6426, label %6448

6426:                                             ; preds = %6419
  %6427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6428 = call i32 @fileno(ptr noundef %6427) #9
  %6429 = call i32 @isatty(i32 noundef %6428) #9
  %6430 = icmp ne i32 %6429, 0
  br i1 %6430, label %6431, label %6448

6431:                                             ; preds = %6426
  %6432 = load i32, ptr %149, align 4, !tbaa !5
  %6433 = call ptr @__errno_location() #10
  store i32 %6432, ptr %6433, align 4, !tbaa !5
  %6434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6435 = load i32, ptr @test_count, align 4, !tbaa !5
  %6436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call ptr @s2n_strerror(i32 noundef %6437, ptr noundef @.str.4)
  %6439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6440 = load i32, ptr %6439, align 4, !tbaa !5
  %6441 = call ptr @s2n_strerror_debug(i32 noundef %6440, ptr noundef @.str.4)
  %6442 = call ptr @__errno_location() #10
  %6443 = load i32, ptr %6442, align 4, !tbaa !5
  %6444 = call ptr @strerror(i32 noundef %6443) #9
  %6445 = call ptr @__errno_location() #10
  %6446 = load i32, ptr %6445, align 4, !tbaa !5
  %6447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6434, ptr noundef @.str.2, i32 noundef %6435, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 306, ptr noundef %6438, ptr noundef %6441, ptr noundef %6444, i32 noundef %6446) #9
  br label %6465

6448:                                             ; preds = %6426, %6419
  %6449 = load i32, ptr %149, align 4, !tbaa !5
  %6450 = call ptr @__errno_location() #10
  store i32 %6449, ptr %6450, align 4, !tbaa !5
  %6451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6452 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6454, ptr noundef @.str.4)
  %6456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6457 = load i32, ptr %6456, align 4, !tbaa !5
  %6458 = call ptr @s2n_strerror_debug(i32 noundef %6457, ptr noundef @.str.4)
  %6459 = call ptr @__errno_location() #10
  %6460 = load i32, ptr %6459, align 4, !tbaa !5
  %6461 = call ptr @strerror(i32 noundef %6460) #9
  %6462 = call ptr @__errno_location() #10
  %6463 = load i32, ptr %6462, align 4, !tbaa !5
  %6464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6451, ptr noundef @.str.5, i32 noundef %6452, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 306, ptr noundef %6455, ptr noundef %6458, ptr noundef %6461, i32 noundef %6463) #9
  br label %6465

6465:                                             ; preds = %6448, %6431
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #9
  br label %6466

6466:                                             ; preds = %6465
  br label %6467

6467:                                             ; preds = %6466
  call void @exit(i32 noundef 1) #11
  unreachable

6468:                                             ; No predecessors!
  br label %6469

6469:                                             ; preds = %6468
  br label %6470

6470:                                             ; preds = %6469, %6412
  br label %6471

6471:                                             ; preds = %6470
  br label %6472

6472:                                             ; preds = %6471
  br label %6473

6473:                                             ; preds = %6472
  %6474 = load i32, ptr @test_count, align 4, !tbaa !5
  %6475 = add nsw i32 %6474, 1
  store i32 %6475, ptr @test_count, align 4, !tbaa !5
  %6476 = load ptr, ptr %138, align 8, !tbaa !9
  %6477 = load ptr, ptr %7, align 8, !tbaa !9
  %6478 = call i32 @s2n_connection_set_config(ptr noundef %6476, ptr noundef %6477)
  %6479 = icmp eq i32 %6478, -1
  br i1 %6479, label %6480, label %6533

6480:                                             ; preds = %6473
  br label %6481

6481:                                             ; preds = %6480
  br label %6482

6482:                                             ; preds = %6481
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #9
  %6483 = call ptr @__errno_location() #10
  %6484 = load i32, ptr %6483, align 4, !tbaa !5
  store i32 %6484, ptr %150, align 4, !tbaa !5
  %6485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6486 = call i32 @s2n_print_stacktrace(ptr noundef %6485)
  %6487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6488 = trunc i8 %6487 to i1
  br i1 %6488, label %6489, label %6511

6489:                                             ; preds = %6482
  %6490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6491 = call i32 @fileno(ptr noundef %6490) #9
  %6492 = call i32 @isatty(i32 noundef %6491) #9
  %6493 = icmp ne i32 %6492, 0
  br i1 %6493, label %6494, label %6511

6494:                                             ; preds = %6489
  %6495 = load i32, ptr %150, align 4, !tbaa !5
  %6496 = call ptr @__errno_location() #10
  store i32 %6495, ptr %6496, align 4, !tbaa !5
  %6497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6498 = load i32, ptr @test_count, align 4, !tbaa !5
  %6499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6500 = load i32, ptr %6499, align 4, !tbaa !5
  %6501 = call ptr @s2n_strerror(i32 noundef %6500, ptr noundef @.str.4)
  %6502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6503 = load i32, ptr %6502, align 4, !tbaa !5
  %6504 = call ptr @s2n_strerror_debug(i32 noundef %6503, ptr noundef @.str.4)
  %6505 = call ptr @__errno_location() #10
  %6506 = load i32, ptr %6505, align 4, !tbaa !5
  %6507 = call ptr @strerror(i32 noundef %6506) #9
  %6508 = call ptr @__errno_location() #10
  %6509 = load i32, ptr %6508, align 4, !tbaa !5
  %6510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6497, ptr noundef @.str.2, i32 noundef %6498, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 307, ptr noundef %6501, ptr noundef %6504, ptr noundef %6507, i32 noundef %6509) #9
  br label %6528

6511:                                             ; preds = %6489, %6482
  %6512 = load i32, ptr %150, align 4, !tbaa !5
  %6513 = call ptr @__errno_location() #10
  store i32 %6512, ptr %6513, align 4, !tbaa !5
  %6514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6515 = load i32, ptr @test_count, align 4, !tbaa !5
  %6516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6517 = load i32, ptr %6516, align 4, !tbaa !5
  %6518 = call ptr @s2n_strerror(i32 noundef %6517, ptr noundef @.str.4)
  %6519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6520 = load i32, ptr %6519, align 4, !tbaa !5
  %6521 = call ptr @s2n_strerror_debug(i32 noundef %6520, ptr noundef @.str.4)
  %6522 = call ptr @__errno_location() #10
  %6523 = load i32, ptr %6522, align 4, !tbaa !5
  %6524 = call ptr @strerror(i32 noundef %6523) #9
  %6525 = call ptr @__errno_location() #10
  %6526 = load i32, ptr %6525, align 4, !tbaa !5
  %6527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6514, ptr noundef @.str.5, i32 noundef %6515, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 307, ptr noundef %6518, ptr noundef %6521, ptr noundef %6524, i32 noundef %6526) #9
  br label %6528

6528:                                             ; preds = %6511, %6494
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #9
  br label %6529

6529:                                             ; preds = %6528
  br label %6530

6530:                                             ; preds = %6529
  call void @exit(i32 noundef 1) #11
  unreachable

6531:                                             ; No predecessors!
  br label %6532

6532:                                             ; preds = %6531
  br label %6533

6533:                                             ; preds = %6532, %6473
  br label %6534

6534:                                             ; preds = %6533
  br label %6535

6535:                                             ; preds = %6534
  br label %6536

6536:                                             ; preds = %6535
  %6537 = load i32, ptr @test_count, align 4, !tbaa !5
  %6538 = add nsw i32 %6537, 1
  store i32 %6538, ptr @test_count, align 4, !tbaa !5
  %6539 = load ptr, ptr %137, align 8, !tbaa !9
  %6540 = load ptr, ptr %138, align 8, !tbaa !9
  %6541 = call i32 @s2n_connections_set_io_pair(ptr noundef %6539, ptr noundef %6540, ptr noundef %144)
  %6542 = icmp eq i32 %6541, -1
  br i1 %6542, label %6543, label %6596

6543:                                             ; preds = %6536
  br label %6544

6544:                                             ; preds = %6543
  br label %6545

6545:                                             ; preds = %6544
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #9
  %6546 = call ptr @__errno_location() #10
  %6547 = load i32, ptr %6546, align 4, !tbaa !5
  store i32 %6547, ptr %151, align 4, !tbaa !5
  %6548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6549 = call i32 @s2n_print_stacktrace(ptr noundef %6548)
  %6550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6551 = trunc i8 %6550 to i1
  br i1 %6551, label %6552, label %6574

6552:                                             ; preds = %6545
  %6553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6554 = call i32 @fileno(ptr noundef %6553) #9
  %6555 = call i32 @isatty(i32 noundef %6554) #9
  %6556 = icmp ne i32 %6555, 0
  br i1 %6556, label %6557, label %6574

6557:                                             ; preds = %6552
  %6558 = load i32, ptr %151, align 4, !tbaa !5
  %6559 = call ptr @__errno_location() #10
  store i32 %6558, ptr %6559, align 4, !tbaa !5
  %6560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6561 = load i32, ptr @test_count, align 4, !tbaa !5
  %6562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6563 = load i32, ptr %6562, align 4, !tbaa !5
  %6564 = call ptr @s2n_strerror(i32 noundef %6563, ptr noundef @.str.4)
  %6565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6566 = load i32, ptr %6565, align 4, !tbaa !5
  %6567 = call ptr @s2n_strerror_debug(i32 noundef %6566, ptr noundef @.str.4)
  %6568 = call ptr @__errno_location() #10
  %6569 = load i32, ptr %6568, align 4, !tbaa !5
  %6570 = call ptr @strerror(i32 noundef %6569) #9
  %6571 = call ptr @__errno_location() #10
  %6572 = load i32, ptr %6571, align 4, !tbaa !5
  %6573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6560, ptr noundef @.str.2, i32 noundef %6561, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 309, ptr noundef %6564, ptr noundef %6567, ptr noundef %6570, i32 noundef %6572) #9
  br label %6591

6574:                                             ; preds = %6552, %6545
  %6575 = load i32, ptr %151, align 4, !tbaa !5
  %6576 = call ptr @__errno_location() #10
  store i32 %6575, ptr %6576, align 4, !tbaa !5
  %6577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6578 = load i32, ptr @test_count, align 4, !tbaa !5
  %6579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6580 = load i32, ptr %6579, align 4, !tbaa !5
  %6581 = call ptr @s2n_strerror(i32 noundef %6580, ptr noundef @.str.4)
  %6582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6583 = load i32, ptr %6582, align 4, !tbaa !5
  %6584 = call ptr @s2n_strerror_debug(i32 noundef %6583, ptr noundef @.str.4)
  %6585 = call ptr @__errno_location() #10
  %6586 = load i32, ptr %6585, align 4, !tbaa !5
  %6587 = call ptr @strerror(i32 noundef %6586) #9
  %6588 = call ptr @__errno_location() #10
  %6589 = load i32, ptr %6588, align 4, !tbaa !5
  %6590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6577, ptr noundef @.str.5, i32 noundef %6578, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 309, ptr noundef %6581, ptr noundef %6584, ptr noundef %6587, i32 noundef %6589) #9
  br label %6591

6591:                                             ; preds = %6574, %6557
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #9
  br label %6592

6592:                                             ; preds = %6591
  br label %6593

6593:                                             ; preds = %6592
  call void @exit(i32 noundef 1) #11
  unreachable

6594:                                             ; No predecessors!
  br label %6595

6595:                                             ; preds = %6594
  br label %6596

6596:                                             ; preds = %6595, %6536
  br label %6597

6597:                                             ; preds = %6596
  br label %6598

6598:                                             ; preds = %6597
  br label %6599

6599:                                             ; preds = %6598
  %6600 = load i32, ptr @test_count, align 4, !tbaa !5
  %6601 = add nsw i32 %6600, 1
  store i32 %6601, ptr @test_count, align 4, !tbaa !5
  %6602 = load ptr, ptr %138, align 8, !tbaa !9
  %6603 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %6602, i32 noundef 2)
  %6604 = icmp eq i32 %6603, -1
  br i1 %6604, label %6605, label %6658

6605:                                             ; preds = %6599
  br label %6606

6606:                                             ; preds = %6605
  br label %6607

6607:                                             ; preds = %6606
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #9
  %6608 = call ptr @__errno_location() #10
  %6609 = load i32, ptr %6608, align 4, !tbaa !5
  store i32 %6609, ptr %152, align 4, !tbaa !5
  %6610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6611 = call i32 @s2n_print_stacktrace(ptr noundef %6610)
  %6612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6613 = trunc i8 %6612 to i1
  br i1 %6613, label %6614, label %6636

6614:                                             ; preds = %6607
  %6615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6616 = call i32 @fileno(ptr noundef %6615) #9
  %6617 = call i32 @isatty(i32 noundef %6616) #9
  %6618 = icmp ne i32 %6617, 0
  br i1 %6618, label %6619, label %6636

6619:                                             ; preds = %6614
  %6620 = load i32, ptr %152, align 4, !tbaa !5
  %6621 = call ptr @__errno_location() #10
  store i32 %6620, ptr %6621, align 4, !tbaa !5
  %6622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6623 = load i32, ptr @test_count, align 4, !tbaa !5
  %6624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6625 = load i32, ptr %6624, align 4, !tbaa !5
  %6626 = call ptr @s2n_strerror(i32 noundef %6625, ptr noundef @.str.4)
  %6627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6628 = load i32, ptr %6627, align 4, !tbaa !5
  %6629 = call ptr @s2n_strerror_debug(i32 noundef %6628, ptr noundef @.str.4)
  %6630 = call ptr @__errno_location() #10
  %6631 = load i32, ptr %6630, align 4, !tbaa !5
  %6632 = call ptr @strerror(i32 noundef %6631) #9
  %6633 = call ptr @__errno_location() #10
  %6634 = load i32, ptr %6633, align 4, !tbaa !5
  %6635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6622, ptr noundef @.str.2, i32 noundef %6623, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 312, ptr noundef %6626, ptr noundef %6629, ptr noundef %6632, i32 noundef %6634) #9
  br label %6653

6636:                                             ; preds = %6614, %6607
  %6637 = load i32, ptr %152, align 4, !tbaa !5
  %6638 = call ptr @__errno_location() #10
  store i32 %6637, ptr %6638, align 4, !tbaa !5
  %6639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6640 = load i32, ptr @test_count, align 4, !tbaa !5
  %6641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6642 = load i32, ptr %6641, align 4, !tbaa !5
  %6643 = call ptr @s2n_strerror(i32 noundef %6642, ptr noundef @.str.4)
  %6644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6645 = load i32, ptr %6644, align 4, !tbaa !5
  %6646 = call ptr @s2n_strerror_debug(i32 noundef %6645, ptr noundef @.str.4)
  %6647 = call ptr @__errno_location() #10
  %6648 = load i32, ptr %6647, align 4, !tbaa !5
  %6649 = call ptr @strerror(i32 noundef %6648) #9
  %6650 = call ptr @__errno_location() #10
  %6651 = load i32, ptr %6650, align 4, !tbaa !5
  %6652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6639, ptr noundef @.str.5, i32 noundef %6640, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 312, ptr noundef %6643, ptr noundef %6646, ptr noundef %6649, i32 noundef %6651) #9
  br label %6653

6653:                                             ; preds = %6636, %6619
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #9
  br label %6654

6654:                                             ; preds = %6653
  br label %6655

6655:                                             ; preds = %6654
  call void @exit(i32 noundef 1) #11
  unreachable

6656:                                             ; No predecessors!
  br label %6657

6657:                                             ; preds = %6656
  br label %6658

6658:                                             ; preds = %6657, %6599
  br label %6659

6659:                                             ; preds = %6658
  br label %6660

6660:                                             ; preds = %6659
  br label %6661

6661:                                             ; preds = %6660
  %6662 = load i32, ptr @test_count, align 4, !tbaa !5
  %6663 = add nsw i32 %6662, 1
  store i32 %6663, ptr @test_count, align 4, !tbaa !5
  %6664 = load ptr, ptr %138, align 8, !tbaa !9
  %6665 = load ptr, ptr %137, align 8, !tbaa !9
  %6666 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %6664, ptr noundef %6665)
  %6667 = icmp eq i32 %6666, -1
  br i1 %6667, label %6668, label %6721

6668:                                             ; preds = %6661
  br label %6669

6669:                                             ; preds = %6668
  br label %6670

6670:                                             ; preds = %6669
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #9
  %6671 = call ptr @__errno_location() #10
  %6672 = load i32, ptr %6671, align 4, !tbaa !5
  store i32 %6672, ptr %153, align 4, !tbaa !5
  %6673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6674 = call i32 @s2n_print_stacktrace(ptr noundef %6673)
  %6675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6676 = trunc i8 %6675 to i1
  br i1 %6676, label %6677, label %6699

6677:                                             ; preds = %6670
  %6678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6679 = call i32 @fileno(ptr noundef %6678) #9
  %6680 = call i32 @isatty(i32 noundef %6679) #9
  %6681 = icmp ne i32 %6680, 0
  br i1 %6681, label %6682, label %6699

6682:                                             ; preds = %6677
  %6683 = load i32, ptr %153, align 4, !tbaa !5
  %6684 = call ptr @__errno_location() #10
  store i32 %6683, ptr %6684, align 4, !tbaa !5
  %6685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6686 = load i32, ptr @test_count, align 4, !tbaa !5
  %6687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6688 = load i32, ptr %6687, align 4, !tbaa !5
  %6689 = call ptr @s2n_strerror(i32 noundef %6688, ptr noundef @.str.4)
  %6690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6691 = load i32, ptr %6690, align 4, !tbaa !5
  %6692 = call ptr @s2n_strerror_debug(i32 noundef %6691, ptr noundef @.str.4)
  %6693 = call ptr @__errno_location() #10
  %6694 = load i32, ptr %6693, align 4, !tbaa !5
  %6695 = call ptr @strerror(i32 noundef %6694) #9
  %6696 = call ptr @__errno_location() #10
  %6697 = load i32, ptr %6696, align 4, !tbaa !5
  %6698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6685, ptr noundef @.str.2, i32 noundef %6686, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 315, ptr noundef %6689, ptr noundef %6692, ptr noundef %6695, i32 noundef %6697) #9
  br label %6716

6699:                                             ; preds = %6677, %6670
  %6700 = load i32, ptr %153, align 4, !tbaa !5
  %6701 = call ptr @__errno_location() #10
  store i32 %6700, ptr %6701, align 4, !tbaa !5
  %6702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6703 = load i32, ptr @test_count, align 4, !tbaa !5
  %6704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6705 = load i32, ptr %6704, align 4, !tbaa !5
  %6706 = call ptr @s2n_strerror(i32 noundef %6705, ptr noundef @.str.4)
  %6707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6708 = load i32, ptr %6707, align 4, !tbaa !5
  %6709 = call ptr @s2n_strerror_debug(i32 noundef %6708, ptr noundef @.str.4)
  %6710 = call ptr @__errno_location() #10
  %6711 = load i32, ptr %6710, align 4, !tbaa !5
  %6712 = call ptr @strerror(i32 noundef %6711) #9
  %6713 = call ptr @__errno_location() #10
  %6714 = load i32, ptr %6713, align 4, !tbaa !5
  %6715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6702, ptr noundef @.str.5, i32 noundef %6703, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 315, ptr noundef %6706, ptr noundef %6709, ptr noundef %6712, i32 noundef %6714) #9
  br label %6716

6716:                                             ; preds = %6699, %6682
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #9
  br label %6717

6717:                                             ; preds = %6716
  br label %6718

6718:                                             ; preds = %6717
  call void @exit(i32 noundef 1) #11
  unreachable

6719:                                             ; No predecessors!
  br label %6720

6720:                                             ; preds = %6719
  br label %6721

6721:                                             ; preds = %6720, %6661
  br label %6722

6722:                                             ; preds = %6721
  br label %6723

6723:                                             ; preds = %6722
  br label %6724

6724:                                             ; preds = %6723
  %6725 = load i32, ptr @test_count, align 4, !tbaa !5
  %6726 = add nsw i32 %6725, 1
  store i32 %6726, ptr @test_count, align 4, !tbaa !5
  %6727 = load ptr, ptr %138, align 8, !tbaa !9
  %6728 = call i32 @s2n_connection_client_cert_used(ptr noundef %6727)
  %6729 = icmp ne i32 %6728, 0
  br i1 %6729, label %6783, label %6730

6730:                                             ; preds = %6724
  br label %6731

6731:                                             ; preds = %6730
  br label %6732

6732:                                             ; preds = %6731
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #9
  %6733 = call ptr @__errno_location() #10
  %6734 = load i32, ptr %6733, align 4, !tbaa !5
  store i32 %6734, ptr %154, align 4, !tbaa !5
  %6735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6736 = call i32 @s2n_print_stacktrace(ptr noundef %6735)
  %6737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6738 = trunc i8 %6737 to i1
  br i1 %6738, label %6739, label %6761

6739:                                             ; preds = %6732
  %6740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6741 = call i32 @fileno(ptr noundef %6740) #9
  %6742 = call i32 @isatty(i32 noundef %6741) #9
  %6743 = icmp ne i32 %6742, 0
  br i1 %6743, label %6744, label %6761

6744:                                             ; preds = %6739
  %6745 = load i32, ptr %154, align 4, !tbaa !5
  %6746 = call ptr @__errno_location() #10
  store i32 %6745, ptr %6746, align 4, !tbaa !5
  %6747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6748 = load i32, ptr @test_count, align 4, !tbaa !5
  %6749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  %6751 = call ptr @s2n_strerror(i32 noundef %6750, ptr noundef @.str.4)
  %6752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6753 = load i32, ptr %6752, align 4, !tbaa !5
  %6754 = call ptr @s2n_strerror_debug(i32 noundef %6753, ptr noundef @.str.4)
  %6755 = call ptr @__errno_location() #10
  %6756 = load i32, ptr %6755, align 4, !tbaa !5
  %6757 = call ptr @strerror(i32 noundef %6756) #9
  %6758 = call ptr @__errno_location() #10
  %6759 = load i32, ptr %6758, align 4, !tbaa !5
  %6760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6747, ptr noundef @.str.2, i32 noundef %6748, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 318, ptr noundef %6751, ptr noundef %6754, ptr noundef %6757, i32 noundef %6759) #9
  br label %6778

6761:                                             ; preds = %6739, %6732
  %6762 = load i32, ptr %154, align 4, !tbaa !5
  %6763 = call ptr @__errno_location() #10
  store i32 %6762, ptr %6763, align 4, !tbaa !5
  %6764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6765 = load i32, ptr @test_count, align 4, !tbaa !5
  %6766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6767 = load i32, ptr %6766, align 4, !tbaa !5
  %6768 = call ptr @s2n_strerror(i32 noundef %6767, ptr noundef @.str.4)
  %6769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6770 = load i32, ptr %6769, align 4, !tbaa !5
  %6771 = call ptr @s2n_strerror_debug(i32 noundef %6770, ptr noundef @.str.4)
  %6772 = call ptr @__errno_location() #10
  %6773 = load i32, ptr %6772, align 4, !tbaa !5
  %6774 = call ptr @strerror(i32 noundef %6773) #9
  %6775 = call ptr @__errno_location() #10
  %6776 = load i32, ptr %6775, align 4, !tbaa !5
  %6777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6764, ptr noundef @.str.5, i32 noundef %6765, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 318, ptr noundef %6768, ptr noundef %6771, ptr noundef %6774, i32 noundef %6776) #9
  br label %6778

6778:                                             ; preds = %6761, %6744
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #9
  br label %6779

6779:                                             ; preds = %6778
  br label %6780

6780:                                             ; preds = %6779
  call void @exit(i32 noundef 1) #11
  unreachable

6781:                                             ; No predecessors!
  br label %6782

6782:                                             ; preds = %6781
  br label %6783

6783:                                             ; preds = %6782, %6724
  br label %6784

6784:                                             ; preds = %6783
  br label %6785

6785:                                             ; preds = %6784
  br label %6786

6786:                                             ; preds = %6785
  %6787 = load i32, ptr @test_count, align 4, !tbaa !5
  %6788 = add nsw i32 %6787, 1
  store i32 %6788, ptr @test_count, align 4, !tbaa !5
  %6789 = load ptr, ptr %137, align 8, !tbaa !9
  %6790 = call i32 @s2n_connection_client_cert_used(ptr noundef %6789)
  %6791 = icmp ne i32 %6790, 0
  br i1 %6791, label %6845, label %6792

6792:                                             ; preds = %6786
  br label %6793

6793:                                             ; preds = %6792
  br label %6794

6794:                                             ; preds = %6793
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #9
  %6795 = call ptr @__errno_location() #10
  %6796 = load i32, ptr %6795, align 4, !tbaa !5
  store i32 %6796, ptr %155, align 4, !tbaa !5
  %6797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6798 = call i32 @s2n_print_stacktrace(ptr noundef %6797)
  %6799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6800 = trunc i8 %6799 to i1
  br i1 %6800, label %6801, label %6823

6801:                                             ; preds = %6794
  %6802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6803 = call i32 @fileno(ptr noundef %6802) #9
  %6804 = call i32 @isatty(i32 noundef %6803) #9
  %6805 = icmp ne i32 %6804, 0
  br i1 %6805, label %6806, label %6823

6806:                                             ; preds = %6801
  %6807 = load i32, ptr %155, align 4, !tbaa !5
  %6808 = call ptr @__errno_location() #10
  store i32 %6807, ptr %6808, align 4, !tbaa !5
  %6809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6810 = load i32, ptr @test_count, align 4, !tbaa !5
  %6811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  %6813 = call ptr @s2n_strerror(i32 noundef %6812, ptr noundef @.str.4)
  %6814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  %6816 = call ptr @s2n_strerror_debug(i32 noundef %6815, ptr noundef @.str.4)
  %6817 = call ptr @__errno_location() #10
  %6818 = load i32, ptr %6817, align 4, !tbaa !5
  %6819 = call ptr @strerror(i32 noundef %6818) #9
  %6820 = call ptr @__errno_location() #10
  %6821 = load i32, ptr %6820, align 4, !tbaa !5
  %6822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6809, ptr noundef @.str.2, i32 noundef %6810, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 319, ptr noundef %6813, ptr noundef %6816, ptr noundef %6819, i32 noundef %6821) #9
  br label %6840

6823:                                             ; preds = %6801, %6794
  %6824 = load i32, ptr %155, align 4, !tbaa !5
  %6825 = call ptr @__errno_location() #10
  store i32 %6824, ptr %6825, align 4, !tbaa !5
  %6826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6827 = load i32, ptr @test_count, align 4, !tbaa !5
  %6828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6829 = load i32, ptr %6828, align 4, !tbaa !5
  %6830 = call ptr @s2n_strerror(i32 noundef %6829, ptr noundef @.str.4)
  %6831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6832 = load i32, ptr %6831, align 4, !tbaa !5
  %6833 = call ptr @s2n_strerror_debug(i32 noundef %6832, ptr noundef @.str.4)
  %6834 = call ptr @__errno_location() #10
  %6835 = load i32, ptr %6834, align 4, !tbaa !5
  %6836 = call ptr @strerror(i32 noundef %6835) #9
  %6837 = call ptr @__errno_location() #10
  %6838 = load i32, ptr %6837, align 4, !tbaa !5
  %6839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6826, ptr noundef @.str.5, i32 noundef %6827, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 319, ptr noundef %6830, ptr noundef %6833, ptr noundef %6836, i32 noundef %6838) #9
  br label %6840

6840:                                             ; preds = %6823, %6806
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #9
  br label %6841

6841:                                             ; preds = %6840
  br label %6842

6842:                                             ; preds = %6841
  call void @exit(i32 noundef 1) #11
  unreachable

6843:                                             ; No predecessors!
  br label %6844

6844:                                             ; preds = %6843
  br label %6845

6845:                                             ; preds = %6844, %6786
  br label %6846

6846:                                             ; preds = %6845
  br label %6847

6847:                                             ; preds = %6846
  br label %6848

6848:                                             ; preds = %6847
  %6849 = load i32, ptr @test_count, align 4, !tbaa !5
  %6850 = add nsw i32 %6849, 1
  store i32 %6850, ptr @test_count, align 4, !tbaa !5
  %6851 = load ptr, ptr %137, align 8, !tbaa !9
  %6852 = call i32 @s2n_connection_free(ptr noundef %6851)
  %6853 = icmp eq i32 %6852, -1
  br i1 %6853, label %6854, label %6907

6854:                                             ; preds = %6848
  br label %6855

6855:                                             ; preds = %6854
  br label %6856

6856:                                             ; preds = %6855
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #9
  %6857 = call ptr @__errno_location() #10
  %6858 = load i32, ptr %6857, align 4, !tbaa !5
  store i32 %6858, ptr %156, align 4, !tbaa !5
  %6859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6860 = call i32 @s2n_print_stacktrace(ptr noundef %6859)
  %6861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6862 = trunc i8 %6861 to i1
  br i1 %6862, label %6863, label %6885

6863:                                             ; preds = %6856
  %6864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6865 = call i32 @fileno(ptr noundef %6864) #9
  %6866 = call i32 @isatty(i32 noundef %6865) #9
  %6867 = icmp ne i32 %6866, 0
  br i1 %6867, label %6868, label %6885

6868:                                             ; preds = %6863
  %6869 = load i32, ptr %156, align 4, !tbaa !5
  %6870 = call ptr @__errno_location() #10
  store i32 %6869, ptr %6870, align 4, !tbaa !5
  %6871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6872 = load i32, ptr @test_count, align 4, !tbaa !5
  %6873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6874 = load i32, ptr %6873, align 4, !tbaa !5
  %6875 = call ptr @s2n_strerror(i32 noundef %6874, ptr noundef @.str.4)
  %6876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6877 = load i32, ptr %6876, align 4, !tbaa !5
  %6878 = call ptr @s2n_strerror_debug(i32 noundef %6877, ptr noundef @.str.4)
  %6879 = call ptr @__errno_location() #10
  %6880 = load i32, ptr %6879, align 4, !tbaa !5
  %6881 = call ptr @strerror(i32 noundef %6880) #9
  %6882 = call ptr @__errno_location() #10
  %6883 = load i32, ptr %6882, align 4, !tbaa !5
  %6884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6871, ptr noundef @.str.2, i32 noundef %6872, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 321, ptr noundef %6875, ptr noundef %6878, ptr noundef %6881, i32 noundef %6883) #9
  br label %6902

6885:                                             ; preds = %6863, %6856
  %6886 = load i32, ptr %156, align 4, !tbaa !5
  %6887 = call ptr @__errno_location() #10
  store i32 %6886, ptr %6887, align 4, !tbaa !5
  %6888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6889 = load i32, ptr @test_count, align 4, !tbaa !5
  %6890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6891 = load i32, ptr %6890, align 4, !tbaa !5
  %6892 = call ptr @s2n_strerror(i32 noundef %6891, ptr noundef @.str.4)
  %6893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6894 = load i32, ptr %6893, align 4, !tbaa !5
  %6895 = call ptr @s2n_strerror_debug(i32 noundef %6894, ptr noundef @.str.4)
  %6896 = call ptr @__errno_location() #10
  %6897 = load i32, ptr %6896, align 4, !tbaa !5
  %6898 = call ptr @strerror(i32 noundef %6897) #9
  %6899 = call ptr @__errno_location() #10
  %6900 = load i32, ptr %6899, align 4, !tbaa !5
  %6901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6888, ptr noundef @.str.5, i32 noundef %6889, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 321, ptr noundef %6892, ptr noundef %6895, ptr noundef %6898, i32 noundef %6900) #9
  br label %6902

6902:                                             ; preds = %6885, %6868
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #9
  br label %6903

6903:                                             ; preds = %6902
  br label %6904

6904:                                             ; preds = %6903
  call void @exit(i32 noundef 1) #11
  unreachable

6905:                                             ; No predecessors!
  br label %6906

6906:                                             ; preds = %6905
  br label %6907

6907:                                             ; preds = %6906, %6848
  br label %6908

6908:                                             ; preds = %6907
  br label %6909

6909:                                             ; preds = %6908
  br label %6910

6910:                                             ; preds = %6909
  %6911 = load i32, ptr @test_count, align 4, !tbaa !5
  %6912 = add nsw i32 %6911, 1
  store i32 %6912, ptr @test_count, align 4, !tbaa !5
  %6913 = load ptr, ptr %138, align 8, !tbaa !9
  %6914 = call i32 @s2n_connection_free(ptr noundef %6913)
  %6915 = icmp eq i32 %6914, -1
  br i1 %6915, label %6916, label %6969

6916:                                             ; preds = %6910
  br label %6917

6917:                                             ; preds = %6916
  br label %6918

6918:                                             ; preds = %6917
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #9
  %6919 = call ptr @__errno_location() #10
  %6920 = load i32, ptr %6919, align 4, !tbaa !5
  store i32 %6920, ptr %157, align 4, !tbaa !5
  %6921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6922 = call i32 @s2n_print_stacktrace(ptr noundef %6921)
  %6923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6924 = trunc i8 %6923 to i1
  br i1 %6924, label %6925, label %6947

6925:                                             ; preds = %6918
  %6926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6927 = call i32 @fileno(ptr noundef %6926) #9
  %6928 = call i32 @isatty(i32 noundef %6927) #9
  %6929 = icmp ne i32 %6928, 0
  br i1 %6929, label %6930, label %6947

6930:                                             ; preds = %6925
  %6931 = load i32, ptr %157, align 4, !tbaa !5
  %6932 = call ptr @__errno_location() #10
  store i32 %6931, ptr %6932, align 4, !tbaa !5
  %6933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6934 = load i32, ptr @test_count, align 4, !tbaa !5
  %6935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6936 = load i32, ptr %6935, align 4, !tbaa !5
  %6937 = call ptr @s2n_strerror(i32 noundef %6936, ptr noundef @.str.4)
  %6938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6939 = load i32, ptr %6938, align 4, !tbaa !5
  %6940 = call ptr @s2n_strerror_debug(i32 noundef %6939, ptr noundef @.str.4)
  %6941 = call ptr @__errno_location() #10
  %6942 = load i32, ptr %6941, align 4, !tbaa !5
  %6943 = call ptr @strerror(i32 noundef %6942) #9
  %6944 = call ptr @__errno_location() #10
  %6945 = load i32, ptr %6944, align 4, !tbaa !5
  %6946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6933, ptr noundef @.str.2, i32 noundef %6934, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 322, ptr noundef %6937, ptr noundef %6940, ptr noundef %6943, i32 noundef %6945) #9
  br label %6964

6947:                                             ; preds = %6925, %6918
  %6948 = load i32, ptr %157, align 4, !tbaa !5
  %6949 = call ptr @__errno_location() #10
  store i32 %6948, ptr %6949, align 4, !tbaa !5
  %6950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6951 = load i32, ptr @test_count, align 4, !tbaa !5
  %6952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6953 = load i32, ptr %6952, align 4, !tbaa !5
  %6954 = call ptr @s2n_strerror(i32 noundef %6953, ptr noundef @.str.4)
  %6955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6956 = load i32, ptr %6955, align 4, !tbaa !5
  %6957 = call ptr @s2n_strerror_debug(i32 noundef %6956, ptr noundef @.str.4)
  %6958 = call ptr @__errno_location() #10
  %6959 = load i32, ptr %6958, align 4, !tbaa !5
  %6960 = call ptr @strerror(i32 noundef %6959) #9
  %6961 = call ptr @__errno_location() #10
  %6962 = load i32, ptr %6961, align 4, !tbaa !5
  %6963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6950, ptr noundef @.str.5, i32 noundef %6951, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 322, ptr noundef %6954, ptr noundef %6957, ptr noundef %6960, i32 noundef %6962) #9
  br label %6964

6964:                                             ; preds = %6947, %6930
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #9
  br label %6965

6965:                                             ; preds = %6964
  br label %6966

6966:                                             ; preds = %6965
  call void @exit(i32 noundef 1) #11
  unreachable

6967:                                             ; No predecessors!
  br label %6968

6968:                                             ; preds = %6967
  br label %6969

6969:                                             ; preds = %6968, %6910
  br label %6970

6970:                                             ; preds = %6969
  br label %6971

6971:                                             ; preds = %6970
  br label %6972

6972:                                             ; preds = %6971
  %6973 = load i32, ptr @test_count, align 4, !tbaa !5
  %6974 = add nsw i32 %6973, 1
  store i32 %6974, ptr @test_count, align 4, !tbaa !5
  %6975 = call i32 @s2n_io_pair_close(ptr noundef %144)
  %6976 = icmp eq i32 %6975, -1
  br i1 %6976, label %6977, label %7030

6977:                                             ; preds = %6972
  br label %6978

6978:                                             ; preds = %6977
  br label %6979

6979:                                             ; preds = %6978
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #9
  %6980 = call ptr @__errno_location() #10
  %6981 = load i32, ptr %6980, align 4, !tbaa !5
  store i32 %6981, ptr %158, align 4, !tbaa !5
  %6982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6983 = call i32 @s2n_print_stacktrace(ptr noundef %6982)
  %6984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6985 = trunc i8 %6984 to i1
  br i1 %6985, label %6986, label %7008

6986:                                             ; preds = %6979
  %6987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6988 = call i32 @fileno(ptr noundef %6987) #9
  %6989 = call i32 @isatty(i32 noundef %6988) #9
  %6990 = icmp ne i32 %6989, 0
  br i1 %6990, label %6991, label %7008

6991:                                             ; preds = %6986
  %6992 = load i32, ptr %158, align 4, !tbaa !5
  %6993 = call ptr @__errno_location() #10
  store i32 %6992, ptr %6993, align 4, !tbaa !5
  %6994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6995 = load i32, ptr @test_count, align 4, !tbaa !5
  %6996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6997 = load i32, ptr %6996, align 4, !tbaa !5
  %6998 = call ptr @s2n_strerror(i32 noundef %6997, ptr noundef @.str.4)
  %6999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7000 = load i32, ptr %6999, align 4, !tbaa !5
  %7001 = call ptr @s2n_strerror_debug(i32 noundef %7000, ptr noundef @.str.4)
  %7002 = call ptr @__errno_location() #10
  %7003 = load i32, ptr %7002, align 4, !tbaa !5
  %7004 = call ptr @strerror(i32 noundef %7003) #9
  %7005 = call ptr @__errno_location() #10
  %7006 = load i32, ptr %7005, align 4, !tbaa !5
  %7007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6994, ptr noundef @.str.2, i32 noundef %6995, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 323, ptr noundef %6998, ptr noundef %7001, ptr noundef %7004, i32 noundef %7006) #9
  br label %7025

7008:                                             ; preds = %6986, %6979
  %7009 = load i32, ptr %158, align 4, !tbaa !5
  %7010 = call ptr @__errno_location() #10
  store i32 %7009, ptr %7010, align 4, !tbaa !5
  %7011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7012 = load i32, ptr @test_count, align 4, !tbaa !5
  %7013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7014 = load i32, ptr %7013, align 4, !tbaa !5
  %7015 = call ptr @s2n_strerror(i32 noundef %7014, ptr noundef @.str.4)
  %7016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7017 = load i32, ptr %7016, align 4, !tbaa !5
  %7018 = call ptr @s2n_strerror_debug(i32 noundef %7017, ptr noundef @.str.4)
  %7019 = call ptr @__errno_location() #10
  %7020 = load i32, ptr %7019, align 4, !tbaa !5
  %7021 = call ptr @strerror(i32 noundef %7020) #9
  %7022 = call ptr @__errno_location() #10
  %7023 = load i32, ptr %7022, align 4, !tbaa !5
  %7024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7011, ptr noundef @.str.5, i32 noundef %7012, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 323, ptr noundef %7015, ptr noundef %7018, ptr noundef %7021, i32 noundef %7023) #9
  br label %7025

7025:                                             ; preds = %7008, %6991
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #9
  br label %7026

7026:                                             ; preds = %7025
  br label %7027

7027:                                             ; preds = %7026
  call void @exit(i32 noundef 1) #11
  unreachable

7028:                                             ; No predecessors!
  br label %7029

7029:                                             ; preds = %7028
  br label %7030

7030:                                             ; preds = %7029, %6972
  br label %7031

7031:                                             ; preds = %7030
  br label %7032

7032:                                             ; preds = %7031
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #9
  store i32 0, ptr %42, align 4
  br label %7033

7033:                                             ; preds = %7032, %6093
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %136) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %135) #9
  %7034 = load i32, ptr %42, align 4
  switch i32 %7034, label %10829 [
    i32 0, label %7035
    i32 563, label %7036
  ]

7035:                                             ; preds = %7033
  br label %7036

7036:                                             ; preds = %7035, %7033
  %7037 = load i32, ptr %134, align 4, !tbaa !5
  %7038 = add nsw i32 %7037, 1
  store i32 %7038, ptr %134, align 4, !tbaa !5
  br label %6007, !llvm.loop !32

7039:                                             ; preds = %6014
  br label %7040

7040:                                             ; preds = %7039
  %7041 = load i32, ptr @test_count, align 4, !tbaa !5
  %7042 = add nsw i32 %7041, 1
  store i32 %7042, ptr @test_count, align 4, !tbaa !5
  %7043 = load ptr, ptr %6, align 8, !tbaa !9
  %7044 = call i32 @s2n_config_free(ptr noundef %7043)
  %7045 = icmp eq i32 %7044, -1
  br i1 %7045, label %7046, label %7099

7046:                                             ; preds = %7040
  br label %7047

7047:                                             ; preds = %7046
  br label %7048

7048:                                             ; preds = %7047
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #9
  %7049 = call ptr @__errno_location() #10
  %7050 = load i32, ptr %7049, align 4, !tbaa !5
  store i32 %7050, ptr %159, align 4, !tbaa !5
  %7051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7052 = call i32 @s2n_print_stacktrace(ptr noundef %7051)
  %7053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7054 = trunc i8 %7053 to i1
  br i1 %7054, label %7055, label %7077

7055:                                             ; preds = %7048
  %7056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7057 = call i32 @fileno(ptr noundef %7056) #9
  %7058 = call i32 @isatty(i32 noundef %7057) #9
  %7059 = icmp ne i32 %7058, 0
  br i1 %7059, label %7060, label %7077

7060:                                             ; preds = %7055
  %7061 = load i32, ptr %159, align 4, !tbaa !5
  %7062 = call ptr @__errno_location() #10
  store i32 %7061, ptr %7062, align 4, !tbaa !5
  %7063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7064 = load i32, ptr @test_count, align 4, !tbaa !5
  %7065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7066 = load i32, ptr %7065, align 4, !tbaa !5
  %7067 = call ptr @s2n_strerror(i32 noundef %7066, ptr noundef @.str.4)
  %7068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7069 = load i32, ptr %7068, align 4, !tbaa !5
  %7070 = call ptr @s2n_strerror_debug(i32 noundef %7069, ptr noundef @.str.4)
  %7071 = call ptr @__errno_location() #10
  %7072 = load i32, ptr %7071, align 4, !tbaa !5
  %7073 = call ptr @strerror(i32 noundef %7072) #9
  %7074 = call ptr @__errno_location() #10
  %7075 = load i32, ptr %7074, align 4, !tbaa !5
  %7076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7063, ptr noundef @.str.2, i32 noundef %7064, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 326, ptr noundef %7067, ptr noundef %7070, ptr noundef %7073, i32 noundef %7075) #9
  br label %7094

7077:                                             ; preds = %7055, %7048
  %7078 = load i32, ptr %159, align 4, !tbaa !5
  %7079 = call ptr @__errno_location() #10
  store i32 %7078, ptr %7079, align 4, !tbaa !5
  %7080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7081 = load i32, ptr @test_count, align 4, !tbaa !5
  %7082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7083 = load i32, ptr %7082, align 4, !tbaa !5
  %7084 = call ptr @s2n_strerror(i32 noundef %7083, ptr noundef @.str.4)
  %7085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7086 = load i32, ptr %7085, align 4, !tbaa !5
  %7087 = call ptr @s2n_strerror_debug(i32 noundef %7086, ptr noundef @.str.4)
  %7088 = call ptr @__errno_location() #10
  %7089 = load i32, ptr %7088, align 4, !tbaa !5
  %7090 = call ptr @strerror(i32 noundef %7089) #9
  %7091 = call ptr @__errno_location() #10
  %7092 = load i32, ptr %7091, align 4, !tbaa !5
  %7093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7080, ptr noundef @.str.5, i32 noundef %7081, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 326, ptr noundef %7084, ptr noundef %7087, ptr noundef %7090, i32 noundef %7092) #9
  br label %7094

7094:                                             ; preds = %7077, %7060
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #9
  br label %7095

7095:                                             ; preds = %7094
  br label %7096

7096:                                             ; preds = %7095
  call void @exit(i32 noundef 1) #11
  unreachable

7097:                                             ; No predecessors!
  br label %7098

7098:                                             ; preds = %7097
  br label %7099

7099:                                             ; preds = %7098, %7040
  br label %7100

7100:                                             ; preds = %7099
  br label %7101

7101:                                             ; preds = %7100
  br label %7102

7102:                                             ; preds = %7101
  %7103 = load i32, ptr @test_count, align 4, !tbaa !5
  %7104 = add nsw i32 %7103, 1
  store i32 %7104, ptr @test_count, align 4, !tbaa !5
  %7105 = call ptr @s2n_config_new()
  store ptr %7105, ptr %6, align 8, !tbaa !9
  %7106 = icmp eq ptr %7105, null
  br i1 %7106, label %7107, label %7160

7107:                                             ; preds = %7102
  br label %7108

7108:                                             ; preds = %7107
  br label %7109

7109:                                             ; preds = %7108
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #9
  %7110 = call ptr @__errno_location() #10
  %7111 = load i32, ptr %7110, align 4, !tbaa !5
  store i32 %7111, ptr %160, align 4, !tbaa !5
  %7112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7113 = call i32 @s2n_print_stacktrace(ptr noundef %7112)
  %7114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7115 = trunc i8 %7114 to i1
  br i1 %7115, label %7116, label %7138

7116:                                             ; preds = %7109
  %7117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7118 = call i32 @fileno(ptr noundef %7117) #9
  %7119 = call i32 @isatty(i32 noundef %7118) #9
  %7120 = icmp ne i32 %7119, 0
  br i1 %7120, label %7121, label %7138

7121:                                             ; preds = %7116
  %7122 = load i32, ptr %160, align 4, !tbaa !5
  %7123 = call ptr @__errno_location() #10
  store i32 %7122, ptr %7123, align 4, !tbaa !5
  %7124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7125 = load i32, ptr @test_count, align 4, !tbaa !5
  %7126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7127 = load i32, ptr %7126, align 4, !tbaa !5
  %7128 = call ptr @s2n_strerror(i32 noundef %7127, ptr noundef @.str.4)
  %7129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7130 = load i32, ptr %7129, align 4, !tbaa !5
  %7131 = call ptr @s2n_strerror_debug(i32 noundef %7130, ptr noundef @.str.4)
  %7132 = call ptr @__errno_location() #10
  %7133 = load i32, ptr %7132, align 4, !tbaa !5
  %7134 = call ptr @strerror(i32 noundef %7133) #9
  %7135 = call ptr @__errno_location() #10
  %7136 = load i32, ptr %7135, align 4, !tbaa !5
  %7137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7124, ptr noundef @.str.2, i32 noundef %7125, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 332, ptr noundef %7128, ptr noundef %7131, ptr noundef %7134, i32 noundef %7136) #9
  br label %7155

7138:                                             ; preds = %7116, %7109
  %7139 = load i32, ptr %160, align 4, !tbaa !5
  %7140 = call ptr @__errno_location() #10
  store i32 %7139, ptr %7140, align 4, !tbaa !5
  %7141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7142 = load i32, ptr @test_count, align 4, !tbaa !5
  %7143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7144 = load i32, ptr %7143, align 4, !tbaa !5
  %7145 = call ptr @s2n_strerror(i32 noundef %7144, ptr noundef @.str.4)
  %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_debug(i32 noundef %7147, ptr noundef @.str.4)
  %7149 = call ptr @__errno_location() #10
  %7150 = load i32, ptr %7149, align 4, !tbaa !5
  %7151 = call ptr @strerror(i32 noundef %7150) #9
  %7152 = call ptr @__errno_location() #10
  %7153 = load i32, ptr %7152, align 4, !tbaa !5
  %7154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7141, ptr noundef @.str.5, i32 noundef %7142, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 332, ptr noundef %7145, ptr noundef %7148, ptr noundef %7151, i32 noundef %7153) #9
  br label %7155

7155:                                             ; preds = %7138, %7121
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #9
  br label %7156

7156:                                             ; preds = %7155
  br label %7157

7157:                                             ; preds = %7156
  call void @exit(i32 noundef 1) #11
  unreachable

7158:                                             ; No predecessors!
  br label %7159

7159:                                             ; preds = %7158
  br label %7160

7160:                                             ; preds = %7159, %7102
  br label %7161

7161:                                             ; preds = %7160
  br label %7162

7162:                                             ; preds = %7161
  br label %7163

7163:                                             ; preds = %7162
  %7164 = load i32, ptr @test_count, align 4, !tbaa !5
  %7165 = add nsw i32 %7164, 1
  store i32 %7165, ptr @test_count, align 4, !tbaa !5
  %7166 = load ptr, ptr %6, align 8, !tbaa !9
  %7167 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %7166, ptr noundef @.str.12)
  %7168 = icmp eq i32 %7167, -1
  br i1 %7168, label %7169, label %7222

7169:                                             ; preds = %7163
  br label %7170

7170:                                             ; preds = %7169
  br label %7171

7171:                                             ; preds = %7170
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #9
  %7172 = call ptr @__errno_location() #10
  %7173 = load i32, ptr %7172, align 4, !tbaa !5
  store i32 %7173, ptr %161, align 4, !tbaa !5
  %7174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7175 = call i32 @s2n_print_stacktrace(ptr noundef %7174)
  %7176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7177 = trunc i8 %7176 to i1
  br i1 %7177, label %7178, label %7200

7178:                                             ; preds = %7171
  %7179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7180 = call i32 @fileno(ptr noundef %7179) #9
  %7181 = call i32 @isatty(i32 noundef %7180) #9
  %7182 = icmp ne i32 %7181, 0
  br i1 %7182, label %7183, label %7200

7183:                                             ; preds = %7178
  %7184 = load i32, ptr %161, align 4, !tbaa !5
  %7185 = call ptr @__errno_location() #10
  store i32 %7184, ptr %7185, align 4, !tbaa !5
  %7186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7187 = load i32, ptr @test_count, align 4, !tbaa !5
  %7188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7189 = load i32, ptr %7188, align 4, !tbaa !5
  %7190 = call ptr @s2n_strerror(i32 noundef %7189, ptr noundef @.str.4)
  %7191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7192 = load i32, ptr %7191, align 4, !tbaa !5
  %7193 = call ptr @s2n_strerror_debug(i32 noundef %7192, ptr noundef @.str.4)
  %7194 = call ptr @__errno_location() #10
  %7195 = load i32, ptr %7194, align 4, !tbaa !5
  %7196 = call ptr @strerror(i32 noundef %7195) #9
  %7197 = call ptr @__errno_location() #10
  %7198 = load i32, ptr %7197, align 4, !tbaa !5
  %7199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7186, ptr noundef @.str.2, i32 noundef %7187, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 333, ptr noundef %7190, ptr noundef %7193, ptr noundef %7196, i32 noundef %7198) #9
  br label %7217

7200:                                             ; preds = %7178, %7171
  %7201 = load i32, ptr %161, align 4, !tbaa !5
  %7202 = call ptr @__errno_location() #10
  store i32 %7201, ptr %7202, align 4, !tbaa !5
  %7203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7204 = load i32, ptr @test_count, align 4, !tbaa !5
  %7205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7206 = load i32, ptr %7205, align 4, !tbaa !5
  %7207 = call ptr @s2n_strerror(i32 noundef %7206, ptr noundef @.str.4)
  %7208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7209 = load i32, ptr %7208, align 4, !tbaa !5
  %7210 = call ptr @s2n_strerror_debug(i32 noundef %7209, ptr noundef @.str.4)
  %7211 = call ptr @__errno_location() #10
  %7212 = load i32, ptr %7211, align 4, !tbaa !5
  %7213 = call ptr @strerror(i32 noundef %7212) #9
  %7214 = call ptr @__errno_location() #10
  %7215 = load i32, ptr %7214, align 4, !tbaa !5
  %7216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7203, ptr noundef @.str.5, i32 noundef %7204, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 333, ptr noundef %7207, ptr noundef %7210, ptr noundef %7213, i32 noundef %7215) #9
  br label %7217

7217:                                             ; preds = %7200, %7183
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #9
  br label %7218

7218:                                             ; preds = %7217
  br label %7219

7219:                                             ; preds = %7218
  call void @exit(i32 noundef 1) #11
  unreachable

7220:                                             ; No predecessors!
  br label %7221

7221:                                             ; preds = %7220
  br label %7222

7222:                                             ; preds = %7221, %7163
  br label %7223

7223:                                             ; preds = %7222
  br label %7224

7224:                                             ; preds = %7223
  br label %7225

7225:                                             ; preds = %7224
  %7226 = load i32, ptr @test_count, align 4, !tbaa !5
  %7227 = add nsw i32 %7226, 1
  store i32 %7227, ptr @test_count, align 4, !tbaa !5
  %7228 = load ptr, ptr %6, align 8, !tbaa !9
  %7229 = call i32 @s2n_config_disable_x509_verification(ptr noundef %7228)
  %7230 = icmp eq i32 %7229, -1
  br i1 %7230, label %7231, label %7284

7231:                                             ; preds = %7225
  br label %7232

7232:                                             ; preds = %7231
  br label %7233

7233:                                             ; preds = %7232
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #9
  %7234 = call ptr @__errno_location() #10
  %7235 = load i32, ptr %7234, align 4, !tbaa !5
  store i32 %7235, ptr %162, align 4, !tbaa !5
  %7236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7237 = call i32 @s2n_print_stacktrace(ptr noundef %7236)
  %7238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7239 = trunc i8 %7238 to i1
  br i1 %7239, label %7240, label %7262

7240:                                             ; preds = %7233
  %7241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7242 = call i32 @fileno(ptr noundef %7241) #9
  %7243 = call i32 @isatty(i32 noundef %7242) #9
  %7244 = icmp ne i32 %7243, 0
  br i1 %7244, label %7245, label %7262

7245:                                             ; preds = %7240
  %7246 = load i32, ptr %162, align 4, !tbaa !5
  %7247 = call ptr @__errno_location() #10
  store i32 %7246, ptr %7247, align 4, !tbaa !5
  %7248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7249 = load i32, ptr @test_count, align 4, !tbaa !5
  %7250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7251 = load i32, ptr %7250, align 4, !tbaa !5
  %7252 = call ptr @s2n_strerror(i32 noundef %7251, ptr noundef @.str.4)
  %7253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7254 = load i32, ptr %7253, align 4, !tbaa !5
  %7255 = call ptr @s2n_strerror_debug(i32 noundef %7254, ptr noundef @.str.4)
  %7256 = call ptr @__errno_location() #10
  %7257 = load i32, ptr %7256, align 4, !tbaa !5
  %7258 = call ptr @strerror(i32 noundef %7257) #9
  %7259 = call ptr @__errno_location() #10
  %7260 = load i32, ptr %7259, align 4, !tbaa !5
  %7261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7248, ptr noundef @.str.2, i32 noundef %7249, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 334, ptr noundef %7252, ptr noundef %7255, ptr noundef %7258, i32 noundef %7260) #9
  br label %7279

7262:                                             ; preds = %7240, %7233
  %7263 = load i32, ptr %162, align 4, !tbaa !5
  %7264 = call ptr @__errno_location() #10
  store i32 %7263, ptr %7264, align 4, !tbaa !5
  %7265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7266 = load i32, ptr @test_count, align 4, !tbaa !5
  %7267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  %7269 = call ptr @s2n_strerror(i32 noundef %7268, ptr noundef @.str.4)
  %7270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call ptr @s2n_strerror_debug(i32 noundef %7271, ptr noundef @.str.4)
  %7273 = call ptr @__errno_location() #10
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  %7275 = call ptr @strerror(i32 noundef %7274) #9
  %7276 = call ptr @__errno_location() #10
  %7277 = load i32, ptr %7276, align 4, !tbaa !5
  %7278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7265, ptr noundef @.str.5, i32 noundef %7266, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 334, ptr noundef %7269, ptr noundef %7272, ptr noundef %7275, i32 noundef %7277) #9
  br label %7279

7279:                                             ; preds = %7262, %7245
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #9
  br label %7280

7280:                                             ; preds = %7279
  br label %7281

7281:                                             ; preds = %7280
  call void @exit(i32 noundef 1) #11
  unreachable

7282:                                             ; No predecessors!
  br label %7283

7283:                                             ; preds = %7282
  br label %7284

7284:                                             ; preds = %7283, %7225
  br label %7285

7285:                                             ; preds = %7284
  br label %7286

7286:                                             ; preds = %7285
  br label %7287

7287:                                             ; preds = %7286
  %7288 = load i32, ptr @test_count, align 4, !tbaa !5
  %7289 = add nsw i32 %7288, 1
  store i32 %7289, ptr @test_count, align 4, !tbaa !5
  %7290 = load ptr, ptr %6, align 8, !tbaa !9
  %7291 = call i32 @s2n_config_set_client_auth_type(ptr noundef %7290, i32 noundef 1)
  %7292 = icmp eq i32 %7291, -1
  br i1 %7292, label %7293, label %7346

7293:                                             ; preds = %7287
  br label %7294

7294:                                             ; preds = %7293
  br label %7295

7295:                                             ; preds = %7294
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #9
  %7296 = call ptr @__errno_location() #10
  %7297 = load i32, ptr %7296, align 4, !tbaa !5
  store i32 %7297, ptr %163, align 4, !tbaa !5
  %7298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7299 = call i32 @s2n_print_stacktrace(ptr noundef %7298)
  %7300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7301 = trunc i8 %7300 to i1
  br i1 %7301, label %7302, label %7324

7302:                                             ; preds = %7295
  %7303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7304 = call i32 @fileno(ptr noundef %7303) #9
  %7305 = call i32 @isatty(i32 noundef %7304) #9
  %7306 = icmp ne i32 %7305, 0
  br i1 %7306, label %7307, label %7324

7307:                                             ; preds = %7302
  %7308 = load i32, ptr %163, align 4, !tbaa !5
  %7309 = call ptr @__errno_location() #10
  store i32 %7308, ptr %7309, align 4, !tbaa !5
  %7310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7311 = load i32, ptr @test_count, align 4, !tbaa !5
  %7312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call ptr @s2n_strerror(i32 noundef %7313, ptr noundef @.str.4)
  %7315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call ptr @s2n_strerror_debug(i32 noundef %7316, ptr noundef @.str.4)
  %7318 = call ptr @__errno_location() #10
  %7319 = load i32, ptr %7318, align 4, !tbaa !5
  %7320 = call ptr @strerror(i32 noundef %7319) #9
  %7321 = call ptr @__errno_location() #10
  %7322 = load i32, ptr %7321, align 4, !tbaa !5
  %7323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7310, ptr noundef @.str.2, i32 noundef %7311, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 335, ptr noundef %7314, ptr noundef %7317, ptr noundef %7320, i32 noundef %7322) #9
  br label %7341

7324:                                             ; preds = %7302, %7295
  %7325 = load i32, ptr %163, align 4, !tbaa !5
  %7326 = call ptr @__errno_location() #10
  store i32 %7325, ptr %7326, align 4, !tbaa !5
  %7327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7328 = load i32, ptr @test_count, align 4, !tbaa !5
  %7329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call ptr @s2n_strerror(i32 noundef %7330, ptr noundef @.str.4)
  %7332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  %7334 = call ptr @s2n_strerror_debug(i32 noundef %7333, ptr noundef @.str.4)
  %7335 = call ptr @__errno_location() #10
  %7336 = load i32, ptr %7335, align 4, !tbaa !5
  %7337 = call ptr @strerror(i32 noundef %7336) #9
  %7338 = call ptr @__errno_location() #10
  %7339 = load i32, ptr %7338, align 4, !tbaa !5
  %7340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7327, ptr noundef @.str.5, i32 noundef %7328, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 335, ptr noundef %7331, ptr noundef %7334, ptr noundef %7337, i32 noundef %7339) #9
  br label %7341

7341:                                             ; preds = %7324, %7307
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #9
  br label %7342

7342:                                             ; preds = %7341
  br label %7343

7343:                                             ; preds = %7342
  call void @exit(i32 noundef 1) #11
  unreachable

7344:                                             ; No predecessors!
  br label %7345

7345:                                             ; preds = %7344
  br label %7346

7346:                                             ; preds = %7345, %7287
  br label %7347

7347:                                             ; preds = %7346
  br label %7348

7348:                                             ; preds = %7347
  br label %7349

7349:                                             ; preds = %7348
  %7350 = load i32, ptr @test_count, align 4, !tbaa !5
  %7351 = add nsw i32 %7350, 1
  store i32 %7351, ptr @test_count, align 4, !tbaa !5
  %7352 = load ptr, ptr %7, align 8, !tbaa !9
  %7353 = call i32 @s2n_config_set_client_auth_type(ptr noundef %7352, i32 noundef 1)
  %7354 = icmp eq i32 %7353, -1
  br i1 %7354, label %7355, label %7408

7355:                                             ; preds = %7349
  br label %7356

7356:                                             ; preds = %7355
  br label %7357

7357:                                             ; preds = %7356
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #9
  %7358 = call ptr @__errno_location() #10
  %7359 = load i32, ptr %7358, align 4, !tbaa !5
  store i32 %7359, ptr %164, align 4, !tbaa !5
  %7360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7361 = call i32 @s2n_print_stacktrace(ptr noundef %7360)
  %7362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7363 = trunc i8 %7362 to i1
  br i1 %7363, label %7364, label %7386

7364:                                             ; preds = %7357
  %7365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7366 = call i32 @fileno(ptr noundef %7365) #9
  %7367 = call i32 @isatty(i32 noundef %7366) #9
  %7368 = icmp ne i32 %7367, 0
  br i1 %7368, label %7369, label %7386

7369:                                             ; preds = %7364
  %7370 = load i32, ptr %164, align 4, !tbaa !5
  %7371 = call ptr @__errno_location() #10
  store i32 %7370, ptr %7371, align 4, !tbaa !5
  %7372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7373 = load i32, ptr @test_count, align 4, !tbaa !5
  %7374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7375 = load i32, ptr %7374, align 4, !tbaa !5
  %7376 = call ptr @s2n_strerror(i32 noundef %7375, ptr noundef @.str.4)
  %7377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7378 = load i32, ptr %7377, align 4, !tbaa !5
  %7379 = call ptr @s2n_strerror_debug(i32 noundef %7378, ptr noundef @.str.4)
  %7380 = call ptr @__errno_location() #10
  %7381 = load i32, ptr %7380, align 4, !tbaa !5
  %7382 = call ptr @strerror(i32 noundef %7381) #9
  %7383 = call ptr @__errno_location() #10
  %7384 = load i32, ptr %7383, align 4, !tbaa !5
  %7385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7372, ptr noundef @.str.2, i32 noundef %7373, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 338, ptr noundef %7376, ptr noundef %7379, ptr noundef %7382, i32 noundef %7384) #9
  br label %7403

7386:                                             ; preds = %7364, %7357
  %7387 = load i32, ptr %164, align 4, !tbaa !5
  %7388 = call ptr @__errno_location() #10
  store i32 %7387, ptr %7388, align 4, !tbaa !5
  %7389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7390 = load i32, ptr @test_count, align 4, !tbaa !5
  %7391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7392 = load i32, ptr %7391, align 4, !tbaa !5
  %7393 = call ptr @s2n_strerror(i32 noundef %7392, ptr noundef @.str.4)
  %7394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7395 = load i32, ptr %7394, align 4, !tbaa !5
  %7396 = call ptr @s2n_strerror_debug(i32 noundef %7395, ptr noundef @.str.4)
  %7397 = call ptr @__errno_location() #10
  %7398 = load i32, ptr %7397, align 4, !tbaa !5
  %7399 = call ptr @strerror(i32 noundef %7398) #9
  %7400 = call ptr @__errno_location() #10
  %7401 = load i32, ptr %7400, align 4, !tbaa !5
  %7402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7389, ptr noundef @.str.5, i32 noundef %7390, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 338, ptr noundef %7393, ptr noundef %7396, ptr noundef %7399, i32 noundef %7401) #9
  br label %7403

7403:                                             ; preds = %7386, %7369
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #9
  br label %7404

7404:                                             ; preds = %7403
  br label %7405

7405:                                             ; preds = %7404
  call void @exit(i32 noundef 1) #11
  unreachable

7406:                                             ; No predecessors!
  br label %7407

7407:                                             ; preds = %7406
  br label %7408

7408:                                             ; preds = %7407, %7349
  br label %7409

7409:                                             ; preds = %7408
  br label %7410

7410:                                             ; preds = %7409
  br label %7411

7411:                                             ; preds = %7410
  %7412 = load i32, ptr @test_count, align 4, !tbaa !5
  %7413 = add nsw i32 %7412, 1
  store i32 %7413, ptr @test_count, align 4, !tbaa !5
  %7414 = load ptr, ptr %7, align 8, !tbaa !9
  %7415 = call i32 @s2n_config_disable_x509_verification(ptr noundef %7414)
  %7416 = icmp eq i32 %7415, -1
  br i1 %7416, label %7417, label %7470

7417:                                             ; preds = %7411
  br label %7418

7418:                                             ; preds = %7417
  br label %7419

7419:                                             ; preds = %7418
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #9
  %7420 = call ptr @__errno_location() #10
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  store i32 %7421, ptr %165, align 4, !tbaa !5
  %7422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7423 = call i32 @s2n_print_stacktrace(ptr noundef %7422)
  %7424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7425 = trunc i8 %7424 to i1
  br i1 %7425, label %7426, label %7448

7426:                                             ; preds = %7419
  %7427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7428 = call i32 @fileno(ptr noundef %7427) #9
  %7429 = call i32 @isatty(i32 noundef %7428) #9
  %7430 = icmp ne i32 %7429, 0
  br i1 %7430, label %7431, label %7448

7431:                                             ; preds = %7426
  %7432 = load i32, ptr %165, align 4, !tbaa !5
  %7433 = call ptr @__errno_location() #10
  store i32 %7432, ptr %7433, align 4, !tbaa !5
  %7434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7435 = load i32, ptr @test_count, align 4, !tbaa !5
  %7436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7437 = load i32, ptr %7436, align 4, !tbaa !5
  %7438 = call ptr @s2n_strerror(i32 noundef %7437, ptr noundef @.str.4)
  %7439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7440 = load i32, ptr %7439, align 4, !tbaa !5
  %7441 = call ptr @s2n_strerror_debug(i32 noundef %7440, ptr noundef @.str.4)
  %7442 = call ptr @__errno_location() #10
  %7443 = load i32, ptr %7442, align 4, !tbaa !5
  %7444 = call ptr @strerror(i32 noundef %7443) #9
  %7445 = call ptr @__errno_location() #10
  %7446 = load i32, ptr %7445, align 4, !tbaa !5
  %7447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7434, ptr noundef @.str.2, i32 noundef %7435, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7438, ptr noundef %7441, ptr noundef %7444, i32 noundef %7446) #9
  br label %7465

7448:                                             ; preds = %7426, %7419
  %7449 = load i32, ptr %165, align 4, !tbaa !5
  %7450 = call ptr @__errno_location() #10
  store i32 %7449, ptr %7450, align 4, !tbaa !5
  %7451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7452 = load i32, ptr @test_count, align 4, !tbaa !5
  %7453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7454 = load i32, ptr %7453, align 4, !tbaa !5
  %7455 = call ptr @s2n_strerror(i32 noundef %7454, ptr noundef @.str.4)
  %7456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7457 = load i32, ptr %7456, align 4, !tbaa !5
  %7458 = call ptr @s2n_strerror_debug(i32 noundef %7457, ptr noundef @.str.4)
  %7459 = call ptr @__errno_location() #10
  %7460 = load i32, ptr %7459, align 4, !tbaa !5
  %7461 = call ptr @strerror(i32 noundef %7460) #9
  %7462 = call ptr @__errno_location() #10
  %7463 = load i32, ptr %7462, align 4, !tbaa !5
  %7464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7451, ptr noundef @.str.5, i32 noundef %7452, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7455, ptr noundef %7458, ptr noundef %7461, i32 noundef %7463) #9
  br label %7465

7465:                                             ; preds = %7448, %7431
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #9
  br label %7466

7466:                                             ; preds = %7465
  br label %7467

7467:                                             ; preds = %7466
  call void @exit(i32 noundef 1) #11
  unreachable

7468:                                             ; No predecessors!
  br label %7469

7469:                                             ; preds = %7468
  br label %7470

7470:                                             ; preds = %7469, %7411
  br label %7471

7471:                                             ; preds = %7470
  br label %7472

7472:                                             ; preds = %7471
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #9
  store i32 0, ptr %166, align 4, !tbaa !5
  br label %7473

7473:                                             ; preds = %8502, %7472
  %7474 = load i32, ptr %166, align 4, !tbaa !5
  %7475 = load ptr, ptr %9, align 8, !tbaa !9
  %7476 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %7475, i32 0, i32 0
  %7477 = load i16, ptr %7476, align 8, !tbaa !24
  %7478 = zext i16 %7477 to i32
  %7479 = icmp slt i32 %7474, %7478
  br i1 %7479, label %7481, label %7480

7480:                                             ; preds = %7473
  store i32 702, ptr %42, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #9
  br label %8505

7481:                                             ; preds = %7473
  call void @llvm.lifetime.start.p0(i64 24, ptr %167) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %168) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #9
  store ptr null, ptr %169, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #9
  store ptr null, ptr %170, align 8, !tbaa !9
  br label %7482

7482:                                             ; preds = %7481
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #9
  store i64 24, ptr %171, align 8, !tbaa !26
  %7483 = load i64, ptr %171, align 8, !tbaa !26
  %7484 = icmp ne i64 %7483, 0
  br i1 %7484, label %7485, label %7543

7485:                                             ; preds = %7482
  %7486 = load ptr, ptr %9, align 8, !tbaa !9
  %7487 = load i64, ptr %171, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %167, ptr align 8 %7486, i64 %7487, i1 false)
  %7488 = icmp eq ptr %167, null
  br i1 %7488, label %7489, label %7542

7489:                                             ; preds = %7485
  br label %7490

7490:                                             ; preds = %7489
  br label %7491

7491:                                             ; preds = %7490
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #9
  %7492 = call ptr @__errno_location() #10
  %7493 = load i32, ptr %7492, align 4, !tbaa !5
  store i32 %7493, ptr %172, align 4, !tbaa !5
  %7494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7495 = call i32 @s2n_print_stacktrace(ptr noundef %7494)
  %7496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7497 = trunc i8 %7496 to i1
  br i1 %7497, label %7498, label %7520

7498:                                             ; preds = %7491
  %7499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7500 = call i32 @fileno(ptr noundef %7499) #9
  %7501 = call i32 @isatty(i32 noundef %7500) #9
  %7502 = icmp ne i32 %7501, 0
  br i1 %7502, label %7503, label %7520

7503:                                             ; preds = %7498
  %7504 = load i32, ptr %172, align 4, !tbaa !5
  %7505 = call ptr @__errno_location() #10
  store i32 %7504, ptr %7505, align 4, !tbaa !5
  %7506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7507 = load i32, ptr @test_count, align 4, !tbaa !5
  %7508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7509 = load i32, ptr %7508, align 4, !tbaa !5
  %7510 = call ptr @s2n_strerror(i32 noundef %7509, ptr noundef @.str.4)
  %7511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7512 = load i32, ptr %7511, align 4, !tbaa !5
  %7513 = call ptr @s2n_strerror_debug(i32 noundef %7512, ptr noundef @.str.4)
  %7514 = call ptr @__errno_location() #10
  %7515 = load i32, ptr %7514, align 4, !tbaa !5
  %7516 = call ptr @strerror(i32 noundef %7515) #9
  %7517 = call ptr @__errno_location() #10
  %7518 = load i32, ptr %7517, align 4, !tbaa !5
  %7519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7506, ptr noundef @.str.2, i32 noundef %7507, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 349, ptr noundef %7510, ptr noundef %7513, ptr noundef %7516, i32 noundef %7518) #9
  br label %7537

7520:                                             ; preds = %7498, %7491
  %7521 = load i32, ptr %172, align 4, !tbaa !5
  %7522 = call ptr @__errno_location() #10
  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() #10
  %7532 = load i32, ptr %7531, align 4, !tbaa !5
  %7533 = call ptr @strerror(i32 noundef %7532) #9
  %7534 = call ptr @__errno_location() #10
  %7535 = load i32, ptr %7534, align 4, !tbaa !5
  %7536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7523, ptr noundef @.str.5, i32 noundef %7524, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 349, ptr noundef %7527, ptr noundef %7530, ptr noundef %7533, i32 noundef %7535) #9
  br label %7537

7537:                                             ; preds = %7520, %7503
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #9
  br label %7538

7538:                                             ; preds = %7537
  br label %7539

7539:                                             ; preds = %7538
  call void @exit(i32 noundef 1) #11
  unreachable

7540:                                             ; No predecessors!
  br label %7541

7541:                                             ; preds = %7540
  br label %7542

7542:                                             ; preds = %7541, %7485
  br label %7543

7543:                                             ; preds = %7542, %7482
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #9
  br label %7544

7544:                                             ; preds = %7543
  br label %7545

7545:                                             ; preds = %7544
  %7546 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %167, i32 0, i32 0
  store i16 1, ptr %7546, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #9
  %7547 = load ptr, ptr %9, align 8, !tbaa !9
  %7548 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %7547, i32 0, i32 1
  %7549 = load ptr, ptr %7548, align 8, !tbaa !27
  %7550 = load i32, ptr %166, align 4, !tbaa !5
  %7551 = sext i32 %7550 to i64
  %7552 = getelementptr inbounds ptr, ptr %7549, i64 %7551
  %7553 = load ptr, ptr %7552, align 8, !tbaa !9
  store ptr %7553, ptr %173, align 8, !tbaa !9
  %7554 = load ptr, ptr %173, align 8, !tbaa !9
  %7555 = load i8, ptr %7554, align 8
  %7556 = and i8 %7555, 1
  %7557 = zext i8 %7556 to i32
  %7558 = icmp ne i32 %7557, 0
  br i1 %7558, label %7560, label %7559

7559:                                             ; preds = %7545
  store i32 704, ptr %42, align 4
  br label %8499

7560:                                             ; preds = %7545
  %7561 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %167, i32 0, i32 1
  store ptr %173, ptr %7561, align 8, !tbaa !27
  br label %7562

7562:                                             ; preds = %7560
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #9
  store i64 64, ptr %174, align 8, !tbaa !26
  %7563 = load i64, ptr %174, align 8, !tbaa !26
  %7564 = icmp ne i64 %7563, 0
  br i1 %7564, label %7565, label %7623

7565:                                             ; preds = %7562
  %7566 = load ptr, ptr %8, align 8, !tbaa !9
  %7567 = load i64, ptr %174, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %168, ptr align 8 %7566, i64 %7567, i1 false)
  %7568 = icmp eq ptr %168, null
  br i1 %7568, label %7569, label %7622

7569:                                             ; preds = %7565
  br label %7570

7570:                                             ; preds = %7569
  br label %7571

7571:                                             ; preds = %7570
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #9
  %7572 = call ptr @__errno_location() #10
  %7573 = load i32, ptr %7572, align 4, !tbaa !5
  store i32 %7573, ptr %175, align 4, !tbaa !5
  %7574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7575 = call i32 @s2n_print_stacktrace(ptr noundef %7574)
  %7576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7577 = trunc i8 %7576 to i1
  br i1 %7577, label %7578, label %7600

7578:                                             ; preds = %7571
  %7579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7580 = call i32 @fileno(ptr noundef %7579) #9
  %7581 = call i32 @isatty(i32 noundef %7580) #9
  %7582 = icmp ne i32 %7581, 0
  br i1 %7582, label %7583, label %7600

7583:                                             ; preds = %7578
  %7584 = load i32, ptr %175, align 4, !tbaa !5
  %7585 = call ptr @__errno_location() #10
  store i32 %7584, ptr %7585, align 4, !tbaa !5
  %7586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7587 = load i32, ptr @test_count, align 4, !tbaa !5
  %7588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7589 = load i32, ptr %7588, align 4, !tbaa !5
  %7590 = call ptr @s2n_strerror(i32 noundef %7589, ptr noundef @.str.4)
  %7591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7592 = load i32, ptr %7591, align 4, !tbaa !5
  %7593 = call ptr @s2n_strerror_debug(i32 noundef %7592, ptr noundef @.str.4)
  %7594 = call ptr @__errno_location() #10
  %7595 = load i32, ptr %7594, align 4, !tbaa !5
  %7596 = call ptr @strerror(i32 noundef %7595) #9
  %7597 = call ptr @__errno_location() #10
  %7598 = load i32, ptr %7597, align 4, !tbaa !5
  %7599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7586, ptr noundef @.str.2, i32 noundef %7587, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 360, ptr noundef %7590, ptr noundef %7593, ptr noundef %7596, i32 noundef %7598) #9
  br label %7617

7600:                                             ; preds = %7578, %7571
  %7601 = load i32, ptr %175, align 4, !tbaa !5
  %7602 = call ptr @__errno_location() #10
  store i32 %7601, ptr %7602, align 4, !tbaa !5
  %7603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7604 = load i32, ptr @test_count, align 4, !tbaa !5
  %7605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7606 = load i32, ptr %7605, align 4, !tbaa !5
  %7607 = call ptr @s2n_strerror(i32 noundef %7606, ptr noundef @.str.4)
  %7608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7609 = load i32, ptr %7608, align 4, !tbaa !5
  %7610 = call ptr @s2n_strerror_debug(i32 noundef %7609, ptr noundef @.str.4)
  %7611 = call ptr @__errno_location() #10
  %7612 = load i32, ptr %7611, align 4, !tbaa !5
  %7613 = call ptr @strerror(i32 noundef %7612) #9
  %7614 = call ptr @__errno_location() #10
  %7615 = load i32, ptr %7614, align 4, !tbaa !5
  %7616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7603, ptr noundef @.str.5, i32 noundef %7604, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 360, ptr noundef %7607, ptr noundef %7610, ptr noundef %7613, i32 noundef %7615) #9
  br label %7617

7617:                                             ; preds = %7600, %7583
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #9
  br label %7618

7618:                                             ; preds = %7617
  br label %7619

7619:                                             ; preds = %7618
  call void @exit(i32 noundef 1) #11
  unreachable

7620:                                             ; No predecessors!
  br label %7621

7621:                                             ; preds = %7620
  br label %7622

7622:                                             ; preds = %7621, %7565
  br label %7623

7623:                                             ; preds = %7622, %7562
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #9
  br label %7624

7624:                                             ; preds = %7623
  br label %7625

7625:                                             ; preds = %7624
  %7626 = getelementptr inbounds %struct.s2n_security_policy, ptr %168, i32 0, i32 1
  store ptr %167, ptr %7626, align 8, !tbaa !22
  %7627 = load ptr, ptr %6, align 8, !tbaa !9
  %7628 = getelementptr inbounds %struct.s2n_config, ptr %7627, i32 0, i32 7
  store ptr %168, ptr %7628, align 8, !tbaa !15
  %7629 = load ptr, ptr %7, align 8, !tbaa !9
  %7630 = getelementptr inbounds %struct.s2n_config, ptr %7629, i32 0, i32 7
  store ptr %168, ptr %7630, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #9
  br label %7631

7631:                                             ; preds = %7625
  %7632 = load i32, ptr @test_count, align 4, !tbaa !5
  %7633 = add nsw i32 %7632, 1
  store i32 %7633, ptr @test_count, align 4, !tbaa !5
  %7634 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %176)
  %7635 = icmp eq i32 %7634, -1
  br i1 %7635, label %7636, label %7689

7636:                                             ; preds = %7631
  br label %7637

7637:                                             ; preds = %7636
  br label %7638

7638:                                             ; preds = %7637
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #9
  %7639 = call ptr @__errno_location() #10
  %7640 = load i32, ptr %7639, align 4, !tbaa !5
  store i32 %7640, ptr %177, align 4, !tbaa !5
  %7641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7642 = call i32 @s2n_print_stacktrace(ptr noundef %7641)
  %7643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7644 = trunc i8 %7643 to i1
  br i1 %7644, label %7645, label %7667

7645:                                             ; preds = %7638
  %7646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7647 = call i32 @fileno(ptr noundef %7646) #9
  %7648 = call i32 @isatty(i32 noundef %7647) #9
  %7649 = icmp ne i32 %7648, 0
  br i1 %7649, label %7650, label %7667

7650:                                             ; preds = %7645
  %7651 = load i32, ptr %177, align 4, !tbaa !5
  %7652 = call ptr @__errno_location() #10
  store i32 %7651, ptr %7652, align 4, !tbaa !5
  %7653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7654 = load i32, ptr @test_count, align 4, !tbaa !5
  %7655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7656 = load i32, ptr %7655, align 4, !tbaa !5
  %7657 = call ptr @s2n_strerror(i32 noundef %7656, ptr noundef @.str.4)
  %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_debug(i32 noundef %7659, ptr noundef @.str.4)
  %7661 = call ptr @__errno_location() #10
  %7662 = load i32, ptr %7661, align 4, !tbaa !5
  %7663 = call ptr @strerror(i32 noundef %7662) #9
  %7664 = call ptr @__errno_location() #10
  %7665 = load i32, ptr %7664, align 4, !tbaa !5
  %7666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7653, ptr noundef @.str.2, i32 noundef %7654, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 368, ptr noundef %7657, ptr noundef %7660, ptr noundef %7663, i32 noundef %7665) #9
  br label %7684

7667:                                             ; preds = %7645, %7638
  %7668 = load i32, ptr %177, align 4, !tbaa !5
  %7669 = call ptr @__errno_location() #10
  store i32 %7668, ptr %7669, align 4, !tbaa !5
  %7670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7671 = load i32, ptr @test_count, align 4, !tbaa !5
  %7672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7673 = load i32, ptr %7672, align 4, !tbaa !5
  %7674 = call ptr @s2n_strerror(i32 noundef %7673, ptr noundef @.str.4)
  %7675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7676 = load i32, ptr %7675, align 4, !tbaa !5
  %7677 = call ptr @s2n_strerror_debug(i32 noundef %7676, ptr noundef @.str.4)
  %7678 = call ptr @__errno_location() #10
  %7679 = load i32, ptr %7678, align 4, !tbaa !5
  %7680 = call ptr @strerror(i32 noundef %7679) #9
  %7681 = call ptr @__errno_location() #10
  %7682 = load i32, ptr %7681, align 4, !tbaa !5
  %7683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7670, ptr noundef @.str.5, i32 noundef %7671, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 368, ptr noundef %7674, ptr noundef %7677, ptr noundef %7680, i32 noundef %7682) #9
  br label %7684

7684:                                             ; preds = %7667, %7650
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #9
  br label %7685

7685:                                             ; preds = %7684
  br label %7686

7686:                                             ; preds = %7685
  call void @exit(i32 noundef 1) #11
  unreachable

7687:                                             ; No predecessors!
  br label %7688

7688:                                             ; preds = %7687
  br label %7689

7689:                                             ; preds = %7688, %7631
  br label %7690

7690:                                             ; preds = %7689
  br label %7691

7691:                                             ; preds = %7690
  br label %7692

7692:                                             ; preds = %7691
  %7693 = load i32, ptr @test_count, align 4, !tbaa !5
  %7694 = add nsw i32 %7693, 1
  store i32 %7694, ptr @test_count, align 4, !tbaa !5
  %7695 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7695, ptr %169, align 8, !tbaa !9
  %7696 = icmp eq ptr %7695, null
  br i1 %7696, label %7697, label %7750

7697:                                             ; preds = %7692
  br label %7698

7698:                                             ; preds = %7697
  br label %7699

7699:                                             ; preds = %7698
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #9
  %7700 = call ptr @__errno_location() #10
  %7701 = load i32, ptr %7700, align 4, !tbaa !5
  store i32 %7701, ptr %178, align 4, !tbaa !5
  %7702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7703 = call i32 @s2n_print_stacktrace(ptr noundef %7702)
  %7704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7705 = trunc i8 %7704 to i1
  br i1 %7705, label %7706, label %7728

7706:                                             ; preds = %7699
  %7707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7708 = call i32 @fileno(ptr noundef %7707) #9
  %7709 = call i32 @isatty(i32 noundef %7708) #9
  %7710 = icmp ne i32 %7709, 0
  br i1 %7710, label %7711, label %7728

7711:                                             ; preds = %7706
  %7712 = load i32, ptr %178, align 4, !tbaa !5
  %7713 = call ptr @__errno_location() #10
  store i32 %7712, ptr %7713, align 4, !tbaa !5
  %7714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7715 = load i32, ptr @test_count, align 4, !tbaa !5
  %7716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7717 = load i32, ptr %7716, align 4, !tbaa !5
  %7718 = call ptr @s2n_strerror(i32 noundef %7717, ptr noundef @.str.4)
  %7719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call ptr @s2n_strerror_debug(i32 noundef %7720, ptr noundef @.str.4)
  %7722 = call ptr @__errno_location() #10
  %7723 = load i32, ptr %7722, align 4, !tbaa !5
  %7724 = call ptr @strerror(i32 noundef %7723) #9
  %7725 = call ptr @__errno_location() #10
  %7726 = load i32, ptr %7725, align 4, !tbaa !5
  %7727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7714, ptr noundef @.str.2, i32 noundef %7715, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 370, ptr noundef %7718, ptr noundef %7721, ptr noundef %7724, i32 noundef %7726) #9
  br label %7745

7728:                                             ; preds = %7706, %7699
  %7729 = load i32, ptr %178, align 4, !tbaa !5
  %7730 = call ptr @__errno_location() #10
  store i32 %7729, ptr %7730, align 4, !tbaa !5
  %7731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7732 = load i32, ptr @test_count, align 4, !tbaa !5
  %7733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7734 = load i32, ptr %7733, align 4, !tbaa !5
  %7735 = call ptr @s2n_strerror(i32 noundef %7734, ptr noundef @.str.4)
  %7736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7737 = load i32, ptr %7736, align 4, !tbaa !5
  %7738 = call ptr @s2n_strerror_debug(i32 noundef %7737, ptr noundef @.str.4)
  %7739 = call ptr @__errno_location() #10
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  %7741 = call ptr @strerror(i32 noundef %7740) #9
  %7742 = call ptr @__errno_location() #10
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  %7744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7731, ptr noundef @.str.5, i32 noundef %7732, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 370, ptr noundef %7735, ptr noundef %7738, ptr noundef %7741, i32 noundef %7743) #9
  br label %7745

7745:                                             ; preds = %7728, %7711
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #9
  br label %7746

7746:                                             ; preds = %7745
  br label %7747

7747:                                             ; preds = %7746
  call void @exit(i32 noundef 1) #11
  unreachable

7748:                                             ; No predecessors!
  br label %7749

7749:                                             ; preds = %7748
  br label %7750

7750:                                             ; preds = %7749, %7692
  br label %7751

7751:                                             ; preds = %7750
  br label %7752

7752:                                             ; preds = %7751
  br label %7753

7753:                                             ; preds = %7752
  %7754 = load i32, ptr @test_count, align 4, !tbaa !5
  %7755 = add nsw i32 %7754, 1
  store i32 %7755, ptr @test_count, align 4, !tbaa !5
  %7756 = load ptr, ptr %169, align 8, !tbaa !9
  %7757 = load ptr, ptr %6, align 8, !tbaa !9
  %7758 = call i32 @s2n_connection_set_config(ptr noundef %7756, ptr noundef %7757)
  %7759 = icmp eq i32 %7758, -1
  br i1 %7759, label %7760, label %7813

7760:                                             ; preds = %7753
  br label %7761

7761:                                             ; preds = %7760
  br label %7762

7762:                                             ; preds = %7761
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #9
  %7763 = call ptr @__errno_location() #10
  %7764 = load i32, ptr %7763, align 4, !tbaa !5
  store i32 %7764, ptr %179, align 4, !tbaa !5
  %7765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7766 = call i32 @s2n_print_stacktrace(ptr noundef %7765)
  %7767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7768 = trunc i8 %7767 to i1
  br i1 %7768, label %7769, label %7791

7769:                                             ; preds = %7762
  %7770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7771 = call i32 @fileno(ptr noundef %7770) #9
  %7772 = call i32 @isatty(i32 noundef %7771) #9
  %7773 = icmp ne i32 %7772, 0
  br i1 %7773, label %7774, label %7791

7774:                                             ; preds = %7769
  %7775 = load i32, ptr %179, align 4, !tbaa !5
  %7776 = call ptr @__errno_location() #10
  store i32 %7775, ptr %7776, align 4, !tbaa !5
  %7777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7778 = load i32, ptr @test_count, align 4, !tbaa !5
  %7779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7780 = load i32, ptr %7779, align 4, !tbaa !5
  %7781 = call ptr @s2n_strerror(i32 noundef %7780, ptr noundef @.str.4)
  %7782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7783 = load i32, ptr %7782, align 4, !tbaa !5
  %7784 = call ptr @s2n_strerror_debug(i32 noundef %7783, ptr noundef @.str.4)
  %7785 = call ptr @__errno_location() #10
  %7786 = load i32, ptr %7785, align 4, !tbaa !5
  %7787 = call ptr @strerror(i32 noundef %7786) #9
  %7788 = call ptr @__errno_location() #10
  %7789 = load i32, ptr %7788, align 4, !tbaa !5
  %7790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7777, ptr noundef @.str.2, i32 noundef %7778, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 371, ptr noundef %7781, ptr noundef %7784, ptr noundef %7787, i32 noundef %7789) #9
  br label %7808

7791:                                             ; preds = %7769, %7762
  %7792 = load i32, ptr %179, align 4, !tbaa !5
  %7793 = call ptr @__errno_location() #10
  store i32 %7792, ptr %7793, align 4, !tbaa !5
  %7794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7795 = load i32, ptr @test_count, align 4, !tbaa !5
  %7796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7797 = load i32, ptr %7796, align 4, !tbaa !5
  %7798 = call ptr @s2n_strerror(i32 noundef %7797, ptr noundef @.str.4)
  %7799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7800 = load i32, ptr %7799, align 4, !tbaa !5
  %7801 = call ptr @s2n_strerror_debug(i32 noundef %7800, ptr noundef @.str.4)
  %7802 = call ptr @__errno_location() #10
  %7803 = load i32, ptr %7802, align 4, !tbaa !5
  %7804 = call ptr @strerror(i32 noundef %7803) #9
  %7805 = call ptr @__errno_location() #10
  %7806 = load i32, ptr %7805, align 4, !tbaa !5
  %7807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7794, ptr noundef @.str.5, i32 noundef %7795, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 371, ptr noundef %7798, ptr noundef %7801, ptr noundef %7804, i32 noundef %7806) #9
  br label %7808

7808:                                             ; preds = %7791, %7774
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #9
  br label %7809

7809:                                             ; preds = %7808
  br label %7810

7810:                                             ; preds = %7809
  call void @exit(i32 noundef 1) #11
  unreachable

7811:                                             ; No predecessors!
  br label %7812

7812:                                             ; preds = %7811
  br label %7813

7813:                                             ; preds = %7812, %7753
  br label %7814

7814:                                             ; preds = %7813
  br label %7815

7815:                                             ; preds = %7814
  br label %7816

7816:                                             ; preds = %7815
  %7817 = load i32, ptr @test_count, align 4, !tbaa !5
  %7818 = add nsw i32 %7817, 1
  store i32 %7818, ptr @test_count, align 4, !tbaa !5
  %7819 = load ptr, ptr %169, align 8, !tbaa !9
  %7820 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %7819, i32 noundef 2)
  %7821 = icmp eq i32 %7820, -1
  br i1 %7821, label %7822, label %7875

7822:                                             ; preds = %7816
  br label %7823

7823:                                             ; preds = %7822
  br label %7824

7824:                                             ; preds = %7823
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #9
  %7825 = call ptr @__errno_location() #10
  %7826 = load i32, ptr %7825, align 4, !tbaa !5
  store i32 %7826, ptr %180, align 4, !tbaa !5
  %7827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7828 = call i32 @s2n_print_stacktrace(ptr noundef %7827)
  %7829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7830 = trunc i8 %7829 to i1
  br i1 %7830, label %7831, label %7853

7831:                                             ; preds = %7824
  %7832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7833 = call i32 @fileno(ptr noundef %7832) #9
  %7834 = call i32 @isatty(i32 noundef %7833) #9
  %7835 = icmp ne i32 %7834, 0
  br i1 %7835, label %7836, label %7853

7836:                                             ; preds = %7831
  %7837 = load i32, ptr %180, align 4, !tbaa !5
  %7838 = call ptr @__errno_location() #10
  store i32 %7837, ptr %7838, align 4, !tbaa !5
  %7839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7840 = load i32, ptr @test_count, align 4, !tbaa !5
  %7841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7842 = load i32, ptr %7841, align 4, !tbaa !5
  %7843 = call ptr @s2n_strerror(i32 noundef %7842, ptr noundef @.str.4)
  %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_debug(i32 noundef %7845, ptr noundef @.str.4)
  %7847 = call ptr @__errno_location() #10
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call ptr @strerror(i32 noundef %7848) #9
  %7850 = call ptr @__errno_location() #10
  %7851 = load i32, ptr %7850, align 4, !tbaa !5
  %7852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7839, ptr noundef @.str.2, i32 noundef %7840, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7843, ptr noundef %7846, ptr noundef %7849, i32 noundef %7851) #9
  br label %7870

7853:                                             ; preds = %7831, %7824
  %7854 = load i32, ptr %180, align 4, !tbaa !5
  %7855 = call ptr @__errno_location() #10
  store i32 %7854, ptr %7855, align 4, !tbaa !5
  %7856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7857 = load i32, ptr @test_count, align 4, !tbaa !5
  %7858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7859 = load i32, ptr %7858, align 4, !tbaa !5
  %7860 = call ptr @s2n_strerror(i32 noundef %7859, ptr noundef @.str.4)
  %7861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7862 = load i32, ptr %7861, align 4, !tbaa !5
  %7863 = call ptr @s2n_strerror_debug(i32 noundef %7862, ptr noundef @.str.4)
  %7864 = call ptr @__errno_location() #10
  %7865 = load i32, ptr %7864, align 4, !tbaa !5
  %7866 = call ptr @strerror(i32 noundef %7865) #9
  %7867 = call ptr @__errno_location() #10
  %7868 = load i32, ptr %7867, align 4, !tbaa !5
  %7869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7856, ptr noundef @.str.5, i32 noundef %7857, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7860, ptr noundef %7863, ptr noundef %7866, i32 noundef %7868) #9
  br label %7870

7870:                                             ; preds = %7853, %7836
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #9
  br label %7871

7871:                                             ; preds = %7870
  br label %7872

7872:                                             ; preds = %7871
  call void @exit(i32 noundef 1) #11
  unreachable

7873:                                             ; No predecessors!
  br label %7874

7874:                                             ; preds = %7873
  br label %7875

7875:                                             ; preds = %7874, %7816
  br label %7876

7876:                                             ; preds = %7875
  br label %7877

7877:                                             ; preds = %7876
  br label %7878

7878:                                             ; preds = %7877
  %7879 = load i32, ptr @test_count, align 4, !tbaa !5
  %7880 = add nsw i32 %7879, 1
  store i32 %7880, ptr @test_count, align 4, !tbaa !5
  %7881 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7881, ptr %170, align 8, !tbaa !9
  %7882 = icmp eq ptr %7881, null
  br i1 %7882, label %7883, label %7936

7883:                                             ; preds = %7878
  br label %7884

7884:                                             ; preds = %7883
  br label %7885

7885:                                             ; preds = %7884
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #9
  %7886 = call ptr @__errno_location() #10
  %7887 = load i32, ptr %7886, align 4, !tbaa !5
  store i32 %7887, ptr %181, align 4, !tbaa !5
  %7888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7889 = call i32 @s2n_print_stacktrace(ptr noundef %7888)
  %7890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7891 = trunc i8 %7890 to i1
  br i1 %7891, label %7892, label %7914

7892:                                             ; preds = %7885
  %7893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7894 = call i32 @fileno(ptr noundef %7893) #9
  %7895 = call i32 @isatty(i32 noundef %7894) #9
  %7896 = icmp ne i32 %7895, 0
  br i1 %7896, label %7897, label %7914

7897:                                             ; preds = %7892
  %7898 = load i32, ptr %181, align 4, !tbaa !5
  %7899 = call ptr @__errno_location() #10
  store i32 %7898, ptr %7899, align 4, !tbaa !5
  %7900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7901 = load i32, ptr @test_count, align 4, !tbaa !5
  %7902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7903 = load i32, ptr %7902, align 4, !tbaa !5
  %7904 = call ptr @s2n_strerror(i32 noundef %7903, ptr noundef @.str.4)
  %7905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7906 = load i32, ptr %7905, align 4, !tbaa !5
  %7907 = call ptr @s2n_strerror_debug(i32 noundef %7906, ptr noundef @.str.4)
  %7908 = call ptr @__errno_location() #10
  %7909 = load i32, ptr %7908, align 4, !tbaa !5
  %7910 = call ptr @strerror(i32 noundef %7909) #9
  %7911 = call ptr @__errno_location() #10
  %7912 = load i32, ptr %7911, align 4, !tbaa !5
  %7913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7900, ptr noundef @.str.2, i32 noundef %7901, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 376, ptr noundef %7904, ptr noundef %7907, ptr noundef %7910, i32 noundef %7912) #9
  br label %7931

7914:                                             ; preds = %7892, %7885
  %7915 = load i32, ptr %181, align 4, !tbaa !5
  %7916 = call ptr @__errno_location() #10
  store i32 %7915, ptr %7916, align 4, !tbaa !5
  %7917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7918 = load i32, ptr @test_count, align 4, !tbaa !5
  %7919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7920 = load i32, ptr %7919, align 4, !tbaa !5
  %7921 = call ptr @s2n_strerror(i32 noundef %7920, ptr noundef @.str.4)
  %7922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7923 = load i32, ptr %7922, align 4, !tbaa !5
  %7924 = call ptr @s2n_strerror_debug(i32 noundef %7923, ptr noundef @.str.4)
  %7925 = call ptr @__errno_location() #10
  %7926 = load i32, ptr %7925, align 4, !tbaa !5
  %7927 = call ptr @strerror(i32 noundef %7926) #9
  %7928 = call ptr @__errno_location() #10
  %7929 = load i32, ptr %7928, align 4, !tbaa !5
  %7930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7917, ptr noundef @.str.5, i32 noundef %7918, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 376, ptr noundef %7921, ptr noundef %7924, ptr noundef %7927, i32 noundef %7929) #9
  br label %7931

7931:                                             ; preds = %7914, %7897
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #9
  br label %7932

7932:                                             ; preds = %7931
  br label %7933

7933:                                             ; preds = %7932
  call void @exit(i32 noundef 1) #11
  unreachable

7934:                                             ; No predecessors!
  br label %7935

7935:                                             ; preds = %7934
  br label %7936

7936:                                             ; preds = %7935, %7878
  br label %7937

7937:                                             ; preds = %7936
  br label %7938

7938:                                             ; preds = %7937
  br label %7939

7939:                                             ; preds = %7938
  %7940 = load i32, ptr @test_count, align 4, !tbaa !5
  %7941 = add nsw i32 %7940, 1
  store i32 %7941, ptr @test_count, align 4, !tbaa !5
  %7942 = load ptr, ptr %170, align 8, !tbaa !9
  %7943 = load ptr, ptr %7, align 8, !tbaa !9
  %7944 = call i32 @s2n_connection_set_config(ptr noundef %7942, ptr noundef %7943)
  %7945 = icmp eq i32 %7944, -1
  br i1 %7945, label %7946, label %7999

7946:                                             ; preds = %7939
  br label %7947

7947:                                             ; preds = %7946
  br label %7948

7948:                                             ; preds = %7947
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #9
  %7949 = call ptr @__errno_location() #10
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  store i32 %7950, ptr %182, align 4, !tbaa !5
  %7951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7952 = call i32 @s2n_print_stacktrace(ptr noundef %7951)
  %7953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7954 = trunc i8 %7953 to i1
  br i1 %7954, label %7955, label %7977

7955:                                             ; preds = %7948
  %7956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7957 = call i32 @fileno(ptr noundef %7956) #9
  %7958 = call i32 @isatty(i32 noundef %7957) #9
  %7959 = icmp ne i32 %7958, 0
  br i1 %7959, label %7960, label %7977

7960:                                             ; preds = %7955
  %7961 = load i32, ptr %182, align 4, !tbaa !5
  %7962 = call ptr @__errno_location() #10
  store i32 %7961, ptr %7962, align 4, !tbaa !5
  %7963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7964 = load i32, ptr @test_count, align 4, !tbaa !5
  %7965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7966 = load i32, ptr %7965, align 4, !tbaa !5
  %7967 = call ptr @s2n_strerror(i32 noundef %7966, ptr noundef @.str.4)
  %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_debug(i32 noundef %7969, ptr noundef @.str.4)
  %7971 = call ptr @__errno_location() #10
  %7972 = load i32, ptr %7971, align 4, !tbaa !5
  %7973 = call ptr @strerror(i32 noundef %7972) #9
  %7974 = call ptr @__errno_location() #10
  %7975 = load i32, ptr %7974, align 4, !tbaa !5
  %7976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7963, ptr noundef @.str.2, i32 noundef %7964, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 377, ptr noundef %7967, ptr noundef %7970, ptr noundef %7973, i32 noundef %7975) #9
  br label %7994

7977:                                             ; preds = %7955, %7948
  %7978 = load i32, ptr %182, align 4, !tbaa !5
  %7979 = call ptr @__errno_location() #10
  store i32 %7978, ptr %7979, align 4, !tbaa !5
  %7980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7981 = load i32, ptr @test_count, align 4, !tbaa !5
  %7982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7983 = load i32, ptr %7982, align 4, !tbaa !5
  %7984 = call ptr @s2n_strerror(i32 noundef %7983, ptr noundef @.str.4)
  %7985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7986 = load i32, ptr %7985, align 4, !tbaa !5
  %7987 = call ptr @s2n_strerror_debug(i32 noundef %7986, ptr noundef @.str.4)
  %7988 = call ptr @__errno_location() #10
  %7989 = load i32, ptr %7988, align 4, !tbaa !5
  %7990 = call ptr @strerror(i32 noundef %7989) #9
  %7991 = call ptr @__errno_location() #10
  %7992 = load i32, ptr %7991, align 4, !tbaa !5
  %7993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7980, ptr noundef @.str.5, i32 noundef %7981, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 377, ptr noundef %7984, ptr noundef %7987, ptr noundef %7990, i32 noundef %7992) #9
  br label %7994

7994:                                             ; preds = %7977, %7960
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #9
  br label %7995

7995:                                             ; preds = %7994
  br label %7996

7996:                                             ; preds = %7995
  call void @exit(i32 noundef 1) #11
  unreachable

7997:                                             ; No predecessors!
  br label %7998

7998:                                             ; preds = %7997
  br label %7999

7999:                                             ; preds = %7998, %7939
  br label %8000

8000:                                             ; preds = %7999
  br label %8001

8001:                                             ; preds = %8000
  br label %8002

8002:                                             ; preds = %8001
  %8003 = load i32, ptr @test_count, align 4, !tbaa !5
  %8004 = add nsw i32 %8003, 1
  store i32 %8004, ptr @test_count, align 4, !tbaa !5
  %8005 = load ptr, ptr %169, align 8, !tbaa !9
  %8006 = load ptr, ptr %170, align 8, !tbaa !9
  %8007 = call i32 @s2n_connections_set_io_pair(ptr noundef %8005, ptr noundef %8006, ptr noundef %176)
  %8008 = icmp eq i32 %8007, -1
  br i1 %8008, label %8009, label %8062

8009:                                             ; preds = %8002
  br label %8010

8010:                                             ; preds = %8009
  br label %8011

8011:                                             ; preds = %8010
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #9
  %8012 = call ptr @__errno_location() #10
  %8013 = load i32, ptr %8012, align 4, !tbaa !5
  store i32 %8013, ptr %183, align 4, !tbaa !5
  %8014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8015 = call i32 @s2n_print_stacktrace(ptr noundef %8014)
  %8016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8017 = trunc i8 %8016 to i1
  br i1 %8017, label %8018, label %8040

8018:                                             ; preds = %8011
  %8019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8020 = call i32 @fileno(ptr noundef %8019) #9
  %8021 = call i32 @isatty(i32 noundef %8020) #9
  %8022 = icmp ne i32 %8021, 0
  br i1 %8022, label %8023, label %8040

8023:                                             ; preds = %8018
  %8024 = load i32, ptr %183, align 4, !tbaa !5
  %8025 = call ptr @__errno_location() #10
  store i32 %8024, ptr %8025, align 4, !tbaa !5
  %8026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8027 = load i32, ptr @test_count, align 4, !tbaa !5
  %8028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8029 = load i32, ptr %8028, align 4, !tbaa !5
  %8030 = call ptr @s2n_strerror(i32 noundef %8029, ptr noundef @.str.4)
  %8031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8032 = load i32, ptr %8031, align 4, !tbaa !5
  %8033 = call ptr @s2n_strerror_debug(i32 noundef %8032, ptr noundef @.str.4)
  %8034 = call ptr @__errno_location() #10
  %8035 = load i32, ptr %8034, align 4, !tbaa !5
  %8036 = call ptr @strerror(i32 noundef %8035) #9
  %8037 = call ptr @__errno_location() #10
  %8038 = load i32, ptr %8037, align 4, !tbaa !5
  %8039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8026, ptr noundef @.str.2, i32 noundef %8027, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 379, ptr noundef %8030, ptr noundef %8033, ptr noundef %8036, i32 noundef %8038) #9
  br label %8057

8040:                                             ; preds = %8018, %8011
  %8041 = load i32, ptr %183, align 4, !tbaa !5
  %8042 = call ptr @__errno_location() #10
  store i32 %8041, ptr %8042, align 4, !tbaa !5
  %8043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8044 = load i32, ptr @test_count, align 4, !tbaa !5
  %8045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8046 = load i32, ptr %8045, align 4, !tbaa !5
  %8047 = call ptr @s2n_strerror(i32 noundef %8046, ptr noundef @.str.4)
  %8048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8049 = load i32, ptr %8048, align 4, !tbaa !5
  %8050 = call ptr @s2n_strerror_debug(i32 noundef %8049, ptr noundef @.str.4)
  %8051 = call ptr @__errno_location() #10
  %8052 = load i32, ptr %8051, align 4, !tbaa !5
  %8053 = call ptr @strerror(i32 noundef %8052) #9
  %8054 = call ptr @__errno_location() #10
  %8055 = load i32, ptr %8054, align 4, !tbaa !5
  %8056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8043, ptr noundef @.str.5, i32 noundef %8044, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 379, ptr noundef %8047, ptr noundef %8050, ptr noundef %8053, i32 noundef %8055) #9
  br label %8057

8057:                                             ; preds = %8040, %8023
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #9
  br label %8058

8058:                                             ; preds = %8057
  br label %8059

8059:                                             ; preds = %8058
  call void @exit(i32 noundef 1) #11
  unreachable

8060:                                             ; No predecessors!
  br label %8061

8061:                                             ; preds = %8060
  br label %8062

8062:                                             ; preds = %8061, %8002
  br label %8063

8063:                                             ; preds = %8062
  br label %8064

8064:                                             ; preds = %8063
  br label %8065

8065:                                             ; preds = %8064
  %8066 = load i32, ptr @test_count, align 4, !tbaa !5
  %8067 = add nsw i32 %8066, 1
  store i32 %8067, ptr @test_count, align 4, !tbaa !5
  %8068 = load ptr, ptr %170, align 8, !tbaa !9
  %8069 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %8068, i32 noundef 2)
  %8070 = icmp eq i32 %8069, -1
  br i1 %8070, label %8071, label %8124

8071:                                             ; preds = %8065
  br label %8072

8072:                                             ; preds = %8071
  br label %8073

8073:                                             ; preds = %8072
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #9
  %8074 = call ptr @__errno_location() #10
  %8075 = load i32, ptr %8074, align 4, !tbaa !5
  store i32 %8075, ptr %184, align 4, !tbaa !5
  %8076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8077 = call i32 @s2n_print_stacktrace(ptr noundef %8076)
  %8078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8079 = trunc i8 %8078 to i1
  br i1 %8079, label %8080, label %8102

8080:                                             ; preds = %8073
  %8081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8082 = call i32 @fileno(ptr noundef %8081) #9
  %8083 = call i32 @isatty(i32 noundef %8082) #9
  %8084 = icmp ne i32 %8083, 0
  br i1 %8084, label %8085, label %8102

8085:                                             ; preds = %8080
  %8086 = load i32, ptr %184, align 4, !tbaa !5
  %8087 = call ptr @__errno_location() #10
  store i32 %8086, ptr %8087, align 4, !tbaa !5
  %8088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8089 = load i32, ptr @test_count, align 4, !tbaa !5
  %8090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8091 = load i32, ptr %8090, align 4, !tbaa !5
  %8092 = call ptr @s2n_strerror(i32 noundef %8091, ptr noundef @.str.4)
  %8093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8094 = load i32, ptr %8093, align 4, !tbaa !5
  %8095 = call ptr @s2n_strerror_debug(i32 noundef %8094, ptr noundef @.str.4)
  %8096 = call ptr @__errno_location() #10
  %8097 = load i32, ptr %8096, align 4, !tbaa !5
  %8098 = call ptr @strerror(i32 noundef %8097) #9
  %8099 = call ptr @__errno_location() #10
  %8100 = load i32, ptr %8099, align 4, !tbaa !5
  %8101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8088, ptr noundef @.str.2, i32 noundef %8089, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 382, ptr noundef %8092, ptr noundef %8095, ptr noundef %8098, i32 noundef %8100) #9
  br label %8119

8102:                                             ; preds = %8080, %8073
  %8103 = load i32, ptr %184, align 4, !tbaa !5
  %8104 = call ptr @__errno_location() #10
  store i32 %8103, ptr %8104, align 4, !tbaa !5
  %8105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8106 = load i32, ptr @test_count, align 4, !tbaa !5
  %8107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8108 = load i32, ptr %8107, align 4, !tbaa !5
  %8109 = call ptr @s2n_strerror(i32 noundef %8108, ptr noundef @.str.4)
  %8110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8111 = load i32, ptr %8110, align 4, !tbaa !5
  %8112 = call ptr @s2n_strerror_debug(i32 noundef %8111, ptr noundef @.str.4)
  %8113 = call ptr @__errno_location() #10
  %8114 = load i32, ptr %8113, align 4, !tbaa !5
  %8115 = call ptr @strerror(i32 noundef %8114) #9
  %8116 = call ptr @__errno_location() #10
  %8117 = load i32, ptr %8116, align 4, !tbaa !5
  %8118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8105, ptr noundef @.str.5, i32 noundef %8106, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 382, ptr noundef %8109, ptr noundef %8112, ptr noundef %8115, i32 noundef %8117) #9
  br label %8119

8119:                                             ; preds = %8102, %8085
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #9
  br label %8120

8120:                                             ; preds = %8119
  br label %8121

8121:                                             ; preds = %8120
  call void @exit(i32 noundef 1) #11
  unreachable

8122:                                             ; No predecessors!
  br label %8123

8123:                                             ; preds = %8122
  br label %8124

8124:                                             ; preds = %8123, %8065
  br label %8125

8125:                                             ; preds = %8124
  br label %8126

8126:                                             ; preds = %8125
  br label %8127

8127:                                             ; preds = %8126
  %8128 = load i32, ptr @test_count, align 4, !tbaa !5
  %8129 = add nsw i32 %8128, 1
  store i32 %8129, ptr @test_count, align 4, !tbaa !5
  %8130 = load ptr, ptr %170, align 8, !tbaa !9
  %8131 = load ptr, ptr %169, align 8, !tbaa !9
  %8132 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %8130, ptr noundef %8131)
  %8133 = icmp eq i32 %8132, -1
  br i1 %8133, label %8134, label %8187

8134:                                             ; preds = %8127
  br label %8135

8135:                                             ; preds = %8134
  br label %8136

8136:                                             ; preds = %8135
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #9
  %8137 = call ptr @__errno_location() #10
  %8138 = load i32, ptr %8137, align 4, !tbaa !5
  store i32 %8138, ptr %185, align 4, !tbaa !5
  %8139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8140 = call i32 @s2n_print_stacktrace(ptr noundef %8139)
  %8141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8142 = trunc i8 %8141 to i1
  br i1 %8142, label %8143, label %8165

8143:                                             ; preds = %8136
  %8144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8145 = call i32 @fileno(ptr noundef %8144) #9
  %8146 = call i32 @isatty(i32 noundef %8145) #9
  %8147 = icmp ne i32 %8146, 0
  br i1 %8147, label %8148, label %8165

8148:                                             ; preds = %8143
  %8149 = load i32, ptr %185, align 4, !tbaa !5
  %8150 = call ptr @__errno_location() #10
  store i32 %8149, ptr %8150, align 4, !tbaa !5
  %8151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8152 = load i32, ptr @test_count, align 4, !tbaa !5
  %8153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8154 = load i32, ptr %8153, align 4, !tbaa !5
  %8155 = call ptr @s2n_strerror(i32 noundef %8154, ptr noundef @.str.4)
  %8156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8157 = load i32, ptr %8156, align 4, !tbaa !5
  %8158 = call ptr @s2n_strerror_debug(i32 noundef %8157, ptr noundef @.str.4)
  %8159 = call ptr @__errno_location() #10
  %8160 = load i32, ptr %8159, align 4, !tbaa !5
  %8161 = call ptr @strerror(i32 noundef %8160) #9
  %8162 = call ptr @__errno_location() #10
  %8163 = load i32, ptr %8162, align 4, !tbaa !5
  %8164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8151, ptr noundef @.str.2, i32 noundef %8152, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 385, ptr noundef %8155, ptr noundef %8158, ptr noundef %8161, i32 noundef %8163) #9
  br label %8182

8165:                                             ; preds = %8143, %8136
  %8166 = load i32, ptr %185, align 4, !tbaa !5
  %8167 = call ptr @__errno_location() #10
  store i32 %8166, ptr %8167, align 4, !tbaa !5
  %8168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8169 = load i32, ptr @test_count, align 4, !tbaa !5
  %8170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8171 = load i32, ptr %8170, align 4, !tbaa !5
  %8172 = call ptr @s2n_strerror(i32 noundef %8171, ptr noundef @.str.4)
  %8173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8174 = load i32, ptr %8173, align 4, !tbaa !5
  %8175 = call ptr @s2n_strerror_debug(i32 noundef %8174, ptr noundef @.str.4)
  %8176 = call ptr @__errno_location() #10
  %8177 = load i32, ptr %8176, align 4, !tbaa !5
  %8178 = call ptr @strerror(i32 noundef %8177) #9
  %8179 = call ptr @__errno_location() #10
  %8180 = load i32, ptr %8179, align 4, !tbaa !5
  %8181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8168, ptr noundef @.str.5, i32 noundef %8169, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 385, ptr noundef %8172, ptr noundef %8175, ptr noundef %8178, i32 noundef %8180) #9
  br label %8182

8182:                                             ; preds = %8165, %8148
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #9
  br label %8183

8183:                                             ; preds = %8182
  br label %8184

8184:                                             ; preds = %8183
  call void @exit(i32 noundef 1) #11
  unreachable

8185:                                             ; No predecessors!
  br label %8186

8186:                                             ; preds = %8185
  br label %8187

8187:                                             ; preds = %8186, %8127
  br label %8188

8188:                                             ; preds = %8187
  br label %8189

8189:                                             ; preds = %8188
  br label %8190

8190:                                             ; preds = %8189
  %8191 = load i32, ptr @test_count, align 4, !tbaa !5
  %8192 = add nsw i32 %8191, 1
  store i32 %8192, ptr @test_count, align 4, !tbaa !5
  %8193 = load ptr, ptr %170, align 8, !tbaa !9
  %8194 = call i32 @s2n_connection_client_cert_used(ptr noundef %8193)
  %8195 = icmp ne i32 %8194, 0
  br i1 %8195, label %8196, label %8249

8196:                                             ; preds = %8190
  br label %8197

8197:                                             ; preds = %8196
  br label %8198

8198:                                             ; preds = %8197
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #9
  %8199 = call ptr @__errno_location() #10
  %8200 = load i32, ptr %8199, align 4, !tbaa !5
  store i32 %8200, ptr %186, align 4, !tbaa !5
  %8201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8202 = call i32 @s2n_print_stacktrace(ptr noundef %8201)
  %8203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8204 = trunc i8 %8203 to i1
  br i1 %8204, label %8205, label %8227

8205:                                             ; preds = %8198
  %8206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8207 = call i32 @fileno(ptr noundef %8206) #9
  %8208 = call i32 @isatty(i32 noundef %8207) #9
  %8209 = icmp ne i32 %8208, 0
  br i1 %8209, label %8210, label %8227

8210:                                             ; preds = %8205
  %8211 = load i32, ptr %186, align 4, !tbaa !5
  %8212 = call ptr @__errno_location() #10
  store i32 %8211, ptr %8212, align 4, !tbaa !5
  %8213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8214 = load i32, ptr @test_count, align 4, !tbaa !5
  %8215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8216 = load i32, ptr %8215, align 4, !tbaa !5
  %8217 = call ptr @s2n_strerror(i32 noundef %8216, ptr noundef @.str.4)
  %8218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8219 = load i32, ptr %8218, align 4, !tbaa !5
  %8220 = call ptr @s2n_strerror_debug(i32 noundef %8219, ptr noundef @.str.4)
  %8221 = call ptr @__errno_location() #10
  %8222 = load i32, ptr %8221, align 4, !tbaa !5
  %8223 = call ptr @strerror(i32 noundef %8222) #9
  %8224 = call ptr @__errno_location() #10
  %8225 = load i32, ptr %8224, align 4, !tbaa !5
  %8226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8213, ptr noundef @.str.2, i32 noundef %8214, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 388, ptr noundef %8217, ptr noundef %8220, ptr noundef %8223, i32 noundef %8225) #9
  br label %8244

8227:                                             ; preds = %8205, %8198
  %8228 = load i32, ptr %186, align 4, !tbaa !5
  %8229 = call ptr @__errno_location() #10
  store i32 %8228, ptr %8229, align 4, !tbaa !5
  %8230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8231 = load i32, ptr @test_count, align 4, !tbaa !5
  %8232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8233 = load i32, ptr %8232, align 4, !tbaa !5
  %8234 = call ptr @s2n_strerror(i32 noundef %8233, ptr noundef @.str.4)
  %8235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8236 = load i32, ptr %8235, align 4, !tbaa !5
  %8237 = call ptr @s2n_strerror_debug(i32 noundef %8236, ptr noundef @.str.4)
  %8238 = call ptr @__errno_location() #10
  %8239 = load i32, ptr %8238, align 4, !tbaa !5
  %8240 = call ptr @strerror(i32 noundef %8239) #9
  %8241 = call ptr @__errno_location() #10
  %8242 = load i32, ptr %8241, align 4, !tbaa !5
  %8243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8230, ptr noundef @.str.5, i32 noundef %8231, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 388, ptr noundef %8234, ptr noundef %8237, ptr noundef %8240, i32 noundef %8242) #9
  br label %8244

8244:                                             ; preds = %8227, %8210
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #9
  br label %8245

8245:                                             ; preds = %8244
  br label %8246

8246:                                             ; preds = %8245
  call void @exit(i32 noundef 1) #11
  unreachable

8247:                                             ; No predecessors!
  br label %8248

8248:                                             ; preds = %8247
  br label %8249

8249:                                             ; preds = %8248, %8190
  br label %8250

8250:                                             ; preds = %8249
  br label %8251

8251:                                             ; preds = %8250
  br label %8252

8252:                                             ; preds = %8251
  %8253 = load i32, ptr @test_count, align 4, !tbaa !5
  %8254 = add nsw i32 %8253, 1
  store i32 %8254, ptr @test_count, align 4, !tbaa !5
  %8255 = load ptr, ptr %169, align 8, !tbaa !9
  %8256 = call i32 @s2n_connection_client_cert_used(ptr noundef %8255)
  %8257 = icmp ne i32 %8256, 0
  br i1 %8257, label %8258, label %8311

8258:                                             ; preds = %8252
  br label %8259

8259:                                             ; preds = %8258
  br label %8260

8260:                                             ; preds = %8259
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #9
  %8261 = call ptr @__errno_location() #10
  %8262 = load i32, ptr %8261, align 4, !tbaa !5
  store i32 %8262, ptr %187, align 4, !tbaa !5
  %8263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8264 = call i32 @s2n_print_stacktrace(ptr noundef %8263)
  %8265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8266 = trunc i8 %8265 to i1
  br i1 %8266, label %8267, label %8289

8267:                                             ; preds = %8260
  %8268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8269 = call i32 @fileno(ptr noundef %8268) #9
  %8270 = call i32 @isatty(i32 noundef %8269) #9
  %8271 = icmp ne i32 %8270, 0
  br i1 %8271, label %8272, label %8289

8272:                                             ; preds = %8267
  %8273 = load i32, ptr %187, align 4, !tbaa !5
  %8274 = call ptr @__errno_location() #10
  store i32 %8273, ptr %8274, align 4, !tbaa !5
  %8275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8276 = load i32, ptr @test_count, align 4, !tbaa !5
  %8277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call ptr @s2n_strerror(i32 noundef %8278, ptr noundef @.str.4)
  %8280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8281 = load i32, ptr %8280, align 4, !tbaa !5
  %8282 = call ptr @s2n_strerror_debug(i32 noundef %8281, ptr noundef @.str.4)
  %8283 = call ptr @__errno_location() #10
  %8284 = load i32, ptr %8283, align 4, !tbaa !5
  %8285 = call ptr @strerror(i32 noundef %8284) #9
  %8286 = call ptr @__errno_location() #10
  %8287 = load i32, ptr %8286, align 4, !tbaa !5
  %8288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8275, ptr noundef @.str.2, i32 noundef %8276, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 389, ptr noundef %8279, ptr noundef %8282, ptr noundef %8285, i32 noundef %8287) #9
  br label %8306

8289:                                             ; preds = %8267, %8260
  %8290 = load i32, ptr %187, align 4, !tbaa !5
  %8291 = call ptr @__errno_location() #10
  store i32 %8290, ptr %8291, align 4, !tbaa !5
  %8292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8293 = load i32, ptr @test_count, align 4, !tbaa !5
  %8294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8295 = load i32, ptr %8294, align 4, !tbaa !5
  %8296 = call ptr @s2n_strerror(i32 noundef %8295, ptr noundef @.str.4)
  %8297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8298 = load i32, ptr %8297, align 4, !tbaa !5
  %8299 = call ptr @s2n_strerror_debug(i32 noundef %8298, ptr noundef @.str.4)
  %8300 = call ptr @__errno_location() #10
  %8301 = load i32, ptr %8300, align 4, !tbaa !5
  %8302 = call ptr @strerror(i32 noundef %8301) #9
  %8303 = call ptr @__errno_location() #10
  %8304 = load i32, ptr %8303, align 4, !tbaa !5
  %8305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8292, ptr noundef @.str.5, i32 noundef %8293, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 389, ptr noundef %8296, ptr noundef %8299, ptr noundef %8302, i32 noundef %8304) #9
  br label %8306

8306:                                             ; preds = %8289, %8272
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #9
  br label %8307

8307:                                             ; preds = %8306
  br label %8308

8308:                                             ; preds = %8307
  call void @exit(i32 noundef 1) #11
  unreachable

8309:                                             ; No predecessors!
  br label %8310

8310:                                             ; preds = %8309
  br label %8311

8311:                                             ; preds = %8310, %8252
  br label %8312

8312:                                             ; preds = %8311
  br label %8313

8313:                                             ; preds = %8312
  br label %8314

8314:                                             ; preds = %8313
  %8315 = load i32, ptr @test_count, align 4, !tbaa !5
  %8316 = add nsw i32 %8315, 1
  store i32 %8316, ptr @test_count, align 4, !tbaa !5
  %8317 = load ptr, ptr %169, align 8, !tbaa !9
  %8318 = call i32 @s2n_connection_free(ptr noundef %8317)
  %8319 = icmp eq i32 %8318, -1
  br i1 %8319, label %8320, label %8373

8320:                                             ; preds = %8314
  br label %8321

8321:                                             ; preds = %8320
  br label %8322

8322:                                             ; preds = %8321
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #9
  %8323 = call ptr @__errno_location() #10
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  store i32 %8324, ptr %188, align 4, !tbaa !5
  %8325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8326 = call i32 @s2n_print_stacktrace(ptr noundef %8325)
  %8327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8328 = trunc i8 %8327 to i1
  br i1 %8328, label %8329, label %8351

8329:                                             ; preds = %8322
  %8330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8331 = call i32 @fileno(ptr noundef %8330) #9
  %8332 = call i32 @isatty(i32 noundef %8331) #9
  %8333 = icmp ne i32 %8332, 0
  br i1 %8333, label %8334, label %8351

8334:                                             ; preds = %8329
  %8335 = load i32, ptr %188, align 4, !tbaa !5
  %8336 = call ptr @__errno_location() #10
  store i32 %8335, ptr %8336, align 4, !tbaa !5
  %8337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8338 = load i32, ptr @test_count, align 4, !tbaa !5
  %8339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8340 = load i32, ptr %8339, align 4, !tbaa !5
  %8341 = call ptr @s2n_strerror(i32 noundef %8340, ptr noundef @.str.4)
  %8342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call ptr @s2n_strerror_debug(i32 noundef %8343, ptr noundef @.str.4)
  %8345 = call ptr @__errno_location() #10
  %8346 = load i32, ptr %8345, align 4, !tbaa !5
  %8347 = call ptr @strerror(i32 noundef %8346) #9
  %8348 = call ptr @__errno_location() #10
  %8349 = load i32, ptr %8348, align 4, !tbaa !5
  %8350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8337, ptr noundef @.str.2, i32 noundef %8338, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 391, ptr noundef %8341, ptr noundef %8344, ptr noundef %8347, i32 noundef %8349) #9
  br label %8368

8351:                                             ; preds = %8329, %8322
  %8352 = load i32, ptr %188, align 4, !tbaa !5
  %8353 = call ptr @__errno_location() #10
  store i32 %8352, ptr %8353, align 4, !tbaa !5
  %8354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8355 = load i32, ptr @test_count, align 4, !tbaa !5
  %8356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8357 = load i32, ptr %8356, align 4, !tbaa !5
  %8358 = call ptr @s2n_strerror(i32 noundef %8357, ptr noundef @.str.4)
  %8359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8360 = load i32, ptr %8359, align 4, !tbaa !5
  %8361 = call ptr @s2n_strerror_debug(i32 noundef %8360, ptr noundef @.str.4)
  %8362 = call ptr @__errno_location() #10
  %8363 = load i32, ptr %8362, align 4, !tbaa !5
  %8364 = call ptr @strerror(i32 noundef %8363) #9
  %8365 = call ptr @__errno_location() #10
  %8366 = load i32, ptr %8365, align 4, !tbaa !5
  %8367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8354, ptr noundef @.str.5, i32 noundef %8355, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 391, ptr noundef %8358, ptr noundef %8361, ptr noundef %8364, i32 noundef %8366) #9
  br label %8368

8368:                                             ; preds = %8351, %8334
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #9
  br label %8369

8369:                                             ; preds = %8368
  br label %8370

8370:                                             ; preds = %8369
  call void @exit(i32 noundef 1) #11
  unreachable

8371:                                             ; No predecessors!
  br label %8372

8372:                                             ; preds = %8371
  br label %8373

8373:                                             ; preds = %8372, %8314
  br label %8374

8374:                                             ; preds = %8373
  br label %8375

8375:                                             ; preds = %8374
  br label %8376

8376:                                             ; preds = %8375
  %8377 = load i32, ptr @test_count, align 4, !tbaa !5
  %8378 = add nsw i32 %8377, 1
  store i32 %8378, ptr @test_count, align 4, !tbaa !5
  %8379 = load ptr, ptr %170, align 8, !tbaa !9
  %8380 = call i32 @s2n_connection_free(ptr noundef %8379)
  %8381 = icmp eq i32 %8380, -1
  br i1 %8381, label %8382, label %8435

8382:                                             ; preds = %8376
  br label %8383

8383:                                             ; preds = %8382
  br label %8384

8384:                                             ; preds = %8383
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #9
  %8385 = call ptr @__errno_location() #10
  %8386 = load i32, ptr %8385, align 4, !tbaa !5
  store i32 %8386, ptr %189, align 4, !tbaa !5
  %8387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8388 = call i32 @s2n_print_stacktrace(ptr noundef %8387)
  %8389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8390 = trunc i8 %8389 to i1
  br i1 %8390, label %8391, label %8413

8391:                                             ; preds = %8384
  %8392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8393 = call i32 @fileno(ptr noundef %8392) #9
  %8394 = call i32 @isatty(i32 noundef %8393) #9
  %8395 = icmp ne i32 %8394, 0
  br i1 %8395, label %8396, label %8413

8396:                                             ; preds = %8391
  %8397 = load i32, ptr %189, align 4, !tbaa !5
  %8398 = call ptr @__errno_location() #10
  store i32 %8397, ptr %8398, align 4, !tbaa !5
  %8399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8400 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8402, ptr noundef @.str.4)
  %8404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call ptr @s2n_strerror_debug(i32 noundef %8405, ptr noundef @.str.4)
  %8407 = call ptr @__errno_location() #10
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  %8409 = call ptr @strerror(i32 noundef %8408) #9
  %8410 = call ptr @__errno_location() #10
  %8411 = load i32, ptr %8410, align 4, !tbaa !5
  %8412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8399, ptr noundef @.str.2, i32 noundef %8400, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 392, ptr noundef %8403, ptr noundef %8406, ptr noundef %8409, i32 noundef %8411) #9
  br label %8430

8413:                                             ; preds = %8391, %8384
  %8414 = load i32, ptr %189, align 4, !tbaa !5
  %8415 = call ptr @__errno_location() #10
  store i32 %8414, ptr %8415, align 4, !tbaa !5
  %8416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8417 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8419, ptr noundef @.str.4)
  %8421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8422 = load i32, ptr %8421, align 4, !tbaa !5
  %8423 = call ptr @s2n_strerror_debug(i32 noundef %8422, ptr noundef @.str.4)
  %8424 = call ptr @__errno_location() #10
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  %8426 = call ptr @strerror(i32 noundef %8425) #9
  %8427 = call ptr @__errno_location() #10
  %8428 = load i32, ptr %8427, align 4, !tbaa !5
  %8429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8416, ptr noundef @.str.5, i32 noundef %8417, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 392, ptr noundef %8420, ptr noundef %8423, ptr noundef %8426, i32 noundef %8428) #9
  br label %8430

8430:                                             ; preds = %8413, %8396
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #9
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

8432:                                             ; preds = %8431
  call void @exit(i32 noundef 1) #11
  unreachable

8433:                                             ; No predecessors!
  br label %8434

8434:                                             ; preds = %8433
  br label %8435

8435:                                             ; preds = %8434, %8376
  br label %8436

8436:                                             ; preds = %8435
  br label %8437

8437:                                             ; preds = %8436
  br label %8438

8438:                                             ; preds = %8437
  %8439 = load i32, ptr @test_count, align 4, !tbaa !5
  %8440 = add nsw i32 %8439, 1
  store i32 %8440, ptr @test_count, align 4, !tbaa !5
  %8441 = call i32 @s2n_io_pair_close(ptr noundef %176)
  %8442 = icmp eq i32 %8441, -1
  br i1 %8442, label %8443, label %8496

8443:                                             ; preds = %8438
  br label %8444

8444:                                             ; preds = %8443
  br label %8445

8445:                                             ; preds = %8444
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #9
  %8446 = call ptr @__errno_location() #10
  %8447 = load i32, ptr %8446, align 4, !tbaa !5
  store i32 %8447, ptr %190, align 4, !tbaa !5
  %8448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8449 = call i32 @s2n_print_stacktrace(ptr noundef %8448)
  %8450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8451 = trunc i8 %8450 to i1
  br i1 %8451, label %8452, label %8474

8452:                                             ; preds = %8445
  %8453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8454 = call i32 @fileno(ptr noundef %8453) #9
  %8455 = call i32 @isatty(i32 noundef %8454) #9
  %8456 = icmp ne i32 %8455, 0
  br i1 %8456, label %8457, label %8474

8457:                                             ; preds = %8452
  %8458 = load i32, ptr %190, align 4, !tbaa !5
  %8459 = call ptr @__errno_location() #10
  store i32 %8458, ptr %8459, align 4, !tbaa !5
  %8460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8461 = load i32, ptr @test_count, align 4, !tbaa !5
  %8462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8463 = load i32, ptr %8462, align 4, !tbaa !5
  %8464 = call ptr @s2n_strerror(i32 noundef %8463, ptr noundef @.str.4)
  %8465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8466 = load i32, ptr %8465, align 4, !tbaa !5
  %8467 = call ptr @s2n_strerror_debug(i32 noundef %8466, ptr noundef @.str.4)
  %8468 = call ptr @__errno_location() #10
  %8469 = load i32, ptr %8468, align 4, !tbaa !5
  %8470 = call ptr @strerror(i32 noundef %8469) #9
  %8471 = call ptr @__errno_location() #10
  %8472 = load i32, ptr %8471, align 4, !tbaa !5
  %8473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8460, ptr noundef @.str.2, i32 noundef %8461, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 393, ptr noundef %8464, ptr noundef %8467, ptr noundef %8470, i32 noundef %8472) #9
  br label %8491

8474:                                             ; preds = %8452, %8445
  %8475 = load i32, ptr %190, align 4, !tbaa !5
  %8476 = call ptr @__errno_location() #10
  store i32 %8475, ptr %8476, align 4, !tbaa !5
  %8477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8478 = load i32, ptr @test_count, align 4, !tbaa !5
  %8479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8480 = load i32, ptr %8479, align 4, !tbaa !5
  %8481 = call ptr @s2n_strerror(i32 noundef %8480, ptr noundef @.str.4)
  %8482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8483 = load i32, ptr %8482, align 4, !tbaa !5
  %8484 = call ptr @s2n_strerror_debug(i32 noundef %8483, ptr noundef @.str.4)
  %8485 = call ptr @__errno_location() #10
  %8486 = load i32, ptr %8485, align 4, !tbaa !5
  %8487 = call ptr @strerror(i32 noundef %8486) #9
  %8488 = call ptr @__errno_location() #10
  %8489 = load i32, ptr %8488, align 4, !tbaa !5
  %8490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8477, ptr noundef @.str.5, i32 noundef %8478, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 393, ptr noundef %8481, ptr noundef %8484, ptr noundef %8487, i32 noundef %8489) #9
  br label %8491

8491:                                             ; preds = %8474, %8457
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #9
  br label %8492

8492:                                             ; preds = %8491
  br label %8493

8493:                                             ; preds = %8492
  call void @exit(i32 noundef 1) #11
  unreachable

8494:                                             ; No predecessors!
  br label %8495

8495:                                             ; preds = %8494
  br label %8496

8496:                                             ; preds = %8495, %8438
  br label %8497

8497:                                             ; preds = %8496
  br label %8498

8498:                                             ; preds = %8497
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #9
  store i32 0, ptr %42, align 4
  br label %8499

8499:                                             ; preds = %8498, %7559
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %168) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %167) #9
  %8500 = load i32, ptr %42, align 4
  switch i32 %8500, label %10829 [
    i32 0, label %8501
    i32 704, label %8502
  ]

8501:                                             ; preds = %8499
  br label %8502

8502:                                             ; preds = %8501, %8499
  %8503 = load i32, ptr %166, align 4, !tbaa !5
  %8504 = add nsw i32 %8503, 1
  store i32 %8504, ptr %166, align 4, !tbaa !5
  br label %7473, !llvm.loop !33

8505:                                             ; preds = %7480
  br label %8506

8506:                                             ; preds = %8505
  %8507 = load i32, ptr @test_count, align 4, !tbaa !5
  %8508 = add nsw i32 %8507, 1
  store i32 %8508, ptr @test_count, align 4, !tbaa !5
  %8509 = load ptr, ptr %6, align 8, !tbaa !9
  %8510 = call i32 @s2n_config_free(ptr noundef %8509)
  %8511 = icmp eq i32 %8510, -1
  br i1 %8511, label %8512, label %8565

8512:                                             ; preds = %8506
  br label %8513

8513:                                             ; preds = %8512
  br label %8514

8514:                                             ; preds = %8513
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #9
  %8515 = call ptr @__errno_location() #10
  %8516 = load i32, ptr %8515, align 4, !tbaa !5
  store i32 %8516, ptr %191, align 4, !tbaa !5
  %8517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8518 = call i32 @s2n_print_stacktrace(ptr noundef %8517)
  %8519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8520 = trunc i8 %8519 to i1
  br i1 %8520, label %8521, label %8543

8521:                                             ; preds = %8514
  %8522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8523 = call i32 @fileno(ptr noundef %8522) #9
  %8524 = call i32 @isatty(i32 noundef %8523) #9
  %8525 = icmp ne i32 %8524, 0
  br i1 %8525, label %8526, label %8543

8526:                                             ; preds = %8521
  %8527 = load i32, ptr %191, align 4, !tbaa !5
  %8528 = call ptr @__errno_location() #10
  store i32 %8527, ptr %8528, align 4, !tbaa !5
  %8529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8530 = load i32, ptr @test_count, align 4, !tbaa !5
  %8531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8532 = load i32, ptr %8531, align 4, !tbaa !5
  %8533 = call ptr @s2n_strerror(i32 noundef %8532, ptr noundef @.str.4)
  %8534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8535 = load i32, ptr %8534, align 4, !tbaa !5
  %8536 = call ptr @s2n_strerror_debug(i32 noundef %8535, ptr noundef @.str.4)
  %8537 = call ptr @__errno_location() #10
  %8538 = load i32, ptr %8537, align 4, !tbaa !5
  %8539 = call ptr @strerror(i32 noundef %8538) #9
  %8540 = call ptr @__errno_location() #10
  %8541 = load i32, ptr %8540, align 4, !tbaa !5
  %8542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8529, ptr noundef @.str.2, i32 noundef %8530, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 396, ptr noundef %8533, ptr noundef %8536, ptr noundef %8539, i32 noundef %8541) #9
  br label %8560

8543:                                             ; preds = %8521, %8514
  %8544 = load i32, ptr %191, align 4, !tbaa !5
  %8545 = call ptr @__errno_location() #10
  store i32 %8544, ptr %8545, align 4, !tbaa !5
  %8546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8547 = load i32, ptr @test_count, align 4, !tbaa !5
  %8548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8549 = load i32, ptr %8548, align 4, !tbaa !5
  %8550 = call ptr @s2n_strerror(i32 noundef %8549, ptr noundef @.str.4)
  %8551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8552 = load i32, ptr %8551, align 4, !tbaa !5
  %8553 = call ptr @s2n_strerror_debug(i32 noundef %8552, ptr noundef @.str.4)
  %8554 = call ptr @__errno_location() #10
  %8555 = load i32, ptr %8554, align 4, !tbaa !5
  %8556 = call ptr @strerror(i32 noundef %8555) #9
  %8557 = call ptr @__errno_location() #10
  %8558 = load i32, ptr %8557, align 4, !tbaa !5
  %8559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8546, ptr noundef @.str.5, i32 noundef %8547, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 396, ptr noundef %8550, ptr noundef %8553, ptr noundef %8556, i32 noundef %8558) #9
  br label %8560

8560:                                             ; preds = %8543, %8526
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #9
  br label %8561

8561:                                             ; preds = %8560
  br label %8562

8562:                                             ; preds = %8561
  call void @exit(i32 noundef 1) #11
  unreachable

8563:                                             ; No predecessors!
  br label %8564

8564:                                             ; preds = %8563
  br label %8565

8565:                                             ; preds = %8564, %8506
  br label %8566

8566:                                             ; preds = %8565
  br label %8567

8567:                                             ; preds = %8566
  br label %8568

8568:                                             ; preds = %8567
  %8569 = load i32, ptr @test_count, align 4, !tbaa !5
  %8570 = add nsw i32 %8569, 1
  store i32 %8570, ptr @test_count, align 4, !tbaa !5
  %8571 = call ptr @s2n_config_new()
  store ptr %8571, ptr %6, align 8, !tbaa !9
  %8572 = icmp eq ptr %8571, null
  br i1 %8572, label %8573, label %8626

8573:                                             ; preds = %8568
  br label %8574

8574:                                             ; preds = %8573
  br label %8575

8575:                                             ; preds = %8574
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #9
  %8576 = call ptr @__errno_location() #10
  %8577 = load i32, ptr %8576, align 4, !tbaa !5
  store i32 %8577, ptr %192, align 4, !tbaa !5
  %8578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8579 = call i32 @s2n_print_stacktrace(ptr noundef %8578)
  %8580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8581 = trunc i8 %8580 to i1
  br i1 %8581, label %8582, label %8604

8582:                                             ; preds = %8575
  %8583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8584 = call i32 @fileno(ptr noundef %8583) #9
  %8585 = call i32 @isatty(i32 noundef %8584) #9
  %8586 = icmp ne i32 %8585, 0
  br i1 %8586, label %8587, label %8604

8587:                                             ; preds = %8582
  %8588 = load i32, ptr %192, align 4, !tbaa !5
  %8589 = call ptr @__errno_location() #10
  store i32 %8588, ptr %8589, align 4, !tbaa !5
  %8590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8591 = load i32, ptr @test_count, align 4, !tbaa !5
  %8592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8593 = load i32, ptr %8592, align 4, !tbaa !5
  %8594 = call ptr @s2n_strerror(i32 noundef %8593, ptr noundef @.str.4)
  %8595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8596 = load i32, ptr %8595, align 4, !tbaa !5
  %8597 = call ptr @s2n_strerror_debug(i32 noundef %8596, ptr noundef @.str.4)
  %8598 = call ptr @__errno_location() #10
  %8599 = load i32, ptr %8598, align 4, !tbaa !5
  %8600 = call ptr @strerror(i32 noundef %8599) #9
  %8601 = call ptr @__errno_location() #10
  %8602 = load i32, ptr %8601, align 4, !tbaa !5
  %8603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8590, ptr noundef @.str.2, i32 noundef %8591, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 404, ptr noundef %8594, ptr noundef %8597, ptr noundef %8600, i32 noundef %8602) #9
  br label %8621

8604:                                             ; preds = %8582, %8575
  %8605 = load i32, ptr %192, align 4, !tbaa !5
  %8606 = call ptr @__errno_location() #10
  store i32 %8605, ptr %8606, align 4, !tbaa !5
  %8607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8608 = load i32, ptr @test_count, align 4, !tbaa !5
  %8609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8610 = load i32, ptr %8609, align 4, !tbaa !5
  %8611 = call ptr @s2n_strerror(i32 noundef %8610, ptr noundef @.str.4)
  %8612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8613 = load i32, ptr %8612, align 4, !tbaa !5
  %8614 = call ptr @s2n_strerror_debug(i32 noundef %8613, ptr noundef @.str.4)
  %8615 = call ptr @__errno_location() #10
  %8616 = load i32, ptr %8615, align 4, !tbaa !5
  %8617 = call ptr @strerror(i32 noundef %8616) #9
  %8618 = call ptr @__errno_location() #10
  %8619 = load i32, ptr %8618, align 4, !tbaa !5
  %8620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8607, ptr noundef @.str.5, i32 noundef %8608, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 404, ptr noundef %8611, ptr noundef %8614, ptr noundef %8617, i32 noundef %8619) #9
  br label %8621

8621:                                             ; preds = %8604, %8587
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #9
  br label %8622

8622:                                             ; preds = %8621
  br label %8623

8623:                                             ; preds = %8622
  call void @exit(i32 noundef 1) #11
  unreachable

8624:                                             ; No predecessors!
  br label %8625

8625:                                             ; preds = %8624
  br label %8626

8626:                                             ; preds = %8625, %8568
  br label %8627

8627:                                             ; preds = %8626
  br label %8628

8628:                                             ; preds = %8627
  br label %8629

8629:                                             ; preds = %8628
  %8630 = load i32, ptr @test_count, align 4, !tbaa !5
  %8631 = add nsw i32 %8630, 1
  store i32 %8631, ptr @test_count, align 4, !tbaa !5
  %8632 = load ptr, ptr %6, align 8, !tbaa !9
  %8633 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %8632, ptr noundef @.str.12)
  %8634 = icmp eq i32 %8633, -1
  br i1 %8634, label %8635, label %8688

8635:                                             ; preds = %8629
  br label %8636

8636:                                             ; preds = %8635
  br label %8637

8637:                                             ; preds = %8636
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #9
  %8638 = call ptr @__errno_location() #10
  %8639 = load i32, ptr %8638, align 4, !tbaa !5
  store i32 %8639, ptr %193, align 4, !tbaa !5
  %8640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8641 = call i32 @s2n_print_stacktrace(ptr noundef %8640)
  %8642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8643 = trunc i8 %8642 to i1
  br i1 %8643, label %8644, label %8666

8644:                                             ; preds = %8637
  %8645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8646 = call i32 @fileno(ptr noundef %8645) #9
  %8647 = call i32 @isatty(i32 noundef %8646) #9
  %8648 = icmp ne i32 %8647, 0
  br i1 %8648, label %8649, label %8666

8649:                                             ; preds = %8644
  %8650 = load i32, ptr %193, align 4, !tbaa !5
  %8651 = call ptr @__errno_location() #10
  store i32 %8650, ptr %8651, align 4, !tbaa !5
  %8652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8653 = load i32, ptr @test_count, align 4, !tbaa !5
  %8654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8655 = load i32, ptr %8654, align 4, !tbaa !5
  %8656 = call ptr @s2n_strerror(i32 noundef %8655, ptr noundef @.str.4)
  %8657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8658 = load i32, ptr %8657, align 4, !tbaa !5
  %8659 = call ptr @s2n_strerror_debug(i32 noundef %8658, ptr noundef @.str.4)
  %8660 = call ptr @__errno_location() #10
  %8661 = load i32, ptr %8660, align 4, !tbaa !5
  %8662 = call ptr @strerror(i32 noundef %8661) #9
  %8663 = call ptr @__errno_location() #10
  %8664 = load i32, ptr %8663, align 4, !tbaa !5
  %8665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8652, ptr noundef @.str.2, i32 noundef %8653, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 405, ptr noundef %8656, ptr noundef %8659, ptr noundef %8662, i32 noundef %8664) #9
  br label %8683

8666:                                             ; preds = %8644, %8637
  %8667 = load i32, ptr %193, align 4, !tbaa !5
  %8668 = call ptr @__errno_location() #10
  store i32 %8667, ptr %8668, align 4, !tbaa !5
  %8669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8670 = load i32, ptr @test_count, align 4, !tbaa !5
  %8671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8672 = load i32, ptr %8671, align 4, !tbaa !5
  %8673 = call ptr @s2n_strerror(i32 noundef %8672, ptr noundef @.str.4)
  %8674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8675 = load i32, ptr %8674, align 4, !tbaa !5
  %8676 = call ptr @s2n_strerror_debug(i32 noundef %8675, ptr noundef @.str.4)
  %8677 = call ptr @__errno_location() #10
  %8678 = load i32, ptr %8677, align 4, !tbaa !5
  %8679 = call ptr @strerror(i32 noundef %8678) #9
  %8680 = call ptr @__errno_location() #10
  %8681 = load i32, ptr %8680, align 4, !tbaa !5
  %8682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8669, ptr noundef @.str.5, i32 noundef %8670, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 405, ptr noundef %8673, ptr noundef %8676, ptr noundef %8679, i32 noundef %8681) #9
  br label %8683

8683:                                             ; preds = %8666, %8649
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #9
  br label %8684

8684:                                             ; preds = %8683
  br label %8685

8685:                                             ; preds = %8684
  call void @exit(i32 noundef 1) #11
  unreachable

8686:                                             ; No predecessors!
  br label %8687

8687:                                             ; preds = %8686
  br label %8688

8688:                                             ; preds = %8687, %8629
  br label %8689

8689:                                             ; preds = %8688
  br label %8690

8690:                                             ; preds = %8689
  br label %8691

8691:                                             ; preds = %8690
  %8692 = load i32, ptr @test_count, align 4, !tbaa !5
  %8693 = add nsw i32 %8692, 1
  store i32 %8693, ptr @test_count, align 4, !tbaa !5
  %8694 = load ptr, ptr %6, align 8, !tbaa !9
  %8695 = load ptr, ptr %13, align 8, !tbaa !9
  %8696 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %8694, ptr noundef %8695)
  %8697 = icmp eq i32 %8696, -1
  br i1 %8697, label %8698, label %8751

8698:                                             ; preds = %8691
  br label %8699

8699:                                             ; preds = %8698
  br label %8700

8700:                                             ; preds = %8699
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #9
  %8701 = call ptr @__errno_location() #10
  %8702 = load i32, ptr %8701, align 4, !tbaa !5
  store i32 %8702, ptr %194, align 4, !tbaa !5
  %8703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8704 = call i32 @s2n_print_stacktrace(ptr noundef %8703)
  %8705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8706 = trunc i8 %8705 to i1
  br i1 %8706, label %8707, label %8729

8707:                                             ; preds = %8700
  %8708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8709 = call i32 @fileno(ptr noundef %8708) #9
  %8710 = call i32 @isatty(i32 noundef %8709) #9
  %8711 = icmp ne i32 %8710, 0
  br i1 %8711, label %8712, label %8729

8712:                                             ; preds = %8707
  %8713 = load i32, ptr %194, align 4, !tbaa !5
  %8714 = call ptr @__errno_location() #10
  store i32 %8713, ptr %8714, align 4, !tbaa !5
  %8715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8716 = load i32, ptr @test_count, align 4, !tbaa !5
  %8717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8718 = load i32, ptr %8717, align 4, !tbaa !5
  %8719 = call ptr @s2n_strerror(i32 noundef %8718, ptr noundef @.str.4)
  %8720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8721 = load i32, ptr %8720, align 4, !tbaa !5
  %8722 = call ptr @s2n_strerror_debug(i32 noundef %8721, ptr noundef @.str.4)
  %8723 = call ptr @__errno_location() #10
  %8724 = load i32, ptr %8723, align 4, !tbaa !5
  %8725 = call ptr @strerror(i32 noundef %8724) #9
  %8726 = call ptr @__errno_location() #10
  %8727 = load i32, ptr %8726, align 4, !tbaa !5
  %8728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8715, ptr noundef @.str.2, i32 noundef %8716, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 406, ptr noundef %8719, ptr noundef %8722, ptr noundef %8725, i32 noundef %8727) #9
  br label %8746

8729:                                             ; preds = %8707, %8700
  %8730 = load i32, ptr %194, align 4, !tbaa !5
  %8731 = call ptr @__errno_location() #10
  store i32 %8730, ptr %8731, align 4, !tbaa !5
  %8732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8733 = load i32, ptr @test_count, align 4, !tbaa !5
  %8734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  %8736 = call ptr @s2n_strerror(i32 noundef %8735, ptr noundef @.str.4)
  %8737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8738 = load i32, ptr %8737, align 4, !tbaa !5
  %8739 = call ptr @s2n_strerror_debug(i32 noundef %8738, ptr noundef @.str.4)
  %8740 = call ptr @__errno_location() #10
  %8741 = load i32, ptr %8740, align 4, !tbaa !5
  %8742 = call ptr @strerror(i32 noundef %8741) #9
  %8743 = call ptr @__errno_location() #10
  %8744 = load i32, ptr %8743, align 4, !tbaa !5
  %8745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8732, ptr noundef @.str.5, i32 noundef %8733, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 406, ptr noundef %8736, ptr noundef %8739, ptr noundef %8742, i32 noundef %8744) #9
  br label %8746

8746:                                             ; preds = %8729, %8712
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #9
  br label %8747

8747:                                             ; preds = %8746
  br label %8748

8748:                                             ; preds = %8747
  call void @exit(i32 noundef 1) #11
  unreachable

8749:                                             ; No predecessors!
  br label %8750

8750:                                             ; preds = %8749
  br label %8751

8751:                                             ; preds = %8750, %8691
  br label %8752

8752:                                             ; preds = %8751
  br label %8753

8753:                                             ; preds = %8752
  br label %8754

8754:                                             ; preds = %8753
  %8755 = load i32, ptr @test_count, align 4, !tbaa !5
  %8756 = add nsw i32 %8755, 1
  store i32 %8756, ptr @test_count, align 4, !tbaa !5
  %8757 = load ptr, ptr %6, align 8, !tbaa !9
  %8758 = call i32 @s2n_config_disable_x509_verification(ptr noundef %8757)
  %8759 = icmp eq i32 %8758, -1
  br i1 %8759, label %8760, label %8813

8760:                                             ; preds = %8754
  br label %8761

8761:                                             ; preds = %8760
  br label %8762

8762:                                             ; preds = %8761
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #9
  %8763 = call ptr @__errno_location() #10
  %8764 = load i32, ptr %8763, align 4, !tbaa !5
  store i32 %8764, ptr %195, align 4, !tbaa !5
  %8765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8766 = call i32 @s2n_print_stacktrace(ptr noundef %8765)
  %8767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8768 = trunc i8 %8767 to i1
  br i1 %8768, label %8769, label %8791

8769:                                             ; preds = %8762
  %8770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8771 = call i32 @fileno(ptr noundef %8770) #9
  %8772 = call i32 @isatty(i32 noundef %8771) #9
  %8773 = icmp ne i32 %8772, 0
  br i1 %8773, label %8774, label %8791

8774:                                             ; preds = %8769
  %8775 = load i32, ptr %195, align 4, !tbaa !5
  %8776 = call ptr @__errno_location() #10
  store i32 %8775, ptr %8776, align 4, !tbaa !5
  %8777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8778 = load i32, ptr @test_count, align 4, !tbaa !5
  %8779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8780 = load i32, ptr %8779, align 4, !tbaa !5
  %8781 = call ptr @s2n_strerror(i32 noundef %8780, ptr noundef @.str.4)
  %8782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8783 = load i32, ptr %8782, align 4, !tbaa !5
  %8784 = call ptr @s2n_strerror_debug(i32 noundef %8783, ptr noundef @.str.4)
  %8785 = call ptr @__errno_location() #10
  %8786 = load i32, ptr %8785, align 4, !tbaa !5
  %8787 = call ptr @strerror(i32 noundef %8786) #9
  %8788 = call ptr @__errno_location() #10
  %8789 = load i32, ptr %8788, align 4, !tbaa !5
  %8790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8777, ptr noundef @.str.2, i32 noundef %8778, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 407, ptr noundef %8781, ptr noundef %8784, ptr noundef %8787, i32 noundef %8789) #9
  br label %8808

8791:                                             ; preds = %8769, %8762
  %8792 = load i32, ptr %195, align 4, !tbaa !5
  %8793 = call ptr @__errno_location() #10
  store i32 %8792, ptr %8793, align 4, !tbaa !5
  %8794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8795 = load i32, ptr @test_count, align 4, !tbaa !5
  %8796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8797 = load i32, ptr %8796, align 4, !tbaa !5
  %8798 = call ptr @s2n_strerror(i32 noundef %8797, ptr noundef @.str.4)
  %8799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8800 = load i32, ptr %8799, align 4, !tbaa !5
  %8801 = call ptr @s2n_strerror_debug(i32 noundef %8800, ptr noundef @.str.4)
  %8802 = call ptr @__errno_location() #10
  %8803 = load i32, ptr %8802, align 4, !tbaa !5
  %8804 = call ptr @strerror(i32 noundef %8803) #9
  %8805 = call ptr @__errno_location() #10
  %8806 = load i32, ptr %8805, align 4, !tbaa !5
  %8807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8794, ptr noundef @.str.5, i32 noundef %8795, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 407, ptr noundef %8798, ptr noundef %8801, ptr noundef %8804, i32 noundef %8806) #9
  br label %8808

8808:                                             ; preds = %8791, %8774
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #9
  br label %8809

8809:                                             ; preds = %8808
  br label %8810

8810:                                             ; preds = %8809
  call void @exit(i32 noundef 1) #11
  unreachable

8811:                                             ; No predecessors!
  br label %8812

8812:                                             ; preds = %8811
  br label %8813

8813:                                             ; preds = %8812, %8754
  br label %8814

8814:                                             ; preds = %8813
  br label %8815

8815:                                             ; preds = %8814
  br label %8816

8816:                                             ; preds = %8815
  %8817 = load i32, ptr @test_count, align 4, !tbaa !5
  %8818 = add nsw i32 %8817, 1
  store i32 %8818, ptr @test_count, align 4, !tbaa !5
  %8819 = load ptr, ptr %6, align 8, !tbaa !9
  %8820 = call i32 @s2n_config_set_client_auth_type(ptr noundef %8819, i32 noundef 2)
  %8821 = icmp eq i32 %8820, -1
  br i1 %8821, label %8822, label %8875

8822:                                             ; preds = %8816
  br label %8823

8823:                                             ; preds = %8822
  br label %8824

8824:                                             ; preds = %8823
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #9
  %8825 = call ptr @__errno_location() #10
  %8826 = load i32, ptr %8825, align 4, !tbaa !5
  store i32 %8826, ptr %196, align 4, !tbaa !5
  %8827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8828 = call i32 @s2n_print_stacktrace(ptr noundef %8827)
  %8829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8830 = trunc i8 %8829 to i1
  br i1 %8830, label %8831, label %8853

8831:                                             ; preds = %8824
  %8832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8833 = call i32 @fileno(ptr noundef %8832) #9
  %8834 = call i32 @isatty(i32 noundef %8833) #9
  %8835 = icmp ne i32 %8834, 0
  br i1 %8835, label %8836, label %8853

8836:                                             ; preds = %8831
  %8837 = load i32, ptr %196, align 4, !tbaa !5
  %8838 = call ptr @__errno_location() #10
  store i32 %8837, ptr %8838, align 4, !tbaa !5
  %8839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8840 = load i32, ptr @test_count, align 4, !tbaa !5
  %8841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8842 = load i32, ptr %8841, align 4, !tbaa !5
  %8843 = call ptr @s2n_strerror(i32 noundef %8842, ptr noundef @.str.4)
  %8844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8845 = load i32, ptr %8844, align 4, !tbaa !5
  %8846 = call ptr @s2n_strerror_debug(i32 noundef %8845, ptr noundef @.str.4)
  %8847 = call ptr @__errno_location() #10
  %8848 = load i32, ptr %8847, align 4, !tbaa !5
  %8849 = call ptr @strerror(i32 noundef %8848) #9
  %8850 = call ptr @__errno_location() #10
  %8851 = load i32, ptr %8850, align 4, !tbaa !5
  %8852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8839, ptr noundef @.str.2, i32 noundef %8840, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 408, ptr noundef %8843, ptr noundef %8846, ptr noundef %8849, i32 noundef %8851) #9
  br label %8870

8853:                                             ; preds = %8831, %8824
  %8854 = load i32, ptr %196, align 4, !tbaa !5
  %8855 = call ptr @__errno_location() #10
  store i32 %8854, ptr %8855, align 4, !tbaa !5
  %8856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8857 = load i32, ptr @test_count, align 4, !tbaa !5
  %8858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8859 = load i32, ptr %8858, align 4, !tbaa !5
  %8860 = call ptr @s2n_strerror(i32 noundef %8859, ptr noundef @.str.4)
  %8861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8862 = load i32, ptr %8861, align 4, !tbaa !5
  %8863 = call ptr @s2n_strerror_debug(i32 noundef %8862, ptr noundef @.str.4)
  %8864 = call ptr @__errno_location() #10
  %8865 = load i32, ptr %8864, align 4, !tbaa !5
  %8866 = call ptr @strerror(i32 noundef %8865) #9
  %8867 = call ptr @__errno_location() #10
  %8868 = load i32, ptr %8867, align 4, !tbaa !5
  %8869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8856, ptr noundef @.str.5, i32 noundef %8857, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 408, ptr noundef %8860, ptr noundef %8863, ptr noundef %8866, i32 noundef %8868) #9
  br label %8870

8870:                                             ; preds = %8853, %8836
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #9
  br label %8871

8871:                                             ; preds = %8870
  br label %8872

8872:                                             ; preds = %8871
  call void @exit(i32 noundef 1) #11
  unreachable

8873:                                             ; No predecessors!
  br label %8874

8874:                                             ; preds = %8873
  br label %8875

8875:                                             ; preds = %8874, %8816
  br label %8876

8876:                                             ; preds = %8875
  br label %8877

8877:                                             ; preds = %8876
  br label %8878

8878:                                             ; preds = %8877
  %8879 = load i32, ptr @test_count, align 4, !tbaa !5
  %8880 = add nsw i32 %8879, 1
  store i32 %8880, ptr @test_count, align 4, !tbaa !5
  %8881 = load ptr, ptr %7, align 8, !tbaa !9
  %8882 = call i32 @s2n_config_free(ptr noundef %8881)
  %8883 = icmp eq i32 %8882, -1
  br i1 %8883, label %8884, label %8937

8884:                                             ; preds = %8878
  br label %8885

8885:                                             ; preds = %8884
  br label %8886

8886:                                             ; preds = %8885
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #9
  %8887 = call ptr @__errno_location() #10
  %8888 = load i32, ptr %8887, align 4, !tbaa !5
  store i32 %8888, ptr %197, align 4, !tbaa !5
  %8889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8890 = call i32 @s2n_print_stacktrace(ptr noundef %8889)
  %8891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8892 = trunc i8 %8891 to i1
  br i1 %8892, label %8893, label %8915

8893:                                             ; preds = %8886
  %8894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8895 = call i32 @fileno(ptr noundef %8894) #9
  %8896 = call i32 @isatty(i32 noundef %8895) #9
  %8897 = icmp ne i32 %8896, 0
  br i1 %8897, label %8898, label %8915

8898:                                             ; preds = %8893
  %8899 = load i32, ptr %197, align 4, !tbaa !5
  %8900 = call ptr @__errno_location() #10
  store i32 %8899, ptr %8900, align 4, !tbaa !5
  %8901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8902 = load i32, ptr @test_count, align 4, !tbaa !5
  %8903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8904 = load i32, ptr %8903, align 4, !tbaa !5
  %8905 = call ptr @s2n_strerror(i32 noundef %8904, ptr noundef @.str.4)
  %8906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8907 = load i32, ptr %8906, align 4, !tbaa !5
  %8908 = call ptr @s2n_strerror_debug(i32 noundef %8907, ptr noundef @.str.4)
  %8909 = call ptr @__errno_location() #10
  %8910 = load i32, ptr %8909, align 4, !tbaa !5
  %8911 = call ptr @strerror(i32 noundef %8910) #9
  %8912 = call ptr @__errno_location() #10
  %8913 = load i32, ptr %8912, align 4, !tbaa !5
  %8914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8901, ptr noundef @.str.2, i32 noundef %8902, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 411, ptr noundef %8905, ptr noundef %8908, ptr noundef %8911, i32 noundef %8913) #9
  br label %8932

8915:                                             ; preds = %8893, %8886
  %8916 = load i32, ptr %197, align 4, !tbaa !5
  %8917 = call ptr @__errno_location() #10
  store i32 %8916, ptr %8917, align 4, !tbaa !5
  %8918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8919 = load i32, ptr @test_count, align 4, !tbaa !5
  %8920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8921 = load i32, ptr %8920, align 4, !tbaa !5
  %8922 = call ptr @s2n_strerror(i32 noundef %8921, ptr noundef @.str.4)
  %8923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8924 = load i32, ptr %8923, align 4, !tbaa !5
  %8925 = call ptr @s2n_strerror_debug(i32 noundef %8924, ptr noundef @.str.4)
  %8926 = call ptr @__errno_location() #10
  %8927 = load i32, ptr %8926, align 4, !tbaa !5
  %8928 = call ptr @strerror(i32 noundef %8927) #9
  %8929 = call ptr @__errno_location() #10
  %8930 = load i32, ptr %8929, align 4, !tbaa !5
  %8931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8918, ptr noundef @.str.5, i32 noundef %8919, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 411, ptr noundef %8922, ptr noundef %8925, ptr noundef %8928, i32 noundef %8930) #9
  br label %8932

8932:                                             ; preds = %8915, %8898
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #9
  br label %8933

8933:                                             ; preds = %8932
  br label %8934

8934:                                             ; preds = %8933
  call void @exit(i32 noundef 1) #11
  unreachable

8935:                                             ; No predecessors!
  br label %8936

8936:                                             ; preds = %8935
  br label %8937

8937:                                             ; preds = %8936, %8878
  br label %8938

8938:                                             ; preds = %8937
  br label %8939

8939:                                             ; preds = %8938
  br label %8940

8940:                                             ; preds = %8939
  %8941 = load i32, ptr @test_count, align 4, !tbaa !5
  %8942 = add nsw i32 %8941, 1
  store i32 %8942, ptr @test_count, align 4, !tbaa !5
  %8943 = call ptr @s2n_config_new()
  store ptr %8943, ptr %7, align 8, !tbaa !9
  %8944 = icmp eq ptr %8943, null
  br i1 %8944, label %8945, label %8998

8945:                                             ; preds = %8940
  br label %8946

8946:                                             ; preds = %8945
  br label %8947

8947:                                             ; preds = %8946
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #9
  %8948 = call ptr @__errno_location() #10
  %8949 = load i32, ptr %8948, align 4, !tbaa !5
  store i32 %8949, ptr %198, align 4, !tbaa !5
  %8950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8951 = call i32 @s2n_print_stacktrace(ptr noundef %8950)
  %8952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8953 = trunc i8 %8952 to i1
  br i1 %8953, label %8954, label %8976

8954:                                             ; preds = %8947
  %8955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8956 = call i32 @fileno(ptr noundef %8955) #9
  %8957 = call i32 @isatty(i32 noundef %8956) #9
  %8958 = icmp ne i32 %8957, 0
  br i1 %8958, label %8959, label %8976

8959:                                             ; preds = %8954
  %8960 = load i32, ptr %198, align 4, !tbaa !5
  %8961 = call ptr @__errno_location() #10
  store i32 %8960, ptr %8961, align 4, !tbaa !5
  %8962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8963 = load i32, ptr @test_count, align 4, !tbaa !5
  %8964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8965 = load i32, ptr %8964, align 4, !tbaa !5
  %8966 = call ptr @s2n_strerror(i32 noundef %8965, ptr noundef @.str.4)
  %8967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8968 = load i32, ptr %8967, align 4, !tbaa !5
  %8969 = call ptr @s2n_strerror_debug(i32 noundef %8968, ptr noundef @.str.4)
  %8970 = call ptr @__errno_location() #10
  %8971 = load i32, ptr %8970, align 4, !tbaa !5
  %8972 = call ptr @strerror(i32 noundef %8971) #9
  %8973 = call ptr @__errno_location() #10
  %8974 = load i32, ptr %8973, align 4, !tbaa !5
  %8975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8962, ptr noundef @.str.2, i32 noundef %8963, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 412, ptr noundef %8966, ptr noundef %8969, ptr noundef %8972, i32 noundef %8974) #9
  br label %8993

8976:                                             ; preds = %8954, %8947
  %8977 = load i32, ptr %198, align 4, !tbaa !5
  %8978 = call ptr @__errno_location() #10
  store i32 %8977, ptr %8978, align 4, !tbaa !5
  %8979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8980 = load i32, ptr @test_count, align 4, !tbaa !5
  %8981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8982 = load i32, ptr %8981, align 4, !tbaa !5
  %8983 = call ptr @s2n_strerror(i32 noundef %8982, ptr noundef @.str.4)
  %8984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8985 = load i32, ptr %8984, align 4, !tbaa !5
  %8986 = call ptr @s2n_strerror_debug(i32 noundef %8985, ptr noundef @.str.4)
  %8987 = call ptr @__errno_location() #10
  %8988 = load i32, ptr %8987, align 4, !tbaa !5
  %8989 = call ptr @strerror(i32 noundef %8988) #9
  %8990 = call ptr @__errno_location() #10
  %8991 = load i32, ptr %8990, align 4, !tbaa !5
  %8992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8979, ptr noundef @.str.5, i32 noundef %8980, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 412, ptr noundef %8983, ptr noundef %8986, ptr noundef %8989, i32 noundef %8991) #9
  br label %8993

8993:                                             ; preds = %8976, %8959
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #9
  br label %8994

8994:                                             ; preds = %8993
  br label %8995

8995:                                             ; preds = %8994
  call void @exit(i32 noundef 1) #11
  unreachable

8996:                                             ; No predecessors!
  br label %8997

8997:                                             ; preds = %8996
  br label %8998

8998:                                             ; preds = %8997, %8940
  br label %8999

8999:                                             ; preds = %8998
  br label %9000

9000:                                             ; preds = %8999
  br label %9001

9001:                                             ; preds = %9000
  %9002 = load i32, ptr @test_count, align 4, !tbaa !5
  %9003 = add nsw i32 %9002, 1
  store i32 %9003, ptr @test_count, align 4, !tbaa !5
  %9004 = load ptr, ptr %7, align 8, !tbaa !9
  %9005 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %9004, ptr noundef @.str.12)
  %9006 = icmp eq i32 %9005, -1
  br i1 %9006, label %9007, label %9060

9007:                                             ; preds = %9001
  br label %9008

9008:                                             ; preds = %9007
  br label %9009

9009:                                             ; preds = %9008
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #9
  %9010 = call ptr @__errno_location() #10
  %9011 = load i32, ptr %9010, align 4, !tbaa !5
  store i32 %9011, ptr %199, align 4, !tbaa !5
  %9012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9013 = call i32 @s2n_print_stacktrace(ptr noundef %9012)
  %9014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9015 = trunc i8 %9014 to i1
  br i1 %9015, label %9016, label %9038

9016:                                             ; preds = %9009
  %9017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9018 = call i32 @fileno(ptr noundef %9017) #9
  %9019 = call i32 @isatty(i32 noundef %9018) #9
  %9020 = icmp ne i32 %9019, 0
  br i1 %9020, label %9021, label %9038

9021:                                             ; preds = %9016
  %9022 = load i32, ptr %199, align 4, !tbaa !5
  %9023 = call ptr @__errno_location() #10
  store i32 %9022, ptr %9023, align 4, !tbaa !5
  %9024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9025 = load i32, ptr @test_count, align 4, !tbaa !5
  %9026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9027 = load i32, ptr %9026, align 4, !tbaa !5
  %9028 = call ptr @s2n_strerror(i32 noundef %9027, ptr noundef @.str.4)
  %9029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9030 = load i32, ptr %9029, align 4, !tbaa !5
  %9031 = call ptr @s2n_strerror_debug(i32 noundef %9030, ptr noundef @.str.4)
  %9032 = call ptr @__errno_location() #10
  %9033 = load i32, ptr %9032, align 4, !tbaa !5
  %9034 = call ptr @strerror(i32 noundef %9033) #9
  %9035 = call ptr @__errno_location() #10
  %9036 = load i32, ptr %9035, align 4, !tbaa !5
  %9037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9024, ptr noundef @.str.2, i32 noundef %9025, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 413, ptr noundef %9028, ptr noundef %9031, ptr noundef %9034, i32 noundef %9036) #9
  br label %9055

9038:                                             ; preds = %9016, %9009
  %9039 = load i32, ptr %199, align 4, !tbaa !5
  %9040 = call ptr @__errno_location() #10
  store i32 %9039, ptr %9040, align 4, !tbaa !5
  %9041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9042 = load i32, ptr @test_count, align 4, !tbaa !5
  %9043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9044 = load i32, ptr %9043, align 4, !tbaa !5
  %9045 = call ptr @s2n_strerror(i32 noundef %9044, ptr noundef @.str.4)
  %9046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9047 = load i32, ptr %9046, align 4, !tbaa !5
  %9048 = call ptr @s2n_strerror_debug(i32 noundef %9047, ptr noundef @.str.4)
  %9049 = call ptr @__errno_location() #10
  %9050 = load i32, ptr %9049, align 4, !tbaa !5
  %9051 = call ptr @strerror(i32 noundef %9050) #9
  %9052 = call ptr @__errno_location() #10
  %9053 = load i32, ptr %9052, align 4, !tbaa !5
  %9054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9041, ptr noundef @.str.5, i32 noundef %9042, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 413, ptr noundef %9045, ptr noundef %9048, ptr noundef %9051, i32 noundef %9053) #9
  br label %9055

9055:                                             ; preds = %9038, %9021
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #9
  br label %9056

9056:                                             ; preds = %9055
  br label %9057

9057:                                             ; preds = %9056
  call void @exit(i32 noundef 1) #11
  unreachable

9058:                                             ; No predecessors!
  br label %9059

9059:                                             ; preds = %9058
  br label %9060

9060:                                             ; preds = %9059, %9001
  br label %9061

9061:                                             ; preds = %9060
  br label %9062

9062:                                             ; preds = %9061
  br label %9063

9063:                                             ; preds = %9062
  %9064 = load i32, ptr @test_count, align 4, !tbaa !5
  %9065 = add nsw i32 %9064, 1
  store i32 %9065, ptr @test_count, align 4, !tbaa !5
  %9066 = load ptr, ptr %12, align 8, !tbaa !9
  %9067 = call i32 @s2n_read_test_pem(ptr noundef @.str.18, ptr noundef %9066, i64 noundef 12000)
  %9068 = icmp eq i32 %9067, -1
  br i1 %9068, label %9069, label %9122

9069:                                             ; preds = %9063
  br label %9070

9070:                                             ; preds = %9069
  br label %9071

9071:                                             ; preds = %9070
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #9
  %9072 = call ptr @__errno_location() #10
  %9073 = load i32, ptr %9072, align 4, !tbaa !5
  store i32 %9073, ptr %200, align 4, !tbaa !5
  %9074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9075 = call i32 @s2n_print_stacktrace(ptr noundef %9074)
  %9076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9077 = trunc i8 %9076 to i1
  br i1 %9077, label %9078, label %9100

9078:                                             ; preds = %9071
  %9079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9080 = call i32 @fileno(ptr noundef %9079) #9
  %9081 = call i32 @isatty(i32 noundef %9080) #9
  %9082 = icmp ne i32 %9081, 0
  br i1 %9082, label %9083, label %9100

9083:                                             ; preds = %9078
  %9084 = load i32, ptr %200, align 4, !tbaa !5
  %9085 = call ptr @__errno_location() #10
  store i32 %9084, ptr %9085, align 4, !tbaa !5
  %9086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9087 = load i32, ptr @test_count, align 4, !tbaa !5
  %9088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9089 = load i32, ptr %9088, align 4, !tbaa !5
  %9090 = call ptr @s2n_strerror(i32 noundef %9089, ptr noundef @.str.4)
  %9091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9092 = load i32, ptr %9091, align 4, !tbaa !5
  %9093 = call ptr @s2n_strerror_debug(i32 noundef %9092, ptr noundef @.str.4)
  %9094 = call ptr @__errno_location() #10
  %9095 = load i32, ptr %9094, align 4, !tbaa !5
  %9096 = call ptr @strerror(i32 noundef %9095) #9
  %9097 = call ptr @__errno_location() #10
  %9098 = load i32, ptr %9097, align 4, !tbaa !5
  %9099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9086, ptr noundef @.str.2, i32 noundef %9087, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 414, ptr noundef %9090, ptr noundef %9093, ptr noundef %9096, i32 noundef %9098) #9
  br label %9117

9100:                                             ; preds = %9078, %9071
  %9101 = load i32, ptr %200, align 4, !tbaa !5
  %9102 = call ptr @__errno_location() #10
  store i32 %9101, ptr %9102, align 4, !tbaa !5
  %9103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9104 = load i32, ptr @test_count, align 4, !tbaa !5
  %9105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9106 = load i32, ptr %9105, align 4, !tbaa !5
  %9107 = call ptr @s2n_strerror(i32 noundef %9106, ptr noundef @.str.4)
  %9108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9109 = load i32, ptr %9108, align 4, !tbaa !5
  %9110 = call ptr @s2n_strerror_debug(i32 noundef %9109, ptr noundef @.str.4)
  %9111 = call ptr @__errno_location() #10
  %9112 = load i32, ptr %9111, align 4, !tbaa !5
  %9113 = call ptr @strerror(i32 noundef %9112) #9
  %9114 = call ptr @__errno_location() #10
  %9115 = load i32, ptr %9114, align 4, !tbaa !5
  %9116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9103, ptr noundef @.str.5, i32 noundef %9104, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 414, ptr noundef %9107, ptr noundef %9110, ptr noundef %9113, i32 noundef %9115) #9
  br label %9117

9117:                                             ; preds = %9100, %9083
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #9
  br label %9118

9118:                                             ; preds = %9117
  br label %9119

9119:                                             ; preds = %9118
  call void @exit(i32 noundef 1) #11
  unreachable

9120:                                             ; No predecessors!
  br label %9121

9121:                                             ; preds = %9120
  br label %9122

9122:                                             ; preds = %9121, %9063
  br label %9123

9123:                                             ; preds = %9122
  br label %9124

9124:                                             ; preds = %9123
  br label %9125

9125:                                             ; preds = %9124
  %9126 = load i32, ptr @test_count, align 4, !tbaa !5
  %9127 = add nsw i32 %9126, 1
  store i32 %9127, ptr @test_count, align 4, !tbaa !5
  %9128 = load ptr, ptr %7, align 8, !tbaa !9
  %9129 = load ptr, ptr %13, align 8, !tbaa !9
  %9130 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9128, ptr noundef %9129)
  %9131 = icmp eq i32 %9130, -1
  br i1 %9131, label %9132, label %9185

9132:                                             ; preds = %9125
  br label %9133

9133:                                             ; preds = %9132
  br label %9134

9134:                                             ; preds = %9133
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #9
  %9135 = call ptr @__errno_location() #10
  %9136 = load i32, ptr %9135, align 4, !tbaa !5
  store i32 %9136, ptr %201, align 4, !tbaa !5
  %9137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9138 = call i32 @s2n_print_stacktrace(ptr noundef %9137)
  %9139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9140 = trunc i8 %9139 to i1
  br i1 %9140, label %9141, label %9163

9141:                                             ; preds = %9134
  %9142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9143 = call i32 @fileno(ptr noundef %9142) #9
  %9144 = call i32 @isatty(i32 noundef %9143) #9
  %9145 = icmp ne i32 %9144, 0
  br i1 %9145, label %9146, label %9163

9146:                                             ; preds = %9141
  %9147 = load i32, ptr %201, align 4, !tbaa !5
  %9148 = call ptr @__errno_location() #10
  store i32 %9147, ptr %9148, align 4, !tbaa !5
  %9149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9150 = load i32, ptr @test_count, align 4, !tbaa !5
  %9151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9152 = load i32, ptr %9151, align 4, !tbaa !5
  %9153 = call ptr @s2n_strerror(i32 noundef %9152, ptr noundef @.str.4)
  %9154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9155 = load i32, ptr %9154, align 4, !tbaa !5
  %9156 = call ptr @s2n_strerror_debug(i32 noundef %9155, ptr noundef @.str.4)
  %9157 = call ptr @__errno_location() #10
  %9158 = load i32, ptr %9157, align 4, !tbaa !5
  %9159 = call ptr @strerror(i32 noundef %9158) #9
  %9160 = call ptr @__errno_location() #10
  %9161 = load i32, ptr %9160, align 4, !tbaa !5
  %9162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9149, ptr noundef @.str.2, i32 noundef %9150, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 415, ptr noundef %9153, ptr noundef %9156, ptr noundef %9159, i32 noundef %9161) #9
  br label %9180

9163:                                             ; preds = %9141, %9134
  %9164 = load i32, ptr %201, align 4, !tbaa !5
  %9165 = call ptr @__errno_location() #10
  store i32 %9164, ptr %9165, align 4, !tbaa !5
  %9166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9167 = load i32, ptr @test_count, align 4, !tbaa !5
  %9168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9169 = load i32, ptr %9168, align 4, !tbaa !5
  %9170 = call ptr @s2n_strerror(i32 noundef %9169, ptr noundef @.str.4)
  %9171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9172 = load i32, ptr %9171, align 4, !tbaa !5
  %9173 = call ptr @s2n_strerror_debug(i32 noundef %9172, ptr noundef @.str.4)
  %9174 = call ptr @__errno_location() #10
  %9175 = load i32, ptr %9174, align 4, !tbaa !5
  %9176 = call ptr @strerror(i32 noundef %9175) #9
  %9177 = call ptr @__errno_location() #10
  %9178 = load i32, ptr %9177, align 4, !tbaa !5
  %9179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9166, ptr noundef @.str.5, i32 noundef %9167, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 415, ptr noundef %9170, ptr noundef %9173, ptr noundef %9176, i32 noundef %9178) #9
  br label %9180

9180:                                             ; preds = %9163, %9146
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #9
  br label %9181

9181:                                             ; preds = %9180
  br label %9182

9182:                                             ; preds = %9181
  call void @exit(i32 noundef 1) #11
  unreachable

9183:                                             ; No predecessors!
  br label %9184

9184:                                             ; preds = %9183
  br label %9185

9185:                                             ; preds = %9184, %9125
  br label %9186

9186:                                             ; preds = %9185
  br label %9187

9187:                                             ; preds = %9186
  br label %9188

9188:                                             ; preds = %9187
  %9189 = load i32, ptr @test_count, align 4, !tbaa !5
  %9190 = add nsw i32 %9189, 1
  store i32 %9190, ptr @test_count, align 4, !tbaa !5
  %9191 = load ptr, ptr %7, align 8, !tbaa !9
  %9192 = load ptr, ptr %12, align 8, !tbaa !9
  %9193 = call i32 @s2n_config_add_dhparams(ptr noundef %9191, ptr noundef %9192)
  %9194 = icmp eq i32 %9193, -1
  br i1 %9194, label %9195, label %9248

9195:                                             ; preds = %9188
  br label %9196

9196:                                             ; preds = %9195
  br label %9197

9197:                                             ; preds = %9196
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #9
  %9198 = call ptr @__errno_location() #10
  %9199 = load i32, ptr %9198, align 4, !tbaa !5
  store i32 %9199, ptr %202, align 4, !tbaa !5
  %9200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9201 = call i32 @s2n_print_stacktrace(ptr noundef %9200)
  %9202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9203 = trunc i8 %9202 to i1
  br i1 %9203, label %9204, label %9226

9204:                                             ; preds = %9197
  %9205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9206 = call i32 @fileno(ptr noundef %9205) #9
  %9207 = call i32 @isatty(i32 noundef %9206) #9
  %9208 = icmp ne i32 %9207, 0
  br i1 %9208, label %9209, label %9226

9209:                                             ; preds = %9204
  %9210 = load i32, ptr %202, align 4, !tbaa !5
  %9211 = call ptr @__errno_location() #10
  store i32 %9210, ptr %9211, align 4, !tbaa !5
  %9212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9213 = load i32, ptr @test_count, align 4, !tbaa !5
  %9214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9215 = load i32, ptr %9214, align 4, !tbaa !5
  %9216 = call ptr @s2n_strerror(i32 noundef %9215, ptr noundef @.str.4)
  %9217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9218 = load i32, ptr %9217, align 4, !tbaa !5
  %9219 = call ptr @s2n_strerror_debug(i32 noundef %9218, ptr noundef @.str.4)
  %9220 = call ptr @__errno_location() #10
  %9221 = load i32, ptr %9220, align 4, !tbaa !5
  %9222 = call ptr @strerror(i32 noundef %9221) #9
  %9223 = call ptr @__errno_location() #10
  %9224 = load i32, ptr %9223, align 4, !tbaa !5
  %9225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9212, ptr noundef @.str.2, i32 noundef %9213, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 416, ptr noundef %9216, ptr noundef %9219, ptr noundef %9222, i32 noundef %9224) #9
  br label %9243

9226:                                             ; preds = %9204, %9197
  %9227 = load i32, ptr %202, align 4, !tbaa !5
  %9228 = call ptr @__errno_location() #10
  store i32 %9227, ptr %9228, align 4, !tbaa !5
  %9229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9230 = load i32, ptr @test_count, align 4, !tbaa !5
  %9231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9232 = load i32, ptr %9231, align 4, !tbaa !5
  %9233 = call ptr @s2n_strerror(i32 noundef %9232, ptr noundef @.str.4)
  %9234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9235 = load i32, ptr %9234, align 4, !tbaa !5
  %9236 = call ptr @s2n_strerror_debug(i32 noundef %9235, ptr noundef @.str.4)
  %9237 = call ptr @__errno_location() #10
  %9238 = load i32, ptr %9237, align 4, !tbaa !5
  %9239 = call ptr @strerror(i32 noundef %9238) #9
  %9240 = call ptr @__errno_location() #10
  %9241 = load i32, ptr %9240, align 4, !tbaa !5
  %9242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9229, ptr noundef @.str.5, i32 noundef %9230, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 416, ptr noundef %9233, ptr noundef %9236, ptr noundef %9239, i32 noundef %9241) #9
  br label %9243

9243:                                             ; preds = %9226, %9209
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #9
  br label %9244

9244:                                             ; preds = %9243
  br label %9245

9245:                                             ; preds = %9244
  call void @exit(i32 noundef 1) #11
  unreachable

9246:                                             ; No predecessors!
  br label %9247

9247:                                             ; preds = %9246
  br label %9248

9248:                                             ; preds = %9247, %9188
  br label %9249

9249:                                             ; preds = %9248
  br label %9250

9250:                                             ; preds = %9249
  br label %9251

9251:                                             ; preds = %9250
  %9252 = load i32, ptr @test_count, align 4, !tbaa !5
  %9253 = add nsw i32 %9252, 1
  store i32 %9253, ptr @test_count, align 4, !tbaa !5
  %9254 = load ptr, ptr %7, align 8, !tbaa !9
  %9255 = getelementptr inbounds %struct.s2n_config, ptr %9254, i32 0, i32 7
  %9256 = load ptr, ptr %9255, align 8, !tbaa !15
  store ptr %9256, ptr %8, align 8, !tbaa !9
  %9257 = icmp eq ptr %9256, null
  br i1 %9257, label %9258, label %9311

9258:                                             ; preds = %9251
  br label %9259

9259:                                             ; preds = %9258
  br label %9260

9260:                                             ; preds = %9259
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #9
  %9261 = call ptr @__errno_location() #10
  %9262 = load i32, ptr %9261, align 4, !tbaa !5
  store i32 %9262, ptr %203, align 4, !tbaa !5
  %9263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9264 = call i32 @s2n_print_stacktrace(ptr noundef %9263)
  %9265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9266 = trunc i8 %9265 to i1
  br i1 %9266, label %9267, label %9289

9267:                                             ; preds = %9260
  %9268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9269 = call i32 @fileno(ptr noundef %9268) #9
  %9270 = call i32 @isatty(i32 noundef %9269) #9
  %9271 = icmp ne i32 %9270, 0
  br i1 %9271, label %9272, label %9289

9272:                                             ; preds = %9267
  %9273 = load i32, ptr %203, align 4, !tbaa !5
  %9274 = call ptr @__errno_location() #10
  store i32 %9273, ptr %9274, align 4, !tbaa !5
  %9275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9276 = load i32, ptr @test_count, align 4, !tbaa !5
  %9277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9278 = load i32, ptr %9277, align 4, !tbaa !5
  %9279 = call ptr @s2n_strerror(i32 noundef %9278, ptr noundef @.str.4)
  %9280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9281 = load i32, ptr %9280, align 4, !tbaa !5
  %9282 = call ptr @s2n_strerror_debug(i32 noundef %9281, ptr noundef @.str.4)
  %9283 = call ptr @__errno_location() #10
  %9284 = load i32, ptr %9283, align 4, !tbaa !5
  %9285 = call ptr @strerror(i32 noundef %9284) #9
  %9286 = call ptr @__errno_location() #10
  %9287 = load i32, ptr %9286, align 4, !tbaa !5
  %9288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9275, ptr noundef @.str.2, i32 noundef %9276, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 417, ptr noundef %9279, ptr noundef %9282, ptr noundef %9285, i32 noundef %9287) #9
  br label %9306

9289:                                             ; preds = %9267, %9260
  %9290 = load i32, ptr %203, align 4, !tbaa !5
  %9291 = call ptr @__errno_location() #10
  store i32 %9290, ptr %9291, align 4, !tbaa !5
  %9292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9293 = load i32, ptr @test_count, align 4, !tbaa !5
  %9294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9295 = load i32, ptr %9294, align 4, !tbaa !5
  %9296 = call ptr @s2n_strerror(i32 noundef %9295, ptr noundef @.str.4)
  %9297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9298 = load i32, ptr %9297, align 4, !tbaa !5
  %9299 = call ptr @s2n_strerror_debug(i32 noundef %9298, ptr noundef @.str.4)
  %9300 = call ptr @__errno_location() #10
  %9301 = load i32, ptr %9300, align 4, !tbaa !5
  %9302 = call ptr @strerror(i32 noundef %9301) #9
  %9303 = call ptr @__errno_location() #10
  %9304 = load i32, ptr %9303, align 4, !tbaa !5
  %9305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9292, ptr noundef @.str.5, i32 noundef %9293, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 417, ptr noundef %9296, ptr noundef %9299, ptr noundef %9302, i32 noundef %9304) #9
  br label %9306

9306:                                             ; preds = %9289, %9272
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #9
  br label %9307

9307:                                             ; preds = %9306
  br label %9308

9308:                                             ; preds = %9307
  call void @exit(i32 noundef 1) #11
  unreachable

9309:                                             ; No predecessors!
  br label %9310

9310:                                             ; preds = %9309
  br label %9311

9311:                                             ; preds = %9310, %9251
  br label %9312

9312:                                             ; preds = %9311
  br label %9313

9313:                                             ; preds = %9312
  br label %9314

9314:                                             ; preds = %9313
  %9315 = load i32, ptr @test_count, align 4, !tbaa !5
  %9316 = add nsw i32 %9315, 1
  store i32 %9316, ptr @test_count, align 4, !tbaa !5
  %9317 = load ptr, ptr %7, align 8, !tbaa !9
  %9318 = call i32 @s2n_config_set_client_auth_type(ptr noundef %9317, i32 noundef 2)
  %9319 = icmp eq i32 %9318, -1
  br i1 %9319, label %9320, label %9373

9320:                                             ; preds = %9314
  br label %9321

9321:                                             ; preds = %9320
  br label %9322

9322:                                             ; preds = %9321
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #9
  %9323 = call ptr @__errno_location() #10
  %9324 = load i32, ptr %9323, align 4, !tbaa !5
  store i32 %9324, ptr %204, align 4, !tbaa !5
  %9325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9326 = call i32 @s2n_print_stacktrace(ptr noundef %9325)
  %9327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9328 = trunc i8 %9327 to i1
  br i1 %9328, label %9329, label %9351

9329:                                             ; preds = %9322
  %9330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9331 = call i32 @fileno(ptr noundef %9330) #9
  %9332 = call i32 @isatty(i32 noundef %9331) #9
  %9333 = icmp ne i32 %9332, 0
  br i1 %9333, label %9334, label %9351

9334:                                             ; preds = %9329
  %9335 = load i32, ptr %204, align 4, !tbaa !5
  %9336 = call ptr @__errno_location() #10
  store i32 %9335, ptr %9336, align 4, !tbaa !5
  %9337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9338 = load i32, ptr @test_count, align 4, !tbaa !5
  %9339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9340 = load i32, ptr %9339, align 4, !tbaa !5
  %9341 = call ptr @s2n_strerror(i32 noundef %9340, ptr noundef @.str.4)
  %9342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9343 = load i32, ptr %9342, align 4, !tbaa !5
  %9344 = call ptr @s2n_strerror_debug(i32 noundef %9343, ptr noundef @.str.4)
  %9345 = call ptr @__errno_location() #10
  %9346 = load i32, ptr %9345, align 4, !tbaa !5
  %9347 = call ptr @strerror(i32 noundef %9346) #9
  %9348 = call ptr @__errno_location() #10
  %9349 = load i32, ptr %9348, align 4, !tbaa !5
  %9350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9337, ptr noundef @.str.2, i32 noundef %9338, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 418, ptr noundef %9341, ptr noundef %9344, ptr noundef %9347, i32 noundef %9349) #9
  br label %9368

9351:                                             ; preds = %9329, %9322
  %9352 = load i32, ptr %204, align 4, !tbaa !5
  %9353 = call ptr @__errno_location() #10
  store i32 %9352, ptr %9353, align 4, !tbaa !5
  %9354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9355 = load i32, ptr @test_count, align 4, !tbaa !5
  %9356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9357 = load i32, ptr %9356, align 4, !tbaa !5
  %9358 = call ptr @s2n_strerror(i32 noundef %9357, ptr noundef @.str.4)
  %9359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9360 = load i32, ptr %9359, align 4, !tbaa !5
  %9361 = call ptr @s2n_strerror_debug(i32 noundef %9360, ptr noundef @.str.4)
  %9362 = call ptr @__errno_location() #10
  %9363 = load i32, ptr %9362, align 4, !tbaa !5
  %9364 = call ptr @strerror(i32 noundef %9363) #9
  %9365 = call ptr @__errno_location() #10
  %9366 = load i32, ptr %9365, align 4, !tbaa !5
  %9367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9354, ptr noundef @.str.5, i32 noundef %9355, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 418, ptr noundef %9358, ptr noundef %9361, ptr noundef %9364, i32 noundef %9366) #9
  br label %9368

9368:                                             ; preds = %9351, %9334
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #9
  br label %9369

9369:                                             ; preds = %9368
  br label %9370

9370:                                             ; preds = %9369
  call void @exit(i32 noundef 1) #11
  unreachable

9371:                                             ; No predecessors!
  br label %9372

9372:                                             ; preds = %9371
  br label %9373

9373:                                             ; preds = %9372, %9314
  br label %9374

9374:                                             ; preds = %9373
  br label %9375

9375:                                             ; preds = %9374
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #9
  store i32 0, ptr %205, align 4, !tbaa !5
  br label %9376

9376:                                             ; preds = %10476, %9375
  %9377 = load i32, ptr %205, align 4, !tbaa !5
  %9378 = load ptr, ptr %9, align 8, !tbaa !9
  %9379 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %9378, i32 0, i32 0
  %9380 = load i16, ptr %9379, align 8, !tbaa !24
  %9381 = zext i16 %9380 to i32
  %9382 = icmp slt i32 %9377, %9381
  br i1 %9382, label %9384, label %9383

9383:                                             ; preds = %9376
  store i32 885, ptr %42, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #9
  br label %10479

9384:                                             ; preds = %9376
  call void @llvm.lifetime.start.p0(i64 24, ptr %206) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %207) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #9
  store ptr null, ptr %208, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #9
  store ptr null, ptr %209, align 8, !tbaa !9
  br label %9385

9385:                                             ; preds = %9384
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #9
  store i64 24, ptr %210, align 8, !tbaa !26
  %9386 = load i64, ptr %210, align 8, !tbaa !26
  %9387 = icmp ne i64 %9386, 0
  br i1 %9387, label %9388, label %9446

9388:                                             ; preds = %9385
  %9389 = load ptr, ptr %9, align 8, !tbaa !9
  %9390 = load i64, ptr %210, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %206, ptr align 8 %9389, i64 %9390, i1 false)
  %9391 = icmp eq ptr %206, null
  br i1 %9391, label %9392, label %9445

9392:                                             ; preds = %9388
  br label %9393

9393:                                             ; preds = %9392
  br label %9394

9394:                                             ; preds = %9393
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #9
  %9395 = call ptr @__errno_location() #10
  %9396 = load i32, ptr %9395, align 4, !tbaa !5
  store i32 %9396, ptr %211, align 4, !tbaa !5
  %9397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9398 = call i32 @s2n_print_stacktrace(ptr noundef %9397)
  %9399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9400 = trunc i8 %9399 to i1
  br i1 %9400, label %9401, label %9423

9401:                                             ; preds = %9394
  %9402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9403 = call i32 @fileno(ptr noundef %9402) #9
  %9404 = call i32 @isatty(i32 noundef %9403) #9
  %9405 = icmp ne i32 %9404, 0
  br i1 %9405, label %9406, label %9423

9406:                                             ; preds = %9401
  %9407 = load i32, ptr %211, align 4, !tbaa !5
  %9408 = call ptr @__errno_location() #10
  store i32 %9407, ptr %9408, align 4, !tbaa !5
  %9409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9410 = load i32, ptr @test_count, align 4, !tbaa !5
  %9411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9412 = load i32, ptr %9411, align 4, !tbaa !5
  %9413 = call ptr @s2n_strerror(i32 noundef %9412, ptr noundef @.str.4)
  %9414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9415 = load i32, ptr %9414, align 4, !tbaa !5
  %9416 = call ptr @s2n_strerror_debug(i32 noundef %9415, ptr noundef @.str.4)
  %9417 = call ptr @__errno_location() #10
  %9418 = load i32, ptr %9417, align 4, !tbaa !5
  %9419 = call ptr @strerror(i32 noundef %9418) #9
  %9420 = call ptr @__errno_location() #10
  %9421 = load i32, ptr %9420, align 4, !tbaa !5
  %9422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9409, ptr noundef @.str.2, i32 noundef %9410, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9413, ptr noundef %9416, ptr noundef %9419, i32 noundef %9421) #9
  br label %9440

9423:                                             ; preds = %9401, %9394
  %9424 = load i32, ptr %211, align 4, !tbaa !5
  %9425 = call ptr @__errno_location() #10
  store i32 %9424, ptr %9425, align 4, !tbaa !5
  %9426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9427 = load i32, ptr @test_count, align 4, !tbaa !5
  %9428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9429 = load i32, ptr %9428, align 4, !tbaa !5
  %9430 = call ptr @s2n_strerror(i32 noundef %9429, ptr noundef @.str.4)
  %9431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9432 = load i32, ptr %9431, align 4, !tbaa !5
  %9433 = call ptr @s2n_strerror_debug(i32 noundef %9432, ptr noundef @.str.4)
  %9434 = call ptr @__errno_location() #10
  %9435 = load i32, ptr %9434, align 4, !tbaa !5
  %9436 = call ptr @strerror(i32 noundef %9435) #9
  %9437 = call ptr @__errno_location() #10
  %9438 = load i32, ptr %9437, align 4, !tbaa !5
  %9439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9426, ptr noundef @.str.5, i32 noundef %9427, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9430, ptr noundef %9433, ptr noundef %9436, i32 noundef %9438) #9
  br label %9440

9440:                                             ; preds = %9423, %9406
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #9
  br label %9441

9441:                                             ; preds = %9440
  br label %9442

9442:                                             ; preds = %9441
  call void @exit(i32 noundef 1) #11
  unreachable

9443:                                             ; No predecessors!
  br label %9444

9444:                                             ; preds = %9443
  br label %9445

9445:                                             ; preds = %9444, %9388
  br label %9446

9446:                                             ; preds = %9445, %9385
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #9
  br label %9447

9447:                                             ; preds = %9446
  br label %9448

9448:                                             ; preds = %9447
  %9449 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %206, i32 0, i32 0
  store i16 1, ptr %9449, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %212) #9
  %9450 = load ptr, ptr %9, align 8, !tbaa !9
  %9451 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %9450, i32 0, i32 1
  %9452 = load ptr, ptr %9451, align 8, !tbaa !27
  %9453 = load i32, ptr %205, align 4, !tbaa !5
  %9454 = sext i32 %9453 to i64
  %9455 = getelementptr inbounds ptr, ptr %9452, i64 %9454
  %9456 = load ptr, ptr %9455, align 8, !tbaa !9
  store ptr %9456, ptr %212, align 8, !tbaa !9
  %9457 = load ptr, ptr %212, align 8, !tbaa !9
  %9458 = load i8, ptr %9457, align 8
  %9459 = and i8 %9458, 1
  %9460 = zext i8 %9459 to i32
  %9461 = icmp ne i32 %9460, 0
  br i1 %9461, label %9463, label %9462

9462:                                             ; preds = %9448
  store i32 887, ptr %42, align 4
  br label %10473

9463:                                             ; preds = %9448
  %9464 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %206, i32 0, i32 1
  store ptr %212, ptr %9464, align 8, !tbaa !27
  br label %9465

9465:                                             ; preds = %9463
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #9
  store i64 64, ptr %213, align 8, !tbaa !26
  %9466 = load i64, ptr %213, align 8, !tbaa !26
  %9467 = icmp ne i64 %9466, 0
  br i1 %9467, label %9468, label %9526

9468:                                             ; preds = %9465
  %9469 = load ptr, ptr %8, align 8, !tbaa !9
  %9470 = load i64, ptr %213, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %207, ptr align 8 %9469, i64 %9470, i1 false)
  %9471 = icmp eq ptr %207, null
  br i1 %9471, label %9472, label %9525

9472:                                             ; preds = %9468
  br label %9473

9473:                                             ; preds = %9472
  br label %9474

9474:                                             ; preds = %9473
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #9
  %9475 = call ptr @__errno_location() #10
  %9476 = load i32, ptr %9475, align 4, !tbaa !5
  store i32 %9476, ptr %214, align 4, !tbaa !5
  %9477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9478 = call i32 @s2n_print_stacktrace(ptr noundef %9477)
  %9479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9480 = trunc i8 %9479 to i1
  br i1 %9480, label %9481, label %9503

9481:                                             ; preds = %9474
  %9482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9483 = call i32 @fileno(ptr noundef %9482) #9
  %9484 = call i32 @isatty(i32 noundef %9483) #9
  %9485 = icmp ne i32 %9484, 0
  br i1 %9485, label %9486, label %9503

9486:                                             ; preds = %9481
  %9487 = load i32, ptr %214, align 4, !tbaa !5
  %9488 = call ptr @__errno_location() #10
  store i32 %9487, ptr %9488, align 4, !tbaa !5
  %9489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9490 = load i32, ptr @test_count, align 4, !tbaa !5
  %9491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9492 = load i32, ptr %9491, align 4, !tbaa !5
  %9493 = call ptr @s2n_strerror(i32 noundef %9492, ptr noundef @.str.4)
  %9494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9495 = load i32, ptr %9494, align 4, !tbaa !5
  %9496 = call ptr @s2n_strerror_debug(i32 noundef %9495, ptr noundef @.str.4)
  %9497 = call ptr @__errno_location() #10
  %9498 = load i32, ptr %9497, align 4, !tbaa !5
  %9499 = call ptr @strerror(i32 noundef %9498) #9
  %9500 = call ptr @__errno_location() #10
  %9501 = load i32, ptr %9500, align 4, !tbaa !5
  %9502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9489, ptr noundef @.str.2, i32 noundef %9490, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 439, ptr noundef %9493, ptr noundef %9496, ptr noundef %9499, i32 noundef %9501) #9
  br label %9520

9503:                                             ; preds = %9481, %9474
  %9504 = load i32, ptr %214, align 4, !tbaa !5
  %9505 = call ptr @__errno_location() #10
  store i32 %9504, ptr %9505, align 4, !tbaa !5
  %9506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9507 = load i32, ptr @test_count, align 4, !tbaa !5
  %9508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9509 = load i32, ptr %9508, align 4, !tbaa !5
  %9510 = call ptr @s2n_strerror(i32 noundef %9509, ptr noundef @.str.4)
  %9511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9512 = load i32, ptr %9511, align 4, !tbaa !5
  %9513 = call ptr @s2n_strerror_debug(i32 noundef %9512, ptr noundef @.str.4)
  %9514 = call ptr @__errno_location() #10
  %9515 = load i32, ptr %9514, align 4, !tbaa !5
  %9516 = call ptr @strerror(i32 noundef %9515) #9
  %9517 = call ptr @__errno_location() #10
  %9518 = load i32, ptr %9517, align 4, !tbaa !5
  %9519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9506, ptr noundef @.str.5, i32 noundef %9507, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 439, ptr noundef %9510, ptr noundef %9513, ptr noundef %9516, i32 noundef %9518) #9
  br label %9520

9520:                                             ; preds = %9503, %9486
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #9
  br label %9521

9521:                                             ; preds = %9520
  br label %9522

9522:                                             ; preds = %9521
  call void @exit(i32 noundef 1) #11
  unreachable

9523:                                             ; No predecessors!
  br label %9524

9524:                                             ; preds = %9523
  br label %9525

9525:                                             ; preds = %9524, %9468
  br label %9526

9526:                                             ; preds = %9525, %9465
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #9
  br label %9527

9527:                                             ; preds = %9526
  br label %9528

9528:                                             ; preds = %9527
  %9529 = getelementptr inbounds %struct.s2n_security_policy, ptr %207, i32 0, i32 1
  store ptr %206, ptr %9529, align 8, !tbaa !22
  %9530 = load ptr, ptr %6, align 8, !tbaa !9
  %9531 = getelementptr inbounds %struct.s2n_config, ptr %9530, i32 0, i32 7
  store ptr %207, ptr %9531, align 8, !tbaa !15
  %9532 = load ptr, ptr %7, align 8, !tbaa !9
  %9533 = getelementptr inbounds %struct.s2n_config, ptr %9532, i32 0, i32 7
  store ptr %207, ptr %9533, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #9
  br label %9534

9534:                                             ; preds = %9528
  %9535 = load i32, ptr @test_count, align 4, !tbaa !5
  %9536 = add nsw i32 %9535, 1
  store i32 %9536, ptr @test_count, align 4, !tbaa !5
  %9537 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %215)
  %9538 = icmp eq i32 %9537, -1
  br i1 %9538, label %9539, label %9592

9539:                                             ; preds = %9534
  br label %9540

9540:                                             ; preds = %9539
  br label %9541

9541:                                             ; preds = %9540
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #9
  %9542 = call ptr @__errno_location() #10
  %9543 = load i32, ptr %9542, align 4, !tbaa !5
  store i32 %9543, ptr %216, align 4, !tbaa !5
  %9544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9545 = call i32 @s2n_print_stacktrace(ptr noundef %9544)
  %9546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9547 = trunc i8 %9546 to i1
  br i1 %9547, label %9548, label %9570

9548:                                             ; preds = %9541
  %9549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9550 = call i32 @fileno(ptr noundef %9549) #9
  %9551 = call i32 @isatty(i32 noundef %9550) #9
  %9552 = icmp ne i32 %9551, 0
  br i1 %9552, label %9553, label %9570

9553:                                             ; preds = %9548
  %9554 = load i32, ptr %216, align 4, !tbaa !5
  %9555 = call ptr @__errno_location() #10
  store i32 %9554, ptr %9555, align 4, !tbaa !5
  %9556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9557 = load i32, ptr @test_count, align 4, !tbaa !5
  %9558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9559 = load i32, ptr %9558, align 4, !tbaa !5
  %9560 = call ptr @s2n_strerror(i32 noundef %9559, ptr noundef @.str.4)
  %9561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9562 = load i32, ptr %9561, align 4, !tbaa !5
  %9563 = call ptr @s2n_strerror_debug(i32 noundef %9562, ptr noundef @.str.4)
  %9564 = call ptr @__errno_location() #10
  %9565 = load i32, ptr %9564, align 4, !tbaa !5
  %9566 = call ptr @strerror(i32 noundef %9565) #9
  %9567 = call ptr @__errno_location() #10
  %9568 = load i32, ptr %9567, align 4, !tbaa !5
  %9569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9556, ptr noundef @.str.2, i32 noundef %9557, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 447, ptr noundef %9560, ptr noundef %9563, ptr noundef %9566, i32 noundef %9568) #9
  br label %9587

9570:                                             ; preds = %9548, %9541
  %9571 = load i32, ptr %216, align 4, !tbaa !5
  %9572 = call ptr @__errno_location() #10
  store i32 %9571, ptr %9572, align 4, !tbaa !5
  %9573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9574 = load i32, ptr @test_count, align 4, !tbaa !5
  %9575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9576 = load i32, ptr %9575, align 4, !tbaa !5
  %9577 = call ptr @s2n_strerror(i32 noundef %9576, ptr noundef @.str.4)
  %9578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9579 = load i32, ptr %9578, align 4, !tbaa !5
  %9580 = call ptr @s2n_strerror_debug(i32 noundef %9579, ptr noundef @.str.4)
  %9581 = call ptr @__errno_location() #10
  %9582 = load i32, ptr %9581, align 4, !tbaa !5
  %9583 = call ptr @strerror(i32 noundef %9582) #9
  %9584 = call ptr @__errno_location() #10
  %9585 = load i32, ptr %9584, align 4, !tbaa !5
  %9586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9573, ptr noundef @.str.5, i32 noundef %9574, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 447, ptr noundef %9577, ptr noundef %9580, ptr noundef %9583, i32 noundef %9585) #9
  br label %9587

9587:                                             ; preds = %9570, %9553
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #9
  br label %9588

9588:                                             ; preds = %9587
  br label %9589

9589:                                             ; preds = %9588
  call void @exit(i32 noundef 1) #11
  unreachable

9590:                                             ; No predecessors!
  br label %9591

9591:                                             ; preds = %9590
  br label %9592

9592:                                             ; preds = %9591, %9534
  br label %9593

9593:                                             ; preds = %9592
  br label %9594

9594:                                             ; preds = %9593
  br label %9595

9595:                                             ; preds = %9594
  %9596 = load i32, ptr @test_count, align 4, !tbaa !5
  %9597 = add nsw i32 %9596, 1
  store i32 %9597, ptr @test_count, align 4, !tbaa !5
  %9598 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9598, ptr %208, align 8, !tbaa !9
  %9599 = icmp eq ptr %9598, null
  br i1 %9599, label %9600, label %9653

9600:                                             ; preds = %9595
  br label %9601

9601:                                             ; preds = %9600
  br label %9602

9602:                                             ; preds = %9601
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #9
  %9603 = call ptr @__errno_location() #10
  %9604 = load i32, ptr %9603, align 4, !tbaa !5
  store i32 %9604, ptr %217, align 4, !tbaa !5
  %9605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9606 = call i32 @s2n_print_stacktrace(ptr noundef %9605)
  %9607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9608 = trunc i8 %9607 to i1
  br i1 %9608, label %9609, label %9631

9609:                                             ; preds = %9602
  %9610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9611 = call i32 @fileno(ptr noundef %9610) #9
  %9612 = call i32 @isatty(i32 noundef %9611) #9
  %9613 = icmp ne i32 %9612, 0
  br i1 %9613, label %9614, label %9631

9614:                                             ; preds = %9609
  %9615 = load i32, ptr %217, align 4, !tbaa !5
  %9616 = call ptr @__errno_location() #10
  store i32 %9615, ptr %9616, align 4, !tbaa !5
  %9617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9618 = load i32, ptr @test_count, align 4, !tbaa !5
  %9619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9620 = load i32, ptr %9619, align 4, !tbaa !5
  %9621 = call ptr @s2n_strerror(i32 noundef %9620, ptr noundef @.str.4)
  %9622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9623 = load i32, ptr %9622, align 4, !tbaa !5
  %9624 = call ptr @s2n_strerror_debug(i32 noundef %9623, ptr noundef @.str.4)
  %9625 = call ptr @__errno_location() #10
  %9626 = load i32, ptr %9625, align 4, !tbaa !5
  %9627 = call ptr @strerror(i32 noundef %9626) #9
  %9628 = call ptr @__errno_location() #10
  %9629 = load i32, ptr %9628, align 4, !tbaa !5
  %9630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9617, ptr noundef @.str.2, i32 noundef %9618, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 449, ptr noundef %9621, ptr noundef %9624, ptr noundef %9627, i32 noundef %9629) #9
  br label %9648

9631:                                             ; preds = %9609, %9602
  %9632 = load i32, ptr %217, align 4, !tbaa !5
  %9633 = call ptr @__errno_location() #10
  store i32 %9632, ptr %9633, align 4, !tbaa !5
  %9634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9635 = load i32, ptr @test_count, align 4, !tbaa !5
  %9636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9637 = load i32, ptr %9636, align 4, !tbaa !5
  %9638 = call ptr @s2n_strerror(i32 noundef %9637, ptr noundef @.str.4)
  %9639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9640 = load i32, ptr %9639, align 4, !tbaa !5
  %9641 = call ptr @s2n_strerror_debug(i32 noundef %9640, ptr noundef @.str.4)
  %9642 = call ptr @__errno_location() #10
  %9643 = load i32, ptr %9642, align 4, !tbaa !5
  %9644 = call ptr @strerror(i32 noundef %9643) #9
  %9645 = call ptr @__errno_location() #10
  %9646 = load i32, ptr %9645, align 4, !tbaa !5
  %9647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9634, ptr noundef @.str.5, i32 noundef %9635, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 449, ptr noundef %9638, ptr noundef %9641, ptr noundef %9644, i32 noundef %9646) #9
  br label %9648

9648:                                             ; preds = %9631, %9614
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #9
  br label %9649

9649:                                             ; preds = %9648
  br label %9650

9650:                                             ; preds = %9649
  call void @exit(i32 noundef 1) #11
  unreachable

9651:                                             ; No predecessors!
  br label %9652

9652:                                             ; preds = %9651
  br label %9653

9653:                                             ; preds = %9652, %9595
  br label %9654

9654:                                             ; preds = %9653
  br label %9655

9655:                                             ; preds = %9654
  br label %9656

9656:                                             ; preds = %9655
  %9657 = load i32, ptr @test_count, align 4, !tbaa !5
  %9658 = add nsw i32 %9657, 1
  store i32 %9658, ptr @test_count, align 4, !tbaa !5
  %9659 = load ptr, ptr %208, align 8, !tbaa !9
  %9660 = load ptr, ptr %6, align 8, !tbaa !9
  %9661 = call i32 @s2n_connection_set_config(ptr noundef %9659, ptr noundef %9660)
  %9662 = icmp eq i32 %9661, -1
  br i1 %9662, label %9663, label %9716

9663:                                             ; preds = %9656
  br label %9664

9664:                                             ; preds = %9663
  br label %9665

9665:                                             ; preds = %9664
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #9
  %9666 = call ptr @__errno_location() #10
  %9667 = load i32, ptr %9666, align 4, !tbaa !5
  store i32 %9667, ptr %218, align 4, !tbaa !5
  %9668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9669 = call i32 @s2n_print_stacktrace(ptr noundef %9668)
  %9670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9671 = trunc i8 %9670 to i1
  br i1 %9671, label %9672, label %9694

9672:                                             ; preds = %9665
  %9673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9674 = call i32 @fileno(ptr noundef %9673) #9
  %9675 = call i32 @isatty(i32 noundef %9674) #9
  %9676 = icmp ne i32 %9675, 0
  br i1 %9676, label %9677, label %9694

9677:                                             ; preds = %9672
  %9678 = load i32, ptr %218, align 4, !tbaa !5
  %9679 = call ptr @__errno_location() #10
  store i32 %9678, ptr %9679, align 4, !tbaa !5
  %9680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9681 = load i32, ptr @test_count, align 4, !tbaa !5
  %9682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9683 = load i32, ptr %9682, align 4, !tbaa !5
  %9684 = call ptr @s2n_strerror(i32 noundef %9683, ptr noundef @.str.4)
  %9685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9686 = load i32, ptr %9685, align 4, !tbaa !5
  %9687 = call ptr @s2n_strerror_debug(i32 noundef %9686, ptr noundef @.str.4)
  %9688 = call ptr @__errno_location() #10
  %9689 = load i32, ptr %9688, align 4, !tbaa !5
  %9690 = call ptr @strerror(i32 noundef %9689) #9
  %9691 = call ptr @__errno_location() #10
  %9692 = load i32, ptr %9691, align 4, !tbaa !5
  %9693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9680, ptr noundef @.str.2, i32 noundef %9681, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 450, ptr noundef %9684, ptr noundef %9687, ptr noundef %9690, i32 noundef %9692) #9
  br label %9711

9694:                                             ; preds = %9672, %9665
  %9695 = load i32, ptr %218, align 4, !tbaa !5
  %9696 = call ptr @__errno_location() #10
  store i32 %9695, ptr %9696, align 4, !tbaa !5
  %9697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9698 = load i32, ptr @test_count, align 4, !tbaa !5
  %9699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9700 = load i32, ptr %9699, align 4, !tbaa !5
  %9701 = call ptr @s2n_strerror(i32 noundef %9700, ptr noundef @.str.4)
  %9702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9703 = load i32, ptr %9702, align 4, !tbaa !5
  %9704 = call ptr @s2n_strerror_debug(i32 noundef %9703, ptr noundef @.str.4)
  %9705 = call ptr @__errno_location() #10
  %9706 = load i32, ptr %9705, align 4, !tbaa !5
  %9707 = call ptr @strerror(i32 noundef %9706) #9
  %9708 = call ptr @__errno_location() #10
  %9709 = load i32, ptr %9708, align 4, !tbaa !5
  %9710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9697, ptr noundef @.str.5, i32 noundef %9698, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 450, ptr noundef %9701, ptr noundef %9704, ptr noundef %9707, i32 noundef %9709) #9
  br label %9711

9711:                                             ; preds = %9694, %9677
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #9
  br label %9712

9712:                                             ; preds = %9711
  br label %9713

9713:                                             ; preds = %9712
  call void @exit(i32 noundef 1) #11
  unreachable

9714:                                             ; No predecessors!
  br label %9715

9715:                                             ; preds = %9714
  br label %9716

9716:                                             ; preds = %9715, %9656
  br label %9717

9717:                                             ; preds = %9716
  br label %9718

9718:                                             ; preds = %9717
  br label %9719

9719:                                             ; preds = %9718
  %9720 = load i32, ptr @test_count, align 4, !tbaa !5
  %9721 = add nsw i32 %9720, 1
  store i32 %9721, ptr @test_count, align 4, !tbaa !5
  %9722 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9722, ptr %209, align 8, !tbaa !9
  %9723 = icmp eq ptr %9722, null
  br i1 %9723, label %9724, label %9777

9724:                                             ; preds = %9719
  br label %9725

9725:                                             ; preds = %9724
  br label %9726

9726:                                             ; preds = %9725
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #9
  %9727 = call ptr @__errno_location() #10
  %9728 = load i32, ptr %9727, align 4, !tbaa !5
  store i32 %9728, ptr %219, align 4, !tbaa !5
  %9729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9730 = call i32 @s2n_print_stacktrace(ptr noundef %9729)
  %9731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9732 = trunc i8 %9731 to i1
  br i1 %9732, label %9733, label %9755

9733:                                             ; preds = %9726
  %9734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9735 = call i32 @fileno(ptr noundef %9734) #9
  %9736 = call i32 @isatty(i32 noundef %9735) #9
  %9737 = icmp ne i32 %9736, 0
  br i1 %9737, label %9738, label %9755

9738:                                             ; preds = %9733
  %9739 = load i32, ptr %219, align 4, !tbaa !5
  %9740 = call ptr @__errno_location() #10
  store i32 %9739, ptr %9740, align 4, !tbaa !5
  %9741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9742 = load i32, ptr @test_count, align 4, !tbaa !5
  %9743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9744 = load i32, ptr %9743, align 4, !tbaa !5
  %9745 = call ptr @s2n_strerror(i32 noundef %9744, ptr noundef @.str.4)
  %9746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9747 = load i32, ptr %9746, align 4, !tbaa !5
  %9748 = call ptr @s2n_strerror_debug(i32 noundef %9747, ptr noundef @.str.4)
  %9749 = call ptr @__errno_location() #10
  %9750 = load i32, ptr %9749, align 4, !tbaa !5
  %9751 = call ptr @strerror(i32 noundef %9750) #9
  %9752 = call ptr @__errno_location() #10
  %9753 = load i32, ptr %9752, align 4, !tbaa !5
  %9754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9741, ptr noundef @.str.2, i32 noundef %9742, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 452, ptr noundef %9745, ptr noundef %9748, ptr noundef %9751, i32 noundef %9753) #9
  br label %9772

9755:                                             ; preds = %9733, %9726
  %9756 = load i32, ptr %219, align 4, !tbaa !5
  %9757 = call ptr @__errno_location() #10
  store i32 %9756, ptr %9757, align 4, !tbaa !5
  %9758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9759 = load i32, ptr @test_count, align 4, !tbaa !5
  %9760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9761 = load i32, ptr %9760, align 4, !tbaa !5
  %9762 = call ptr @s2n_strerror(i32 noundef %9761, ptr noundef @.str.4)
  %9763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9764 = load i32, ptr %9763, align 4, !tbaa !5
  %9765 = call ptr @s2n_strerror_debug(i32 noundef %9764, ptr noundef @.str.4)
  %9766 = call ptr @__errno_location() #10
  %9767 = load i32, ptr %9766, align 4, !tbaa !5
  %9768 = call ptr @strerror(i32 noundef %9767) #9
  %9769 = call ptr @__errno_location() #10
  %9770 = load i32, ptr %9769, align 4, !tbaa !5
  %9771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9758, ptr noundef @.str.5, i32 noundef %9759, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 452, ptr noundef %9762, ptr noundef %9765, ptr noundef %9768, i32 noundef %9770) #9
  br label %9772

9772:                                             ; preds = %9755, %9738
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #9
  br label %9773

9773:                                             ; preds = %9772
  br label %9774

9774:                                             ; preds = %9773
  call void @exit(i32 noundef 1) #11
  unreachable

9775:                                             ; No predecessors!
  br label %9776

9776:                                             ; preds = %9775
  br label %9777

9777:                                             ; preds = %9776, %9719
  br label %9778

9778:                                             ; preds = %9777
  br label %9779

9779:                                             ; preds = %9778
  br label %9780

9780:                                             ; preds = %9779
  %9781 = load i32, ptr @test_count, align 4, !tbaa !5
  %9782 = add nsw i32 %9781, 1
  store i32 %9782, ptr @test_count, align 4, !tbaa !5
  %9783 = load ptr, ptr %209, align 8, !tbaa !9
  %9784 = load ptr, ptr %7, align 8, !tbaa !9
  %9785 = call i32 @s2n_connection_set_config(ptr noundef %9783, ptr noundef %9784)
  %9786 = icmp eq i32 %9785, -1
  br i1 %9786, label %9787, label %9840

9787:                                             ; preds = %9780
  br label %9788

9788:                                             ; preds = %9787
  br label %9789

9789:                                             ; preds = %9788
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #9
  %9790 = call ptr @__errno_location() #10
  %9791 = load i32, ptr %9790, align 4, !tbaa !5
  store i32 %9791, ptr %220, align 4, !tbaa !5
  %9792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9793 = call i32 @s2n_print_stacktrace(ptr noundef %9792)
  %9794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9795 = trunc i8 %9794 to i1
  br i1 %9795, label %9796, label %9818

9796:                                             ; preds = %9789
  %9797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9798 = call i32 @fileno(ptr noundef %9797) #9
  %9799 = call i32 @isatty(i32 noundef %9798) #9
  %9800 = icmp ne i32 %9799, 0
  br i1 %9800, label %9801, label %9818

9801:                                             ; preds = %9796
  %9802 = load i32, ptr %220, align 4, !tbaa !5
  %9803 = call ptr @__errno_location() #10
  store i32 %9802, ptr %9803, align 4, !tbaa !5
  %9804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9805 = load i32, ptr @test_count, align 4, !tbaa !5
  %9806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9807 = load i32, ptr %9806, align 4, !tbaa !5
  %9808 = call ptr @s2n_strerror(i32 noundef %9807, ptr noundef @.str.4)
  %9809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9810 = load i32, ptr %9809, align 4, !tbaa !5
  %9811 = call ptr @s2n_strerror_debug(i32 noundef %9810, ptr noundef @.str.4)
  %9812 = call ptr @__errno_location() #10
  %9813 = load i32, ptr %9812, align 4, !tbaa !5
  %9814 = call ptr @strerror(i32 noundef %9813) #9
  %9815 = call ptr @__errno_location() #10
  %9816 = load i32, ptr %9815, align 4, !tbaa !5
  %9817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9804, ptr noundef @.str.2, i32 noundef %9805, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 453, ptr noundef %9808, ptr noundef %9811, ptr noundef %9814, i32 noundef %9816) #9
  br label %9835

9818:                                             ; preds = %9796, %9789
  %9819 = load i32, ptr %220, align 4, !tbaa !5
  %9820 = call ptr @__errno_location() #10
  store i32 %9819, ptr %9820, align 4, !tbaa !5
  %9821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9822 = load i32, ptr @test_count, align 4, !tbaa !5
  %9823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9824 = load i32, ptr %9823, align 4, !tbaa !5
  %9825 = call ptr @s2n_strerror(i32 noundef %9824, ptr noundef @.str.4)
  %9826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call ptr @s2n_strerror_debug(i32 noundef %9827, ptr noundef @.str.4)
  %9829 = call ptr @__errno_location() #10
  %9830 = load i32, ptr %9829, align 4, !tbaa !5
  %9831 = call ptr @strerror(i32 noundef %9830) #9
  %9832 = call ptr @__errno_location() #10
  %9833 = load i32, ptr %9832, align 4, !tbaa !5
  %9834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9821, ptr noundef @.str.5, i32 noundef %9822, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 453, ptr noundef %9825, ptr noundef %9828, ptr noundef %9831, i32 noundef %9833) #9
  br label %9835

9835:                                             ; preds = %9818, %9801
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #9
  br label %9836

9836:                                             ; preds = %9835
  br label %9837

9837:                                             ; preds = %9836
  call void @exit(i32 noundef 1) #11
  unreachable

9838:                                             ; No predecessors!
  br label %9839

9839:                                             ; preds = %9838
  br label %9840

9840:                                             ; preds = %9839, %9780
  br label %9841

9841:                                             ; preds = %9840
  br label %9842

9842:                                             ; preds = %9841
  br label %9843

9843:                                             ; preds = %9842
  %9844 = load i32, ptr @test_count, align 4, !tbaa !5
  %9845 = add nsw i32 %9844, 1
  store i32 %9845, ptr @test_count, align 4, !tbaa !5
  %9846 = load ptr, ptr %208, align 8, !tbaa !9
  %9847 = load ptr, ptr %209, align 8, !tbaa !9
  %9848 = call i32 @s2n_connections_set_io_pair(ptr noundef %9846, ptr noundef %9847, ptr noundef %215)
  %9849 = icmp eq i32 %9848, -1
  br i1 %9849, label %9850, label %9903

9850:                                             ; preds = %9843
  br label %9851

9851:                                             ; preds = %9850
  br label %9852

9852:                                             ; preds = %9851
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #9
  %9853 = call ptr @__errno_location() #10
  %9854 = load i32, ptr %9853, align 4, !tbaa !5
  store i32 %9854, ptr %221, align 4, !tbaa !5
  %9855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9856 = call i32 @s2n_print_stacktrace(ptr noundef %9855)
  %9857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9858 = trunc i8 %9857 to i1
  br i1 %9858, label %9859, label %9881

9859:                                             ; preds = %9852
  %9860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9861 = call i32 @fileno(ptr noundef %9860) #9
  %9862 = call i32 @isatty(i32 noundef %9861) #9
  %9863 = icmp ne i32 %9862, 0
  br i1 %9863, label %9864, label %9881

9864:                                             ; preds = %9859
  %9865 = load i32, ptr %221, align 4, !tbaa !5
  %9866 = call ptr @__errno_location() #10
  store i32 %9865, ptr %9866, align 4, !tbaa !5
  %9867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9868 = load i32, ptr @test_count, align 4, !tbaa !5
  %9869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9870 = load i32, ptr %9869, align 4, !tbaa !5
  %9871 = call ptr @s2n_strerror(i32 noundef %9870, ptr noundef @.str.4)
  %9872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9873 = load i32, ptr %9872, align 4, !tbaa !5
  %9874 = call ptr @s2n_strerror_debug(i32 noundef %9873, ptr noundef @.str.4)
  %9875 = call ptr @__errno_location() #10
  %9876 = load i32, ptr %9875, align 4, !tbaa !5
  %9877 = call ptr @strerror(i32 noundef %9876) #9
  %9878 = call ptr @__errno_location() #10
  %9879 = load i32, ptr %9878, align 4, !tbaa !5
  %9880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9867, ptr noundef @.str.2, i32 noundef %9868, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 455, ptr noundef %9871, ptr noundef %9874, ptr noundef %9877, i32 noundef %9879) #9
  br label %9898

9881:                                             ; preds = %9859, %9852
  %9882 = load i32, ptr %221, align 4, !tbaa !5
  %9883 = call ptr @__errno_location() #10
  store i32 %9882, ptr %9883, align 4, !tbaa !5
  %9884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9885 = load i32, ptr @test_count, align 4, !tbaa !5
  %9886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9887 = load i32, ptr %9886, align 4, !tbaa !5
  %9888 = call ptr @s2n_strerror(i32 noundef %9887, ptr noundef @.str.4)
  %9889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9890 = load i32, ptr %9889, align 4, !tbaa !5
  %9891 = call ptr @s2n_strerror_debug(i32 noundef %9890, ptr noundef @.str.4)
  %9892 = call ptr @__errno_location() #10
  %9893 = load i32, ptr %9892, align 4, !tbaa !5
  %9894 = call ptr @strerror(i32 noundef %9893) #9
  %9895 = call ptr @__errno_location() #10
  %9896 = load i32, ptr %9895, align 4, !tbaa !5
  %9897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9884, ptr noundef @.str.5, i32 noundef %9885, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 455, ptr noundef %9888, ptr noundef %9891, ptr noundef %9894, i32 noundef %9896) #9
  br label %9898

9898:                                             ; preds = %9881, %9864
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #9
  br label %9899

9899:                                             ; preds = %9898
  br label %9900

9900:                                             ; preds = %9899
  call void @exit(i32 noundef 1) #11
  unreachable

9901:                                             ; No predecessors!
  br label %9902

9902:                                             ; preds = %9901
  br label %9903

9903:                                             ; preds = %9902, %9843
  br label %9904

9904:                                             ; preds = %9903
  br label %9905

9905:                                             ; preds = %9904
  br label %9906

9906:                                             ; preds = %9905
  %9907 = load i32, ptr @test_count, align 4, !tbaa !5
  %9908 = add nsw i32 %9907, 1
  store i32 %9908, ptr @test_count, align 4, !tbaa !5
  %9909 = load ptr, ptr %209, align 8, !tbaa !9
  %9910 = call i32 @s2n_connection_set_blinding(ptr noundef %9909, i32 noundef 1)
  %9911 = icmp eq i32 %9910, -1
  br i1 %9911, label %9912, label %9965

9912:                                             ; preds = %9906
  br label %9913

9913:                                             ; preds = %9912
  br label %9914

9914:                                             ; preds = %9913
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #9
  %9915 = call ptr @__errno_location() #10
  %9916 = load i32, ptr %9915, align 4, !tbaa !5
  store i32 %9916, ptr %222, align 4, !tbaa !5
  %9917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9918 = call i32 @s2n_print_stacktrace(ptr noundef %9917)
  %9919 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9920 = trunc i8 %9919 to i1
  br i1 %9920, label %9921, label %9943

9921:                                             ; preds = %9914
  %9922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9923 = call i32 @fileno(ptr noundef %9922) #9
  %9924 = call i32 @isatty(i32 noundef %9923) #9
  %9925 = icmp ne i32 %9924, 0
  br i1 %9925, label %9926, label %9943

9926:                                             ; preds = %9921
  %9927 = load i32, ptr %222, align 4, !tbaa !5
  %9928 = call ptr @__errno_location() #10
  store i32 %9927, ptr %9928, align 4, !tbaa !5
  %9929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9930 = load i32, ptr @test_count, align 4, !tbaa !5
  %9931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9932 = load i32, ptr %9931, align 4, !tbaa !5
  %9933 = call ptr @s2n_strerror(i32 noundef %9932, ptr noundef @.str.4)
  %9934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9935 = load i32, ptr %9934, align 4, !tbaa !5
  %9936 = call ptr @s2n_strerror_debug(i32 noundef %9935, ptr noundef @.str.4)
  %9937 = call ptr @__errno_location() #10
  %9938 = load i32, ptr %9937, align 4, !tbaa !5
  %9939 = call ptr @strerror(i32 noundef %9938) #9
  %9940 = call ptr @__errno_location() #10
  %9941 = load i32, ptr %9940, align 4, !tbaa !5
  %9942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9929, ptr noundef @.str.2, i32 noundef %9930, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 458, ptr noundef %9933, ptr noundef %9936, ptr noundef %9939, i32 noundef %9941) #9
  br label %9960

9943:                                             ; preds = %9921, %9914
  %9944 = load i32, ptr %222, align 4, !tbaa !5
  %9945 = call ptr @__errno_location() #10
  store i32 %9944, ptr %9945, align 4, !tbaa !5
  %9946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9947 = load i32, ptr @test_count, align 4, !tbaa !5
  %9948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9949 = load i32, ptr %9948, align 4, !tbaa !5
  %9950 = call ptr @s2n_strerror(i32 noundef %9949, ptr noundef @.str.4)
  %9951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9952 = load i32, ptr %9951, align 4, !tbaa !5
  %9953 = call ptr @s2n_strerror_debug(i32 noundef %9952, ptr noundef @.str.4)
  %9954 = call ptr @__errno_location() #10
  %9955 = load i32, ptr %9954, align 4, !tbaa !5
  %9956 = call ptr @strerror(i32 noundef %9955) #9
  %9957 = call ptr @__errno_location() #10
  %9958 = load i32, ptr %9957, align 4, !tbaa !5
  %9959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9946, ptr noundef @.str.5, i32 noundef %9947, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 458, ptr noundef %9950, ptr noundef %9953, ptr noundef %9956, i32 noundef %9958) #9
  br label %9960

9960:                                             ; preds = %9943, %9926
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #9
  br label %9961

9961:                                             ; preds = %9960
  br label %9962

9962:                                             ; preds = %9961
  call void @exit(i32 noundef 1) #11
  unreachable

9963:                                             ; No predecessors!
  br label %9964

9964:                                             ; preds = %9963
  br label %9965

9965:                                             ; preds = %9964, %9906
  br label %9966

9966:                                             ; preds = %9965
  br label %9967

9967:                                             ; preds = %9966
  br label %9968

9968:                                             ; preds = %9967
  br label %9969

9969:                                             ; preds = %9968
  %9970 = load i32, ptr @test_count, align 4, !tbaa !5
  %9971 = add nsw i32 %9970, 1
  store i32 %9971, ptr @test_count, align 4, !tbaa !5
  %9972 = load ptr, ptr %209, align 8, !tbaa !9
  %9973 = load ptr, ptr %208, align 8, !tbaa !9
  %9974 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9972, ptr noundef %9973)
  %9975 = icmp eq i32 %9974, -1
  br i1 %9975, label %10029, label %9976

9976:                                             ; preds = %9969
  br label %9977

9977:                                             ; preds = %9976
  br label %9978

9978:                                             ; preds = %9977
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #9
  %9979 = call ptr @__errno_location() #10
  %9980 = load i32, ptr %9979, align 4, !tbaa !5
  store i32 %9980, ptr %223, align 4, !tbaa !5
  %9981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9982 = call i32 @s2n_print_stacktrace(ptr noundef %9981)
  %9983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9984 = trunc i8 %9983 to i1
  br i1 %9984, label %9985, label %10007

9985:                                             ; preds = %9978
  %9986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9987 = call i32 @fileno(ptr noundef %9986) #9
  %9988 = call i32 @isatty(i32 noundef %9987) #9
  %9989 = icmp ne i32 %9988, 0
  br i1 %9989, label %9990, label %10007

9990:                                             ; preds = %9985
  %9991 = load i32, ptr %223, align 4, !tbaa !5
  %9992 = call ptr @__errno_location() #10
  store i32 %9991, ptr %9992, align 4, !tbaa !5
  %9993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9994 = load i32, ptr @test_count, align 4, !tbaa !5
  %9995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9996 = load i32, ptr %9995, align 4, !tbaa !5
  %9997 = call ptr @s2n_strerror(i32 noundef %9996, ptr noundef @.str.4)
  %9998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9999 = load i32, ptr %9998, align 4, !tbaa !5
  %10000 = call ptr @s2n_strerror_debug(i32 noundef %9999, ptr noundef @.str.4)
  %10001 = call ptr @__errno_location() #10
  %10002 = load i32, ptr %10001, align 4, !tbaa !5
  %10003 = call ptr @strerror(i32 noundef %10002) #9
  %10004 = call ptr @__errno_location() #10
  %10005 = load i32, ptr %10004, align 4, !tbaa !5
  %10006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9993, ptr noundef @.str.2, i32 noundef %9994, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 459, ptr noundef %9997, ptr noundef %10000, ptr noundef %10003, i32 noundef %10005) #9
  br label %10024

10007:                                            ; preds = %9985, %9978
  %10008 = load i32, ptr %223, align 4, !tbaa !5
  %10009 = call ptr @__errno_location() #10
  store i32 %10008, ptr %10009, align 4, !tbaa !5
  %10010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10011 = load i32, ptr @test_count, align 4, !tbaa !5
  %10012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10013 = load i32, ptr %10012, align 4, !tbaa !5
  %10014 = call ptr @s2n_strerror(i32 noundef %10013, ptr noundef @.str.4)
  %10015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10016 = load i32, ptr %10015, align 4, !tbaa !5
  %10017 = call ptr @s2n_strerror_debug(i32 noundef %10016, ptr noundef @.str.4)
  %10018 = call ptr @__errno_location() #10
  %10019 = load i32, ptr %10018, align 4, !tbaa !5
  %10020 = call ptr @strerror(i32 noundef %10019) #9
  %10021 = call ptr @__errno_location() #10
  %10022 = load i32, ptr %10021, align 4, !tbaa !5
  %10023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10010, ptr noundef @.str.5, i32 noundef %10011, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 459, ptr noundef %10014, ptr noundef %10017, ptr noundef %10020, i32 noundef %10022) #9
  br label %10024

10024:                                            ; preds = %10007, %9990
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #9
  br label %10025

10025:                                            ; preds = %10024
  br label %10026

10026:                                            ; preds = %10025
  call void @exit(i32 noundef 1) #11
  unreachable

10027:                                            ; No predecessors!
  br label %10028

10028:                                            ; preds = %10027
  br label %10029

10029:                                            ; preds = %10028, %9969
  br label %10030

10030:                                            ; preds = %10029
  br label %10031

10031:                                            ; preds = %10030
  br label %10032

10032:                                            ; preds = %10031
  %10033 = load i32, ptr @test_count, align 4, !tbaa !5
  %10034 = add nsw i32 %10033, 1
  store i32 %10034, ptr @test_count, align 4, !tbaa !5
  %10035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10036 = load i32, ptr %10035, align 4, !tbaa !5
  %10037 = icmp eq i32 %10036, 0
  br i1 %10037, label %10038, label %10091

10038:                                            ; preds = %10032
  br label %10039

10039:                                            ; preds = %10038
  br label %10040

10040:                                            ; preds = %10039
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #9
  %10041 = call ptr @__errno_location() #10
  %10042 = load i32, ptr %10041, align 4, !tbaa !5
  store i32 %10042, ptr %224, align 4, !tbaa !5
  %10043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10044 = call i32 @s2n_print_stacktrace(ptr noundef %10043)
  %10045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10046 = trunc i8 %10045 to i1
  br i1 %10046, label %10047, label %10069

10047:                                            ; preds = %10040
  %10048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10049 = call i32 @fileno(ptr noundef %10048) #9
  %10050 = call i32 @isatty(i32 noundef %10049) #9
  %10051 = icmp ne i32 %10050, 0
  br i1 %10051, label %10052, label %10069

10052:                                            ; preds = %10047
  %10053 = load i32, ptr %224, align 4, !tbaa !5
  %10054 = call ptr @__errno_location() #10
  store i32 %10053, ptr %10054, align 4, !tbaa !5
  %10055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10056 = load i32, ptr @test_count, align 4, !tbaa !5
  %10057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10058 = load i32, ptr %10057, align 4, !tbaa !5
  %10059 = call ptr @s2n_strerror(i32 noundef %10058, ptr noundef @.str.4)
  %10060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10061 = load i32, ptr %10060, align 4, !tbaa !5
  %10062 = call ptr @s2n_strerror_debug(i32 noundef %10061, ptr noundef @.str.4)
  %10063 = call ptr @__errno_location() #10
  %10064 = load i32, ptr %10063, align 4, !tbaa !5
  %10065 = call ptr @strerror(i32 noundef %10064) #9
  %10066 = call ptr @__errno_location() #10
  %10067 = load i32, ptr %10066, align 4, !tbaa !5
  %10068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10055, ptr noundef @.str.2, i32 noundef %10056, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 459, ptr noundef %10059, ptr noundef %10062, ptr noundef %10065, i32 noundef %10067) #9
  br label %10086

10069:                                            ; preds = %10047, %10040
  %10070 = load i32, ptr %224, align 4, !tbaa !5
  %10071 = call ptr @__errno_location() #10
  store i32 %10070, ptr %10071, align 4, !tbaa !5
  %10072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10073 = load i32, ptr @test_count, align 4, !tbaa !5
  %10074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10075 = load i32, ptr %10074, align 4, !tbaa !5
  %10076 = call ptr @s2n_strerror(i32 noundef %10075, ptr noundef @.str.4)
  %10077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10078 = load i32, ptr %10077, align 4, !tbaa !5
  %10079 = call ptr @s2n_strerror_debug(i32 noundef %10078, ptr noundef @.str.4)
  %10080 = call ptr @__errno_location() #10
  %10081 = load i32, ptr %10080, align 4, !tbaa !5
  %10082 = call ptr @strerror(i32 noundef %10081) #9
  %10083 = call ptr @__errno_location() #10
  %10084 = load i32, ptr %10083, align 4, !tbaa !5
  %10085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10072, ptr noundef @.str.5, i32 noundef %10073, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 459, ptr noundef %10076, ptr noundef %10079, ptr noundef %10082, i32 noundef %10084) #9
  br label %10086

10086:                                            ; preds = %10069, %10052
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #9
  br label %10087

10087:                                            ; preds = %10086
  br label %10088

10088:                                            ; preds = %10087
  call void @exit(i32 noundef 1) #11
  unreachable

10089:                                            ; No predecessors!
  br label %10090

10090:                                            ; preds = %10089
  br label %10091

10091:                                            ; preds = %10090, %10032
  br label %10092

10092:                                            ; preds = %10091
  br label %10093

10093:                                            ; preds = %10092
  br label %10094

10094:                                            ; preds = %10093
  %10095 = load i32, ptr @test_count, align 4, !tbaa !5
  %10096 = add nsw i32 %10095, 1
  store i32 %10096, ptr @test_count, align 4, !tbaa !5
  %10097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10098 = load i32, ptr %10097, align 4, !tbaa !5
  %10099 = call ptr @s2n_strerror_debug(i32 noundef %10098, ptr noundef @.str.4)
  %10100 = icmp eq ptr %10099, null
  br i1 %10100, label %10101, label %10154

10101:                                            ; preds = %10094
  br label %10102

10102:                                            ; preds = %10101
  br label %10103

10103:                                            ; preds = %10102
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #9
  %10104 = call ptr @__errno_location() #10
  %10105 = load i32, ptr %10104, align 4, !tbaa !5
  store i32 %10105, ptr %225, align 4, !tbaa !5
  %10106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10107 = call i32 @s2n_print_stacktrace(ptr noundef %10106)
  %10108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10109 = trunc i8 %10108 to i1
  br i1 %10109, label %10110, label %10132

10110:                                            ; preds = %10103
  %10111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10112 = call i32 @fileno(ptr noundef %10111) #9
  %10113 = call i32 @isatty(i32 noundef %10112) #9
  %10114 = icmp ne i32 %10113, 0
  br i1 %10114, label %10115, label %10132

10115:                                            ; preds = %10110
  %10116 = load i32, ptr %225, align 4, !tbaa !5
  %10117 = call ptr @__errno_location() #10
  store i32 %10116, ptr %10117, align 4, !tbaa !5
  %10118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10119 = load i32, ptr @test_count, align 4, !tbaa !5
  %10120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10121 = load i32, ptr %10120, align 4, !tbaa !5
  %10122 = call ptr @s2n_strerror(i32 noundef %10121, ptr noundef @.str.4)
  %10123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10124 = load i32, ptr %10123, align 4, !tbaa !5
  %10125 = call ptr @s2n_strerror_debug(i32 noundef %10124, ptr noundef @.str.4)
  %10126 = call ptr @__errno_location() #10
  %10127 = load i32, ptr %10126, align 4, !tbaa !5
  %10128 = call ptr @strerror(i32 noundef %10127) #9
  %10129 = call ptr @__errno_location() #10
  %10130 = load i32, ptr %10129, align 4, !tbaa !5
  %10131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10118, ptr noundef @.str.2, i32 noundef %10119, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 459, ptr noundef %10122, ptr noundef %10125, ptr noundef %10128, i32 noundef %10130) #9
  br label %10149

10132:                                            ; preds = %10110, %10103
  %10133 = load i32, ptr %225, align 4, !tbaa !5
  %10134 = call ptr @__errno_location() #10
  store i32 %10133, ptr %10134, align 4, !tbaa !5
  %10135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10136 = load i32, ptr @test_count, align 4, !tbaa !5
  %10137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10138 = load i32, ptr %10137, align 4, !tbaa !5
  %10139 = call ptr @s2n_strerror(i32 noundef %10138, ptr noundef @.str.4)
  %10140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10141 = load i32, ptr %10140, align 4, !tbaa !5
  %10142 = call ptr @s2n_strerror_debug(i32 noundef %10141, ptr noundef @.str.4)
  %10143 = call ptr @__errno_location() #10
  %10144 = load i32, ptr %10143, align 4, !tbaa !5
  %10145 = call ptr @strerror(i32 noundef %10144) #9
  %10146 = call ptr @__errno_location() #10
  %10147 = load i32, ptr %10146, align 4, !tbaa !5
  %10148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10135, ptr noundef @.str.5, i32 noundef %10136, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 459, ptr noundef %10139, ptr noundef %10142, ptr noundef %10145, i32 noundef %10147) #9
  br label %10149

10149:                                            ; preds = %10132, %10115
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #9
  br label %10150

10150:                                            ; preds = %10149
  br label %10151

10151:                                            ; preds = %10150
  call void @exit(i32 noundef 1) #11
  unreachable

10152:                                            ; No predecessors!
  br label %10153

10153:                                            ; preds = %10152
  br label %10154

10154:                                            ; preds = %10153, %10094
  br label %10155

10155:                                            ; preds = %10154
  br label %10156

10156:                                            ; preds = %10155
  br label %10157

10157:                                            ; preds = %10156
  %10158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10158, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10159 = call ptr @__errno_location() #10
  store i32 0, ptr %10159, align 4, !tbaa !5
  br label %10160

10160:                                            ; preds = %10157
  br label %10161

10161:                                            ; preds = %10160
  br label %10162

10162:                                            ; preds = %10161
  br label %10163

10163:                                            ; preds = %10162
  br label %10164

10164:                                            ; preds = %10163
  %10165 = load i32, ptr @test_count, align 4, !tbaa !5
  %10166 = add nsw i32 %10165, 1
  store i32 %10166, ptr @test_count, align 4, !tbaa !5
  %10167 = load ptr, ptr %209, align 8, !tbaa !9
  %10168 = call i32 @s2n_connection_client_cert_used(ptr noundef %10167)
  %10169 = icmp ne i32 %10168, 0
  br i1 %10169, label %10170, label %10223

10170:                                            ; preds = %10164
  br label %10171

10171:                                            ; preds = %10170
  br label %10172

10172:                                            ; preds = %10171
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #9
  %10173 = call ptr @__errno_location() #10
  %10174 = load i32, ptr %10173, align 4, !tbaa !5
  store i32 %10174, ptr %226, align 4, !tbaa !5
  %10175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10176 = call i32 @s2n_print_stacktrace(ptr noundef %10175)
  %10177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10178 = trunc i8 %10177 to i1
  br i1 %10178, label %10179, label %10201

10179:                                            ; preds = %10172
  %10180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10181 = call i32 @fileno(ptr noundef %10180) #9
  %10182 = call i32 @isatty(i32 noundef %10181) #9
  %10183 = icmp ne i32 %10182, 0
  br i1 %10183, label %10184, label %10201

10184:                                            ; preds = %10179
  %10185 = load i32, ptr %226, align 4, !tbaa !5
  %10186 = call ptr @__errno_location() #10
  store i32 %10185, ptr %10186, align 4, !tbaa !5
  %10187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10188 = load i32, ptr @test_count, align 4, !tbaa !5
  %10189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10190 = load i32, ptr %10189, align 4, !tbaa !5
  %10191 = call ptr @s2n_strerror(i32 noundef %10190, ptr noundef @.str.4)
  %10192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10193 = load i32, ptr %10192, align 4, !tbaa !5
  %10194 = call ptr @s2n_strerror_debug(i32 noundef %10193, ptr noundef @.str.4)
  %10195 = call ptr @__errno_location() #10
  %10196 = load i32, ptr %10195, align 4, !tbaa !5
  %10197 = call ptr @strerror(i32 noundef %10196) #9
  %10198 = call ptr @__errno_location() #10
  %10199 = load i32, ptr %10198, align 4, !tbaa !5
  %10200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10187, ptr noundef @.str.2, i32 noundef %10188, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 462, ptr noundef %10191, ptr noundef %10194, ptr noundef %10197, i32 noundef %10199) #9
  br label %10218

10201:                                            ; preds = %10179, %10172
  %10202 = load i32, ptr %226, align 4, !tbaa !5
  %10203 = call ptr @__errno_location() #10
  store i32 %10202, ptr %10203, align 4, !tbaa !5
  %10204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10205 = load i32, ptr @test_count, align 4, !tbaa !5
  %10206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10207 = load i32, ptr %10206, align 4, !tbaa !5
  %10208 = call ptr @s2n_strerror(i32 noundef %10207, ptr noundef @.str.4)
  %10209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10210 = load i32, ptr %10209, align 4, !tbaa !5
  %10211 = call ptr @s2n_strerror_debug(i32 noundef %10210, ptr noundef @.str.4)
  %10212 = call ptr @__errno_location() #10
  %10213 = load i32, ptr %10212, align 4, !tbaa !5
  %10214 = call ptr @strerror(i32 noundef %10213) #9
  %10215 = call ptr @__errno_location() #10
  %10216 = load i32, ptr %10215, align 4, !tbaa !5
  %10217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10204, ptr noundef @.str.5, i32 noundef %10205, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 462, ptr noundef %10208, ptr noundef %10211, ptr noundef %10214, i32 noundef %10216) #9
  br label %10218

10218:                                            ; preds = %10201, %10184
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #9
  br label %10219

10219:                                            ; preds = %10218
  br label %10220

10220:                                            ; preds = %10219
  call void @exit(i32 noundef 1) #11
  unreachable

10221:                                            ; No predecessors!
  br label %10222

10222:                                            ; preds = %10221
  br label %10223

10223:                                            ; preds = %10222, %10164
  br label %10224

10224:                                            ; preds = %10223
  br label %10225

10225:                                            ; preds = %10224
  br label %10226

10226:                                            ; preds = %10225
  %10227 = load i32, ptr @test_count, align 4, !tbaa !5
  %10228 = add nsw i32 %10227, 1
  store i32 %10228, ptr @test_count, align 4, !tbaa !5
  %10229 = load ptr, ptr %208, align 8, !tbaa !9
  %10230 = call i32 @s2n_connection_client_cert_used(ptr noundef %10229)
  %10231 = icmp ne i32 %10230, 0
  br i1 %10231, label %10232, label %10285

10232:                                            ; preds = %10226
  br label %10233

10233:                                            ; preds = %10232
  br label %10234

10234:                                            ; preds = %10233
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #9
  %10235 = call ptr @__errno_location() #10
  %10236 = load i32, ptr %10235, align 4, !tbaa !5
  store i32 %10236, ptr %227, align 4, !tbaa !5
  %10237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10238 = call i32 @s2n_print_stacktrace(ptr noundef %10237)
  %10239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10240 = trunc i8 %10239 to i1
  br i1 %10240, label %10241, label %10263

10241:                                            ; preds = %10234
  %10242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10243 = call i32 @fileno(ptr noundef %10242) #9
  %10244 = call i32 @isatty(i32 noundef %10243) #9
  %10245 = icmp ne i32 %10244, 0
  br i1 %10245, label %10246, label %10263

10246:                                            ; preds = %10241
  %10247 = load i32, ptr %227, align 4, !tbaa !5
  %10248 = call ptr @__errno_location() #10
  store i32 %10247, ptr %10248, align 4, !tbaa !5
  %10249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10250 = load i32, ptr @test_count, align 4, !tbaa !5
  %10251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10252 = load i32, ptr %10251, align 4, !tbaa !5
  %10253 = call ptr @s2n_strerror(i32 noundef %10252, ptr noundef @.str.4)
  %10254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10255 = load i32, ptr %10254, align 4, !tbaa !5
  %10256 = call ptr @s2n_strerror_debug(i32 noundef %10255, ptr noundef @.str.4)
  %10257 = call ptr @__errno_location() #10
  %10258 = load i32, ptr %10257, align 4, !tbaa !5
  %10259 = call ptr @strerror(i32 noundef %10258) #9
  %10260 = call ptr @__errno_location() #10
  %10261 = load i32, ptr %10260, align 4, !tbaa !5
  %10262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10249, ptr noundef @.str.2, i32 noundef %10250, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 463, ptr noundef %10253, ptr noundef %10256, ptr noundef %10259, i32 noundef %10261) #9
  br label %10280

10263:                                            ; preds = %10241, %10234
  %10264 = load i32, ptr %227, align 4, !tbaa !5
  %10265 = call ptr @__errno_location() #10
  store i32 %10264, ptr %10265, align 4, !tbaa !5
  %10266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10267 = load i32, ptr @test_count, align 4, !tbaa !5
  %10268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10269 = load i32, ptr %10268, align 4, !tbaa !5
  %10270 = call ptr @s2n_strerror(i32 noundef %10269, ptr noundef @.str.4)
  %10271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10272 = load i32, ptr %10271, align 4, !tbaa !5
  %10273 = call ptr @s2n_strerror_debug(i32 noundef %10272, ptr noundef @.str.4)
  %10274 = call ptr @__errno_location() #10
  %10275 = load i32, ptr %10274, align 4, !tbaa !5
  %10276 = call ptr @strerror(i32 noundef %10275) #9
  %10277 = call ptr @__errno_location() #10
  %10278 = load i32, ptr %10277, align 4, !tbaa !5
  %10279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10266, ptr noundef @.str.5, i32 noundef %10267, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 463, ptr noundef %10270, ptr noundef %10273, ptr noundef %10276, i32 noundef %10278) #9
  br label %10280

10280:                                            ; preds = %10263, %10246
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #9
  br label %10281

10281:                                            ; preds = %10280
  br label %10282

10282:                                            ; preds = %10281
  call void @exit(i32 noundef 1) #11
  unreachable

10283:                                            ; No predecessors!
  br label %10284

10284:                                            ; preds = %10283
  br label %10285

10285:                                            ; preds = %10284, %10226
  br label %10286

10286:                                            ; preds = %10285
  br label %10287

10287:                                            ; preds = %10286
  br label %10288

10288:                                            ; preds = %10287
  %10289 = load i32, ptr @test_count, align 4, !tbaa !5
  %10290 = add nsw i32 %10289, 1
  store i32 %10290, ptr @test_count, align 4, !tbaa !5
  %10291 = load ptr, ptr %208, align 8, !tbaa !9
  %10292 = call i32 @s2n_connection_free(ptr noundef %10291)
  %10293 = icmp eq i32 %10292, -1
  br i1 %10293, label %10294, label %10347

10294:                                            ; preds = %10288
  br label %10295

10295:                                            ; preds = %10294
  br label %10296

10296:                                            ; preds = %10295
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #9
  %10297 = call ptr @__errno_location() #10
  %10298 = load i32, ptr %10297, align 4, !tbaa !5
  store i32 %10298, ptr %228, align 4, !tbaa !5
  %10299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10300 = call i32 @s2n_print_stacktrace(ptr noundef %10299)
  %10301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10302 = trunc i8 %10301 to i1
  br i1 %10302, label %10303, label %10325

10303:                                            ; preds = %10296
  %10304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10305 = call i32 @fileno(ptr noundef %10304) #9
  %10306 = call i32 @isatty(i32 noundef %10305) #9
  %10307 = icmp ne i32 %10306, 0
  br i1 %10307, label %10308, label %10325

10308:                                            ; preds = %10303
  %10309 = load i32, ptr %228, align 4, !tbaa !5
  %10310 = call ptr @__errno_location() #10
  store i32 %10309, ptr %10310, align 4, !tbaa !5
  %10311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10312 = load i32, ptr @test_count, align 4, !tbaa !5
  %10313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10314 = load i32, ptr %10313, align 4, !tbaa !5
  %10315 = call ptr @s2n_strerror(i32 noundef %10314, ptr noundef @.str.4)
  %10316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10317 = load i32, ptr %10316, align 4, !tbaa !5
  %10318 = call ptr @s2n_strerror_debug(i32 noundef %10317, ptr noundef @.str.4)
  %10319 = call ptr @__errno_location() #10
  %10320 = load i32, ptr %10319, align 4, !tbaa !5
  %10321 = call ptr @strerror(i32 noundef %10320) #9
  %10322 = call ptr @__errno_location() #10
  %10323 = load i32, ptr %10322, align 4, !tbaa !5
  %10324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10311, ptr noundef @.str.2, i32 noundef %10312, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 465, ptr noundef %10315, ptr noundef %10318, ptr noundef %10321, i32 noundef %10323) #9
  br label %10342

10325:                                            ; preds = %10303, %10296
  %10326 = load i32, ptr %228, align 4, !tbaa !5
  %10327 = call ptr @__errno_location() #10
  store i32 %10326, ptr %10327, align 4, !tbaa !5
  %10328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10329 = load i32, ptr @test_count, align 4, !tbaa !5
  %10330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10331 = load i32, ptr %10330, align 4, !tbaa !5
  %10332 = call ptr @s2n_strerror(i32 noundef %10331, ptr noundef @.str.4)
  %10333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10334 = load i32, ptr %10333, align 4, !tbaa !5
  %10335 = call ptr @s2n_strerror_debug(i32 noundef %10334, ptr noundef @.str.4)
  %10336 = call ptr @__errno_location() #10
  %10337 = load i32, ptr %10336, align 4, !tbaa !5
  %10338 = call ptr @strerror(i32 noundef %10337) #9
  %10339 = call ptr @__errno_location() #10
  %10340 = load i32, ptr %10339, align 4, !tbaa !5
  %10341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10328, ptr noundef @.str.5, i32 noundef %10329, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 465, ptr noundef %10332, ptr noundef %10335, ptr noundef %10338, i32 noundef %10340) #9
  br label %10342

10342:                                            ; preds = %10325, %10308
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #9
  br label %10343

10343:                                            ; preds = %10342
  br label %10344

10344:                                            ; preds = %10343
  call void @exit(i32 noundef 1) #11
  unreachable

10345:                                            ; No predecessors!
  br label %10346

10346:                                            ; preds = %10345
  br label %10347

10347:                                            ; preds = %10346, %10288
  br label %10348

10348:                                            ; preds = %10347
  br label %10349

10349:                                            ; preds = %10348
  br label %10350

10350:                                            ; preds = %10349
  %10351 = load i32, ptr @test_count, align 4, !tbaa !5
  %10352 = add nsw i32 %10351, 1
  store i32 %10352, ptr @test_count, align 4, !tbaa !5
  %10353 = load ptr, ptr %209, align 8, !tbaa !9
  %10354 = call i32 @s2n_connection_free(ptr noundef %10353)
  %10355 = icmp eq i32 %10354, -1
  br i1 %10355, label %10356, label %10409

10356:                                            ; preds = %10350
  br label %10357

10357:                                            ; preds = %10356
  br label %10358

10358:                                            ; preds = %10357
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #9
  %10359 = call ptr @__errno_location() #10
  %10360 = load i32, ptr %10359, align 4, !tbaa !5
  store i32 %10360, ptr %229, align 4, !tbaa !5
  %10361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10362 = call i32 @s2n_print_stacktrace(ptr noundef %10361)
  %10363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10364 = trunc i8 %10363 to i1
  br i1 %10364, label %10365, label %10387

10365:                                            ; preds = %10358
  %10366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10367 = call i32 @fileno(ptr noundef %10366) #9
  %10368 = call i32 @isatty(i32 noundef %10367) #9
  %10369 = icmp ne i32 %10368, 0
  br i1 %10369, label %10370, label %10387

10370:                                            ; preds = %10365
  %10371 = load i32, ptr %229, align 4, !tbaa !5
  %10372 = call ptr @__errno_location() #10
  store i32 %10371, ptr %10372, align 4, !tbaa !5
  %10373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10374 = load i32, ptr @test_count, align 4, !tbaa !5
  %10375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10376 = load i32, ptr %10375, align 4, !tbaa !5
  %10377 = call ptr @s2n_strerror(i32 noundef %10376, ptr noundef @.str.4)
  %10378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10379 = load i32, ptr %10378, align 4, !tbaa !5
  %10380 = call ptr @s2n_strerror_debug(i32 noundef %10379, ptr noundef @.str.4)
  %10381 = call ptr @__errno_location() #10
  %10382 = load i32, ptr %10381, align 4, !tbaa !5
  %10383 = call ptr @strerror(i32 noundef %10382) #9
  %10384 = call ptr @__errno_location() #10
  %10385 = load i32, ptr %10384, align 4, !tbaa !5
  %10386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10373, ptr noundef @.str.2, i32 noundef %10374, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 466, ptr noundef %10377, ptr noundef %10380, ptr noundef %10383, i32 noundef %10385) #9
  br label %10404

10387:                                            ; preds = %10365, %10358
  %10388 = load i32, ptr %229, align 4, !tbaa !5
  %10389 = call ptr @__errno_location() #10
  store i32 %10388, ptr %10389, align 4, !tbaa !5
  %10390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10391 = load i32, ptr @test_count, align 4, !tbaa !5
  %10392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10393 = load i32, ptr %10392, align 4, !tbaa !5
  %10394 = call ptr @s2n_strerror(i32 noundef %10393, ptr noundef @.str.4)
  %10395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10396 = load i32, ptr %10395, align 4, !tbaa !5
  %10397 = call ptr @s2n_strerror_debug(i32 noundef %10396, ptr noundef @.str.4)
  %10398 = call ptr @__errno_location() #10
  %10399 = load i32, ptr %10398, align 4, !tbaa !5
  %10400 = call ptr @strerror(i32 noundef %10399) #9
  %10401 = call ptr @__errno_location() #10
  %10402 = load i32, ptr %10401, align 4, !tbaa !5
  %10403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10390, ptr noundef @.str.5, i32 noundef %10391, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 466, ptr noundef %10394, ptr noundef %10397, ptr noundef %10400, i32 noundef %10402) #9
  br label %10404

10404:                                            ; preds = %10387, %10370
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #9
  br label %10405

10405:                                            ; preds = %10404
  br label %10406

10406:                                            ; preds = %10405
  call void @exit(i32 noundef 1) #11
  unreachable

10407:                                            ; No predecessors!
  br label %10408

10408:                                            ; preds = %10407
  br label %10409

10409:                                            ; preds = %10408, %10350
  br label %10410

10410:                                            ; preds = %10409
  br label %10411

10411:                                            ; preds = %10410
  br label %10412

10412:                                            ; preds = %10411
  %10413 = load i32, ptr @test_count, align 4, !tbaa !5
  %10414 = add nsw i32 %10413, 1
  store i32 %10414, ptr @test_count, align 4, !tbaa !5
  %10415 = call i32 @s2n_io_pair_close(ptr noundef %215)
  %10416 = icmp eq i32 %10415, -1
  br i1 %10416, label %10417, label %10470

10417:                                            ; preds = %10412
  br label %10418

10418:                                            ; preds = %10417
  br label %10419

10419:                                            ; preds = %10418
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #9
  %10420 = call ptr @__errno_location() #10
  %10421 = load i32, ptr %10420, align 4, !tbaa !5
  store i32 %10421, ptr %230, align 4, !tbaa !5
  %10422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10423 = call i32 @s2n_print_stacktrace(ptr noundef %10422)
  %10424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10425 = trunc i8 %10424 to i1
  br i1 %10425, label %10426, label %10448

10426:                                            ; preds = %10419
  %10427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10428 = call i32 @fileno(ptr noundef %10427) #9
  %10429 = call i32 @isatty(i32 noundef %10428) #9
  %10430 = icmp ne i32 %10429, 0
  br i1 %10430, label %10431, label %10448

10431:                                            ; preds = %10426
  %10432 = load i32, ptr %230, align 4, !tbaa !5
  %10433 = call ptr @__errno_location() #10
  store i32 %10432, ptr %10433, align 4, !tbaa !5
  %10434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10435 = load i32, ptr @test_count, align 4, !tbaa !5
  %10436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10437 = load i32, ptr %10436, align 4, !tbaa !5
  %10438 = call ptr @s2n_strerror(i32 noundef %10437, ptr noundef @.str.4)
  %10439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10440 = load i32, ptr %10439, align 4, !tbaa !5
  %10441 = call ptr @s2n_strerror_debug(i32 noundef %10440, ptr noundef @.str.4)
  %10442 = call ptr @__errno_location() #10
  %10443 = load i32, ptr %10442, align 4, !tbaa !5
  %10444 = call ptr @strerror(i32 noundef %10443) #9
  %10445 = call ptr @__errno_location() #10
  %10446 = load i32, ptr %10445, align 4, !tbaa !5
  %10447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10434, ptr noundef @.str.2, i32 noundef %10435, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 467, ptr noundef %10438, ptr noundef %10441, ptr noundef %10444, i32 noundef %10446) #9
  br label %10465

10448:                                            ; preds = %10426, %10419
  %10449 = load i32, ptr %230, align 4, !tbaa !5
  %10450 = call ptr @__errno_location() #10
  store i32 %10449, ptr %10450, align 4, !tbaa !5
  %10451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10452 = load i32, ptr @test_count, align 4, !tbaa !5
  %10453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10454 = load i32, ptr %10453, align 4, !tbaa !5
  %10455 = call ptr @s2n_strerror(i32 noundef %10454, ptr noundef @.str.4)
  %10456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10457 = load i32, ptr %10456, align 4, !tbaa !5
  %10458 = call ptr @s2n_strerror_debug(i32 noundef %10457, ptr noundef @.str.4)
  %10459 = call ptr @__errno_location() #10
  %10460 = load i32, ptr %10459, align 4, !tbaa !5
  %10461 = call ptr @strerror(i32 noundef %10460) #9
  %10462 = call ptr @__errno_location() #10
  %10463 = load i32, ptr %10462, align 4, !tbaa !5
  %10464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10451, ptr noundef @.str.5, i32 noundef %10452, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 467, ptr noundef %10455, ptr noundef %10458, ptr noundef %10461, i32 noundef %10463) #9
  br label %10465

10465:                                            ; preds = %10448, %10431
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #9
  br label %10466

10466:                                            ; preds = %10465
  br label %10467

10467:                                            ; preds = %10466
  call void @exit(i32 noundef 1) #11
  unreachable

10468:                                            ; No predecessors!
  br label %10469

10469:                                            ; preds = %10468
  br label %10470

10470:                                            ; preds = %10469, %10412
  br label %10471

10471:                                            ; preds = %10470
  br label %10472

10472:                                            ; preds = %10471
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #9
  store i32 0, ptr %42, align 4
  br label %10473

10473:                                            ; preds = %10472, %9462
  call void @llvm.lifetime.end.p0(i64 8, ptr %212) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %207) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %206) #9
  %10474 = load i32, ptr %42, align 4
  switch i32 %10474, label %10829 [
    i32 0, label %10475
    i32 887, label %10476
  ]

10475:                                            ; preds = %10473
  br label %10476

10476:                                            ; preds = %10475, %10473
  %10477 = load i32, ptr %205, align 4, !tbaa !5
  %10478 = add nsw i32 %10477, 1
  store i32 %10478, ptr %205, align 4, !tbaa !5
  br label %9376, !llvm.loop !34

10479:                                            ; preds = %9383
  br label %10480

10480:                                            ; preds = %10479
  %10481 = load i32, ptr @test_count, align 4, !tbaa !5
  %10482 = add nsw i32 %10481, 1
  store i32 %10482, ptr @test_count, align 4, !tbaa !5
  %10483 = load ptr, ptr %6, align 8, !tbaa !9
  %10484 = call i32 @s2n_config_free(ptr noundef %10483)
  %10485 = icmp eq i32 %10484, -1
  br i1 %10485, label %10486, label %10539

10486:                                            ; preds = %10480
  br label %10487

10487:                                            ; preds = %10486
  br label %10488

10488:                                            ; preds = %10487
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #9
  %10489 = call ptr @__errno_location() #10
  %10490 = load i32, ptr %10489, align 4, !tbaa !5
  store i32 %10490, ptr %231, align 4, !tbaa !5
  %10491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10492 = call i32 @s2n_print_stacktrace(ptr noundef %10491)
  %10493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10494 = trunc i8 %10493 to i1
  br i1 %10494, label %10495, label %10517

10495:                                            ; preds = %10488
  %10496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10497 = call i32 @fileno(ptr noundef %10496) #9
  %10498 = call i32 @isatty(i32 noundef %10497) #9
  %10499 = icmp ne i32 %10498, 0
  br i1 %10499, label %10500, label %10517

10500:                                            ; preds = %10495
  %10501 = load i32, ptr %231, align 4, !tbaa !5
  %10502 = call ptr @__errno_location() #10
  store i32 %10501, ptr %10502, align 4, !tbaa !5
  %10503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10504 = load i32, ptr @test_count, align 4, !tbaa !5
  %10505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10506 = load i32, ptr %10505, align 4, !tbaa !5
  %10507 = call ptr @s2n_strerror(i32 noundef %10506, ptr noundef @.str.4)
  %10508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10509 = load i32, ptr %10508, align 4, !tbaa !5
  %10510 = call ptr @s2n_strerror_debug(i32 noundef %10509, ptr noundef @.str.4)
  %10511 = call ptr @__errno_location() #10
  %10512 = load i32, ptr %10511, align 4, !tbaa !5
  %10513 = call ptr @strerror(i32 noundef %10512) #9
  %10514 = call ptr @__errno_location() #10
  %10515 = load i32, ptr %10514, align 4, !tbaa !5
  %10516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10503, ptr noundef @.str.2, i32 noundef %10504, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 470, ptr noundef %10507, ptr noundef %10510, ptr noundef %10513, i32 noundef %10515) #9
  br label %10534

10517:                                            ; preds = %10495, %10488
  %10518 = load i32, ptr %231, align 4, !tbaa !5
  %10519 = call ptr @__errno_location() #10
  store i32 %10518, ptr %10519, align 4, !tbaa !5
  %10520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10521 = load i32, ptr @test_count, align 4, !tbaa !5
  %10522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10523 = load i32, ptr %10522, align 4, !tbaa !5
  %10524 = call ptr @s2n_strerror(i32 noundef %10523, ptr noundef @.str.4)
  %10525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10526 = load i32, ptr %10525, align 4, !tbaa !5
  %10527 = call ptr @s2n_strerror_debug(i32 noundef %10526, ptr noundef @.str.4)
  %10528 = call ptr @__errno_location() #10
  %10529 = load i32, ptr %10528, align 4, !tbaa !5
  %10530 = call ptr @strerror(i32 noundef %10529) #9
  %10531 = call ptr @__errno_location() #10
  %10532 = load i32, ptr %10531, align 4, !tbaa !5
  %10533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10520, ptr noundef @.str.5, i32 noundef %10521, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 470, ptr noundef %10524, ptr noundef %10527, ptr noundef %10530, i32 noundef %10532) #9
  br label %10534

10534:                                            ; preds = %10517, %10500
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #9
  br label %10535

10535:                                            ; preds = %10534
  br label %10536

10536:                                            ; preds = %10535
  call void @exit(i32 noundef 1) #11
  unreachable

10537:                                            ; No predecessors!
  br label %10538

10538:                                            ; preds = %10537
  br label %10539

10539:                                            ; preds = %10538, %10480
  br label %10540

10540:                                            ; preds = %10539
  br label %10541

10541:                                            ; preds = %10540
  br label %10542

10542:                                            ; preds = %10541
  %10543 = load i32, ptr @test_count, align 4, !tbaa !5
  %10544 = add nsw i32 %10543, 1
  store i32 %10544, ptr @test_count, align 4, !tbaa !5
  %10545 = load ptr, ptr %7, align 8, !tbaa !9
  %10546 = call i32 @s2n_config_free(ptr noundef %10545)
  %10547 = icmp eq i32 %10546, -1
  br i1 %10547, label %10548, label %10601

10548:                                            ; preds = %10542
  br label %10549

10549:                                            ; preds = %10548
  br label %10550

10550:                                            ; preds = %10549
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #9
  %10551 = call ptr @__errno_location() #10
  %10552 = load i32, ptr %10551, align 4, !tbaa !5
  store i32 %10552, ptr %232, align 4, !tbaa !5
  %10553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10554 = call i32 @s2n_print_stacktrace(ptr noundef %10553)
  %10555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10556 = trunc i8 %10555 to i1
  br i1 %10556, label %10557, label %10579

10557:                                            ; preds = %10550
  %10558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10559 = call i32 @fileno(ptr noundef %10558) #9
  %10560 = call i32 @isatty(i32 noundef %10559) #9
  %10561 = icmp ne i32 %10560, 0
  br i1 %10561, label %10562, label %10579

10562:                                            ; preds = %10557
  %10563 = load i32, ptr %232, align 4, !tbaa !5
  %10564 = call ptr @__errno_location() #10
  store i32 %10563, ptr %10564, align 4, !tbaa !5
  %10565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10566 = load i32, ptr @test_count, align 4, !tbaa !5
  %10567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10568 = load i32, ptr %10567, align 4, !tbaa !5
  %10569 = call ptr @s2n_strerror(i32 noundef %10568, ptr noundef @.str.4)
  %10570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10571 = load i32, ptr %10570, align 4, !tbaa !5
  %10572 = call ptr @s2n_strerror_debug(i32 noundef %10571, ptr noundef @.str.4)
  %10573 = call ptr @__errno_location() #10
  %10574 = load i32, ptr %10573, align 4, !tbaa !5
  %10575 = call ptr @strerror(i32 noundef %10574) #9
  %10576 = call ptr @__errno_location() #10
  %10577 = load i32, ptr %10576, align 4, !tbaa !5
  %10578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10565, ptr noundef @.str.2, i32 noundef %10566, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 472, ptr noundef %10569, ptr noundef %10572, ptr noundef %10575, i32 noundef %10577) #9
  br label %10596

10579:                                            ; preds = %10557, %10550
  %10580 = load i32, ptr %232, align 4, !tbaa !5
  %10581 = call ptr @__errno_location() #10
  store i32 %10580, ptr %10581, align 4, !tbaa !5
  %10582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10583 = load i32, ptr @test_count, align 4, !tbaa !5
  %10584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10585 = load i32, ptr %10584, align 4, !tbaa !5
  %10586 = call ptr @s2n_strerror(i32 noundef %10585, ptr noundef @.str.4)
  %10587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10588 = load i32, ptr %10587, align 4, !tbaa !5
  %10589 = call ptr @s2n_strerror_debug(i32 noundef %10588, ptr noundef @.str.4)
  %10590 = call ptr @__errno_location() #10
  %10591 = load i32, ptr %10590, align 4, !tbaa !5
  %10592 = call ptr @strerror(i32 noundef %10591) #9
  %10593 = call ptr @__errno_location() #10
  %10594 = load i32, ptr %10593, align 4, !tbaa !5
  %10595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10582, ptr noundef @.str.5, i32 noundef %10583, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 472, ptr noundef %10586, ptr noundef %10589, ptr noundef %10592, i32 noundef %10594) #9
  br label %10596

10596:                                            ; preds = %10579, %10562
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #9
  br label %10597

10597:                                            ; preds = %10596
  br label %10598

10598:                                            ; preds = %10597
  call void @exit(i32 noundef 1) #11
  unreachable

10599:                                            ; No predecessors!
  br label %10600

10600:                                            ; preds = %10599
  br label %10601

10601:                                            ; preds = %10600, %10542
  br label %10602

10602:                                            ; preds = %10601
  br label %10603

10603:                                            ; preds = %10602
  br label %10604

10604:                                            ; preds = %10603
  %10605 = load i32, ptr @test_count, align 4, !tbaa !5
  %10606 = add nsw i32 %10605, 1
  store i32 %10606, ptr @test_count, align 4, !tbaa !5
  %10607 = load ptr, ptr %13, align 8, !tbaa !9
  %10608 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %10607)
  %10609 = icmp eq i32 %10608, -1
  br i1 %10609, label %10610, label %10663

10610:                                            ; preds = %10604
  br label %10611

10611:                                            ; preds = %10610
  br label %10612

10612:                                            ; preds = %10611
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #9
  %10613 = call ptr @__errno_location() #10
  %10614 = load i32, ptr %10613, align 4, !tbaa !5
  store i32 %10614, ptr %233, align 4, !tbaa !5
  %10615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10616 = call i32 @s2n_print_stacktrace(ptr noundef %10615)
  %10617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10618 = trunc i8 %10617 to i1
  br i1 %10618, label %10619, label %10641

10619:                                            ; preds = %10612
  %10620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10621 = call i32 @fileno(ptr noundef %10620) #9
  %10622 = call i32 @isatty(i32 noundef %10621) #9
  %10623 = icmp ne i32 %10622, 0
  br i1 %10623, label %10624, label %10641

10624:                                            ; preds = %10619
  %10625 = load i32, ptr %233, align 4, !tbaa !5
  %10626 = call ptr @__errno_location() #10
  store i32 %10625, ptr %10626, align 4, !tbaa !5
  %10627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10628 = load i32, ptr @test_count, align 4, !tbaa !5
  %10629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10630 = load i32, ptr %10629, align 4, !tbaa !5
  %10631 = call ptr @s2n_strerror(i32 noundef %10630, ptr noundef @.str.4)
  %10632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10633 = load i32, ptr %10632, align 4, !tbaa !5
  %10634 = call ptr @s2n_strerror_debug(i32 noundef %10633, ptr noundef @.str.4)
  %10635 = call ptr @__errno_location() #10
  %10636 = load i32, ptr %10635, align 4, !tbaa !5
  %10637 = call ptr @strerror(i32 noundef %10636) #9
  %10638 = call ptr @__errno_location() #10
  %10639 = load i32, ptr %10638, align 4, !tbaa !5
  %10640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10627, ptr noundef @.str.2, i32 noundef %10628, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 473, ptr noundef %10631, ptr noundef %10634, ptr noundef %10637, i32 noundef %10639) #9
  br label %10658

10641:                                            ; preds = %10619, %10612
  %10642 = load i32, ptr %233, align 4, !tbaa !5
  %10643 = call ptr @__errno_location() #10
  store i32 %10642, ptr %10643, align 4, !tbaa !5
  %10644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10645 = load i32, ptr @test_count, align 4, !tbaa !5
  %10646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10647 = load i32, ptr %10646, align 4, !tbaa !5
  %10648 = call ptr @s2n_strerror(i32 noundef %10647, ptr noundef @.str.4)
  %10649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10650 = load i32, ptr %10649, align 4, !tbaa !5
  %10651 = call ptr @s2n_strerror_debug(i32 noundef %10650, ptr noundef @.str.4)
  %10652 = call ptr @__errno_location() #10
  %10653 = load i32, ptr %10652, align 4, !tbaa !5
  %10654 = call ptr @strerror(i32 noundef %10653) #9
  %10655 = call ptr @__errno_location() #10
  %10656 = load i32, ptr %10655, align 4, !tbaa !5
  %10657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10644, ptr noundef @.str.5, i32 noundef %10645, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 473, ptr noundef %10648, ptr noundef %10651, ptr noundef %10654, i32 noundef %10656) #9
  br label %10658

10658:                                            ; preds = %10641, %10624
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #9
  br label %10659

10659:                                            ; preds = %10658
  br label %10660

10660:                                            ; preds = %10659
  call void @exit(i32 noundef 1) #11
  unreachable

10661:                                            ; No predecessors!
  br label %10662

10662:                                            ; preds = %10661
  br label %10663

10663:                                            ; preds = %10662, %10604
  br label %10664

10664:                                            ; preds = %10663
  br label %10665

10665:                                            ; preds = %10664
  %10666 = load ptr, ptr %10, align 8, !tbaa !9
  call void @free(ptr noundef %10666) #9
  %10667 = load ptr, ptr %11, align 8, !tbaa !9
  call void @free(ptr noundef %10667) #9
  %10668 = load ptr, ptr %12, align 8, !tbaa !9
  call void @free(ptr noundef %10668) #9
  br label %10669

10669:                                            ; preds = %10665
  br label %10670

10670:                                            ; preds = %10669
  %10671 = call i32 @s2n_cleanup()
  %10672 = icmp eq i32 %10671, -1
  br i1 %10672, label %10673, label %10726

10673:                                            ; preds = %10670
  br label %10674

10674:                                            ; preds = %10673
  br label %10675

10675:                                            ; preds = %10674
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #9
  %10676 = call ptr @__errno_location() #10
  %10677 = load i32, ptr %10676, align 4, !tbaa !5
  store i32 %10677, ptr %234, align 4, !tbaa !5
  %10678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10679 = call i32 @s2n_print_stacktrace(ptr noundef %10678)
  %10680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10681 = trunc i8 %10680 to i1
  br i1 %10681, label %10682, label %10704

10682:                                            ; preds = %10675
  %10683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10684 = call i32 @fileno(ptr noundef %10683) #9
  %10685 = call i32 @isatty(i32 noundef %10684) #9
  %10686 = icmp ne i32 %10685, 0
  br i1 %10686, label %10687, label %10704

10687:                                            ; preds = %10682
  %10688 = load i32, ptr %234, align 4, !tbaa !5
  %10689 = call ptr @__errno_location() #10
  store i32 %10688, ptr %10689, align 4, !tbaa !5
  %10690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10691 = load i32, ptr @test_count, align 4, !tbaa !5
  %10692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10693 = load i32, ptr %10692, align 4, !tbaa !5
  %10694 = call ptr @s2n_strerror(i32 noundef %10693, ptr noundef @.str.4)
  %10695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10696 = load i32, ptr %10695, align 4, !tbaa !5
  %10697 = call ptr @s2n_strerror_debug(i32 noundef %10696, ptr noundef @.str.4)
  %10698 = call ptr @__errno_location() #10
  %10699 = load i32, ptr %10698, align 4, !tbaa !5
  %10700 = call ptr @strerror(i32 noundef %10699) #9
  %10701 = call ptr @__errno_location() #10
  %10702 = load i32, ptr %10701, align 4, !tbaa !5
  %10703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10690, ptr noundef @.str.2, i32 noundef %10691, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 477, ptr noundef %10694, ptr noundef %10697, ptr noundef %10700, i32 noundef %10702) #9
  br label %10721

10704:                                            ; preds = %10682, %10675
  %10705 = load i32, ptr %234, align 4, !tbaa !5
  %10706 = call ptr @__errno_location() #10
  store i32 %10705, ptr %10706, align 4, !tbaa !5
  %10707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10708 = load i32, ptr @test_count, align 4, !tbaa !5
  %10709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10710 = load i32, ptr %10709, align 4, !tbaa !5
  %10711 = call ptr @s2n_strerror(i32 noundef %10710, ptr noundef @.str.4)
  %10712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10713 = load i32, ptr %10712, align 4, !tbaa !5
  %10714 = call ptr @s2n_strerror_debug(i32 noundef %10713, ptr noundef @.str.4)
  %10715 = call ptr @__errno_location() #10
  %10716 = load i32, ptr %10715, align 4, !tbaa !5
  %10717 = call ptr @strerror(i32 noundef %10716) #9
  %10718 = call ptr @__errno_location() #10
  %10719 = load i32, ptr %10718, align 4, !tbaa !5
  %10720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10707, ptr noundef @.str.5, i32 noundef %10708, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 477, ptr noundef %10711, ptr noundef %10714, ptr noundef %10717, i32 noundef %10719) #9
  br label %10721

10721:                                            ; preds = %10704, %10687
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #9
  br label %10722

10722:                                            ; preds = %10721
  br label %10723

10723:                                            ; preds = %10722
  call void @exit(i32 noundef 1) #11
  unreachable

10724:                                            ; No predecessors!
  br label %10725

10725:                                            ; preds = %10724
  br label %10726

10726:                                            ; preds = %10725, %10670
  br label %10727

10727:                                            ; preds = %10726
  br label %10728

10728:                                            ; preds = %10727
  br label %10729

10729:                                            ; preds = %10728
  br label %10730

10730:                                            ; preds = %10729
  %10731 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %10732 = icmp eq i32 %10731, -1
  br i1 %10732, label %10733, label %10786

10733:                                            ; preds = %10730
  br label %10734

10734:                                            ; preds = %10733
  br label %10735

10735:                                            ; preds = %10734
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #9
  %10736 = call ptr @__errno_location() #10
  %10737 = load i32, ptr %10736, align 4, !tbaa !5
  store i32 %10737, ptr %235, align 4, !tbaa !5
  %10738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10739 = call i32 @s2n_print_stacktrace(ptr noundef %10738)
  %10740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10741 = trunc i8 %10740 to i1
  br i1 %10741, label %10742, label %10764

10742:                                            ; preds = %10735
  %10743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10744 = call i32 @fileno(ptr noundef %10743) #9
  %10745 = call i32 @isatty(i32 noundef %10744) #9
  %10746 = icmp ne i32 %10745, 0
  br i1 %10746, label %10747, label %10764

10747:                                            ; preds = %10742
  %10748 = load i32, ptr %235, align 4, !tbaa !5
  %10749 = call ptr @__errno_location() #10
  store i32 %10748, ptr %10749, align 4, !tbaa !5
  %10750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10751 = load i32, ptr @test_count, align 4, !tbaa !5
  %10752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10753 = load i32, ptr %10752, align 4, !tbaa !5
  %10754 = call ptr @s2n_strerror(i32 noundef %10753, ptr noundef @.str.4)
  %10755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10756 = load i32, ptr %10755, align 4, !tbaa !5
  %10757 = call ptr @s2n_strerror_debug(i32 noundef %10756, ptr noundef @.str.4)
  %10758 = call ptr @__errno_location() #10
  %10759 = load i32, ptr %10758, align 4, !tbaa !5
  %10760 = call ptr @strerror(i32 noundef %10759) #9
  %10761 = call ptr @__errno_location() #10
  %10762 = load i32, ptr %10761, align 4, !tbaa !5
  %10763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10750, ptr noundef @.str.2, i32 noundef %10751, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 477, ptr noundef %10754, ptr noundef %10757, ptr noundef %10760, i32 noundef %10762) #9
  br label %10781

10764:                                            ; preds = %10742, %10735
  %10765 = load i32, ptr %235, align 4, !tbaa !5
  %10766 = call ptr @__errno_location() #10
  store i32 %10765, ptr %10766, align 4, !tbaa !5
  %10767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10768 = load i32, ptr @test_count, align 4, !tbaa !5
  %10769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10770 = load i32, ptr %10769, align 4, !tbaa !5
  %10771 = call ptr @s2n_strerror(i32 noundef %10770, ptr noundef @.str.4)
  %10772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10773 = load i32, ptr %10772, align 4, !tbaa !5
  %10774 = call ptr @s2n_strerror_debug(i32 noundef %10773, ptr noundef @.str.4)
  %10775 = call ptr @__errno_location() #10
  %10776 = load i32, ptr %10775, align 4, !tbaa !5
  %10777 = call ptr @strerror(i32 noundef %10776) #9
  %10778 = call ptr @__errno_location() #10
  %10779 = load i32, ptr %10778, align 4, !tbaa !5
  %10780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10767, ptr noundef @.str.5, i32 noundef %10768, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 477, ptr noundef %10771, ptr noundef %10774, ptr noundef %10777, i32 noundef %10779) #9
  br label %10781

10781:                                            ; preds = %10764, %10747
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #9
  br label %10782

10782:                                            ; preds = %10781
  br label %10783

10783:                                            ; preds = %10782
  call void @exit(i32 noundef 1) #11
  unreachable

10784:                                            ; No predecessors!
  br label %10785

10785:                                            ; preds = %10784
  br label %10786

10786:                                            ; preds = %10785, %10730
  br label %10787

10787:                                            ; preds = %10786
  br label %10788

10788:                                            ; preds = %10787
  %10789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10790 = trunc i8 %10789 to i1
  br i1 %10790, label %10791, label %10807

10791:                                            ; preds = %10788
  %10792 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10793 = call i32 @fileno(ptr noundef %10792) #9
  %10794 = call i32 @isatty(i32 noundef %10793) #9
  %10795 = icmp ne i32 %10794, 0
  br i1 %10795, label %10796, label %10807

10796:                                            ; preds = %10791
  %10797 = load i32, ptr @test_count, align 4, !tbaa !5
  %10798 = icmp ne i32 %10797, 0
  br i1 %10798, label %10799, label %10803

10799:                                            ; preds = %10796
  %10800 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10801 = load i32, ptr @test_count, align 4, !tbaa !5
  %10802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10800, ptr noundef @.str.68, i32 noundef %10801) #9
  br label %10806

10803:                                            ; preds = %10796
  %10804 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10804, ptr noundef @.str.69) #9
  br label %10806

10806:                                            ; preds = %10803, %10799
  br label %10818

10807:                                            ; preds = %10791, %10788
  %10808 = load i32, ptr @test_count, align 4, !tbaa !5
  %10809 = icmp ne i32 %10808, 0
  br i1 %10809, label %10810, label %10814

10810:                                            ; preds = %10807
  %10811 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10812 = load i32, ptr @test_count, align 4, !tbaa !5
  %10813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10811, ptr noundef @.str.70, i32 noundef %10812) #9
  br label %10817

10814:                                            ; preds = %10807
  %10815 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10815, ptr noundef @.str.71) #9
  br label %10817

10817:                                            ; preds = %10814, %10810
  br label %10818

10818:                                            ; preds = %10817, %10806
  store i32 0, ptr %3, align 4
  store i32 1, ptr %42, align 4
  br label %10823

10819:                                            ; No predecessors!
  br label %10820

10820:                                            ; preds = %10819
  br label %10821

10821:                                            ; preds = %10820
  br label %10822

10822:                                            ; preds = %10821
  store i32 0, ptr %42, align 4
  br label %10823

10823:                                            ; preds = %10822, %10818
  %10824 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %28)
  %10825 = getelementptr inbounds %struct.s2n_result, ptr %236, i32 0, i32 0
  store i32 %10824, ptr %10825, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  %10826 = load i32, ptr %42, align 4
  switch i32 %10826, label %10829 [
    i32 0, label %10827
    i32 1, label %10827
  ]

10827:                                            ; preds = %10823, %10823
  %10828 = load i32, ptr %3, align 4
  ret i32 %10828

10829:                                            ; preds = %10823, %10473, %8499, %7033, %5504, %4162, %2757
  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

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #7

declare ptr @s2n_config_new() #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) #3

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 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_cert_chain_and_key_ptr_free(ptr noundef) #3

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_config_add_dhparams(ptr noundef, ptr noundef) #3

declare i32 @s2n_config_disable_x509_verification(ptr noundef) #3

declare i32 @s2n_config_set_client_auth_type(ptr noundef, i32 noundef) #3

; 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 i32 @s2n_io_pair_init_non_blocking(ptr noundef) #3

declare ptr @s2n_connection_new(i32 noundef) #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #3

declare i32 @s2n_connections_set_io_pair(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_io_pair_close(ptr noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

declare i32 @s2n_connection_set_client_auth_type(ptr noundef, i32 noundef) #3

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) #3

declare void @s2n_debug_info_reset() #3

declare i32 @s2n_cert_chain_and_key_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 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn nounwind }
attributes #12 = { 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 = !{!19, !19, i64 0}
!27 = !{!25, !10, i64 8}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}
!31 = distinct !{!31, !29}
!32 = distinct !{!32, !29}
!33 = distinct !{!33, !29}
!34 = distinct !{!34, !29}


; 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.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_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 [88 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 [65 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.71 = 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 ptr, align 8
  %4 = alloca %struct.s2n_cipher_preferences, align 8
  %5 = alloca %struct.s2n_security_policy, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %struct.s2n_test_io_pair, align 4
  %8 = alloca %struct.s2n_cipher_preferences, align 8
  %9 = alloca %struct.s2n_security_policy, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %struct.s2n_test_io_pair, align 4
  %12 = alloca %struct.s2n_cipher_preferences, align 8
  %13 = alloca %struct.s2n_security_policy, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.s2n_test_io_pair, align 4
  %16 = alloca %struct.s2n_cipher_preferences, align 8
  %17 = alloca %struct.s2n_security_policy, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %struct.s2n_test_io_pair, align 4
  %20 = alloca %struct.s2n_cipher_preferences, align 8
  %21 = alloca %struct.s2n_security_policy, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %struct.s2n_test_io_pair, align 4
  %24 = alloca %struct.s2n_cipher_preferences, align 8
  %25 = alloca %struct.s2n_security_policy, align 8
  %26 = alloca ptr, align 8
  %27 = alloca %struct.s2n_test_io_pair, align 4
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %28 = load ptr, ptr @stdout, align 8, !tbaa !9
  %29 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %30 = load ptr, ptr @stdout, align 8, !tbaa !9
  %31 = tail call i32 @fflush(ptr noundef %30)
  %32 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %33 = icmp eq i32 %32, -1
  br i1 %33, label %34, label %58

34:                                               ; preds = %2
  %35 = tail call ptr @__errno_location() #12
  %36 = load i32, ptr %35, align 4, !tbaa !5
  %37 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38 = tail call i32 @s2n_print_stacktrace(ptr noundef %37) #11
  %39 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %40 = trunc nuw i8 %39 to i1
  br i1 %40, label %41, label %45

41:                                               ; preds = %34
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = tail call i32 @fileno(ptr noundef %42) #11
  %44 = tail call i32 @isatty(i32 noundef %43) #11
  %.not764 = icmp eq i32 %44, 0
  br i1 %.not764, label %45, label %46

45:                                               ; preds = %41, %34
  br label %46

46:                                               ; preds = %41, %45
  %.str.5.sink = phi ptr [ @.str.5, %45 ], [ @.str.2, %41 ]
  store i32 %36, ptr %35, align 4, !tbaa !5
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = load i32, ptr @test_count, align 4, !tbaa !5
  %49 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %50 = load i32, ptr %49, align 4, !tbaa !5
  %51 = tail call ptr @s2n_strerror(i32 noundef %50, ptr noundef nonnull @.str.4) #11
  %52 = load i32, ptr %49, align 4, !tbaa !5
  %53 = tail call ptr @s2n_strerror_debug(i32 noundef %52, ptr noundef nonnull @.str.4) #11
  %54 = load i32, ptr %35, align 4, !tbaa !5
  %55 = tail call ptr @strerror(i32 noundef %54) #11
  %56 = load i32, ptr %35, align 4, !tbaa !5
  %57 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %47, ptr noundef nonnull %.str.5.sink, i32 noundef %48, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %51, ptr noundef %53, ptr noundef %55, i32 noundef %56) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

58:                                               ; preds = %2
  %59 = load i32, ptr @test_count, align 4, !tbaa !5
  %60 = add nsw i32 %59, 1
  store i32 %60, ptr @test_count, align 4, !tbaa !5
  %61 = tail call i32 @s2n_enable_atexit() #11
  %62 = icmp eq i32 %61, -1
  br i1 %62, label %63, label %87

63:                                               ; preds = %58
  %64 = tail call ptr @__errno_location() #12
  %65 = load i32, ptr %64, align 4, !tbaa !5
  %66 = load ptr, ptr @stderr, align 8, !tbaa !9
  %67 = tail call i32 @s2n_print_stacktrace(ptr noundef %66) #11
  %68 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %69 = trunc nuw i8 %68 to i1
  br i1 %69, label %70, label %74

70:                                               ; preds = %63
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = tail call i32 @fileno(ptr noundef %71) #11
  %73 = tail call i32 @isatty(i32 noundef %72) #11
  %.not763 = icmp eq i32 %73, 0
  br i1 %.not763, label %74, label %75

74:                                               ; preds = %70, %63
  br label %75

75:                                               ; preds = %70, %74
  %.str.5.sink837 = phi ptr [ @.str.5, %74 ], [ @.str.2, %70 ]
  store i32 %65, ptr %64, align 4, !tbaa !5
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = load i32, ptr @test_count, align 4, !tbaa !5
  %78 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %79 = load i32, ptr %78, align 4, !tbaa !5
  %80 = tail call ptr @s2n_strerror(i32 noundef %79, ptr noundef nonnull @.str.4) #11
  %81 = load i32, ptr %78, align 4, !tbaa !5
  %82 = tail call ptr @s2n_strerror_debug(i32 noundef %81, ptr noundef nonnull @.str.4) #11
  %83 = load i32, ptr %64, align 4, !tbaa !5
  %84 = tail call ptr @strerror(i32 noundef %83) #11
  %85 = load i32, ptr %64, align 4, !tbaa !5
  %86 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %76, ptr noundef nonnull %.str.5.sink837, i32 noundef %77, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %80, ptr noundef %82, ptr noundef %84, i32 noundef %85) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

87:                                               ; preds = %58
  %88 = tail call i32 @s2n_init() #11
  %89 = icmp eq i32 %88, -1
  br i1 %89, label %90, label %114

90:                                               ; preds = %87
  %91 = tail call ptr @__errno_location() #12
  %92 = load i32, ptr %91, align 4, !tbaa !5
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = tail call i32 @s2n_print_stacktrace(ptr noundef %93) #11
  %95 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %96 = trunc nuw i8 %95 to i1
  br i1 %96, label %97, label %101

97:                                               ; preds = %90
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @fileno(ptr noundef %98) #11
  %100 = tail call i32 @isatty(i32 noundef %99) #11
  %.not762 = icmp eq i32 %100, 0
  br i1 %.not762, label %101, label %102

101:                                              ; preds = %97, %90
  br label %102

102:                                              ; preds = %97, %101
  %.str.5.sink848 = phi ptr [ @.str.5, %101 ], [ @.str.2, %97 ]
  store i32 %92, ptr %91, align 4, !tbaa !5
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = load i32, ptr @test_count, align 4, !tbaa !5
  %105 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %106 = load i32, ptr %105, align 4, !tbaa !5
  %107 = tail call ptr @s2n_strerror(i32 noundef %106, ptr noundef nonnull @.str.4) #11
  %108 = load i32, ptr %105, align 4, !tbaa !5
  %109 = tail call ptr @s2n_strerror_debug(i32 noundef %108, ptr noundef nonnull @.str.4) #11
  %110 = load i32, ptr %91, align 4, !tbaa !5
  %111 = tail call ptr @strerror(i32 noundef %110) #11
  %112 = load i32, ptr %91, align 4, !tbaa !5
  %113 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %103, ptr noundef nonnull %.str.5.sink848, i32 noundef %104, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %107, ptr noundef %109, ptr noundef %111, i32 noundef %112) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

114:                                              ; preds = %87
  %115 = load i32, ptr @test_count, align 4, !tbaa !5
  %116 = add nsw i32 %115, 1
  store i32 %116, ptr @test_count, align 4, !tbaa !5
  %117 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #15
  %118 = icmp eq ptr %117, null
  br i1 %118, label %119, label %143

119:                                              ; preds = %114
  %120 = tail call ptr @__errno_location() #12
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %123 = tail call i32 @s2n_print_stacktrace(ptr noundef %122) #11
  %124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %125 = trunc nuw i8 %124 to i1
  br i1 %125, label %126, label %130

126:                                              ; preds = %119
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = tail call i32 @fileno(ptr noundef %127) #11
  %129 = tail call i32 @isatty(i32 noundef %128) #11
  %.not761 = icmp eq i32 %129, 0
  br i1 %.not761, label %130, label %131

130:                                              ; preds = %126, %119
  br label %131

131:                                              ; preds = %126, %130
  %.str.5.sink859 = phi ptr [ @.str.5, %130 ], [ @.str.2, %126 ]
  store i32 %121, ptr %120, align 4, !tbaa !5
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = load i32, ptr @test_count, align 4, !tbaa !5
  %134 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %135 = load i32, ptr %134, align 4, !tbaa !5
  %136 = tail call ptr @s2n_strerror(i32 noundef %135, ptr noundef nonnull @.str.4) #11
  %137 = load i32, ptr %134, align 4, !tbaa !5
  %138 = tail call ptr @s2n_strerror_debug(i32 noundef %137, ptr noundef nonnull @.str.4) #11
  %139 = load i32, ptr %120, align 4, !tbaa !5
  %140 = tail call ptr @strerror(i32 noundef %139) #11
  %141 = load i32, ptr %120, align 4, !tbaa !5
  %142 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %132, ptr noundef nonnull %.str.5.sink859, i32 noundef %133, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %136, ptr noundef %138, ptr noundef %140, i32 noundef %141) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

143:                                              ; preds = %114
  %144 = add nsw i32 %115, 2
  store i32 %144, ptr @test_count, align 4, !tbaa !5
  %145 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #15
  %146 = icmp eq ptr %145, null
  br i1 %146, label %147, label %171

147:                                              ; preds = %143
  %148 = tail call ptr @__errno_location() #12
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %151 = tail call i32 @s2n_print_stacktrace(ptr noundef %150) #11
  %152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %153 = trunc nuw i8 %152 to i1
  br i1 %153, label %154, label %158

154:                                              ; preds = %147
  %155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %156 = tail call i32 @fileno(ptr noundef %155) #11
  %157 = tail call i32 @isatty(i32 noundef %156) #11
  %.not760 = icmp eq i32 %157, 0
  br i1 %.not760, label %158, label %159

158:                                              ; preds = %154, %147
  br label %159

159:                                              ; preds = %154, %158
  %.str.5.sink870 = phi ptr [ @.str.5, %158 ], [ @.str.2, %154 ]
  store i32 %149, ptr %148, align 4, !tbaa !5
  %160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = tail call ptr @s2n_strerror(i32 noundef %163, ptr noundef nonnull @.str.4) #11
  %165 = load i32, ptr %162, align 4, !tbaa !5
  %166 = tail call ptr @s2n_strerror_debug(i32 noundef %165, ptr noundef nonnull @.str.4) #11
  %167 = load i32, ptr %148, align 4, !tbaa !5
  %168 = tail call ptr @strerror(i32 noundef %167) #11
  %169 = load i32, ptr %148, align 4, !tbaa !5
  %170 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %160, ptr noundef nonnull %.str.5.sink870, i32 noundef %161, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %164, ptr noundef %166, ptr noundef %168, i32 noundef %169) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

171:                                              ; preds = %143
  %172 = add nsw i32 %115, 3
  store i32 %172, ptr @test_count, align 4, !tbaa !5
  %173 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #15
  %174 = icmp eq ptr %173, null
  br i1 %174, label %175, label %199

175:                                              ; preds = %171
  %176 = tail call ptr @__errno_location() #12
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = tail call i32 @s2n_print_stacktrace(ptr noundef %178) #11
  %180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %181 = trunc nuw i8 %180 to i1
  br i1 %181, label %182, label %186

182:                                              ; preds = %175
  %183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %184 = tail call i32 @fileno(ptr noundef %183) #11
  %185 = tail call i32 @isatty(i32 noundef %184) #11
  %.not759 = icmp eq i32 %185, 0
  br i1 %.not759, label %186, label %187

186:                                              ; preds = %182, %175
  br label %187

187:                                              ; preds = %182, %186
  %.str.5.sink881 = phi ptr [ @.str.5, %186 ], [ @.str.2, %182 ]
  store i32 %177, ptr %176, align 4, !tbaa !5
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = load i32, ptr @test_count, align 4, !tbaa !5
  %190 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %191 = load i32, ptr %190, align 4, !tbaa !5
  %192 = tail call ptr @s2n_strerror(i32 noundef %191, ptr noundef nonnull @.str.4) #11
  %193 = load i32, ptr %190, align 4, !tbaa !5
  %194 = tail call ptr @s2n_strerror_debug(i32 noundef %193, ptr noundef nonnull @.str.4) #11
  %195 = load i32, ptr %176, align 4, !tbaa !5
  %196 = tail call ptr @strerror(i32 noundef %195) #11
  %197 = load i32, ptr %176, align 4, !tbaa !5
  %198 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %188, ptr noundef nonnull %.str.5.sink881, i32 noundef %189, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %192, ptr noundef %194, ptr noundef %196, i32 noundef %197) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

199:                                              ; preds = %171
  %200 = add nsw i32 %115, 4
  store i32 %200, ptr @test_count, align 4, !tbaa !5
  %201 = tail call ptr @s2n_config_new() #11
  %202 = icmp eq ptr %201, null
  br i1 %202, label %203, label %227

203:                                              ; preds = %199
  %204 = tail call ptr @__errno_location() #12
  %205 = load i32, ptr %204, align 4, !tbaa !5
  %206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %207 = tail call i32 @s2n_print_stacktrace(ptr noundef %206) #11
  %208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %209 = trunc nuw i8 %208 to i1
  br i1 %209, label %210, label %214

210:                                              ; preds = %203
  %211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %212 = tail call i32 @fileno(ptr noundef %211) #11
  %213 = tail call i32 @isatty(i32 noundef %212) #11
  %.not758 = icmp eq i32 %213, 0
  br i1 %.not758, label %214, label %215

214:                                              ; preds = %210, %203
  br label %215

215:                                              ; preds = %210, %214
  %.str.5.sink892 = phi ptr [ @.str.5, %214 ], [ @.str.2, %210 ]
  store i32 %205, ptr %204, align 4, !tbaa !5
  %216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %217 = load i32, ptr @test_count, align 4, !tbaa !5
  %218 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %219 = load i32, ptr %218, align 4, !tbaa !5
  %220 = tail call ptr @s2n_strerror(i32 noundef %219, ptr noundef nonnull @.str.4) #11
  %221 = load i32, ptr %218, align 4, !tbaa !5
  %222 = tail call ptr @s2n_strerror_debug(i32 noundef %221, ptr noundef nonnull @.str.4) #11
  %223 = load i32, ptr %204, align 4, !tbaa !5
  %224 = tail call ptr @strerror(i32 noundef %223) #11
  %225 = load i32, ptr %204, align 4, !tbaa !5
  %226 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %216, ptr noundef nonnull %.str.5.sink892, i32 noundef %217, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %220, ptr noundef %222, ptr noundef %224, i32 noundef %225) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

227:                                              ; preds = %199
  %228 = load i32, ptr @test_count, align 4, !tbaa !5
  %229 = add nsw i32 %228, 1
  store i32 %229, ptr @test_count, align 4, !tbaa !5
  %230 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %201, ptr noundef nonnull @.str.12) #11
  %231 = icmp eq i32 %230, -1
  br i1 %231, label %232, label %256

232:                                              ; preds = %227
  %233 = tail call ptr @__errno_location() #12
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %236 = tail call i32 @s2n_print_stacktrace(ptr noundef %235) #11
  %237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %238 = trunc nuw i8 %237 to i1
  br i1 %238, label %239, label %243

239:                                              ; preds = %232
  %240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %241 = tail call i32 @fileno(ptr noundef %240) #11
  %242 = tail call i32 @isatty(i32 noundef %241) #11
  %.not757 = icmp eq i32 %242, 0
  br i1 %.not757, label %243, label %244

243:                                              ; preds = %239, %232
  br label %244

244:                                              ; preds = %239, %243
  %.str.5.sink903 = phi ptr [ @.str.5, %243 ], [ @.str.2, %239 ]
  store i32 %234, ptr %233, align 4, !tbaa !5
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = load i32, ptr @test_count, align 4, !tbaa !5
  %247 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = tail call ptr @s2n_strerror(i32 noundef %248, ptr noundef nonnull @.str.4) #11
  %250 = load i32, ptr %247, align 4, !tbaa !5
  %251 = tail call ptr @s2n_strerror_debug(i32 noundef %250, ptr noundef nonnull @.str.4) #11
  %252 = load i32, ptr %233, align 4, !tbaa !5
  %253 = tail call ptr @strerror(i32 noundef %252) #11
  %254 = load i32, ptr %233, align 4, !tbaa !5
  %255 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %245, ptr noundef nonnull %.str.5.sink903, i32 noundef %246, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %249, ptr noundef %251, ptr noundef %253, i32 noundef %254) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

256:                                              ; preds = %227
  %257 = load i32, ptr @test_count, align 4, !tbaa !5
  %258 = add nsw i32 %257, 1
  store i32 %258, ptr @test_count, align 4, !tbaa !5
  %259 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.14, ptr noundef nonnull %117, i64 noundef 12000) #11
  %260 = icmp eq i32 %259, -1
  br i1 %260, label %261, label %285

261:                                              ; preds = %256
  %262 = tail call ptr @__errno_location() #12
  %263 = load i32, ptr %262, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = tail call i32 @s2n_print_stacktrace(ptr noundef %264) #11
  %266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %267 = trunc nuw i8 %266 to i1
  br i1 %267, label %268, label %272

268:                                              ; preds = %261
  %269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %270 = tail call i32 @fileno(ptr noundef %269) #11
  %271 = tail call i32 @isatty(i32 noundef %270) #11
  %.not756 = icmp eq i32 %271, 0
  br i1 %.not756, label %272, label %273

272:                                              ; preds = %268, %261
  br label %273

273:                                              ; preds = %268, %272
  %.str.5.sink914 = phi ptr [ @.str.5, %272 ], [ @.str.2, %268 ]
  store i32 %263, ptr %262, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %276 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = tail call ptr @s2n_strerror(i32 noundef %277, ptr noundef nonnull @.str.4) #11
  %279 = load i32, ptr %276, align 4, !tbaa !5
  %280 = tail call ptr @s2n_strerror_debug(i32 noundef %279, ptr noundef nonnull @.str.4) #11
  %281 = load i32, ptr %262, align 4, !tbaa !5
  %282 = tail call ptr @strerror(i32 noundef %281) #11
  %283 = load i32, ptr %262, align 4, !tbaa !5
  %284 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %274, ptr noundef nonnull %.str.5.sink914, i32 noundef %275, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %278, ptr noundef %280, ptr noundef %282, i32 noundef %283) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

285:                                              ; preds = %256
  %286 = load i32, ptr @test_count, align 4, !tbaa !5
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr @test_count, align 4, !tbaa !5
  %288 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.16, ptr noundef nonnull %145, i64 noundef 12000) #11
  %289 = icmp eq i32 %288, -1
  br i1 %289, label %290, label %314

290:                                              ; preds = %285
  %291 = tail call ptr @__errno_location() #12
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = tail call i32 @s2n_print_stacktrace(ptr noundef %293) #11
  %295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %296 = trunc nuw i8 %295 to i1
  br i1 %296, label %297, label %301

297:                                              ; preds = %290
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = tail call i32 @fileno(ptr noundef %298) #11
  %300 = tail call i32 @isatty(i32 noundef %299) #11
  %.not755 = icmp eq i32 %300, 0
  br i1 %.not755, label %301, label %302

301:                                              ; preds = %297, %290
  br label %302

302:                                              ; preds = %297, %301
  %.str.5.sink925 = phi ptr [ @.str.5, %301 ], [ @.str.2, %297 ]
  store i32 %292, ptr %291, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %306 = load i32, ptr %305, align 4, !tbaa !5
  %307 = tail call ptr @s2n_strerror(i32 noundef %306, ptr noundef nonnull @.str.4) #11
  %308 = load i32, ptr %305, align 4, !tbaa !5
  %309 = tail call ptr @s2n_strerror_debug(i32 noundef %308, ptr noundef nonnull @.str.4) #11
  %310 = load i32, ptr %291, align 4, !tbaa !5
  %311 = tail call ptr @strerror(i32 noundef %310) #11
  %312 = load i32, ptr %291, align 4, !tbaa !5
  %313 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %303, ptr noundef nonnull %.str.5.sink925, i32 noundef %304, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %307, ptr noundef %309, ptr noundef %311, i32 noundef %312) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

314:                                              ; preds = %285
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr @test_count, align 4, !tbaa !5
  %317 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.18, ptr noundef nonnull %173, i64 noundef 12000) #11
  %318 = icmp eq i32 %317, -1
  br i1 %318, label %319, label %343

319:                                              ; preds = %314
  %320 = tail call ptr @__errno_location() #12
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = tail call i32 @s2n_print_stacktrace(ptr noundef %322) #11
  %324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %325 = trunc nuw i8 %324 to i1
  br i1 %325, label %326, label %330

326:                                              ; preds = %319
  %327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %328 = tail call i32 @fileno(ptr noundef %327) #11
  %329 = tail call i32 @isatty(i32 noundef %328) #11
  %.not754 = icmp eq i32 %329, 0
  br i1 %.not754, label %330, label %331

330:                                              ; preds = %326, %319
  br label %331

331:                                              ; preds = %326, %330
  %.str.5.sink936 = phi ptr [ @.str.5, %330 ], [ @.str.2, %326 ]
  store i32 %321, ptr %320, align 4, !tbaa !5
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = load i32, ptr @test_count, align 4, !tbaa !5
  %334 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %335 = load i32, ptr %334, align 4, !tbaa !5
  %336 = tail call ptr @s2n_strerror(i32 noundef %335, ptr noundef nonnull @.str.4) #11
  %337 = load i32, ptr %334, align 4, !tbaa !5
  %338 = tail call ptr @s2n_strerror_debug(i32 noundef %337, ptr noundef nonnull @.str.4) #11
  %339 = load i32, ptr %320, align 4, !tbaa !5
  %340 = tail call ptr @strerror(i32 noundef %339) #11
  %341 = load i32, ptr %320, align 4, !tbaa !5
  %342 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %332, ptr noundef nonnull %.str.5.sink936, i32 noundef %333, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %336, ptr noundef %338, ptr noundef %340, i32 noundef %341) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

343:                                              ; preds = %314
  %344 = load i32, ptr @test_count, align 4, !tbaa !5
  %345 = add nsw i32 %344, 1
  store i32 %345, ptr @test_count, align 4, !tbaa !5
  %346 = tail call ptr @s2n_cert_chain_and_key_new() #11
  %347 = icmp eq ptr %346, null
  br i1 %347, label %348, label %372

348:                                              ; preds = %343
  %349 = tail call ptr @__errno_location() #12
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = tail call i32 @s2n_print_stacktrace(ptr noundef %351) #11
  %353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %354 = trunc nuw i8 %353 to i1
  br i1 %354, label %355, label %359

355:                                              ; preds = %348
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = tail call i32 @fileno(ptr noundef %356) #11
  %358 = tail call i32 @isatty(i32 noundef %357) #11
  %.not753 = icmp eq i32 %358, 0
  br i1 %.not753, label %359, label %360

359:                                              ; preds = %355, %348
  br label %360

360:                                              ; preds = %355, %359
  %.str.5.sink947 = phi ptr [ @.str.5, %359 ], [ @.str.2, %355 ]
  store i32 %350, ptr %349, align 4, !tbaa !5
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = load i32, ptr @test_count, align 4, !tbaa !5
  %363 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = tail call ptr @s2n_strerror(i32 noundef %364, ptr noundef nonnull @.str.4) #11
  %366 = load i32, ptr %363, align 4, !tbaa !5
  %367 = tail call ptr @s2n_strerror_debug(i32 noundef %366, ptr noundef nonnull @.str.4) #11
  %368 = load i32, ptr %349, align 4, !tbaa !5
  %369 = tail call ptr @strerror(i32 noundef %368) #11
  %370 = load i32, ptr %349, align 4, !tbaa !5
  %371 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %361, ptr noundef nonnull %.str.5.sink947, i32 noundef %362, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %365, ptr noundef %367, ptr noundef %369, i32 noundef %370) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

372:                                              ; preds = %343
  %373 = load i32, ptr @test_count, align 4, !tbaa !5
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr @test_count, align 4, !tbaa !5
  %375 = tail call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %346, ptr noundef nonnull %117, ptr noundef nonnull %145) #11
  %376 = icmp eq i32 %375, -1
  br i1 %376, label %377, label %401

377:                                              ; preds = %372
  %378 = tail call ptr @__errno_location() #12
  %379 = load i32, ptr %378, align 4, !tbaa !5
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = tail call i32 @s2n_print_stacktrace(ptr noundef %380) #11
  %382 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %383 = trunc nuw i8 %382 to i1
  br i1 %383, label %384, label %388

384:                                              ; preds = %377
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = tail call i32 @fileno(ptr noundef %385) #11
  %387 = tail call i32 @isatty(i32 noundef %386) #11
  %.not752 = icmp eq i32 %387, 0
  br i1 %.not752, label %388, label %389

388:                                              ; preds = %384, %377
  br label %389

389:                                              ; preds = %384, %388
  %.str.5.sink958 = phi ptr [ @.str.5, %388 ], [ @.str.2, %384 ]
  store i32 %379, ptr %378, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = load i32, ptr @test_count, align 4, !tbaa !5
  %392 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %393 = load i32, ptr %392, align 4, !tbaa !5
  %394 = tail call ptr @s2n_strerror(i32 noundef %393, ptr noundef nonnull @.str.4) #11
  %395 = load i32, ptr %392, align 4, !tbaa !5
  %396 = tail call ptr @s2n_strerror_debug(i32 noundef %395, ptr noundef nonnull @.str.4) #11
  %397 = load i32, ptr %378, align 4, !tbaa !5
  %398 = tail call ptr @strerror(i32 noundef %397) #11
  %399 = load i32, ptr %378, align 4, !tbaa !5
  %400 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %390, ptr noundef nonnull %.str.5.sink958, i32 noundef %391, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %394, ptr noundef %396, ptr noundef %398, i32 noundef %399) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

401:                                              ; preds = %372
  %402 = load i32, ptr @test_count, align 4, !tbaa !5
  %403 = add nsw i32 %402, 1
  store i32 %403, ptr @test_count, align 4, !tbaa !5
  %404 = tail call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %201, ptr noundef nonnull %346) #11
  %405 = icmp eq i32 %404, -1
  br i1 %405, label %406, label %430

406:                                              ; preds = %401
  %407 = tail call ptr @__errno_location() #12
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = tail call i32 @s2n_print_stacktrace(ptr noundef %409) #11
  %411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %412 = trunc nuw i8 %411 to i1
  br i1 %412, label %413, label %417

413:                                              ; preds = %406
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = tail call i32 @fileno(ptr noundef %414) #11
  %416 = tail call i32 @isatty(i32 noundef %415) #11
  %.not751 = icmp eq i32 %416, 0
  br i1 %.not751, label %417, label %418

417:                                              ; preds = %413, %406
  br label %418

418:                                              ; preds = %413, %417
  %.str.5.sink969 = phi ptr [ @.str.5, %417 ], [ @.str.2, %413 ]
  store i32 %408, ptr %407, align 4, !tbaa !5
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = load i32, ptr @test_count, align 4, !tbaa !5
  %421 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = tail call ptr @s2n_strerror(i32 noundef %422, ptr noundef nonnull @.str.4) #11
  %424 = load i32, ptr %421, align 4, !tbaa !5
  %425 = tail call ptr @s2n_strerror_debug(i32 noundef %424, ptr noundef nonnull @.str.4) #11
  %426 = load i32, ptr %407, align 4, !tbaa !5
  %427 = tail call ptr @strerror(i32 noundef %426) #11
  %428 = load i32, ptr %407, align 4, !tbaa !5
  %429 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %419, ptr noundef nonnull %.str.5.sink969, i32 noundef %420, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %423, ptr noundef %425, ptr noundef %427, i32 noundef %428) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

430:                                              ; preds = %401
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  store ptr null, ptr %3, align 8, !tbaa !9
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = add nsw i32 %431, 1
  store i32 %432, ptr @test_count, align 4, !tbaa !5
  %433 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.24) #11
  %434 = icmp eq i32 %433, -1
  br i1 %434, label %435, label %459

435:                                              ; preds = %430
  %436 = tail call ptr @__errno_location() #12
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = call i32 @s2n_print_stacktrace(ptr noundef %438) #11
  %440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %441 = trunc nuw i8 %440 to i1
  br i1 %441, label %442, label %446

442:                                              ; preds = %435
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = call i32 @fileno(ptr noundef %443) #11
  %445 = call i32 @isatty(i32 noundef %444) #11
  %.not750 = icmp eq i32 %445, 0
  br i1 %.not750, label %446, label %447

446:                                              ; preds = %442, %435
  br label %447

447:                                              ; preds = %442, %446
  %.str.5.sink980 = phi ptr [ @.str.5, %446 ], [ @.str.2, %442 ]
  store i32 %437, ptr %436, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = load i32, ptr @test_count, align 4, !tbaa !5
  %450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %451 = load i32, ptr %450, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror(i32 noundef %451, ptr noundef nonnull @.str.4) #11
  %453 = load i32, ptr %450, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror_debug(i32 noundef %453, ptr noundef nonnull @.str.4) #11
  %455 = load i32, ptr %436, align 4, !tbaa !5
  %456 = call ptr @strerror(i32 noundef %455) #11
  %457 = load i32, ptr %436, align 4, !tbaa !5
  %458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %448, ptr noundef nonnull %.str.5.sink980, i32 noundef %449, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %452, ptr noundef %454, ptr noundef %456, i32 noundef %457) #13
  call void @exit(i32 noundef 1) #14
  unreachable

459:                                              ; preds = %430
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = add nsw i32 %460, 1
  store i32 %461, ptr @test_count, align 4, !tbaa !5
  %462 = load ptr, ptr %3, align 8, !tbaa !9
  %463 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %201, ptr noundef %462) #11
  %464 = icmp eq i32 %463, -1
  br i1 %464, label %465, label %489

465:                                              ; preds = %459
  %466 = tail call ptr @__errno_location() #12
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %469 = call i32 @s2n_print_stacktrace(ptr noundef %468) #11
  %470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %471 = trunc nuw i8 %470 to i1
  br i1 %471, label %472, label %476

472:                                              ; preds = %465
  %473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %474 = call i32 @fileno(ptr noundef %473) #11
  %475 = call i32 @isatty(i32 noundef %474) #11
  %.not749 = icmp eq i32 %475, 0
  br i1 %.not749, label %476, label %477

476:                                              ; preds = %472, %465
  br label %477

477:                                              ; preds = %472, %476
  %.str.5.sink991 = phi ptr [ @.str.5, %476 ], [ @.str.2, %472 ]
  store i32 %467, ptr %466, align 4, !tbaa !5
  %478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %479 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %481, ptr noundef nonnull @.str.4) #11
  %483 = load i32, ptr %480, align 4, !tbaa !5
  %484 = call ptr @s2n_strerror_debug(i32 noundef %483, ptr noundef nonnull @.str.4) #11
  %485 = load i32, ptr %466, align 4, !tbaa !5
  %486 = call ptr @strerror(i32 noundef %485) #11
  %487 = load i32, ptr %466, align 4, !tbaa !5
  %488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %478, ptr noundef nonnull %.str.5.sink991, i32 noundef %479, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %482, ptr noundef %484, ptr noundef %486, i32 noundef %487) #13
  call void @exit(i32 noundef 1) #14
  unreachable

489:                                              ; preds = %459
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = add nsw i32 %490, 1
  store i32 %491, ptr @test_count, align 4, !tbaa !5
  %492 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %201, ptr noundef nonnull %173) #11
  %493 = icmp eq i32 %492, -1
  br i1 %493, label %494, label %518

494:                                              ; preds = %489
  %495 = tail call ptr @__errno_location() #12
  %496 = load i32, ptr %495, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = call i32 @s2n_print_stacktrace(ptr noundef %497) #11
  %499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %500 = trunc nuw i8 %499 to i1
  br i1 %500, label %501, label %505

501:                                              ; preds = %494
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = call i32 @fileno(ptr noundef %502) #11
  %504 = call i32 @isatty(i32 noundef %503) #11
  %.not748 = icmp eq i32 %504, 0
  br i1 %.not748, label %505, label %506

505:                                              ; preds = %501, %494
  br label %506

506:                                              ; preds = %501, %505
  %.str.5.sink1002 = phi ptr [ @.str.5, %505 ], [ @.str.2, %501 ]
  store i32 %496, ptr %495, align 4, !tbaa !5
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = load i32, ptr @test_count, align 4, !tbaa !5
  %509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %510 = load i32, ptr %509, align 4, !tbaa !5
  %511 = call ptr @s2n_strerror(i32 noundef %510, ptr noundef nonnull @.str.4) #11
  %512 = load i32, ptr %509, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror_debug(i32 noundef %512, ptr noundef nonnull @.str.4) #11
  %514 = load i32, ptr %495, align 4, !tbaa !5
  %515 = call ptr @strerror(i32 noundef %514) #11
  %516 = load i32, ptr %495, align 4, !tbaa !5
  %517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %507, ptr noundef nonnull %.str.5.sink1002, i32 noundef %508, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %511, ptr noundef %513, ptr noundef %515, i32 noundef %516) #13
  call void @exit(i32 noundef 1) #14
  unreachable

518:                                              ; preds = %489
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = add nsw i32 %519, 1
  store i32 %520, ptr @test_count, align 4, !tbaa !5
  %521 = getelementptr inbounds i8, ptr %201, i64 96
  %522 = load ptr, ptr %521, align 8, !tbaa !15
  %523 = icmp eq ptr %522, null
  br i1 %523, label %524, label %548

524:                                              ; preds = %518
  %525 = tail call ptr @__errno_location() #12
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = call i32 @s2n_print_stacktrace(ptr noundef %527) #11
  %529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %530 = trunc nuw i8 %529 to i1
  br i1 %530, label %531, label %535

531:                                              ; preds = %524
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = call i32 @fileno(ptr noundef %532) #11
  %534 = call i32 @isatty(i32 noundef %533) #11
  %.not747 = icmp eq i32 %534, 0
  br i1 %.not747, label %535, label %536

535:                                              ; preds = %531, %524
  br label %536

536:                                              ; preds = %531, %535
  %.str.5.sink1013 = phi ptr [ @.str.5, %535 ], [ @.str.2, %531 ]
  store i32 %526, ptr %525, align 4, !tbaa !5
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = call ptr @s2n_strerror(i32 noundef %540, ptr noundef nonnull @.str.4) #11
  %542 = load i32, ptr %539, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror_debug(i32 noundef %542, ptr noundef nonnull @.str.4) #11
  %544 = load i32, ptr %525, align 4, !tbaa !5
  %545 = call ptr @strerror(i32 noundef %544) #11
  %546 = load i32, ptr %525, align 4, !tbaa !5
  %547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %537, ptr noundef nonnull %.str.5.sink1013, i32 noundef %538, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %541, ptr noundef %543, ptr noundef %545, i32 noundef %546) #13
  call void @exit(i32 noundef 1) #14
  unreachable

548:                                              ; preds = %518
  %549 = add nsw i32 %519, 2
  store i32 %549, ptr @test_count, align 4, !tbaa !5
  %550 = getelementptr inbounds i8, ptr %522, i64 8
  %551 = load ptr, ptr %550, align 8, !tbaa !22
  %552 = icmp eq ptr %551, null
  br i1 %552, label %553, label %577

553:                                              ; preds = %548
  %554 = tail call ptr @__errno_location() #12
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = call i32 @s2n_print_stacktrace(ptr noundef %556) #11
  %558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %559 = trunc nuw i8 %558 to i1
  br i1 %559, label %560, label %564

560:                                              ; preds = %553
  %561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %562 = call i32 @fileno(ptr noundef %561) #11
  %563 = call i32 @isatty(i32 noundef %562) #11
  %.not746 = icmp eq i32 %563, 0
  br i1 %.not746, label %564, label %565

564:                                              ; preds = %560, %553
  br label %565

565:                                              ; preds = %560, %564
  %.str.5.sink1024 = phi ptr [ @.str.5, %564 ], [ @.str.2, %560 ]
  store i32 %555, ptr %554, align 4, !tbaa !5
  %566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = call ptr @s2n_strerror(i32 noundef %569, ptr noundef nonnull @.str.4) #11
  %571 = load i32, ptr %568, align 4, !tbaa !5
  %572 = call ptr @s2n_strerror_debug(i32 noundef %571, ptr noundef nonnull @.str.4) #11
  %573 = load i32, ptr %554, align 4, !tbaa !5
  %574 = call ptr @strerror(i32 noundef %573) #11
  %575 = load i32, ptr %554, align 4, !tbaa !5
  %576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %566, ptr noundef nonnull %.str.5.sink1024, i32 noundef %567, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %570, ptr noundef %572, ptr noundef %574, i32 noundef %575) #13
  call void @exit(i32 noundef 1) #14
  unreachable

577:                                              ; preds = %548
  %578 = add nsw i32 %519, 3
  store i32 %578, ptr @test_count, align 4, !tbaa !5
  %579 = call ptr @s2n_config_new() #11
  %580 = icmp eq ptr %579, null
  br i1 %580, label %581, label %605

581:                                              ; preds = %577
  %582 = tail call ptr @__errno_location() #12
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %585 = call i32 @s2n_print_stacktrace(ptr noundef %584) #11
  %586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %587 = trunc nuw i8 %586 to i1
  br i1 %587, label %588, label %592

588:                                              ; preds = %581
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = call i32 @fileno(ptr noundef %589) #11
  %591 = call i32 @isatty(i32 noundef %590) #11
  %.not745 = icmp eq i32 %591, 0
  br i1 %.not745, label %592, label %593

592:                                              ; preds = %588, %581
  br label %593

593:                                              ; preds = %588, %592
  %.str.5.sink1035 = phi ptr [ @.str.5, %592 ], [ @.str.2, %588 ]
  store i32 %583, ptr %582, align 4, !tbaa !5
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = load i32, ptr @test_count, align 4, !tbaa !5
  %596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call ptr @s2n_strerror(i32 noundef %597, ptr noundef nonnull @.str.4) #11
  %599 = load i32, ptr %596, align 4, !tbaa !5
  %600 = call ptr @s2n_strerror_debug(i32 noundef %599, ptr noundef nonnull @.str.4) #11
  %601 = load i32, ptr %582, align 4, !tbaa !5
  %602 = call ptr @strerror(i32 noundef %601) #11
  %603 = load i32, ptr %582, align 4, !tbaa !5
  %604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %594, ptr noundef nonnull %.str.5.sink1035, i32 noundef %595, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %598, ptr noundef %600, ptr noundef %602, i32 noundef %603) #13
  call void @exit(i32 noundef 1) #14
  unreachable

605:                                              ; preds = %577
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr @test_count, align 4, !tbaa !5
  %608 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %579, ptr noundef nonnull @.str.12) #11
  %609 = icmp eq i32 %608, -1
  br i1 %609, label %610, label %634

610:                                              ; preds = %605
  %611 = tail call ptr @__errno_location() #12
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = call i32 @s2n_print_stacktrace(ptr noundef %613) #11
  %615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %616 = trunc nuw i8 %615 to i1
  br i1 %616, label %617, label %621

617:                                              ; preds = %610
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = call i32 @fileno(ptr noundef %618) #11
  %620 = call i32 @isatty(i32 noundef %619) #11
  %.not744 = icmp eq i32 %620, 0
  br i1 %.not744, label %621, label %622

621:                                              ; preds = %617, %610
  br label %622

622:                                              ; preds = %617, %621
  %.str.5.sink1046 = phi ptr [ @.str.5, %621 ], [ @.str.2, %617 ]
  store i32 %612, ptr %611, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call ptr @s2n_strerror(i32 noundef %626, ptr noundef nonnull @.str.4) #11
  %628 = load i32, ptr %625, align 4, !tbaa !5
  %629 = call ptr @s2n_strerror_debug(i32 noundef %628, ptr noundef nonnull @.str.4) #11
  %630 = load i32, ptr %611, align 4, !tbaa !5
  %631 = call ptr @strerror(i32 noundef %630) #11
  %632 = load i32, ptr %611, align 4, !tbaa !5
  %633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %623, ptr noundef nonnull %.str.5.sink1046, i32 noundef %624, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %627, ptr noundef %629, ptr noundef %631, i32 noundef %632) #13
  call void @exit(i32 noundef 1) #14
  unreachable

634:                                              ; preds = %605
  %635 = load i32, ptr @test_count, align 4, !tbaa !5
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr @test_count, align 4, !tbaa !5
  %637 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %579, ptr noundef nonnull %346) #11
  %638 = icmp eq i32 %637, -1
  br i1 %638, label %639, label %663

639:                                              ; preds = %634
  %640 = tail call ptr @__errno_location() #12
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = call i32 @s2n_print_stacktrace(ptr noundef %642) #11
  %644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %645 = trunc nuw i8 %644 to i1
  br i1 %645, label %646, label %650

646:                                              ; preds = %639
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @fileno(ptr noundef %647) #11
  %649 = call i32 @isatty(i32 noundef %648) #11
  %.not743 = icmp eq i32 %649, 0
  br i1 %.not743, label %650, label %651

650:                                              ; preds = %646, %639
  br label %651

651:                                              ; preds = %646, %650
  %.str.5.sink1057 = phi ptr [ @.str.5, %650 ], [ @.str.2, %646 ]
  store i32 %641, ptr %640, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror(i32 noundef %655, ptr noundef nonnull @.str.4) #11
  %657 = load i32, ptr %654, align 4, !tbaa !5
  %658 = call ptr @s2n_strerror_debug(i32 noundef %657, ptr noundef nonnull @.str.4) #11
  %659 = load i32, ptr %640, align 4, !tbaa !5
  %660 = call ptr @strerror(i32 noundef %659) #11
  %661 = load i32, ptr %640, align 4, !tbaa !5
  %662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %652, ptr noundef nonnull %.str.5.sink1057, i32 noundef %653, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %656, ptr noundef %658, ptr noundef %660, i32 noundef %661) #13
  call void @exit(i32 noundef 1) #14
  unreachable

663:                                              ; preds = %634
  %664 = load i32, ptr @test_count, align 4, !tbaa !5
  %665 = add nsw i32 %664, 1
  store i32 %665, ptr @test_count, align 4, !tbaa !5
  %666 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %579) #11
  %667 = icmp eq i32 %666, -1
  br i1 %667, label %668, label %692

668:                                              ; preds = %663
  %669 = tail call ptr @__errno_location() #12
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = call i32 @s2n_print_stacktrace(ptr noundef %671) #11
  %673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %674 = trunc nuw i8 %673 to i1
  br i1 %674, label %675, label %679

675:                                              ; preds = %668
  %676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %677 = call i32 @fileno(ptr noundef %676) #11
  %678 = call i32 @isatty(i32 noundef %677) #11
  %.not742 = icmp eq i32 %678, 0
  br i1 %.not742, label %679, label %680

679:                                              ; preds = %675, %668
  br label %680

680:                                              ; preds = %675, %679
  %.str.5.sink1068 = phi ptr [ @.str.5, %679 ], [ @.str.2, %675 ]
  store i32 %670, ptr %669, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = load i32, ptr @test_count, align 4, !tbaa !5
  %683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call ptr @s2n_strerror(i32 noundef %684, ptr noundef nonnull @.str.4) #11
  %686 = load i32, ptr %683, align 4, !tbaa !5
  %687 = call ptr @s2n_strerror_debug(i32 noundef %686, ptr noundef nonnull @.str.4) #11
  %688 = load i32, ptr %669, align 4, !tbaa !5
  %689 = call ptr @strerror(i32 noundef %688) #11
  %690 = load i32, ptr %669, align 4, !tbaa !5
  %691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %681, ptr noundef nonnull %.str.5.sink1068, i32 noundef %682, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %685, ptr noundef %687, ptr noundef %689, i32 noundef %690) #13
  call void @exit(i32 noundef 1) #14
  unreachable

692:                                              ; preds = %663
  %693 = load i32, ptr @test_count, align 4, !tbaa !5
  %694 = add nsw i32 %693, 1
  store i32 %694, ptr @test_count, align 4, !tbaa !5
  %695 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %579, i32 noundef 2) #11
  %696 = icmp eq i32 %695, -1
  br i1 %696, label %697, label %721

697:                                              ; preds = %692
  %698 = tail call ptr @__errno_location() #12
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = call i32 @s2n_print_stacktrace(ptr noundef %700) #11
  %702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %703 = trunc nuw i8 %702 to i1
  br i1 %703, label %704, label %708

704:                                              ; preds = %697
  %705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %706 = call i32 @fileno(ptr noundef %705) #11
  %707 = call i32 @isatty(i32 noundef %706) #11
  %.not741 = icmp eq i32 %707, 0
  br i1 %.not741, label %708, label %709

708:                                              ; preds = %704, %697
  br label %709

709:                                              ; preds = %704, %708
  %.str.5.sink1079 = phi ptr [ @.str.5, %708 ], [ @.str.2, %704 ]
  store i32 %699, ptr %698, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror(i32 noundef %713, ptr noundef nonnull @.str.4) #11
  %715 = load i32, ptr %712, align 4, !tbaa !5
  %716 = call ptr @s2n_strerror_debug(i32 noundef %715, ptr noundef nonnull @.str.4) #11
  %717 = load i32, ptr %698, align 4, !tbaa !5
  %718 = call ptr @strerror(i32 noundef %717) #11
  %719 = load i32, ptr %698, align 4, !tbaa !5
  %720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %710, ptr noundef nonnull %.str.5.sink1079, i32 noundef %711, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %714, ptr noundef %716, ptr noundef %718, i32 noundef %719) #13
  call void @exit(i32 noundef 1) #14
  unreachable

721:                                              ; preds = %692
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = add nsw i32 %722, 1
  store i32 %723, ptr @test_count, align 4, !tbaa !5
  %724 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %201, i32 noundef 2) #11
  %725 = icmp eq i32 %724, -1
  br i1 %725, label %726, label %750

726:                                              ; preds = %721
  %727 = tail call ptr @__errno_location() #12
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = call i32 @s2n_print_stacktrace(ptr noundef %729) #11
  %731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %732 = trunc nuw i8 %731 to i1
  br i1 %732, label %733, label %737

733:                                              ; preds = %726
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = call i32 @fileno(ptr noundef %734) #11
  %736 = call i32 @isatty(i32 noundef %735) #11
  %.not740 = icmp eq i32 %736, 0
  br i1 %.not740, label %737, label %738

737:                                              ; preds = %733, %726
  br label %738

738:                                              ; preds = %733, %737
  %.str.5.sink1090 = phi ptr [ @.str.5, %737 ], [ @.str.2, %733 ]
  store i32 %728, ptr %727, align 4, !tbaa !5
  %739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %740 = load i32, ptr @test_count, align 4, !tbaa !5
  %741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror(i32 noundef %742, ptr noundef nonnull @.str.4) #11
  %744 = load i32, ptr %741, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror_debug(i32 noundef %744, ptr noundef nonnull @.str.4) #11
  %746 = load i32, ptr %727, align 4, !tbaa !5
  %747 = call ptr @strerror(i32 noundef %746) #11
  %748 = load i32, ptr %727, align 4, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %739, ptr noundef nonnull %.str.5.sink1090, i32 noundef %740, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %743, ptr noundef %745, ptr noundef %747, i32 noundef %748) #13
  call void @exit(i32 noundef 1) #14
  unreachable

750:                                              ; preds = %721
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = add nsw i32 %751, 1
  store i32 %752, ptr @test_count, align 4, !tbaa !5
  %753 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %201) #11
  %754 = icmp eq i32 %753, -1
  br i1 %754, label %761, label %.preheader769

.preheader769:                                    ; preds = %750
  %755 = load ptr, ptr %550, align 8, !tbaa !22
  %756 = load i16, ptr %755, align 8, !tbaa !24
  %.not797 = icmp eq i16 %756, 0
  br i1 %.not797, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader769
  %757 = getelementptr inbounds i8, ptr %551, i64 8
  %758 = getelementptr inbounds i8, ptr %4, i64 8
  %759 = getelementptr inbounds i8, ptr %5, i64 8
  %760 = getelementptr inbounds i8, ptr %579, i64 96
  br label %789

761:                                              ; preds = %750
  %762 = tail call ptr @__errno_location() #12
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @s2n_print_stacktrace(ptr noundef %764) #11
  %766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %767 = trunc nuw i8 %766 to i1
  br i1 %767, label %768, label %772

768:                                              ; preds = %761
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @fileno(ptr noundef %769) #11
  %771 = call i32 @isatty(i32 noundef %770) #11
  %.not739 = icmp eq i32 %771, 0
  br i1 %.not739, label %772, label %773

772:                                              ; preds = %768, %761
  br label %773

773:                                              ; preds = %768, %772
  %.str.5.sink1101 = phi ptr [ @.str.5, %772 ], [ @.str.2, %768 ]
  store i32 %763, ptr %762, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror(i32 noundef %777, ptr noundef nonnull @.str.4) #11
  %779 = load i32, ptr %776, align 4, !tbaa !5
  %780 = call ptr @s2n_strerror_debug(i32 noundef %779, ptr noundef nonnull @.str.4) #11
  %781 = load i32, ptr %762, align 4, !tbaa !5
  %782 = call ptr @strerror(i32 noundef %781) #11
  %783 = load i32, ptr %762, align 4, !tbaa !5
  %784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %774, ptr noundef nonnull %.str.5.sink1101, i32 noundef %775, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %778, ptr noundef %780, ptr noundef %782, i32 noundef %783) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge:                                      ; preds = %1142, %.preheader769
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr @test_count, align 4, !tbaa !5
  %787 = call i32 @s2n_config_free(ptr noundef nonnull %579) #11
  %788 = icmp eq i32 %787, -1
  br i1 %788, label %1147, label %1171

789:                                              ; preds = %.lr.ph, %1142
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %1142 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %5) #11
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %551, i64 24, i1 false)
  store i16 1, ptr %4, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #11
  %790 = load ptr, ptr %757, align 8, !tbaa !26
  %791 = getelementptr inbounds ptr, ptr %790, i64 %indvars.iv
  %792 = load ptr, ptr %791, align 8, !tbaa !9
  store ptr %792, ptr %6, align 8, !tbaa !9
  %793 = load i8, ptr %792, align 8
  %794 = and i8 %793, 1
  %.not724 = icmp eq i8 %794, 0
  br i1 %.not724, label %1142, label %795

795:                                              ; preds = %789
  store ptr %6, ptr %758, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %5, ptr noundef nonnull align 8 dereferenceable(64) %522, i64 64, i1 false)
  store ptr %4, ptr %759, align 8, !tbaa !22
  store ptr %5, ptr %760, align 8, !tbaa !15
  store ptr %5, ptr %521, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  %796 = load i32, ptr @test_count, align 4, !tbaa !5
  %797 = add nsw i32 %796, 1
  store i32 %797, ptr @test_count, align 4, !tbaa !5
  %798 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %7) #11
  %799 = icmp eq i32 %798, -1
  br i1 %799, label %800, label %824

800:                                              ; preds = %795
  %801 = tail call ptr @__errno_location() #12
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = call i32 @s2n_print_stacktrace(ptr noundef %803) #11
  %805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %806 = trunc nuw i8 %805 to i1
  br i1 %806, label %807, label %811

807:                                              ; preds = %800
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = call i32 @fileno(ptr noundef %808) #11
  %810 = call i32 @isatty(i32 noundef %809) #11
  %.not738 = icmp eq i32 %810, 0
  br i1 %.not738, label %811, label %812

811:                                              ; preds = %807, %800
  br label %812

812:                                              ; preds = %807, %811
  %.str.5.sink1112 = phi ptr [ @.str.5, %811 ], [ @.str.2, %807 ]
  store i32 %802, ptr %801, align 4, !tbaa !5
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = load i32, ptr @test_count, align 4, !tbaa !5
  %815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror(i32 noundef %816, ptr noundef nonnull @.str.4) #11
  %818 = load i32, ptr %815, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror_debug(i32 noundef %818, ptr noundef nonnull @.str.4) #11
  %820 = load i32, ptr %801, align 4, !tbaa !5
  %821 = call ptr @strerror(i32 noundef %820) #11
  %822 = load i32, ptr %801, align 4, !tbaa !5
  %823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %813, ptr noundef nonnull %.str.5.sink1112, i32 noundef %814, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %817, ptr noundef %819, ptr noundef %821, i32 noundef %822) #13
  call void @exit(i32 noundef 1) #14
  unreachable

824:                                              ; preds = %795
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = add nsw i32 %825, 1
  store i32 %826, ptr @test_count, align 4, !tbaa !5
  %827 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %828 = icmp eq ptr %827, null
  br i1 %828, label %829, label %853

829:                                              ; preds = %824
  %830 = tail call ptr @__errno_location() #12
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @s2n_print_stacktrace(ptr noundef %832) #11
  %834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %835 = trunc nuw i8 %834 to i1
  br i1 %835, label %836, label %840

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

840:                                              ; preds = %836, %829
  br label %841

841:                                              ; preds = %836, %840
  %.str.5.sink1123 = phi ptr [ @.str.5, %840 ], [ @.str.2, %836 ]
  store i32 %831, ptr %830, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror(i32 noundef %845, ptr noundef nonnull @.str.4) #11
  %847 = load i32, ptr %844, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror_debug(i32 noundef %847, ptr noundef nonnull @.str.4) #11
  %849 = load i32, ptr %830, align 4, !tbaa !5
  %850 = call ptr @strerror(i32 noundef %849) #11
  %851 = load i32, ptr %830, align 4, !tbaa !5
  %852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %842, ptr noundef nonnull %.str.5.sink1123, i32 noundef %843, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %846, ptr noundef %848, ptr noundef %850, i32 noundef %851) #13
  call void @exit(i32 noundef 1) #14
  unreachable

853:                                              ; preds = %824
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = add nsw i32 %854, 1
  store i32 %855, ptr @test_count, align 4, !tbaa !5
  %856 = call i32 @s2n_connection_set_config(ptr noundef nonnull %827, ptr noundef nonnull %579) #11
  %857 = icmp eq i32 %856, -1
  br i1 %857, label %858, label %882

858:                                              ; preds = %853
  %859 = tail call ptr @__errno_location() #12
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = call i32 @s2n_print_stacktrace(ptr noundef %861) #11
  %863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %864 = trunc nuw i8 %863 to i1
  br i1 %864, label %865, label %869

865:                                              ; preds = %858
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = call i32 @fileno(ptr noundef %866) #11
  %868 = call i32 @isatty(i32 noundef %867) #11
  %.not736 = icmp eq i32 %868, 0
  br i1 %.not736, label %869, label %870

869:                                              ; preds = %865, %858
  br label %870

870:                                              ; preds = %865, %869
  %.str.5.sink1134 = phi ptr [ @.str.5, %869 ], [ @.str.2, %865 ]
  store i32 %860, ptr %859, align 4, !tbaa !5
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = load i32, ptr @test_count, align 4, !tbaa !5
  %873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror(i32 noundef %874, ptr noundef nonnull @.str.4) #11
  %876 = load i32, ptr %873, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror_debug(i32 noundef %876, ptr noundef nonnull @.str.4) #11
  %878 = load i32, ptr %859, align 4, !tbaa !5
  %879 = call ptr @strerror(i32 noundef %878) #11
  %880 = load i32, ptr %859, align 4, !tbaa !5
  %881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %871, ptr noundef nonnull %.str.5.sink1134, i32 noundef %872, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %875, ptr noundef %877, ptr noundef %879, i32 noundef %880) #13
  call void @exit(i32 noundef 1) #14
  unreachable

882:                                              ; preds = %853
  %883 = load i32, ptr @test_count, align 4, !tbaa !5
  %884 = add nsw i32 %883, 1
  store i32 %884, ptr @test_count, align 4, !tbaa !5
  %885 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %886 = icmp eq ptr %885, null
  br i1 %886, label %887, label %911

887:                                              ; preds = %882
  %888 = tail call ptr @__errno_location() #12
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = call i32 @s2n_print_stacktrace(ptr noundef %890) #11
  %892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %893 = trunc nuw i8 %892 to i1
  br i1 %893, label %894, label %898

894:                                              ; preds = %887
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = call i32 @fileno(ptr noundef %895) #11
  %897 = call i32 @isatty(i32 noundef %896) #11
  %.not735 = icmp eq i32 %897, 0
  br i1 %.not735, label %898, label %899

898:                                              ; preds = %894, %887
  br label %899

899:                                              ; preds = %894, %898
  %.str.5.sink1145 = phi ptr [ @.str.5, %898 ], [ @.str.2, %894 ]
  store i32 %889, ptr %888, align 4, !tbaa !5
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = load i32, ptr @test_count, align 4, !tbaa !5
  %902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror(i32 noundef %903, ptr noundef nonnull @.str.4) #11
  %905 = load i32, ptr %902, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror_debug(i32 noundef %905, ptr noundef nonnull @.str.4) #11
  %907 = load i32, ptr %888, align 4, !tbaa !5
  %908 = call ptr @strerror(i32 noundef %907) #11
  %909 = load i32, ptr %888, align 4, !tbaa !5
  %910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %900, ptr noundef nonnull %.str.5.sink1145, i32 noundef %901, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %904, ptr noundef %906, ptr noundef %908, i32 noundef %909) #13
  call void @exit(i32 noundef 1) #14
  unreachable

911:                                              ; preds = %882
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = add nsw i32 %912, 1
  store i32 %913, ptr @test_count, align 4, !tbaa !5
  %914 = call i32 @s2n_connection_set_config(ptr noundef nonnull %885, ptr noundef nonnull %201) #11
  %915 = icmp eq i32 %914, -1
  br i1 %915, label %916, label %940

916:                                              ; preds = %911
  %917 = tail call ptr @__errno_location() #12
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = call i32 @s2n_print_stacktrace(ptr noundef %919) #11
  %921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %922 = trunc nuw i8 %921 to i1
  br i1 %922, label %923, label %927

923:                                              ; preds = %916
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = call i32 @fileno(ptr noundef %924) #11
  %926 = call i32 @isatty(i32 noundef %925) #11
  %.not734 = icmp eq i32 %926, 0
  br i1 %.not734, label %927, label %928

927:                                              ; preds = %923, %916
  br label %928

928:                                              ; preds = %923, %927
  %.str.5.sink1156 = phi ptr [ @.str.5, %927 ], [ @.str.2, %923 ]
  store i32 %918, ptr %917, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call ptr @s2n_strerror(i32 noundef %932, ptr noundef nonnull @.str.4) #11
  %934 = load i32, ptr %931, align 4, !tbaa !5
  %935 = call ptr @s2n_strerror_debug(i32 noundef %934, ptr noundef nonnull @.str.4) #11
  %936 = load i32, ptr %917, align 4, !tbaa !5
  %937 = call ptr @strerror(i32 noundef %936) #11
  %938 = load i32, ptr %917, align 4, !tbaa !5
  %939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %929, ptr noundef nonnull %.str.5.sink1156, i32 noundef %930, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %933, ptr noundef %935, ptr noundef %937, i32 noundef %938) #13
  call void @exit(i32 noundef 1) #14
  unreachable

940:                                              ; preds = %911
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = add nsw i32 %941, 1
  store i32 %942, ptr @test_count, align 4, !tbaa !5
  %943 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %827, ptr noundef nonnull %885, ptr noundef nonnull %7) #11
  %944 = icmp eq i32 %943, -1
  br i1 %944, label %945, label %969

945:                                              ; preds = %940
  %946 = tail call ptr @__errno_location() #12
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @s2n_print_stacktrace(ptr noundef %948) #11
  %950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %951 = trunc nuw i8 %950 to i1
  br i1 %951, label %952, label %956

952:                                              ; preds = %945
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = call i32 @fileno(ptr noundef %953) #11
  %955 = call i32 @isatty(i32 noundef %954) #11
  %.not733 = icmp eq i32 %955, 0
  br i1 %.not733, label %956, label %957

956:                                              ; preds = %952, %945
  br label %957

957:                                              ; preds = %952, %956
  %.str.5.sink1167 = phi ptr [ @.str.5, %956 ], [ @.str.2, %952 ]
  store i32 %947, ptr %946, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = load i32, ptr @test_count, align 4, !tbaa !5
  %960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %961 = load i32, ptr %960, align 4, !tbaa !5
  %962 = call ptr @s2n_strerror(i32 noundef %961, ptr noundef nonnull @.str.4) #11
  %963 = load i32, ptr %960, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror_debug(i32 noundef %963, ptr noundef nonnull @.str.4) #11
  %965 = load i32, ptr %946, align 4, !tbaa !5
  %966 = call ptr @strerror(i32 noundef %965) #11
  %967 = load i32, ptr %946, align 4, !tbaa !5
  %968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %958, ptr noundef nonnull %.str.5.sink1167, i32 noundef %959, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %962, ptr noundef %964, ptr noundef %966, i32 noundef %967) #13
  call void @exit(i32 noundef 1) #14
  unreachable

969:                                              ; preds = %940
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = add nsw i32 %970, 1
  store i32 %971, ptr @test_count, align 4, !tbaa !5
  %972 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %885, ptr noundef nonnull %827) #11
  %973 = icmp eq i32 %972, -1
  br i1 %973, label %974, label %998

974:                                              ; preds = %969
  %975 = tail call ptr @__errno_location() #12
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = call i32 @s2n_print_stacktrace(ptr noundef %977) #11
  %979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %980 = trunc nuw i8 %979 to i1
  br i1 %980, label %981, label %985

981:                                              ; preds = %974
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = call i32 @fileno(ptr noundef %982) #11
  %984 = call i32 @isatty(i32 noundef %983) #11
  %.not732 = icmp eq i32 %984, 0
  br i1 %.not732, label %985, label %986

985:                                              ; preds = %981, %974
  br label %986

986:                                              ; preds = %981, %985
  %.str.5.sink1178 = phi ptr [ @.str.5, %985 ], [ @.str.2, %981 ]
  store i32 %976, ptr %975, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %990, ptr noundef nonnull @.str.4) #11
  %992 = load i32, ptr %989, align 4, !tbaa !5
  %993 = call ptr @s2n_strerror_debug(i32 noundef %992, ptr noundef nonnull @.str.4) #11
  %994 = load i32, ptr %975, align 4, !tbaa !5
  %995 = call ptr @strerror(i32 noundef %994) #11
  %996 = load i32, ptr %975, align 4, !tbaa !5
  %997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %987, ptr noundef nonnull %.str.5.sink1178, i32 noundef %988, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %991, ptr noundef %993, ptr noundef %995, i32 noundef %996) #13
  call void @exit(i32 noundef 1) #14
  unreachable

998:                                              ; preds = %969
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = add nsw i32 %999, 1
  store i32 %1000, ptr @test_count, align 4, !tbaa !5
  %1001 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %885) #11
  %.not725 = icmp eq i32 %1001, 0
  br i1 %.not725, label %1002, label %1026

1002:                                             ; preds = %998
  %1003 = tail call ptr @__errno_location() #12
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1006 = call i32 @s2n_print_stacktrace(ptr noundef %1005) #11
  %1007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1008 = trunc nuw i8 %1007 to i1
  br i1 %1008, label %1009, label %1013

1009:                                             ; preds = %1002
  %1010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1011 = call i32 @fileno(ptr noundef %1010) #11
  %1012 = call i32 @isatty(i32 noundef %1011) #11
  %.not726 = icmp eq i32 %1012, 0
  br i1 %.not726, label %1013, label %1014

1013:                                             ; preds = %1009, %1002
  br label %1014

1014:                                             ; preds = %1009, %1013
  %.str.5.sink1189 = phi ptr [ @.str.5, %1013 ], [ @.str.2, %1009 ]
  store i32 %1004, ptr %1003, align 4, !tbaa !5
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = load i32, ptr @test_count, align 4, !tbaa !5
  %1017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror(i32 noundef %1018, ptr noundef nonnull @.str.4) #11
  %1020 = load i32, ptr %1017, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror_debug(i32 noundef %1020, ptr noundef nonnull @.str.4) #11
  %1022 = load i32, ptr %1003, align 4, !tbaa !5
  %1023 = call ptr @strerror(i32 noundef %1022) #11
  %1024 = load i32, ptr %1003, align 4, !tbaa !5
  %1025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1015, ptr noundef nonnull %.str.5.sink1189, i32 noundef %1016, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1019, ptr noundef %1021, ptr noundef %1023, i32 noundef %1024) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1026:                                             ; preds = %998
  %1027 = load i32, ptr @test_count, align 4, !tbaa !5
  %1028 = add nsw i32 %1027, 1
  store i32 %1028, ptr @test_count, align 4, !tbaa !5
  %1029 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %827) #11
  %.not727 = icmp eq i32 %1029, 0
  br i1 %.not727, label %1030, label %1054

1030:                                             ; preds = %1026
  %1031 = tail call ptr @__errno_location() #12
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @s2n_print_stacktrace(ptr noundef %1033) #11
  %1035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1036 = trunc nuw i8 %1035 to i1
  br i1 %1036, label %1037, label %1041

1037:                                             ; preds = %1030
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @fileno(ptr noundef %1038) #11
  %1040 = call i32 @isatty(i32 noundef %1039) #11
  %.not728 = icmp eq i32 %1040, 0
  br i1 %.not728, label %1041, label %1042

1041:                                             ; preds = %1037, %1030
  br label %1042

1042:                                             ; preds = %1037, %1041
  %.str.5.sink1200 = phi ptr [ @.str.5, %1041 ], [ @.str.2, %1037 ]
  store i32 %1032, ptr %1031, align 4, !tbaa !5
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = load i32, ptr @test_count, align 4, !tbaa !5
  %1045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror(i32 noundef %1046, ptr noundef nonnull @.str.4) #11
  %1048 = load i32, ptr %1045, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror_debug(i32 noundef %1048, ptr noundef nonnull @.str.4) #11
  %1050 = load i32, ptr %1031, align 4, !tbaa !5
  %1051 = call ptr @strerror(i32 noundef %1050) #11
  %1052 = load i32, ptr %1031, align 4, !tbaa !5
  %1053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1043, ptr noundef nonnull %.str.5.sink1200, i32 noundef %1044, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %1047, ptr noundef %1049, ptr noundef %1051, i32 noundef %1052) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1054:                                             ; preds = %1026
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = add nsw i32 %1055, 1
  store i32 %1056, ptr @test_count, align 4, !tbaa !5
  %1057 = call i32 @s2n_connection_free(ptr noundef nonnull %827) #11
  %1058 = icmp eq i32 %1057, -1
  br i1 %1058, label %1059, label %1083

1059:                                             ; preds = %1054
  %1060 = tail call ptr @__errno_location() #12
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = call i32 @s2n_print_stacktrace(ptr noundef %1062) #11
  %1064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1065 = trunc nuw i8 %1064 to i1
  br i1 %1065, label %1066, label %1070

1066:                                             ; preds = %1059
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = call i32 @fileno(ptr noundef %1067) #11
  %1069 = call i32 @isatty(i32 noundef %1068) #11
  %.not731 = icmp eq i32 %1069, 0
  br i1 %.not731, label %1070, label %1071

1070:                                             ; preds = %1066, %1059
  br label %1071

1071:                                             ; preds = %1066, %1070
  %.str.5.sink1211 = phi ptr [ @.str.5, %1070 ], [ @.str.2, %1066 ]
  store i32 %1061, ptr %1060, align 4, !tbaa !5
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = load i32, ptr @test_count, align 4, !tbaa !5
  %1074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @s2n_strerror(i32 noundef %1075, ptr noundef nonnull @.str.4) #11
  %1077 = load i32, ptr %1074, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror_debug(i32 noundef %1077, ptr noundef nonnull @.str.4) #11
  %1079 = load i32, ptr %1060, align 4, !tbaa !5
  %1080 = call ptr @strerror(i32 noundef %1079) #11
  %1081 = load i32, ptr %1060, align 4, !tbaa !5
  %1082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1072, ptr noundef nonnull %.str.5.sink1211, i32 noundef %1073, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %1076, ptr noundef %1078, ptr noundef %1080, i32 noundef %1081) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1083:                                             ; preds = %1054
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = add nsw i32 %1084, 1
  store i32 %1085, ptr @test_count, align 4, !tbaa !5
  %1086 = call i32 @s2n_connection_free(ptr noundef nonnull %885) #11
  %1087 = icmp eq i32 %1086, -1
  br i1 %1087, label %1088, label %1112

1088:                                             ; preds = %1083
  %1089 = tail call ptr @__errno_location() #12
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1092 = call i32 @s2n_print_stacktrace(ptr noundef %1091) #11
  %1093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1094 = trunc nuw i8 %1093 to i1
  br i1 %1094, label %1095, label %1099

1095:                                             ; preds = %1088
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = call i32 @fileno(ptr noundef %1096) #11
  %1098 = call i32 @isatty(i32 noundef %1097) #11
  %.not730 = icmp eq i32 %1098, 0
  br i1 %.not730, label %1099, label %1100

1099:                                             ; preds = %1095, %1088
  br label %1100

1100:                                             ; preds = %1095, %1099
  %.str.5.sink1222 = phi ptr [ @.str.5, %1099 ], [ @.str.2, %1095 ]
  store i32 %1090, ptr %1089, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef nonnull @.str.4) #11
  %1106 = load i32, ptr %1103, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror_debug(i32 noundef %1106, ptr noundef nonnull @.str.4) #11
  %1108 = load i32, ptr %1089, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #11
  %1110 = load i32, ptr %1089, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1101, ptr noundef nonnull %.str.5.sink1222, i32 noundef %1102, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %1105, ptr noundef %1107, ptr noundef %1109, i32 noundef %1110) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1112:                                             ; preds = %1083
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = add nsw i32 %1113, 1
  store i32 %1114, ptr @test_count, align 4, !tbaa !5
  %1115 = call i32 @s2n_io_pair_close(ptr noundef nonnull %7) #11
  %1116 = icmp eq i32 %1115, -1
  br i1 %1116, label %1117, label %1141

1117:                                             ; preds = %1112
  %1118 = tail call ptr @__errno_location() #12
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = call i32 @s2n_print_stacktrace(ptr noundef %1120) #11
  %1122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1123 = trunc nuw i8 %1122 to i1
  br i1 %1123, label %1124, label %1128

1124:                                             ; preds = %1117
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @fileno(ptr noundef %1125) #11
  %1127 = call i32 @isatty(i32 noundef %1126) #11
  %.not729 = icmp eq i32 %1127, 0
  br i1 %.not729, label %1128, label %1129

1128:                                             ; preds = %1124, %1117
  br label %1129

1129:                                             ; preds = %1124, %1128
  %.str.5.sink1233 = phi ptr [ @.str.5, %1128 ], [ @.str.2, %1124 ]
  store i32 %1119, ptr %1118, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = load i32, ptr @test_count, align 4, !tbaa !5
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror(i32 noundef %1133, ptr noundef nonnull @.str.4) #11
  %1135 = load i32, ptr %1132, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror_debug(i32 noundef %1135, ptr noundef nonnull @.str.4) #11
  %1137 = load i32, ptr %1118, align 4, !tbaa !5
  %1138 = call ptr @strerror(i32 noundef %1137) #11
  %1139 = load i32, ptr %1118, align 4, !tbaa !5
  %1140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1130, ptr noundef nonnull %.str.5.sink1233, i32 noundef %1131, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %1134, ptr noundef %1136, ptr noundef %1138, i32 noundef %1139) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1141:                                             ; preds = %1112
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #11
  br label %1142

1142:                                             ; preds = %789, %1141
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #11
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %1143 = load ptr, ptr %550, align 8, !tbaa !22
  %1144 = load i16, ptr %1143, align 8, !tbaa !24
  %1145 = zext i16 %1144 to i64
  %1146 = icmp ult i64 %indvars.iv.next, %1145
  br i1 %1146, label %789, label %._crit_edge, !llvm.loop !27

1147:                                             ; preds = %._crit_edge
  %1148 = tail call ptr @__errno_location() #12
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = call i32 @s2n_print_stacktrace(ptr noundef %1150) #11
  %1152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1153 = trunc nuw i8 %1152 to i1
  br i1 %1153, label %1154, label %1158

1154:                                             ; preds = %1147
  %1155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1156 = call i32 @fileno(ptr noundef %1155) #11
  %1157 = call i32 @isatty(i32 noundef %1156) #11
  %.not723 = icmp eq i32 %1157, 0
  br i1 %.not723, label %1158, label %1159

1158:                                             ; preds = %1154, %1147
  br label %1159

1159:                                             ; preds = %1154, %1158
  %.str.5.sink1244 = phi ptr [ @.str.5, %1158 ], [ @.str.2, %1154 ]
  store i32 %1149, ptr %1148, align 4, !tbaa !5
  %1160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1161 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1163, ptr noundef nonnull @.str.4) #11
  %1165 = load i32, ptr %1162, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror_debug(i32 noundef %1165, ptr noundef nonnull @.str.4) #11
  %1167 = load i32, ptr %1148, align 4, !tbaa !5
  %1168 = call ptr @strerror(i32 noundef %1167) #11
  %1169 = load i32, ptr %1148, align 4, !tbaa !5
  %1170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1160, ptr noundef nonnull %.str.5.sink1244, i32 noundef %1161, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %1164, ptr noundef %1166, ptr noundef %1168, i32 noundef %1169) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1171:                                             ; preds = %._crit_edge
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = add nsw i32 %1172, 1
  store i32 %1173, ptr @test_count, align 4, !tbaa !5
  %1174 = call ptr @s2n_config_new() #11
  %1175 = icmp eq ptr %1174, null
  br i1 %1175, label %1176, label %1200

1176:                                             ; preds = %1171
  %1177 = tail call ptr @__errno_location() #12
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = call i32 @s2n_print_stacktrace(ptr noundef %1179) #11
  %1181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1182 = trunc nuw i8 %1181 to i1
  br i1 %1182, label %1183, label %1187

1183:                                             ; preds = %1176
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @fileno(ptr noundef %1184) #11
  %1186 = call i32 @isatty(i32 noundef %1185) #11
  %.not722 = icmp eq i32 %1186, 0
  br i1 %.not722, label %1187, label %1188

1187:                                             ; preds = %1183, %1176
  br label %1188

1188:                                             ; preds = %1183, %1187
  %.str.5.sink1255 = phi ptr [ @.str.5, %1187 ], [ @.str.2, %1183 ]
  store i32 %1178, ptr %1177, align 4, !tbaa !5
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1192 = load i32, ptr %1191, align 4, !tbaa !5
  %1193 = call ptr @s2n_strerror(i32 noundef %1192, ptr noundef nonnull @.str.4) #11
  %1194 = load i32, ptr %1191, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror_debug(i32 noundef %1194, ptr noundef nonnull @.str.4) #11
  %1196 = load i32, ptr %1177, align 4, !tbaa !5
  %1197 = call ptr @strerror(i32 noundef %1196) #11
  %1198 = load i32, ptr %1177, align 4, !tbaa !5
  %1199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1189, ptr noundef nonnull %.str.5.sink1255, i32 noundef %1190, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1193, ptr noundef %1195, ptr noundef %1197, i32 noundef %1198) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1200:                                             ; preds = %1171
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = add nsw i32 %1201, 1
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1174, ptr noundef nonnull @.str.12) #11
  %1204 = icmp eq i32 %1203, -1
  br i1 %1204, label %1205, label %1229

1205:                                             ; preds = %1200
  %1206 = tail call ptr @__errno_location() #12
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @s2n_print_stacktrace(ptr noundef %1208) #11
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1211 = trunc nuw i8 %1210 to i1
  br i1 %1211, label %1212, label %1216

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

1216:                                             ; preds = %1212, %1205
  br label %1217

1217:                                             ; preds = %1212, %1216
  %.str.5.sink1266 = phi ptr [ @.str.5, %1216 ], [ @.str.2, %1212 ]
  store i32 %1207, ptr %1206, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror(i32 noundef %1221, ptr noundef nonnull @.str.4) #11
  %1223 = load i32, ptr %1220, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror_debug(i32 noundef %1223, ptr noundef nonnull @.str.4) #11
  %1225 = load i32, ptr %1206, align 4, !tbaa !5
  %1226 = call ptr @strerror(i32 noundef %1225) #11
  %1227 = load i32, ptr %1206, align 4, !tbaa !5
  %1228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef nonnull %.str.5.sink1266, i32 noundef %1219, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1222, ptr noundef %1224, ptr noundef %1226, i32 noundef %1227) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1229:                                             ; preds = %1200
  %1230 = load i32, ptr @test_count, align 4, !tbaa !5
  %1231 = add nsw i32 %1230, 1
  store i32 %1231, ptr @test_count, align 4, !tbaa !5
  %1232 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1174, ptr noundef nonnull %346) #11
  %1233 = icmp eq i32 %1232, -1
  br i1 %1233, label %1234, label %1258

1234:                                             ; preds = %1229
  %1235 = tail call ptr @__errno_location() #12
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = call i32 @s2n_print_stacktrace(ptr noundef %1237) #11
  %1239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1240 = trunc nuw i8 %1239 to i1
  br i1 %1240, label %1241, label %1245

1241:                                             ; preds = %1234
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = call i32 @fileno(ptr noundef %1242) #11
  %1244 = call i32 @isatty(i32 noundef %1243) #11
  %.not720 = icmp eq i32 %1244, 0
  br i1 %.not720, label %1245, label %1246

1245:                                             ; preds = %1241, %1234
  br label %1246

1246:                                             ; preds = %1241, %1245
  %.str.5.sink1277 = phi ptr [ @.str.5, %1245 ], [ @.str.2, %1241 ]
  store i32 %1236, ptr %1235, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = load i32, ptr @test_count, align 4, !tbaa !5
  %1249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1250 = load i32, ptr %1249, align 4, !tbaa !5
  %1251 = call ptr @s2n_strerror(i32 noundef %1250, ptr noundef nonnull @.str.4) #11
  %1252 = load i32, ptr %1249, align 4, !tbaa !5
  %1253 = call ptr @s2n_strerror_debug(i32 noundef %1252, ptr noundef nonnull @.str.4) #11
  %1254 = load i32, ptr %1235, align 4, !tbaa !5
  %1255 = call ptr @strerror(i32 noundef %1254) #11
  %1256 = load i32, ptr %1235, align 4, !tbaa !5
  %1257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1247, ptr noundef nonnull %.str.5.sink1277, i32 noundef %1248, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1251, ptr noundef %1253, ptr noundef %1255, i32 noundef %1256) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1258:                                             ; preds = %1229
  %1259 = load i32, ptr @test_count, align 4, !tbaa !5
  %1260 = add nsw i32 %1259, 1
  store i32 %1260, ptr @test_count, align 4, !tbaa !5
  %1261 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %1174) #11
  %1262 = icmp eq i32 %1261, -1
  br i1 %1262, label %1263, label %1287

1263:                                             ; preds = %1258
  %1264 = tail call ptr @__errno_location() #12
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = call i32 @s2n_print_stacktrace(ptr noundef %1266) #11
  %1268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1269 = trunc nuw i8 %1268 to i1
  br i1 %1269, label %1270, label %1274

1270:                                             ; preds = %1263
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = call i32 @fileno(ptr noundef %1271) #11
  %1273 = call i32 @isatty(i32 noundef %1272) #11
  %.not719 = icmp eq i32 %1273, 0
  br i1 %.not719, label %1274, label %1275

1274:                                             ; preds = %1270, %1263
  br label %1275

1275:                                             ; preds = %1270, %1274
  %.str.5.sink1288 = phi ptr [ @.str.5, %1274 ], [ @.str.2, %1270 ]
  store i32 %1265, ptr %1264, align 4, !tbaa !5
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @s2n_strerror(i32 noundef %1279, ptr noundef nonnull @.str.4) #11
  %1281 = load i32, ptr %1278, align 4, !tbaa !5
  %1282 = call ptr @s2n_strerror_debug(i32 noundef %1281, ptr noundef nonnull @.str.4) #11
  %1283 = load i32, ptr %1264, align 4, !tbaa !5
  %1284 = call ptr @strerror(i32 noundef %1283) #11
  %1285 = load i32, ptr %1264, align 4, !tbaa !5
  %1286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1276, ptr noundef nonnull %.str.5.sink1288, i32 noundef %1277, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1280, ptr noundef %1282, ptr noundef %1284, i32 noundef %1285) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1287:                                             ; preds = %1258
  %1288 = load i32, ptr @test_count, align 4, !tbaa !5
  %1289 = add nsw i32 %1288, 1
  store i32 %1289, ptr @test_count, align 4, !tbaa !5
  %1290 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %1174, i32 noundef 2) #11
  %1291 = icmp eq i32 %1290, -1
  br i1 %1291, label %1292, label %1316

1292:                                             ; preds = %1287
  %1293 = tail call ptr @__errno_location() #12
  %1294 = load i32, ptr %1293, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = call i32 @s2n_print_stacktrace(ptr noundef %1295) #11
  %1297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1298 = trunc nuw i8 %1297 to i1
  br i1 %1298, label %1299, label %1303

1299:                                             ; preds = %1292
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = call i32 @fileno(ptr noundef %1300) #11
  %1302 = call i32 @isatty(i32 noundef %1301) #11
  %.not718 = icmp eq i32 %1302, 0
  br i1 %.not718, label %1303, label %1304

1303:                                             ; preds = %1299, %1292
  br label %1304

1304:                                             ; preds = %1299, %1303
  %.str.5.sink1299 = phi ptr [ @.str.5, %1303 ], [ @.str.2, %1299 ]
  store i32 %1294, ptr %1293, align 4, !tbaa !5
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = load i32, ptr @test_count, align 4, !tbaa !5
  %1307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call ptr @s2n_strerror(i32 noundef %1308, ptr noundef nonnull @.str.4) #11
  %1310 = load i32, ptr %1307, align 4, !tbaa !5
  %1311 = call ptr @s2n_strerror_debug(i32 noundef %1310, ptr noundef nonnull @.str.4) #11
  %1312 = load i32, ptr %1293, align 4, !tbaa !5
  %1313 = call ptr @strerror(i32 noundef %1312) #11
  %1314 = load i32, ptr %1293, align 4, !tbaa !5
  %1315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1305, ptr noundef nonnull %.str.5.sink1299, i32 noundef %1306, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1309, ptr noundef %1311, ptr noundef %1313, i32 noundef %1314) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1316:                                             ; preds = %1287
  %1317 = load i32, ptr @test_count, align 4, !tbaa !5
  %1318 = add nsw i32 %1317, 1
  store i32 %1318, ptr @test_count, align 4, !tbaa !5
  %1319 = call i32 @s2n_config_set_client_auth_type(ptr noundef %201, i32 noundef 0) #11
  %1320 = icmp eq i32 %1319, -1
  br i1 %1320, label %1321, label %1345

1321:                                             ; preds = %1316
  %1322 = tail call ptr @__errno_location() #12
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = call i32 @s2n_print_stacktrace(ptr noundef %1324) #11
  %1326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1327 = trunc nuw i8 %1326 to i1
  br i1 %1327, label %1328, label %1332

1328:                                             ; preds = %1321
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = call i32 @fileno(ptr noundef %1329) #11
  %1331 = call i32 @isatty(i32 noundef %1330) #11
  %.not717 = icmp eq i32 %1331, 0
  br i1 %.not717, label %1332, label %1333

1332:                                             ; preds = %1328, %1321
  br label %1333

1333:                                             ; preds = %1328, %1332
  %.str.5.sink1310 = phi ptr [ @.str.5, %1332 ], [ @.str.2, %1328 ]
  store i32 %1323, ptr %1322, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = call ptr @s2n_strerror(i32 noundef %1337, ptr noundef nonnull @.str.4) #11
  %1339 = load i32, ptr %1336, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror_debug(i32 noundef %1339, ptr noundef nonnull @.str.4) #11
  %1341 = load i32, ptr %1322, align 4, !tbaa !5
  %1342 = call ptr @strerror(i32 noundef %1341) #11
  %1343 = load i32, ptr %1322, align 4, !tbaa !5
  %1344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1334, ptr noundef nonnull %.str.5.sink1310, i32 noundef %1335, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %1338, ptr noundef %1340, ptr noundef %1342, i32 noundef %1343) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1345:                                             ; preds = %1316
  %1346 = load i32, ptr @test_count, align 4, !tbaa !5
  %1347 = add nsw i32 %1346, 1
  store i32 %1347, ptr @test_count, align 4, !tbaa !5
  %1348 = call i32 @s2n_config_disable_x509_verification(ptr noundef %201) #11
  %1349 = icmp eq i32 %1348, -1
  br i1 %1349, label %1355, label %.preheader768

.preheader768:                                    ; preds = %1345
  %1350 = load i16, ptr %551, align 8, !tbaa !24
  %.not798 = icmp eq i16 %1350, 0
  br i1 %.not798, label %._crit_edge784, label %.lr.ph783

.lr.ph783:                                        ; preds = %.preheader768
  %1351 = getelementptr inbounds i8, ptr %551, i64 8
  %1352 = getelementptr inbounds i8, ptr %8, i64 8
  %1353 = getelementptr inbounds i8, ptr %9, i64 8
  %1354 = getelementptr inbounds i8, ptr %1174, i64 96
  br label %1383

1355:                                             ; preds = %1345
  %1356 = tail call ptr @__errno_location() #12
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @s2n_print_stacktrace(ptr noundef %1358) #11
  %1360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1361 = trunc nuw i8 %1360 to i1
  br i1 %1361, label %1362, label %1366

1362:                                             ; preds = %1355
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = call i32 @fileno(ptr noundef %1363) #11
  %1365 = call i32 @isatty(i32 noundef %1364) #11
  %.not716 = icmp eq i32 %1365, 0
  br i1 %.not716, label %1366, label %1367

1366:                                             ; preds = %1362, %1355
  br label %1367

1367:                                             ; preds = %1362, %1366
  %.str.5.sink1321 = phi ptr [ @.str.5, %1366 ], [ @.str.2, %1362 ]
  store i32 %1357, ptr %1356, align 4, !tbaa !5
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = load i32, ptr @test_count, align 4, !tbaa !5
  %1370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror(i32 noundef %1371, ptr noundef nonnull @.str.4) #11
  %1373 = load i32, ptr %1370, align 4, !tbaa !5
  %1374 = call ptr @s2n_strerror_debug(i32 noundef %1373, ptr noundef nonnull @.str.4) #11
  %1375 = load i32, ptr %1356, align 4, !tbaa !5
  %1376 = call ptr @strerror(i32 noundef %1375) #11
  %1377 = load i32, ptr %1356, align 4, !tbaa !5
  %1378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1368, ptr noundef nonnull %.str.5.sink1321, i32 noundef %1369, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1372, ptr noundef %1374, ptr noundef %1376, i32 noundef %1377) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge784:                                   ; preds = %1736, %.preheader768
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = call i32 @s2n_config_free(ptr noundef nonnull %1174) #11
  %1382 = icmp eq i32 %1381, -1
  br i1 %1382, label %1740, label %1764

1383:                                             ; preds = %.lr.ph783, %1736
  %indvars.iv808 = phi i64 [ 0, %.lr.ph783 ], [ %indvars.iv.next809, %1736 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9) #11
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %551, i64 24, i1 false)
  store i16 1, ptr %8, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  %1384 = load ptr, ptr %1351, align 8, !tbaa !26
  %1385 = getelementptr inbounds ptr, ptr %1384, i64 %indvars.iv808
  %1386 = load ptr, ptr %1385, align 8, !tbaa !9
  store ptr %1386, ptr %10, align 8, !tbaa !9
  %1387 = load i8, ptr %1386, align 8
  %1388 = and i8 %1387, 1
  %.not701 = icmp eq i8 %1388, 0
  br i1 %.not701, label %1736, label %1389

1389:                                             ; preds = %1383
  store ptr %10, ptr %1352, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %9, ptr noundef nonnull align 8 dereferenceable(64) %522, i64 64, i1 false)
  store ptr %8, ptr %1353, align 8, !tbaa !22
  store ptr %9, ptr %1354, align 8, !tbaa !15
  store ptr %9, ptr %521, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  %1390 = load i32, ptr @test_count, align 4, !tbaa !5
  %1391 = add nsw i32 %1390, 1
  store i32 %1391, ptr @test_count, align 4, !tbaa !5
  %1392 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #11
  %1393 = icmp eq i32 %1392, -1
  br i1 %1393, label %1394, label %1418

1394:                                             ; preds = %1389
  %1395 = tail call ptr @__errno_location() #12
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = call i32 @s2n_print_stacktrace(ptr noundef %1397) #11
  %1399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1400 = trunc nuw i8 %1399 to i1
  br i1 %1400, label %1401, label %1405

1401:                                             ; preds = %1394
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = call i32 @fileno(ptr noundef %1402) #11
  %1404 = call i32 @isatty(i32 noundef %1403) #11
  %.not715 = icmp eq i32 %1404, 0
  br i1 %.not715, label %1405, label %1406

1405:                                             ; preds = %1401, %1394
  br label %1406

1406:                                             ; preds = %1401, %1405
  %.str.5.sink1332 = phi ptr [ @.str.5, %1405 ], [ @.str.2, %1401 ]
  store i32 %1396, ptr %1395, 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 nonnull @.str.4) #11
  %1412 = load i32, ptr %1409, align 4, !tbaa !5
  %1413 = call ptr @s2n_strerror_debug(i32 noundef %1412, ptr noundef nonnull @.str.4) #11
  %1414 = load i32, ptr %1395, align 4, !tbaa !5
  %1415 = call ptr @strerror(i32 noundef %1414) #11
  %1416 = load i32, ptr %1395, align 4, !tbaa !5
  %1417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1407, ptr noundef nonnull %.str.5.sink1332, i32 noundef %1408, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1411, ptr noundef %1413, ptr noundef %1415, i32 noundef %1416) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1418:                                             ; preds = %1389
  %1419 = load i32, ptr @test_count, align 4, !tbaa !5
  %1420 = add nsw i32 %1419, 1
  store i32 %1420, ptr @test_count, align 4, !tbaa !5
  %1421 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %1422 = icmp eq ptr %1421, null
  br i1 %1422, label %1423, label %1447

1423:                                             ; preds = %1418
  %1424 = tail call ptr @__errno_location() #12
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = call i32 @s2n_print_stacktrace(ptr noundef %1426) #11
  %1428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1429 = trunc nuw i8 %1428 to i1
  br i1 %1429, label %1430, label %1434

1430:                                             ; preds = %1423
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @fileno(ptr noundef %1431) #11
  %1433 = call i32 @isatty(i32 noundef %1432) #11
  %.not714 = icmp eq i32 %1433, 0
  br i1 %.not714, label %1434, label %1435

1434:                                             ; preds = %1430, %1423
  br label %1435

1435:                                             ; preds = %1430, %1434
  %.str.5.sink1343 = phi ptr [ @.str.5, %1434 ], [ @.str.2, %1430 ]
  store i32 %1425, ptr %1424, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call ptr @s2n_strerror(i32 noundef %1439, ptr noundef nonnull @.str.4) #11
  %1441 = load i32, ptr %1438, align 4, !tbaa !5
  %1442 = call ptr @s2n_strerror_debug(i32 noundef %1441, ptr noundef nonnull @.str.4) #11
  %1443 = load i32, ptr %1424, align 4, !tbaa !5
  %1444 = call ptr @strerror(i32 noundef %1443) #11
  %1445 = load i32, ptr %1424, align 4, !tbaa !5
  %1446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1436, ptr noundef nonnull %.str.5.sink1343, i32 noundef %1437, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1440, ptr noundef %1442, ptr noundef %1444, i32 noundef %1445) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1447:                                             ; preds = %1418
  %1448 = load i32, ptr @test_count, align 4, !tbaa !5
  %1449 = add nsw i32 %1448, 1
  store i32 %1449, ptr @test_count, align 4, !tbaa !5
  %1450 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1421, ptr noundef nonnull %1174) #11
  %1451 = icmp eq i32 %1450, -1
  br i1 %1451, label %1452, label %1476

1452:                                             ; preds = %1447
  %1453 = tail call ptr @__errno_location() #12
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = call i32 @s2n_print_stacktrace(ptr noundef %1455) #11
  %1457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1458 = trunc nuw i8 %1457 to i1
  br i1 %1458, label %1459, label %1463

1459:                                             ; preds = %1452
  %1460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1461 = call i32 @fileno(ptr noundef %1460) #11
  %1462 = call i32 @isatty(i32 noundef %1461) #11
  %.not713 = icmp eq i32 %1462, 0
  br i1 %.not713, label %1463, label %1464

1463:                                             ; preds = %1459, %1452
  br label %1464

1464:                                             ; preds = %1459, %1463
  %.str.5.sink1354 = phi ptr [ @.str.5, %1463 ], [ @.str.2, %1459 ]
  store i32 %1454, ptr %1453, align 4, !tbaa !5
  %1465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %1467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror(i32 noundef %1468, ptr noundef nonnull @.str.4) #11
  %1470 = load i32, ptr %1467, align 4, !tbaa !5
  %1471 = call ptr @s2n_strerror_debug(i32 noundef %1470, ptr noundef nonnull @.str.4) #11
  %1472 = load i32, ptr %1453, align 4, !tbaa !5
  %1473 = call ptr @strerror(i32 noundef %1472) #11
  %1474 = load i32, ptr %1453, align 4, !tbaa !5
  %1475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1465, ptr noundef nonnull %.str.5.sink1354, i32 noundef %1466, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1469, ptr noundef %1471, ptr noundef %1473, i32 noundef %1474) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1476:                                             ; preds = %1447
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = add nsw i32 %1477, 1
  store i32 %1478, ptr @test_count, align 4, !tbaa !5
  %1479 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1480 = icmp eq ptr %1479, null
  br i1 %1480, label %1481, label %1505

1481:                                             ; preds = %1476
  %1482 = tail call ptr @__errno_location() #12
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = call i32 @s2n_print_stacktrace(ptr noundef %1484) #11
  %1486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1487 = trunc nuw i8 %1486 to i1
  br i1 %1487, label %1488, label %1492

1488:                                             ; preds = %1481
  %1489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1490 = call i32 @fileno(ptr noundef %1489) #11
  %1491 = call i32 @isatty(i32 noundef %1490) #11
  %.not712 = icmp eq i32 %1491, 0
  br i1 %.not712, label %1492, label %1493

1492:                                             ; preds = %1488, %1481
  br label %1493

1493:                                             ; preds = %1488, %1492
  %.str.5.sink1365 = phi ptr [ @.str.5, %1492 ], [ @.str.2, %1488 ]
  store i32 %1483, ptr %1482, align 4, !tbaa !5
  %1494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1495 = load i32, ptr @test_count, align 4, !tbaa !5
  %1496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror(i32 noundef %1497, ptr noundef nonnull @.str.4) #11
  %1499 = load i32, ptr %1496, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror_debug(i32 noundef %1499, ptr noundef nonnull @.str.4) #11
  %1501 = load i32, ptr %1482, align 4, !tbaa !5
  %1502 = call ptr @strerror(i32 noundef %1501) #11
  %1503 = load i32, ptr %1482, align 4, !tbaa !5
  %1504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1494, ptr noundef nonnull %.str.5.sink1365, i32 noundef %1495, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1498, ptr noundef %1500, ptr noundef %1502, i32 noundef %1503) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1505:                                             ; preds = %1476
  %1506 = load i32, ptr @test_count, align 4, !tbaa !5
  %1507 = add nsw i32 %1506, 1
  store i32 %1507, ptr @test_count, align 4, !tbaa !5
  %1508 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1479, ptr noundef nonnull %201) #11
  %1509 = icmp eq i32 %1508, -1
  br i1 %1509, label %1510, label %1534

1510:                                             ; preds = %1505
  %1511 = tail call ptr @__errno_location() #12
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = call i32 @s2n_print_stacktrace(ptr noundef %1513) #11
  %1515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1516 = trunc nuw i8 %1515 to i1
  br i1 %1516, label %1517, label %1521

1517:                                             ; preds = %1510
  %1518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1519 = call i32 @fileno(ptr noundef %1518) #11
  %1520 = call i32 @isatty(i32 noundef %1519) #11
  %.not711 = icmp eq i32 %1520, 0
  br i1 %.not711, label %1521, label %1522

1521:                                             ; preds = %1517, %1510
  br label %1522

1522:                                             ; preds = %1517, %1521
  %.str.5.sink1376 = phi ptr [ @.str.5, %1521 ], [ @.str.2, %1517 ]
  store i32 %1512, ptr %1511, align 4, !tbaa !5
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1526 = load i32, ptr %1525, align 4, !tbaa !5
  %1527 = call ptr @s2n_strerror(i32 noundef %1526, ptr noundef nonnull @.str.4) #11
  %1528 = load i32, ptr %1525, align 4, !tbaa !5
  %1529 = call ptr @s2n_strerror_debug(i32 noundef %1528, ptr noundef nonnull @.str.4) #11
  %1530 = load i32, ptr %1511, align 4, !tbaa !5
  %1531 = call ptr @strerror(i32 noundef %1530) #11
  %1532 = load i32, ptr %1511, align 4, !tbaa !5
  %1533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1523, ptr noundef nonnull %.str.5.sink1376, i32 noundef %1524, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1527, ptr noundef %1529, ptr noundef %1531, i32 noundef %1532) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1534:                                             ; preds = %1505
  %1535 = load i32, ptr @test_count, align 4, !tbaa !5
  %1536 = add nsw i32 %1535, 1
  store i32 %1536, ptr @test_count, align 4, !tbaa !5
  %1537 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %1421, ptr noundef nonnull %1479, ptr noundef nonnull %11) #11
  %1538 = icmp eq i32 %1537, -1
  br i1 %1538, label %1539, label %1563

1539:                                             ; preds = %1534
  %1540 = tail call ptr @__errno_location() #12
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = call i32 @s2n_print_stacktrace(ptr noundef %1542) #11
  %1544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1545 = trunc nuw i8 %1544 to i1
  br i1 %1545, label %1546, label %1550

1546:                                             ; preds = %1539
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @fileno(ptr noundef %1547) #11
  %1549 = call i32 @isatty(i32 noundef %1548) #11
  %.not710 = icmp eq i32 %1549, 0
  br i1 %.not710, label %1550, label %1551

1550:                                             ; preds = %1546, %1539
  br label %1551

1551:                                             ; preds = %1546, %1550
  %.str.5.sink1387 = phi ptr [ @.str.5, %1550 ], [ @.str.2, %1546 ]
  store i32 %1541, ptr %1540, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = load i32, ptr @test_count, align 4, !tbaa !5
  %1554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @s2n_strerror(i32 noundef %1555, ptr noundef nonnull @.str.4) #11
  %1557 = load i32, ptr %1554, align 4, !tbaa !5
  %1558 = call ptr @s2n_strerror_debug(i32 noundef %1557, ptr noundef nonnull @.str.4) #11
  %1559 = load i32, ptr %1540, align 4, !tbaa !5
  %1560 = call ptr @strerror(i32 noundef %1559) #11
  %1561 = load i32, ptr %1540, align 4, !tbaa !5
  %1562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1552, ptr noundef nonnull %.str.5.sink1387, i32 noundef %1553, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1556, ptr noundef %1558, ptr noundef %1560, i32 noundef %1561) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1563:                                             ; preds = %1534
  %1564 = load i32, ptr @test_count, align 4, !tbaa !5
  %1565 = add nsw i32 %1564, 1
  store i32 %1565, ptr @test_count, align 4, !tbaa !5
  %1566 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %1479, ptr noundef nonnull %1421) #11
  %1567 = icmp eq i32 %1566, -1
  br i1 %1567, label %1568, label %1592

1568:                                             ; preds = %1563
  %1569 = tail call ptr @__errno_location() #12
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = call i32 @s2n_print_stacktrace(ptr noundef %1571) #11
  %1573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1574 = trunc nuw i8 %1573 to i1
  br i1 %1574, label %1575, label %1579

1575:                                             ; preds = %1568
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = call i32 @fileno(ptr noundef %1576) #11
  %1578 = call i32 @isatty(i32 noundef %1577) #11
  %.not709 = icmp eq i32 %1578, 0
  br i1 %.not709, label %1579, label %1580

1579:                                             ; preds = %1575, %1568
  br label %1580

1580:                                             ; preds = %1575, %1579
  %.str.5.sink1398 = phi ptr [ @.str.5, %1579 ], [ @.str.2, %1575 ]
  store i32 %1570, ptr %1569, align 4, !tbaa !5
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror(i32 noundef %1584, ptr noundef nonnull @.str.4) #11
  %1586 = load i32, ptr %1583, align 4, !tbaa !5
  %1587 = call ptr @s2n_strerror_debug(i32 noundef %1586, ptr noundef nonnull @.str.4) #11
  %1588 = load i32, ptr %1569, align 4, !tbaa !5
  %1589 = call ptr @strerror(i32 noundef %1588) #11
  %1590 = load i32, ptr %1569, align 4, !tbaa !5
  %1591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1581, ptr noundef nonnull %.str.5.sink1398, i32 noundef %1582, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1585, ptr noundef %1587, ptr noundef %1589, i32 noundef %1590) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1592:                                             ; preds = %1563
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = add nsw i32 %1593, 1
  store i32 %1594, ptr @test_count, align 4, !tbaa !5
  %1595 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %1479) #11
  %.not702 = icmp eq i32 %1595, 0
  br i1 %.not702, label %1620, label %1596

1596:                                             ; preds = %1592
  %1597 = tail call ptr @__errno_location() #12
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = call i32 @s2n_print_stacktrace(ptr noundef %1599) #11
  %1601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1602 = trunc nuw i8 %1601 to i1
  br i1 %1602, label %1603, label %1607

1603:                                             ; preds = %1596
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @fileno(ptr noundef %1604) #11
  %1606 = call i32 @isatty(i32 noundef %1605) #11
  %.not708 = icmp eq i32 %1606, 0
  br i1 %.not708, label %1607, label %1608

1607:                                             ; preds = %1603, %1596
  br label %1608

1608:                                             ; preds = %1603, %1607
  %.str.5.sink1409 = phi ptr [ @.str.5, %1607 ], [ @.str.2, %1603 ]
  store i32 %1598, ptr %1597, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror(i32 noundef %1612, ptr noundef nonnull @.str.4) #11
  %1614 = load i32, ptr %1611, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror_debug(i32 noundef %1614, ptr noundef nonnull @.str.4) #11
  %1616 = load i32, ptr %1597, align 4, !tbaa !5
  %1617 = call ptr @strerror(i32 noundef %1616) #11
  %1618 = load i32, ptr %1597, align 4, !tbaa !5
  %1619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1609, ptr noundef nonnull %.str.5.sink1409, i32 noundef %1610, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1613, ptr noundef %1615, ptr noundef %1617, i32 noundef %1618) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1620:                                             ; preds = %1592
  %1621 = load i32, ptr @test_count, align 4, !tbaa !5
  %1622 = add nsw i32 %1621, 1
  store i32 %1622, ptr @test_count, align 4, !tbaa !5
  %1623 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %1421) #11
  %.not703 = icmp eq i32 %1623, 0
  br i1 %.not703, label %1648, label %1624

1624:                                             ; preds = %1620
  %1625 = tail call ptr @__errno_location() #12
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = call i32 @s2n_print_stacktrace(ptr noundef %1627) #11
  %1629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1630 = trunc nuw i8 %1629 to i1
  br i1 %1630, label %1631, label %1635

1631:                                             ; preds = %1624
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = call i32 @fileno(ptr noundef %1632) #11
  %1634 = call i32 @isatty(i32 noundef %1633) #11
  %.not707 = icmp eq i32 %1634, 0
  br i1 %.not707, label %1635, label %1636

1635:                                             ; preds = %1631, %1624
  br label %1636

1636:                                             ; preds = %1631, %1635
  %.str.5.sink1420 = phi ptr [ @.str.5, %1635 ], [ @.str.2, %1631 ]
  store i32 %1626, ptr %1625, align 4, !tbaa !5
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call ptr @s2n_strerror(i32 noundef %1640, ptr noundef nonnull @.str.4) #11
  %1642 = load i32, ptr %1639, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef nonnull @.str.4) #11
  %1644 = load i32, ptr %1625, align 4, !tbaa !5
  %1645 = call ptr @strerror(i32 noundef %1644) #11
  %1646 = load i32, ptr %1625, align 4, !tbaa !5
  %1647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1637, ptr noundef nonnull %.str.5.sink1420, i32 noundef %1638, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %1641, ptr noundef %1643, ptr noundef %1645, i32 noundef %1646) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1648:                                             ; preds = %1620
  %1649 = load i32, ptr @test_count, align 4, !tbaa !5
  %1650 = add nsw i32 %1649, 1
  store i32 %1650, ptr @test_count, align 4, !tbaa !5
  %1651 = call i32 @s2n_connection_free(ptr noundef nonnull %1421) #11
  %1652 = icmp eq i32 %1651, -1
  br i1 %1652, label %1653, label %1677

1653:                                             ; preds = %1648
  %1654 = tail call ptr @__errno_location() #12
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = call i32 @s2n_print_stacktrace(ptr noundef %1656) #11
  %1658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1659 = trunc nuw i8 %1658 to i1
  br i1 %1659, label %1660, label %1664

1660:                                             ; preds = %1653
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = call i32 @fileno(ptr noundef %1661) #11
  %1663 = call i32 @isatty(i32 noundef %1662) #11
  %.not706 = icmp eq i32 %1663, 0
  br i1 %.not706, label %1664, label %1665

1664:                                             ; preds = %1660, %1653
  br label %1665

1665:                                             ; preds = %1660, %1664
  %.str.5.sink1431 = phi ptr [ @.str.5, %1664 ], [ @.str.2, %1660 ]
  store i32 %1655, ptr %1654, align 4, !tbaa !5
  %1666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %1670 = call ptr @s2n_strerror(i32 noundef %1669, ptr noundef nonnull @.str.4) #11
  %1671 = load i32, ptr %1668, align 4, !tbaa !5
  %1672 = call ptr @s2n_strerror_debug(i32 noundef %1671, ptr noundef nonnull @.str.4) #11
  %1673 = load i32, ptr %1654, align 4, !tbaa !5
  %1674 = call ptr @strerror(i32 noundef %1673) #11
  %1675 = load i32, ptr %1654, align 4, !tbaa !5
  %1676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1666, ptr noundef nonnull %.str.5.sink1431, i32 noundef %1667, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1670, ptr noundef %1672, ptr noundef %1674, i32 noundef %1675) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1677:                                             ; preds = %1648
  %1678 = load i32, ptr @test_count, align 4, !tbaa !5
  %1679 = add nsw i32 %1678, 1
  store i32 %1679, ptr @test_count, align 4, !tbaa !5
  %1680 = call i32 @s2n_connection_free(ptr noundef nonnull %1479) #11
  %1681 = icmp eq i32 %1680, -1
  br i1 %1681, label %1682, label %1706

1682:                                             ; preds = %1677
  %1683 = tail call ptr @__errno_location() #12
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @s2n_print_stacktrace(ptr noundef %1685) #11
  %1687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1688 = trunc nuw i8 %1687 to i1
  br i1 %1688, label %1689, label %1693

1689:                                             ; preds = %1682
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @fileno(ptr noundef %1690) #11
  %1692 = call i32 @isatty(i32 noundef %1691) #11
  %.not705 = icmp eq i32 %1692, 0
  br i1 %.not705, label %1693, label %1694

1693:                                             ; preds = %1689, %1682
  br label %1694

1694:                                             ; preds = %1689, %1693
  %.str.5.sink1442 = phi ptr [ @.str.5, %1693 ], [ @.str.2, %1689 ]
  store i32 %1684, ptr %1683, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call ptr @s2n_strerror(i32 noundef %1698, ptr noundef nonnull @.str.4) #11
  %1700 = load i32, ptr %1697, align 4, !tbaa !5
  %1701 = call ptr @s2n_strerror_debug(i32 noundef %1700, ptr noundef nonnull @.str.4) #11
  %1702 = load i32, ptr %1683, align 4, !tbaa !5
  %1703 = call ptr @strerror(i32 noundef %1702) #11
  %1704 = load i32, ptr %1683, align 4, !tbaa !5
  %1705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1695, ptr noundef nonnull %.str.5.sink1442, i32 noundef %1696, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1699, ptr noundef %1701, ptr noundef %1703, i32 noundef %1704) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1706:                                             ; preds = %1677
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = add nsw i32 %1707, 1
  store i32 %1708, ptr @test_count, align 4, !tbaa !5
  %1709 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #11
  %1710 = icmp eq i32 %1709, -1
  br i1 %1710, label %1711, label %1735

1711:                                             ; preds = %1706
  %1712 = tail call ptr @__errno_location() #12
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1715 = call i32 @s2n_print_stacktrace(ptr noundef %1714) #11
  %1716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1717 = trunc nuw i8 %1716 to i1
  br i1 %1717, label %1718, label %1722

1718:                                             ; preds = %1711
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @fileno(ptr noundef %1719) #11
  %1721 = call i32 @isatty(i32 noundef %1720) #11
  %.not704 = icmp eq i32 %1721, 0
  br i1 %.not704, label %1722, label %1723

1722:                                             ; preds = %1718, %1711
  br label %1723

1723:                                             ; preds = %1718, %1722
  %.str.5.sink1453 = phi ptr [ @.str.5, %1722 ], [ @.str.2, %1718 ]
  store i32 %1713, ptr %1712, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = load i32, ptr @test_count, align 4, !tbaa !5
  %1726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror(i32 noundef %1727, ptr noundef nonnull @.str.4) #11
  %1729 = load i32, ptr %1726, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror_debug(i32 noundef %1729, ptr noundef nonnull @.str.4) #11
  %1731 = load i32, ptr %1712, align 4, !tbaa !5
  %1732 = call ptr @strerror(i32 noundef %1731) #11
  %1733 = load i32, ptr %1712, align 4, !tbaa !5
  %1734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1724, ptr noundef nonnull %.str.5.sink1453, i32 noundef %1725, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1728, ptr noundef %1730, ptr noundef %1732, i32 noundef %1733) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1735:                                             ; preds = %1706
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  br label %1736

1736:                                             ; preds = %1383, %1735
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #11
  %indvars.iv.next809 = add nuw nsw i64 %indvars.iv808, 1
  %1737 = load i16, ptr %551, align 8, !tbaa !24
  %1738 = zext i16 %1737 to i64
  %1739 = icmp ult i64 %indvars.iv.next809, %1738
  br i1 %1739, label %1383, label %._crit_edge784, !llvm.loop !29

1740:                                             ; preds = %._crit_edge784
  %1741 = tail call ptr @__errno_location() #12
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = call i32 @s2n_print_stacktrace(ptr noundef %1743) #11
  %1745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1746 = trunc nuw i8 %1745 to i1
  br i1 %1746, label %1747, label %1751

1747:                                             ; preds = %1740
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = call i32 @fileno(ptr noundef %1748) #11
  %1750 = call i32 @isatty(i32 noundef %1749) #11
  %.not700 = icmp eq i32 %1750, 0
  br i1 %.not700, label %1751, label %1752

1751:                                             ; preds = %1747, %1740
  br label %1752

1752:                                             ; preds = %1747, %1751
  %.str.5.sink1464 = phi ptr [ @.str.5, %1751 ], [ @.str.2, %1747 ]
  store i32 %1742, ptr %1741, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = load i32, ptr @test_count, align 4, !tbaa !5
  %1755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call ptr @s2n_strerror(i32 noundef %1756, ptr noundef nonnull @.str.4) #11
  %1758 = load i32, ptr %1755, align 4, !tbaa !5
  %1759 = call ptr @s2n_strerror_debug(i32 noundef %1758, ptr noundef nonnull @.str.4) #11
  %1760 = load i32, ptr %1741, align 4, !tbaa !5
  %1761 = call ptr @strerror(i32 noundef %1760) #11
  %1762 = load i32, ptr %1741, align 4, !tbaa !5
  %1763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1753, ptr noundef nonnull %.str.5.sink1464, i32 noundef %1754, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %1757, ptr noundef %1759, ptr noundef %1761, i32 noundef %1762) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1764:                                             ; preds = %._crit_edge784
  %1765 = load i32, ptr @test_count, align 4, !tbaa !5
  %1766 = add nsw i32 %1765, 1
  store i32 %1766, ptr @test_count, align 4, !tbaa !5
  %1767 = call ptr @s2n_config_new() #11
  %1768 = icmp eq ptr %1767, null
  br i1 %1768, label %1769, label %1793

1769:                                             ; preds = %1764
  %1770 = tail call ptr @__errno_location() #12
  %1771 = load i32, ptr %1770, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = call i32 @s2n_print_stacktrace(ptr noundef %1772) #11
  %1774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1775 = trunc nuw i8 %1774 to i1
  br i1 %1775, label %1776, label %1780

1776:                                             ; preds = %1769
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @fileno(ptr noundef %1777) #11
  %1779 = call i32 @isatty(i32 noundef %1778) #11
  %.not699 = icmp eq i32 %1779, 0
  br i1 %.not699, label %1780, label %1781

1780:                                             ; preds = %1776, %1769
  br label %1781

1781:                                             ; preds = %1776, %1780
  %.str.5.sink1475 = phi ptr [ @.str.5, %1780 ], [ @.str.2, %1776 ]
  store i32 %1771, ptr %1770, align 4, !tbaa !5
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = load i32, ptr @test_count, align 4, !tbaa !5
  %1784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror(i32 noundef %1785, ptr noundef nonnull @.str.4) #11
  %1787 = load i32, ptr %1784, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror_debug(i32 noundef %1787, ptr noundef nonnull @.str.4) #11
  %1789 = load i32, ptr %1770, align 4, !tbaa !5
  %1790 = call ptr @strerror(i32 noundef %1789) #11
  %1791 = load i32, ptr %1770, align 4, !tbaa !5
  %1792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1782, ptr noundef nonnull %.str.5.sink1475, i32 noundef %1783, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1786, ptr noundef %1788, ptr noundef %1790, i32 noundef %1791) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1793:                                             ; preds = %1764
  %1794 = load i32, ptr @test_count, align 4, !tbaa !5
  %1795 = add nsw i32 %1794, 1
  store i32 %1795, ptr @test_count, align 4, !tbaa !5
  %1796 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1767, ptr noundef nonnull @.str.12) #11
  %1797 = icmp eq i32 %1796, -1
  br i1 %1797, label %1798, label %1822

1798:                                             ; preds = %1793
  %1799 = tail call ptr @__errno_location() #12
  %1800 = load i32, ptr %1799, align 4, !tbaa !5
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = call i32 @s2n_print_stacktrace(ptr noundef %1801) #11
  %1803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1804 = trunc nuw i8 %1803 to i1
  br i1 %1804, label %1805, label %1809

1805:                                             ; preds = %1798
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @fileno(ptr noundef %1806) #11
  %1808 = call i32 @isatty(i32 noundef %1807) #11
  %.not698 = icmp eq i32 %1808, 0
  br i1 %.not698, label %1809, label %1810

1809:                                             ; preds = %1805, %1798
  br label %1810

1810:                                             ; preds = %1805, %1809
  %.str.5.sink1486 = phi ptr [ @.str.5, %1809 ], [ @.str.2, %1805 ]
  store i32 %1800, ptr %1799, align 4, !tbaa !5
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = load i32, ptr @test_count, align 4, !tbaa !5
  %1813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = call ptr @s2n_strerror(i32 noundef %1814, ptr noundef nonnull @.str.4) #11
  %1816 = load i32, ptr %1813, align 4, !tbaa !5
  %1817 = call ptr @s2n_strerror_debug(i32 noundef %1816, ptr noundef nonnull @.str.4) #11
  %1818 = load i32, ptr %1799, align 4, !tbaa !5
  %1819 = call ptr @strerror(i32 noundef %1818) #11
  %1820 = load i32, ptr %1799, align 4, !tbaa !5
  %1821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1811, ptr noundef nonnull %.str.5.sink1486, i32 noundef %1812, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1815, ptr noundef %1817, ptr noundef %1819, i32 noundef %1820) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1822:                                             ; preds = %1793
  %1823 = load i32, ptr @test_count, align 4, !tbaa !5
  %1824 = add nsw i32 %1823, 1
  store i32 %1824, ptr @test_count, align 4, !tbaa !5
  %1825 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %1767) #11
  %1826 = icmp eq i32 %1825, -1
  br i1 %1826, label %1827, label %1851

1827:                                             ; preds = %1822
  %1828 = tail call ptr @__errno_location() #12
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1831 = call i32 @s2n_print_stacktrace(ptr noundef %1830) #11
  %1832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1833 = trunc nuw i8 %1832 to i1
  br i1 %1833, label %1834, label %1838

1834:                                             ; preds = %1827
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = call i32 @fileno(ptr noundef %1835) #11
  %1837 = call i32 @isatty(i32 noundef %1836) #11
  %.not697 = icmp eq i32 %1837, 0
  br i1 %.not697, label %1838, label %1839

1838:                                             ; preds = %1834, %1827
  br label %1839

1839:                                             ; preds = %1834, %1838
  %.str.5.sink1497 = phi ptr [ @.str.5, %1838 ], [ @.str.2, %1834 ]
  store i32 %1829, ptr %1828, align 4, !tbaa !5
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call ptr @s2n_strerror(i32 noundef %1843, ptr noundef nonnull @.str.4) #11
  %1845 = load i32, ptr %1842, align 4, !tbaa !5
  %1846 = call ptr @s2n_strerror_debug(i32 noundef %1845, ptr noundef nonnull @.str.4) #11
  %1847 = load i32, ptr %1828, align 4, !tbaa !5
  %1848 = call ptr @strerror(i32 noundef %1847) #11
  %1849 = load i32, ptr %1828, align 4, !tbaa !5
  %1850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1840, ptr noundef nonnull %.str.5.sink1497, i32 noundef %1841, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1844, ptr noundef %1846, ptr noundef %1848, i32 noundef %1849) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1851:                                             ; preds = %1822
  %1852 = load i32, ptr @test_count, align 4, !tbaa !5
  %1853 = add nsw i32 %1852, 1
  store i32 %1853, ptr @test_count, align 4, !tbaa !5
  %1854 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %1767, i32 noundef 2) #11
  %1855 = icmp eq i32 %1854, -1
  br i1 %1855, label %1856, label %1880

1856:                                             ; preds = %1851
  %1857 = tail call ptr @__errno_location() #12
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = call i32 @s2n_print_stacktrace(ptr noundef %1859) #11
  %1861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1862 = trunc nuw i8 %1861 to i1
  br i1 %1862, label %1863, label %1867

1863:                                             ; preds = %1856
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @fileno(ptr noundef %1864) #11
  %1866 = call i32 @isatty(i32 noundef %1865) #11
  %.not696 = icmp eq i32 %1866, 0
  br i1 %.not696, label %1867, label %1868

1867:                                             ; preds = %1863, %1856
  br label %1868

1868:                                             ; preds = %1863, %1867
  %.str.5.sink1508 = phi ptr [ @.str.5, %1867 ], [ @.str.2, %1863 ]
  store i32 %1858, ptr %1857, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @s2n_strerror(i32 noundef %1872, ptr noundef nonnull @.str.4) #11
  %1874 = load i32, ptr %1871, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror_debug(i32 noundef %1874, ptr noundef nonnull @.str.4) #11
  %1876 = load i32, ptr %1857, align 4, !tbaa !5
  %1877 = call ptr @strerror(i32 noundef %1876) #11
  %1878 = load i32, ptr %1857, align 4, !tbaa !5
  %1879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1869, ptr noundef nonnull %.str.5.sink1508, i32 noundef %1870, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1873, ptr noundef %1875, ptr noundef %1877, i32 noundef %1878) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1880:                                             ; preds = %1851
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = add nsw i32 %1881, 1
  store i32 %1882, ptr @test_count, align 4, !tbaa !5
  %1883 = call i32 @s2n_config_set_client_auth_type(ptr noundef %201, i32 noundef 2) #11
  %1884 = icmp eq i32 %1883, -1
  br i1 %1884, label %1885, label %1909

1885:                                             ; preds = %1880
  %1886 = tail call ptr @__errno_location() #12
  %1887 = load i32, ptr %1886, align 4, !tbaa !5
  %1888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1889 = call i32 @s2n_print_stacktrace(ptr noundef %1888) #11
  %1890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1891 = trunc nuw i8 %1890 to i1
  br i1 %1891, label %1892, label %1896

1892:                                             ; preds = %1885
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = call i32 @fileno(ptr noundef %1893) #11
  %1895 = call i32 @isatty(i32 noundef %1894) #11
  %.not695 = icmp eq i32 %1895, 0
  br i1 %.not695, label %1896, label %1897

1896:                                             ; preds = %1892, %1885
  br label %1897

1897:                                             ; preds = %1892, %1896
  %.str.5.sink1519 = phi ptr [ @.str.5, %1896 ], [ @.str.2, %1892 ]
  store i32 %1887, ptr %1886, align 4, !tbaa !5
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = load i32, ptr @test_count, align 4, !tbaa !5
  %1900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call ptr @s2n_strerror(i32 noundef %1901, ptr noundef nonnull @.str.4) #11
  %1903 = load i32, ptr %1900, align 4, !tbaa !5
  %1904 = call ptr @s2n_strerror_debug(i32 noundef %1903, ptr noundef nonnull @.str.4) #11
  %1905 = load i32, ptr %1886, align 4, !tbaa !5
  %1906 = call ptr @strerror(i32 noundef %1905) #11
  %1907 = load i32, ptr %1886, align 4, !tbaa !5
  %1908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1898, ptr noundef nonnull %.str.5.sink1519, i32 noundef %1899, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1902, ptr noundef %1904, ptr noundef %1906, i32 noundef %1907) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1909:                                             ; preds = %1880
  %1910 = load i32, ptr @test_count, align 4, !tbaa !5
  %1911 = add nsw i32 %1910, 1
  store i32 %1911, ptr @test_count, align 4, !tbaa !5
  %1912 = call i32 @s2n_config_disable_x509_verification(ptr noundef %201) #11
  %1913 = icmp eq i32 %1912, -1
  br i1 %1913, label %1919, label %.preheader767

.preheader767:                                    ; preds = %1909
  %1914 = load i16, ptr %551, align 8, !tbaa !24
  %.not799 = icmp eq i16 %1914, 0
  br i1 %.not799, label %._crit_edge787, label %.lr.ph786

.lr.ph786:                                        ; preds = %.preheader767
  %1915 = getelementptr inbounds i8, ptr %551, i64 8
  %1916 = getelementptr inbounds i8, ptr %12, i64 8
  %1917 = getelementptr inbounds i8, ptr %13, i64 8
  %1918 = getelementptr inbounds i8, ptr %1767, i64 96
  br label %1947

1919:                                             ; preds = %1909
  %1920 = tail call ptr @__errno_location() #12
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = call i32 @s2n_print_stacktrace(ptr noundef %1922) #11
  %1924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1925 = trunc nuw i8 %1924 to i1
  br i1 %1925, label %1926, label %1930

1926:                                             ; preds = %1919
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = call i32 @fileno(ptr noundef %1927) #11
  %1929 = call i32 @isatty(i32 noundef %1928) #11
  %.not694 = icmp eq i32 %1929, 0
  br i1 %.not694, label %1930, label %1931

1930:                                             ; preds = %1926, %1919
  br label %1931

1931:                                             ; preds = %1926, %1930
  %.str.5.sink1530 = phi ptr [ @.str.5, %1930 ], [ @.str.2, %1926 ]
  store i32 %1921, ptr %1920, align 4, !tbaa !5
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1935 = load i32, ptr %1934, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror(i32 noundef %1935, ptr noundef nonnull @.str.4) #11
  %1937 = load i32, ptr %1934, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror_debug(i32 noundef %1937, ptr noundef nonnull @.str.4) #11
  %1939 = load i32, ptr %1920, align 4, !tbaa !5
  %1940 = call ptr @strerror(i32 noundef %1939) #11
  %1941 = load i32, ptr %1920, align 4, !tbaa !5
  %1942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1932, ptr noundef nonnull %.str.5.sink1530, i32 noundef %1933, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1936, ptr noundef %1938, ptr noundef %1940, i32 noundef %1941) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge787:                                   ; preds = %2300, %.preheader767
  %1943 = load i32, ptr @test_count, align 4, !tbaa !5
  %1944 = add nsw i32 %1943, 1
  store i32 %1944, ptr @test_count, align 4, !tbaa !5
  %1945 = call i32 @s2n_config_free(ptr noundef nonnull %1767) #11
  %1946 = icmp eq i32 %1945, -1
  br i1 %1946, label %2304, label %2328

1947:                                             ; preds = %.lr.ph786, %2300
  %indvars.iv811 = phi i64 [ 0, %.lr.ph786 ], [ %indvars.iv.next812, %2300 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #11
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %551, i64 24, i1 false)
  store i16 1, ptr %12, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %1948 = load ptr, ptr %1915, align 8, !tbaa !26
  %1949 = getelementptr inbounds ptr, ptr %1948, i64 %indvars.iv811
  %1950 = load ptr, ptr %1949, align 8, !tbaa !9
  store ptr %1950, ptr %14, align 8, !tbaa !9
  %1951 = load i8, ptr %1950, align 8
  %1952 = and i8 %1951, 1
  %.not679 = icmp eq i8 %1952, 0
  br i1 %.not679, label %2300, label %1953

1953:                                             ; preds = %1947
  store ptr %14, ptr %1916, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %13, ptr noundef nonnull align 8 dereferenceable(64) %522, i64 64, i1 false)
  store ptr %12, ptr %1917, align 8, !tbaa !22
  store ptr %13, ptr %1918, align 8, !tbaa !15
  store ptr %13, ptr %521, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  %1954 = load i32, ptr @test_count, align 4, !tbaa !5
  %1955 = add nsw i32 %1954, 1
  store i32 %1955, ptr @test_count, align 4, !tbaa !5
  %1956 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %15) #11
  %1957 = icmp eq i32 %1956, -1
  br i1 %1957, label %1958, label %1982

1958:                                             ; preds = %1953
  %1959 = tail call ptr @__errno_location() #12
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = call i32 @s2n_print_stacktrace(ptr noundef %1961) #11
  %1963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1964 = trunc nuw i8 %1963 to i1
  br i1 %1964, label %1965, label %1969

1965:                                             ; preds = %1958
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = call i32 @fileno(ptr noundef %1966) #11
  %1968 = call i32 @isatty(i32 noundef %1967) #11
  %.not693 = icmp eq i32 %1968, 0
  br i1 %.not693, label %1969, label %1970

1969:                                             ; preds = %1965, %1958
  br label %1970

1970:                                             ; preds = %1965, %1969
  %.str.5.sink1541 = phi ptr [ @.str.5, %1969 ], [ @.str.2, %1965 ]
  store i32 %1960, ptr %1959, align 4, !tbaa !5
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = load i32, ptr @test_count, align 4, !tbaa !5
  %1973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror(i32 noundef %1974, ptr noundef nonnull @.str.4) #11
  %1976 = load i32, ptr %1973, align 4, !tbaa !5
  %1977 = call ptr @s2n_strerror_debug(i32 noundef %1976, ptr noundef nonnull @.str.4) #11
  %1978 = load i32, ptr %1959, align 4, !tbaa !5
  %1979 = call ptr @strerror(i32 noundef %1978) #11
  %1980 = load i32, ptr %1959, align 4, !tbaa !5
  %1981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1971, ptr noundef nonnull %.str.5.sink1541, i32 noundef %1972, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1975, ptr noundef %1977, ptr noundef %1979, i32 noundef %1980) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1982:                                             ; preds = %1953
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %1986 = icmp eq ptr %1985, null
  br i1 %1986, label %1987, label %2011

1987:                                             ; preds = %1982
  %1988 = tail call ptr @__errno_location() #12
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = call i32 @s2n_print_stacktrace(ptr noundef %1990) #11
  %1992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1993 = trunc nuw i8 %1992 to i1
  br i1 %1993, label %1994, label %1998

1994:                                             ; preds = %1987
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = call i32 @fileno(ptr noundef %1995) #11
  %1997 = call i32 @isatty(i32 noundef %1996) #11
  %.not692 = icmp eq i32 %1997, 0
  br i1 %.not692, label %1998, label %1999

1998:                                             ; preds = %1994, %1987
  br label %1999

1999:                                             ; preds = %1994, %1998
  %.str.5.sink1552 = phi ptr [ @.str.5, %1998 ], [ @.str.2, %1994 ]
  store i32 %1989, ptr %1988, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror(i32 noundef %2003, ptr noundef nonnull @.str.4) #11
  %2005 = load i32, ptr %2002, align 4, !tbaa !5
  %2006 = call ptr @s2n_strerror_debug(i32 noundef %2005, ptr noundef nonnull @.str.4) #11
  %2007 = load i32, ptr %1988, align 4, !tbaa !5
  %2008 = call ptr @strerror(i32 noundef %2007) #11
  %2009 = load i32, ptr %1988, align 4, !tbaa !5
  %2010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2000, ptr noundef nonnull %.str.5.sink1552, i32 noundef %2001, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %2004, ptr noundef %2006, ptr noundef %2008, i32 noundef %2009) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2011:                                             ; preds = %1982
  %2012 = load i32, ptr @test_count, align 4, !tbaa !5
  %2013 = add nsw i32 %2012, 1
  store i32 %2013, ptr @test_count, align 4, !tbaa !5
  %2014 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1985, ptr noundef nonnull %1767) #11
  %2015 = icmp eq i32 %2014, -1
  br i1 %2015, label %2016, label %2040

2016:                                             ; preds = %2011
  %2017 = tail call ptr @__errno_location() #12
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = call i32 @s2n_print_stacktrace(ptr noundef %2019) #11
  %2021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2022 = trunc nuw i8 %2021 to i1
  br i1 %2022, label %2023, label %2027

2023:                                             ; preds = %2016
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = call i32 @fileno(ptr noundef %2024) #11
  %2026 = call i32 @isatty(i32 noundef %2025) #11
  %.not691 = icmp eq i32 %2026, 0
  br i1 %.not691, label %2027, label %2028

2027:                                             ; preds = %2023, %2016
  br label %2028

2028:                                             ; preds = %2023, %2027
  %.str.5.sink1563 = phi ptr [ @.str.5, %2027 ], [ @.str.2, %2023 ]
  store i32 %2018, ptr %2017, align 4, !tbaa !5
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = load i32, ptr @test_count, align 4, !tbaa !5
  %2031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror(i32 noundef %2032, ptr noundef nonnull @.str.4) #11
  %2034 = load i32, ptr %2031, align 4, !tbaa !5
  %2035 = call ptr @s2n_strerror_debug(i32 noundef %2034, ptr noundef nonnull @.str.4) #11
  %2036 = load i32, ptr %2017, align 4, !tbaa !5
  %2037 = call ptr @strerror(i32 noundef %2036) #11
  %2038 = load i32, ptr %2017, align 4, !tbaa !5
  %2039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2029, ptr noundef nonnull %.str.5.sink1563, i32 noundef %2030, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %2033, ptr noundef %2035, ptr noundef %2037, i32 noundef %2038) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2040:                                             ; preds = %2011
  %2041 = load i32, ptr @test_count, align 4, !tbaa !5
  %2042 = add nsw i32 %2041, 1
  store i32 %2042, ptr @test_count, align 4, !tbaa !5
  %2043 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %2044 = icmp eq ptr %2043, null
  br i1 %2044, label %2045, label %2069

2045:                                             ; preds = %2040
  %2046 = tail call ptr @__errno_location() #12
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = call i32 @s2n_print_stacktrace(ptr noundef %2048) #11
  %2050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2051 = trunc nuw i8 %2050 to i1
  br i1 %2051, label %2052, label %2056

2052:                                             ; preds = %2045
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = call i32 @fileno(ptr noundef %2053) #11
  %2055 = call i32 @isatty(i32 noundef %2054) #11
  %.not690 = icmp eq i32 %2055, 0
  br i1 %.not690, label %2056, label %2057

2056:                                             ; preds = %2052, %2045
  br label %2057

2057:                                             ; preds = %2052, %2056
  %.str.5.sink1574 = phi ptr [ @.str.5, %2056 ], [ @.str.2, %2052 ]
  store i32 %2047, ptr %2046, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = load i32, ptr @test_count, align 4, !tbaa !5
  %2060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @s2n_strerror(i32 noundef %2061, ptr noundef nonnull @.str.4) #11
  %2063 = load i32, ptr %2060, align 4, !tbaa !5
  %2064 = call ptr @s2n_strerror_debug(i32 noundef %2063, ptr noundef nonnull @.str.4) #11
  %2065 = load i32, ptr %2046, align 4, !tbaa !5
  %2066 = call ptr @strerror(i32 noundef %2065) #11
  %2067 = load i32, ptr %2046, align 4, !tbaa !5
  %2068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2058, ptr noundef nonnull %.str.5.sink1574, i32 noundef %2059, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 238, ptr noundef %2062, ptr noundef %2064, ptr noundef %2066, i32 noundef %2067) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2069:                                             ; preds = %2040
  %2070 = load i32, ptr @test_count, align 4, !tbaa !5
  %2071 = add nsw i32 %2070, 1
  store i32 %2071, ptr @test_count, align 4, !tbaa !5
  %2072 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2043, ptr noundef nonnull %201) #11
  %2073 = icmp eq i32 %2072, -1
  br i1 %2073, label %2074, label %2098

2074:                                             ; preds = %2069
  %2075 = tail call ptr @__errno_location() #12
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @s2n_print_stacktrace(ptr noundef %2077) #11
  %2079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2080 = trunc nuw i8 %2079 to i1
  br i1 %2080, label %2081, label %2085

2081:                                             ; preds = %2074
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = call i32 @fileno(ptr noundef %2082) #11
  %2084 = call i32 @isatty(i32 noundef %2083) #11
  %.not689 = icmp eq i32 %2084, 0
  br i1 %.not689, label %2085, label %2086

2085:                                             ; preds = %2081, %2074
  br label %2086

2086:                                             ; preds = %2081, %2085
  %.str.5.sink1585 = phi ptr [ @.str.5, %2085 ], [ @.str.2, %2081 ]
  store i32 %2076, ptr %2075, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = load i32, ptr @test_count, align 4, !tbaa !5
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror(i32 noundef %2090, ptr noundef nonnull @.str.4) #11
  %2092 = load i32, ptr %2089, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror_debug(i32 noundef %2092, ptr noundef nonnull @.str.4) #11
  %2094 = load i32, ptr %2075, align 4, !tbaa !5
  %2095 = call ptr @strerror(i32 noundef %2094) #11
  %2096 = load i32, ptr %2075, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2087, ptr noundef nonnull %.str.5.sink1585, i32 noundef %2088, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %2091, ptr noundef %2093, ptr noundef %2095, i32 noundef %2096) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2098:                                             ; preds = %2069
  %2099 = load i32, ptr @test_count, align 4, !tbaa !5
  %2100 = add nsw i32 %2099, 1
  store i32 %2100, ptr @test_count, align 4, !tbaa !5
  %2101 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %1985, ptr noundef nonnull %2043, ptr noundef nonnull %15) #11
  %2102 = icmp eq i32 %2101, -1
  br i1 %2102, label %2103, label %2127

2103:                                             ; preds = %2098
  %2104 = tail call ptr @__errno_location() #12
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = call i32 @s2n_print_stacktrace(ptr noundef %2106) #11
  %2108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2109 = trunc nuw i8 %2108 to i1
  br i1 %2109, label %2110, label %2114

2110:                                             ; preds = %2103
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = call i32 @fileno(ptr noundef %2111) #11
  %2113 = call i32 @isatty(i32 noundef %2112) #11
  %.not688 = icmp eq i32 %2113, 0
  br i1 %.not688, label %2114, label %2115

2114:                                             ; preds = %2110, %2103
  br label %2115

2115:                                             ; preds = %2110, %2114
  %.str.5.sink1596 = phi ptr [ @.str.5, %2114 ], [ @.str.2, %2110 ]
  store i32 %2105, ptr %2104, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = load i32, ptr @test_count, align 4, !tbaa !5
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror(i32 noundef %2119, ptr noundef nonnull @.str.4) #11
  %2121 = load i32, ptr %2118, align 4, !tbaa !5
  %2122 = call ptr @s2n_strerror_debug(i32 noundef %2121, ptr noundef nonnull @.str.4) #11
  %2123 = load i32, ptr %2104, align 4, !tbaa !5
  %2124 = call ptr @strerror(i32 noundef %2123) #11
  %2125 = load i32, ptr %2104, align 4, !tbaa !5
  %2126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2116, ptr noundef nonnull %.str.5.sink1596, i32 noundef %2117, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %2120, ptr noundef %2122, ptr noundef %2124, i32 noundef %2125) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2127:                                             ; preds = %2098
  %2128 = load i32, ptr @test_count, align 4, !tbaa !5
  %2129 = add nsw i32 %2128, 1
  store i32 %2129, ptr @test_count, align 4, !tbaa !5
  %2130 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %2043, ptr noundef nonnull %1985) #11
  %2131 = icmp eq i32 %2130, -1
  br i1 %2131, label %2132, label %2156

2132:                                             ; preds = %2127
  %2133 = tail call ptr @__errno_location() #12
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = call i32 @s2n_print_stacktrace(ptr noundef %2135) #11
  %2137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2138 = trunc nuw i8 %2137 to i1
  br i1 %2138, label %2139, label %2143

2139:                                             ; preds = %2132
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = call i32 @fileno(ptr noundef %2140) #11
  %2142 = call i32 @isatty(i32 noundef %2141) #11
  %.not687 = icmp eq i32 %2142, 0
  br i1 %.not687, label %2143, label %2144

2143:                                             ; preds = %2139, %2132
  br label %2144

2144:                                             ; preds = %2139, %2143
  %.str.5.sink1607 = phi ptr [ @.str.5, %2143 ], [ @.str.2, %2139 ]
  store i32 %2134, ptr %2133, align 4, !tbaa !5
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @s2n_strerror(i32 noundef %2148, ptr noundef nonnull @.str.4) #11
  %2150 = load i32, ptr %2147, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror_debug(i32 noundef %2150, ptr noundef nonnull @.str.4) #11
  %2152 = load i32, ptr %2133, align 4, !tbaa !5
  %2153 = call ptr @strerror(i32 noundef %2152) #11
  %2154 = load i32, ptr %2133, align 4, !tbaa !5
  %2155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2145, ptr noundef nonnull %.str.5.sink1607, i32 noundef %2146, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2149, ptr noundef %2151, ptr noundef %2153, i32 noundef %2154) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2156:                                             ; preds = %2127
  %2157 = load i32, ptr @test_count, align 4, !tbaa !5
  %2158 = add nsw i32 %2157, 1
  store i32 %2158, ptr @test_count, align 4, !tbaa !5
  %2159 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %2043) #11
  %.not680 = icmp eq i32 %2159, 0
  br i1 %.not680, label %2184, label %2160

2160:                                             ; preds = %2156
  %2161 = tail call ptr @__errno_location() #12
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = call i32 @s2n_print_stacktrace(ptr noundef %2163) #11
  %2165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2166 = trunc nuw i8 %2165 to i1
  br i1 %2166, label %2167, label %2171

2167:                                             ; preds = %2160
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = call i32 @fileno(ptr noundef %2168) #11
  %2170 = call i32 @isatty(i32 noundef %2169) #11
  %.not686 = icmp eq i32 %2170, 0
  br i1 %.not686, label %2171, label %2172

2171:                                             ; preds = %2167, %2160
  br label %2172

2172:                                             ; preds = %2167, %2171
  %.str.5.sink1618 = phi ptr [ @.str.5, %2171 ], [ @.str.2, %2167 ]
  store i32 %2162, ptr %2161, align 4, !tbaa !5
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = load i32, ptr @test_count, align 4, !tbaa !5
  %2175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror(i32 noundef %2176, ptr noundef nonnull @.str.4) #11
  %2178 = load i32, ptr %2175, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror_debug(i32 noundef %2178, ptr noundef nonnull @.str.4) #11
  %2180 = load i32, ptr %2161, align 4, !tbaa !5
  %2181 = call ptr @strerror(i32 noundef %2180) #11
  %2182 = load i32, ptr %2161, align 4, !tbaa !5
  %2183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2173, ptr noundef nonnull %.str.5.sink1618, i32 noundef %2174, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %2177, ptr noundef %2179, ptr noundef %2181, i32 noundef %2182) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2184:                                             ; preds = %2156
  %2185 = load i32, ptr @test_count, align 4, !tbaa !5
  %2186 = add nsw i32 %2185, 1
  store i32 %2186, ptr @test_count, align 4, !tbaa !5
  %2187 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %1985) #11
  %.not681 = icmp eq i32 %2187, 0
  br i1 %.not681, label %2212, label %2188

2188:                                             ; preds = %2184
  %2189 = tail call ptr @__errno_location() #12
  %2190 = load i32, ptr %2189, align 4, !tbaa !5
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = call i32 @s2n_print_stacktrace(ptr noundef %2191) #11
  %2193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2194 = trunc nuw i8 %2193 to i1
  br i1 %2194, label %2195, label %2199

2195:                                             ; preds = %2188
  %2196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2197 = call i32 @fileno(ptr noundef %2196) #11
  %2198 = call i32 @isatty(i32 noundef %2197) #11
  %.not685 = icmp eq i32 %2198, 0
  br i1 %.not685, label %2199, label %2200

2199:                                             ; preds = %2195, %2188
  br label %2200

2200:                                             ; preds = %2195, %2199
  %.str.5.sink1629 = phi ptr [ @.str.5, %2199 ], [ @.str.2, %2195 ]
  store i32 %2190, ptr %2189, align 4, !tbaa !5
  %2201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2202 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2204, ptr noundef nonnull @.str.4) #11
  %2206 = load i32, ptr %2203, align 4, !tbaa !5
  %2207 = call ptr @s2n_strerror_debug(i32 noundef %2206, ptr noundef nonnull @.str.4) #11
  %2208 = load i32, ptr %2189, align 4, !tbaa !5
  %2209 = call ptr @strerror(i32 noundef %2208) #11
  %2210 = load i32, ptr %2189, align 4, !tbaa !5
  %2211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2201, ptr noundef nonnull %.str.5.sink1629, i32 noundef %2202, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %2205, ptr noundef %2207, ptr noundef %2209, i32 noundef %2210) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2212:                                             ; preds = %2184
  %2213 = load i32, ptr @test_count, align 4, !tbaa !5
  %2214 = add nsw i32 %2213, 1
  store i32 %2214, ptr @test_count, align 4, !tbaa !5
  %2215 = call i32 @s2n_connection_free(ptr noundef nonnull %1985) #11
  %2216 = icmp eq i32 %2215, -1
  br i1 %2216, label %2217, label %2241

2217:                                             ; preds = %2212
  %2218 = tail call ptr @__errno_location() #12
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = call i32 @s2n_print_stacktrace(ptr noundef %2220) #11
  %2222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2223 = trunc nuw i8 %2222 to i1
  br i1 %2223, label %2224, label %2228

2224:                                             ; preds = %2217
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = call i32 @fileno(ptr noundef %2225) #11
  %2227 = call i32 @isatty(i32 noundef %2226) #11
  %.not684 = icmp eq i32 %2227, 0
  br i1 %.not684, label %2228, label %2229

2228:                                             ; preds = %2224, %2217
  br label %2229

2229:                                             ; preds = %2224, %2228
  %.str.5.sink1640 = phi ptr [ @.str.5, %2228 ], [ @.str.2, %2224 ]
  store i32 %2219, ptr %2218, align 4, !tbaa !5
  %2230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2231 = load i32, ptr @test_count, align 4, !tbaa !5
  %2232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call ptr @s2n_strerror(i32 noundef %2233, ptr noundef nonnull @.str.4) #11
  %2235 = load i32, ptr %2232, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror_debug(i32 noundef %2235, ptr noundef nonnull @.str.4) #11
  %2237 = load i32, ptr %2218, align 4, !tbaa !5
  %2238 = call ptr @strerror(i32 noundef %2237) #11
  %2239 = load i32, ptr %2218, align 4, !tbaa !5
  %2240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2230, ptr noundef nonnull %.str.5.sink1640, i32 noundef %2231, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %2234, ptr noundef %2236, ptr noundef %2238, i32 noundef %2239) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2241:                                             ; preds = %2212
  %2242 = load i32, ptr @test_count, align 4, !tbaa !5
  %2243 = add nsw i32 %2242, 1
  store i32 %2243, ptr @test_count, align 4, !tbaa !5
  %2244 = call i32 @s2n_connection_free(ptr noundef nonnull %2043) #11
  %2245 = icmp eq i32 %2244, -1
  br i1 %2245, label %2246, label %2270

2246:                                             ; preds = %2241
  %2247 = tail call ptr @__errno_location() #12
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = call i32 @s2n_print_stacktrace(ptr noundef %2249) #11
  %2251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2252 = trunc nuw i8 %2251 to i1
  br i1 %2252, label %2253, label %2257

2253:                                             ; preds = %2246
  %2254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2255 = call i32 @fileno(ptr noundef %2254) #11
  %2256 = call i32 @isatty(i32 noundef %2255) #11
  %.not683 = icmp eq i32 %2256, 0
  br i1 %.not683, label %2257, label %2258

2257:                                             ; preds = %2253, %2246
  br label %2258

2258:                                             ; preds = %2253, %2257
  %.str.5.sink1651 = phi ptr [ @.str.5, %2257 ], [ @.str.2, %2253 ]
  store i32 %2248, ptr %2247, align 4, !tbaa !5
  %2259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2260 = load i32, ptr @test_count, align 4, !tbaa !5
  %2261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2262 = load i32, ptr %2261, align 4, !tbaa !5
  %2263 = call ptr @s2n_strerror(i32 noundef %2262, ptr noundef nonnull @.str.4) #11
  %2264 = load i32, ptr %2261, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror_debug(i32 noundef %2264, ptr noundef nonnull @.str.4) #11
  %2266 = load i32, ptr %2247, align 4, !tbaa !5
  %2267 = call ptr @strerror(i32 noundef %2266) #11
  %2268 = load i32, ptr %2247, align 4, !tbaa !5
  %2269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2259, ptr noundef nonnull %.str.5.sink1651, i32 noundef %2260, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %2263, ptr noundef %2265, ptr noundef %2267, i32 noundef %2268) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2270:                                             ; preds = %2241
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = add nsw i32 %2271, 1
  store i32 %2272, ptr @test_count, align 4, !tbaa !5
  %2273 = call i32 @s2n_io_pair_close(ptr noundef nonnull %15) #11
  %2274 = icmp eq i32 %2273, -1
  br i1 %2274, label %2275, label %2299

2275:                                             ; preds = %2270
  %2276 = tail call ptr @__errno_location() #12
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = call i32 @s2n_print_stacktrace(ptr noundef %2278) #11
  %2280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2281 = trunc nuw i8 %2280 to i1
  br i1 %2281, label %2282, label %2286

2282:                                             ; preds = %2275
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = call i32 @fileno(ptr noundef %2283) #11
  %2285 = call i32 @isatty(i32 noundef %2284) #11
  %.not682 = icmp eq i32 %2285, 0
  br i1 %.not682, label %2286, label %2287

2286:                                             ; preds = %2282, %2275
  br label %2287

2287:                                             ; preds = %2282, %2286
  %.str.5.sink1662 = phi ptr [ @.str.5, %2286 ], [ @.str.2, %2282 ]
  store i32 %2277, ptr %2276, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror(i32 noundef %2291, ptr noundef nonnull @.str.4) #11
  %2293 = load i32, ptr %2290, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror_debug(i32 noundef %2293, ptr noundef nonnull @.str.4) #11
  %2295 = load i32, ptr %2276, align 4, !tbaa !5
  %2296 = call ptr @strerror(i32 noundef %2295) #11
  %2297 = load i32, ptr %2276, align 4, !tbaa !5
  %2298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2288, ptr noundef nonnull %.str.5.sink1662, i32 noundef %2289, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %2292, ptr noundef %2294, ptr noundef %2296, i32 noundef %2297) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2299:                                             ; preds = %2270
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  br label %2300

2300:                                             ; preds = %1947, %2299
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #11
  %indvars.iv.next812 = add nuw nsw i64 %indvars.iv811, 1
  %2301 = load i16, ptr %551, align 8, !tbaa !24
  %2302 = zext i16 %2301 to i64
  %2303 = icmp ult i64 %indvars.iv.next812, %2302
  br i1 %2303, label %1947, label %._crit_edge787, !llvm.loop !30

2304:                                             ; preds = %._crit_edge787
  %2305 = tail call ptr @__errno_location() #12
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = call i32 @s2n_print_stacktrace(ptr noundef %2307) #11
  %2309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2310 = trunc nuw i8 %2309 to i1
  br i1 %2310, label %2311, label %2315

2311:                                             ; preds = %2304
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @fileno(ptr noundef %2312) #11
  %2314 = call i32 @isatty(i32 noundef %2313) #11
  %.not678 = icmp eq i32 %2314, 0
  br i1 %.not678, label %2315, label %2316

2315:                                             ; preds = %2311, %2304
  br label %2316

2316:                                             ; preds = %2311, %2315
  %.str.5.sink1673 = phi ptr [ @.str.5, %2315 ], [ @.str.2, %2311 ]
  store i32 %2306, ptr %2305, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror(i32 noundef %2320, ptr noundef nonnull @.str.4) #11
  %2322 = load i32, ptr %2319, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror_debug(i32 noundef %2322, ptr noundef nonnull @.str.4) #11
  %2324 = load i32, ptr %2305, align 4, !tbaa !5
  %2325 = call ptr @strerror(i32 noundef %2324) #11
  %2326 = load i32, ptr %2305, align 4, !tbaa !5
  %2327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2317, ptr noundef nonnull %.str.5.sink1673, i32 noundef %2318, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %2321, ptr noundef %2323, ptr noundef %2325, i32 noundef %2326) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2328:                                             ; preds = %._crit_edge787
  %2329 = load i32, ptr @test_count, align 4, !tbaa !5
  %2330 = add nsw i32 %2329, 1
  store i32 %2330, ptr @test_count, align 4, !tbaa !5
  %2331 = call ptr @s2n_config_new() #11
  %2332 = icmp eq ptr %2331, null
  br i1 %2332, label %2333, label %2357

2333:                                             ; preds = %2328
  %2334 = tail call ptr @__errno_location() #12
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = call i32 @s2n_print_stacktrace(ptr noundef %2336) #11
  %2338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2339 = trunc nuw i8 %2338 to i1
  br i1 %2339, label %2340, label %2344

2340:                                             ; preds = %2333
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = call i32 @fileno(ptr noundef %2341) #11
  %2343 = call i32 @isatty(i32 noundef %2342) #11
  %.not677 = icmp eq i32 %2343, 0
  br i1 %.not677, label %2344, label %2345

2344:                                             ; preds = %2340, %2333
  br label %2345

2345:                                             ; preds = %2340, %2344
  %.str.5.sink1684 = phi ptr [ @.str.5, %2344 ], [ @.str.2, %2340 ]
  store i32 %2335, ptr %2334, align 4, !tbaa !5
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef nonnull @.str.4) #11
  %2351 = load i32, ptr %2348, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror_debug(i32 noundef %2351, ptr noundef nonnull @.str.4) #11
  %2353 = load i32, ptr %2334, align 4, !tbaa !5
  %2354 = call ptr @strerror(i32 noundef %2353) #11
  %2355 = load i32, ptr %2334, align 4, !tbaa !5
  %2356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef nonnull %.str.5.sink1684, i32 noundef %2347, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %2350, ptr noundef %2352, ptr noundef %2354, i32 noundef %2355) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2357:                                             ; preds = %2328
  %2358 = load i32, ptr @test_count, align 4, !tbaa !5
  %2359 = add nsw i32 %2358, 1
  store i32 %2359, ptr @test_count, align 4, !tbaa !5
  %2360 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2331, ptr noundef nonnull @.str.12) #11
  %2361 = icmp eq i32 %2360, -1
  br i1 %2361, label %2362, label %2386

2362:                                             ; preds = %2357
  %2363 = tail call ptr @__errno_location() #12
  %2364 = load i32, ptr %2363, align 4, !tbaa !5
  %2365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2366 = call i32 @s2n_print_stacktrace(ptr noundef %2365) #11
  %2367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2368 = trunc nuw i8 %2367 to i1
  br i1 %2368, label %2369, label %2373

2369:                                             ; preds = %2362
  %2370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2371 = call i32 @fileno(ptr noundef %2370) #11
  %2372 = call i32 @isatty(i32 noundef %2371) #11
  %.not676 = icmp eq i32 %2372, 0
  br i1 %.not676, label %2373, label %2374

2373:                                             ; preds = %2369, %2362
  br label %2374

2374:                                             ; preds = %2369, %2373
  %.str.5.sink1695 = phi ptr [ @.str.5, %2373 ], [ @.str.2, %2369 ]
  store i32 %2364, ptr %2363, align 4, !tbaa !5
  %2375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2376 = load i32, ptr @test_count, align 4, !tbaa !5
  %2377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2378 = load i32, ptr %2377, align 4, !tbaa !5
  %2379 = call ptr @s2n_strerror(i32 noundef %2378, ptr noundef nonnull @.str.4) #11
  %2380 = load i32, ptr %2377, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef %2380, ptr noundef nonnull @.str.4) #11
  %2382 = load i32, ptr %2363, align 4, !tbaa !5
  %2383 = call ptr @strerror(i32 noundef %2382) #11
  %2384 = load i32, ptr %2363, align 4, !tbaa !5
  %2385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2375, ptr noundef nonnull %.str.5.sink1695, i32 noundef %2376, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %2379, ptr noundef %2381, ptr noundef %2383, i32 noundef %2384) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2386:                                             ; preds = %2357
  %2387 = load i32, ptr @test_count, align 4, !tbaa !5
  %2388 = add nsw i32 %2387, 1
  store i32 %2388, ptr @test_count, align 4, !tbaa !5
  %2389 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2331, ptr noundef nonnull %346) #11
  %2390 = icmp eq i32 %2389, -1
  br i1 %2390, label %2391, label %2415

2391:                                             ; preds = %2386
  %2392 = tail call ptr @__errno_location() #12
  %2393 = load i32, ptr %2392, align 4, !tbaa !5
  %2394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2395 = call i32 @s2n_print_stacktrace(ptr noundef %2394) #11
  %2396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2397 = trunc nuw i8 %2396 to i1
  br i1 %2397, label %2398, label %2402

2398:                                             ; preds = %2391
  %2399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2400 = call i32 @fileno(ptr noundef %2399) #11
  %2401 = call i32 @isatty(i32 noundef %2400) #11
  %.not675 = icmp eq i32 %2401, 0
  br i1 %.not675, label %2402, label %2403

2402:                                             ; preds = %2398, %2391
  br label %2403

2403:                                             ; preds = %2398, %2402
  %.str.5.sink1706 = phi ptr [ @.str.5, %2402 ], [ @.str.2, %2398 ]
  store i32 %2393, ptr %2392, align 4, !tbaa !5
  %2404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2405 = load i32, ptr @test_count, align 4, !tbaa !5
  %2406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror(i32 noundef %2407, ptr noundef nonnull @.str.4) #11
  %2409 = load i32, ptr %2406, align 4, !tbaa !5
  %2410 = call ptr @s2n_strerror_debug(i32 noundef %2409, ptr noundef nonnull @.str.4) #11
  %2411 = load i32, ptr %2392, align 4, !tbaa !5
  %2412 = call ptr @strerror(i32 noundef %2411) #11
  %2413 = load i32, ptr %2392, align 4, !tbaa !5
  %2414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2404, ptr noundef nonnull %.str.5.sink1706, i32 noundef %2405, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 263, ptr noundef %2408, ptr noundef %2410, ptr noundef %2412, i32 noundef %2413) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2415:                                             ; preds = %2386
  %2416 = load i32, ptr @test_count, align 4, !tbaa !5
  %2417 = add nsw i32 %2416, 1
  store i32 %2417, ptr @test_count, align 4, !tbaa !5
  %2418 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %2331) #11
  %2419 = icmp eq i32 %2418, -1
  br i1 %2419, label %2420, label %2444

2420:                                             ; preds = %2415
  %2421 = tail call ptr @__errno_location() #12
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = call i32 @s2n_print_stacktrace(ptr noundef %2423) #11
  %2425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2426 = trunc nuw i8 %2425 to i1
  br i1 %2426, label %2427, label %2431

2427:                                             ; preds = %2420
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = call i32 @fileno(ptr noundef %2428) #11
  %2430 = call i32 @isatty(i32 noundef %2429) #11
  %.not674 = icmp eq i32 %2430, 0
  br i1 %.not674, label %2431, label %2432

2431:                                             ; preds = %2427, %2420
  br label %2432

2432:                                             ; preds = %2427, %2431
  %.str.5.sink1717 = phi ptr [ @.str.5, %2431 ], [ @.str.2, %2427 ]
  store i32 %2422, ptr %2421, align 4, !tbaa !5
  %2433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2436, ptr noundef nonnull @.str.4) #11
  %2438 = load i32, ptr %2435, align 4, !tbaa !5
  %2439 = call ptr @s2n_strerror_debug(i32 noundef %2438, ptr noundef nonnull @.str.4) #11
  %2440 = load i32, ptr %2421, align 4, !tbaa !5
  %2441 = call ptr @strerror(i32 noundef %2440) #11
  %2442 = load i32, ptr %2421, align 4, !tbaa !5
  %2443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2433, ptr noundef nonnull %.str.5.sink1717, i32 noundef %2434, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %2437, ptr noundef %2439, ptr noundef %2441, i32 noundef %2442) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2444:                                             ; preds = %2415
  %2445 = load i32, ptr @test_count, align 4, !tbaa !5
  %2446 = add nsw i32 %2445, 1
  store i32 %2446, ptr @test_count, align 4, !tbaa !5
  %2447 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %2331, i32 noundef 1) #11
  %2448 = icmp eq i32 %2447, -1
  br i1 %2448, label %2449, label %2473

2449:                                             ; preds = %2444
  %2450 = tail call ptr @__errno_location() #12
  %2451 = load i32, ptr %2450, align 4, !tbaa !5
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = call i32 @s2n_print_stacktrace(ptr noundef %2452) #11
  %2454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2455 = trunc nuw i8 %2454 to i1
  br i1 %2455, label %2456, label %2460

2456:                                             ; preds = %2449
  %2457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2458 = call i32 @fileno(ptr noundef %2457) #11
  %2459 = call i32 @isatty(i32 noundef %2458) #11
  %.not673 = icmp eq i32 %2459, 0
  br i1 %.not673, label %2460, label %2461

2460:                                             ; preds = %2456, %2449
  br label %2461

2461:                                             ; preds = %2456, %2460
  %.str.5.sink1728 = phi ptr [ @.str.5, %2460 ], [ @.str.2, %2456 ]
  store i32 %2451, ptr %2450, align 4, !tbaa !5
  %2462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2463 = load i32, ptr @test_count, align 4, !tbaa !5
  %2464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = call ptr @s2n_strerror(i32 noundef %2465, ptr noundef nonnull @.str.4) #11
  %2467 = load i32, ptr %2464, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror_debug(i32 noundef %2467, ptr noundef nonnull @.str.4) #11
  %2469 = load i32, ptr %2450, align 4, !tbaa !5
  %2470 = call ptr @strerror(i32 noundef %2469) #11
  %2471 = load i32, ptr %2450, align 4, !tbaa !5
  %2472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2462, ptr noundef nonnull %.str.5.sink1728, i32 noundef %2463, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %2466, ptr noundef %2468, ptr noundef %2470, i32 noundef %2471) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2473:                                             ; preds = %2444
  %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 = call i32 @s2n_config_set_client_auth_type(ptr noundef %201, i32 noundef 0) #11
  %2477 = icmp eq i32 %2476, -1
  br i1 %2477, label %2478, label %2502

2478:                                             ; preds = %2473
  %2479 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %2488 = call i32 @isatty(i32 noundef %2487) #11
  %.not672 = icmp eq i32 %2488, 0
  br i1 %.not672, label %2489, label %2490

2489:                                             ; preds = %2485, %2478
  br label %2490

2490:                                             ; preds = %2485, %2489
  %.str.5.sink1739 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror(i32 noundef %2494, ptr noundef nonnull @.str.4) #11
  %2496 = load i32, ptr %2493, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror_debug(i32 noundef %2496, ptr noundef nonnull @.str.4) #11
  %2498 = load i32, ptr %2479, align 4, !tbaa !5
  %2499 = call ptr @strerror(i32 noundef %2498) #11
  %2500 = load i32, ptr %2479, align 4, !tbaa !5
  %2501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2491, ptr noundef nonnull %.str.5.sink1739, i32 noundef %2492, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %2495, ptr noundef %2497, ptr noundef %2499, i32 noundef %2500) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2502:                                             ; preds = %2473
  %2503 = load i32, ptr @test_count, align 4, !tbaa !5
  %2504 = add nsw i32 %2503, 1
  store i32 %2504, ptr @test_count, align 4, !tbaa !5
  %2505 = call i32 @s2n_config_disable_x509_verification(ptr noundef %201) #11
  %2506 = icmp eq i32 %2505, -1
  br i1 %2506, label %2512, label %.preheader766

.preheader766:                                    ; preds = %2502
  %2507 = load i16, ptr %551, align 8, !tbaa !24
  %.not800 = icmp eq i16 %2507, 0
  br i1 %.not800, label %._crit_edge790, label %.lr.ph789

.lr.ph789:                                        ; preds = %.preheader766
  %2508 = getelementptr inbounds i8, ptr %551, i64 8
  %2509 = getelementptr inbounds i8, ptr %16, i64 8
  %2510 = getelementptr inbounds i8, ptr %17, i64 8
  %2511 = getelementptr inbounds i8, ptr %2331, i64 96
  br label %2540

2512:                                             ; preds = %2502
  %2513 = tail call ptr @__errno_location() #12
  %2514 = load i32, ptr %2513, align 4, !tbaa !5
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = call i32 @s2n_print_stacktrace(ptr noundef %2515) #11
  %2517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2518 = trunc nuw i8 %2517 to i1
  br i1 %2518, label %2519, label %2523

2519:                                             ; preds = %2512
  %2520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2521 = call i32 @fileno(ptr noundef %2520) #11
  %2522 = call i32 @isatty(i32 noundef %2521) #11
  %.not671 = icmp eq i32 %2522, 0
  br i1 %.not671, label %2523, label %2524

2523:                                             ; preds = %2519, %2512
  br label %2524

2524:                                             ; preds = %2519, %2523
  %.str.5.sink1750 = phi ptr [ @.str.5, %2523 ], [ @.str.2, %2519 ]
  store i32 %2514, ptr %2513, align 4, !tbaa !5
  %2525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2526 = load i32, ptr @test_count, align 4, !tbaa !5
  %2527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call ptr @s2n_strerror(i32 noundef %2528, ptr noundef nonnull @.str.4) #11
  %2530 = load i32, ptr %2527, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef nonnull @.str.4) #11
  %2532 = load i32, ptr %2513, align 4, !tbaa !5
  %2533 = call ptr @strerror(i32 noundef %2532) #11
  %2534 = load i32, ptr %2513, align 4, !tbaa !5
  %2535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2525, ptr noundef nonnull %.str.5.sink1750, i32 noundef %2526, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2529, ptr noundef %2531, ptr noundef %2533, i32 noundef %2534) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge790:                                   ; preds = %2951, %.preheader766
  %2536 = load i32, ptr @test_count, align 4, !tbaa !5
  %2537 = add nsw i32 %2536, 1
  store i32 %2537, ptr @test_count, align 4, !tbaa !5
  %2538 = call i32 @s2n_config_free(ptr noundef nonnull %2331) #11
  %2539 = icmp eq i32 %2538, -1
  br i1 %2539, label %2955, label %2979

2540:                                             ; preds = %.lr.ph789, %2951
  %indvars.iv814 = phi i64 [ 0, %.lr.ph789 ], [ %indvars.iv.next815, %2951 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %17) #11
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(24) %551, i64 24, i1 false)
  store i16 1, ptr %16, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #11
  %2541 = load ptr, ptr %2508, align 8, !tbaa !26
  %2542 = getelementptr inbounds ptr, ptr %2541, i64 %indvars.iv814
  %2543 = load ptr, ptr %2542, align 8, !tbaa !9
  store ptr %2543, ptr %18, align 8, !tbaa !9
  %2544 = load i8, ptr %2543, align 8
  %2545 = and i8 %2544, 1
  %.not654 = icmp eq i8 %2545, 0
  br i1 %.not654, label %2951, label %2546

2546:                                             ; preds = %2540
  store ptr %18, ptr %2509, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %17, ptr noundef nonnull align 8 dereferenceable(64) %522, i64 64, i1 false)
  store ptr %16, ptr %2510, align 8, !tbaa !22
  store ptr %17, ptr %2511, align 8, !tbaa !15
  store ptr %17, ptr %521, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #11
  %2547 = load i32, ptr @test_count, align 4, !tbaa !5
  %2548 = add nsw i32 %2547, 1
  store i32 %2548, ptr @test_count, align 4, !tbaa !5
  %2549 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %19) #11
  %2550 = icmp eq i32 %2549, -1
  br i1 %2550, label %2551, label %2575

2551:                                             ; preds = %2546
  %2552 = tail call ptr @__errno_location() #12
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = call i32 @s2n_print_stacktrace(ptr noundef %2554) #11
  %2556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2557 = trunc nuw i8 %2556 to i1
  br i1 %2557, label %2558, label %2562

2558:                                             ; preds = %2551
  %2559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2560 = call i32 @fileno(ptr noundef %2559) #11
  %2561 = call i32 @isatty(i32 noundef %2560) #11
  %.not670 = icmp eq i32 %2561, 0
  br i1 %.not670, label %2562, label %2563

2562:                                             ; preds = %2558, %2551
  br label %2563

2563:                                             ; preds = %2558, %2562
  %.str.5.sink1761 = phi ptr [ @.str.5, %2562 ], [ @.str.2, %2558 ]
  store i32 %2553, ptr %2552, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = load i32, ptr @test_count, align 4, !tbaa !5
  %2566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @s2n_strerror(i32 noundef %2567, ptr noundef nonnull @.str.4) #11
  %2569 = load i32, ptr %2566, align 4, !tbaa !5
  %2570 = call ptr @s2n_strerror_debug(i32 noundef %2569, ptr noundef nonnull @.str.4) #11
  %2571 = load i32, ptr %2552, align 4, !tbaa !5
  %2572 = call ptr @strerror(i32 noundef %2571) #11
  %2573 = load i32, ptr %2552, align 4, !tbaa !5
  %2574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2564, ptr noundef nonnull %.str.5.sink1761, i32 noundef %2565, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 298, ptr noundef %2568, ptr noundef %2570, ptr noundef %2572, i32 noundef %2573) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2575:                                             ; preds = %2546
  %2576 = load i32, ptr @test_count, align 4, !tbaa !5
  %2577 = add nsw i32 %2576, 1
  store i32 %2577, ptr @test_count, align 4, !tbaa !5
  %2578 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %2579 = icmp eq ptr %2578, null
  br i1 %2579, label %2580, label %2604

2580:                                             ; preds = %2575
  %2581 = tail call ptr @__errno_location() #12
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @s2n_print_stacktrace(ptr noundef %2583) #11
  %2585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2586 = trunc nuw i8 %2585 to i1
  br i1 %2586, label %2587, label %2591

2587:                                             ; preds = %2580
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @fileno(ptr noundef %2588) #11
  %2590 = call i32 @isatty(i32 noundef %2589) #11
  %.not669 = icmp eq i32 %2590, 0
  br i1 %.not669, label %2591, label %2592

2591:                                             ; preds = %2587, %2580
  br label %2592

2592:                                             ; preds = %2587, %2591
  %.str.5.sink1772 = phi ptr [ @.str.5, %2591 ], [ @.str.2, %2587 ]
  store i32 %2582, ptr %2581, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror(i32 noundef %2596, ptr noundef nonnull @.str.4) #11
  %2598 = load i32, ptr %2595, align 4, !tbaa !5
  %2599 = call ptr @s2n_strerror_debug(i32 noundef %2598, ptr noundef nonnull @.str.4) #11
  %2600 = load i32, ptr %2581, align 4, !tbaa !5
  %2601 = call ptr @strerror(i32 noundef %2600) #11
  %2602 = load i32, ptr %2581, align 4, !tbaa !5
  %2603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef nonnull %.str.5.sink1772, i32 noundef %2594, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %2597, ptr noundef %2599, ptr noundef %2601, i32 noundef %2602) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2604:                                             ; preds = %2575
  %2605 = load i32, ptr @test_count, align 4, !tbaa !5
  %2606 = add nsw i32 %2605, 1
  store i32 %2606, ptr @test_count, align 4, !tbaa !5
  %2607 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2578, ptr noundef nonnull %2331) #11
  %2608 = icmp eq i32 %2607, -1
  br i1 %2608, label %2609, label %2633

2609:                                             ; preds = %2604
  %2610 = tail call ptr @__errno_location() #12
  %2611 = load i32, ptr %2610, align 4, !tbaa !5
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = call i32 @s2n_print_stacktrace(ptr noundef %2612) #11
  %2614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2615 = trunc nuw i8 %2614 to i1
  br i1 %2615, label %2616, label %2620

2616:                                             ; preds = %2609
  %2617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2618 = call i32 @fileno(ptr noundef %2617) #11
  %2619 = call i32 @isatty(i32 noundef %2618) #11
  %.not668 = icmp eq i32 %2619, 0
  br i1 %.not668, label %2620, label %2621

2620:                                             ; preds = %2616, %2609
  br label %2621

2621:                                             ; preds = %2616, %2620
  %.str.5.sink1783 = phi ptr [ @.str.5, %2620 ], [ @.str.2, %2616 ]
  store i32 %2611, ptr %2610, align 4, !tbaa !5
  %2622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2623 = load i32, ptr @test_count, align 4, !tbaa !5
  %2624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2625 = load i32, ptr %2624, align 4, !tbaa !5
  %2626 = call ptr @s2n_strerror(i32 noundef %2625, ptr noundef nonnull @.str.4) #11
  %2627 = load i32, ptr %2624, align 4, !tbaa !5
  %2628 = call ptr @s2n_strerror_debug(i32 noundef %2627, ptr noundef nonnull @.str.4) #11
  %2629 = load i32, ptr %2610, align 4, !tbaa !5
  %2630 = call ptr @strerror(i32 noundef %2629) #11
  %2631 = load i32, ptr %2610, align 4, !tbaa !5
  %2632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2622, ptr noundef nonnull %.str.5.sink1783, i32 noundef %2623, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %2626, ptr noundef %2628, ptr noundef %2630, i32 noundef %2631) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2633:                                             ; preds = %2604
  %2634 = load i32, ptr @test_count, align 4, !tbaa !5
  %2635 = add nsw i32 %2634, 1
  store i32 %2635, ptr @test_count, align 4, !tbaa !5
  %2636 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %2578, i32 noundef 1) #11
  %2637 = icmp eq i32 %2636, -1
  br i1 %2637, label %2638, label %2662

2638:                                             ; preds = %2633
  %2639 = tail call ptr @__errno_location() #12
  %2640 = load i32, ptr %2639, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @s2n_print_stacktrace(ptr noundef %2641) #11
  %2643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2644 = trunc nuw i8 %2643 to i1
  br i1 %2644, label %2645, label %2649

2645:                                             ; preds = %2638
  %2646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2647 = call i32 @fileno(ptr noundef %2646) #11
  %2648 = call i32 @isatty(i32 noundef %2647) #11
  %.not667 = icmp eq i32 %2648, 0
  br i1 %.not667, label %2649, label %2650

2649:                                             ; preds = %2645, %2638
  br label %2650

2650:                                             ; preds = %2645, %2649
  %.str.5.sink1794 = phi ptr [ @.str.5, %2649 ], [ @.str.2, %2645 ]
  store i32 %2640, ptr %2639, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror(i32 noundef %2654, ptr noundef nonnull @.str.4) #11
  %2656 = load i32, ptr %2653, align 4, !tbaa !5
  %2657 = call ptr @s2n_strerror_debug(i32 noundef %2656, ptr noundef nonnull @.str.4) #11
  %2658 = load i32, ptr %2639, align 4, !tbaa !5
  %2659 = call ptr @strerror(i32 noundef %2658) #11
  %2660 = load i32, ptr %2639, align 4, !tbaa !5
  %2661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2651, ptr noundef nonnull %.str.5.sink1794, i32 noundef %2652, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %2655, ptr noundef %2657, ptr noundef %2659, i32 noundef %2660) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2662:                                             ; preds = %2633
  %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 ptr @s2n_connection_new(i32 noundef 0) #11
  %2666 = icmp eq ptr %2665, null
  br i1 %2666, label %2667, label %2691

2667:                                             ; preds = %2662
  %2668 = tail call ptr @__errno_location() #12
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = call i32 @s2n_print_stacktrace(ptr noundef %2670) #11
  %2672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2673 = trunc nuw i8 %2672 to i1
  br i1 %2673, label %2674, label %2678

2674:                                             ; preds = %2667
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = call i32 @fileno(ptr noundef %2675) #11
  %2677 = call i32 @isatty(i32 noundef %2676) #11
  %.not666 = icmp eq i32 %2677, 0
  br i1 %.not666, label %2678, label %2679

2678:                                             ; preds = %2674, %2667
  br label %2679

2679:                                             ; preds = %2674, %2678
  %.str.5.sink1805 = phi ptr [ @.str.5, %2678 ], [ @.str.2, %2674 ]
  store i32 %2669, ptr %2668, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror(i32 noundef %2683, ptr noundef nonnull @.str.4) #11
  %2685 = load i32, ptr %2682, align 4, !tbaa !5
  %2686 = call ptr @s2n_strerror_debug(i32 noundef %2685, ptr noundef nonnull @.str.4) #11
  %2687 = load i32, ptr %2668, align 4, !tbaa !5
  %2688 = call ptr @strerror(i32 noundef %2687) #11
  %2689 = load i32, ptr %2668, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2680, ptr noundef nonnull %.str.5.sink1805, i32 noundef %2681, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %2684, ptr noundef %2686, ptr noundef %2688, i32 noundef %2689) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2691:                                             ; preds = %2662
  %2692 = load i32, ptr @test_count, align 4, !tbaa !5
  %2693 = add nsw i32 %2692, 1
  store i32 %2693, ptr @test_count, align 4, !tbaa !5
  %2694 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2665, ptr noundef nonnull %201) #11
  %2695 = icmp eq i32 %2694, -1
  br i1 %2695, label %2696, label %2720

2696:                                             ; preds = %2691
  %2697 = tail call ptr @__errno_location() #12
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2700 = call i32 @s2n_print_stacktrace(ptr noundef %2699) #11
  %2701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2702 = trunc nuw i8 %2701 to i1
  br i1 %2702, label %2703, label %2707

2703:                                             ; preds = %2696
  %2704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2705 = call i32 @fileno(ptr noundef %2704) #11
  %2706 = call i32 @isatty(i32 noundef %2705) #11
  %.not665 = icmp eq i32 %2706, 0
  br i1 %.not665, label %2707, label %2708

2707:                                             ; preds = %2703, %2696
  br label %2708

2708:                                             ; preds = %2703, %2707
  %.str.5.sink1816 = phi ptr [ @.str.5, %2707 ], [ @.str.2, %2703 ]
  store i32 %2698, ptr %2697, align 4, !tbaa !5
  %2709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2710 = load i32, ptr @test_count, align 4, !tbaa !5
  %2711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2712 = load i32, ptr %2711, align 4, !tbaa !5
  %2713 = call ptr @s2n_strerror(i32 noundef %2712, ptr noundef nonnull @.str.4) #11
  %2714 = load i32, ptr %2711, align 4, !tbaa !5
  %2715 = call ptr @s2n_strerror_debug(i32 noundef %2714, ptr noundef nonnull @.str.4) #11
  %2716 = load i32, ptr %2697, align 4, !tbaa !5
  %2717 = call ptr @strerror(i32 noundef %2716) #11
  %2718 = load i32, ptr %2697, align 4, !tbaa !5
  %2719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2709, ptr noundef nonnull %.str.5.sink1816, i32 noundef %2710, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %2713, ptr noundef %2715, ptr noundef %2717, i32 noundef %2718) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2720:                                             ; preds = %2691
  %2721 = load i32, ptr @test_count, align 4, !tbaa !5
  %2722 = add nsw i32 %2721, 1
  store i32 %2722, ptr @test_count, align 4, !tbaa !5
  %2723 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %2578, ptr noundef nonnull %2665, ptr noundef nonnull %19) #11
  %2724 = icmp eq i32 %2723, -1
  br i1 %2724, label %2725, label %2749

2725:                                             ; preds = %2720
  %2726 = tail call ptr @__errno_location() #12
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = call i32 @s2n_print_stacktrace(ptr noundef %2728) #11
  %2730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2731 = trunc nuw i8 %2730 to i1
  br i1 %2731, label %2732, label %2736

2732:                                             ; preds = %2725
  %2733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2734 = call i32 @fileno(ptr noundef %2733) #11
  %2735 = call i32 @isatty(i32 noundef %2734) #11
  %.not664 = icmp eq i32 %2735, 0
  br i1 %.not664, label %2736, label %2737

2736:                                             ; preds = %2732, %2725
  br label %2737

2737:                                             ; preds = %2732, %2736
  %.str.5.sink1827 = phi ptr [ @.str.5, %2736 ], [ @.str.2, %2732 ]
  store i32 %2727, ptr %2726, align 4, !tbaa !5
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror(i32 noundef %2741, ptr noundef nonnull @.str.4) #11
  %2743 = load i32, ptr %2740, align 4, !tbaa !5
  %2744 = call ptr @s2n_strerror_debug(i32 noundef %2743, ptr noundef nonnull @.str.4) #11
  %2745 = load i32, ptr %2726, align 4, !tbaa !5
  %2746 = call ptr @strerror(i32 noundef %2745) #11
  %2747 = load i32, ptr %2726, align 4, !tbaa !5
  %2748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2738, ptr noundef nonnull %.str.5.sink1827, i32 noundef %2739, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 309, ptr noundef %2742, ptr noundef %2744, ptr noundef %2746, i32 noundef %2747) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2749:                                             ; preds = %2720
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = add nsw i32 %2750, 1
  store i32 %2751, ptr @test_count, align 4, !tbaa !5
  %2752 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %2665, i32 noundef 2) #11
  %2753 = icmp eq i32 %2752, -1
  br i1 %2753, label %2754, label %2778

2754:                                             ; preds = %2749
  %2755 = tail call ptr @__errno_location() #12
  %2756 = load i32, ptr %2755, align 4, !tbaa !5
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = call i32 @s2n_print_stacktrace(ptr noundef %2757) #11
  %2759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2760 = trunc nuw i8 %2759 to i1
  br i1 %2760, label %2761, label %2765

2761:                                             ; preds = %2754
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @fileno(ptr noundef %2762) #11
  %2764 = call i32 @isatty(i32 noundef %2763) #11
  %.not663 = icmp eq i32 %2764, 0
  br i1 %.not663, label %2765, label %2766

2765:                                             ; preds = %2761, %2754
  br label %2766

2766:                                             ; preds = %2761, %2765
  %.str.5.sink1838 = phi ptr [ @.str.5, %2765 ], [ @.str.2, %2761 ]
  store i32 %2756, ptr %2755, align 4, !tbaa !5
  %2767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2768 = load i32, ptr @test_count, align 4, !tbaa !5
  %2769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  %2771 = call ptr @s2n_strerror(i32 noundef %2770, ptr noundef nonnull @.str.4) #11
  %2772 = load i32, ptr %2769, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror_debug(i32 noundef %2772, ptr noundef nonnull @.str.4) #11
  %2774 = load i32, ptr %2755, align 4, !tbaa !5
  %2775 = call ptr @strerror(i32 noundef %2774) #11
  %2776 = load i32, ptr %2755, align 4, !tbaa !5
  %2777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2767, ptr noundef nonnull %.str.5.sink1838, i32 noundef %2768, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %2771, ptr noundef %2773, ptr noundef %2775, i32 noundef %2776) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2778:                                             ; preds = %2749
  %2779 = load i32, ptr @test_count, align 4, !tbaa !5
  %2780 = add nsw i32 %2779, 1
  store i32 %2780, ptr @test_count, align 4, !tbaa !5
  %2781 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %2665, ptr noundef nonnull %2578) #11
  %2782 = icmp eq i32 %2781, -1
  br i1 %2782, label %2783, label %2807

2783:                                             ; preds = %2778
  %2784 = tail call ptr @__errno_location() #12
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = call i32 @s2n_print_stacktrace(ptr noundef %2786) #11
  %2788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2789 = trunc nuw i8 %2788 to i1
  br i1 %2789, label %2790, label %2794

2790:                                             ; preds = %2783
  %2791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2792 = call i32 @fileno(ptr noundef %2791) #11
  %2793 = call i32 @isatty(i32 noundef %2792) #11
  %.not662 = icmp eq i32 %2793, 0
  br i1 %.not662, label %2794, label %2795

2794:                                             ; preds = %2790, %2783
  br label %2795

2795:                                             ; preds = %2790, %2794
  %.str.5.sink1849 = phi ptr [ @.str.5, %2794 ], [ @.str.2, %2790 ]
  store i32 %2785, ptr %2784, align 4, !tbaa !5
  %2796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2797 = load i32, ptr @test_count, align 4, !tbaa !5
  %2798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call ptr @s2n_strerror(i32 noundef %2799, ptr noundef nonnull @.str.4) #11
  %2801 = load i32, ptr %2798, align 4, !tbaa !5
  %2802 = call ptr @s2n_strerror_debug(i32 noundef %2801, ptr noundef nonnull @.str.4) #11
  %2803 = load i32, ptr %2784, align 4, !tbaa !5
  %2804 = call ptr @strerror(i32 noundef %2803) #11
  %2805 = load i32, ptr %2784, align 4, !tbaa !5
  %2806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2796, ptr noundef nonnull %.str.5.sink1849, i32 noundef %2797, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2800, ptr noundef %2802, ptr noundef %2804, i32 noundef %2805) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2807:                                             ; preds = %2778
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = add nsw i32 %2808, 1
  store i32 %2809, ptr @test_count, align 4, !tbaa !5
  %2810 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %2665) #11
  %.not655 = icmp eq i32 %2810, 0
  br i1 %.not655, label %2811, label %2835

2811:                                             ; preds = %2807
  %2812 = tail call ptr @__errno_location() #12
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2815 = call i32 @s2n_print_stacktrace(ptr noundef %2814) #11
  %2816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2817 = trunc nuw i8 %2816 to i1
  br i1 %2817, label %2818, label %2822

2818:                                             ; preds = %2811
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = call i32 @fileno(ptr noundef %2819) #11
  %2821 = call i32 @isatty(i32 noundef %2820) #11
  %.not656 = icmp eq i32 %2821, 0
  br i1 %.not656, label %2822, label %2823

2822:                                             ; preds = %2818, %2811
  br label %2823

2823:                                             ; preds = %2818, %2822
  %.str.5.sink1860 = phi ptr [ @.str.5, %2822 ], [ @.str.2, %2818 ]
  store i32 %2813, ptr %2812, align 4, !tbaa !5
  %2824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2827 = load i32, ptr %2826, align 4, !tbaa !5
  %2828 = call ptr @s2n_strerror(i32 noundef %2827, ptr noundef nonnull @.str.4) #11
  %2829 = load i32, ptr %2826, align 4, !tbaa !5
  %2830 = call ptr @s2n_strerror_debug(i32 noundef %2829, ptr noundef nonnull @.str.4) #11
  %2831 = load i32, ptr %2812, align 4, !tbaa !5
  %2832 = call ptr @strerror(i32 noundef %2831) #11
  %2833 = load i32, ptr %2812, align 4, !tbaa !5
  %2834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2824, ptr noundef nonnull %.str.5.sink1860, i32 noundef %2825, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %2828, ptr noundef %2830, ptr noundef %2832, i32 noundef %2833) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2835:                                             ; preds = %2807
  %2836 = load i32, ptr @test_count, align 4, !tbaa !5
  %2837 = add nsw i32 %2836, 1
  store i32 %2837, ptr @test_count, align 4, !tbaa !5
  %2838 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %2578) #11
  %.not657 = icmp eq i32 %2838, 0
  br i1 %.not657, label %2839, label %2863

2839:                                             ; preds = %2835
  %2840 = tail call ptr @__errno_location() #12
  %2841 = load i32, ptr %2840, align 4, !tbaa !5
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = call i32 @s2n_print_stacktrace(ptr noundef %2842) #11
  %2844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2845 = trunc nuw i8 %2844 to i1
  br i1 %2845, label %2846, label %2850

2846:                                             ; preds = %2839
  %2847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2848 = call i32 @fileno(ptr noundef %2847) #11
  %2849 = call i32 @isatty(i32 noundef %2848) #11
  %.not658 = icmp eq i32 %2849, 0
  br i1 %.not658, label %2850, label %2851

2850:                                             ; preds = %2846, %2839
  br label %2851

2851:                                             ; preds = %2846, %2850
  %.str.5.sink1871 = phi ptr [ @.str.5, %2850 ], [ @.str.2, %2846 ]
  store i32 %2841, ptr %2840, align 4, !tbaa !5
  %2852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2853 = load i32, ptr @test_count, align 4, !tbaa !5
  %2854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2855 = load i32, ptr %2854, align 4, !tbaa !5
  %2856 = call ptr @s2n_strerror(i32 noundef %2855, ptr noundef nonnull @.str.4) #11
  %2857 = load i32, ptr %2854, align 4, !tbaa !5
  %2858 = call ptr @s2n_strerror_debug(i32 noundef %2857, ptr noundef nonnull @.str.4) #11
  %2859 = load i32, ptr %2840, align 4, !tbaa !5
  %2860 = call ptr @strerror(i32 noundef %2859) #11
  %2861 = load i32, ptr %2840, align 4, !tbaa !5
  %2862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2852, ptr noundef nonnull %.str.5.sink1871, i32 noundef %2853, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %2856, ptr noundef %2858, ptr noundef %2860, i32 noundef %2861) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2863:                                             ; preds = %2835
  %2864 = load i32, ptr @test_count, align 4, !tbaa !5
  %2865 = add nsw i32 %2864, 1
  store i32 %2865, ptr @test_count, align 4, !tbaa !5
  %2866 = call i32 @s2n_connection_free(ptr noundef nonnull %2578) #11
  %2867 = icmp eq i32 %2866, -1
  br i1 %2867, label %2868, label %2892

2868:                                             ; preds = %2863
  %2869 = tail call ptr @__errno_location() #12
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  %2871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2872 = call i32 @s2n_print_stacktrace(ptr noundef %2871) #11
  %2873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2874 = trunc nuw i8 %2873 to i1
  br i1 %2874, label %2875, label %2879

2875:                                             ; preds = %2868
  %2876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2877 = call i32 @fileno(ptr noundef %2876) #11
  %2878 = call i32 @isatty(i32 noundef %2877) #11
  %.not661 = icmp eq i32 %2878, 0
  br i1 %.not661, label %2879, label %2880

2879:                                             ; preds = %2875, %2868
  br label %2880

2880:                                             ; preds = %2875, %2879
  %.str.5.sink1882 = phi ptr [ @.str.5, %2879 ], [ @.str.2, %2875 ]
  store i32 %2870, ptr %2869, align 4, !tbaa !5
  %2881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2882 = load i32, ptr @test_count, align 4, !tbaa !5
  %2883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call ptr @s2n_strerror(i32 noundef %2884, ptr noundef nonnull @.str.4) #11
  %2886 = load i32, ptr %2883, align 4, !tbaa !5
  %2887 = call ptr @s2n_strerror_debug(i32 noundef %2886, ptr noundef nonnull @.str.4) #11
  %2888 = load i32, ptr %2869, align 4, !tbaa !5
  %2889 = call ptr @strerror(i32 noundef %2888) #11
  %2890 = load i32, ptr %2869, align 4, !tbaa !5
  %2891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2881, ptr noundef nonnull %.str.5.sink1882, i32 noundef %2882, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2885, ptr noundef %2887, ptr noundef %2889, i32 noundef %2890) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2892:                                             ; preds = %2863
  %2893 = load i32, ptr @test_count, align 4, !tbaa !5
  %2894 = add nsw i32 %2893, 1
  store i32 %2894, ptr @test_count, align 4, !tbaa !5
  %2895 = call i32 @s2n_connection_free(ptr noundef nonnull %2665) #11
  %2896 = icmp eq i32 %2895, -1
  br i1 %2896, label %2897, label %2921

2897:                                             ; preds = %2892
  %2898 = tail call ptr @__errno_location() #12
  %2899 = load i32, ptr %2898, align 4, !tbaa !5
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = call i32 @s2n_print_stacktrace(ptr noundef %2900) #11
  %2902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2903 = trunc nuw i8 %2902 to i1
  br i1 %2903, label %2904, label %2908

2904:                                             ; preds = %2897
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = call i32 @fileno(ptr noundef %2905) #11
  %2907 = call i32 @isatty(i32 noundef %2906) #11
  %.not660 = icmp eq i32 %2907, 0
  br i1 %.not660, label %2908, label %2909

2908:                                             ; preds = %2904, %2897
  br label %2909

2909:                                             ; preds = %2904, %2908
  %.str.5.sink1893 = phi ptr [ @.str.5, %2908 ], [ @.str.2, %2904 ]
  store i32 %2899, ptr %2898, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = load i32, ptr @test_count, align 4, !tbaa !5
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror(i32 noundef %2913, ptr noundef nonnull @.str.4) #11
  %2915 = load i32, ptr %2912, align 4, !tbaa !5
  %2916 = call ptr @s2n_strerror_debug(i32 noundef %2915, ptr noundef nonnull @.str.4) #11
  %2917 = load i32, ptr %2898, align 4, !tbaa !5
  %2918 = call ptr @strerror(i32 noundef %2917) #11
  %2919 = load i32, ptr %2898, align 4, !tbaa !5
  %2920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2910, ptr noundef nonnull %.str.5.sink1893, i32 noundef %2911, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 322, ptr noundef %2914, ptr noundef %2916, ptr noundef %2918, i32 noundef %2919) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2921:                                             ; preds = %2892
  %2922 = load i32, ptr @test_count, align 4, !tbaa !5
  %2923 = add nsw i32 %2922, 1
  store i32 %2923, ptr @test_count, align 4, !tbaa !5
  %2924 = call i32 @s2n_io_pair_close(ptr noundef nonnull %19) #11
  %2925 = icmp eq i32 %2924, -1
  br i1 %2925, label %2926, label %2950

2926:                                             ; preds = %2921
  %2927 = tail call ptr @__errno_location() #12
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2930 = call i32 @s2n_print_stacktrace(ptr noundef %2929) #11
  %2931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2932 = trunc nuw i8 %2931 to i1
  br i1 %2932, label %2933, label %2937

2933:                                             ; preds = %2926
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = call i32 @fileno(ptr noundef %2934) #11
  %2936 = call i32 @isatty(i32 noundef %2935) #11
  %.not659 = icmp eq i32 %2936, 0
  br i1 %.not659, label %2937, label %2938

2937:                                             ; preds = %2933, %2926
  br label %2938

2938:                                             ; preds = %2933, %2937
  %.str.5.sink1904 = phi ptr [ @.str.5, %2937 ], [ @.str.2, %2933 ]
  store i32 %2928, ptr %2927, align 4, !tbaa !5
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = load i32, ptr @test_count, align 4, !tbaa !5
  %2941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2942 = load i32, ptr %2941, align 4, !tbaa !5
  %2943 = call ptr @s2n_strerror(i32 noundef %2942, ptr noundef nonnull @.str.4) #11
  %2944 = load i32, ptr %2941, align 4, !tbaa !5
  %2945 = call ptr @s2n_strerror_debug(i32 noundef %2944, ptr noundef nonnull @.str.4) #11
  %2946 = load i32, ptr %2927, align 4, !tbaa !5
  %2947 = call ptr @strerror(i32 noundef %2946) #11
  %2948 = load i32, ptr %2927, align 4, !tbaa !5
  %2949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2939, ptr noundef nonnull %.str.5.sink1904, i32 noundef %2940, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %2943, ptr noundef %2945, ptr noundef %2947, i32 noundef %2948) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2950:                                             ; preds = %2921
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  br label %2951

2951:                                             ; preds = %2540, %2950
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #11
  %indvars.iv.next815 = add nuw nsw i64 %indvars.iv814, 1
  %2952 = load i16, ptr %551, align 8, !tbaa !24
  %2953 = zext i16 %2952 to i64
  %2954 = icmp ult i64 %indvars.iv.next815, %2953
  br i1 %2954, label %2540, label %._crit_edge790, !llvm.loop !31

2955:                                             ; preds = %._crit_edge790
  %2956 = tail call ptr @__errno_location() #12
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  %2958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2959 = call i32 @s2n_print_stacktrace(ptr noundef %2958) #11
  %2960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2961 = trunc nuw i8 %2960 to i1
  br i1 %2961, label %2962, label %2966

2962:                                             ; preds = %2955
  %2963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2964 = call i32 @fileno(ptr noundef %2963) #11
  %2965 = call i32 @isatty(i32 noundef %2964) #11
  %.not653 = icmp eq i32 %2965, 0
  br i1 %.not653, label %2966, label %2967

2966:                                             ; preds = %2962, %2955
  br label %2967

2967:                                             ; preds = %2962, %2966
  %.str.5.sink1915 = phi ptr [ @.str.5, %2966 ], [ @.str.2, %2962 ]
  store i32 %2957, ptr %2956, align 4, !tbaa !5
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = load i32, ptr @test_count, align 4, !tbaa !5
  %2970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call ptr @s2n_strerror(i32 noundef %2971, ptr noundef nonnull @.str.4) #11
  %2973 = load i32, ptr %2970, align 4, !tbaa !5
  %2974 = call ptr @s2n_strerror_debug(i32 noundef %2973, ptr noundef nonnull @.str.4) #11
  %2975 = load i32, ptr %2956, align 4, !tbaa !5
  %2976 = call ptr @strerror(i32 noundef %2975) #11
  %2977 = load i32, ptr %2956, align 4, !tbaa !5
  %2978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2968, ptr noundef nonnull %.str.5.sink1915, i32 noundef %2969, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %2972, ptr noundef %2974, ptr noundef %2976, i32 noundef %2977) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2979:                                             ; preds = %._crit_edge790
  %2980 = load i32, ptr @test_count, align 4, !tbaa !5
  %2981 = add nsw i32 %2980, 1
  store i32 %2981, ptr @test_count, align 4, !tbaa !5
  %2982 = call ptr @s2n_config_new() #11
  %2983 = icmp eq ptr %2982, null
  br i1 %2983, label %2984, label %3008

2984:                                             ; preds = %2979
  %2985 = tail call ptr @__errno_location() #12
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = call i32 @s2n_print_stacktrace(ptr noundef %2987) #11
  %2989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2990 = trunc nuw i8 %2989 to i1
  br i1 %2990, label %2991, label %2995

2991:                                             ; preds = %2984
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = call i32 @fileno(ptr noundef %2992) #11
  %2994 = call i32 @isatty(i32 noundef %2993) #11
  %.not652 = icmp eq i32 %2994, 0
  br i1 %.not652, label %2995, label %2996

2995:                                             ; preds = %2991, %2984
  br label %2996

2996:                                             ; preds = %2991, %2995
  %.str.5.sink1926 = phi ptr [ @.str.5, %2995 ], [ @.str.2, %2991 ]
  store i32 %2986, ptr %2985, align 4, !tbaa !5
  %2997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2998 = load i32, ptr @test_count, align 4, !tbaa !5
  %2999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3000 = load i32, ptr %2999, align 4, !tbaa !5
  %3001 = call ptr @s2n_strerror(i32 noundef %3000, ptr noundef nonnull @.str.4) #11
  %3002 = load i32, ptr %2999, align 4, !tbaa !5
  %3003 = call ptr @s2n_strerror_debug(i32 noundef %3002, ptr noundef nonnull @.str.4) #11
  %3004 = load i32, ptr %2985, align 4, !tbaa !5
  %3005 = call ptr @strerror(i32 noundef %3004) #11
  %3006 = load i32, ptr %2985, align 4, !tbaa !5
  %3007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2997, ptr noundef nonnull %.str.5.sink1926, i32 noundef %2998, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %3001, ptr noundef %3003, ptr noundef %3005, i32 noundef %3006) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3008:                                             ; preds = %2979
  %3009 = load i32, ptr @test_count, align 4, !tbaa !5
  %3010 = add nsw i32 %3009, 1
  store i32 %3010, ptr @test_count, align 4, !tbaa !5
  %3011 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2982, ptr noundef nonnull @.str.12) #11
  %3012 = icmp eq i32 %3011, -1
  br i1 %3012, label %3013, label %3037

3013:                                             ; preds = %3008
  %3014 = tail call ptr @__errno_location() #12
  %3015 = load i32, ptr %3014, align 4, !tbaa !5
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = call i32 @s2n_print_stacktrace(ptr noundef %3016) #11
  %3018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3019 = trunc nuw i8 %3018 to i1
  br i1 %3019, label %3020, label %3024

3020:                                             ; preds = %3013
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @fileno(ptr noundef %3021) #11
  %3023 = call i32 @isatty(i32 noundef %3022) #11
  %.not651 = icmp eq i32 %3023, 0
  br i1 %.not651, label %3024, label %3025

3024:                                             ; preds = %3020, %3013
  br label %3025

3025:                                             ; preds = %3020, %3024
  %.str.5.sink1937 = phi ptr [ @.str.5, %3024 ], [ @.str.2, %3020 ]
  store i32 %3015, ptr %3014, align 4, !tbaa !5
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = load i32, ptr @test_count, align 4, !tbaa !5
  %3028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3029 = load i32, ptr %3028, align 4, !tbaa !5
  %3030 = call ptr @s2n_strerror(i32 noundef %3029, ptr noundef nonnull @.str.4) #11
  %3031 = load i32, ptr %3028, align 4, !tbaa !5
  %3032 = call ptr @s2n_strerror_debug(i32 noundef %3031, ptr noundef nonnull @.str.4) #11
  %3033 = load i32, ptr %3014, align 4, !tbaa !5
  %3034 = call ptr @strerror(i32 noundef %3033) #11
  %3035 = load i32, ptr %3014, align 4, !tbaa !5
  %3036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3026, ptr noundef nonnull %.str.5.sink1937, i32 noundef %3027, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %3030, ptr noundef %3032, ptr noundef %3034, i32 noundef %3035) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3037:                                             ; preds = %3008
  %3038 = load i32, ptr @test_count, align 4, !tbaa !5
  %3039 = add nsw i32 %3038, 1
  store i32 %3039, ptr @test_count, align 4, !tbaa !5
  %3040 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %2982) #11
  %3041 = icmp eq i32 %3040, -1
  br i1 %3041, label %3042, label %3066

3042:                                             ; preds = %3037
  %3043 = tail call ptr @__errno_location() #12
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3046 = call i32 @s2n_print_stacktrace(ptr noundef %3045) #11
  %3047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3048 = trunc nuw i8 %3047 to i1
  br i1 %3048, label %3049, label %3053

3049:                                             ; preds = %3042
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = call i32 @fileno(ptr noundef %3050) #11
  %3052 = call i32 @isatty(i32 noundef %3051) #11
  %.not650 = icmp eq i32 %3052, 0
  br i1 %.not650, label %3053, label %3054

3053:                                             ; preds = %3049, %3042
  br label %3054

3054:                                             ; preds = %3049, %3053
  %.str.5.sink1948 = phi ptr [ @.str.5, %3053 ], [ @.str.2, %3049 ]
  store i32 %3044, ptr %3043, align 4, !tbaa !5
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = load i32, ptr @test_count, align 4, !tbaa !5
  %3057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call ptr @s2n_strerror(i32 noundef %3058, ptr noundef nonnull @.str.4) #11
  %3060 = load i32, ptr %3057, align 4, !tbaa !5
  %3061 = call ptr @s2n_strerror_debug(i32 noundef %3060, ptr noundef nonnull @.str.4) #11
  %3062 = load i32, ptr %3043, align 4, !tbaa !5
  %3063 = call ptr @strerror(i32 noundef %3062) #11
  %3064 = load i32, ptr %3043, align 4, !tbaa !5
  %3065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3055, ptr noundef nonnull %.str.5.sink1948, i32 noundef %3056, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %3059, ptr noundef %3061, ptr noundef %3063, i32 noundef %3064) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3066:                                             ; preds = %3037
  %3067 = load i32, ptr @test_count, align 4, !tbaa !5
  %3068 = add nsw i32 %3067, 1
  store i32 %3068, ptr @test_count, align 4, !tbaa !5
  %3069 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %2982, i32 noundef 1) #11
  %3070 = icmp eq i32 %3069, -1
  br i1 %3070, label %3071, label %3095

3071:                                             ; preds = %3066
  %3072 = tail call ptr @__errno_location() #12
  %3073 = load i32, ptr %3072, align 4, !tbaa !5
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = call i32 @s2n_print_stacktrace(ptr noundef %3074) #11
  %3076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3077 = trunc nuw i8 %3076 to i1
  br i1 %3077, label %3078, label %3082

3078:                                             ; preds = %3071
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = call i32 @fileno(ptr noundef %3079) #11
  %3081 = call i32 @isatty(i32 noundef %3080) #11
  %.not649 = icmp eq i32 %3081, 0
  br i1 %.not649, label %3082, label %3083

3082:                                             ; preds = %3078, %3071
  br label %3083

3083:                                             ; preds = %3078, %3082
  %.str.5.sink1959 = phi ptr [ @.str.5, %3082 ], [ @.str.2, %3078 ]
  store i32 %3073, ptr %3072, align 4, !tbaa !5
  %3084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3085 = load i32, ptr @test_count, align 4, !tbaa !5
  %3086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3087 = load i32, ptr %3086, align 4, !tbaa !5
  %3088 = call ptr @s2n_strerror(i32 noundef %3087, ptr noundef nonnull @.str.4) #11
  %3089 = load i32, ptr %3086, align 4, !tbaa !5
  %3090 = call ptr @s2n_strerror_debug(i32 noundef %3089, ptr noundef nonnull @.str.4) #11
  %3091 = load i32, ptr %3072, align 4, !tbaa !5
  %3092 = call ptr @strerror(i32 noundef %3091) #11
  %3093 = load i32, ptr %3072, align 4, !tbaa !5
  %3094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3084, ptr noundef nonnull %.str.5.sink1959, i32 noundef %3085, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %3088, ptr noundef %3090, ptr noundef %3092, i32 noundef %3093) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3095:                                             ; preds = %3066
  %3096 = load i32, ptr @test_count, align 4, !tbaa !5
  %3097 = add nsw i32 %3096, 1
  store i32 %3097, ptr @test_count, align 4, !tbaa !5
  %3098 = call i32 @s2n_config_set_client_auth_type(ptr noundef %201, i32 noundef 1) #11
  %3099 = icmp eq i32 %3098, -1
  br i1 %3099, label %3100, label %3124

3100:                                             ; preds = %3095
  %3101 = tail call ptr @__errno_location() #12
  %3102 = load i32, ptr %3101, align 4, !tbaa !5
  %3103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3104 = call i32 @s2n_print_stacktrace(ptr noundef %3103) #11
  %3105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3106 = trunc nuw i8 %3105 to i1
  br i1 %3106, label %3107, label %3111

3107:                                             ; preds = %3100
  %3108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3109 = call i32 @fileno(ptr noundef %3108) #11
  %3110 = call i32 @isatty(i32 noundef %3109) #11
  %.not648 = icmp eq i32 %3110, 0
  br i1 %.not648, label %3111, label %3112

3111:                                             ; preds = %3107, %3100
  br label %3112

3112:                                             ; preds = %3107, %3111
  %.str.5.sink1970 = phi ptr [ @.str.5, %3111 ], [ @.str.2, %3107 ]
  store i32 %3102, ptr %3101, align 4, !tbaa !5
  %3113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3114 = load i32, ptr @test_count, align 4, !tbaa !5
  %3115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call ptr @s2n_strerror(i32 noundef %3116, ptr noundef nonnull @.str.4) #11
  %3118 = load i32, ptr %3115, align 4, !tbaa !5
  %3119 = call ptr @s2n_strerror_debug(i32 noundef %3118, ptr noundef nonnull @.str.4) #11
  %3120 = load i32, ptr %3101, align 4, !tbaa !5
  %3121 = call ptr @strerror(i32 noundef %3120) #11
  %3122 = load i32, ptr %3101, align 4, !tbaa !5
  %3123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3113, ptr noundef nonnull %.str.5.sink1970, i32 noundef %3114, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %3117, ptr noundef %3119, ptr noundef %3121, i32 noundef %3122) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3124:                                             ; preds = %3095
  %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 = call i32 @s2n_config_disable_x509_verification(ptr noundef %201) #11
  %3128 = icmp eq i32 %3127, -1
  br i1 %3128, label %3134, label %.preheader765

.preheader765:                                    ; preds = %3124
  %3129 = load i16, ptr %551, align 8, !tbaa !24
  %.not801 = icmp eq i16 %3129, 0
  br i1 %.not801, label %._crit_edge793, label %.lr.ph792

.lr.ph792:                                        ; preds = %.preheader765
  %3130 = getelementptr inbounds i8, ptr %551, i64 8
  %3131 = getelementptr inbounds i8, ptr %20, i64 8
  %3132 = getelementptr inbounds i8, ptr %21, i64 8
  %3133 = getelementptr inbounds i8, ptr %2982, i64 96
  br label %3162

3134:                                             ; preds = %3124
  %3135 = tail call ptr @__errno_location() #12
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3138 = call i32 @s2n_print_stacktrace(ptr noundef %3137) #11
  %3139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3140 = trunc nuw i8 %3139 to i1
  br i1 %3140, label %3141, label %3145

3141:                                             ; preds = %3134
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = call i32 @fileno(ptr noundef %3142) #11
  %3144 = call i32 @isatty(i32 noundef %3143) #11
  %.not647 = icmp eq i32 %3144, 0
  br i1 %.not647, label %3145, label %3146

3145:                                             ; preds = %3141, %3134
  br label %3146

3146:                                             ; preds = %3141, %3145
  %.str.5.sink1981 = phi ptr [ @.str.5, %3145 ], [ @.str.2, %3141 ]
  store i32 %3136, ptr %3135, align 4, !tbaa !5
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3148 = load i32, ptr @test_count, align 4, !tbaa !5
  %3149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call ptr @s2n_strerror(i32 noundef %3150, ptr noundef nonnull @.str.4) #11
  %3152 = load i32, ptr %3149, align 4, !tbaa !5
  %3153 = call ptr @s2n_strerror_debug(i32 noundef %3152, ptr noundef nonnull @.str.4) #11
  %3154 = load i32, ptr %3135, align 4, !tbaa !5
  %3155 = call ptr @strerror(i32 noundef %3154) #11
  %3156 = load i32, ptr %3135, align 4, !tbaa !5
  %3157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3147, ptr noundef nonnull %.str.5.sink1981, i32 noundef %3148, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %3151, ptr noundef %3153, ptr noundef %3155, i32 noundef %3156) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge793:                                   ; preds = %3573, %.preheader765
  %3158 = load i32, ptr @test_count, align 4, !tbaa !5
  %3159 = add nsw i32 %3158, 1
  store i32 %3159, ptr @test_count, align 4, !tbaa !5
  %3160 = call i32 @s2n_config_free(ptr noundef nonnull %2982) #11
  %3161 = icmp eq i32 %3160, -1
  br i1 %3161, label %3577, label %3601

3162:                                             ; preds = %.lr.ph792, %3573
  %indvars.iv817 = phi i64 [ 0, %.lr.ph792 ], [ %indvars.iv.next818, %3573 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %21) #11
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(24) %551, i64 24, i1 false)
  store i16 1, ptr %20, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %3163 = load ptr, ptr %3130, align 8, !tbaa !26
  %3164 = getelementptr inbounds ptr, ptr %3163, i64 %indvars.iv817
  %3165 = load ptr, ptr %3164, align 8, !tbaa !9
  store ptr %3165, ptr %22, align 8, !tbaa !9
  %3166 = load i8, ptr %3165, align 8
  %3167 = and i8 %3166, 1
  %.not630 = icmp eq i8 %3167, 0
  br i1 %.not630, label %3573, label %3168

3168:                                             ; preds = %3162
  store ptr %22, ptr %3131, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %21, ptr noundef nonnull align 8 dereferenceable(64) %522, i64 64, i1 false)
  store ptr %20, ptr %3132, align 8, !tbaa !22
  store ptr %21, ptr %3133, align 8, !tbaa !15
  store ptr %21, ptr %521, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %3169 = load i32, ptr @test_count, align 4, !tbaa !5
  %3170 = add nsw i32 %3169, 1
  store i32 %3170, ptr @test_count, align 4, !tbaa !5
  %3171 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %23) #11
  %3172 = icmp eq i32 %3171, -1
  br i1 %3172, label %3173, label %3197

3173:                                             ; preds = %3168
  %3174 = tail call ptr @__errno_location() #12
  %3175 = load i32, ptr %3174, align 4, !tbaa !5
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = call i32 @s2n_print_stacktrace(ptr noundef %3176) #11
  %3178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3179 = trunc nuw i8 %3178 to i1
  br i1 %3179, label %3180, label %3184

3180:                                             ; preds = %3173
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = call i32 @fileno(ptr noundef %3181) #11
  %3183 = call i32 @isatty(i32 noundef %3182) #11
  %.not646 = icmp eq i32 %3183, 0
  br i1 %.not646, label %3184, label %3185

3184:                                             ; preds = %3180, %3173
  br label %3185

3185:                                             ; preds = %3180, %3184
  %.str.5.sink1992 = phi ptr [ @.str.5, %3184 ], [ @.str.2, %3180 ]
  store i32 %3175, ptr %3174, align 4, !tbaa !5
  %3186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3187 = load i32, ptr @test_count, align 4, !tbaa !5
  %3188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3189 = load i32, ptr %3188, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror(i32 noundef %3189, ptr noundef nonnull @.str.4) #11
  %3191 = load i32, ptr %3188, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror_debug(i32 noundef %3191, ptr noundef nonnull @.str.4) #11
  %3193 = load i32, ptr %3174, align 4, !tbaa !5
  %3194 = call ptr @strerror(i32 noundef %3193) #11
  %3195 = load i32, ptr %3174, align 4, !tbaa !5
  %3196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3186, ptr noundef nonnull %.str.5.sink1992, i32 noundef %3187, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %3190, ptr noundef %3192, ptr noundef %3194, i32 noundef %3195) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3197:                                             ; preds = %3168
  %3198 = load i32, ptr @test_count, align 4, !tbaa !5
  %3199 = add nsw i32 %3198, 1
  store i32 %3199, ptr @test_count, align 4, !tbaa !5
  %3200 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %3201 = icmp eq ptr %3200, null
  br i1 %3201, label %3202, label %3226

3202:                                             ; preds = %3197
  %3203 = tail call ptr @__errno_location() #12
  %3204 = load i32, ptr %3203, align 4, !tbaa !5
  %3205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3206 = call i32 @s2n_print_stacktrace(ptr noundef %3205) #11
  %3207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3208 = trunc nuw i8 %3207 to i1
  br i1 %3208, label %3209, label %3213

3209:                                             ; preds = %3202
  %3210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3211 = call i32 @fileno(ptr noundef %3210) #11
  %3212 = call i32 @isatty(i32 noundef %3211) #11
  %.not645 = icmp eq i32 %3212, 0
  br i1 %.not645, label %3213, label %3214

3213:                                             ; preds = %3209, %3202
  br label %3214

3214:                                             ; preds = %3209, %3213
  %.str.5.sink2003 = phi ptr [ @.str.5, %3213 ], [ @.str.2, %3209 ]
  store i32 %3204, ptr %3203, align 4, !tbaa !5
  %3215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3216 = load i32, ptr @test_count, align 4, !tbaa !5
  %3217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3218 = load i32, ptr %3217, align 4, !tbaa !5
  %3219 = call ptr @s2n_strerror(i32 noundef %3218, ptr noundef nonnull @.str.4) #11
  %3220 = load i32, ptr %3217, align 4, !tbaa !5
  %3221 = call ptr @s2n_strerror_debug(i32 noundef %3220, ptr noundef nonnull @.str.4) #11
  %3222 = load i32, ptr %3203, align 4, !tbaa !5
  %3223 = call ptr @strerror(i32 noundef %3222) #11
  %3224 = load i32, ptr %3203, align 4, !tbaa !5
  %3225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3215, ptr noundef nonnull %.str.5.sink2003, i32 noundef %3216, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %3219, ptr noundef %3221, ptr noundef %3223, i32 noundef %3224) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3226:                                             ; preds = %3197
  %3227 = load i32, ptr @test_count, align 4, !tbaa !5
  %3228 = add nsw i32 %3227, 1
  store i32 %3228, ptr @test_count, align 4, !tbaa !5
  %3229 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3200, ptr noundef nonnull %2982) #11
  %3230 = icmp eq i32 %3229, -1
  br i1 %3230, label %3231, label %3255

3231:                                             ; preds = %3226
  %3232 = tail call ptr @__errno_location() #12
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3235 = call i32 @s2n_print_stacktrace(ptr noundef %3234) #11
  %3236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3237 = trunc nuw i8 %3236 to i1
  br i1 %3237, label %3238, label %3242

3238:                                             ; preds = %3231
  %3239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3240 = call i32 @fileno(ptr noundef %3239) #11
  %3241 = call i32 @isatty(i32 noundef %3240) #11
  %.not644 = icmp eq i32 %3241, 0
  br i1 %.not644, label %3242, label %3243

3242:                                             ; preds = %3238, %3231
  br label %3243

3243:                                             ; preds = %3238, %3242
  %.str.5.sink2014 = phi ptr [ @.str.5, %3242 ], [ @.str.2, %3238 ]
  store i32 %3233, ptr %3232, align 4, !tbaa !5
  %3244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3245 = load i32, ptr @test_count, align 4, !tbaa !5
  %3246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3247 = load i32, ptr %3246, align 4, !tbaa !5
  %3248 = call ptr @s2n_strerror(i32 noundef %3247, ptr noundef nonnull @.str.4) #11
  %3249 = load i32, ptr %3246, align 4, !tbaa !5
  %3250 = call ptr @s2n_strerror_debug(i32 noundef %3249, ptr noundef nonnull @.str.4) #11
  %3251 = load i32, ptr %3232, align 4, !tbaa !5
  %3252 = call ptr @strerror(i32 noundef %3251) #11
  %3253 = load i32, ptr %3232, align 4, !tbaa !5
  %3254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3244, ptr noundef nonnull %.str.5.sink2014, i32 noundef %3245, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %3248, ptr noundef %3250, ptr noundef %3252, i32 noundef %3253) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3255:                                             ; preds = %3226
  %3256 = load i32, ptr @test_count, align 4, !tbaa !5
  %3257 = add nsw i32 %3256, 1
  store i32 %3257, ptr @test_count, align 4, !tbaa !5
  %3258 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %3200, i32 noundef 2) #11
  %3259 = icmp eq i32 %3258, -1
  br i1 %3259, label %3260, label %3284

3260:                                             ; preds = %3255
  %3261 = tail call ptr @__errno_location() #12
  %3262 = load i32, ptr %3261, align 4, !tbaa !5
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @s2n_print_stacktrace(ptr noundef %3263) #11
  %3265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3266 = trunc nuw i8 %3265 to i1
  br i1 %3266, label %3267, label %3271

3267:                                             ; preds = %3260
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = call i32 @fileno(ptr noundef %3268) #11
  %3270 = call i32 @isatty(i32 noundef %3269) #11
  %.not643 = icmp eq i32 %3270, 0
  br i1 %.not643, label %3271, label %3272

3271:                                             ; preds = %3267, %3260
  br label %3272

3272:                                             ; preds = %3267, %3271
  %.str.5.sink2025 = phi ptr [ @.str.5, %3271 ], [ @.str.2, %3267 ]
  store i32 %3262, ptr %3261, align 4, !tbaa !5
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3276, ptr noundef nonnull @.str.4) #11
  %3278 = load i32, ptr %3275, align 4, !tbaa !5
  %3279 = call ptr @s2n_strerror_debug(i32 noundef %3278, ptr noundef nonnull @.str.4) #11
  %3280 = load i32, ptr %3261, align 4, !tbaa !5
  %3281 = call ptr @strerror(i32 noundef %3280) #11
  %3282 = load i32, ptr %3261, align 4, !tbaa !5
  %3283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3273, ptr noundef nonnull %.str.5.sink2025, i32 noundef %3274, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3277, ptr noundef %3279, ptr noundef %3281, i32 noundef %3282) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3284:                                             ; preds = %3255
  %3285 = load i32, ptr @test_count, align 4, !tbaa !5
  %3286 = add nsw i32 %3285, 1
  store i32 %3286, ptr @test_count, align 4, !tbaa !5
  %3287 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %3288 = icmp eq ptr %3287, null
  br i1 %3288, label %3289, label %3313

3289:                                             ; preds = %3284
  %3290 = tail call ptr @__errno_location() #12
  %3291 = load i32, ptr %3290, align 4, !tbaa !5
  %3292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3293 = call i32 @s2n_print_stacktrace(ptr noundef %3292) #11
  %3294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3295 = trunc nuw i8 %3294 to i1
  br i1 %3295, label %3296, label %3300

3296:                                             ; preds = %3289
  %3297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3298 = call i32 @fileno(ptr noundef %3297) #11
  %3299 = call i32 @isatty(i32 noundef %3298) #11
  %.not642 = icmp eq i32 %3299, 0
  br i1 %.not642, label %3300, label %3301

3300:                                             ; preds = %3296, %3289
  br label %3301

3301:                                             ; preds = %3296, %3300
  %.str.5.sink2036 = phi ptr [ @.str.5, %3300 ], [ @.str.2, %3296 ]
  store i32 %3291, ptr %3290, align 4, !tbaa !5
  %3302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3303 = load i32, ptr @test_count, align 4, !tbaa !5
  %3304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call ptr @s2n_strerror(i32 noundef %3305, ptr noundef nonnull @.str.4) #11
  %3307 = load i32, ptr %3304, align 4, !tbaa !5
  %3308 = call ptr @s2n_strerror_debug(i32 noundef %3307, ptr noundef nonnull @.str.4) #11
  %3309 = load i32, ptr %3290, align 4, !tbaa !5
  %3310 = call ptr @strerror(i32 noundef %3309) #11
  %3311 = load i32, ptr %3290, align 4, !tbaa !5
  %3312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3302, ptr noundef nonnull %.str.5.sink2036, i32 noundef %3303, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %3306, ptr noundef %3308, ptr noundef %3310, i32 noundef %3311) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3313:                                             ; preds = %3284
  %3314 = load i32, ptr @test_count, align 4, !tbaa !5
  %3315 = add nsw i32 %3314, 1
  store i32 %3315, ptr @test_count, align 4, !tbaa !5
  %3316 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3287, ptr noundef nonnull %201) #11
  %3317 = icmp eq i32 %3316, -1
  br i1 %3317, label %3318, label %3342

3318:                                             ; preds = %3313
  %3319 = tail call ptr @__errno_location() #12
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3322 = call i32 @s2n_print_stacktrace(ptr noundef %3321) #11
  %3323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3324 = trunc nuw i8 %3323 to i1
  br i1 %3324, label %3325, label %3329

3325:                                             ; preds = %3318
  %3326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3327 = call i32 @fileno(ptr noundef %3326) #11
  %3328 = call i32 @isatty(i32 noundef %3327) #11
  %.not641 = icmp eq i32 %3328, 0
  br i1 %.not641, label %3329, label %3330

3329:                                             ; preds = %3325, %3318
  br label %3330

3330:                                             ; preds = %3325, %3329
  %.str.5.sink2047 = phi ptr [ @.str.5, %3329 ], [ @.str.2, %3325 ]
  store i32 %3320, ptr %3319, align 4, !tbaa !5
  %3331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3332 = load i32, ptr @test_count, align 4, !tbaa !5
  %3333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3334 = load i32, ptr %3333, align 4, !tbaa !5
  %3335 = call ptr @s2n_strerror(i32 noundef %3334, ptr noundef nonnull @.str.4) #11
  %3336 = load i32, ptr %3333, align 4, !tbaa !5
  %3337 = call ptr @s2n_strerror_debug(i32 noundef %3336, ptr noundef nonnull @.str.4) #11
  %3338 = load i32, ptr %3319, align 4, !tbaa !5
  %3339 = call ptr @strerror(i32 noundef %3338) #11
  %3340 = load i32, ptr %3319, align 4, !tbaa !5
  %3341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3331, ptr noundef nonnull %.str.5.sink2047, i32 noundef %3332, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %3335, ptr noundef %3337, ptr noundef %3339, i32 noundef %3340) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3342:                                             ; preds = %3313
  %3343 = load i32, ptr @test_count, align 4, !tbaa !5
  %3344 = add nsw i32 %3343, 1
  store i32 %3344, ptr @test_count, align 4, !tbaa !5
  %3345 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %3200, ptr noundef nonnull %3287, ptr noundef nonnull %23) #11
  %3346 = icmp eq i32 %3345, -1
  br i1 %3346, label %3347, label %3371

3347:                                             ; preds = %3342
  %3348 = tail call ptr @__errno_location() #12
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3351 = call i32 @s2n_print_stacktrace(ptr noundef %3350) #11
  %3352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3353 = trunc nuw i8 %3352 to i1
  br i1 %3353, label %3354, label %3358

3354:                                             ; preds = %3347
  %3355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3356 = call i32 @fileno(ptr noundef %3355) #11
  %3357 = call i32 @isatty(i32 noundef %3356) #11
  %.not640 = icmp eq i32 %3357, 0
  br i1 %.not640, label %3358, label %3359

3358:                                             ; preds = %3354, %3347
  br label %3359

3359:                                             ; preds = %3354, %3358
  %.str.5.sink2058 = phi ptr [ @.str.5, %3358 ], [ @.str.2, %3354 ]
  store i32 %3349, ptr %3348, align 4, !tbaa !5
  %3360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3361 = load i32, ptr @test_count, align 4, !tbaa !5
  %3362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  %3364 = call ptr @s2n_strerror(i32 noundef %3363, ptr noundef nonnull @.str.4) #11
  %3365 = load i32, ptr %3362, align 4, !tbaa !5
  %3366 = call ptr @s2n_strerror_debug(i32 noundef %3365, ptr noundef nonnull @.str.4) #11
  %3367 = load i32, ptr %3348, align 4, !tbaa !5
  %3368 = call ptr @strerror(i32 noundef %3367) #11
  %3369 = load i32, ptr %3348, align 4, !tbaa !5
  %3370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3360, ptr noundef nonnull %.str.5.sink2058, i32 noundef %3361, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 379, ptr noundef %3364, ptr noundef %3366, ptr noundef %3368, i32 noundef %3369) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3371:                                             ; preds = %3342
  %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 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %3287, i32 noundef 2) #11
  %3375 = icmp eq i32 %3374, -1
  br i1 %3375, label %3376, label %3400

3376:                                             ; preds = %3371
  %3377 = tail call ptr @__errno_location() #12
  %3378 = load i32, ptr %3377, align 4, !tbaa !5
  %3379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3380 = call i32 @s2n_print_stacktrace(ptr noundef %3379) #11
  %3381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3382 = trunc nuw i8 %3381 to i1
  br i1 %3382, label %3383, label %3387

3383:                                             ; preds = %3376
  %3384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3385 = call i32 @fileno(ptr noundef %3384) #11
  %3386 = call i32 @isatty(i32 noundef %3385) #11
  %.not639 = icmp eq i32 %3386, 0
  br i1 %.not639, label %3387, label %3388

3387:                                             ; preds = %3383, %3376
  br label %3388

3388:                                             ; preds = %3383, %3387
  %.str.5.sink2069 = phi ptr [ @.str.5, %3387 ], [ @.str.2, %3383 ]
  store i32 %3378, ptr %3377, align 4, !tbaa !5
  %3389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3390 = load i32, ptr @test_count, align 4, !tbaa !5
  %3391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  %3393 = call ptr @s2n_strerror(i32 noundef %3392, ptr noundef nonnull @.str.4) #11
  %3394 = load i32, ptr %3391, align 4, !tbaa !5
  %3395 = call ptr @s2n_strerror_debug(i32 noundef %3394, ptr noundef nonnull @.str.4) #11
  %3396 = load i32, ptr %3377, align 4, !tbaa !5
  %3397 = call ptr @strerror(i32 noundef %3396) #11
  %3398 = load i32, ptr %3377, align 4, !tbaa !5
  %3399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3389, ptr noundef nonnull %.str.5.sink2069, i32 noundef %3390, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %3393, ptr noundef %3395, ptr noundef %3397, i32 noundef %3398) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3400:                                             ; preds = %3371
  %3401 = load i32, ptr @test_count, align 4, !tbaa !5
  %3402 = add nsw i32 %3401, 1
  store i32 %3402, ptr @test_count, align 4, !tbaa !5
  %3403 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %3287, ptr noundef nonnull %3200) #11
  %3404 = icmp eq i32 %3403, -1
  br i1 %3404, label %3405, label %3429

3405:                                             ; preds = %3400
  %3406 = tail call ptr @__errno_location() #12
  %3407 = load i32, ptr %3406, align 4, !tbaa !5
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = call i32 @s2n_print_stacktrace(ptr noundef %3408) #11
  %3410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3411 = trunc nuw i8 %3410 to i1
  br i1 %3411, label %3412, label %3416

3412:                                             ; preds = %3405
  %3413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3414 = call i32 @fileno(ptr noundef %3413) #11
  %3415 = call i32 @isatty(i32 noundef %3414) #11
  %.not638 = icmp eq i32 %3415, 0
  br i1 %.not638, label %3416, label %3417

3416:                                             ; preds = %3412, %3405
  br label %3417

3417:                                             ; preds = %3412, %3416
  %.str.5.sink2080 = phi ptr [ @.str.5, %3416 ], [ @.str.2, %3412 ]
  store i32 %3407, ptr %3406, align 4, !tbaa !5
  %3418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3419 = load i32, ptr @test_count, align 4, !tbaa !5
  %3420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3421 = load i32, ptr %3420, align 4, !tbaa !5
  %3422 = call ptr @s2n_strerror(i32 noundef %3421, ptr noundef nonnull @.str.4) #11
  %3423 = load i32, ptr %3420, align 4, !tbaa !5
  %3424 = call ptr @s2n_strerror_debug(i32 noundef %3423, ptr noundef nonnull @.str.4) #11
  %3425 = load i32, ptr %3406, align 4, !tbaa !5
  %3426 = call ptr @strerror(i32 noundef %3425) #11
  %3427 = load i32, ptr %3406, align 4, !tbaa !5
  %3428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3418, ptr noundef nonnull %.str.5.sink2080, i32 noundef %3419, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %3422, ptr noundef %3424, ptr noundef %3426, i32 noundef %3427) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3429:                                             ; preds = %3400
  %3430 = load i32, ptr @test_count, align 4, !tbaa !5
  %3431 = add nsw i32 %3430, 1
  store i32 %3431, ptr @test_count, align 4, !tbaa !5
  %3432 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %3287) #11
  %.not631 = icmp eq i32 %3432, 0
  br i1 %.not631, label %3457, label %3433

3433:                                             ; preds = %3429
  %3434 = tail call ptr @__errno_location() #12
  %3435 = load i32, ptr %3434, align 4, !tbaa !5
  %3436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3437 = call i32 @s2n_print_stacktrace(ptr noundef %3436) #11
  %3438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3439 = trunc nuw i8 %3438 to i1
  br i1 %3439, label %3440, label %3444

3440:                                             ; preds = %3433
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = call i32 @fileno(ptr noundef %3441) #11
  %3443 = call i32 @isatty(i32 noundef %3442) #11
  %.not637 = icmp eq i32 %3443, 0
  br i1 %.not637, label %3444, label %3445

3444:                                             ; preds = %3440, %3433
  br label %3445

3445:                                             ; preds = %3440, %3444
  %.str.5.sink2091 = phi ptr [ @.str.5, %3444 ], [ @.str.2, %3440 ]
  store i32 %3435, ptr %3434, align 4, !tbaa !5
  %3446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3447 = load i32, ptr @test_count, align 4, !tbaa !5
  %3448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3449 = load i32, ptr %3448, align 4, !tbaa !5
  %3450 = call ptr @s2n_strerror(i32 noundef %3449, ptr noundef nonnull @.str.4) #11
  %3451 = load i32, ptr %3448, align 4, !tbaa !5
  %3452 = call ptr @s2n_strerror_debug(i32 noundef %3451, ptr noundef nonnull @.str.4) #11
  %3453 = load i32, ptr %3434, align 4, !tbaa !5
  %3454 = call ptr @strerror(i32 noundef %3453) #11
  %3455 = load i32, ptr %3434, align 4, !tbaa !5
  %3456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3446, ptr noundef nonnull %.str.5.sink2091, i32 noundef %3447, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 388, ptr noundef %3450, ptr noundef %3452, ptr noundef %3454, i32 noundef %3455) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3457:                                             ; preds = %3429
  %3458 = load i32, ptr @test_count, align 4, !tbaa !5
  %3459 = add nsw i32 %3458, 1
  store i32 %3459, ptr @test_count, align 4, !tbaa !5
  %3460 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %3200) #11
  %.not632 = icmp eq i32 %3460, 0
  br i1 %.not632, label %3485, label %3461

3461:                                             ; preds = %3457
  %3462 = tail call ptr @__errno_location() #12
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3465 = call i32 @s2n_print_stacktrace(ptr noundef %3464) #11
  %3466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3467 = trunc nuw i8 %3466 to i1
  br i1 %3467, label %3468, label %3472

3468:                                             ; preds = %3461
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = call i32 @fileno(ptr noundef %3469) #11
  %3471 = call i32 @isatty(i32 noundef %3470) #11
  %.not636 = icmp eq i32 %3471, 0
  br i1 %.not636, label %3472, label %3473

3472:                                             ; preds = %3468, %3461
  br label %3473

3473:                                             ; preds = %3468, %3472
  %.str.5.sink2102 = phi ptr [ @.str.5, %3472 ], [ @.str.2, %3468 ]
  store i32 %3463, ptr %3462, 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 nonnull @.str.4) #11
  %3479 = load i32, ptr %3476, align 4, !tbaa !5
  %3480 = call ptr @s2n_strerror_debug(i32 noundef %3479, ptr noundef nonnull @.str.4) #11
  %3481 = load i32, ptr %3462, align 4, !tbaa !5
  %3482 = call ptr @strerror(i32 noundef %3481) #11
  %3483 = load i32, ptr %3462, align 4, !tbaa !5
  %3484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3474, ptr noundef nonnull %.str.5.sink2102, i32 noundef %3475, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 389, ptr noundef %3478, ptr noundef %3480, ptr noundef %3482, i32 noundef %3483) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3485:                                             ; preds = %3457
  %3486 = load i32, ptr @test_count, align 4, !tbaa !5
  %3487 = add nsw i32 %3486, 1
  store i32 %3487, ptr @test_count, align 4, !tbaa !5
  %3488 = call i32 @s2n_connection_free(ptr noundef nonnull %3200) #11
  %3489 = icmp eq i32 %3488, -1
  br i1 %3489, label %3490, label %3514

3490:                                             ; preds = %3485
  %3491 = tail call ptr @__errno_location() #12
  %3492 = load i32, ptr %3491, align 4, !tbaa !5
  %3493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3494 = call i32 @s2n_print_stacktrace(ptr noundef %3493) #11
  %3495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3496 = trunc nuw i8 %3495 to i1
  br i1 %3496, label %3497, label %3501

3497:                                             ; preds = %3490
  %3498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3499 = call i32 @fileno(ptr noundef %3498) #11
  %3500 = call i32 @isatty(i32 noundef %3499) #11
  %.not635 = icmp eq i32 %3500, 0
  br i1 %.not635, label %3501, label %3502

3501:                                             ; preds = %3497, %3490
  br label %3502

3502:                                             ; preds = %3497, %3501
  %.str.5.sink2113 = phi ptr [ @.str.5, %3501 ], [ @.str.2, %3497 ]
  store i32 %3492, ptr %3491, align 4, !tbaa !5
  %3503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3504 = load i32, ptr @test_count, align 4, !tbaa !5
  %3505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  %3507 = call ptr @s2n_strerror(i32 noundef %3506, ptr noundef nonnull @.str.4) #11
  %3508 = load i32, ptr %3505, align 4, !tbaa !5
  %3509 = call ptr @s2n_strerror_debug(i32 noundef %3508, ptr noundef nonnull @.str.4) #11
  %3510 = load i32, ptr %3491, align 4, !tbaa !5
  %3511 = call ptr @strerror(i32 noundef %3510) #11
  %3512 = load i32, ptr %3491, align 4, !tbaa !5
  %3513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3503, ptr noundef nonnull %.str.5.sink2113, i32 noundef %3504, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %3507, ptr noundef %3509, ptr noundef %3511, i32 noundef %3512) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3514:                                             ; preds = %3485
  %3515 = load i32, ptr @test_count, align 4, !tbaa !5
  %3516 = add nsw i32 %3515, 1
  store i32 %3516, ptr @test_count, align 4, !tbaa !5
  %3517 = call i32 @s2n_connection_free(ptr noundef nonnull %3287) #11
  %3518 = icmp eq i32 %3517, -1
  br i1 %3518, label %3519, label %3543

3519:                                             ; preds = %3514
  %3520 = tail call ptr @__errno_location() #12
  %3521 = load i32, ptr %3520, align 4, !tbaa !5
  %3522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3523 = call i32 @s2n_print_stacktrace(ptr noundef %3522) #11
  %3524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3525 = trunc nuw i8 %3524 to i1
  br i1 %3525, label %3526, label %3530

3526:                                             ; preds = %3519
  %3527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3528 = call i32 @fileno(ptr noundef %3527) #11
  %3529 = call i32 @isatty(i32 noundef %3528) #11
  %.not634 = icmp eq i32 %3529, 0
  br i1 %.not634, label %3530, label %3531

3530:                                             ; preds = %3526, %3519
  br label %3531

3531:                                             ; preds = %3526, %3530
  %.str.5.sink2124 = phi ptr [ @.str.5, %3530 ], [ @.str.2, %3526 ]
  store i32 %3521, ptr %3520, align 4, !tbaa !5
  %3532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3533 = load i32, ptr @test_count, align 4, !tbaa !5
  %3534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  %3536 = call ptr @s2n_strerror(i32 noundef %3535, ptr noundef nonnull @.str.4) #11
  %3537 = load i32, ptr %3534, align 4, !tbaa !5
  %3538 = call ptr @s2n_strerror_debug(i32 noundef %3537, ptr noundef nonnull @.str.4) #11
  %3539 = load i32, ptr %3520, align 4, !tbaa !5
  %3540 = call ptr @strerror(i32 noundef %3539) #11
  %3541 = load i32, ptr %3520, align 4, !tbaa !5
  %3542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3532, ptr noundef nonnull %.str.5.sink2124, i32 noundef %3533, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %3536, ptr noundef %3538, ptr noundef %3540, i32 noundef %3541) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3543:                                             ; preds = %3514
  %3544 = load i32, ptr @test_count, align 4, !tbaa !5
  %3545 = add nsw i32 %3544, 1
  store i32 %3545, ptr @test_count, align 4, !tbaa !5
  %3546 = call i32 @s2n_io_pair_close(ptr noundef nonnull %23) #11
  %3547 = icmp eq i32 %3546, -1
  br i1 %3547, label %3548, label %3572

3548:                                             ; preds = %3543
  %3549 = tail call ptr @__errno_location() #12
  %3550 = load i32, ptr %3549, align 4, !tbaa !5
  %3551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3552 = call i32 @s2n_print_stacktrace(ptr noundef %3551) #11
  %3553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3554 = trunc nuw i8 %3553 to i1
  br i1 %3554, label %3555, label %3559

3555:                                             ; preds = %3548
  %3556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3557 = call i32 @fileno(ptr noundef %3556) #11
  %3558 = call i32 @isatty(i32 noundef %3557) #11
  %.not633 = icmp eq i32 %3558, 0
  br i1 %.not633, label %3559, label %3560

3559:                                             ; preds = %3555, %3548
  br label %3560

3560:                                             ; preds = %3555, %3559
  %.str.5.sink2135 = phi ptr [ @.str.5, %3559 ], [ @.str.2, %3555 ]
  store i32 %3550, ptr %3549, align 4, !tbaa !5
  %3561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3562 = load i32, ptr @test_count, align 4, !tbaa !5
  %3563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @s2n_strerror(i32 noundef %3564, ptr noundef nonnull @.str.4) #11
  %3566 = load i32, ptr %3563, align 4, !tbaa !5
  %3567 = call ptr @s2n_strerror_debug(i32 noundef %3566, ptr noundef nonnull @.str.4) #11
  %3568 = load i32, ptr %3549, align 4, !tbaa !5
  %3569 = call ptr @strerror(i32 noundef %3568) #11
  %3570 = load i32, ptr %3549, align 4, !tbaa !5
  %3571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3561, ptr noundef nonnull %.str.5.sink2135, i32 noundef %3562, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 393, ptr noundef %3565, ptr noundef %3567, ptr noundef %3569, i32 noundef %3570) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3572:                                             ; preds = %3543
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  br label %3573

3573:                                             ; preds = %3162, %3572
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #11
  %indvars.iv.next818 = add nuw nsw i64 %indvars.iv817, 1
  %3574 = load i16, ptr %551, align 8, !tbaa !24
  %3575 = zext i16 %3574 to i64
  %3576 = icmp ult i64 %indvars.iv.next818, %3575
  br i1 %3576, label %3162, label %._crit_edge793, !llvm.loop !32

3577:                                             ; preds = %._crit_edge793
  %3578 = tail call ptr @__errno_location() #12
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = call i32 @s2n_print_stacktrace(ptr noundef %3580) #11
  %3582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3583 = trunc nuw i8 %3582 to i1
  br i1 %3583, label %3584, label %3588

3584:                                             ; preds = %3577
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = call i32 @fileno(ptr noundef %3585) #11
  %3587 = call i32 @isatty(i32 noundef %3586) #11
  %.not629 = icmp eq i32 %3587, 0
  br i1 %.not629, label %3588, label %3589

3588:                                             ; preds = %3584, %3577
  br label %3589

3589:                                             ; preds = %3584, %3588
  %.str.5.sink2146 = phi ptr [ @.str.5, %3588 ], [ @.str.2, %3584 ]
  store i32 %3579, ptr %3578, align 4, !tbaa !5
  %3590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3591 = load i32, ptr @test_count, align 4, !tbaa !5
  %3592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3593 = load i32, ptr %3592, align 4, !tbaa !5
  %3594 = call ptr @s2n_strerror(i32 noundef %3593, ptr noundef nonnull @.str.4) #11
  %3595 = load i32, ptr %3592, align 4, !tbaa !5
  %3596 = call ptr @s2n_strerror_debug(i32 noundef %3595, ptr noundef nonnull @.str.4) #11
  %3597 = load i32, ptr %3578, align 4, !tbaa !5
  %3598 = call ptr @strerror(i32 noundef %3597) #11
  %3599 = load i32, ptr %3578, align 4, !tbaa !5
  %3600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3590, ptr noundef nonnull %.str.5.sink2146, i32 noundef %3591, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 396, ptr noundef %3594, ptr noundef %3596, ptr noundef %3598, i32 noundef %3599) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3601:                                             ; preds = %._crit_edge793
  %3602 = load i32, ptr @test_count, align 4, !tbaa !5
  %3603 = add nsw i32 %3602, 1
  store i32 %3603, ptr @test_count, align 4, !tbaa !5
  %3604 = call ptr @s2n_config_new() #11
  %3605 = icmp eq ptr %3604, null
  br i1 %3605, label %3606, label %3630

3606:                                             ; preds = %3601
  %3607 = tail call ptr @__errno_location() #12
  %3608 = load i32, ptr %3607, align 4, !tbaa !5
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = call i32 @s2n_print_stacktrace(ptr noundef %3609) #11
  %3611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3612 = trunc nuw i8 %3611 to i1
  br i1 %3612, label %3613, label %3617

3613:                                             ; preds = %3606
  %3614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3615 = call i32 @fileno(ptr noundef %3614) #11
  %3616 = call i32 @isatty(i32 noundef %3615) #11
  %.not628 = icmp eq i32 %3616, 0
  br i1 %.not628, label %3617, label %3618

3617:                                             ; preds = %3613, %3606
  br label %3618

3618:                                             ; preds = %3613, %3617
  %.str.5.sink2157 = phi ptr [ @.str.5, %3617 ], [ @.str.2, %3613 ]
  store i32 %3608, ptr %3607, align 4, !tbaa !5
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %3621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call ptr @s2n_strerror(i32 noundef %3622, ptr noundef nonnull @.str.4) #11
  %3624 = load i32, ptr %3621, align 4, !tbaa !5
  %3625 = call ptr @s2n_strerror_debug(i32 noundef %3624, ptr noundef nonnull @.str.4) #11
  %3626 = load i32, ptr %3607, align 4, !tbaa !5
  %3627 = call ptr @strerror(i32 noundef %3626) #11
  %3628 = load i32, ptr %3607, align 4, !tbaa !5
  %3629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3619, ptr noundef nonnull %.str.5.sink2157, i32 noundef %3620, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %3623, ptr noundef %3625, ptr noundef %3627, i32 noundef %3628) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3630:                                             ; preds = %3601
  %3631 = load i32, ptr @test_count, align 4, !tbaa !5
  %3632 = add nsw i32 %3631, 1
  store i32 %3632, ptr @test_count, align 4, !tbaa !5
  %3633 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %3604, ptr noundef nonnull @.str.12) #11
  %3634 = icmp eq i32 %3633, -1
  br i1 %3634, label %3635, label %3659

3635:                                             ; preds = %3630
  %3636 = tail call ptr @__errno_location() #12
  %3637 = load i32, ptr %3636, align 4, !tbaa !5
  %3638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3639 = call i32 @s2n_print_stacktrace(ptr noundef %3638) #11
  %3640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3641 = trunc nuw i8 %3640 to i1
  br i1 %3641, label %3642, label %3646

3642:                                             ; preds = %3635
  %3643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3644 = call i32 @fileno(ptr noundef %3643) #11
  %3645 = call i32 @isatty(i32 noundef %3644) #11
  %.not627 = icmp eq i32 %3645, 0
  br i1 %.not627, label %3646, label %3647

3646:                                             ; preds = %3642, %3635
  br label %3647

3647:                                             ; preds = %3642, %3646
  %.str.5.sink2168 = phi ptr [ @.str.5, %3646 ], [ @.str.2, %3642 ]
  store i32 %3637, ptr %3636, align 4, !tbaa !5
  %3648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3649 = load i32, ptr @test_count, align 4, !tbaa !5
  %3650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3651 = load i32, ptr %3650, align 4, !tbaa !5
  %3652 = call ptr @s2n_strerror(i32 noundef %3651, ptr noundef nonnull @.str.4) #11
  %3653 = load i32, ptr %3650, align 4, !tbaa !5
  %3654 = call ptr @s2n_strerror_debug(i32 noundef %3653, ptr noundef nonnull @.str.4) #11
  %3655 = load i32, ptr %3636, align 4, !tbaa !5
  %3656 = call ptr @strerror(i32 noundef %3655) #11
  %3657 = load i32, ptr %3636, align 4, !tbaa !5
  %3658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3648, ptr noundef nonnull %.str.5.sink2168, i32 noundef %3649, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %3652, ptr noundef %3654, ptr noundef %3656, i32 noundef %3657) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3659:                                             ; preds = %3630
  %3660 = load i32, ptr @test_count, align 4, !tbaa !5
  %3661 = add nsw i32 %3660, 1
  store i32 %3661, ptr @test_count, align 4, !tbaa !5
  %3662 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %3604, ptr noundef nonnull %346) #11
  %3663 = icmp eq i32 %3662, -1
  br i1 %3663, label %3664, label %3688

3664:                                             ; preds = %3659
  %3665 = tail call ptr @__errno_location() #12
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3668 = call i32 @s2n_print_stacktrace(ptr noundef %3667) #11
  %3669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3670 = trunc nuw i8 %3669 to i1
  br i1 %3670, label %3671, label %3675

3671:                                             ; preds = %3664
  %3672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3673 = call i32 @fileno(ptr noundef %3672) #11
  %3674 = call i32 @isatty(i32 noundef %3673) #11
  %.not626 = icmp eq i32 %3674, 0
  br i1 %.not626, label %3675, label %3676

3675:                                             ; preds = %3671, %3664
  br label %3676

3676:                                             ; preds = %3671, %3675
  %.str.5.sink2179 = phi ptr [ @.str.5, %3675 ], [ @.str.2, %3671 ]
  store i32 %3666, ptr %3665, align 4, !tbaa !5
  %3677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3678 = load i32, ptr @test_count, align 4, !tbaa !5
  %3679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3680 = load i32, ptr %3679, align 4, !tbaa !5
  %3681 = call ptr @s2n_strerror(i32 noundef %3680, ptr noundef nonnull @.str.4) #11
  %3682 = load i32, ptr %3679, align 4, !tbaa !5
  %3683 = call ptr @s2n_strerror_debug(i32 noundef %3682, ptr noundef nonnull @.str.4) #11
  %3684 = load i32, ptr %3665, align 4, !tbaa !5
  %3685 = call ptr @strerror(i32 noundef %3684) #11
  %3686 = load i32, ptr %3665, align 4, !tbaa !5
  %3687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3677, ptr noundef nonnull %.str.5.sink2179, i32 noundef %3678, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 406, ptr noundef %3681, ptr noundef %3683, ptr noundef %3685, i32 noundef %3686) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3688:                                             ; preds = %3659
  %3689 = load i32, ptr @test_count, align 4, !tbaa !5
  %3690 = add nsw i32 %3689, 1
  store i32 %3690, ptr @test_count, align 4, !tbaa !5
  %3691 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %3604) #11
  %3692 = icmp eq i32 %3691, -1
  br i1 %3692, label %3693, label %3717

3693:                                             ; preds = %3688
  %3694 = tail call ptr @__errno_location() #12
  %3695 = load i32, ptr %3694, align 4, !tbaa !5
  %3696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3697 = call i32 @s2n_print_stacktrace(ptr noundef %3696) #11
  %3698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3699 = trunc nuw i8 %3698 to i1
  br i1 %3699, label %3700, label %3704

3700:                                             ; preds = %3693
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = call i32 @fileno(ptr noundef %3701) #11
  %3703 = call i32 @isatty(i32 noundef %3702) #11
  %.not625 = icmp eq i32 %3703, 0
  br i1 %.not625, label %3704, label %3705

3704:                                             ; preds = %3700, %3693
  br label %3705

3705:                                             ; preds = %3700, %3704
  %.str.5.sink2190 = phi ptr [ @.str.5, %3704 ], [ @.str.2, %3700 ]
  store i32 %3695, ptr %3694, align 4, !tbaa !5
  %3706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3707 = load i32, ptr @test_count, align 4, !tbaa !5
  %3708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3709 = load i32, ptr %3708, align 4, !tbaa !5
  %3710 = call ptr @s2n_strerror(i32 noundef %3709, ptr noundef nonnull @.str.4) #11
  %3711 = load i32, ptr %3708, align 4, !tbaa !5
  %3712 = call ptr @s2n_strerror_debug(i32 noundef %3711, ptr noundef nonnull @.str.4) #11
  %3713 = load i32, ptr %3694, align 4, !tbaa !5
  %3714 = call ptr @strerror(i32 noundef %3713) #11
  %3715 = load i32, ptr %3694, align 4, !tbaa !5
  %3716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3706, ptr noundef nonnull %.str.5.sink2190, i32 noundef %3707, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %3710, ptr noundef %3712, ptr noundef %3714, i32 noundef %3715) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3717:                                             ; preds = %3688
  %3718 = load i32, ptr @test_count, align 4, !tbaa !5
  %3719 = add nsw i32 %3718, 1
  store i32 %3719, ptr @test_count, align 4, !tbaa !5
  %3720 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %3604, i32 noundef 2) #11
  %3721 = icmp eq i32 %3720, -1
  br i1 %3721, label %3722, label %3746

3722:                                             ; preds = %3717
  %3723 = tail call ptr @__errno_location() #12
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3726 = call i32 @s2n_print_stacktrace(ptr noundef %3725) #11
  %3727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3728 = trunc nuw i8 %3727 to i1
  br i1 %3728, label %3729, label %3733

3729:                                             ; preds = %3722
  %3730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3731 = call i32 @fileno(ptr noundef %3730) #11
  %3732 = call i32 @isatty(i32 noundef %3731) #11
  %.not624 = icmp eq i32 %3732, 0
  br i1 %.not624, label %3733, label %3734

3733:                                             ; preds = %3729, %3722
  br label %3734

3734:                                             ; preds = %3729, %3733
  %.str.5.sink2201 = phi ptr [ @.str.5, %3733 ], [ @.str.2, %3729 ]
  store i32 %3724, ptr %3723, align 4, !tbaa !5
  %3735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3736 = load i32, ptr @test_count, align 4, !tbaa !5
  %3737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  %3739 = call ptr @s2n_strerror(i32 noundef %3738, ptr noundef nonnull @.str.4) #11
  %3740 = load i32, ptr %3737, align 4, !tbaa !5
  %3741 = call ptr @s2n_strerror_debug(i32 noundef %3740, ptr noundef nonnull @.str.4) #11
  %3742 = load i32, ptr %3723, align 4, !tbaa !5
  %3743 = call ptr @strerror(i32 noundef %3742) #11
  %3744 = load i32, ptr %3723, align 4, !tbaa !5
  %3745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3735, ptr noundef nonnull %.str.5.sink2201, i32 noundef %3736, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 408, ptr noundef %3739, ptr noundef %3741, ptr noundef %3743, i32 noundef %3744) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3746:                                             ; preds = %3717
  %3747 = load i32, ptr @test_count, align 4, !tbaa !5
  %3748 = add nsw i32 %3747, 1
  store i32 %3748, ptr @test_count, align 4, !tbaa !5
  %3749 = call i32 @s2n_config_free(ptr noundef %201) #11
  %3750 = icmp eq i32 %3749, -1
  br i1 %3750, label %3751, label %3775

3751:                                             ; preds = %3746
  %3752 = tail call ptr @__errno_location() #12
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  %3754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3755 = call i32 @s2n_print_stacktrace(ptr noundef %3754) #11
  %3756 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3757 = trunc nuw i8 %3756 to i1
  br i1 %3757, label %3758, label %3762

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

3762:                                             ; preds = %3758, %3751
  br label %3763

3763:                                             ; preds = %3758, %3762
  %.str.5.sink2212 = phi ptr [ @.str.5, %3762 ], [ @.str.2, %3758 ]
  store i32 %3753, ptr %3752, align 4, !tbaa !5
  %3764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3765 = load i32, ptr @test_count, align 4, !tbaa !5
  %3766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call ptr @s2n_strerror(i32 noundef %3767, ptr noundef nonnull @.str.4) #11
  %3769 = load i32, ptr %3766, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror_debug(i32 noundef %3769, ptr noundef nonnull @.str.4) #11
  %3771 = load i32, ptr %3752, align 4, !tbaa !5
  %3772 = call ptr @strerror(i32 noundef %3771) #11
  %3773 = load i32, ptr %3752, align 4, !tbaa !5
  %3774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3764, ptr noundef nonnull %.str.5.sink2212, i32 noundef %3765, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 411, ptr noundef %3768, ptr noundef %3770, ptr noundef %3772, i32 noundef %3773) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3775:                                             ; preds = %3746
  %3776 = load i32, ptr @test_count, align 4, !tbaa !5
  %3777 = add nsw i32 %3776, 1
  store i32 %3777, ptr @test_count, align 4, !tbaa !5
  %3778 = call ptr @s2n_config_new() #11
  %3779 = icmp eq ptr %3778, null
  br i1 %3779, label %3780, label %3804

3780:                                             ; preds = %3775
  %3781 = tail call ptr @__errno_location() #12
  %3782 = load i32, ptr %3781, align 4, !tbaa !5
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = call i32 @s2n_print_stacktrace(ptr noundef %3783) #11
  %3785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3786 = trunc nuw i8 %3785 to i1
  br i1 %3786, label %3787, label %3791

3787:                                             ; preds = %3780
  %3788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3789 = call i32 @fileno(ptr noundef %3788) #11
  %3790 = call i32 @isatty(i32 noundef %3789) #11
  %.not622 = icmp eq i32 %3790, 0
  br i1 %.not622, label %3791, label %3792

3791:                                             ; preds = %3787, %3780
  br label %3792

3792:                                             ; preds = %3787, %3791
  %.str.5.sink2223 = phi ptr [ @.str.5, %3791 ], [ @.str.2, %3787 ]
  store i32 %3782, ptr %3781, align 4, !tbaa !5
  %3793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3794 = load i32, ptr @test_count, align 4, !tbaa !5
  %3795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3796 = load i32, ptr %3795, align 4, !tbaa !5
  %3797 = call ptr @s2n_strerror(i32 noundef %3796, ptr noundef nonnull @.str.4) #11
  %3798 = load i32, ptr %3795, align 4, !tbaa !5
  %3799 = call ptr @s2n_strerror_debug(i32 noundef %3798, ptr noundef nonnull @.str.4) #11
  %3800 = load i32, ptr %3781, align 4, !tbaa !5
  %3801 = call ptr @strerror(i32 noundef %3800) #11
  %3802 = load i32, ptr %3781, align 4, !tbaa !5
  %3803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3793, ptr noundef nonnull %.str.5.sink2223, i32 noundef %3794, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 412, ptr noundef %3797, ptr noundef %3799, ptr noundef %3801, i32 noundef %3802) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3804:                                             ; preds = %3775
  %3805 = load i32, ptr @test_count, align 4, !tbaa !5
  %3806 = add nsw i32 %3805, 1
  store i32 %3806, ptr @test_count, align 4, !tbaa !5
  %3807 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %3778, ptr noundef nonnull @.str.12) #11
  %3808 = icmp eq i32 %3807, -1
  br i1 %3808, label %3809, label %3833

3809:                                             ; preds = %3804
  %3810 = tail call ptr @__errno_location() #12
  %3811 = load i32, ptr %3810, align 4, !tbaa !5
  %3812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3813 = call i32 @s2n_print_stacktrace(ptr noundef %3812) #11
  %3814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3815 = trunc nuw i8 %3814 to i1
  br i1 %3815, label %3816, label %3820

3816:                                             ; preds = %3809
  %3817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3818 = call i32 @fileno(ptr noundef %3817) #11
  %3819 = call i32 @isatty(i32 noundef %3818) #11
  %.not621 = icmp eq i32 %3819, 0
  br i1 %.not621, label %3820, label %3821

3820:                                             ; preds = %3816, %3809
  br label %3821

3821:                                             ; preds = %3816, %3820
  %.str.5.sink2234 = phi ptr [ @.str.5, %3820 ], [ @.str.2, %3816 ]
  store i32 %3811, ptr %3810, align 4, !tbaa !5
  %3822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3823 = load i32, ptr @test_count, align 4, !tbaa !5
  %3824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3825 = load i32, ptr %3824, align 4, !tbaa !5
  %3826 = call ptr @s2n_strerror(i32 noundef %3825, ptr noundef nonnull @.str.4) #11
  %3827 = load i32, ptr %3824, align 4, !tbaa !5
  %3828 = call ptr @s2n_strerror_debug(i32 noundef %3827, ptr noundef nonnull @.str.4) #11
  %3829 = load i32, ptr %3810, align 4, !tbaa !5
  %3830 = call ptr @strerror(i32 noundef %3829) #11
  %3831 = load i32, ptr %3810, align 4, !tbaa !5
  %3832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3822, ptr noundef nonnull %.str.5.sink2234, i32 noundef %3823, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %3826, ptr noundef %3828, ptr noundef %3830, i32 noundef %3831) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3833:                                             ; preds = %3804
  %3834 = load i32, ptr @test_count, align 4, !tbaa !5
  %3835 = add nsw i32 %3834, 1
  store i32 %3835, ptr @test_count, align 4, !tbaa !5
  %3836 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.18, ptr noundef nonnull %173, i64 noundef 12000) #11
  %3837 = icmp eq i32 %3836, -1
  br i1 %3837, label %3838, label %3862

3838:                                             ; preds = %3833
  %3839 = tail call ptr @__errno_location() #12
  %3840 = load i32, ptr %3839, align 4, !tbaa !5
  %3841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3842 = call i32 @s2n_print_stacktrace(ptr noundef %3841) #11
  %3843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3844 = trunc nuw i8 %3843 to i1
  br i1 %3844, label %3845, label %3849

3845:                                             ; preds = %3838
  %3846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3847 = call i32 @fileno(ptr noundef %3846) #11
  %3848 = call i32 @isatty(i32 noundef %3847) #11
  %.not620 = icmp eq i32 %3848, 0
  br i1 %.not620, label %3849, label %3850

3849:                                             ; preds = %3845, %3838
  br label %3850

3850:                                             ; preds = %3845, %3849
  %.str.5.sink2245 = phi ptr [ @.str.5, %3849 ], [ @.str.2, %3845 ]
  store i32 %3840, ptr %3839, align 4, !tbaa !5
  %3851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3852 = load i32, ptr @test_count, align 4, !tbaa !5
  %3853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call ptr @s2n_strerror(i32 noundef %3854, ptr noundef nonnull @.str.4) #11
  %3856 = load i32, ptr %3853, align 4, !tbaa !5
  %3857 = call ptr @s2n_strerror_debug(i32 noundef %3856, ptr noundef nonnull @.str.4) #11
  %3858 = load i32, ptr %3839, align 4, !tbaa !5
  %3859 = call ptr @strerror(i32 noundef %3858) #11
  %3860 = load i32, ptr %3839, align 4, !tbaa !5
  %3861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3851, ptr noundef nonnull %.str.5.sink2245, i32 noundef %3852, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %3855, ptr noundef %3857, ptr noundef %3859, i32 noundef %3860) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3862:                                             ; preds = %3833
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = add nsw i32 %3863, 1
  store i32 %3864, ptr @test_count, align 4, !tbaa !5
  %3865 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %3778, ptr noundef nonnull %346) #11
  %3866 = icmp eq i32 %3865, -1
  br i1 %3866, label %3867, label %3891

3867:                                             ; preds = %3862
  %3868 = tail call ptr @__errno_location() #12
  %3869 = load i32, ptr %3868, align 4, !tbaa !5
  %3870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3871 = call i32 @s2n_print_stacktrace(ptr noundef %3870) #11
  %3872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3873 = trunc nuw i8 %3872 to i1
  br i1 %3873, label %3874, label %3878

3874:                                             ; preds = %3867
  %3875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3876 = call i32 @fileno(ptr noundef %3875) #11
  %3877 = call i32 @isatty(i32 noundef %3876) #11
  %.not619 = icmp eq i32 %3877, 0
  br i1 %.not619, label %3878, label %3879

3878:                                             ; preds = %3874, %3867
  br label %3879

3879:                                             ; preds = %3874, %3878
  %.str.5.sink2256 = phi ptr [ @.str.5, %3878 ], [ @.str.2, %3874 ]
  store i32 %3869, ptr %3868, align 4, !tbaa !5
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = load i32, ptr @test_count, align 4, !tbaa !5
  %3882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  %3884 = call ptr @s2n_strerror(i32 noundef %3883, ptr noundef nonnull @.str.4) #11
  %3885 = load i32, ptr %3882, align 4, !tbaa !5
  %3886 = call ptr @s2n_strerror_debug(i32 noundef %3885, ptr noundef nonnull @.str.4) #11
  %3887 = load i32, ptr %3868, align 4, !tbaa !5
  %3888 = call ptr @strerror(i32 noundef %3887) #11
  %3889 = load i32, ptr %3868, align 4, !tbaa !5
  %3890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3880, ptr noundef nonnull %.str.5.sink2256, i32 noundef %3881, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %3884, ptr noundef %3886, ptr noundef %3888, i32 noundef %3889) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3891:                                             ; preds = %3862
  %3892 = load i32, ptr @test_count, align 4, !tbaa !5
  %3893 = add nsw i32 %3892, 1
  store i32 %3893, ptr @test_count, align 4, !tbaa !5
  %3894 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %3778, ptr noundef nonnull %173) #11
  %3895 = icmp eq i32 %3894, -1
  br i1 %3895, label %3896, label %3920

3896:                                             ; preds = %3891
  %3897 = tail call ptr @__errno_location() #12
  %3898 = load i32, ptr %3897, align 4, !tbaa !5
  %3899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3900 = call i32 @s2n_print_stacktrace(ptr noundef %3899) #11
  %3901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3902 = trunc nuw i8 %3901 to i1
  br i1 %3902, label %3903, label %3907

3903:                                             ; preds = %3896
  %3904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3905 = call i32 @fileno(ptr noundef %3904) #11
  %3906 = call i32 @isatty(i32 noundef %3905) #11
  %.not618 = icmp eq i32 %3906, 0
  br i1 %.not618, label %3907, label %3908

3907:                                             ; preds = %3903, %3896
  br label %3908

3908:                                             ; preds = %3903, %3907
  %.str.5.sink2267 = phi ptr [ @.str.5, %3907 ], [ @.str.2, %3903 ]
  store i32 %3898, ptr %3897, align 4, !tbaa !5
  %3909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3910 = load i32, ptr @test_count, align 4, !tbaa !5
  %3911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3912 = load i32, ptr %3911, align 4, !tbaa !5
  %3913 = call ptr @s2n_strerror(i32 noundef %3912, ptr noundef nonnull @.str.4) #11
  %3914 = load i32, ptr %3911, align 4, !tbaa !5
  %3915 = call ptr @s2n_strerror_debug(i32 noundef %3914, ptr noundef nonnull @.str.4) #11
  %3916 = load i32, ptr %3897, align 4, !tbaa !5
  %3917 = call ptr @strerror(i32 noundef %3916) #11
  %3918 = load i32, ptr %3897, align 4, !tbaa !5
  %3919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3909, ptr noundef nonnull %.str.5.sink2267, i32 noundef %3910, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %3913, ptr noundef %3915, ptr noundef %3917, i32 noundef %3918) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3920:                                             ; preds = %3891
  %3921 = load i32, ptr @test_count, align 4, !tbaa !5
  %3922 = add nsw i32 %3921, 1
  store i32 %3922, ptr @test_count, align 4, !tbaa !5
  %3923 = getelementptr inbounds i8, ptr %3778, i64 96
  %3924 = load ptr, ptr %3923, align 8, !tbaa !15
  %3925 = icmp eq ptr %3924, null
  br i1 %3925, label %3926, label %3950

3926:                                             ; preds = %3920
  %3927 = tail call ptr @__errno_location() #12
  %3928 = load i32, ptr %3927, align 4, !tbaa !5
  %3929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3930 = call i32 @s2n_print_stacktrace(ptr noundef %3929) #11
  %3931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3932 = trunc nuw i8 %3931 to i1
  br i1 %3932, label %3933, label %3937

3933:                                             ; preds = %3926
  %3934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3935 = call i32 @fileno(ptr noundef %3934) #11
  %3936 = call i32 @isatty(i32 noundef %3935) #11
  %.not617 = icmp eq i32 %3936, 0
  br i1 %.not617, label %3937, label %3938

3937:                                             ; preds = %3933, %3926
  br label %3938

3938:                                             ; preds = %3933, %3937
  %.str.5.sink2278 = phi ptr [ @.str.5, %3937 ], [ @.str.2, %3933 ]
  store i32 %3928, ptr %3927, align 4, !tbaa !5
  %3939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3940 = load i32, ptr @test_count, align 4, !tbaa !5
  %3941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3942 = load i32, ptr %3941, align 4, !tbaa !5
  %3943 = call ptr @s2n_strerror(i32 noundef %3942, ptr noundef nonnull @.str.4) #11
  %3944 = load i32, ptr %3941, align 4, !tbaa !5
  %3945 = call ptr @s2n_strerror_debug(i32 noundef %3944, ptr noundef nonnull @.str.4) #11
  %3946 = load i32, ptr %3927, align 4, !tbaa !5
  %3947 = call ptr @strerror(i32 noundef %3946) #11
  %3948 = load i32, ptr %3927, align 4, !tbaa !5
  %3949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3939, ptr noundef nonnull %.str.5.sink2278, i32 noundef %3940, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 417, ptr noundef %3943, ptr noundef %3945, ptr noundef %3947, i32 noundef %3948) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3950:                                             ; preds = %3920
  %3951 = add nsw i32 %3921, 2
  store i32 %3951, ptr @test_count, align 4, !tbaa !5
  %3952 = call i32 @s2n_config_set_client_auth_type(ptr noundef nonnull %3778, i32 noundef 2) #11
  %3953 = icmp eq i32 %3952, -1
  br i1 %3953, label %3960, label %.preheader

.preheader:                                       ; preds = %3950
  %3954 = load i16, ptr %551, align 8, !tbaa !24
  %.not802 = icmp eq i16 %3954, 0
  br i1 %.not802, label %._crit_edge796, label %.lr.ph795

.lr.ph795:                                        ; preds = %.preheader
  %3955 = getelementptr inbounds i8, ptr %551, i64 8
  %3956 = getelementptr inbounds i8, ptr %24, i64 8
  %3957 = getelementptr inbounds i8, ptr %25, i64 8
  %3958 = getelementptr inbounds i8, ptr %3604, i64 96
  %3959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  br label %3988

3960:                                             ; preds = %3950
  %3961 = tail call ptr @__errno_location() #12
  %3962 = load i32, ptr %3961, align 4, !tbaa !5
  %3963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3964 = call i32 @s2n_print_stacktrace(ptr noundef %3963) #11
  %3965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3966 = trunc nuw i8 %3965 to i1
  br i1 %3966, label %3967, label %3971

3967:                                             ; preds = %3960
  %3968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3969 = call i32 @fileno(ptr noundef %3968) #11
  %3970 = call i32 @isatty(i32 noundef %3969) #11
  %.not616 = icmp eq i32 %3970, 0
  br i1 %.not616, label %3971, label %3972

3971:                                             ; preds = %3967, %3960
  br label %3972

3972:                                             ; preds = %3967, %3971
  %.str.5.sink2289 = phi ptr [ @.str.5, %3971 ], [ @.str.2, %3967 ]
  store i32 %3962, ptr %3961, align 4, !tbaa !5
  %3973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3974 = load i32, ptr @test_count, align 4, !tbaa !5
  %3975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3976 = load i32, ptr %3975, align 4, !tbaa !5
  %3977 = call ptr @s2n_strerror(i32 noundef %3976, ptr noundef nonnull @.str.4) #11
  %3978 = load i32, ptr %3975, align 4, !tbaa !5
  %3979 = call ptr @s2n_strerror_debug(i32 noundef %3978, ptr noundef nonnull @.str.4) #11
  %3980 = load i32, ptr %3961, align 4, !tbaa !5
  %3981 = call ptr @strerror(i32 noundef %3980) #11
  %3982 = load i32, ptr %3961, align 4, !tbaa !5
  %3983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3973, ptr noundef nonnull %.str.5.sink2289, i32 noundef %3974, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 418, ptr noundef %3977, ptr noundef %3979, ptr noundef %3981, i32 noundef %3982) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge796:                                   ; preds = %4408, %.preheader
  %3984 = load i32, ptr @test_count, align 4, !tbaa !5
  %3985 = add nsw i32 %3984, 1
  store i32 %3985, ptr @test_count, align 4, !tbaa !5
  %3986 = call i32 @s2n_config_free(ptr noundef nonnull %3604) #11
  %3987 = icmp eq i32 %3986, -1
  br i1 %3987, label %4412, label %4436

3988:                                             ; preds = %.lr.ph795, %4408
  %indvars.iv820 = phi i64 [ 0, %.lr.ph795 ], [ %indvars.iv.next821, %4408 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %25) #11
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(24) %551, i64 24, i1 false)
  store i16 1, ptr %24, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #11
  %3989 = load ptr, ptr %3955, align 8, !tbaa !26
  %3990 = getelementptr inbounds ptr, ptr %3989, i64 %indvars.iv820
  %3991 = load ptr, ptr %3990, align 8, !tbaa !9
  store ptr %3991, ptr %26, align 8, !tbaa !9
  %3992 = load i8, ptr %3991, align 8
  %3993 = and i8 %3992, 1
  %.not598 = icmp eq i8 %3993, 0
  br i1 %.not598, label %4408, label %3994

3994:                                             ; preds = %3988
  store ptr %26, ptr %3956, align 8, !tbaa !26
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %25, ptr noundef nonnull align 8 dereferenceable(64) %3924, i64 64, i1 false)
  store ptr %24, ptr %3957, align 8, !tbaa !22
  store ptr %25, ptr %3958, align 8, !tbaa !15
  store ptr %25, ptr %3923, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #11
  %3995 = load i32, ptr @test_count, align 4, !tbaa !5
  %3996 = add nsw i32 %3995, 1
  store i32 %3996, ptr @test_count, align 4, !tbaa !5
  %3997 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %27) #11
  %3998 = icmp eq i32 %3997, -1
  br i1 %3998, label %3999, label %4022

3999:                                             ; preds = %3994
  %4000 = tail call ptr @__errno_location() #12
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  %4002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4003 = call i32 @s2n_print_stacktrace(ptr noundef %4002) #11
  %4004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4005 = trunc nuw i8 %4004 to i1
  br i1 %4005, label %4006, label %4010

4006:                                             ; preds = %3999
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4008 = call i32 @fileno(ptr noundef %4007) #11
  %4009 = call i32 @isatty(i32 noundef %4008) #11
  %.not615 = icmp eq i32 %4009, 0
  br i1 %.not615, label %4010, label %4011

4010:                                             ; preds = %4006, %3999
  br label %4011

4011:                                             ; preds = %4006, %4010
  %.str.5.sink2300 = phi ptr [ @.str.5, %4010 ], [ @.str.2, %4006 ]
  store i32 %4001, ptr %4000, align 4, !tbaa !5
  %4012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4013 = load i32, ptr @test_count, align 4, !tbaa !5
  %4014 = load i32, ptr %3959, align 4, !tbaa !5
  %4015 = call ptr @s2n_strerror(i32 noundef %4014, ptr noundef nonnull @.str.4) #11
  %4016 = load i32, ptr %3959, align 4, !tbaa !5
  %4017 = call ptr @s2n_strerror_debug(i32 noundef %4016, ptr noundef nonnull @.str.4) #11
  %4018 = load i32, ptr %4000, align 4, !tbaa !5
  %4019 = call ptr @strerror(i32 noundef %4018) #11
  %4020 = load i32, ptr %4000, align 4, !tbaa !5
  %4021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4012, ptr noundef nonnull %.str.5.sink2300, i32 noundef %4013, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 447, ptr noundef %4015, ptr noundef %4017, ptr noundef %4019, i32 noundef %4020) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4022:                                             ; preds = %3994
  %4023 = load i32, ptr @test_count, align 4, !tbaa !5
  %4024 = add nsw i32 %4023, 1
  store i32 %4024, ptr @test_count, align 4, !tbaa !5
  %4025 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %4026 = icmp eq ptr %4025, null
  br i1 %4026, label %4027, label %4050

4027:                                             ; preds = %4022
  %4028 = tail call ptr @__errno_location() #12
  %4029 = load i32, ptr %4028, align 4, !tbaa !5
  %4030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4031 = call i32 @s2n_print_stacktrace(ptr noundef %4030) #11
  %4032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4033 = trunc nuw i8 %4032 to i1
  br i1 %4033, label %4034, label %4038

4034:                                             ; preds = %4027
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = call i32 @fileno(ptr noundef %4035) #11
  %4037 = call i32 @isatty(i32 noundef %4036) #11
  %.not614 = icmp eq i32 %4037, 0
  br i1 %.not614, label %4038, label %4039

4038:                                             ; preds = %4034, %4027
  br label %4039

4039:                                             ; preds = %4034, %4038
  %.str.5.sink2309 = phi ptr [ @.str.5, %4038 ], [ @.str.2, %4034 ]
  store i32 %4029, ptr %4028, align 4, !tbaa !5
  %4040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4041 = load i32, ptr @test_count, align 4, !tbaa !5
  %4042 = load i32, ptr %3959, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror(i32 noundef %4042, ptr noundef nonnull @.str.4) #11
  %4044 = load i32, ptr %3959, align 4, !tbaa !5
  %4045 = call ptr @s2n_strerror_debug(i32 noundef %4044, ptr noundef nonnull @.str.4) #11
  %4046 = load i32, ptr %4028, align 4, !tbaa !5
  %4047 = call ptr @strerror(i32 noundef %4046) #11
  %4048 = load i32, ptr %4028, align 4, !tbaa !5
  %4049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4040, ptr noundef nonnull %.str.5.sink2309, i32 noundef %4041, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 449, ptr noundef %4043, ptr noundef %4045, ptr noundef %4047, i32 noundef %4048) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4050:                                             ; preds = %4022
  %4051 = load i32, ptr @test_count, align 4, !tbaa !5
  %4052 = add nsw i32 %4051, 1
  store i32 %4052, ptr @test_count, align 4, !tbaa !5
  %4053 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4025, ptr noundef nonnull %3604) #11
  %4054 = icmp eq i32 %4053, -1
  br i1 %4054, label %4055, label %4078

4055:                                             ; preds = %4050
  %4056 = tail call ptr @__errno_location() #12
  %4057 = load i32, ptr %4056, align 4, !tbaa !5
  %4058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4059 = call i32 @s2n_print_stacktrace(ptr noundef %4058) #11
  %4060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4061 = trunc nuw i8 %4060 to i1
  br i1 %4061, label %4062, label %4066

4062:                                             ; preds = %4055
  %4063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4064 = call i32 @fileno(ptr noundef %4063) #11
  %4065 = call i32 @isatty(i32 noundef %4064) #11
  %.not613 = icmp eq i32 %4065, 0
  br i1 %.not613, label %4066, label %4067

4066:                                             ; preds = %4062, %4055
  br label %4067

4067:                                             ; preds = %4062, %4066
  %.str.5.sink2318 = phi ptr [ @.str.5, %4066 ], [ @.str.2, %4062 ]
  store i32 %4057, ptr %4056, align 4, !tbaa !5
  %4068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4069 = load i32, ptr @test_count, align 4, !tbaa !5
  %4070 = load i32, ptr %3959, align 4, !tbaa !5
  %4071 = call ptr @s2n_strerror(i32 noundef %4070, ptr noundef nonnull @.str.4) #11
  %4072 = load i32, ptr %3959, align 4, !tbaa !5
  %4073 = call ptr @s2n_strerror_debug(i32 noundef %4072, ptr noundef nonnull @.str.4) #11
  %4074 = load i32, ptr %4056, align 4, !tbaa !5
  %4075 = call ptr @strerror(i32 noundef %4074) #11
  %4076 = load i32, ptr %4056, align 4, !tbaa !5
  %4077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4068, ptr noundef nonnull %.str.5.sink2318, i32 noundef %4069, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 450, ptr noundef %4071, ptr noundef %4073, ptr noundef %4075, i32 noundef %4076) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4078:                                             ; preds = %4050
  %4079 = load i32, ptr @test_count, align 4, !tbaa !5
  %4080 = add nsw i32 %4079, 1
  store i32 %4080, ptr @test_count, align 4, !tbaa !5
  %4081 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %4082 = icmp eq ptr %4081, null
  br i1 %4082, label %4083, label %4106

4083:                                             ; preds = %4078
  %4084 = tail call ptr @__errno_location() #12
  %4085 = load i32, ptr %4084, align 4, !tbaa !5
  %4086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4087 = call i32 @s2n_print_stacktrace(ptr noundef %4086) #11
  %4088 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4089 = trunc nuw i8 %4088 to i1
  br i1 %4089, label %4090, label %4094

4090:                                             ; preds = %4083
  %4091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4092 = call i32 @fileno(ptr noundef %4091) #11
  %4093 = call i32 @isatty(i32 noundef %4092) #11
  %.not612 = icmp eq i32 %4093, 0
  br i1 %.not612, label %4094, label %4095

4094:                                             ; preds = %4090, %4083
  br label %4095

4095:                                             ; preds = %4090, %4094
  %.str.5.sink2327 = phi ptr [ @.str.5, %4094 ], [ @.str.2, %4090 ]
  store i32 %4085, ptr %4084, align 4, !tbaa !5
  %4096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4097 = load i32, ptr @test_count, align 4, !tbaa !5
  %4098 = load i32, ptr %3959, align 4, !tbaa !5
  %4099 = call ptr @s2n_strerror(i32 noundef %4098, ptr noundef nonnull @.str.4) #11
  %4100 = load i32, ptr %3959, align 4, !tbaa !5
  %4101 = call ptr @s2n_strerror_debug(i32 noundef %4100, ptr noundef nonnull @.str.4) #11
  %4102 = load i32, ptr %4084, align 4, !tbaa !5
  %4103 = call ptr @strerror(i32 noundef %4102) #11
  %4104 = load i32, ptr %4084, align 4, !tbaa !5
  %4105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4096, ptr noundef nonnull %.str.5.sink2327, i32 noundef %4097, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %4099, ptr noundef %4101, ptr noundef %4103, i32 noundef %4104) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4106:                                             ; preds = %4078
  %4107 = load i32, ptr @test_count, align 4, !tbaa !5
  %4108 = add nsw i32 %4107, 1
  store i32 %4108, ptr @test_count, align 4, !tbaa !5
  %4109 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4081, ptr noundef nonnull %3778) #11
  %4110 = icmp eq i32 %4109, -1
  br i1 %4110, label %4111, label %4134

4111:                                             ; preds = %4106
  %4112 = tail call ptr @__errno_location() #12
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4115 = call i32 @s2n_print_stacktrace(ptr noundef %4114) #11
  %4116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4117 = trunc nuw i8 %4116 to i1
  br i1 %4117, label %4118, label %4122

4118:                                             ; preds = %4111
  %4119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4120 = call i32 @fileno(ptr noundef %4119) #11
  %4121 = call i32 @isatty(i32 noundef %4120) #11
  %.not611 = icmp eq i32 %4121, 0
  br i1 %.not611, label %4122, label %4123

4122:                                             ; preds = %4118, %4111
  br label %4123

4123:                                             ; preds = %4118, %4122
  %.str.5.sink2336 = phi ptr [ @.str.5, %4122 ], [ @.str.2, %4118 ]
  store i32 %4113, ptr %4112, align 4, !tbaa !5
  %4124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4125 = load i32, ptr @test_count, align 4, !tbaa !5
  %4126 = load i32, ptr %3959, align 4, !tbaa !5
  %4127 = call ptr @s2n_strerror(i32 noundef %4126, ptr noundef nonnull @.str.4) #11
  %4128 = load i32, ptr %3959, align 4, !tbaa !5
  %4129 = call ptr @s2n_strerror_debug(i32 noundef %4128, ptr noundef nonnull @.str.4) #11
  %4130 = load i32, ptr %4112, align 4, !tbaa !5
  %4131 = call ptr @strerror(i32 noundef %4130) #11
  %4132 = load i32, ptr %4112, align 4, !tbaa !5
  %4133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4124, ptr noundef nonnull %.str.5.sink2336, i32 noundef %4125, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 453, ptr noundef %4127, ptr noundef %4129, ptr noundef %4131, i32 noundef %4132) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4134:                                             ; preds = %4106
  %4135 = load i32, ptr @test_count, align 4, !tbaa !5
  %4136 = add nsw i32 %4135, 1
  store i32 %4136, ptr @test_count, align 4, !tbaa !5
  %4137 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %4025, ptr noundef nonnull %4081, ptr noundef nonnull %27) #11
  %4138 = icmp eq i32 %4137, -1
  br i1 %4138, label %4139, label %4162

4139:                                             ; preds = %4134
  %4140 = tail call ptr @__errno_location() #12
  %4141 = load i32, ptr %4140, align 4, !tbaa !5
  %4142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4143 = call i32 @s2n_print_stacktrace(ptr noundef %4142) #11
  %4144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4145 = trunc nuw i8 %4144 to i1
  br i1 %4145, label %4146, label %4150

4146:                                             ; preds = %4139
  %4147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4148 = call i32 @fileno(ptr noundef %4147) #11
  %4149 = call i32 @isatty(i32 noundef %4148) #11
  %.not610 = icmp eq i32 %4149, 0
  br i1 %.not610, label %4150, label %4151

4150:                                             ; preds = %4146, %4139
  br label %4151

4151:                                             ; preds = %4146, %4150
  %.str.5.sink2345 = phi ptr [ @.str.5, %4150 ], [ @.str.2, %4146 ]
  store i32 %4141, ptr %4140, align 4, !tbaa !5
  %4152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4153 = load i32, ptr @test_count, align 4, !tbaa !5
  %4154 = load i32, ptr %3959, align 4, !tbaa !5
  %4155 = call ptr @s2n_strerror(i32 noundef %4154, ptr noundef nonnull @.str.4) #11
  %4156 = load i32, ptr %3959, align 4, !tbaa !5
  %4157 = call ptr @s2n_strerror_debug(i32 noundef %4156, ptr noundef nonnull @.str.4) #11
  %4158 = load i32, ptr %4140, align 4, !tbaa !5
  %4159 = call ptr @strerror(i32 noundef %4158) #11
  %4160 = load i32, ptr %4140, align 4, !tbaa !5
  %4161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4152, ptr noundef nonnull %.str.5.sink2345, i32 noundef %4153, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %4155, ptr noundef %4157, ptr noundef %4159, i32 noundef %4160) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4162:                                             ; preds = %4134
  %4163 = load i32, ptr @test_count, align 4, !tbaa !5
  %4164 = add nsw i32 %4163, 1
  store i32 %4164, ptr @test_count, align 4, !tbaa !5
  %4165 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %4081, i32 noundef 1) #11
  %4166 = icmp eq i32 %4165, -1
  br i1 %4166, label %4167, label %4190

4167:                                             ; preds = %4162
  %4168 = tail call ptr @__errno_location() #12
  %4169 = load i32, ptr %4168, align 4, !tbaa !5
  %4170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4171 = call i32 @s2n_print_stacktrace(ptr noundef %4170) #11
  %4172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4173 = trunc nuw i8 %4172 to i1
  br i1 %4173, label %4174, label %4178

4174:                                             ; preds = %4167
  %4175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4176 = call i32 @fileno(ptr noundef %4175) #11
  %4177 = call i32 @isatty(i32 noundef %4176) #11
  %.not609 = icmp eq i32 %4177, 0
  br i1 %.not609, label %4178, label %4179

4178:                                             ; preds = %4174, %4167
  br label %4179

4179:                                             ; preds = %4174, %4178
  %.str.5.sink2354 = phi ptr [ @.str.5, %4178 ], [ @.str.2, %4174 ]
  store i32 %4169, ptr %4168, align 4, !tbaa !5
  %4180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4181 = load i32, ptr @test_count, align 4, !tbaa !5
  %4182 = load i32, ptr %3959, align 4, !tbaa !5
  %4183 = call ptr @s2n_strerror(i32 noundef %4182, ptr noundef nonnull @.str.4) #11
  %4184 = load i32, ptr %3959, align 4, !tbaa !5
  %4185 = call ptr @s2n_strerror_debug(i32 noundef %4184, ptr noundef nonnull @.str.4) #11
  %4186 = load i32, ptr %4168, align 4, !tbaa !5
  %4187 = call ptr @strerror(i32 noundef %4186) #11
  %4188 = load i32, ptr %4168, align 4, !tbaa !5
  %4189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4180, ptr noundef nonnull %.str.5.sink2354, i32 noundef %4181, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 458, ptr noundef %4183, ptr noundef %4185, ptr noundef %4187, i32 noundef %4188) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4190:                                             ; preds = %4162
  %4191 = load i32, ptr @test_count, align 4, !tbaa !5
  %4192 = add nsw i32 %4191, 1
  store i32 %4192, ptr @test_count, align 4, !tbaa !5
  %4193 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %4081, ptr noundef nonnull %4025) #11
  %4194 = icmp eq i32 %4193, -1
  br i1 %4194, label %4218, label %4195

4195:                                             ; preds = %4190
  %4196 = tail call ptr @__errno_location() #12
  %4197 = load i32, ptr %4196, align 4, !tbaa !5
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = call i32 @s2n_print_stacktrace(ptr noundef %4198) #11
  %4200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4201 = trunc nuw i8 %4200 to i1
  br i1 %4201, label %4202, label %4206

4202:                                             ; preds = %4195
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = call i32 @fileno(ptr noundef %4203) #11
  %4205 = call i32 @isatty(i32 noundef %4204) #11
  %.not599 = icmp eq i32 %4205, 0
  br i1 %.not599, label %4206, label %4207

4206:                                             ; preds = %4202, %4195
  br label %4207

4207:                                             ; preds = %4202, %4206
  %.str.5.sink2363 = phi ptr [ @.str.5, %4206 ], [ @.str.2, %4202 ]
  store i32 %4197, ptr %4196, align 4, !tbaa !5
  %4208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4209 = load i32, ptr @test_count, align 4, !tbaa !5
  %4210 = load i32, ptr %3959, align 4, !tbaa !5
  %4211 = call ptr @s2n_strerror(i32 noundef %4210, ptr noundef nonnull @.str.4) #11
  %4212 = load i32, ptr %3959, align 4, !tbaa !5
  %4213 = call ptr @s2n_strerror_debug(i32 noundef %4212, ptr noundef nonnull @.str.4) #11
  %4214 = load i32, ptr %4196, align 4, !tbaa !5
  %4215 = call ptr @strerror(i32 noundef %4214) #11
  %4216 = load i32, ptr %4196, align 4, !tbaa !5
  %4217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4208, ptr noundef nonnull %.str.5.sink2363, i32 noundef %4209, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 459, ptr noundef %4211, ptr noundef %4213, ptr noundef %4215, i32 noundef %4216) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4218:                                             ; preds = %4190
  %4219 = load i32, ptr @test_count, align 4, !tbaa !5
  %4220 = add nsw i32 %4219, 1
  store i32 %4220, ptr @test_count, align 4, !tbaa !5
  %4221 = load i32, ptr %3959, align 4, !tbaa !5
  %4222 = icmp eq i32 %4221, 0
  br i1 %4222, label %4223, label %4246

4223:                                             ; preds = %4218
  %4224 = tail call ptr @__errno_location() #12
  %4225 = load i32, ptr %4224, align 4, !tbaa !5
  %4226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4227 = call i32 @s2n_print_stacktrace(ptr noundef %4226) #11
  %4228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4229 = trunc nuw i8 %4228 to i1
  br i1 %4229, label %4230, label %4234

4230:                                             ; preds = %4223
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = call i32 @fileno(ptr noundef %4231) #11
  %4233 = call i32 @isatty(i32 noundef %4232) #11
  %.not608 = icmp eq i32 %4233, 0
  br i1 %.not608, label %4234, label %4235

4234:                                             ; preds = %4230, %4223
  br label %4235

4235:                                             ; preds = %4230, %4234
  %.str.5.sink2372 = phi ptr [ @.str.5, %4234 ], [ @.str.2, %4230 ]
  store i32 %4225, ptr %4224, align 4, !tbaa !5
  %4236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4237 = load i32, ptr @test_count, align 4, !tbaa !5
  %4238 = load i32, ptr %3959, align 4, !tbaa !5
  %4239 = call ptr @s2n_strerror(i32 noundef %4238, ptr noundef nonnull @.str.4) #11
  %4240 = load i32, ptr %3959, align 4, !tbaa !5
  %4241 = call ptr @s2n_strerror_debug(i32 noundef %4240, ptr noundef nonnull @.str.4) #11
  %4242 = load i32, ptr %4224, align 4, !tbaa !5
  %4243 = call ptr @strerror(i32 noundef %4242) #11
  %4244 = load i32, ptr %4224, align 4, !tbaa !5
  %4245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4236, ptr noundef nonnull %.str.5.sink2372, i32 noundef %4237, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 459, ptr noundef %4239, ptr noundef %4241, ptr noundef %4243, i32 noundef %4244) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4246:                                             ; preds = %4218
  %4247 = add nsw i32 %4219, 2
  store i32 %4247, ptr @test_count, align 4, !tbaa !5
  %4248 = call ptr @s2n_strerror_debug(i32 noundef %4221, ptr noundef nonnull @.str.4) #11
  %4249 = icmp eq ptr %4248, null
  br i1 %4249, label %4250, label %4273

4250:                                             ; preds = %4246
  %4251 = tail call ptr @__errno_location() #12
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4254 = call i32 @s2n_print_stacktrace(ptr noundef %4253) #11
  %4255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4256 = trunc nuw i8 %4255 to i1
  br i1 %4256, label %4257, label %4261

4257:                                             ; preds = %4250
  %4258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4259 = call i32 @fileno(ptr noundef %4258) #11
  %4260 = call i32 @isatty(i32 noundef %4259) #11
  %.not607 = icmp eq i32 %4260, 0
  br i1 %.not607, label %4261, label %4262

4261:                                             ; preds = %4257, %4250
  br label %4262

4262:                                             ; preds = %4257, %4261
  %.str.5.sink2381 = phi ptr [ @.str.5, %4261 ], [ @.str.2, %4257 ]
  store i32 %4252, ptr %4251, align 4, !tbaa !5
  %4263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4264 = load i32, ptr @test_count, align 4, !tbaa !5
  %4265 = load i32, ptr %3959, align 4, !tbaa !5
  %4266 = call ptr @s2n_strerror(i32 noundef %4265, ptr noundef nonnull @.str.4) #11
  %4267 = load i32, ptr %3959, align 4, !tbaa !5
  %4268 = call ptr @s2n_strerror_debug(i32 noundef %4267, ptr noundef nonnull @.str.4) #11
  %4269 = load i32, ptr %4251, align 4, !tbaa !5
  %4270 = call ptr @strerror(i32 noundef %4269) #11
  %4271 = load i32, ptr %4251, align 4, !tbaa !5
  %4272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4263, ptr noundef nonnull %.str.5.sink2381, i32 noundef %4264, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 459, ptr noundef %4266, ptr noundef %4268, ptr noundef %4270, i32 noundef %4271) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4273:                                             ; preds = %4246
  store i32 0, ptr %3959, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %4274 = tail call ptr @__errno_location() #12
  store i32 0, ptr %4274, align 4, !tbaa !5
  %4275 = load i32, ptr @test_count, align 4, !tbaa !5
  %4276 = add nsw i32 %4275, 1
  store i32 %4276, ptr @test_count, align 4, !tbaa !5
  %4277 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %4081) #11
  %.not600 = icmp eq i32 %4277, 0
  br i1 %.not600, label %4300, label %4278

4278:                                             ; preds = %4273
  %4279 = load i32, ptr %4274, align 4, !tbaa !5
  %4280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4281 = call i32 @s2n_print_stacktrace(ptr noundef %4280) #11
  %4282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4283 = trunc nuw i8 %4282 to i1
  br i1 %4283, label %4284, label %4288

4284:                                             ; preds = %4278
  %4285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4286 = call i32 @fileno(ptr noundef %4285) #11
  %4287 = call i32 @isatty(i32 noundef %4286) #11
  %.not606 = icmp eq i32 %4287, 0
  br i1 %.not606, label %4288, label %4289

4288:                                             ; preds = %4284, %4278
  br label %4289

4289:                                             ; preds = %4284, %4288
  %.str.5.sink2390 = phi ptr [ @.str.5, %4288 ], [ @.str.2, %4284 ]
  store i32 %4279, ptr %4274, align 4, !tbaa !5
  %4290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4291 = load i32, ptr @test_count, align 4, !tbaa !5
  %4292 = load i32, ptr %3959, align 4, !tbaa !5
  %4293 = call ptr @s2n_strerror(i32 noundef %4292, ptr noundef nonnull @.str.4) #11
  %4294 = load i32, ptr %3959, align 4, !tbaa !5
  %4295 = call ptr @s2n_strerror_debug(i32 noundef %4294, ptr noundef nonnull @.str.4) #11
  %4296 = load i32, ptr %4274, align 4, !tbaa !5
  %4297 = call ptr @strerror(i32 noundef %4296) #11
  %4298 = load i32, ptr %4274, align 4, !tbaa !5
  %4299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4290, ptr noundef nonnull %.str.5.sink2390, i32 noundef %4291, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 462, ptr noundef %4293, ptr noundef %4295, ptr noundef %4297, i32 noundef %4298) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4300:                                             ; preds = %4273
  %4301 = load i32, ptr @test_count, align 4, !tbaa !5
  %4302 = add nsw i32 %4301, 1
  store i32 %4302, ptr @test_count, align 4, !tbaa !5
  %4303 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %4025) #11
  %.not601 = icmp eq i32 %4303, 0
  br i1 %.not601, label %4326, label %4304

4304:                                             ; preds = %4300
  %4305 = load i32, ptr %4274, align 4, !tbaa !5
  %4306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4307 = call i32 @s2n_print_stacktrace(ptr noundef %4306) #11
  %4308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4309 = trunc nuw i8 %4308 to i1
  br i1 %4309, label %4310, label %4314

4310:                                             ; preds = %4304
  %4311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4312 = call i32 @fileno(ptr noundef %4311) #11
  %4313 = call i32 @isatty(i32 noundef %4312) #11
  %.not605 = icmp eq i32 %4313, 0
  br i1 %.not605, label %4314, label %4315

4314:                                             ; preds = %4310, %4304
  br label %4315

4315:                                             ; preds = %4310, %4314
  %.str.5.sink2399 = phi ptr [ @.str.5, %4314 ], [ @.str.2, %4310 ]
  store i32 %4305, ptr %4274, align 4, !tbaa !5
  %4316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4317 = load i32, ptr @test_count, align 4, !tbaa !5
  %4318 = load i32, ptr %3959, align 4, !tbaa !5
  %4319 = call ptr @s2n_strerror(i32 noundef %4318, ptr noundef nonnull @.str.4) #11
  %4320 = load i32, ptr %3959, align 4, !tbaa !5
  %4321 = call ptr @s2n_strerror_debug(i32 noundef %4320, ptr noundef nonnull @.str.4) #11
  %4322 = load i32, ptr %4274, align 4, !tbaa !5
  %4323 = call ptr @strerror(i32 noundef %4322) #11
  %4324 = load i32, ptr %4274, align 4, !tbaa !5
  %4325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4316, ptr noundef nonnull %.str.5.sink2399, i32 noundef %4317, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 463, ptr noundef %4319, ptr noundef %4321, ptr noundef %4323, i32 noundef %4324) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4326:                                             ; preds = %4300
  %4327 = load i32, ptr @test_count, align 4, !tbaa !5
  %4328 = add nsw i32 %4327, 1
  store i32 %4328, ptr @test_count, align 4, !tbaa !5
  %4329 = call i32 @s2n_connection_free(ptr noundef nonnull %4025) #11
  %4330 = icmp eq i32 %4329, -1
  br i1 %4330, label %4331, label %4353

4331:                                             ; preds = %4326
  %4332 = load i32, ptr %4274, align 4, !tbaa !5
  %4333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4334 = call i32 @s2n_print_stacktrace(ptr noundef %4333) #11
  %4335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4336 = trunc nuw i8 %4335 to i1
  br i1 %4336, label %4337, label %4341

4337:                                             ; preds = %4331
  %4338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4339 = call i32 @fileno(ptr noundef %4338) #11
  %4340 = call i32 @isatty(i32 noundef %4339) #11
  %.not604 = icmp eq i32 %4340, 0
  br i1 %.not604, label %4341, label %4342

4341:                                             ; preds = %4337, %4331
  br label %4342

4342:                                             ; preds = %4337, %4341
  %.str.5.sink2408 = phi ptr [ @.str.5, %4341 ], [ @.str.2, %4337 ]
  store i32 %4332, ptr %4274, align 4, !tbaa !5
  %4343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4344 = load i32, ptr @test_count, align 4, !tbaa !5
  %4345 = load i32, ptr %3959, align 4, !tbaa !5
  %4346 = call ptr @s2n_strerror(i32 noundef %4345, ptr noundef nonnull @.str.4) #11
  %4347 = load i32, ptr %3959, align 4, !tbaa !5
  %4348 = call ptr @s2n_strerror_debug(i32 noundef %4347, ptr noundef nonnull @.str.4) #11
  %4349 = load i32, ptr %4274, align 4, !tbaa !5
  %4350 = call ptr @strerror(i32 noundef %4349) #11
  %4351 = load i32, ptr %4274, align 4, !tbaa !5
  %4352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4343, ptr noundef nonnull %.str.5.sink2408, i32 noundef %4344, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 465, ptr noundef %4346, ptr noundef %4348, ptr noundef %4350, i32 noundef %4351) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4353:                                             ; preds = %4326
  %4354 = load i32, ptr @test_count, align 4, !tbaa !5
  %4355 = add nsw i32 %4354, 1
  store i32 %4355, ptr @test_count, align 4, !tbaa !5
  %4356 = call i32 @s2n_connection_free(ptr noundef nonnull %4081) #11
  %4357 = icmp eq i32 %4356, -1
  br i1 %4357, label %4358, label %4380

4358:                                             ; preds = %4353
  %4359 = load i32, ptr %4274, align 4, !tbaa !5
  %4360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4361 = call i32 @s2n_print_stacktrace(ptr noundef %4360) #11
  %4362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4363 = trunc nuw i8 %4362 to i1
  br i1 %4363, label %4364, label %4368

4364:                                             ; preds = %4358
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = call i32 @fileno(ptr noundef %4365) #11
  %4367 = call i32 @isatty(i32 noundef %4366) #11
  %.not603 = icmp eq i32 %4367, 0
  br i1 %.not603, label %4368, label %4369

4368:                                             ; preds = %4364, %4358
  br label %4369

4369:                                             ; preds = %4364, %4368
  %.str.5.sink2417 = phi ptr [ @.str.5, %4368 ], [ @.str.2, %4364 ]
  store i32 %4359, ptr %4274, align 4, !tbaa !5
  %4370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4371 = load i32, ptr @test_count, align 4, !tbaa !5
  %4372 = load i32, ptr %3959, align 4, !tbaa !5
  %4373 = call ptr @s2n_strerror(i32 noundef %4372, ptr noundef nonnull @.str.4) #11
  %4374 = load i32, ptr %3959, align 4, !tbaa !5
  %4375 = call ptr @s2n_strerror_debug(i32 noundef %4374, ptr noundef nonnull @.str.4) #11
  %4376 = load i32, ptr %4274, align 4, !tbaa !5
  %4377 = call ptr @strerror(i32 noundef %4376) #11
  %4378 = load i32, ptr %4274, align 4, !tbaa !5
  %4379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4370, ptr noundef nonnull %.str.5.sink2417, i32 noundef %4371, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 466, ptr noundef %4373, ptr noundef %4375, ptr noundef %4377, i32 noundef %4378) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4380:                                             ; preds = %4353
  %4381 = load i32, ptr @test_count, align 4, !tbaa !5
  %4382 = add nsw i32 %4381, 1
  store i32 %4382, ptr @test_count, align 4, !tbaa !5
  %4383 = call i32 @s2n_io_pair_close(ptr noundef nonnull %27) #11
  %4384 = icmp eq i32 %4383, -1
  br i1 %4384, label %4385, label %4407

4385:                                             ; preds = %4380
  %4386 = load i32, ptr %4274, align 4, !tbaa !5
  %4387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4388 = call i32 @s2n_print_stacktrace(ptr noundef %4387) #11
  %4389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4390 = trunc nuw i8 %4389 to i1
  br i1 %4390, label %4391, label %4395

4391:                                             ; preds = %4385
  %4392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4393 = call i32 @fileno(ptr noundef %4392) #11
  %4394 = call i32 @isatty(i32 noundef %4393) #11
  %.not602 = icmp eq i32 %4394, 0
  br i1 %.not602, label %4395, label %4396

4395:                                             ; preds = %4391, %4385
  br label %4396

4396:                                             ; preds = %4391, %4395
  %.str.5.sink2426 = phi ptr [ @.str.5, %4395 ], [ @.str.2, %4391 ]
  store i32 %4386, ptr %4274, align 4, !tbaa !5
  %4397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4398 = load i32, ptr @test_count, align 4, !tbaa !5
  %4399 = load i32, ptr %3959, align 4, !tbaa !5
  %4400 = call ptr @s2n_strerror(i32 noundef %4399, ptr noundef nonnull @.str.4) #11
  %4401 = load i32, ptr %3959, align 4, !tbaa !5
  %4402 = call ptr @s2n_strerror_debug(i32 noundef %4401, ptr noundef nonnull @.str.4) #11
  %4403 = load i32, ptr %4274, align 4, !tbaa !5
  %4404 = call ptr @strerror(i32 noundef %4403) #11
  %4405 = load i32, ptr %4274, align 4, !tbaa !5
  %4406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4397, ptr noundef nonnull %.str.5.sink2426, i32 noundef %4398, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 467, ptr noundef %4400, ptr noundef %4402, ptr noundef %4404, i32 noundef %4405) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4407:                                             ; preds = %4380
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  br label %4408

4408:                                             ; preds = %3988, %4407
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #11
  %indvars.iv.next821 = add nuw nsw i64 %indvars.iv820, 1
  %4409 = load i16, ptr %551, align 8, !tbaa !24
  %4410 = zext i16 %4409 to i64
  %4411 = icmp ult i64 %indvars.iv.next821, %4410
  br i1 %4411, label %3988, label %._crit_edge796, !llvm.loop !33

4412:                                             ; preds = %._crit_edge796
  %4413 = tail call ptr @__errno_location() #12
  %4414 = load i32, ptr %4413, align 4, !tbaa !5
  %4415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4416 = call i32 @s2n_print_stacktrace(ptr noundef %4415) #11
  %4417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4418 = trunc nuw i8 %4417 to i1
  br i1 %4418, label %4419, label %4423

4419:                                             ; preds = %4412
  %4420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4421 = call i32 @fileno(ptr noundef %4420) #11
  %4422 = call i32 @isatty(i32 noundef %4421) #11
  %.not597 = icmp eq i32 %4422, 0
  br i1 %.not597, label %4423, label %4424

4423:                                             ; preds = %4419, %4412
  br label %4424

4424:                                             ; preds = %4419, %4423
  %.str.5.sink2435 = phi ptr [ @.str.5, %4423 ], [ @.str.2, %4419 ]
  store i32 %4414, ptr %4413, align 4, !tbaa !5
  %4425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4426 = load i32, ptr @test_count, align 4, !tbaa !5
  %4427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4428 = load i32, ptr %4427, align 4, !tbaa !5
  %4429 = call ptr @s2n_strerror(i32 noundef %4428, ptr noundef nonnull @.str.4) #11
  %4430 = load i32, ptr %4427, align 4, !tbaa !5
  %4431 = call ptr @s2n_strerror_debug(i32 noundef %4430, ptr noundef nonnull @.str.4) #11
  %4432 = load i32, ptr %4413, align 4, !tbaa !5
  %4433 = call ptr @strerror(i32 noundef %4432) #11
  %4434 = load i32, ptr %4413, align 4, !tbaa !5
  %4435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4425, ptr noundef nonnull %.str.5.sink2435, i32 noundef %4426, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 470, ptr noundef %4429, ptr noundef %4431, ptr noundef %4433, i32 noundef %4434) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4436:                                             ; preds = %._crit_edge796
  %4437 = load i32, ptr @test_count, align 4, !tbaa !5
  %4438 = add nsw i32 %4437, 1
  store i32 %4438, ptr @test_count, align 4, !tbaa !5
  %4439 = call i32 @s2n_config_free(ptr noundef nonnull %3778) #11
  %4440 = icmp eq i32 %4439, -1
  br i1 %4440, label %4441, label %4465

4441:                                             ; preds = %4436
  %4442 = tail call ptr @__errno_location() #12
  %4443 = load i32, ptr %4442, align 4, !tbaa !5
  %4444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4445 = call i32 @s2n_print_stacktrace(ptr noundef %4444) #11
  %4446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4447 = trunc nuw i8 %4446 to i1
  br i1 %4447, label %4448, label %4452

4448:                                             ; preds = %4441
  %4449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4450 = call i32 @fileno(ptr noundef %4449) #11
  %4451 = call i32 @isatty(i32 noundef %4450) #11
  %.not596 = icmp eq i32 %4451, 0
  br i1 %.not596, label %4452, label %4453

4452:                                             ; preds = %4448, %4441
  br label %4453

4453:                                             ; preds = %4448, %4452
  %.str.5.sink2446 = phi ptr [ @.str.5, %4452 ], [ @.str.2, %4448 ]
  store i32 %4443, ptr %4442, align 4, !tbaa !5
  %4454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4455 = load i32, ptr @test_count, align 4, !tbaa !5
  %4456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4457 = load i32, ptr %4456, align 4, !tbaa !5
  %4458 = call ptr @s2n_strerror(i32 noundef %4457, ptr noundef nonnull @.str.4) #11
  %4459 = load i32, ptr %4456, align 4, !tbaa !5
  %4460 = call ptr @s2n_strerror_debug(i32 noundef %4459, ptr noundef nonnull @.str.4) #11
  %4461 = load i32, ptr %4442, align 4, !tbaa !5
  %4462 = call ptr @strerror(i32 noundef %4461) #11
  %4463 = load i32, ptr %4442, align 4, !tbaa !5
  %4464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4454, ptr noundef nonnull %.str.5.sink2446, i32 noundef %4455, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %4458, ptr noundef %4460, ptr noundef %4462, i32 noundef %4463) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4465:                                             ; preds = %4436
  %4466 = load i32, ptr @test_count, align 4, !tbaa !5
  %4467 = add nsw i32 %4466, 1
  store i32 %4467, ptr @test_count, align 4, !tbaa !5
  %4468 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %346) #11
  %4469 = icmp eq i32 %4468, -1
  br i1 %4469, label %4470, label %4494

4470:                                             ; preds = %4465
  %4471 = tail call ptr @__errno_location() #12
  %4472 = load i32, ptr %4471, align 4, !tbaa !5
  %4473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4474 = call i32 @s2n_print_stacktrace(ptr noundef %4473) #11
  %4475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4476 = trunc nuw i8 %4475 to i1
  br i1 %4476, label %4477, label %4481

4477:                                             ; preds = %4470
  %4478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4479 = call i32 @fileno(ptr noundef %4478) #11
  %4480 = call i32 @isatty(i32 noundef %4479) #11
  %.not595 = icmp eq i32 %4480, 0
  br i1 %.not595, label %4481, label %4482

4481:                                             ; preds = %4477, %4470
  br label %4482

4482:                                             ; preds = %4477, %4481
  %.str.5.sink2457 = phi ptr [ @.str.5, %4481 ], [ @.str.2, %4477 ]
  store i32 %4472, ptr %4471, align 4, !tbaa !5
  %4483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4484 = load i32, ptr @test_count, align 4, !tbaa !5
  %4485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4486 = load i32, ptr %4485, align 4, !tbaa !5
  %4487 = call ptr @s2n_strerror(i32 noundef %4486, ptr noundef nonnull @.str.4) #11
  %4488 = load i32, ptr %4485, align 4, !tbaa !5
  %4489 = call ptr @s2n_strerror_debug(i32 noundef %4488, ptr noundef nonnull @.str.4) #11
  %4490 = load i32, ptr %4471, align 4, !tbaa !5
  %4491 = call ptr @strerror(i32 noundef %4490) #11
  %4492 = load i32, ptr %4471, align 4, !tbaa !5
  %4493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4483, ptr noundef nonnull %.str.5.sink2457, i32 noundef %4484, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %4487, ptr noundef %4489, ptr noundef %4491, i32 noundef %4492) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4494:                                             ; preds = %4465
  call void @free(ptr noundef %117) #11
  call void @free(ptr noundef %145) #11
  call void @free(ptr noundef %173) #11
  %4495 = call i32 @s2n_cleanup() #11
  %4496 = icmp eq i32 %4495, -1
  br i1 %4496, label %4497, label %4521

4497:                                             ; preds = %4494
  %4498 = tail call ptr @__errno_location() #12
  %4499 = load i32, ptr %4498, align 4, !tbaa !5
  %4500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4501 = call i32 @s2n_print_stacktrace(ptr noundef %4500) #11
  %4502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4503 = trunc nuw i8 %4502 to i1
  br i1 %4503, label %4504, label %4508

4504:                                             ; preds = %4497
  %4505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4506 = call i32 @fileno(ptr noundef %4505) #11
  %4507 = call i32 @isatty(i32 noundef %4506) #11
  %.not594 = icmp eq i32 %4507, 0
  br i1 %.not594, label %4508, label %4509

4508:                                             ; preds = %4504, %4497
  br label %4509

4509:                                             ; preds = %4504, %4508
  %.str.5.sink2468 = phi ptr [ @.str.5, %4508 ], [ @.str.2, %4504 ]
  store i32 %4499, ptr %4498, align 4, !tbaa !5
  %4510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4511 = load i32, ptr @test_count, align 4, !tbaa !5
  %4512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4513 = load i32, ptr %4512, align 4, !tbaa !5
  %4514 = call ptr @s2n_strerror(i32 noundef %4513, ptr noundef nonnull @.str.4) #11
  %4515 = load i32, ptr %4512, align 4, !tbaa !5
  %4516 = call ptr @s2n_strerror_debug(i32 noundef %4515, ptr noundef nonnull @.str.4) #11
  %4517 = load i32, ptr %4498, align 4, !tbaa !5
  %4518 = call ptr @strerror(i32 noundef %4517) #11
  %4519 = load i32, ptr %4498, align 4, !tbaa !5
  %4520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4510, ptr noundef nonnull %.str.5.sink2468, i32 noundef %4511, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %4514, ptr noundef %4516, ptr noundef %4518, i32 noundef %4519) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4521:                                             ; preds = %4494
  %4522 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %4523 = icmp eq i32 %4522, -1
  br i1 %4523, label %4524, label %4548

4524:                                             ; preds = %4521
  %4525 = tail call ptr @__errno_location() #12
  %4526 = load i32, ptr %4525, align 4, !tbaa !5
  %4527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4528 = call i32 @s2n_print_stacktrace(ptr noundef %4527) #11
  %4529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4530 = trunc nuw i8 %4529 to i1
  br i1 %4530, label %4531, label %4535

4531:                                             ; preds = %4524
  %4532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4533 = call i32 @fileno(ptr noundef %4532) #11
  %4534 = call i32 @isatty(i32 noundef %4533) #11
  %.not593 = icmp eq i32 %4534, 0
  br i1 %.not593, label %4535, label %4536

4535:                                             ; preds = %4531, %4524
  br label %4536

4536:                                             ; preds = %4531, %4535
  %.str.5.sink2479 = phi ptr [ @.str.5, %4535 ], [ @.str.2, %4531 ]
  store i32 %4526, ptr %4525, align 4, !tbaa !5
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = load i32, ptr @test_count, align 4, !tbaa !5
  %4539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4540 = load i32, ptr %4539, align 4, !tbaa !5
  %4541 = call ptr @s2n_strerror(i32 noundef %4540, ptr noundef nonnull @.str.4) #11
  %4542 = load i32, ptr %4539, align 4, !tbaa !5
  %4543 = call ptr @s2n_strerror_debug(i32 noundef %4542, ptr noundef nonnull @.str.4) #11
  %4544 = load i32, ptr %4525, align 4, !tbaa !5
  %4545 = call ptr @strerror(i32 noundef %4544) #11
  %4546 = load i32, ptr %4525, align 4, !tbaa !5
  %4547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4537, ptr noundef nonnull %.str.5.sink2479, i32 noundef %4538, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %4541, ptr noundef %4543, ptr noundef %4545, i32 noundef %4546) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4548:                                             ; preds = %4521
  %4549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4550 = trunc nuw i8 %4549 to i1
  br i1 %4550, label %4551, label %4562

4551:                                             ; preds = %4548
  %4552 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4553 = call i32 @fileno(ptr noundef %4552) #11
  %4554 = call i32 @isatty(i32 noundef %4553) #11
  %.not = icmp eq i32 %4554, 0
  br i1 %.not, label %4562, label %4555

4555:                                             ; preds = %4551
  %4556 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not592 = icmp eq i32 %4556, 0
  %4557 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not592, label %4560, label %4558

4558:                                             ; preds = %4555
  %4559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4557, ptr noundef nonnull @.str.68, i32 noundef %4556) #11
  br label %4569

4560:                                             ; preds = %4555
  %4561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4557, ptr noundef nonnull @.str.69) #11
  br label %4569

4562:                                             ; preds = %4551, %4548
  %4563 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not591 = icmp eq i32 %4563, 0
  %4564 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not591, label %4567, label %4565

4565:                                             ; preds = %4562
  %4566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4564, ptr noundef nonnull @.str.70, i32 noundef %4563) #11
  br label %4569

4567:                                             ; preds = %4562
  %4568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4564, ptr noundef nonnull @.str.71) #11
  br label %4569

4569:                                             ; preds = %4565, %4567, %4558, %4560
  %4570 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  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

; 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_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 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_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, 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_disable_x509_verification(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_client_auth_type(ptr noundef, i32 noundef) local_unnamed_addr #3

; 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) #9

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #3

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connections_set_io_pair(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_io_pair_close(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr 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_blinding(ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @s2n_debug_info_reset() local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_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 #10

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: readwrite) }
attributes #10 = { 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 #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }
attributes #15 = { 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 = !{!25, !10, i64 8}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = distinct !{!29, !28}
!30 = distinct !{!30, !28}
!31 = distinct !{!31, !28}
!32 = distinct !{!32, !28}
!33 = distinct !{!33, !28}


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