; LLVM IR from aws/s2n-tls :: tests/unit (s2n_client_key_exchange_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_kex = type { i8, [2 x ptr], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_result = type { i32 }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_test_rsa_client_key_send_ctx = type { i8, i32, i8, i32, i8, i8 }
%struct.s2n_test_async_pkey_cb_ctx = type { i32, i32 }
%struct.s2n_test_io_pair = type { i32, 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 [87 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 [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [201 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [26 x i8], align 1
@s2n_rsa = external constant %struct.s2n_kex, align 8
@s2n_rsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@security_policy_test_all = external constant %struct.s2n_security_policy, align 8
@.str.14 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.43 = 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 i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i64, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %struct.s2n_result, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %struct.s2n_kex, align 8
  %20 = alloca %struct.s2n_cipher_suite, align 8
  %21 = alloca [1 x ptr], align 8
  %22 = alloca %struct.s2n_cipher_preferences, align 8
  %23 = alloca %struct.s2n_security_policy, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i64, align 8
  %33 = alloca %struct.s2n_test_rsa_client_key_send_ctx, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %struct.s2n_test_async_pkey_cb_ctx, align 4
  %39 = alloca ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca %struct.s2n_test_io_pair, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca %struct.s2n_result, align 4
  %49 = alloca i32, align 4
  %50 = alloca %struct.s2n_result, align 4
  %51 = alloca %struct.s2n_result, align 4
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca %struct.s2n_test_rsa_client_key_send_ctx, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca %struct.s2n_test_async_pkey_cb_ctx, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca %struct.s2n_test_io_pair, 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 %struct.s2n_result, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.s2n_result, align 4
  %75 = alloca %struct.s2n_result, align 4
  %76 = alloca i8, align 1
  %77 = alloca %struct.s2n_test_rsa_client_key_send_ctx, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca %struct.s2n_test_async_pkey_cb_ctx, align 4
  %83 = alloca ptr, align 8
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca %struct.s2n_test_io_pair, 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 %struct.s2n_result, align 4
  %97 = alloca i32, align 4
  %98 = alloca %struct.s2n_result, align 4
  %99 = alloca %struct.s2n_result, align 4
  %100 = alloca i32, align 4
  %101 = alloca %struct.s2n_test_rsa_client_key_send_ctx, align 4
  %102 = alloca ptr, align 8
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca %struct.s2n_test_async_pkey_cb_ctx, align 4
  %107 = alloca ptr, align 8
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca %struct.s2n_test_io_pair, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca %struct.s2n_result, align 4
  %121 = alloca i32, align 4
  %122 = alloca %struct.s2n_result, align 4
  %123 = alloca %struct.s2n_result, align 4
  %124 = alloca i32, align 4
  %125 = alloca %struct.s2n_test_rsa_client_key_send_ctx, align 4
  %126 = alloca ptr, align 8
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca %struct.s2n_test_async_pkey_cb_ctx, align 4
  %131 = alloca ptr, align 8
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca %struct.s2n_test_io_pair, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca %struct.s2n_result, align 4
  %144 = alloca i32, align 4
  %145 = alloca %struct.s2n_result, align 4
  %146 = alloca %struct.s2n_result, align 4
  %147 = alloca %struct.s2n_result, align 4
  %148 = alloca %struct.s2n_result, align 4
  %149 = alloca %struct.s2n_result, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %152

152:                                              ; preds = %2
  br label %153

153:                                              ; preds = %152
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %154 = load ptr, ptr @stdout, align 8, !tbaa !9
  %155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %154, ptr noundef @.str, ptr noundef @.str.1) #11
  %156 = load ptr, ptr @stdout, align 8, !tbaa !9
  %157 = call i32 @fflush(ptr noundef %156)
  br label %158

158:                                              ; preds = %153
  %159 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %160 = icmp eq i32 %159, -1
  br i1 %160, label %161, label %212

161:                                              ; preds = %158
  br label %162

162:                                              ; preds = %161
  br label %163

163:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %164 = call ptr @__errno_location() #12
  %165 = load i32, ptr %164, align 4, !tbaa !5
  store i32 %165, ptr %6, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = call i32 @s2n_print_stacktrace(ptr noundef %166)
  %168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %169 = trunc i8 %168 to i1
  br i1 %169, label %170, label %192

170:                                              ; preds = %163
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = call i32 @fileno(ptr noundef %171) #11
  %173 = call i32 @isatty(i32 noundef %172) #11
  %174 = icmp ne i32 %173, 0
  br i1 %174, label %175, label %192

175:                                              ; preds = %170
  %176 = load i32, ptr %6, align 4, !tbaa !5
  %177 = call ptr @__errno_location() #12
  store i32 %176, ptr %177, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call ptr @s2n_strerror(i32 noundef %181, ptr noundef @.str.4)
  %183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = call ptr @s2n_strerror_debug(i32 noundef %184, ptr noundef @.str.4)
  %186 = call ptr @__errno_location() #12
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = call ptr @strerror(i32 noundef %187) #11
  %189 = call ptr @__errno_location() #12
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef @.str.2, i32 noundef %179, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 296, ptr noundef %182, ptr noundef %185, ptr noundef %188, i32 noundef %190) #11
  br label %209

192:                                              ; preds = %170, %163
  %193 = load i32, ptr %6, align 4, !tbaa !5
  %194 = call ptr @__errno_location() #12
  store i32 %193, ptr %194, align 4, !tbaa !5
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = call ptr @s2n_strerror(i32 noundef %198, ptr noundef @.str.4)
  %200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = call ptr @s2n_strerror_debug(i32 noundef %201, ptr noundef @.str.4)
  %203 = call ptr @__errno_location() #12
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = call ptr @strerror(i32 noundef %204) #11
  %206 = call ptr @__errno_location() #12
  %207 = load i32, ptr %206, align 4, !tbaa !5
  %208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef @.str.5, i32 noundef %196, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 296, ptr noundef %199, ptr noundef %202, ptr noundef %205, i32 noundef %207) #11
  br label %209

209:                                              ; preds = %192, %175
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %210

210:                                              ; preds = %209
  call void @exit(i32 noundef 1) #13
  unreachable

211:                                              ; No predecessors!
  br label %212

212:                                              ; preds = %211, %158
  br label %213

213:                                              ; preds = %212
  br label %214

214:                                              ; preds = %213
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %216 = add nsw i32 %215, 1
  store i32 %216, ptr @test_count, align 4, !tbaa !5
  %217 = call i32 @s2n_enable_atexit()
  %218 = icmp eq i32 %217, -1
  br i1 %218, label %219, label %270

219:                                              ; preds = %214
  br label %220

220:                                              ; preds = %219
  br label %221

221:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %222 = call ptr @__errno_location() #12
  %223 = load i32, ptr %222, align 4, !tbaa !5
  store i32 %223, ptr %7, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @s2n_print_stacktrace(ptr noundef %224)
  %226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %227 = trunc i8 %226 to i1
  br i1 %227, label %228, label %250

228:                                              ; preds = %221
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = call i32 @fileno(ptr noundef %229) #11
  %231 = call i32 @isatty(i32 noundef %230) #11
  %232 = icmp ne i32 %231, 0
  br i1 %232, label %233, label %250

233:                                              ; preds = %228
  %234 = load i32, ptr %7, align 4, !tbaa !5
  %235 = call ptr @__errno_location() #12
  store i32 %234, ptr %235, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call ptr @s2n_strerror(i32 noundef %239, ptr noundef @.str.4)
  %241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = call ptr @s2n_strerror_debug(i32 noundef %242, ptr noundef @.str.4)
  %244 = call ptr @__errno_location() #12
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call ptr @strerror(i32 noundef %245) #11
  %247 = call ptr @__errno_location() #12
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef @.str.2, i32 noundef %237, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 296, ptr noundef %240, ptr noundef %243, ptr noundef %246, i32 noundef %248) #11
  br label %267

250:                                              ; preds = %228, %221
  %251 = load i32, ptr %7, align 4, !tbaa !5
  %252 = call ptr @__errno_location() #12
  store i32 %251, ptr %252, align 4, !tbaa !5
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = load i32, ptr @test_count, align 4, !tbaa !5
  %255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror(i32 noundef %256, ptr noundef @.str.4)
  %258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror_debug(i32 noundef %259, ptr noundef @.str.4)
  %261 = call ptr @__errno_location() #12
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = call ptr @strerror(i32 noundef %262) #11
  %264 = call ptr @__errno_location() #12
  %265 = load i32, ptr %264, align 4, !tbaa !5
  %266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %253, ptr noundef @.str.5, i32 noundef %254, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 296, ptr noundef %257, ptr noundef %260, ptr noundef %263, i32 noundef %265) #11
  br label %267

267:                                              ; preds = %250, %233
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %268

268:                                              ; preds = %267
  call void @exit(i32 noundef 1) #13
  unreachable

269:                                              ; No predecessors!
  br label %270

270:                                              ; preds = %269, %214
  br label %271

271:                                              ; preds = %270
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  %274 = call i32 @s2n_init()
  %275 = icmp eq i32 %274, -1
  br i1 %275, label %276, label %327

276:                                              ; preds = %273
  br label %277

277:                                              ; preds = %276
  br label %278

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

285:                                              ; preds = %278
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = call i32 @fileno(ptr noundef %286) #11
  %288 = call i32 @isatty(i32 noundef %287) #11
  %289 = icmp ne i32 %288, 0
  br i1 %289, label %290, label %307

290:                                              ; preds = %285
  %291 = load i32, ptr %8, align 4, !tbaa !5
  %292 = call ptr @__errno_location() #12
  store i32 %291, ptr %292, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @s2n_strerror(i32 noundef %296, ptr noundef @.str.4)
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef @.str.4)
  %301 = call ptr @__errno_location() #12
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @strerror(i32 noundef %302) #11
  %304 = call ptr @__errno_location() #12
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %293, ptr noundef @.str.2, i32 noundef %294, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 296, ptr noundef %297, ptr noundef %300, ptr noundef %303, i32 noundef %305) #11
  br label %324

307:                                              ; preds = %285, %278
  %308 = load i32, ptr %8, align 4, !tbaa !5
  %309 = call ptr @__errno_location() #12
  store i32 %308, ptr %309, align 4, !tbaa !5
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = load i32, ptr @test_count, align 4, !tbaa !5
  %312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror(i32 noundef %313, ptr noundef @.str.4)
  %315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror_debug(i32 noundef %316, ptr noundef @.str.4)
  %318 = call ptr @__errno_location() #12
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call ptr @strerror(i32 noundef %319) #11
  %321 = call ptr @__errno_location() #12
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %310, ptr noundef @.str.5, i32 noundef %311, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 296, ptr noundef %314, ptr noundef %317, ptr noundef %320, i32 noundef %322) #11
  br label %324

324:                                              ; preds = %307, %290
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %325

325:                                              ; preds = %324
  call void @exit(i32 noundef 1) #13
  unreachable

326:                                              ; No predecessors!
  br label %327

327:                                              ; preds = %326, %273
  br label %328

328:                                              ; preds = %327
  br label %329

329:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #11
  store i64 0, ptr %9, align 8, !tbaa !15
  br label %330

330:                                              ; preds = %5435, %329
  %331 = load i64, ptr %9, align 8, !tbaa !15
  %332 = icmp ult i64 %331, 3
  br i1 %332, label %334, label %333

333:                                              ; preds = %330
  store i32 24, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #11
  br label %5438

334:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %335

335:                                              ; preds = %334
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = add nsw i32 %336, 1
  store i32 %337, ptr @test_count, align 4, !tbaa !5
  %338 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %11, ptr noundef @.str.8, ptr noundef @.str.9)
  %339 = icmp eq i32 %338, -1
  br i1 %339, label %340, label %393

340:                                              ; preds = %335
  br label %341

341:                                              ; preds = %340
  br label %342

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  %343 = call ptr @__errno_location() #12
  %344 = load i32, ptr %343, align 4, !tbaa !5
  store i32 %344, ptr %12, align 4, !tbaa !5
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = call i32 @s2n_print_stacktrace(ptr noundef %345)
  %347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %348 = trunc i8 %347 to i1
  br i1 %348, label %349, label %371

349:                                              ; preds = %342
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = call i32 @fileno(ptr noundef %350) #11
  %352 = call i32 @isatty(i32 noundef %351) #11
  %353 = icmp ne i32 %352, 0
  br i1 %353, label %354, label %371

354:                                              ; preds = %349
  %355 = load i32, ptr %12, align 4, !tbaa !5
  %356 = call ptr @__errno_location() #12
  store i32 %355, ptr %356, align 4, !tbaa !5
  %357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %358 = load i32, ptr @test_count, align 4, !tbaa !5
  %359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror(i32 noundef %360, ptr noundef @.str.4)
  %362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call ptr @s2n_strerror_debug(i32 noundef %363, ptr noundef @.str.4)
  %365 = call ptr @__errno_location() #12
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call ptr @strerror(i32 noundef %366) #11
  %368 = call ptr @__errno_location() #12
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %357, ptr noundef @.str.2, i32 noundef %358, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 307, ptr noundef %361, ptr noundef %364, ptr noundef %367, i32 noundef %369) #11
  br label %388

371:                                              ; preds = %349, %342
  %372 = load i32, ptr %12, align 4, !tbaa !5
  %373 = call ptr @__errno_location() #12
  store i32 %372, ptr %373, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror(i32 noundef %377, ptr noundef @.str.4)
  %379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call ptr @s2n_strerror_debug(i32 noundef %380, ptr noundef @.str.4)
  %382 = call ptr @__errno_location() #12
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call ptr @strerror(i32 noundef %383) #11
  %385 = call ptr @__errno_location() #12
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef @.str.5, i32 noundef %375, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 307, ptr noundef %378, ptr noundef %381, ptr noundef %384, i32 noundef %386) #11
  br label %388

388:                                              ; preds = %371, %354
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  call void @exit(i32 noundef 1) #13
  unreachable

391:                                              ; No predecessors!
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392, %335
  br label %394

394:                                              ; preds = %393
  br label %395

395:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  %396 = load ptr, ptr %11, align 8, !tbaa !9
  %397 = call ptr @s2n_cert_chain_and_key_get_private_key(ptr noundef %396)
  store ptr %397, ptr %13, align 8, !tbaa !9
  br label %398

398:                                              ; preds = %395
  %399 = load i32, ptr @test_count, align 4, !tbaa !5
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr @test_count, align 4, !tbaa !5
  %401 = load ptr, ptr %13, align 8, !tbaa !9
  %402 = icmp eq ptr %401, null
  br i1 %402, label %403, label %456

403:                                              ; preds = %398
  br label %404

404:                                              ; preds = %403
  br label %405

405:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %406 = call ptr @__errno_location() #12
  %407 = load i32, ptr %406, align 4, !tbaa !5
  store i32 %407, ptr %14, align 4, !tbaa !5
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = call i32 @s2n_print_stacktrace(ptr noundef %408)
  %410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %411 = trunc i8 %410 to i1
  br i1 %411, label %412, label %434

412:                                              ; preds = %405
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = call i32 @fileno(ptr noundef %413) #11
  %415 = call i32 @isatty(i32 noundef %414) #11
  %416 = icmp ne i32 %415, 0
  br i1 %416, label %417, label %434

417:                                              ; preds = %412
  %418 = load i32, ptr %14, align 4, !tbaa !5
  %419 = call ptr @__errno_location() #12
  store i32 %418, ptr %419, align 4, !tbaa !5
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call ptr @s2n_strerror(i32 noundef %423, ptr noundef @.str.4)
  %425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror_debug(i32 noundef %426, ptr noundef @.str.4)
  %428 = call ptr @__errno_location() #12
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @strerror(i32 noundef %429) #11
  %431 = call ptr @__errno_location() #12
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %420, ptr noundef @.str.2, i32 noundef %421, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 310, ptr noundef %424, ptr noundef %427, ptr noundef %430, i32 noundef %432) #11
  br label %451

434:                                              ; preds = %412, %405
  %435 = load i32, ptr %14, align 4, !tbaa !5
  %436 = call ptr @__errno_location() #12
  store i32 %435, ptr %436, align 4, !tbaa !5
  %437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call ptr @s2n_strerror(i32 noundef %440, ptr noundef @.str.4)
  %442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror_debug(i32 noundef %443, ptr noundef @.str.4)
  %445 = call ptr @__errno_location() #12
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @strerror(i32 noundef %446) #11
  %448 = call ptr @__errno_location() #12
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %437, ptr noundef @.str.5, i32 noundef %438, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 310, ptr noundef %441, ptr noundef %444, ptr noundef %447, i32 noundef %449) #11
  br label %451

451:                                              ; preds = %434, %417
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  call void @exit(i32 noundef 1) #13
  unreachable

454:                                              ; No predecessors!
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455, %398
  br label %457

457:                                              ; preds = %456
  br label %458

458:                                              ; preds = %457
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  store i32 0, ptr %15, align 4, !tbaa !5
  br label %459

459:                                              ; preds = %458
  %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 %13, align 8, !tbaa !9
  %463 = call i32 @s2n_pkey_size(ptr noundef %462, ptr noundef %15)
  %464 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %463, ptr %464, align 4
  %465 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  %466 = load i32, ptr %465, align 4
  %467 = call zeroext i1 @s2n_result_is_ok(i32 %466)
  br i1 %467, label %521, label %468

468:                                              ; preds = %459
  br label %469

469:                                              ; preds = %468
  br label %470

470:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %471 = call ptr @__errno_location() #12
  %472 = load i32, ptr %471, align 4, !tbaa !5
  store i32 %472, ptr %17, align 4, !tbaa !5
  %473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %474 = call i32 @s2n_print_stacktrace(ptr noundef %473)
  %475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %476 = trunc i8 %475 to i1
  br i1 %476, label %477, label %499

477:                                              ; preds = %470
  %478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %479 = call i32 @fileno(ptr noundef %478) #11
  %480 = call i32 @isatty(i32 noundef %479) #11
  %481 = icmp ne i32 %480, 0
  br i1 %481, label %482, label %499

482:                                              ; preds = %477
  %483 = load i32, ptr %17, align 4, !tbaa !5
  %484 = call ptr @__errno_location() #12
  store i32 %483, ptr %484, align 4, !tbaa !5
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror(i32 noundef %488, ptr noundef @.str.4)
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror_debug(i32 noundef %491, ptr noundef @.str.4)
  %493 = call ptr @__errno_location() #12
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @strerror(i32 noundef %494) #11
  %496 = call ptr @__errno_location() #12
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %485, ptr noundef @.str.2, i32 noundef %486, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 312, ptr noundef %489, ptr noundef %492, ptr noundef %495, i32 noundef %497) #11
  br label %516

499:                                              ; preds = %477, %470
  %500 = load i32, ptr %17, align 4, !tbaa !5
  %501 = call ptr @__errno_location() #12
  store i32 %500, ptr %501, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror(i32 noundef %505, ptr noundef @.str.4)
  %507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror_debug(i32 noundef %508, ptr noundef @.str.4)
  %510 = call ptr @__errno_location() #12
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = call ptr @strerror(i32 noundef %511) #11
  %513 = call ptr @__errno_location() #12
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %502, ptr noundef @.str.5, i32 noundef %503, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 312, ptr noundef %506, ptr noundef %509, ptr noundef %512, i32 noundef %514) #11
  br label %516

516:                                              ; preds = %499, %482
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %517

517:                                              ; preds = %516
  br label %518

518:                                              ; preds = %517
  call void @exit(i32 noundef 1) #13
  unreachable

519:                                              ; No predecessors!
  br label %520

520:                                              ; preds = %519
  br label %521

521:                                              ; preds = %520, %459
  br label %522

522:                                              ; preds = %521
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = add nsw i32 %525, 1
  store i32 %526, ptr @test_count, align 4, !tbaa !5
  %527 = load i32, ptr %15, align 4, !tbaa !5
  %528 = icmp ugt i32 %527, 0
  br i1 %528, label %582, label %529

529:                                              ; preds = %524
  br label %530

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %530
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %532 = call ptr @__errno_location() #12
  %533 = load i32, ptr %532, align 4, !tbaa !5
  store i32 %533, ptr %18, align 4, !tbaa !5
  %534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %535 = call i32 @s2n_print_stacktrace(ptr noundef %534)
  %536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %537 = trunc i8 %536 to i1
  br i1 %537, label %538, label %560

538:                                              ; preds = %531
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = call i32 @fileno(ptr noundef %539) #11
  %541 = call i32 @isatty(i32 noundef %540) #11
  %542 = icmp ne i32 %541, 0
  br i1 %542, label %543, label %560

543:                                              ; preds = %538
  %544 = load i32, ptr %18, align 4, !tbaa !5
  %545 = call ptr @__errno_location() #12
  store i32 %544, ptr %545, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror(i32 noundef %549, ptr noundef @.str.4)
  %551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror_debug(i32 noundef %552, ptr noundef @.str.4)
  %554 = call ptr @__errno_location() #12
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call ptr @strerror(i32 noundef %555) #11
  %557 = call ptr @__errno_location() #12
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %546, ptr noundef @.str.2, i32 noundef %547, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 313, ptr noundef %550, ptr noundef %553, ptr noundef %556, i32 noundef %558) #11
  br label %577

560:                                              ; preds = %538, %531
  %561 = load i32, ptr %18, align 4, !tbaa !5
  %562 = call ptr @__errno_location() #12
  store i32 %561, ptr %562, align 4, !tbaa !5
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = call ptr @s2n_strerror(i32 noundef %566, ptr noundef @.str.4)
  %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_debug(i32 noundef %569, ptr noundef @.str.4)
  %571 = call ptr @__errno_location() #12
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @strerror(i32 noundef %572) #11
  %574 = call ptr @__errno_location() #12
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %563, ptr noundef @.str.5, i32 noundef %564, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 313, ptr noundef %567, ptr noundef %570, ptr noundef %573, i32 noundef %575) #11
  br label %577

577:                                              ; preds = %560, %543
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %578

578:                                              ; preds = %577
  br label %579

579:                                              ; preds = %578
  call void @exit(i32 noundef 1) #13
  unreachable

580:                                              ; No predecessors!
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581, %524
  br label %583

583:                                              ; preds = %582
  br label %584

584:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 88, ptr %19) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 @s2n_rsa, i64 88, i1 false), !tbaa.struct !17
  %585 = getelementptr inbounds %struct.s2n_kex, ptr %19, i32 0, i32 8
  store ptr @s2n_test_rsa_client_key_send, ptr %585, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 104, ptr %20) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %20, ptr align 8 @s2n_rsa_with_aes_128_gcm_sha256, i64 104, i1 false), !tbaa.struct !21
  %586 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %20, i32 0, i32 4
  store ptr %19, ptr %586, align 8, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #11
  store ptr %20, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #11
  %587 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %22, i32 0, i32 0
  store i16 1, ptr %587, align 8, !tbaa !24
  %588 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %22, i32 0, i32 1
  %589 = getelementptr inbounds [1 x ptr], ptr %21, i64 0, i64 0
  store ptr %589, ptr %588, align 8, !tbaa !27
  %590 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %22, i32 0, i32 2
  store i8 0, ptr %590, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 64, ptr %23) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %23, ptr align 8 @security_policy_test_all, i64 64, i1 false), !tbaa.struct !29
  %591 = getelementptr inbounds %struct.s2n_security_policy, ptr %23, i32 0, i32 1
  store ptr %22, ptr %591, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #11
  %592 = call ptr @s2n_config_new()
  store ptr %592, ptr %24, align 8, !tbaa !9
  br label %593

593:                                              ; preds = %584
  %594 = load i32, ptr @test_count, align 4, !tbaa !5
  %595 = add nsw i32 %594, 1
  store i32 %595, ptr @test_count, align 4, !tbaa !5
  %596 = load ptr, ptr %24, align 8, !tbaa !9
  %597 = icmp eq ptr %596, null
  br i1 %597, label %598, label %651

598:                                              ; preds = %593
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %601 = call ptr @__errno_location() #12
  %602 = load i32, ptr %601, align 4, !tbaa !5
  store i32 %602, ptr %25, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = call i32 @s2n_print_stacktrace(ptr noundef %603)
  %605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %606 = trunc i8 %605 to i1
  br i1 %606, label %607, label %629

607:                                              ; preds = %600
  %608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %609 = call i32 @fileno(ptr noundef %608) #11
  %610 = call i32 @isatty(i32 noundef %609) #11
  %611 = icmp ne i32 %610, 0
  br i1 %611, label %612, label %629

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

629:                                              ; preds = %607, %600
  %630 = load i32, ptr %25, align 4, !tbaa !5
  %631 = call ptr @__errno_location() #12
  store i32 %630, ptr %631, align 4, !tbaa !5
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @s2n_strerror(i32 noundef %635, ptr noundef @.str.4)
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror_debug(i32 noundef %638, ptr noundef @.str.4)
  %640 = call ptr @__errno_location() #12
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @strerror(i32 noundef %641) #11
  %643 = call ptr @__errno_location() #12
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %632, ptr noundef @.str.5, i32 noundef %633, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 330, ptr noundef %636, ptr noundef %639, ptr noundef %642, i32 noundef %644) #11
  br label %646

646:                                              ; preds = %629, %612
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  call void @exit(i32 noundef 1) #13
  unreachable

649:                                              ; No predecessors!
  br label %650

650:                                              ; preds = %649
  br label %651

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

652:                                              ; preds = %651
  br label %653

653:                                              ; preds = %652
  br label %654

654:                                              ; preds = %653
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = add nsw i32 %655, 1
  store i32 %656, ptr @test_count, align 4, !tbaa !5
  %657 = load ptr, ptr %24, align 8, !tbaa !9
  %658 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %657)
  %659 = icmp eq i32 %658, -1
  br i1 %659, label %660, label %713

660:                                              ; preds = %654
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %663 = call ptr @__errno_location() #12
  %664 = load i32, ptr %663, align 4, !tbaa !5
  store i32 %664, ptr %26, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = call i32 @s2n_print_stacktrace(ptr noundef %665)
  %667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %668 = trunc i8 %667 to i1
  br i1 %668, label %669, label %691

669:                                              ; preds = %662
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @fileno(ptr noundef %670) #11
  %672 = call i32 @isatty(i32 noundef %671) #11
  %673 = icmp ne i32 %672, 0
  br i1 %673, label %674, label %691

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

691:                                              ; preds = %669, %662
  %692 = load i32, ptr %26, align 4, !tbaa !5
  %693 = call ptr @__errno_location() #12
  store i32 %692, ptr %693, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror(i32 noundef %697, ptr noundef @.str.4)
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror_debug(i32 noundef %700, ptr noundef @.str.4)
  %702 = call ptr @__errno_location() #12
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @strerror(i32 noundef %703) #11
  %705 = call ptr @__errno_location() #12
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef @.str.5, i32 noundef %695, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 331, ptr noundef %698, ptr noundef %701, ptr noundef %704, i32 noundef %706) #11
  br label %708

708:                                              ; preds = %691, %674
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  call void @exit(i32 noundef 1) #13
  unreachable

711:                                              ; No predecessors!
  br label %712

712:                                              ; preds = %711
  br label %713

713:                                              ; preds = %712, %654
  br label %714

714:                                              ; preds = %713
  br label %715

715:                                              ; preds = %714
  %716 = load ptr, ptr %24, align 8, !tbaa !9
  %717 = getelementptr inbounds %struct.s2n_config, ptr %716, i32 0, i32 7
  store ptr %23, ptr %717, align 8, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #11
  %718 = call ptr @s2n_config_new()
  store ptr %718, ptr %27, align 8, !tbaa !9
  br label %719

719:                                              ; preds = %715
  %720 = load i32, ptr @test_count, align 4, !tbaa !5
  %721 = add nsw i32 %720, 1
  store i32 %721, ptr @test_count, align 4, !tbaa !5
  %722 = load ptr, ptr %27, align 8, !tbaa !9
  %723 = icmp eq ptr %722, null
  br i1 %723, label %724, label %777

724:                                              ; preds = %719
  br label %725

725:                                              ; preds = %724
  br label %726

726:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %727 = call ptr @__errno_location() #12
  %728 = load i32, ptr %727, align 4, !tbaa !5
  store i32 %728, ptr %28, align 4, !tbaa !5
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = call i32 @s2n_print_stacktrace(ptr noundef %729)
  %731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %732 = trunc i8 %731 to i1
  br i1 %732, label %733, label %755

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
  %737 = icmp ne i32 %736, 0
  br i1 %737, label %738, label %755

738:                                              ; preds = %733
  %739 = load i32, ptr %28, align 4, !tbaa !5
  %740 = call ptr @__errno_location() #12
  store i32 %739, ptr %740, align 4, !tbaa !5
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = load i32, ptr @test_count, align 4, !tbaa !5
  %743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror(i32 noundef %744, ptr noundef @.str.4)
  %746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %747 = load i32, ptr %746, align 4, !tbaa !5
  %748 = call ptr @s2n_strerror_debug(i32 noundef %747, ptr noundef @.str.4)
  %749 = call ptr @__errno_location() #12
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call ptr @strerror(i32 noundef %750) #11
  %752 = call ptr @__errno_location() #12
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %741, ptr noundef @.str.2, i32 noundef %742, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 335, ptr noundef %745, ptr noundef %748, ptr noundef %751, i32 noundef %753) #11
  br label %772

755:                                              ; preds = %733, %726
  %756 = load i32, ptr %28, align 4, !tbaa !5
  %757 = call ptr @__errno_location() #12
  store i32 %756, ptr %757, align 4, !tbaa !5
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %761, ptr noundef @.str.4)
  %763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror_debug(i32 noundef %764, ptr noundef @.str.4)
  %766 = call ptr @__errno_location() #12
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call ptr @strerror(i32 noundef %767) #11
  %769 = call ptr @__errno_location() #12
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %758, ptr noundef @.str.5, i32 noundef %759, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 335, ptr noundef %762, ptr noundef %765, ptr noundef %768, i32 noundef %770) #11
  br label %772

772:                                              ; preds = %755, %738
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %773

773:                                              ; preds = %772
  br label %774

774:                                              ; preds = %773
  call void @exit(i32 noundef 1) #13
  unreachable

775:                                              ; No predecessors!
  br label %776

776:                                              ; preds = %775
  br label %777

777:                                              ; preds = %776, %719
  br label %778

778:                                              ; preds = %777
  br label %779

779:                                              ; preds = %778
  br label %780

780:                                              ; preds = %779
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = add nsw i32 %781, 1
  store i32 %782, ptr @test_count, align 4, !tbaa !5
  %783 = load ptr, ptr %27, align 8, !tbaa !9
  %784 = load ptr, ptr %11, align 8, !tbaa !9
  %785 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %783, ptr noundef %784)
  %786 = icmp eq i32 %785, -1
  br i1 %786, label %787, label %840

787:                                              ; preds = %780
  br label %788

788:                                              ; preds = %787
  br label %789

789:                                              ; preds = %788
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %790 = call ptr @__errno_location() #12
  %791 = load i32, ptr %790, align 4, !tbaa !5
  store i32 %791, ptr %29, align 4, !tbaa !5
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = call i32 @s2n_print_stacktrace(ptr noundef %792)
  %794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %795 = trunc i8 %794 to i1
  br i1 %795, label %796, label %818

796:                                              ; preds = %789
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = call i32 @fileno(ptr noundef %797) #11
  %799 = call i32 @isatty(i32 noundef %798) #11
  %800 = icmp ne i32 %799, 0
  br i1 %800, label %801, label %818

801:                                              ; preds = %796
  %802 = load i32, ptr %29, align 4, !tbaa !5
  %803 = call ptr @__errno_location() #12
  store i32 %802, ptr %803, align 4, !tbaa !5
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = load i32, ptr @test_count, align 4, !tbaa !5
  %806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror(i32 noundef %807, ptr noundef @.str.4)
  %809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror_debug(i32 noundef %810, ptr noundef @.str.4)
  %812 = call ptr @__errno_location() #12
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call ptr @strerror(i32 noundef %813) #11
  %815 = call ptr @__errno_location() #12
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %804, ptr noundef @.str.2, i32 noundef %805, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 336, ptr noundef %808, ptr noundef %811, ptr noundef %814, i32 noundef %816) #11
  br label %835

818:                                              ; preds = %796, %789
  %819 = load i32, ptr %29, align 4, !tbaa !5
  %820 = call ptr @__errno_location() #12
  store i32 %819, ptr %820, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror(i32 noundef %824, ptr noundef @.str.4)
  %826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror_debug(i32 noundef %827, ptr noundef @.str.4)
  %829 = call ptr @__errno_location() #12
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = call ptr @strerror(i32 noundef %830) #11
  %832 = call ptr @__errno_location() #12
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %821, ptr noundef @.str.5, i32 noundef %822, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 336, ptr noundef %825, ptr noundef %828, ptr noundef %831, i32 noundef %833) #11
  br label %835

835:                                              ; preds = %818, %801
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %836

836:                                              ; preds = %835
  br label %837

837:                                              ; preds = %836
  call void @exit(i32 noundef 1) #13
  unreachable

838:                                              ; No predecessors!
  br label %839

839:                                              ; preds = %838
  br label %840

840:                                              ; preds = %839, %780
  br label %841

841:                                              ; preds = %840
  br label %842

842:                                              ; preds = %841
  %843 = load ptr, ptr %27, align 8, !tbaa !9
  %844 = getelementptr inbounds %struct.s2n_config, ptr %843, i32 0, i32 7
  store ptr %23, ptr %844, align 8, !tbaa !32
  %845 = load i64, ptr %9, align 8, !tbaa !15
  %846 = icmp eq i64 %845, 1
  br i1 %846, label %847, label %910

847:                                              ; preds = %842
  br label %848

848:                                              ; preds = %847
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = add nsw i32 %849, 1
  store i32 %850, ptr @test_count, align 4, !tbaa !5
  %851 = load ptr, ptr %27, align 8, !tbaa !9
  %852 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %851, ptr noundef @s2n_test_async_pkey_decrypt_callback)
  %853 = icmp eq i32 %852, -1
  br i1 %853, label %854, label %907

854:                                              ; preds = %848
  br label %855

855:                                              ; preds = %854
  br label %856

856:                                              ; preds = %855
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #11
  %857 = call ptr @__errno_location() #12
  %858 = load i32, ptr %857, align 4, !tbaa !5
  store i32 %858, ptr %30, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = call i32 @s2n_print_stacktrace(ptr noundef %859)
  %861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %862 = trunc i8 %861 to i1
  br i1 %862, label %863, label %885

863:                                              ; preds = %856
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = call i32 @fileno(ptr noundef %864) #11
  %866 = call i32 @isatty(i32 noundef %865) #11
  %867 = icmp ne i32 %866, 0
  br i1 %867, label %868, label %885

868:                                              ; preds = %863
  %869 = load i32, ptr %30, align 4, !tbaa !5
  %870 = call ptr @__errno_location() #12
  store i32 %869, ptr %870, 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 @.str.4)
  %876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror_debug(i32 noundef %877, ptr noundef @.str.4)
  %879 = call ptr @__errno_location() #12
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call ptr @strerror(i32 noundef %880) #11
  %882 = call ptr @__errno_location() #12
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %871, ptr noundef @.str.2, i32 noundef %872, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 340, ptr noundef %875, ptr noundef %878, ptr noundef %881, i32 noundef %883) #11
  br label %902

885:                                              ; preds = %863, %856
  %886 = load i32, ptr %30, align 4, !tbaa !5
  %887 = call ptr @__errno_location() #12
  store i32 %886, ptr %887, align 4, !tbaa !5
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = load i32, ptr @test_count, align 4, !tbaa !5
  %890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %891 = load i32, ptr %890, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror(i32 noundef %891, ptr noundef @.str.4)
  %893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %894 = load i32, ptr %893, align 4, !tbaa !5
  %895 = call ptr @s2n_strerror_debug(i32 noundef %894, ptr noundef @.str.4)
  %896 = call ptr @__errno_location() #12
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = call ptr @strerror(i32 noundef %897) #11
  %899 = call ptr @__errno_location() #12
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %888, ptr noundef @.str.5, i32 noundef %889, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 340, ptr noundef %892, ptr noundef %895, ptr noundef %898, i32 noundef %900) #11
  br label %902

902:                                              ; preds = %885, %868
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %903

903:                                              ; preds = %902
  br label %904

904:                                              ; preds = %903
  call void @exit(i32 noundef 1) #13
  unreachable

905:                                              ; No predecessors!
  br label %906

906:                                              ; preds = %905
  br label %907

907:                                              ; preds = %906, %848
  br label %908

908:                                              ; preds = %907
  br label %909

909:                                              ; preds = %908
  br label %977

910:                                              ; preds = %842
  %911 = load i64, ptr %9, align 8, !tbaa !15
  %912 = icmp eq i64 %911, 2
  br i1 %912, label %913, label %976

913:                                              ; preds = %910
  br label %914

914:                                              ; preds = %913
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %916 = add nsw i32 %915, 1
  store i32 %916, ptr @test_count, align 4, !tbaa !5
  %917 = load ptr, ptr %27, align 8, !tbaa !9
  %918 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %917, ptr noundef @s2n_test_offload_pkey_decrypt_callback)
  %919 = icmp eq i32 %918, -1
  br i1 %919, label %920, label %973

920:                                              ; preds = %914
  br label %921

921:                                              ; preds = %920
  br label %922

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

929:                                              ; preds = %922
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = call i32 @fileno(ptr noundef %930) #11
  %932 = call i32 @isatty(i32 noundef %931) #11
  %933 = icmp ne i32 %932, 0
  br i1 %933, label %934, label %951

934:                                              ; preds = %929
  %935 = load i32, ptr %31, align 4, !tbaa !5
  %936 = call ptr @__errno_location() #12
  store i32 %935, ptr %936, align 4, !tbaa !5
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = load i32, ptr @test_count, align 4, !tbaa !5
  %939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %940 = load i32, ptr %939, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror(i32 noundef %940, ptr noundef @.str.4)
  %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_debug(i32 noundef %943, ptr noundef @.str.4)
  %945 = call ptr @__errno_location() #12
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = call ptr @strerror(i32 noundef %946) #11
  %948 = call ptr @__errno_location() #12
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %937, ptr noundef @.str.2, i32 noundef %938, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 342, ptr noundef %941, ptr noundef %944, ptr noundef %947, i32 noundef %949) #11
  br label %968

951:                                              ; preds = %929, %922
  %952 = load i32, ptr %31, align 4, !tbaa !5
  %953 = call ptr @__errno_location() #12
  store i32 %952, ptr %953, align 4, !tbaa !5
  %954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %955 = load i32, ptr @test_count, align 4, !tbaa !5
  %956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror(i32 noundef %957, ptr noundef @.str.4)
  %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_debug(i32 noundef %960, ptr noundef @.str.4)
  %962 = call ptr @__errno_location() #12
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @strerror(i32 noundef %963) #11
  %965 = call ptr @__errno_location() #12
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %954, ptr noundef @.str.5, i32 noundef %955, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 342, ptr noundef %958, ptr noundef %961, ptr noundef %964, i32 noundef %966) #11
  br label %968

968:                                              ; preds = %951, %934
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %969

969:                                              ; preds = %968
  br label %970

970:                                              ; preds = %969
  call void @exit(i32 noundef 1) #13
  unreachable

971:                                              ; No predecessors!
  br label %972

972:                                              ; preds = %971
  br label %973

973:                                              ; preds = %972, %914
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  br label %976

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

977:                                              ; preds = %976, %909
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  store i64 0, ptr %32, align 8, !tbaa !15
  br label %978

978:                                              ; preds = %1677, %977
  %979 = load i64, ptr %32, align 8, !tbaa !15
  %980 = icmp ult i64 %979, 100
  br i1 %980, label %982, label %981

981:                                              ; preds = %978
  store i32 87, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %1680

982:                                              ; preds = %978
  call void @llvm.lifetime.start.p0(i64 20, ptr %33) #11
  call void @llvm.memset.p0.i64(ptr align 4 %33, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  %983 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %983, ptr %34, align 8, !tbaa !9
  br label %984

984:                                              ; preds = %982
  %985 = load i32, ptr @test_count, align 4, !tbaa !5
  %986 = add nsw i32 %985, 1
  store i32 %986, ptr @test_count, align 4, !tbaa !5
  %987 = load ptr, ptr %34, align 8, !tbaa !9
  %988 = icmp eq ptr %987, null
  br i1 %988, label %989, label %1042

989:                                              ; preds = %984
  br label %990

990:                                              ; preds = %989
  br label %991

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

998:                                              ; preds = %991
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = call i32 @fileno(ptr noundef %999) #11
  %1001 = call i32 @isatty(i32 noundef %1000) #11
  %1002 = icmp ne i32 %1001, 0
  br i1 %1002, label %1003, label %1020

1003:                                             ; preds = %998
  %1004 = load i32, ptr %35, align 4, !tbaa !5
  %1005 = call ptr @__errno_location() #12
  store i32 %1004, ptr %1005, align 4, !tbaa !5
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = call ptr @s2n_strerror(i32 noundef %1009, ptr noundef @.str.4)
  %1011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = call ptr @s2n_strerror_debug(i32 noundef %1012, ptr noundef @.str.4)
  %1014 = call ptr @__errno_location() #12
  %1015 = load i32, ptr %1014, align 4, !tbaa !5
  %1016 = call ptr @strerror(i32 noundef %1015) #11
  %1017 = call ptr @__errno_location() #12
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  %1019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1006, ptr noundef @.str.2, i32 noundef %1007, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 351, ptr noundef %1010, ptr noundef %1013, ptr noundef %1016, i32 noundef %1018) #11
  br label %1037

1020:                                             ; preds = %998, %991
  %1021 = load i32, ptr %35, align 4, !tbaa !5
  %1022 = call ptr @__errno_location() #12
  store i32 %1021, ptr %1022, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror(i32 noundef %1026, ptr noundef @.str.4)
  %1028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror_debug(i32 noundef %1029, ptr noundef @.str.4)
  %1031 = call ptr @__errno_location() #12
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call ptr @strerror(i32 noundef %1032) #11
  %1034 = call ptr @__errno_location() #12
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef @.str.5, i32 noundef %1024, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 351, ptr noundef %1027, ptr noundef %1030, ptr noundef %1033, i32 noundef %1035) #11
  br label %1037

1037:                                             ; preds = %1020, %1003
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

1039:                                             ; preds = %1038
  call void @exit(i32 noundef 1) #13
  unreachable

1040:                                             ; No predecessors!
  br label %1041

1041:                                             ; preds = %1040
  br label %1042

1042:                                             ; preds = %1041, %984
  br label %1043

1043:                                             ; preds = %1042
  br label %1044

1044:                                             ; preds = %1043
  br label %1045

1045:                                             ; preds = %1044
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = add nsw i32 %1046, 1
  store i32 %1047, ptr @test_count, align 4, !tbaa !5
  %1048 = load ptr, ptr %34, align 8, !tbaa !9
  %1049 = load ptr, ptr %24, align 8, !tbaa !9
  %1050 = call i32 @s2n_connection_set_config(ptr noundef %1048, ptr noundef %1049)
  %1051 = icmp eq i32 %1050, -1
  br i1 %1051, label %1052, label %1105

1052:                                             ; preds = %1045
  br label %1053

1053:                                             ; preds = %1052
  br label %1054

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

1061:                                             ; preds = %1054
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = call i32 @fileno(ptr noundef %1062) #11
  %1064 = call i32 @isatty(i32 noundef %1063) #11
  %1065 = icmp ne i32 %1064, 0
  br i1 %1065, label %1066, label %1083

1066:                                             ; preds = %1061
  %1067 = load i32, ptr %36, align 4, !tbaa !5
  %1068 = call ptr @__errno_location() #12
  store i32 %1067, ptr %1068, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror(i32 noundef %1072, ptr noundef @.str.4)
  %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_debug(i32 noundef %1075, ptr noundef @.str.4)
  %1077 = call ptr @__errno_location() #12
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @strerror(i32 noundef %1078) #11
  %1080 = call ptr @__errno_location() #12
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1069, ptr noundef @.str.2, i32 noundef %1070, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 352, ptr noundef %1073, ptr noundef %1076, ptr noundef %1079, i32 noundef %1081) #11
  br label %1100

1083:                                             ; preds = %1061, %1054
  %1084 = load i32, ptr %36, align 4, !tbaa !5
  %1085 = call ptr @__errno_location() #12
  store i32 %1084, ptr %1085, align 4, !tbaa !5
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = load i32, ptr @test_count, align 4, !tbaa !5
  %1088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  %1090 = call ptr @s2n_strerror(i32 noundef %1089, ptr noundef @.str.4)
  %1091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror_debug(i32 noundef %1092, ptr noundef @.str.4)
  %1094 = call ptr @__errno_location() #12
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = call ptr @strerror(i32 noundef %1095) #11
  %1097 = call ptr @__errno_location() #12
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  %1099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1086, ptr noundef @.str.5, i32 noundef %1087, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 352, ptr noundef %1090, ptr noundef %1093, ptr noundef %1096, i32 noundef %1098) #11
  br label %1100

1100:                                             ; preds = %1083, %1066
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1101

1101:                                             ; preds = %1100
  br label %1102

1102:                                             ; preds = %1101
  call void @exit(i32 noundef 1) #13
  unreachable

1103:                                             ; No predecessors!
  br label %1104

1104:                                             ; preds = %1103
  br label %1105

1105:                                             ; preds = %1104, %1045
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106
  br label %1108

1108:                                             ; preds = %1107
  %1109 = load i32, ptr @test_count, align 4, !tbaa !5
  %1110 = add nsw i32 %1109, 1
  store i32 %1110, ptr @test_count, align 4, !tbaa !5
  %1111 = load ptr, ptr %34, align 8, !tbaa !9
  %1112 = call i32 @s2n_connection_set_ctx(ptr noundef %1111, ptr noundef %33)
  %1113 = icmp eq i32 %1112, -1
  br i1 %1113, label %1114, label %1167

1114:                                             ; preds = %1108
  br label %1115

1115:                                             ; preds = %1114
  br label %1116

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

1123:                                             ; preds = %1116
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @fileno(ptr noundef %1124) #11
  %1126 = call i32 @isatty(i32 noundef %1125) #11
  %1127 = icmp ne i32 %1126, 0
  br i1 %1127, label %1128, label %1145

1128:                                             ; preds = %1123
  %1129 = load i32, ptr %37, align 4, !tbaa !5
  %1130 = call ptr @__errno_location() #12
  store i32 %1129, ptr %1130, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1134, ptr noundef @.str.4)
  %1136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror_debug(i32 noundef %1137, ptr noundef @.str.4)
  %1139 = call ptr @__errno_location() #12
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call ptr @strerror(i32 noundef %1140) #11
  %1142 = call ptr @__errno_location() #12
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1131, ptr noundef @.str.2, i32 noundef %1132, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 353, ptr noundef %1135, ptr noundef %1138, ptr noundef %1141, i32 noundef %1143) #11
  br label %1162

1145:                                             ; preds = %1123, %1116
  %1146 = load i32, ptr %37, align 4, !tbaa !5
  %1147 = call ptr @__errno_location() #12
  store i32 %1146, ptr %1147, align 4, !tbaa !5
  %1148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1149 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1151, ptr noundef @.str.4)
  %1153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror_debug(i32 noundef %1154, ptr noundef @.str.4)
  %1156 = call ptr @__errno_location() #12
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @strerror(i32 noundef %1157) #11
  %1159 = call ptr @__errno_location() #12
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1148, ptr noundef @.str.5, i32 noundef %1149, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 353, ptr noundef %1152, ptr noundef %1155, ptr noundef %1158, i32 noundef %1160) #11
  br label %1162

1162:                                             ; preds = %1145, %1128
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1163

1163:                                             ; preds = %1162
  br label %1164

1164:                                             ; preds = %1163
  call void @exit(i32 noundef 1) #13
  unreachable

1165:                                             ; No predecessors!
  br label %1166

1166:                                             ; preds = %1165
  br label %1167

1167:                                             ; preds = %1166, %1108
  br label %1168

1168:                                             ; preds = %1167
  br label %1169

1169:                                             ; preds = %1168
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #11
  call void @llvm.memset.p0.i64(ptr align 4 %38, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #11
  %1170 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1170, ptr %39, align 8, !tbaa !9
  br label %1171

1171:                                             ; preds = %1169
  %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 = load ptr, ptr %39, align 8, !tbaa !9
  %1175 = icmp eq ptr %1174, null
  br i1 %1175, label %1176, label %1229

1176:                                             ; preds = %1171
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

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

1185:                                             ; preds = %1178
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = call i32 @fileno(ptr noundef %1186) #11
  %1188 = call i32 @isatty(i32 noundef %1187) #11
  %1189 = icmp ne i32 %1188, 0
  br i1 %1189, label %1190, label %1207

1190:                                             ; preds = %1185
  %1191 = load i32, ptr %40, align 4, !tbaa !5
  %1192 = call ptr @__errno_location() #12
  store i32 %1191, ptr %1192, align 4, !tbaa !5
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror(i32 noundef %1196, ptr noundef @.str.4)
  %1198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror_debug(i32 noundef %1199, ptr noundef @.str.4)
  %1201 = call ptr @__errno_location() #12
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call ptr @strerror(i32 noundef %1202) #11
  %1204 = call ptr @__errno_location() #12
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1193, ptr noundef @.str.2, i32 noundef %1194, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 359, ptr noundef %1197, ptr noundef %1200, ptr noundef %1203, i32 noundef %1205) #11
  br label %1224

1207:                                             ; preds = %1185, %1178
  %1208 = load i32, ptr %40, align 4, !tbaa !5
  %1209 = call ptr @__errno_location() #12
  store i32 %1208, ptr %1209, align 4, !tbaa !5
  %1210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1211 = load i32, ptr @test_count, align 4, !tbaa !5
  %1212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = call ptr @s2n_strerror(i32 noundef %1213, ptr noundef @.str.4)
  %1215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror_debug(i32 noundef %1216, ptr noundef @.str.4)
  %1218 = call ptr @__errno_location() #12
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call ptr @strerror(i32 noundef %1219) #11
  %1221 = call ptr @__errno_location() #12
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1210, ptr noundef @.str.5, i32 noundef %1211, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 359, ptr noundef %1214, ptr noundef %1217, ptr noundef %1220, i32 noundef %1222) #11
  br label %1224

1224:                                             ; preds = %1207, %1190
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1225

1225:                                             ; preds = %1224
  br label %1226

1226:                                             ; preds = %1225
  call void @exit(i32 noundef 1) #13
  unreachable

1227:                                             ; No predecessors!
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228, %1171
  br label %1230

1230:                                             ; preds = %1229
  br label %1231

1231:                                             ; preds = %1230
  br label %1232

1232:                                             ; preds = %1231
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = add nsw i32 %1233, 1
  store i32 %1234, ptr @test_count, align 4, !tbaa !5
  %1235 = load ptr, ptr %39, align 8, !tbaa !9
  %1236 = load ptr, ptr %27, align 8, !tbaa !9
  %1237 = call i32 @s2n_connection_set_config(ptr noundef %1235, ptr noundef %1236)
  %1238 = icmp eq i32 %1237, -1
  br i1 %1238, label %1239, label %1292

1239:                                             ; preds = %1232
  br label %1240

1240:                                             ; preds = %1239
  br label %1241

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

1248:                                             ; preds = %1241
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = call i32 @fileno(ptr noundef %1249) #11
  %1251 = call i32 @isatty(i32 noundef %1250) #11
  %1252 = icmp ne i32 %1251, 0
  br i1 %1252, label %1253, label %1270

1253:                                             ; preds = %1248
  %1254 = load i32, ptr %41, align 4, !tbaa !5
  %1255 = call ptr @__errno_location() #12
  store i32 %1254, ptr %1255, align 4, !tbaa !5
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %1258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror(i32 noundef %1259, ptr noundef @.str.4)
  %1261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1262 = load i32, ptr %1261, align 4, !tbaa !5
  %1263 = call ptr @s2n_strerror_debug(i32 noundef %1262, ptr noundef @.str.4)
  %1264 = call ptr @__errno_location() #12
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = call ptr @strerror(i32 noundef %1265) #11
  %1267 = call ptr @__errno_location() #12
  %1268 = load i32, ptr %1267, align 4, !tbaa !5
  %1269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1256, ptr noundef @.str.2, i32 noundef %1257, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 360, ptr noundef %1260, ptr noundef %1263, ptr noundef %1266, i32 noundef %1268) #11
  br label %1287

1270:                                             ; preds = %1248, %1241
  %1271 = load i32, ptr %41, align 4, !tbaa !5
  %1272 = call ptr @__errno_location() #12
  store i32 %1271, ptr %1272, align 4, !tbaa !5
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror(i32 noundef %1276, ptr noundef @.str.4)
  %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_debug(i32 noundef %1279, ptr noundef @.str.4)
  %1281 = call ptr @__errno_location() #12
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @strerror(i32 noundef %1282) #11
  %1284 = call ptr @__errno_location() #12
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1273, ptr noundef @.str.5, i32 noundef %1274, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 360, ptr noundef %1277, ptr noundef %1280, ptr noundef %1283, i32 noundef %1285) #11
  br label %1287

1287:                                             ; preds = %1270, %1253
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1288

1288:                                             ; preds = %1287
  br label %1289

1289:                                             ; preds = %1288
  call void @exit(i32 noundef 1) #13
  unreachable

1290:                                             ; No predecessors!
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

1292:                                             ; preds = %1291, %1232
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

1294:                                             ; preds = %1293
  br label %1295

1295:                                             ; preds = %1294
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = add nsw i32 %1296, 1
  store i32 %1297, ptr @test_count, align 4, !tbaa !5
  %1298 = load ptr, ptr %39, align 8, !tbaa !9
  %1299 = call i32 @s2n_connection_set_ctx(ptr noundef %1298, ptr noundef %38)
  %1300 = icmp eq i32 %1299, -1
  br i1 %1300, label %1301, label %1354

1301:                                             ; preds = %1295
  br label %1302

1302:                                             ; preds = %1301
  br label %1303

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

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

1315:                                             ; preds = %1310
  %1316 = load i32, ptr %42, align 4, !tbaa !5
  %1317 = call ptr @__errno_location() #12
  store i32 %1316, ptr %1317, align 4, !tbaa !5
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror(i32 noundef %1321, ptr noundef @.str.4)
  %1323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = call ptr @s2n_strerror_debug(i32 noundef %1324, ptr noundef @.str.4)
  %1326 = call ptr @__errno_location() #12
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  %1328 = call ptr @strerror(i32 noundef %1327) #11
  %1329 = call ptr @__errno_location() #12
  %1330 = load i32, ptr %1329, align 4, !tbaa !5
  %1331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1318, ptr noundef @.str.2, i32 noundef %1319, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 361, ptr noundef %1322, ptr noundef %1325, ptr noundef %1328, i32 noundef %1330) #11
  br label %1349

1332:                                             ; preds = %1310, %1303
  %1333 = load i32, ptr %42, align 4, !tbaa !5
  %1334 = call ptr @__errno_location() #12
  store i32 %1333, ptr %1334, align 4, !tbaa !5
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror(i32 noundef %1338, ptr noundef @.str.4)
  %1340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror_debug(i32 noundef %1341, ptr noundef @.str.4)
  %1343 = call ptr @__errno_location() #12
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = call ptr @strerror(i32 noundef %1344) #11
  %1346 = call ptr @__errno_location() #12
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1335, ptr noundef @.str.5, i32 noundef %1336, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 361, ptr noundef %1339, ptr noundef %1342, ptr noundef %1345, i32 noundef %1347) #11
  br label %1349

1349:                                             ; preds = %1332, %1315
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1350

1350:                                             ; preds = %1349
  br label %1351

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

1352:                                             ; No predecessors!
  br label %1353

1353:                                             ; preds = %1352
  br label %1354

1354:                                             ; preds = %1353, %1295
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

1357:                                             ; preds = %1356
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = add nsw i32 %1358, 1
  store i32 %1359, ptr @test_count, align 4, !tbaa !5
  %1360 = load ptr, ptr %39, align 8, !tbaa !9
  %1361 = call i32 @s2n_connection_set_blinding(ptr noundef %1360, i32 noundef 1)
  %1362 = icmp eq i32 %1361, -1
  br i1 %1362, label %1363, label %1416

1363:                                             ; preds = %1357
  br label %1364

1364:                                             ; preds = %1363
  br label %1365

1365:                                             ; preds = %1364
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1366 = call ptr @__errno_location() #12
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  store i32 %1367, ptr %43, 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) #11
  %1375 = call i32 @isatty(i32 noundef %1374) #11
  %1376 = icmp ne i32 %1375, 0
  br i1 %1376, label %1377, label %1394

1377:                                             ; preds = %1372
  %1378 = load i32, ptr %43, align 4, !tbaa !5
  %1379 = call ptr @__errno_location() #12
  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() #12
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @strerror(i32 noundef %1389) #11
  %1391 = call ptr @__errno_location() #12
  %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.26, ptr noundef @.str.1, i32 noundef 362, ptr noundef %1384, ptr noundef %1387, ptr noundef %1390, i32 noundef %1392) #11
  br label %1411

1394:                                             ; preds = %1372, %1365
  %1395 = load i32, ptr %43, align 4, !tbaa !5
  %1396 = call ptr @__errno_location() #12
  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() #12
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call ptr @strerror(i32 noundef %1406) #11
  %1408 = call ptr @__errno_location() #12
  %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.26, ptr noundef @.str.1, i32 noundef 362, ptr noundef %1401, ptr noundef %1404, ptr noundef %1407, i32 noundef %1409) #11
  br label %1411

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

1412:                                             ; preds = %1411
  br label %1413

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

1414:                                             ; No predecessors!
  br label %1415

1415:                                             ; preds = %1414
  br label %1416

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

1417:                                             ; preds = %1416
  br label %1418

1418:                                             ; preds = %1417
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #11
  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 i32 @s2n_io_pair_init_non_blocking(ptr noundef %44)
  %1423 = icmp eq i32 %1422, -1
  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 %45) #11
  %1427 = call ptr @__errno_location() #12
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  store i32 %1428, ptr %45, 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) #11
  %1436 = call i32 @isatty(i32 noundef %1435) #11
  %1437 = icmp ne i32 %1436, 0
  br i1 %1437, label %1438, label %1455

1438:                                             ; preds = %1433
  %1439 = load i32, ptr %45, align 4, !tbaa !5
  %1440 = call ptr @__errno_location() #12
  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() #12
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @strerror(i32 noundef %1450) #11
  %1452 = call ptr @__errno_location() #12
  %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.27, ptr noundef @.str.1, i32 noundef 365, ptr noundef %1445, ptr noundef %1448, ptr noundef %1451, i32 noundef %1453) #11
  br label %1472

1455:                                             ; preds = %1433, %1426
  %1456 = load i32, ptr %45, align 4, !tbaa !5
  %1457 = call ptr @__errno_location() #12
  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() #12
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @strerror(i32 noundef %1467) #11
  %1469 = call ptr @__errno_location() #12
  %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.27, ptr noundef @.str.1, i32 noundef 365, ptr noundef %1462, ptr noundef %1465, ptr noundef %1468, i32 noundef %1470) #11
  br label %1472

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

1473:                                             ; preds = %1472
  br label %1474

1474:                                             ; preds = %1473
  call void @exit(i32 noundef 1) #13
  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 %34, align 8, !tbaa !9
  %1484 = load ptr, ptr %39, align 8, !tbaa !9
  %1485 = call i32 @s2n_connections_set_io_pair(ptr noundef %1483, ptr noundef %1484, ptr noundef %44)
  %1486 = icmp eq i32 %1485, -1
  br i1 %1486, label %1487, label %1540

1487:                                             ; preds = %1480
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

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

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

1501:                                             ; preds = %1496
  %1502 = load i32, ptr %46, align 4, !tbaa !5
  %1503 = call ptr @__errno_location() #12
  store i32 %1502, ptr %1503, align 4, !tbaa !5
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = load i32, ptr @test_count, align 4, !tbaa !5
  %1506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror(i32 noundef %1507, ptr noundef @.str.4)
  %1509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror_debug(i32 noundef %1510, ptr noundef @.str.4)
  %1512 = call ptr @__errno_location() #12
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @strerror(i32 noundef %1513) #11
  %1515 = call ptr @__errno_location() #12
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1504, ptr noundef @.str.2, i32 noundef %1505, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 366, ptr noundef %1508, ptr noundef %1511, ptr noundef %1514, i32 noundef %1516) #11
  br label %1535

1518:                                             ; preds = %1496, %1489
  %1519 = load i32, ptr %46, align 4, !tbaa !5
  %1520 = call ptr @__errno_location() #12
  store i32 %1519, ptr %1520, align 4, !tbaa !5
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = load i32, ptr @test_count, align 4, !tbaa !5
  %1523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror(i32 noundef %1524, ptr noundef @.str.4)
  %1526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1527 = load i32, ptr %1526, align 4, !tbaa !5
  %1528 = call ptr @s2n_strerror_debug(i32 noundef %1527, ptr noundef @.str.4)
  %1529 = call ptr @__errno_location() #12
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = call ptr @strerror(i32 noundef %1530) #11
  %1532 = call ptr @__errno_location() #12
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1521, ptr noundef @.str.5, i32 noundef %1522, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 366, ptr noundef %1525, ptr noundef %1528, ptr noundef %1531, i32 noundef %1533) #11
  br label %1535

1535:                                             ; preds = %1518, %1501
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

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

1538:                                             ; No predecessors!
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

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

1541:                                             ; preds = %1540
  br label %1542

1542:                                             ; preds = %1541
  br label %1543

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

1550:                                             ; preds = %1543
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

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

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

1564:                                             ; preds = %1559
  %1565 = load i32, ptr %47, align 4, !tbaa !5
  %1566 = call ptr @__errno_location() #12
  store i32 %1565, ptr %1566, align 4, !tbaa !5
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = load i32, ptr @test_count, align 4, !tbaa !5
  %1569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror(i32 noundef %1570, ptr noundef @.str.4)
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror_debug(i32 noundef %1573, ptr noundef @.str.4)
  %1575 = call ptr @__errno_location() #12
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @strerror(i32 noundef %1576) #11
  %1578 = call ptr @__errno_location() #12
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1567, ptr noundef @.str.2, i32 noundef %1568, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 368, ptr noundef %1571, ptr noundef %1574, ptr noundef %1577, i32 noundef %1579) #11
  br label %1598

1581:                                             ; preds = %1559, %1552
  %1582 = load i32, ptr %47, align 4, !tbaa !5
  %1583 = call ptr @__errno_location() #12
  store i32 %1582, ptr %1583, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = load i32, ptr @test_count, align 4, !tbaa !5
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror(i32 noundef %1587, ptr noundef @.str.4)
  %1589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @s2n_strerror_debug(i32 noundef %1590, ptr noundef @.str.4)
  %1592 = call ptr @__errno_location() #12
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #11
  %1595 = call ptr @__errno_location() #12
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1584, ptr noundef @.str.5, i32 noundef %1585, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 368, ptr noundef %1588, ptr noundef %1591, ptr noundef %1594, i32 noundef %1596) #11
  br label %1598

1598:                                             ; preds = %1581, %1564
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

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

1601:                                             ; No predecessors!
  br label %1602

1602:                                             ; preds = %1601
  br label %1603

1603:                                             ; preds = %1602, %1543
  br label %1604

1604:                                             ; preds = %1603
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

1606:                                             ; preds = %1605
  %1607 = load i32, ptr @test_count, align 4, !tbaa !5
  %1608 = add nsw i32 %1607, 1
  store i32 %1608, ptr @test_count, align 4, !tbaa !5
  %1609 = load i64, ptr %9, align 8, !tbaa !15
  %1610 = trunc i64 %1609 to i32
  %1611 = call i32 @s2n_validate_test_async_pkey_ctx(ptr noundef %38, i32 noundef %1610)
  %1612 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  store i32 %1611, ptr %1612, align 4
  %1613 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  %1614 = load i32, ptr %1613, align 4
  %1615 = call zeroext i1 @s2n_result_is_ok(i32 %1614)
  br i1 %1615, label %1669, label %1616

1616:                                             ; preds = %1606
  br label %1617

1617:                                             ; preds = %1616
  br label %1618

1618:                                             ; preds = %1617
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1619 = call ptr @__errno_location() #12
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  store i32 %1620, ptr %49, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @s2n_print_stacktrace(ptr noundef %1621)
  %1623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1624 = trunc i8 %1623 to i1
  br i1 %1624, label %1625, label %1647

1625:                                             ; preds = %1618
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = call i32 @fileno(ptr noundef %1626) #11
  %1628 = call i32 @isatty(i32 noundef %1627) #11
  %1629 = icmp ne i32 %1628, 0
  br i1 %1629, label %1630, label %1647

1630:                                             ; preds = %1625
  %1631 = load i32, ptr %49, align 4, !tbaa !5
  %1632 = call ptr @__errno_location() #12
  store i32 %1631, ptr %1632, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror(i32 noundef %1636, ptr noundef @.str.4)
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror_debug(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call ptr @__errno_location() #12
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @strerror(i32 noundef %1642) #11
  %1644 = call ptr @__errno_location() #12
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1633, ptr noundef @.str.2, i32 noundef %1634, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 370, ptr noundef %1637, ptr noundef %1640, ptr noundef %1643, i32 noundef %1645) #11
  br label %1664

1647:                                             ; preds = %1625, %1618
  %1648 = load i32, ptr %49, align 4, !tbaa !5
  %1649 = call ptr @__errno_location() #12
  store i32 %1648, ptr %1649, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call ptr @s2n_strerror(i32 noundef %1653, ptr noundef @.str.4)
  %1655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = call ptr @s2n_strerror_debug(i32 noundef %1656, ptr noundef @.str.4)
  %1658 = call ptr @__errno_location() #12
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  %1660 = call ptr @strerror(i32 noundef %1659) #11
  %1661 = call ptr @__errno_location() #12
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1650, ptr noundef @.str.5, i32 noundef %1651, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 370, ptr noundef %1654, ptr noundef %1657, ptr noundef %1660, i32 noundef %1662) #11
  br label %1664

1664:                                             ; preds = %1647, %1630
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1665

1665:                                             ; preds = %1664
  br label %1666

1666:                                             ; preds = %1665
  call void @exit(i32 noundef 1) #13
  unreachable

1667:                                             ; No predecessors!
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

1669:                                             ; preds = %1668, %1606
  br label %1670

1670:                                             ; preds = %1669
  br label %1671

1671:                                             ; preds = %1670
  %1672 = call i32 @s2n_io_pair_close(ptr noundef %44)
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  %1673 = call i32 @s2n_connection_ptr_free(ptr noundef %39)
  %1674 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %1673, ptr %1674, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  %1675 = call i32 @s2n_connection_ptr_free(ptr noundef %34)
  %1676 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  store i32 %1675, ptr %1676, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %33) #11
  br label %1677

1677:                                             ; preds = %1671
  %1678 = load i64, ptr %32, align 8, !tbaa !15
  %1679 = add i64 %1678, 1
  store i64 %1679, ptr %32, align 8, !tbaa !15
  br label %978, !llvm.loop !37

1680:                                             ; preds = %981
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  store i32 335544321, ptr %52, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  store ptr null, ptr %53, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 20, ptr %54) #11
  call void @llvm.memset.p0.i64(ptr align 4 %54, i8 0, i64 20, i1 false)
  %1681 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %54, i32 0, i32 0
  %1682 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %54, i32 0, i32 1
  %1683 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %54, i32 0, i32 2
  store i8 1, ptr %1683, align 4, !tbaa !39
  %1684 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %54, i32 0, i32 3
  %1685 = load i32, ptr %15, align 4, !tbaa !5
  %1686 = sub i32 %1685, 1
  store i32 %1686, ptr %1684, align 4, !tbaa !41
  %1687 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %54, i32 0, i32 4
  %1688 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %54, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  %1689 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1689, ptr %55, align 8, !tbaa !9
  br label %1690

1690:                                             ; preds = %1680
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = add nsw i32 %1691, 1
  store i32 %1692, ptr @test_count, align 4, !tbaa !5
  %1693 = load ptr, ptr %55, align 8, !tbaa !9
  %1694 = icmp eq ptr %1693, null
  br i1 %1694, label %1695, label %1748

1695:                                             ; preds = %1690
  br label %1696

1696:                                             ; preds = %1695
  br label %1697

1697:                                             ; preds = %1696
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %1698 = call ptr @__errno_location() #12
  %1699 = load i32, ptr %1698, align 4, !tbaa !5
  store i32 %1699, ptr %56, align 4, !tbaa !5
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = call i32 @s2n_print_stacktrace(ptr noundef %1700)
  %1702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1703 = trunc i8 %1702 to i1
  br i1 %1703, label %1704, label %1726

1704:                                             ; preds = %1697
  %1705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1706 = call i32 @fileno(ptr noundef %1705) #11
  %1707 = call i32 @isatty(i32 noundef %1706) #11
  %1708 = icmp ne i32 %1707, 0
  br i1 %1708, label %1709, label %1726

1709:                                             ; preds = %1704
  %1710 = load i32, ptr %56, align 4, !tbaa !5
  %1711 = call ptr @__errno_location() #12
  store i32 %1710, ptr %1711, align 4, !tbaa !5
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = load i32, ptr @test_count, align 4, !tbaa !5
  %1714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call ptr @s2n_strerror(i32 noundef %1715, ptr noundef @.str.4)
  %1717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call ptr @s2n_strerror_debug(i32 noundef %1718, ptr noundef @.str.4)
  %1720 = call ptr @__errno_location() #12
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = call ptr @strerror(i32 noundef %1721) #11
  %1723 = call ptr @__errno_location() #12
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1712, ptr noundef @.str.2, i32 noundef %1713, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 390, ptr noundef %1716, ptr noundef %1719, ptr noundef %1722, i32 noundef %1724) #11
  br label %1743

1726:                                             ; preds = %1704, %1697
  %1727 = load i32, ptr %56, align 4, !tbaa !5
  %1728 = call ptr @__errno_location() #12
  store i32 %1727, ptr %1728, align 4, !tbaa !5
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror(i32 noundef %1732, ptr noundef @.str.4)
  %1734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call ptr @s2n_strerror_debug(i32 noundef %1735, ptr noundef @.str.4)
  %1737 = call ptr @__errno_location() #12
  %1738 = load i32, ptr %1737, align 4, !tbaa !5
  %1739 = call ptr @strerror(i32 noundef %1738) #11
  %1740 = call ptr @__errno_location() #12
  %1741 = load i32, ptr %1740, align 4, !tbaa !5
  %1742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1729, ptr noundef @.str.5, i32 noundef %1730, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 390, ptr noundef %1733, ptr noundef %1736, ptr noundef %1739, i32 noundef %1741) #11
  br label %1743

1743:                                             ; preds = %1726, %1709
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %1744

1744:                                             ; preds = %1743
  br label %1745

1745:                                             ; preds = %1744
  call void @exit(i32 noundef 1) #13
  unreachable

1746:                                             ; No predecessors!
  br label %1747

1747:                                             ; preds = %1746
  br label %1748

1748:                                             ; preds = %1747, %1690
  br label %1749

1749:                                             ; preds = %1748
  br label %1750

1750:                                             ; preds = %1749
  br label %1751

1751:                                             ; preds = %1750
  %1752 = load i32, ptr @test_count, align 4, !tbaa !5
  %1753 = add nsw i32 %1752, 1
  store i32 %1753, ptr @test_count, align 4, !tbaa !5
  %1754 = load ptr, ptr %55, align 8, !tbaa !9
  %1755 = load ptr, ptr %24, align 8, !tbaa !9
  %1756 = call i32 @s2n_connection_set_config(ptr noundef %1754, ptr noundef %1755)
  %1757 = icmp eq i32 %1756, -1
  br i1 %1757, label %1758, label %1811

1758:                                             ; preds = %1751
  br label %1759

1759:                                             ; preds = %1758
  br label %1760

1760:                                             ; preds = %1759
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %1761 = call ptr @__errno_location() #12
  %1762 = load i32, ptr %1761, align 4, !tbaa !5
  store i32 %1762, ptr %57, align 4, !tbaa !5
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = call i32 @s2n_print_stacktrace(ptr noundef %1763)
  %1765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1766 = trunc i8 %1765 to i1
  br i1 %1766, label %1767, label %1789

1767:                                             ; preds = %1760
  %1768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1769 = call i32 @fileno(ptr noundef %1768) #11
  %1770 = call i32 @isatty(i32 noundef %1769) #11
  %1771 = icmp ne i32 %1770, 0
  br i1 %1771, label %1772, label %1789

1772:                                             ; preds = %1767
  %1773 = load i32, ptr %57, align 4, !tbaa !5
  %1774 = call ptr @__errno_location() #12
  store i32 %1773, ptr %1774, align 4, !tbaa !5
  %1775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1776 = load i32, ptr @test_count, align 4, !tbaa !5
  %1777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call ptr @s2n_strerror(i32 noundef %1778, ptr noundef @.str.4)
  %1780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call ptr @s2n_strerror_debug(i32 noundef %1781, ptr noundef @.str.4)
  %1783 = call ptr @__errno_location() #12
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = call ptr @strerror(i32 noundef %1784) #11
  %1786 = call ptr @__errno_location() #12
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1775, ptr noundef @.str.2, i32 noundef %1776, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 391, ptr noundef %1779, ptr noundef %1782, ptr noundef %1785, i32 noundef %1787) #11
  br label %1806

1789:                                             ; preds = %1767, %1760
  %1790 = load i32, ptr %57, align 4, !tbaa !5
  %1791 = call ptr @__errno_location() #12
  store i32 %1790, ptr %1791, align 4, !tbaa !5
  %1792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1793 = load i32, ptr @test_count, align 4, !tbaa !5
  %1794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror(i32 noundef %1795, ptr noundef @.str.4)
  %1797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call ptr @s2n_strerror_debug(i32 noundef %1798, ptr noundef @.str.4)
  %1800 = call ptr @__errno_location() #12
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call ptr @strerror(i32 noundef %1801) #11
  %1803 = call ptr @__errno_location() #12
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1792, ptr noundef @.str.5, i32 noundef %1793, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 391, ptr noundef %1796, ptr noundef %1799, ptr noundef %1802, i32 noundef %1804) #11
  br label %1806

1806:                                             ; preds = %1789, %1772
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %1807

1807:                                             ; preds = %1806
  br label %1808

1808:                                             ; preds = %1807
  call void @exit(i32 noundef 1) #13
  unreachable

1809:                                             ; No predecessors!
  br label %1810

1810:                                             ; preds = %1809
  br label %1811

1811:                                             ; preds = %1810, %1751
  br label %1812

1812:                                             ; preds = %1811
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

1814:                                             ; preds = %1813
  %1815 = load i32, ptr @test_count, align 4, !tbaa !5
  %1816 = add nsw i32 %1815, 1
  store i32 %1816, ptr @test_count, align 4, !tbaa !5
  %1817 = load ptr, ptr %55, align 8, !tbaa !9
  %1818 = call i32 @s2n_connection_set_ctx(ptr noundef %1817, ptr noundef %54)
  %1819 = icmp eq i32 %1818, -1
  br i1 %1819, label %1820, label %1873

1820:                                             ; preds = %1814
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %1823 = call ptr @__errno_location() #12
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  store i32 %1824, ptr %58, align 4, !tbaa !5
  %1825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1826 = call i32 @s2n_print_stacktrace(ptr noundef %1825)
  %1827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1828 = trunc i8 %1827 to i1
  br i1 %1828, label %1829, label %1851

1829:                                             ; preds = %1822
  %1830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1831 = call i32 @fileno(ptr noundef %1830) #11
  %1832 = call i32 @isatty(i32 noundef %1831) #11
  %1833 = icmp ne i32 %1832, 0
  br i1 %1833, label %1834, label %1851

1834:                                             ; preds = %1829
  %1835 = load i32, ptr %58, align 4, !tbaa !5
  %1836 = call ptr @__errno_location() #12
  store i32 %1835, ptr %1836, align 4, !tbaa !5
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = load i32, ptr @test_count, align 4, !tbaa !5
  %1839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = call ptr @s2n_strerror(i32 noundef %1840, ptr noundef @.str.4)
  %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_debug(i32 noundef %1843, ptr noundef @.str.4)
  %1845 = call ptr @__errno_location() #12
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  %1847 = call ptr @strerror(i32 noundef %1846) #11
  %1848 = call ptr @__errno_location() #12
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1837, ptr noundef @.str.2, i32 noundef %1838, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 392, ptr noundef %1841, ptr noundef %1844, ptr noundef %1847, i32 noundef %1849) #11
  br label %1868

1851:                                             ; preds = %1829, %1822
  %1852 = load i32, ptr %58, align 4, !tbaa !5
  %1853 = call ptr @__errno_location() #12
  store i32 %1852, ptr %1853, align 4, !tbaa !5
  %1854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1855 = load i32, ptr @test_count, align 4, !tbaa !5
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror(i32 noundef %1857, ptr noundef @.str.4)
  %1859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  %1861 = call ptr @s2n_strerror_debug(i32 noundef %1860, ptr noundef @.str.4)
  %1862 = call ptr @__errno_location() #12
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call ptr @strerror(i32 noundef %1863) #11
  %1865 = call ptr @__errno_location() #12
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1854, ptr noundef @.str.5, i32 noundef %1855, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 392, ptr noundef %1858, ptr noundef %1861, ptr noundef %1864, i32 noundef %1866) #11
  br label %1868

1868:                                             ; preds = %1851, %1834
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %1869

1869:                                             ; preds = %1868
  br label %1870

1870:                                             ; preds = %1869
  call void @exit(i32 noundef 1) #13
  unreachable

1871:                                             ; No predecessors!
  br label %1872

1872:                                             ; preds = %1871
  br label %1873

1873:                                             ; preds = %1872, %1814
  br label %1874

1874:                                             ; preds = %1873
  br label %1875

1875:                                             ; preds = %1874
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  call void @llvm.memset.p0.i64(ptr align 4 %59, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %1876 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1876, ptr %60, align 8, !tbaa !9
  br label %1877

1877:                                             ; preds = %1875
  %1878 = load i32, ptr @test_count, align 4, !tbaa !5
  %1879 = add nsw i32 %1878, 1
  store i32 %1879, ptr @test_count, align 4, !tbaa !5
  %1880 = load ptr, ptr %60, align 8, !tbaa !9
  %1881 = icmp eq ptr %1880, null
  br i1 %1881, label %1882, label %1935

1882:                                             ; preds = %1877
  br label %1883

1883:                                             ; preds = %1882
  br label %1884

1884:                                             ; preds = %1883
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %1885 = call ptr @__errno_location() #12
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  store i32 %1886, ptr %61, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = call i32 @s2n_print_stacktrace(ptr noundef %1887)
  %1889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1890 = trunc i8 %1889 to i1
  br i1 %1890, label %1891, label %1913

1891:                                             ; preds = %1884
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = call i32 @fileno(ptr noundef %1892) #11
  %1894 = call i32 @isatty(i32 noundef %1893) #11
  %1895 = icmp ne i32 %1894, 0
  br i1 %1895, label %1896, label %1913

1896:                                             ; preds = %1891
  %1897 = load i32, ptr %61, align 4, !tbaa !5
  %1898 = call ptr @__errno_location() #12
  store i32 %1897, ptr %1898, align 4, !tbaa !5
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = load i32, ptr @test_count, align 4, !tbaa !5
  %1901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror(i32 noundef %1902, ptr noundef @.str.4)
  %1904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call ptr @s2n_strerror_debug(i32 noundef %1905, ptr noundef @.str.4)
  %1907 = call ptr @__errno_location() #12
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call ptr @strerror(i32 noundef %1908) #11
  %1910 = call ptr @__errno_location() #12
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1899, ptr noundef @.str.2, i32 noundef %1900, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 398, ptr noundef %1903, ptr noundef %1906, ptr noundef %1909, i32 noundef %1911) #11
  br label %1930

1913:                                             ; preds = %1891, %1884
  %1914 = load i32, ptr %61, align 4, !tbaa !5
  %1915 = call ptr @__errno_location() #12
  store i32 %1914, ptr %1915, align 4, !tbaa !5
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call ptr @s2n_strerror(i32 noundef %1919, ptr noundef @.str.4)
  %1921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call ptr @s2n_strerror_debug(i32 noundef %1922, ptr noundef @.str.4)
  %1924 = call ptr @__errno_location() #12
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call ptr @strerror(i32 noundef %1925) #11
  %1927 = call ptr @__errno_location() #12
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  %1929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1916, ptr noundef @.str.5, i32 noundef %1917, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 398, ptr noundef %1920, ptr noundef %1923, ptr noundef %1926, i32 noundef %1928) #11
  br label %1930

1930:                                             ; preds = %1913, %1896
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %1931

1931:                                             ; preds = %1930
  br label %1932

1932:                                             ; preds = %1931
  call void @exit(i32 noundef 1) #13
  unreachable

1933:                                             ; No predecessors!
  br label %1934

1934:                                             ; preds = %1933
  br label %1935

1935:                                             ; preds = %1934, %1877
  br label %1936

1936:                                             ; preds = %1935
  br label %1937

1937:                                             ; preds = %1936
  br label %1938

1938:                                             ; preds = %1937
  %1939 = load i32, ptr @test_count, align 4, !tbaa !5
  %1940 = add nsw i32 %1939, 1
  store i32 %1940, ptr @test_count, align 4, !tbaa !5
  %1941 = load ptr, ptr %60, align 8, !tbaa !9
  %1942 = load ptr, ptr %27, align 8, !tbaa !9
  %1943 = call i32 @s2n_connection_set_config(ptr noundef %1941, ptr noundef %1942)
  %1944 = icmp eq i32 %1943, -1
  br i1 %1944, label %1945, label %1998

1945:                                             ; preds = %1938
  br label %1946

1946:                                             ; preds = %1945
  br label %1947

1947:                                             ; preds = %1946
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %1948 = call ptr @__errno_location() #12
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  store i32 %1949, ptr %62, align 4, !tbaa !5
  %1950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1951 = call i32 @s2n_print_stacktrace(ptr noundef %1950)
  %1952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1953 = trunc i8 %1952 to i1
  br i1 %1953, label %1954, label %1976

1954:                                             ; preds = %1947
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = call i32 @fileno(ptr noundef %1955) #11
  %1957 = call i32 @isatty(i32 noundef %1956) #11
  %1958 = icmp ne i32 %1957, 0
  br i1 %1958, label %1959, label %1976

1959:                                             ; preds = %1954
  %1960 = load i32, ptr %62, align 4, !tbaa !5
  %1961 = call ptr @__errno_location() #12
  store i32 %1960, ptr %1961, align 4, !tbaa !5
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = load i32, ptr @test_count, align 4, !tbaa !5
  %1964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call ptr @s2n_strerror(i32 noundef %1965, ptr noundef @.str.4)
  %1967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror_debug(i32 noundef %1968, ptr noundef @.str.4)
  %1970 = call ptr @__errno_location() #12
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call ptr @strerror(i32 noundef %1971) #11
  %1973 = call ptr @__errno_location() #12
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1962, ptr noundef @.str.2, i32 noundef %1963, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 399, ptr noundef %1966, ptr noundef %1969, ptr noundef %1972, i32 noundef %1974) #11
  br label %1993

1976:                                             ; preds = %1954, %1947
  %1977 = load i32, ptr %62, align 4, !tbaa !5
  %1978 = call ptr @__errno_location() #12
  store i32 %1977, ptr %1978, align 4, !tbaa !5
  %1979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1980 = load i32, ptr @test_count, align 4, !tbaa !5
  %1981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  %1983 = call ptr @s2n_strerror(i32 noundef %1982, ptr noundef @.str.4)
  %1984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror_debug(i32 noundef %1985, ptr noundef @.str.4)
  %1987 = call ptr @__errno_location() #12
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call ptr @strerror(i32 noundef %1988) #11
  %1990 = call ptr @__errno_location() #12
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1979, ptr noundef @.str.5, i32 noundef %1980, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 399, ptr noundef %1983, ptr noundef %1986, ptr noundef %1989, i32 noundef %1991) #11
  br label %1993

1993:                                             ; preds = %1976, %1959
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %1994

1994:                                             ; preds = %1993
  br label %1995

1995:                                             ; preds = %1994
  call void @exit(i32 noundef 1) #13
  unreachable

1996:                                             ; No predecessors!
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

1998:                                             ; preds = %1997, %1938
  br label %1999

1999:                                             ; preds = %1998
  br label %2000

2000:                                             ; preds = %1999
  br label %2001

2001:                                             ; preds = %2000
  %2002 = load i32, ptr @test_count, align 4, !tbaa !5
  %2003 = add nsw i32 %2002, 1
  store i32 %2003, ptr @test_count, align 4, !tbaa !5
  %2004 = load ptr, ptr %60, align 8, !tbaa !9
  %2005 = call i32 @s2n_connection_set_ctx(ptr noundef %2004, ptr noundef %59)
  %2006 = icmp eq i32 %2005, -1
  br i1 %2006, label %2007, label %2060

2007:                                             ; preds = %2001
  br label %2008

2008:                                             ; preds = %2007
  br label %2009

2009:                                             ; preds = %2008
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2010 = call ptr @__errno_location() #12
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  store i32 %2011, ptr %63, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = call i32 @s2n_print_stacktrace(ptr noundef %2012)
  %2014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2015 = trunc i8 %2014 to i1
  br i1 %2015, label %2016, label %2038

2016:                                             ; preds = %2009
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = call i32 @fileno(ptr noundef %2017) #11
  %2019 = call i32 @isatty(i32 noundef %2018) #11
  %2020 = icmp ne i32 %2019, 0
  br i1 %2020, label %2021, label %2038

2021:                                             ; preds = %2016
  %2022 = load i32, ptr %63, align 4, !tbaa !5
  %2023 = call ptr @__errno_location() #12
  store i32 %2022, ptr %2023, align 4, !tbaa !5
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = load i32, ptr @test_count, align 4, !tbaa !5
  %2026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2027 = load i32, ptr %2026, align 4, !tbaa !5
  %2028 = call ptr @s2n_strerror(i32 noundef %2027, ptr noundef @.str.4)
  %2029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror_debug(i32 noundef %2030, ptr noundef @.str.4)
  %2032 = call ptr @__errno_location() #12
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call ptr @strerror(i32 noundef %2033) #11
  %2035 = call ptr @__errno_location() #12
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2024, ptr noundef @.str.2, i32 noundef %2025, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 400, ptr noundef %2028, ptr noundef %2031, ptr noundef %2034, i32 noundef %2036) #11
  br label %2055

2038:                                             ; preds = %2016, %2009
  %2039 = load i32, ptr %63, align 4, !tbaa !5
  %2040 = call ptr @__errno_location() #12
  store i32 %2039, ptr %2040, align 4, !tbaa !5
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @s2n_strerror(i32 noundef %2044, ptr noundef @.str.4)
  %2046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef @.str.4)
  %2049 = call ptr @__errno_location() #12
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call ptr @strerror(i32 noundef %2050) #11
  %2052 = call ptr @__errno_location() #12
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  %2054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2041, ptr noundef @.str.5, i32 noundef %2042, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 400, ptr noundef %2045, ptr noundef %2048, ptr noundef %2051, i32 noundef %2053) #11
  br label %2055

2055:                                             ; preds = %2038, %2021
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

2057:                                             ; preds = %2056
  call void @exit(i32 noundef 1) #13
  unreachable

2058:                                             ; No predecessors!
  br label %2059

2059:                                             ; preds = %2058
  br label %2060

2060:                                             ; preds = %2059, %2001
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

2063:                                             ; preds = %2062
  %2064 = load i32, ptr @test_count, align 4, !tbaa !5
  %2065 = add nsw i32 %2064, 1
  store i32 %2065, ptr @test_count, align 4, !tbaa !5
  %2066 = load ptr, ptr %60, align 8, !tbaa !9
  %2067 = call i32 @s2n_connection_set_blinding(ptr noundef %2066, i32 noundef 1)
  %2068 = icmp eq i32 %2067, -1
  br i1 %2068, label %2069, label %2122

2069:                                             ; preds = %2063
  br label %2070

2070:                                             ; preds = %2069
  br label %2071

2071:                                             ; preds = %2070
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2072 = call ptr @__errno_location() #12
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  store i32 %2073, ptr %64, align 4, !tbaa !5
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = call i32 @s2n_print_stacktrace(ptr noundef %2074)
  %2076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2077 = trunc i8 %2076 to i1
  br i1 %2077, label %2078, label %2100

2078:                                             ; preds = %2071
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = call i32 @fileno(ptr noundef %2079) #11
  %2081 = call i32 @isatty(i32 noundef %2080) #11
  %2082 = icmp ne i32 %2081, 0
  br i1 %2082, label %2083, label %2100

2083:                                             ; preds = %2078
  %2084 = load i32, ptr %64, align 4, !tbaa !5
  %2085 = call ptr @__errno_location() #12
  store i32 %2084, ptr %2085, align 4, !tbaa !5
  %2086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2087 = load i32, ptr @test_count, align 4, !tbaa !5
  %2088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2089 = load i32, ptr %2088, align 4, !tbaa !5
  %2090 = call ptr @s2n_strerror(i32 noundef %2089, ptr noundef @.str.4)
  %2091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror_debug(i32 noundef %2092, ptr noundef @.str.4)
  %2094 = call ptr @__errno_location() #12
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call ptr @strerror(i32 noundef %2095) #11
  %2097 = call ptr @__errno_location() #12
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  %2099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2086, ptr noundef @.str.2, i32 noundef %2087, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 401, ptr noundef %2090, ptr noundef %2093, ptr noundef %2096, i32 noundef %2098) #11
  br label %2117

2100:                                             ; preds = %2078, %2071
  %2101 = load i32, ptr %64, align 4, !tbaa !5
  %2102 = call ptr @__errno_location() #12
  store i32 %2101, ptr %2102, align 4, !tbaa !5
  %2103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2104 = load i32, ptr @test_count, align 4, !tbaa !5
  %2105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call ptr @s2n_strerror(i32 noundef %2106, ptr noundef @.str.4)
  %2108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror_debug(i32 noundef %2109, ptr noundef @.str.4)
  %2111 = call ptr @__errno_location() #12
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call ptr @strerror(i32 noundef %2112) #11
  %2114 = call ptr @__errno_location() #12
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  %2116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2103, ptr noundef @.str.5, i32 noundef %2104, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 401, ptr noundef %2107, ptr noundef %2110, ptr noundef %2113, i32 noundef %2115) #11
  br label %2117

2117:                                             ; preds = %2100, %2083
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2118

2118:                                             ; preds = %2117
  br label %2119

2119:                                             ; preds = %2118
  call void @exit(i32 noundef 1) #13
  unreachable

2120:                                             ; No predecessors!
  br label %2121

2121:                                             ; preds = %2120
  br label %2122

2122:                                             ; preds = %2121, %2063
  br label %2123

2123:                                             ; preds = %2122
  br label %2124

2124:                                             ; preds = %2123
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #11
  br label %2125

2125:                                             ; preds = %2124
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = add nsw i32 %2126, 1
  store i32 %2127, ptr @test_count, align 4, !tbaa !5
  %2128 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %65)
  %2129 = icmp eq i32 %2128, -1
  br i1 %2129, label %2130, label %2183

2130:                                             ; preds = %2125
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2133 = call ptr @__errno_location() #12
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  store i32 %2134, ptr %66, align 4, !tbaa !5
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = call i32 @s2n_print_stacktrace(ptr noundef %2135)
  %2137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2138 = trunc i8 %2137 to i1
  br i1 %2138, label %2139, label %2161

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
  %2143 = icmp ne i32 %2142, 0
  br i1 %2143, label %2144, label %2161

2144:                                             ; preds = %2139
  %2145 = load i32, ptr %66, align 4, !tbaa !5
  %2146 = call ptr @__errno_location() #12
  store i32 %2145, ptr %2146, align 4, !tbaa !5
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = load i32, ptr @test_count, align 4, !tbaa !5
  %2149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror(i32 noundef %2150, ptr noundef @.str.4)
  %2152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror_debug(i32 noundef %2153, ptr noundef @.str.4)
  %2155 = call ptr @__errno_location() #12
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call ptr @strerror(i32 noundef %2156) #11
  %2158 = call ptr @__errno_location() #12
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2147, ptr noundef @.str.2, i32 noundef %2148, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 404, ptr noundef %2151, ptr noundef %2154, ptr noundef %2157, i32 noundef %2159) #11
  br label %2178

2161:                                             ; preds = %2139, %2132
  %2162 = load i32, ptr %66, align 4, !tbaa !5
  %2163 = call ptr @__errno_location() #12
  store i32 %2162, ptr %2163, align 4, !tbaa !5
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = load i32, ptr @test_count, align 4, !tbaa !5
  %2166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = call ptr @s2n_strerror(i32 noundef %2167, ptr noundef @.str.4)
  %2169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  %2171 = call ptr @s2n_strerror_debug(i32 noundef %2170, ptr noundef @.str.4)
  %2172 = call ptr @__errno_location() #12
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  %2174 = call ptr @strerror(i32 noundef %2173) #11
  %2175 = call ptr @__errno_location() #12
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  %2177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2164, ptr noundef @.str.5, i32 noundef %2165, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 404, ptr noundef %2168, ptr noundef %2171, ptr noundef %2174, i32 noundef %2176) #11
  br label %2178

2178:                                             ; preds = %2161, %2144
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2179

2179:                                             ; preds = %2178
  br label %2180

2180:                                             ; preds = %2179
  call void @exit(i32 noundef 1) #13
  unreachable

2181:                                             ; No predecessors!
  br label %2182

2182:                                             ; preds = %2181
  br label %2183

2183:                                             ; preds = %2182, %2125
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  br label %2186

2186:                                             ; preds = %2185
  %2187 = load i32, ptr @test_count, align 4, !tbaa !5
  %2188 = add nsw i32 %2187, 1
  store i32 %2188, ptr @test_count, align 4, !tbaa !5
  %2189 = load ptr, ptr %55, align 8, !tbaa !9
  %2190 = load ptr, ptr %60, align 8, !tbaa !9
  %2191 = call i32 @s2n_connections_set_io_pair(ptr noundef %2189, ptr noundef %2190, ptr noundef %65)
  %2192 = icmp eq i32 %2191, -1
  br i1 %2192, label %2193, label %2246

2193:                                             ; preds = %2186
  br label %2194

2194:                                             ; preds = %2193
  br label %2195

2195:                                             ; preds = %2194
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %2196 = call ptr @__errno_location() #12
  %2197 = load i32, ptr %2196, align 4, !tbaa !5
  store i32 %2197, ptr %67, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = call i32 @s2n_print_stacktrace(ptr noundef %2198)
  %2200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2201 = trunc i8 %2200 to i1
  br i1 %2201, label %2202, label %2224

2202:                                             ; preds = %2195
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = call i32 @fileno(ptr noundef %2203) #11
  %2205 = call i32 @isatty(i32 noundef %2204) #11
  %2206 = icmp ne i32 %2205, 0
  br i1 %2206, label %2207, label %2224

2207:                                             ; preds = %2202
  %2208 = load i32, ptr %67, align 4, !tbaa !5
  %2209 = call ptr @__errno_location() #12
  store i32 %2208, ptr %2209, align 4, !tbaa !5
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = load i32, ptr @test_count, align 4, !tbaa !5
  %2212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror(i32 noundef %2213, ptr noundef @.str.4)
  %2215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = call ptr @s2n_strerror_debug(i32 noundef %2216, ptr noundef @.str.4)
  %2218 = call ptr @__errno_location() #12
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = call ptr @strerror(i32 noundef %2219) #11
  %2221 = call ptr @__errno_location() #12
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2210, ptr noundef @.str.2, i32 noundef %2211, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 405, ptr noundef %2214, ptr noundef %2217, ptr noundef %2220, i32 noundef %2222) #11
  br label %2241

2224:                                             ; preds = %2202, %2195
  %2225 = load i32, ptr %67, align 4, !tbaa !5
  %2226 = call ptr @__errno_location() #12
  store i32 %2225, ptr %2226, align 4, !tbaa !5
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = load i32, ptr @test_count, align 4, !tbaa !5
  %2229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2230 = load i32, ptr %2229, align 4, !tbaa !5
  %2231 = call ptr @s2n_strerror(i32 noundef %2230, ptr noundef @.str.4)
  %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_debug(i32 noundef %2233, ptr noundef @.str.4)
  %2235 = call ptr @__errno_location() #12
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  %2237 = call ptr @strerror(i32 noundef %2236) #11
  %2238 = call ptr @__errno_location() #12
  %2239 = load i32, ptr %2238, align 4, !tbaa !5
  %2240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2227, ptr noundef @.str.5, i32 noundef %2228, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 405, ptr noundef %2231, ptr noundef %2234, ptr noundef %2237, i32 noundef %2239) #11
  br label %2241

2241:                                             ; preds = %2224, %2207
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %2242

2242:                                             ; preds = %2241
  br label %2243

2243:                                             ; preds = %2242
  call void @exit(i32 noundef 1) #13
  unreachable

2244:                                             ; No predecessors!
  br label %2245

2245:                                             ; preds = %2244
  br label %2246

2246:                                             ; preds = %2245, %2186
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

2248:                                             ; preds = %2247
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

2250:                                             ; preds = %2249
  %2251 = load i32, ptr @test_count, align 4, !tbaa !5
  %2252 = add nsw i32 %2251, 1
  store i32 %2252, ptr @test_count, align 4, !tbaa !5
  %2253 = load ptr, ptr %60, align 8, !tbaa !9
  %2254 = load ptr, ptr %55, align 8, !tbaa !9
  %2255 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2253, ptr noundef %2254)
  %2256 = icmp eq i32 %2255, -1
  br i1 %2256, label %2310, label %2257

2257:                                             ; preds = %2250
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

2259:                                             ; preds = %2258
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2260 = call ptr @__errno_location() #12
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  store i32 %2261, ptr %68, align 4, !tbaa !5
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = call i32 @s2n_print_stacktrace(ptr noundef %2262)
  %2264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2265 = trunc i8 %2264 to i1
  br i1 %2265, label %2266, label %2288

2266:                                             ; preds = %2259
  %2267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2268 = call i32 @fileno(ptr noundef %2267) #11
  %2269 = call i32 @isatty(i32 noundef %2268) #11
  %2270 = icmp ne i32 %2269, 0
  br i1 %2270, label %2271, label %2288

2271:                                             ; preds = %2266
  %2272 = load i32, ptr %68, align 4, !tbaa !5
  %2273 = call ptr @__errno_location() #12
  store i32 %2272, ptr %2273, align 4, !tbaa !5
  %2274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2275 = load i32, ptr @test_count, align 4, !tbaa !5
  %2276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call ptr @s2n_strerror(i32 noundef %2277, ptr noundef @.str.4)
  %2279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror_debug(i32 noundef %2280, ptr noundef @.str.4)
  %2282 = call ptr @__errno_location() #12
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call ptr @strerror(i32 noundef %2283) #11
  %2285 = call ptr @__errno_location() #12
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2274, ptr noundef @.str.2, i32 noundef %2275, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 407, ptr noundef %2278, ptr noundef %2281, ptr noundef %2284, i32 noundef %2286) #11
  br label %2305

2288:                                             ; preds = %2266, %2259
  %2289 = load i32, ptr %68, align 4, !tbaa !5
  %2290 = call ptr @__errno_location() #12
  store i32 %2289, ptr %2290, align 4, !tbaa !5
  %2291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2292 = load i32, ptr @test_count, align 4, !tbaa !5
  %2293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror(i32 noundef %2294, ptr noundef @.str.4)
  %2296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call ptr @s2n_strerror_debug(i32 noundef %2297, ptr noundef @.str.4)
  %2299 = call ptr @__errno_location() #12
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call ptr @strerror(i32 noundef %2300) #11
  %2302 = call ptr @__errno_location() #12
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2291, ptr noundef @.str.5, i32 noundef %2292, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 407, ptr noundef %2295, ptr noundef %2298, ptr noundef %2301, i32 noundef %2303) #11
  br label %2305

2305:                                             ; preds = %2288, %2271
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2306

2306:                                             ; preds = %2305
  br label %2307

2307:                                             ; preds = %2306
  call void @exit(i32 noundef 1) #13
  unreachable

2308:                                             ; No predecessors!
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

2310:                                             ; preds = %2309, %2250
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

2312:                                             ; preds = %2311
  br label %2313

2313:                                             ; preds = %2312
  %2314 = load i32, ptr @test_count, align 4, !tbaa !5
  %2315 = add nsw i32 %2314, 1
  store i32 %2315, ptr @test_count, align 4, !tbaa !5
  %2316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2317 = load i32, ptr %2316, align 4, !tbaa !5
  %2318 = load i32, ptr %52, align 4, !tbaa !5
  %2319 = icmp eq i32 %2317, %2318
  br i1 %2319, label %2373, label %2320

2320:                                             ; preds = %2313
  br label %2321

2321:                                             ; preds = %2320
  br label %2322

2322:                                             ; preds = %2321
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %2323 = call ptr @__errno_location() #12
  %2324 = load i32, ptr %2323, align 4, !tbaa !5
  store i32 %2324, ptr %69, align 4, !tbaa !5
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = call i32 @s2n_print_stacktrace(ptr noundef %2325)
  %2327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2328 = trunc i8 %2327 to i1
  br i1 %2328, label %2329, label %2351

2329:                                             ; preds = %2322
  %2330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2331 = call i32 @fileno(ptr noundef %2330) #11
  %2332 = call i32 @isatty(i32 noundef %2331) #11
  %2333 = icmp ne i32 %2332, 0
  br i1 %2333, label %2334, label %2351

2334:                                             ; preds = %2329
  %2335 = load i32, ptr %69, align 4, !tbaa !5
  %2336 = call ptr @__errno_location() #12
  store i32 %2335, ptr %2336, align 4, !tbaa !5
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = load i32, ptr @test_count, align 4, !tbaa !5
  %2339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror(i32 noundef %2340, ptr noundef @.str.4)
  %2342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @s2n_strerror_debug(i32 noundef %2343, ptr noundef @.str.4)
  %2345 = call ptr @__errno_location() #12
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call ptr @strerror(i32 noundef %2346) #11
  %2348 = call ptr @__errno_location() #12
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2337, ptr noundef @.str.2, i32 noundef %2338, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 407, ptr noundef %2341, ptr noundef %2344, ptr noundef %2347, i32 noundef %2349) #11
  br label %2368

2351:                                             ; preds = %2329, %2322
  %2352 = load i32, ptr %69, align 4, !tbaa !5
  %2353 = call ptr @__errno_location() #12
  store i32 %2352, ptr %2353, align 4, !tbaa !5
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = load i32, ptr @test_count, align 4, !tbaa !5
  %2356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror(i32 noundef %2357, ptr noundef @.str.4)
  %2359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @s2n_strerror_debug(i32 noundef %2360, ptr noundef @.str.4)
  %2362 = call ptr @__errno_location() #12
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call ptr @strerror(i32 noundef %2363) #11
  %2365 = call ptr @__errno_location() #12
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2354, ptr noundef @.str.5, i32 noundef %2355, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 407, ptr noundef %2358, ptr noundef %2361, ptr noundef %2364, i32 noundef %2366) #11
  br label %2368

2368:                                             ; preds = %2351, %2334
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

2370:                                             ; preds = %2369
  call void @exit(i32 noundef 1) #13
  unreachable

2371:                                             ; No predecessors!
  br label %2372

2372:                                             ; preds = %2371
  br label %2373

2373:                                             ; preds = %2372, %2313
  br label %2374

2374:                                             ; preds = %2373
  br label %2375

2375:                                             ; preds = %2374
  br label %2376

2376:                                             ; preds = %2375
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = add nsw i32 %2377, 1
  store i32 %2378, ptr @test_count, align 4, !tbaa !5
  %2379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef %2380, ptr noundef @.str.4)
  %2382 = icmp eq ptr %2381, null
  br i1 %2382, label %2383, label %2436

2383:                                             ; preds = %2376
  br label %2384

2384:                                             ; preds = %2383
  br label %2385

2385:                                             ; preds = %2384
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %2386 = call ptr @__errno_location() #12
  %2387 = load i32, ptr %2386, align 4, !tbaa !5
  store i32 %2387, ptr %70, align 4, !tbaa !5
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = call i32 @s2n_print_stacktrace(ptr noundef %2388)
  %2390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2391 = trunc i8 %2390 to i1
  br i1 %2391, label %2392, label %2414

2392:                                             ; preds = %2385
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = call i32 @fileno(ptr noundef %2393) #11
  %2395 = call i32 @isatty(i32 noundef %2394) #11
  %2396 = icmp ne i32 %2395, 0
  br i1 %2396, label %2397, label %2414

2397:                                             ; preds = %2392
  %2398 = load i32, ptr %70, align 4, !tbaa !5
  %2399 = call ptr @__errno_location() #12
  store i32 %2398, ptr %2399, align 4, !tbaa !5
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = load i32, ptr @test_count, align 4, !tbaa !5
  %2402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror(i32 noundef %2403, ptr noundef @.str.4)
  %2405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @s2n_strerror_debug(i32 noundef %2406, ptr noundef @.str.4)
  %2408 = call ptr @__errno_location() #12
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call ptr @strerror(i32 noundef %2409) #11
  %2411 = call ptr @__errno_location() #12
  %2412 = load i32, ptr %2411, align 4, !tbaa !5
  %2413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2400, ptr noundef @.str.2, i32 noundef %2401, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 407, ptr noundef %2404, ptr noundef %2407, ptr noundef %2410, i32 noundef %2412) #11
  br label %2431

2414:                                             ; preds = %2392, %2385
  %2415 = load i32, ptr %70, align 4, !tbaa !5
  %2416 = call ptr @__errno_location() #12
  store i32 %2415, ptr %2416, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror(i32 noundef %2420, ptr noundef @.str.4)
  %2422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @s2n_strerror_debug(i32 noundef %2423, ptr noundef @.str.4)
  %2425 = call ptr @__errno_location() #12
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call ptr @strerror(i32 noundef %2426) #11
  %2428 = call ptr @__errno_location() #12
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2417, ptr noundef @.str.5, i32 noundef %2418, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 407, ptr noundef %2421, ptr noundef %2424, ptr noundef %2427, i32 noundef %2429) #11
  br label %2431

2431:                                             ; preds = %2414, %2397
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2432
  call void @exit(i32 noundef 1) #13
  unreachable

2434:                                             ; No predecessors!
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435, %2376
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

2440:                                             ; preds = %2439
  %2441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call ptr @s2n_strerror_source(i32 noundef %2442)
  store ptr %2443, ptr %53, align 8, !tbaa !9
  br label %2444

2444:                                             ; preds = %2440
  %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 = load ptr, ptr %53, align 8, !tbaa !9
  %2448 = call ptr @strstr(ptr noundef %2447, ptr noundef @.str.35) #14
  %2449 = icmp eq ptr %2448, null
  br i1 %2449, label %2450, label %2503

2450:                                             ; preds = %2444
  br label %2451

2451:                                             ; preds = %2450
  br label %2452

2452:                                             ; preds = %2451
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %2453 = call ptr @__errno_location() #12
  %2454 = load i32, ptr %2453, align 4, !tbaa !5
  store i32 %2454, ptr %71, align 4, !tbaa !5
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = call i32 @s2n_print_stacktrace(ptr noundef %2455)
  %2457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2458 = trunc i8 %2457 to i1
  br i1 %2458, label %2459, label %2481

2459:                                             ; preds = %2452
  %2460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2461 = call i32 @fileno(ptr noundef %2460) #11
  %2462 = call i32 @isatty(i32 noundef %2461) #11
  %2463 = icmp ne i32 %2462, 0
  br i1 %2463, label %2464, label %2481

2464:                                             ; preds = %2459
  %2465 = load i32, ptr %71, align 4, !tbaa !5
  %2466 = call ptr @__errno_location() #12
  store i32 %2465, ptr %2466, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = load i32, ptr @test_count, align 4, !tbaa !5
  %2469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @s2n_strerror(i32 noundef %2470, ptr noundef @.str.4)
  %2472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call ptr @s2n_strerror_debug(i32 noundef %2473, ptr noundef @.str.4)
  %2475 = call ptr @__errno_location() #12
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call ptr @strerror(i32 noundef %2476) #11
  %2478 = call ptr @__errno_location() #12
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2467, ptr noundef @.str.2, i32 noundef %2468, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 411, ptr noundef %2471, ptr noundef %2474, ptr noundef %2477, i32 noundef %2479) #11
  br label %2498

2481:                                             ; preds = %2459, %2452
  %2482 = load i32, ptr %71, align 4, !tbaa !5
  %2483 = call ptr @__errno_location() #12
  store i32 %2482, ptr %2483, align 4, !tbaa !5
  %2484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2485 = load i32, ptr @test_count, align 4, !tbaa !5
  %2486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = call ptr @s2n_strerror(i32 noundef %2487, ptr noundef @.str.4)
  %2489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call ptr @s2n_strerror_debug(i32 noundef %2490, ptr noundef @.str.4)
  %2492 = call ptr @__errno_location() #12
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call ptr @strerror(i32 noundef %2493) #11
  %2495 = call ptr @__errno_location() #12
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2484, ptr noundef @.str.5, i32 noundef %2485, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 411, ptr noundef %2488, ptr noundef %2491, ptr noundef %2494, i32 noundef %2496) #11
  br label %2498

2498:                                             ; preds = %2481, %2464
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  call void @exit(i32 noundef 1) #13
  unreachable

2501:                                             ; No predecessors!
  br label %2502

2502:                                             ; preds = %2501
  br label %2503

2503:                                             ; preds = %2502, %2444
  br label %2504

2504:                                             ; preds = %2503
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

2506:                                             ; preds = %2505
  %2507 = load i32, ptr @test_count, align 4, !tbaa !5
  %2508 = add nsw i32 %2507, 1
  store i32 %2508, ptr @test_count, align 4, !tbaa !5
  %2509 = load i64, ptr %9, align 8, !tbaa !15
  %2510 = trunc i64 %2509 to i32
  %2511 = call i32 @s2n_validate_test_async_pkey_ctx(ptr noundef %59, i32 noundef %2510)
  %2512 = getelementptr inbounds %struct.s2n_result, ptr %72, i32 0, i32 0
  store i32 %2511, ptr %2512, align 4
  %2513 = getelementptr inbounds %struct.s2n_result, ptr %72, i32 0, i32 0
  %2514 = load i32, ptr %2513, align 4
  %2515 = call zeroext i1 @s2n_result_is_ok(i32 %2514)
  br i1 %2515, label %2569, label %2516

2516:                                             ; preds = %2506
  br label %2517

2517:                                             ; preds = %2516
  br label %2518

2518:                                             ; preds = %2517
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %2519 = call ptr @__errno_location() #12
  %2520 = load i32, ptr %2519, align 4, !tbaa !5
  store i32 %2520, ptr %73, 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) #11
  %2528 = call i32 @isatty(i32 noundef %2527) #11
  %2529 = icmp ne i32 %2528, 0
  br i1 %2529, label %2530, label %2547

2530:                                             ; preds = %2525
  %2531 = load i32, ptr %73, align 4, !tbaa !5
  %2532 = call ptr @__errno_location() #12
  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() #12
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @strerror(i32 noundef %2542) #11
  %2544 = call ptr @__errno_location() #12
  %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.30, ptr noundef @.str.1, i32 noundef 413, ptr noundef %2537, ptr noundef %2540, ptr noundef %2543, i32 noundef %2545) #11
  br label %2564

2547:                                             ; preds = %2525, %2518
  %2548 = load i32, ptr %73, align 4, !tbaa !5
  %2549 = call ptr @__errno_location() #12
  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() #12
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call ptr @strerror(i32 noundef %2559) #11
  %2561 = call ptr @__errno_location() #12
  %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.30, ptr noundef @.str.1, i32 noundef 413, ptr noundef %2554, ptr noundef %2557, ptr noundef %2560, i32 noundef %2562) #11
  br label %2564

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

2565:                                             ; preds = %2564
  br label %2566

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

2567:                                             ; No predecessors!
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

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

2570:                                             ; preds = %2569
  br label %2571

2571:                                             ; preds = %2570
  %2572 = call i32 @s2n_io_pair_close(ptr noundef %65)
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #11
  %2573 = call i32 @s2n_connection_ptr_free(ptr noundef %60)
  %2574 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %2573, ptr %2574, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  %2575 = call i32 @s2n_connection_ptr_free(ptr noundef %55)
  %2576 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  store i32 %2575, ptr %2576, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %54) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #11
  store i8 0, ptr %76, align 1, !tbaa !18
  br label %2577

2577:                                             ; preds = %3547, %2571
  %2578 = load i8, ptr %76, align 1, !tbaa !18
  %2579 = zext i8 %2578 to i32
  %2580 = icmp slt i32 %2579, 44
  br i1 %2580, label %2582, label %2581

2581:                                             ; preds = %2577
  store i32 242, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #11
  br label %3550

2582:                                             ; preds = %2577
  call void @llvm.lifetime.start.p0(i64 20, ptr %77) #11
  call void @llvm.memset.p0.i64(ptr align 4 %77, i8 0, i64 20, i1 false)
  %2583 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %77, i32 0, i32 0
  %2584 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %77, i32 0, i32 1
  %2585 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %77, i32 0, i32 2
  %2586 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %77, i32 0, i32 3
  %2587 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %77, i32 0, i32 4
  store i8 1, ptr %2587, align 4, !tbaa !42
  %2588 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %77, i32 0, i32 5
  %2589 = load i8, ptr %76, align 1, !tbaa !18
  store i8 %2589, ptr %2588, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  %2590 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2590, ptr %78, align 8, !tbaa !9
  br label %2591

2591:                                             ; preds = %2582
  %2592 = load i32, ptr @test_count, align 4, !tbaa !5
  %2593 = add nsw i32 %2592, 1
  store i32 %2593, ptr @test_count, align 4, !tbaa !5
  %2594 = load ptr, ptr %78, align 8, !tbaa !9
  %2595 = icmp eq ptr %2594, null
  br i1 %2595, label %2596, label %2649

2596:                                             ; preds = %2591
  br label %2597

2597:                                             ; preds = %2596
  br label %2598

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

2605:                                             ; preds = %2598
  %2606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2607 = call i32 @fileno(ptr noundef %2606) #11
  %2608 = call i32 @isatty(i32 noundef %2607) #11
  %2609 = icmp ne i32 %2608, 0
  br i1 %2609, label %2610, label %2627

2610:                                             ; preds = %2605
  %2611 = load i32, ptr %79, align 4, !tbaa !5
  %2612 = call ptr @__errno_location() #12
  store i32 %2611, ptr %2612, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = load i32, ptr @test_count, align 4, !tbaa !5
  %2615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror(i32 noundef %2616, ptr noundef @.str.4)
  %2618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2619 = load i32, ptr %2618, align 4, !tbaa !5
  %2620 = call ptr @s2n_strerror_debug(i32 noundef %2619, ptr noundef @.str.4)
  %2621 = call ptr @__errno_location() #12
  %2622 = load i32, ptr %2621, align 4, !tbaa !5
  %2623 = call ptr @strerror(i32 noundef %2622) #11
  %2624 = call ptr @__errno_location() #12
  %2625 = load i32, ptr %2624, align 4, !tbaa !5
  %2626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef @.str.2, i32 noundef %2614, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 425, ptr noundef %2617, ptr noundef %2620, ptr noundef %2623, i32 noundef %2625) #11
  br label %2644

2627:                                             ; preds = %2605, %2598
  %2628 = load i32, ptr %79, align 4, !tbaa !5
  %2629 = call ptr @__errno_location() #12
  store i32 %2628, ptr %2629, align 4, !tbaa !5
  %2630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2631 = load i32, ptr @test_count, align 4, !tbaa !5
  %2632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2633 = load i32, ptr %2632, align 4, !tbaa !5
  %2634 = call ptr @s2n_strerror(i32 noundef %2633, ptr noundef @.str.4)
  %2635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2636 = load i32, ptr %2635, align 4, !tbaa !5
  %2637 = call ptr @s2n_strerror_debug(i32 noundef %2636, ptr noundef @.str.4)
  %2638 = call ptr @__errno_location() #12
  %2639 = load i32, ptr %2638, align 4, !tbaa !5
  %2640 = call ptr @strerror(i32 noundef %2639) #11
  %2641 = call ptr @__errno_location() #12
  %2642 = load i32, ptr %2641, align 4, !tbaa !5
  %2643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2630, ptr noundef @.str.5, i32 noundef %2631, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 425, ptr noundef %2634, ptr noundef %2637, ptr noundef %2640, i32 noundef %2642) #11
  br label %2644

2644:                                             ; preds = %2627, %2610
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %2645

2645:                                             ; preds = %2644
  br label %2646

2646:                                             ; preds = %2645
  call void @exit(i32 noundef 1) #13
  unreachable

2647:                                             ; No predecessors!
  br label %2648

2648:                                             ; preds = %2647
  br label %2649

2649:                                             ; preds = %2648, %2591
  br label %2650

2650:                                             ; preds = %2649
  br label %2651

2651:                                             ; preds = %2650
  br label %2652

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

2659:                                             ; preds = %2652
  br label %2660

2660:                                             ; preds = %2659
  br label %2661

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

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

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

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

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

2708:                                             ; preds = %2707
  br label %2709

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

2710:                                             ; No predecessors!
  br label %2711

2711:                                             ; preds = %2710
  br label %2712

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

2713:                                             ; preds = %2712
  br label %2714

2714:                                             ; preds = %2713
  br label %2715

2715:                                             ; preds = %2714
  %2716 = load i32, ptr @test_count, align 4, !tbaa !5
  %2717 = add nsw i32 %2716, 1
  store i32 %2717, ptr @test_count, align 4, !tbaa !5
  %2718 = load ptr, ptr %78, align 8, !tbaa !9
  %2719 = call i32 @s2n_connection_set_ctx(ptr noundef %2718, ptr noundef %77)
  %2720 = icmp eq i32 %2719, -1
  br i1 %2720, label %2721, label %2774

2721:                                             ; preds = %2715
  br label %2722

2722:                                             ; preds = %2721
  br label %2723

2723:                                             ; preds = %2722
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %2724 = call ptr @__errno_location() #12
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  store i32 %2725, ptr %81, align 4, !tbaa !5
  %2726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2727 = call i32 @s2n_print_stacktrace(ptr noundef %2726)
  %2728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2729 = trunc i8 %2728 to i1
  br i1 %2729, label %2730, label %2752

2730:                                             ; preds = %2723
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = call i32 @fileno(ptr noundef %2731) #11
  %2733 = call i32 @isatty(i32 noundef %2732) #11
  %2734 = icmp ne i32 %2733, 0
  br i1 %2734, label %2735, label %2752

2735:                                             ; preds = %2730
  %2736 = load i32, ptr %81, align 4, !tbaa !5
  %2737 = call ptr @__errno_location() #12
  store i32 %2736, ptr %2737, 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 @.str.4)
  %2743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call ptr @s2n_strerror_debug(i32 noundef %2744, ptr noundef @.str.4)
  %2746 = call ptr @__errno_location() #12
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call ptr @strerror(i32 noundef %2747) #11
  %2749 = call ptr @__errno_location() #12
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2738, ptr noundef @.str.2, i32 noundef %2739, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 427, ptr noundef %2742, ptr noundef %2745, ptr noundef %2748, i32 noundef %2750) #11
  br label %2769

2752:                                             ; preds = %2730, %2723
  %2753 = load i32, ptr %81, align 4, !tbaa !5
  %2754 = call ptr @__errno_location() #12
  store i32 %2753, ptr %2754, align 4, !tbaa !5
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = load i32, ptr @test_count, align 4, !tbaa !5
  %2757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror(i32 noundef %2758, ptr noundef @.str.4)
  %2760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror_debug(i32 noundef %2761, ptr noundef @.str.4)
  %2763 = call ptr @__errno_location() #12
  %2764 = load i32, ptr %2763, align 4, !tbaa !5
  %2765 = call ptr @strerror(i32 noundef %2764) #11
  %2766 = call ptr @__errno_location() #12
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2755, ptr noundef @.str.5, i32 noundef %2756, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 427, ptr noundef %2759, ptr noundef %2762, ptr noundef %2765, i32 noundef %2767) #11
  br label %2769

2769:                                             ; preds = %2752, %2735
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %2770

2770:                                             ; preds = %2769
  br label %2771

2771:                                             ; preds = %2770
  call void @exit(i32 noundef 1) #13
  unreachable

2772:                                             ; No predecessors!
  br label %2773

2773:                                             ; preds = %2772
  br label %2774

2774:                                             ; preds = %2773, %2715
  br label %2775

2775:                                             ; preds = %2774
  br label %2776

2776:                                             ; preds = %2775
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #11
  call void @llvm.memset.p0.i64(ptr align 4 %82, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #11
  %2777 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2777, ptr %83, align 8, !tbaa !9
  br label %2778

2778:                                             ; preds = %2776
  %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 = load ptr, ptr %83, align 8, !tbaa !9
  %2782 = icmp eq ptr %2781, null
  br i1 %2782, label %2783, label %2836

2783:                                             ; preds = %2778
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

2785:                                             ; preds = %2784
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %2786 = call ptr @__errno_location() #12
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  store i32 %2787, ptr %84, align 4, !tbaa !5
  %2788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2789 = call i32 @s2n_print_stacktrace(ptr noundef %2788)
  %2790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2791 = trunc i8 %2790 to i1
  br i1 %2791, label %2792, label %2814

2792:                                             ; preds = %2785
  %2793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2794 = call i32 @fileno(ptr noundef %2793) #11
  %2795 = call i32 @isatty(i32 noundef %2794) #11
  %2796 = icmp ne i32 %2795, 0
  br i1 %2796, label %2797, label %2814

2797:                                             ; preds = %2792
  %2798 = load i32, ptr %84, align 4, !tbaa !5
  %2799 = call ptr @__errno_location() #12
  store i32 %2798, ptr %2799, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2803 = load i32, ptr %2802, align 4, !tbaa !5
  %2804 = call ptr @s2n_strerror(i32 noundef %2803, ptr noundef @.str.4)
  %2805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  %2807 = call ptr @s2n_strerror_debug(i32 noundef %2806, ptr noundef @.str.4)
  %2808 = call ptr @__errno_location() #12
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = call ptr @strerror(i32 noundef %2809) #11
  %2811 = call ptr @__errno_location() #12
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2800, ptr noundef @.str.2, i32 noundef %2801, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 433, ptr noundef %2804, ptr noundef %2807, ptr noundef %2810, i32 noundef %2812) #11
  br label %2831

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

2831:                                             ; preds = %2814, %2797
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %2832

2832:                                             ; preds = %2831
  br label %2833

2833:                                             ; preds = %2832
  call void @exit(i32 noundef 1) #13
  unreachable

2834:                                             ; No predecessors!
  br label %2835

2835:                                             ; preds = %2834
  br label %2836

2836:                                             ; preds = %2835, %2778
  br label %2837

2837:                                             ; preds = %2836
  br label %2838

2838:                                             ; preds = %2837
  br label %2839

2839:                                             ; preds = %2838
  %2840 = load i32, ptr @test_count, align 4, !tbaa !5
  %2841 = add nsw i32 %2840, 1
  store i32 %2841, ptr @test_count, align 4, !tbaa !5
  %2842 = load ptr, ptr %83, align 8, !tbaa !9
  %2843 = load ptr, ptr %27, align 8, !tbaa !9
  %2844 = call i32 @s2n_connection_set_config(ptr noundef %2842, ptr noundef %2843)
  %2845 = icmp eq i32 %2844, -1
  br i1 %2845, label %2846, label %2899

2846:                                             ; preds = %2839
  br label %2847

2847:                                             ; preds = %2846
  br label %2848

2848:                                             ; preds = %2847
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %2849 = call ptr @__errno_location() #12
  %2850 = load i32, ptr %2849, align 4, !tbaa !5
  store i32 %2850, ptr %85, align 4, !tbaa !5
  %2851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2852 = call i32 @s2n_print_stacktrace(ptr noundef %2851)
  %2853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2854 = trunc i8 %2853 to i1
  br i1 %2854, label %2855, label %2877

2855:                                             ; preds = %2848
  %2856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2857 = call i32 @fileno(ptr noundef %2856) #11
  %2858 = call i32 @isatty(i32 noundef %2857) #11
  %2859 = icmp ne i32 %2858, 0
  br i1 %2859, label %2860, label %2877

2860:                                             ; preds = %2855
  %2861 = load i32, ptr %85, align 4, !tbaa !5
  %2862 = call ptr @__errno_location() #12
  store i32 %2861, ptr %2862, align 4, !tbaa !5
  %2863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2864 = load i32, ptr @test_count, align 4, !tbaa !5
  %2865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2866 = load i32, ptr %2865, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror(i32 noundef %2866, ptr noundef @.str.4)
  %2868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = call ptr @s2n_strerror_debug(i32 noundef %2869, ptr noundef @.str.4)
  %2871 = call ptr @__errno_location() #12
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call ptr @strerror(i32 noundef %2872) #11
  %2874 = call ptr @__errno_location() #12
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2863, ptr noundef @.str.2, i32 noundef %2864, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 434, ptr noundef %2867, ptr noundef %2870, ptr noundef %2873, i32 noundef %2875) #11
  br label %2894

2877:                                             ; preds = %2855, %2848
  %2878 = load i32, ptr %85, align 4, !tbaa !5
  %2879 = call ptr @__errno_location() #12
  store i32 %2878, ptr %2879, align 4, !tbaa !5
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = load i32, ptr @test_count, align 4, !tbaa !5
  %2882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  %2884 = call ptr @s2n_strerror(i32 noundef %2883, ptr noundef @.str.4)
  %2885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call ptr @s2n_strerror_debug(i32 noundef %2886, ptr noundef @.str.4)
  %2888 = call ptr @__errno_location() #12
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call ptr @strerror(i32 noundef %2889) #11
  %2891 = call ptr @__errno_location() #12
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2880, ptr noundef @.str.5, i32 noundef %2881, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 434, ptr noundef %2884, ptr noundef %2887, ptr noundef %2890, i32 noundef %2892) #11
  br label %2894

2894:                                             ; preds = %2877, %2860
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %2895

2895:                                             ; preds = %2894
  br label %2896

2896:                                             ; preds = %2895
  call void @exit(i32 noundef 1) #13
  unreachable

2897:                                             ; No predecessors!
  br label %2898

2898:                                             ; preds = %2897
  br label %2899

2899:                                             ; preds = %2898, %2839
  br label %2900

2900:                                             ; preds = %2899
  br label %2901

2901:                                             ; preds = %2900
  br label %2902

2902:                                             ; preds = %2901
  %2903 = load i32, ptr @test_count, align 4, !tbaa !5
  %2904 = add nsw i32 %2903, 1
  store i32 %2904, ptr @test_count, align 4, !tbaa !5
  %2905 = load ptr, ptr %83, align 8, !tbaa !9
  %2906 = call i32 @s2n_connection_set_ctx(ptr noundef %2905, ptr noundef %82)
  %2907 = icmp eq i32 %2906, -1
  br i1 %2907, label %2908, label %2961

2908:                                             ; preds = %2902
  br label %2909

2909:                                             ; preds = %2908
  br label %2910

2910:                                             ; preds = %2909
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %2911 = call ptr @__errno_location() #12
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  store i32 %2912, ptr %86, align 4, !tbaa !5
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = call i32 @s2n_print_stacktrace(ptr noundef %2913)
  %2915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2916 = trunc i8 %2915 to i1
  br i1 %2916, label %2917, label %2939

2917:                                             ; preds = %2910
  %2918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2919 = call i32 @fileno(ptr noundef %2918) #11
  %2920 = call i32 @isatty(i32 noundef %2919) #11
  %2921 = icmp ne i32 %2920, 0
  br i1 %2921, label %2922, label %2939

2922:                                             ; preds = %2917
  %2923 = load i32, ptr %86, align 4, !tbaa !5
  %2924 = call ptr @__errno_location() #12
  store i32 %2923, ptr %2924, align 4, !tbaa !5
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = load i32, ptr @test_count, align 4, !tbaa !5
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror(i32 noundef %2928, ptr noundef @.str.4)
  %2930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @s2n_strerror_debug(i32 noundef %2931, ptr noundef @.str.4)
  %2933 = call ptr @__errno_location() #12
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call ptr @strerror(i32 noundef %2934) #11
  %2936 = call ptr @__errno_location() #12
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2925, ptr noundef @.str.2, i32 noundef %2926, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 435, ptr noundef %2929, ptr noundef %2932, ptr noundef %2935, i32 noundef %2937) #11
  br label %2956

2939:                                             ; preds = %2917, %2910
  %2940 = load i32, ptr %86, align 4, !tbaa !5
  %2941 = call ptr @__errno_location() #12
  store i32 %2940, ptr %2941, align 4, !tbaa !5
  %2942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2943 = load i32, ptr @test_count, align 4, !tbaa !5
  %2944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2945 = load i32, ptr %2944, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror(i32 noundef %2945, ptr noundef @.str.4)
  %2947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2948 = load i32, ptr %2947, align 4, !tbaa !5
  %2949 = call ptr @s2n_strerror_debug(i32 noundef %2948, ptr noundef @.str.4)
  %2950 = call ptr @__errno_location() #12
  %2951 = load i32, ptr %2950, align 4, !tbaa !5
  %2952 = call ptr @strerror(i32 noundef %2951) #11
  %2953 = call ptr @__errno_location() #12
  %2954 = load i32, ptr %2953, align 4, !tbaa !5
  %2955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2942, ptr noundef @.str.5, i32 noundef %2943, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 435, ptr noundef %2946, ptr noundef %2949, ptr noundef %2952, i32 noundef %2954) #11
  br label %2956

2956:                                             ; preds = %2939, %2922
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957
  call void @exit(i32 noundef 1) #13
  unreachable

2959:                                             ; No predecessors!
  br label %2960

2960:                                             ; preds = %2959
  br label %2961

2961:                                             ; preds = %2960, %2902
  br label %2962

2962:                                             ; preds = %2961
  br label %2963

2963:                                             ; preds = %2962
  br label %2964

2964:                                             ; preds = %2963
  %2965 = load i32, ptr @test_count, align 4, !tbaa !5
  %2966 = add nsw i32 %2965, 1
  store i32 %2966, ptr @test_count, align 4, !tbaa !5
  %2967 = load ptr, ptr %83, align 8, !tbaa !9
  %2968 = call i32 @s2n_connection_set_blinding(ptr noundef %2967, i32 noundef 1)
  %2969 = icmp eq i32 %2968, -1
  br i1 %2969, label %2970, label %3023

2970:                                             ; preds = %2964
  br label %2971

2971:                                             ; preds = %2970
  br label %2972

2972:                                             ; preds = %2971
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %2973 = call ptr @__errno_location() #12
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  store i32 %2974, ptr %87, align 4, !tbaa !5
  %2975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2976 = call i32 @s2n_print_stacktrace(ptr noundef %2975)
  %2977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2978 = trunc i8 %2977 to i1
  br i1 %2978, label %2979, label %3001

2979:                                             ; preds = %2972
  %2980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2981 = call i32 @fileno(ptr noundef %2980) #11
  %2982 = call i32 @isatty(i32 noundef %2981) #11
  %2983 = icmp ne i32 %2982, 0
  br i1 %2983, label %2984, label %3001

2984:                                             ; preds = %2979
  %2985 = load i32, ptr %87, align 4, !tbaa !5
  %2986 = call ptr @__errno_location() #12
  store i32 %2985, ptr %2986, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @s2n_strerror(i32 noundef %2990, ptr noundef @.str.4)
  %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_debug(i32 noundef %2993, ptr noundef @.str.4)
  %2995 = call ptr @__errno_location() #12
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @strerror(i32 noundef %2996) #11
  %2998 = call ptr @__errno_location() #12
  %2999 = load i32, ptr %2998, align 4, !tbaa !5
  %3000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2987, ptr noundef @.str.2, i32 noundef %2988, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 436, ptr noundef %2991, ptr noundef %2994, ptr noundef %2997, i32 noundef %2999) #11
  br label %3018

3001:                                             ; preds = %2979, %2972
  %3002 = load i32, ptr %87, align 4, !tbaa !5
  %3003 = call ptr @__errno_location() #12
  store i32 %3002, ptr %3003, align 4, !tbaa !5
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = load i32, ptr @test_count, align 4, !tbaa !5
  %3006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call ptr @s2n_strerror(i32 noundef %3007, ptr noundef @.str.4)
  %3009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  %3011 = call ptr @s2n_strerror_debug(i32 noundef %3010, ptr noundef @.str.4)
  %3012 = call ptr @__errno_location() #12
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call ptr @strerror(i32 noundef %3013) #11
  %3015 = call ptr @__errno_location() #12
  %3016 = load i32, ptr %3015, align 4, !tbaa !5
  %3017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3004, ptr noundef @.str.5, i32 noundef %3005, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 436, ptr noundef %3008, ptr noundef %3011, ptr noundef %3014, i32 noundef %3016) #11
  br label %3018

3018:                                             ; preds = %3001, %2984
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3019

3019:                                             ; preds = %3018
  br label %3020

3020:                                             ; preds = %3019
  call void @exit(i32 noundef 1) #13
  unreachable

3021:                                             ; No predecessors!
  br label %3022

3022:                                             ; preds = %3021
  br label %3023

3023:                                             ; preds = %3022, %2964
  br label %3024

3024:                                             ; preds = %3023
  br label %3025

3025:                                             ; preds = %3024
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #11
  br label %3026

3026:                                             ; preds = %3025
  %3027 = load i32, ptr @test_count, align 4, !tbaa !5
  %3028 = add nsw i32 %3027, 1
  store i32 %3028, ptr @test_count, align 4, !tbaa !5
  %3029 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %88)
  %3030 = icmp eq i32 %3029, -1
  br i1 %3030, label %3031, label %3084

3031:                                             ; preds = %3026
  br label %3032

3032:                                             ; preds = %3031
  br label %3033

3033:                                             ; preds = %3032
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %3034 = call ptr @__errno_location() #12
  %3035 = load i32, ptr %3034, align 4, !tbaa !5
  store i32 %3035, ptr %89, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = call i32 @s2n_print_stacktrace(ptr noundef %3036)
  %3038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3039 = trunc i8 %3038 to i1
  br i1 %3039, label %3040, label %3062

3040:                                             ; preds = %3033
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @fileno(ptr noundef %3041) #11
  %3043 = call i32 @isatty(i32 noundef %3042) #11
  %3044 = icmp ne i32 %3043, 0
  br i1 %3044, label %3045, label %3062

3045:                                             ; preds = %3040
  %3046 = load i32, ptr %89, align 4, !tbaa !5
  %3047 = call ptr @__errno_location() #12
  store i32 %3046, ptr %3047, align 4, !tbaa !5
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = load i32, ptr @test_count, align 4, !tbaa !5
  %3050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror(i32 noundef %3051, ptr noundef @.str.4)
  %3053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror_debug(i32 noundef %3054, ptr noundef @.str.4)
  %3056 = call ptr @__errno_location() #12
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #11
  %3059 = call ptr @__errno_location() #12
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3048, ptr noundef @.str.2, i32 noundef %3049, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 439, ptr noundef %3052, ptr noundef %3055, ptr noundef %3058, i32 noundef %3060) #11
  br label %3079

3062:                                             ; preds = %3040, %3033
  %3063 = load i32, ptr %89, align 4, !tbaa !5
  %3064 = call ptr @__errno_location() #12
  store i32 %3063, ptr %3064, align 4, !tbaa !5
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = load i32, ptr @test_count, align 4, !tbaa !5
  %3067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3068 = load i32, ptr %3067, align 4, !tbaa !5
  %3069 = call ptr @s2n_strerror(i32 noundef %3068, ptr noundef @.str.4)
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror_debug(i32 noundef %3071, ptr noundef @.str.4)
  %3073 = call ptr @__errno_location() #12
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call ptr @strerror(i32 noundef %3074) #11
  %3076 = call ptr @__errno_location() #12
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3065, ptr noundef @.str.5, i32 noundef %3066, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 439, ptr noundef %3069, ptr noundef %3072, ptr noundef %3075, i32 noundef %3077) #11
  br label %3079

3079:                                             ; preds = %3062, %3045
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %3080

3080:                                             ; preds = %3079
  br label %3081

3081:                                             ; preds = %3080
  call void @exit(i32 noundef 1) #13
  unreachable

3082:                                             ; No predecessors!
  br label %3083

3083:                                             ; preds = %3082
  br label %3084

3084:                                             ; preds = %3083, %3026
  br label %3085

3085:                                             ; preds = %3084
  br label %3086

3086:                                             ; preds = %3085
  br label %3087

3087:                                             ; preds = %3086
  %3088 = load i32, ptr @test_count, align 4, !tbaa !5
  %3089 = add nsw i32 %3088, 1
  store i32 %3089, ptr @test_count, align 4, !tbaa !5
  %3090 = load ptr, ptr %78, align 8, !tbaa !9
  %3091 = load ptr, ptr %83, align 8, !tbaa !9
  %3092 = call i32 @s2n_connections_set_io_pair(ptr noundef %3090, ptr noundef %3091, ptr noundef %88)
  %3093 = icmp eq i32 %3092, -1
  br i1 %3093, label %3094, label %3147

3094:                                             ; preds = %3087
  br label %3095

3095:                                             ; preds = %3094
  br label %3096

3096:                                             ; preds = %3095
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %3097 = call ptr @__errno_location() #12
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  store i32 %3098, ptr %90, align 4, !tbaa !5
  %3099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3100 = call i32 @s2n_print_stacktrace(ptr noundef %3099)
  %3101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3102 = trunc i8 %3101 to i1
  br i1 %3102, label %3103, label %3125

3103:                                             ; preds = %3096
  %3104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3105 = call i32 @fileno(ptr noundef %3104) #11
  %3106 = call i32 @isatty(i32 noundef %3105) #11
  %3107 = icmp ne i32 %3106, 0
  br i1 %3107, label %3108, label %3125

3108:                                             ; preds = %3103
  %3109 = load i32, ptr %90, align 4, !tbaa !5
  %3110 = call ptr @__errno_location() #12
  store i32 %3109, ptr %3110, align 4, !tbaa !5
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = load i32, ptr @test_count, align 4, !tbaa !5
  %3113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3114 = load i32, ptr %3113, align 4, !tbaa !5
  %3115 = call ptr @s2n_strerror(i32 noundef %3114, ptr noundef @.str.4)
  %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_debug(i32 noundef %3117, ptr noundef @.str.4)
  %3119 = call ptr @__errno_location() #12
  %3120 = load i32, ptr %3119, align 4, !tbaa !5
  %3121 = call ptr @strerror(i32 noundef %3120) #11
  %3122 = call ptr @__errno_location() #12
  %3123 = load i32, ptr %3122, align 4, !tbaa !5
  %3124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3111, ptr noundef @.str.2, i32 noundef %3112, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 440, ptr noundef %3115, ptr noundef %3118, ptr noundef %3121, i32 noundef %3123) #11
  br label %3142

3125:                                             ; preds = %3103, %3096
  %3126 = load i32, ptr %90, align 4, !tbaa !5
  %3127 = call ptr @__errno_location() #12
  store i32 %3126, ptr %3127, align 4, !tbaa !5
  %3128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3129 = load i32, ptr @test_count, align 4, !tbaa !5
  %3130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3131 = load i32, ptr %3130, align 4, !tbaa !5
  %3132 = call ptr @s2n_strerror(i32 noundef %3131, ptr noundef @.str.4)
  %3133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3134 = load i32, ptr %3133, align 4, !tbaa !5
  %3135 = call ptr @s2n_strerror_debug(i32 noundef %3134, ptr noundef @.str.4)
  %3136 = call ptr @__errno_location() #12
  %3137 = load i32, ptr %3136, align 4, !tbaa !5
  %3138 = call ptr @strerror(i32 noundef %3137) #11
  %3139 = call ptr @__errno_location() #12
  %3140 = load i32, ptr %3139, align 4, !tbaa !5
  %3141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3128, ptr noundef @.str.5, i32 noundef %3129, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 440, ptr noundef %3132, ptr noundef %3135, ptr noundef %3138, i32 noundef %3140) #11
  br label %3142

3142:                                             ; preds = %3125, %3108
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3143

3143:                                             ; preds = %3142
  br label %3144

3144:                                             ; preds = %3143
  call void @exit(i32 noundef 1) #13
  unreachable

3145:                                             ; No predecessors!
  br label %3146

3146:                                             ; preds = %3145
  br label %3147

3147:                                             ; preds = %3146, %3087
  br label %3148

3148:                                             ; preds = %3147
  br label %3149

3149:                                             ; preds = %3148
  %3150 = load i8, ptr %76, align 1, !tbaa !18
  %3151 = zext i8 %3150 to i32
  %3152 = icmp eq i32 %3151, 33
  br i1 %3152, label %3153, label %3217

3153:                                             ; preds = %3149
  br label %3154

3154:                                             ; preds = %3153
  %3155 = load i32, ptr @test_count, align 4, !tbaa !5
  %3156 = add nsw i32 %3155, 1
  store i32 %3156, ptr @test_count, align 4, !tbaa !5
  %3157 = load ptr, ptr %83, align 8, !tbaa !9
  %3158 = load ptr, ptr %78, align 8, !tbaa !9
  %3159 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3157, ptr noundef %3158)
  %3160 = icmp eq i32 %3159, -1
  br i1 %3160, label %3161, label %3214

3161:                                             ; preds = %3154
  br label %3162

3162:                                             ; preds = %3161
  br label %3163

3163:                                             ; preds = %3162
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3164 = call ptr @__errno_location() #12
  %3165 = load i32, ptr %3164, align 4, !tbaa !5
  store i32 %3165, ptr %91, align 4, !tbaa !5
  %3166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3167 = call i32 @s2n_print_stacktrace(ptr noundef %3166)
  %3168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3169 = trunc i8 %3168 to i1
  br i1 %3169, label %3170, label %3192

3170:                                             ; preds = %3163
  %3171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3172 = call i32 @fileno(ptr noundef %3171) #11
  %3173 = call i32 @isatty(i32 noundef %3172) #11
  %3174 = icmp ne i32 %3173, 0
  br i1 %3174, label %3175, label %3192

3175:                                             ; preds = %3170
  %3176 = load i32, ptr %91, align 4, !tbaa !5
  %3177 = call ptr @__errno_location() #12
  store i32 %3176, ptr %3177, align 4, !tbaa !5
  %3178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3179 = load i32, ptr @test_count, align 4, !tbaa !5
  %3180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3181 = load i32, ptr %3180, align 4, !tbaa !5
  %3182 = call ptr @s2n_strerror(i32 noundef %3181, ptr noundef @.str.4)
  %3183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = call ptr @s2n_strerror_debug(i32 noundef %3184, ptr noundef @.str.4)
  %3186 = call ptr @__errno_location() #12
  %3187 = load i32, ptr %3186, align 4, !tbaa !5
  %3188 = call ptr @strerror(i32 noundef %3187) #11
  %3189 = call ptr @__errno_location() #12
  %3190 = load i32, ptr %3189, align 4, !tbaa !5
  %3191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3178, ptr noundef @.str.2, i32 noundef %3179, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 443, ptr noundef %3182, ptr noundef %3185, ptr noundef %3188, i32 noundef %3190) #11
  br label %3209

3192:                                             ; preds = %3170, %3163
  %3193 = load i32, ptr %91, align 4, !tbaa !5
  %3194 = call ptr @__errno_location() #12
  store i32 %3193, ptr %3194, align 4, !tbaa !5
  %3195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3196 = load i32, ptr @test_count, align 4, !tbaa !5
  %3197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3198 = load i32, ptr %3197, align 4, !tbaa !5
  %3199 = call ptr @s2n_strerror(i32 noundef %3198, ptr noundef @.str.4)
  %3200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3201 = load i32, ptr %3200, align 4, !tbaa !5
  %3202 = call ptr @s2n_strerror_debug(i32 noundef %3201, ptr noundef @.str.4)
  %3203 = call ptr @__errno_location() #12
  %3204 = load i32, ptr %3203, align 4, !tbaa !5
  %3205 = call ptr @strerror(i32 noundef %3204) #11
  %3206 = call ptr @__errno_location() #12
  %3207 = load i32, ptr %3206, align 4, !tbaa !5
  %3208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3195, ptr noundef @.str.5, i32 noundef %3196, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 443, ptr noundef %3199, ptr noundef %3202, ptr noundef %3205, i32 noundef %3207) #11
  br label %3209

3209:                                             ; preds = %3192, %3175
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %3210

3210:                                             ; preds = %3209
  br label %3211

3211:                                             ; preds = %3210
  call void @exit(i32 noundef 1) #13
  unreachable

3212:                                             ; No predecessors!
  br label %3213

3213:                                             ; preds = %3212
  br label %3214

3214:                                             ; preds = %3213, %3154
  br label %3215

3215:                                             ; preds = %3214
  br label %3216

3216:                                             ; preds = %3215
  br label %3475

3217:                                             ; preds = %3149
  br label %3218

3218:                                             ; preds = %3217
  br label %3219

3219:                                             ; preds = %3218
  %3220 = load i32, ptr @test_count, align 4, !tbaa !5
  %3221 = add nsw i32 %3220, 1
  store i32 %3221, ptr @test_count, align 4, !tbaa !5
  %3222 = load ptr, ptr %83, align 8, !tbaa !9
  %3223 = load ptr, ptr %78, align 8, !tbaa !9
  %3224 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3222, ptr noundef %3223)
  %3225 = icmp eq i32 %3224, -1
  br i1 %3225, label %3279, label %3226

3226:                                             ; preds = %3219
  br label %3227

3227:                                             ; preds = %3226
  br label %3228

3228:                                             ; preds = %3227
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %3229 = call ptr @__errno_location() #12
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  store i32 %3230, ptr %92, align 4, !tbaa !5
  %3231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3232 = call i32 @s2n_print_stacktrace(ptr noundef %3231)
  %3233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3234 = trunc i8 %3233 to i1
  br i1 %3234, label %3235, label %3257

3235:                                             ; preds = %3228
  %3236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3237 = call i32 @fileno(ptr noundef %3236) #11
  %3238 = call i32 @isatty(i32 noundef %3237) #11
  %3239 = icmp ne i32 %3238, 0
  br i1 %3239, label %3240, label %3257

3240:                                             ; preds = %3235
  %3241 = load i32, ptr %92, align 4, !tbaa !5
  %3242 = call ptr @__errno_location() #12
  store i32 %3241, ptr %3242, align 4, !tbaa !5
  %3243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3244 = load i32, ptr @test_count, align 4, !tbaa !5
  %3245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3246 = load i32, ptr %3245, align 4, !tbaa !5
  %3247 = call ptr @s2n_strerror(i32 noundef %3246, ptr noundef @.str.4)
  %3248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3249 = load i32, ptr %3248, align 4, !tbaa !5
  %3250 = call ptr @s2n_strerror_debug(i32 noundef %3249, ptr noundef @.str.4)
  %3251 = call ptr @__errno_location() #12
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call ptr @strerror(i32 noundef %3252) #11
  %3254 = call ptr @__errno_location() #12
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3243, ptr noundef @.str.2, i32 noundef %3244, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 446, ptr noundef %3247, ptr noundef %3250, ptr noundef %3253, i32 noundef %3255) #11
  br label %3274

3257:                                             ; preds = %3235, %3228
  %3258 = load i32, ptr %92, align 4, !tbaa !5
  %3259 = call ptr @__errno_location() #12
  store i32 %3258, ptr %3259, align 4, !tbaa !5
  %3260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3261 = load i32, ptr @test_count, align 4, !tbaa !5
  %3262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  %3264 = call ptr @s2n_strerror(i32 noundef %3263, ptr noundef @.str.4)
  %3265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3266 = load i32, ptr %3265, align 4, !tbaa !5
  %3267 = call ptr @s2n_strerror_debug(i32 noundef %3266, ptr noundef @.str.4)
  %3268 = call ptr @__errno_location() #12
  %3269 = load i32, ptr %3268, align 4, !tbaa !5
  %3270 = call ptr @strerror(i32 noundef %3269) #11
  %3271 = call ptr @__errno_location() #12
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  %3273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3260, ptr noundef @.str.5, i32 noundef %3261, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 446, ptr noundef %3264, ptr noundef %3267, ptr noundef %3270, i32 noundef %3272) #11
  br label %3274

3274:                                             ; preds = %3257, %3240
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %3275

3275:                                             ; preds = %3274
  br label %3276

3276:                                             ; preds = %3275
  call void @exit(i32 noundef 1) #13
  unreachable

3277:                                             ; No predecessors!
  br label %3278

3278:                                             ; preds = %3277
  br label %3279

3279:                                             ; preds = %3278, %3219
  br label %3280

3280:                                             ; preds = %3279
  br label %3281

3281:                                             ; preds = %3280
  br label %3282

3282:                                             ; preds = %3281
  %3283 = load i32, ptr @test_count, align 4, !tbaa !5
  %3284 = add nsw i32 %3283, 1
  store i32 %3284, ptr @test_count, align 4, !tbaa !5
  %3285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3286 = load i32, ptr %3285, align 4, !tbaa !5
  %3287 = load i32, ptr %52, align 4, !tbaa !5
  %3288 = icmp eq i32 %3286, %3287
  br i1 %3288, label %3342, label %3289

3289:                                             ; preds = %3282
  br label %3290

3290:                                             ; preds = %3289
  br label %3291

3291:                                             ; preds = %3290
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %3292 = call ptr @__errno_location() #12
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  store i32 %3293, ptr %93, align 4, !tbaa !5
  %3294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3295 = call i32 @s2n_print_stacktrace(ptr noundef %3294)
  %3296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3297 = trunc i8 %3296 to i1
  br i1 %3297, label %3298, label %3320

3298:                                             ; preds = %3291
  %3299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3300 = call i32 @fileno(ptr noundef %3299) #11
  %3301 = call i32 @isatty(i32 noundef %3300) #11
  %3302 = icmp ne i32 %3301, 0
  br i1 %3302, label %3303, label %3320

3303:                                             ; preds = %3298
  %3304 = load i32, ptr %93, align 4, !tbaa !5
  %3305 = call ptr @__errno_location() #12
  store i32 %3304, ptr %3305, align 4, !tbaa !5
  %3306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3307 = load i32, ptr @test_count, align 4, !tbaa !5
  %3308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3309 = load i32, ptr %3308, align 4, !tbaa !5
  %3310 = call ptr @s2n_strerror(i32 noundef %3309, ptr noundef @.str.4)
  %3311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call ptr @s2n_strerror_debug(i32 noundef %3312, ptr noundef @.str.4)
  %3314 = call ptr @__errno_location() #12
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call ptr @strerror(i32 noundef %3315) #11
  %3317 = call ptr @__errno_location() #12
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  %3319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3306, ptr noundef @.str.2, i32 noundef %3307, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 446, ptr noundef %3310, ptr noundef %3313, ptr noundef %3316, i32 noundef %3318) #11
  br label %3337

3320:                                             ; preds = %3298, %3291
  %3321 = load i32, ptr %93, align 4, !tbaa !5
  %3322 = call ptr @__errno_location() #12
  store i32 %3321, ptr %3322, align 4, !tbaa !5
  %3323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3324 = load i32, ptr @test_count, align 4, !tbaa !5
  %3325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3326 = load i32, ptr %3325, align 4, !tbaa !5
  %3327 = call ptr @s2n_strerror(i32 noundef %3326, ptr noundef @.str.4)
  %3328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror_debug(i32 noundef %3329, ptr noundef @.str.4)
  %3331 = call ptr @__errno_location() #12
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @strerror(i32 noundef %3332) #11
  %3334 = call ptr @__errno_location() #12
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3323, ptr noundef @.str.5, i32 noundef %3324, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 446, ptr noundef %3327, ptr noundef %3330, ptr noundef %3333, i32 noundef %3335) #11
  br label %3337

3337:                                             ; preds = %3320, %3303
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %3338

3338:                                             ; preds = %3337
  br label %3339

3339:                                             ; preds = %3338
  call void @exit(i32 noundef 1) #13
  unreachable

3340:                                             ; No predecessors!
  br label %3341

3341:                                             ; preds = %3340
  br label %3342

3342:                                             ; preds = %3341, %3282
  br label %3343

3343:                                             ; preds = %3342
  br label %3344

3344:                                             ; preds = %3343
  br label %3345

3345:                                             ; preds = %3344
  %3346 = load i32, ptr @test_count, align 4, !tbaa !5
  %3347 = add nsw i32 %3346, 1
  store i32 %3347, ptr @test_count, align 4, !tbaa !5
  %3348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call ptr @s2n_strerror_debug(i32 noundef %3349, ptr noundef @.str.4)
  %3351 = icmp eq ptr %3350, null
  br i1 %3351, label %3352, label %3405

3352:                                             ; preds = %3345
  br label %3353

3353:                                             ; preds = %3352
  br label %3354

3354:                                             ; preds = %3353
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %3355 = call ptr @__errno_location() #12
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  store i32 %3356, ptr %94, align 4, !tbaa !5
  %3357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3358 = call i32 @s2n_print_stacktrace(ptr noundef %3357)
  %3359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3360 = trunc i8 %3359 to i1
  br i1 %3360, label %3361, label %3383

3361:                                             ; preds = %3354
  %3362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3363 = call i32 @fileno(ptr noundef %3362) #11
  %3364 = call i32 @isatty(i32 noundef %3363) #11
  %3365 = icmp ne i32 %3364, 0
  br i1 %3365, label %3366, label %3383

3366:                                             ; preds = %3361
  %3367 = load i32, ptr %94, align 4, !tbaa !5
  %3368 = call ptr @__errno_location() #12
  store i32 %3367, ptr %3368, align 4, !tbaa !5
  %3369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3370 = load i32, ptr @test_count, align 4, !tbaa !5
  %3371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  %3373 = call ptr @s2n_strerror(i32 noundef %3372, ptr noundef @.str.4)
  %3374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3375 = load i32, ptr %3374, align 4, !tbaa !5
  %3376 = call ptr @s2n_strerror_debug(i32 noundef %3375, ptr noundef @.str.4)
  %3377 = call ptr @__errno_location() #12
  %3378 = load i32, ptr %3377, align 4, !tbaa !5
  %3379 = call ptr @strerror(i32 noundef %3378) #11
  %3380 = call ptr @__errno_location() #12
  %3381 = load i32, ptr %3380, align 4, !tbaa !5
  %3382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3369, ptr noundef @.str.2, i32 noundef %3370, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 446, ptr noundef %3373, ptr noundef %3376, ptr noundef %3379, i32 noundef %3381) #11
  br label %3400

3383:                                             ; preds = %3361, %3354
  %3384 = load i32, ptr %94, align 4, !tbaa !5
  %3385 = call ptr @__errno_location() #12
  store i32 %3384, ptr %3385, align 4, !tbaa !5
  %3386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3387 = load i32, ptr @test_count, align 4, !tbaa !5
  %3388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3389 = load i32, ptr %3388, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror(i32 noundef %3389, ptr noundef @.str.4)
  %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_debug(i32 noundef %3392, ptr noundef @.str.4)
  %3394 = call ptr @__errno_location() #12
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  %3396 = call ptr @strerror(i32 noundef %3395) #11
  %3397 = call ptr @__errno_location() #12
  %3398 = load i32, ptr %3397, align 4, !tbaa !5
  %3399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3386, ptr noundef @.str.5, i32 noundef %3387, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 446, ptr noundef %3390, ptr noundef %3393, ptr noundef %3396, i32 noundef %3398) #11
  br label %3400

3400:                                             ; preds = %3383, %3366
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %3401

3401:                                             ; preds = %3400
  br label %3402

3402:                                             ; preds = %3401
  call void @exit(i32 noundef 1) #13
  unreachable

3403:                                             ; No predecessors!
  br label %3404

3404:                                             ; preds = %3403
  br label %3405

3405:                                             ; preds = %3404, %3345
  br label %3406

3406:                                             ; preds = %3405
  br label %3407

3407:                                             ; preds = %3406
  br label %3408

3408:                                             ; preds = %3407
  br label %3409

3409:                                             ; preds = %3408
  br label %3410

3410:                                             ; preds = %3409
  %3411 = load i32, ptr @test_count, align 4, !tbaa !5
  %3412 = add nsw i32 %3411, 1
  store i32 %3412, ptr @test_count, align 4, !tbaa !5
  %3413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror_source(i32 noundef %3414)
  %3416 = load ptr, ptr %53, align 8, !tbaa !9
  %3417 = call i32 @strcmp(ptr noundef %3415, ptr noundef %3416) #14
  %3418 = icmp eq i32 %3417, 0
  br i1 %3418, label %3472, label %3419

3419:                                             ; preds = %3410
  br label %3420

3420:                                             ; preds = %3419
  br label %3421

3421:                                             ; preds = %3420
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %3422 = call ptr @__errno_location() #12
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  store i32 %3423, ptr %95, align 4, !tbaa !5
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = call i32 @s2n_print_stacktrace(ptr noundef %3424)
  %3426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3427 = trunc i8 %3426 to i1
  br i1 %3427, label %3428, label %3450

3428:                                             ; preds = %3421
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = call i32 @fileno(ptr noundef %3429) #11
  %3431 = call i32 @isatty(i32 noundef %3430) #11
  %3432 = icmp ne i32 %3431, 0
  br i1 %3432, label %3433, label %3450

3433:                                             ; preds = %3428
  %3434 = load i32, ptr %95, align 4, !tbaa !5
  %3435 = call ptr @__errno_location() #12
  store i32 %3434, ptr %3435, align 4, !tbaa !5
  %3436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3437 = load i32, ptr @test_count, align 4, !tbaa !5
  %3438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3439 = load i32, ptr %3438, align 4, !tbaa !5
  %3440 = call ptr @s2n_strerror(i32 noundef %3439, ptr noundef @.str.4)
  %3441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call ptr @s2n_strerror_debug(i32 noundef %3442, ptr noundef @.str.4)
  %3444 = call ptr @__errno_location() #12
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  %3446 = call ptr @strerror(i32 noundef %3445) #11
  %3447 = call ptr @__errno_location() #12
  %3448 = load i32, ptr %3447, align 4, !tbaa !5
  %3449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3436, ptr noundef @.str.2, i32 noundef %3437, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 447, ptr noundef %3440, ptr noundef %3443, ptr noundef %3446, i32 noundef %3448) #11
  br label %3467

3450:                                             ; preds = %3428, %3421
  %3451 = load i32, ptr %95, align 4, !tbaa !5
  %3452 = call ptr @__errno_location() #12
  store i32 %3451, ptr %3452, align 4, !tbaa !5
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = load i32, ptr @test_count, align 4, !tbaa !5
  %3455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3456 = load i32, ptr %3455, align 4, !tbaa !5
  %3457 = call ptr @s2n_strerror(i32 noundef %3456, ptr noundef @.str.4)
  %3458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  %3460 = call ptr @s2n_strerror_debug(i32 noundef %3459, ptr noundef @.str.4)
  %3461 = call ptr @__errno_location() #12
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call ptr @strerror(i32 noundef %3462) #11
  %3464 = call ptr @__errno_location() #12
  %3465 = load i32, ptr %3464, align 4, !tbaa !5
  %3466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3453, ptr noundef @.str.5, i32 noundef %3454, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 447, ptr noundef %3457, ptr noundef %3460, ptr noundef %3463, i32 noundef %3465) #11
  br label %3467

3467:                                             ; preds = %3450, %3433
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %3468

3468:                                             ; preds = %3467
  br label %3469

3469:                                             ; preds = %3468
  call void @exit(i32 noundef 1) #13
  unreachable

3470:                                             ; No predecessors!
  br label %3471

3471:                                             ; preds = %3470
  br label %3472

3472:                                             ; preds = %3471, %3410
  br label %3473

3473:                                             ; preds = %3472
  br label %3474

3474:                                             ; preds = %3473
  br label %3475

3475:                                             ; preds = %3474, %3216
  br label %3476

3476:                                             ; preds = %3475
  %3477 = load i32, ptr @test_count, align 4, !tbaa !5
  %3478 = add nsw i32 %3477, 1
  store i32 %3478, ptr @test_count, align 4, !tbaa !5
  %3479 = load i64, ptr %9, align 8, !tbaa !15
  %3480 = trunc i64 %3479 to i32
  %3481 = call i32 @s2n_validate_test_async_pkey_ctx(ptr noundef %82, i32 noundef %3480)
  %3482 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %3481, ptr %3482, align 4
  %3483 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  %3484 = load i32, ptr %3483, align 4
  %3485 = call zeroext i1 @s2n_result_is_ok(i32 %3484)
  br i1 %3485, label %3539, label %3486

3486:                                             ; preds = %3476
  br label %3487

3487:                                             ; preds = %3486
  br label %3488

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

3495:                                             ; preds = %3488
  %3496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3497 = call i32 @fileno(ptr noundef %3496) #11
  %3498 = call i32 @isatty(i32 noundef %3497) #11
  %3499 = icmp ne i32 %3498, 0
  br i1 %3499, label %3500, label %3517

3500:                                             ; preds = %3495
  %3501 = load i32, ptr %97, align 4, !tbaa !5
  %3502 = call ptr @__errno_location() #12
  store i32 %3501, ptr %3502, 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 @.str.4)
  %3508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3509 = load i32, ptr %3508, align 4, !tbaa !5
  %3510 = call ptr @s2n_strerror_debug(i32 noundef %3509, ptr noundef @.str.4)
  %3511 = call ptr @__errno_location() #12
  %3512 = load i32, ptr %3511, align 4, !tbaa !5
  %3513 = call ptr @strerror(i32 noundef %3512) #11
  %3514 = call ptr @__errno_location() #12
  %3515 = load i32, ptr %3514, align 4, !tbaa !5
  %3516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3503, ptr noundef @.str.2, i32 noundef %3504, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 450, ptr noundef %3507, ptr noundef %3510, ptr noundef %3513, i32 noundef %3515) #11
  br label %3534

3517:                                             ; preds = %3495, %3488
  %3518 = load i32, ptr %97, align 4, !tbaa !5
  %3519 = call ptr @__errno_location() #12
  store i32 %3518, ptr %3519, align 4, !tbaa !5
  %3520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3521 = load i32, ptr @test_count, align 4, !tbaa !5
  %3522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  %3524 = call ptr @s2n_strerror(i32 noundef %3523, ptr noundef @.str.4)
  %3525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  %3527 = call ptr @s2n_strerror_debug(i32 noundef %3526, ptr noundef @.str.4)
  %3528 = call ptr @__errno_location() #12
  %3529 = load i32, ptr %3528, align 4, !tbaa !5
  %3530 = call ptr @strerror(i32 noundef %3529) #11
  %3531 = call ptr @__errno_location() #12
  %3532 = load i32, ptr %3531, align 4, !tbaa !5
  %3533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3520, ptr noundef @.str.5, i32 noundef %3521, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 450, ptr noundef %3524, ptr noundef %3527, ptr noundef %3530, i32 noundef %3532) #11
  br label %3534

3534:                                             ; preds = %3517, %3500
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %3535

3535:                                             ; preds = %3534
  br label %3536

3536:                                             ; preds = %3535
  call void @exit(i32 noundef 1) #13
  unreachable

3537:                                             ; No predecessors!
  br label %3538

3538:                                             ; preds = %3537
  br label %3539

3539:                                             ; preds = %3538, %3476
  br label %3540

3540:                                             ; preds = %3539
  br label %3541

3541:                                             ; preds = %3540
  %3542 = call i32 @s2n_io_pair_close(ptr noundef %88)
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #11
  %3543 = call i32 @s2n_connection_ptr_free(ptr noundef %83)
  %3544 = getelementptr inbounds %struct.s2n_result, ptr %98, i32 0, i32 0
  store i32 %3543, ptr %3544, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  %3545 = call i32 @s2n_connection_ptr_free(ptr noundef %78)
  %3546 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  store i32 %3545, ptr %3546, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %77) #11
  br label %3547

3547:                                             ; preds = %3541
  %3548 = load i8, ptr %76, align 1, !tbaa !18
  %3549 = add i8 %3548, 1
  store i8 %3549, ptr %76, align 1, !tbaa !18
  br label %2577, !llvm.loop !44

3550:                                             ; preds = %2581
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  store i32 0, ptr %100, align 4, !tbaa !5
  br label %3551

3551:                                             ; preds = %4519, %3550
  %3552 = load i32, ptr %100, align 4, !tbaa !5
  %3553 = icmp ule i32 %3552, 48
  br i1 %3553, label %3555, label %3554

3554:                                             ; preds = %3551
  store i32 337, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %4522

3555:                                             ; preds = %3551
  call void @llvm.lifetime.start.p0(i64 20, ptr %101) #11
  call void @llvm.memset.p0.i64(ptr align 4 %101, i8 0, i64 20, i1 false)
  %3556 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %101, i32 0, i32 0
  store i8 1, ptr %3556, align 4, !tbaa !45
  %3557 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %101, i32 0, i32 1
  %3558 = load i32, ptr %100, align 4, !tbaa !5
  store i32 %3558, ptr %3557, align 4, !tbaa !46
  %3559 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %101, i32 0, i32 2
  %3560 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %101, i32 0, i32 3
  %3561 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %101, i32 0, i32 4
  %3562 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %101, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #11
  %3563 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3563, ptr %102, align 8, !tbaa !9
  br label %3564

3564:                                             ; preds = %3555
  %3565 = load i32, ptr @test_count, align 4, !tbaa !5
  %3566 = add nsw i32 %3565, 1
  store i32 %3566, ptr @test_count, align 4, !tbaa !5
  %3567 = load ptr, ptr %102, align 8, !tbaa !9
  %3568 = icmp eq ptr %3567, null
  br i1 %3568, label %3569, label %3622

3569:                                             ; preds = %3564
  br label %3570

3570:                                             ; preds = %3569
  br label %3571

3571:                                             ; preds = %3570
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %3572 = call ptr @__errno_location() #12
  %3573 = load i32, ptr %3572, align 4, !tbaa !5
  store i32 %3573, ptr %103, align 4, !tbaa !5
  %3574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3575 = call i32 @s2n_print_stacktrace(ptr noundef %3574)
  %3576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3577 = trunc i8 %3576 to i1
  br i1 %3577, label %3578, label %3600

3578:                                             ; preds = %3571
  %3579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3580 = call i32 @fileno(ptr noundef %3579) #11
  %3581 = call i32 @isatty(i32 noundef %3580) #11
  %3582 = icmp ne i32 %3581, 0
  br i1 %3582, label %3583, label %3600

3583:                                             ; preds = %3578
  %3584 = load i32, ptr %103, align 4, !tbaa !5
  %3585 = call ptr @__errno_location() #12
  store i32 %3584, ptr %3585, align 4, !tbaa !5
  %3586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3587 = load i32, ptr @test_count, align 4, !tbaa !5
  %3588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3589 = load i32, ptr %3588, align 4, !tbaa !5
  %3590 = call ptr @s2n_strerror(i32 noundef %3589, ptr noundef @.str.4)
  %3591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3592 = load i32, ptr %3591, align 4, !tbaa !5
  %3593 = call ptr @s2n_strerror_debug(i32 noundef %3592, ptr noundef @.str.4)
  %3594 = call ptr @__errno_location() #12
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call ptr @strerror(i32 noundef %3595) #11
  %3597 = call ptr @__errno_location() #12
  %3598 = load i32, ptr %3597, align 4, !tbaa !5
  %3599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3586, ptr noundef @.str.2, i32 noundef %3587, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 462, ptr noundef %3590, ptr noundef %3593, ptr noundef %3596, i32 noundef %3598) #11
  br label %3617

3600:                                             ; preds = %3578, %3571
  %3601 = load i32, ptr %103, align 4, !tbaa !5
  %3602 = call ptr @__errno_location() #12
  store i32 %3601, ptr %3602, align 4, !tbaa !5
  %3603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3604 = load i32, ptr @test_count, align 4, !tbaa !5
  %3605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  %3607 = call ptr @s2n_strerror(i32 noundef %3606, ptr noundef @.str.4)
  %3608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3609 = load i32, ptr %3608, align 4, !tbaa !5
  %3610 = call ptr @s2n_strerror_debug(i32 noundef %3609, ptr noundef @.str.4)
  %3611 = call ptr @__errno_location() #12
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  %3613 = call ptr @strerror(i32 noundef %3612) #11
  %3614 = call ptr @__errno_location() #12
  %3615 = load i32, ptr %3614, align 4, !tbaa !5
  %3616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3603, ptr noundef @.str.5, i32 noundef %3604, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 462, ptr noundef %3607, ptr noundef %3610, ptr noundef %3613, i32 noundef %3615) #11
  br label %3617

3617:                                             ; preds = %3600, %3583
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %3618

3618:                                             ; preds = %3617
  br label %3619

3619:                                             ; preds = %3618
  call void @exit(i32 noundef 1) #13
  unreachable

3620:                                             ; No predecessors!
  br label %3621

3621:                                             ; preds = %3620
  br label %3622

3622:                                             ; preds = %3621, %3564
  br label %3623

3623:                                             ; preds = %3622
  br label %3624

3624:                                             ; preds = %3623
  br label %3625

3625:                                             ; preds = %3624
  %3626 = load i32, ptr @test_count, align 4, !tbaa !5
  %3627 = add nsw i32 %3626, 1
  store i32 %3627, ptr @test_count, align 4, !tbaa !5
  %3628 = load ptr, ptr %102, align 8, !tbaa !9
  %3629 = load ptr, ptr %24, align 8, !tbaa !9
  %3630 = call i32 @s2n_connection_set_config(ptr noundef %3628, ptr noundef %3629)
  %3631 = icmp eq i32 %3630, -1
  br i1 %3631, label %3632, label %3685

3632:                                             ; preds = %3625
  br label %3633

3633:                                             ; preds = %3632
  br label %3634

3634:                                             ; preds = %3633
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #11
  %3635 = call ptr @__errno_location() #12
  %3636 = load i32, ptr %3635, align 4, !tbaa !5
  store i32 %3636, ptr %104, align 4, !tbaa !5
  %3637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3638 = call i32 @s2n_print_stacktrace(ptr noundef %3637)
  %3639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3640 = trunc i8 %3639 to i1
  br i1 %3640, label %3641, label %3663

3641:                                             ; preds = %3634
  %3642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3643 = call i32 @fileno(ptr noundef %3642) #11
  %3644 = call i32 @isatty(i32 noundef %3643) #11
  %3645 = icmp ne i32 %3644, 0
  br i1 %3645, label %3646, label %3663

3646:                                             ; preds = %3641
  %3647 = load i32, ptr %104, align 4, !tbaa !5
  %3648 = call ptr @__errno_location() #12
  store i32 %3647, ptr %3648, align 4, !tbaa !5
  %3649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3650 = load i32, ptr @test_count, align 4, !tbaa !5
  %3651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3652 = load i32, ptr %3651, align 4, !tbaa !5
  %3653 = call ptr @s2n_strerror(i32 noundef %3652, ptr noundef @.str.4)
  %3654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call ptr @s2n_strerror_debug(i32 noundef %3655, ptr noundef @.str.4)
  %3657 = call ptr @__errno_location() #12
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call ptr @strerror(i32 noundef %3658) #11
  %3660 = call ptr @__errno_location() #12
  %3661 = load i32, ptr %3660, align 4, !tbaa !5
  %3662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3649, ptr noundef @.str.2, i32 noundef %3650, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 463, ptr noundef %3653, ptr noundef %3656, ptr noundef %3659, i32 noundef %3661) #11
  br label %3680

3663:                                             ; preds = %3641, %3634
  %3664 = load i32, ptr %104, align 4, !tbaa !5
  %3665 = call ptr @__errno_location() #12
  store i32 %3664, ptr %3665, align 4, !tbaa !5
  %3666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3667 = load i32, ptr @test_count, align 4, !tbaa !5
  %3668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3669 = load i32, ptr %3668, align 4, !tbaa !5
  %3670 = call ptr @s2n_strerror(i32 noundef %3669, ptr noundef @.str.4)
  %3671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3672 = load i32, ptr %3671, align 4, !tbaa !5
  %3673 = call ptr @s2n_strerror_debug(i32 noundef %3672, ptr noundef @.str.4)
  %3674 = call ptr @__errno_location() #12
  %3675 = load i32, ptr %3674, align 4, !tbaa !5
  %3676 = call ptr @strerror(i32 noundef %3675) #11
  %3677 = call ptr @__errno_location() #12
  %3678 = load i32, ptr %3677, align 4, !tbaa !5
  %3679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3666, ptr noundef @.str.5, i32 noundef %3667, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 463, ptr noundef %3670, ptr noundef %3673, ptr noundef %3676, i32 noundef %3678) #11
  br label %3680

3680:                                             ; preds = %3663, %3646
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %3681

3681:                                             ; preds = %3680
  br label %3682

3682:                                             ; preds = %3681
  call void @exit(i32 noundef 1) #13
  unreachable

3683:                                             ; No predecessors!
  br label %3684

3684:                                             ; preds = %3683
  br label %3685

3685:                                             ; preds = %3684, %3625
  br label %3686

3686:                                             ; preds = %3685
  br label %3687

3687:                                             ; preds = %3686
  br label %3688

3688:                                             ; preds = %3687
  %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 = load ptr, ptr %102, align 8, !tbaa !9
  %3692 = call i32 @s2n_connection_set_ctx(ptr noundef %3691, ptr noundef %101)
  %3693 = icmp eq i32 %3692, -1
  br i1 %3693, label %3694, label %3747

3694:                                             ; preds = %3688
  br label %3695

3695:                                             ; preds = %3694
  br label %3696

3696:                                             ; preds = %3695
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %3697 = call ptr @__errno_location() #12
  %3698 = load i32, ptr %3697, align 4, !tbaa !5
  store i32 %3698, ptr %105, align 4, !tbaa !5
  %3699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3700 = call i32 @s2n_print_stacktrace(ptr noundef %3699)
  %3701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3702 = trunc i8 %3701 to i1
  br i1 %3702, label %3703, label %3725

3703:                                             ; preds = %3696
  %3704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3705 = call i32 @fileno(ptr noundef %3704) #11
  %3706 = call i32 @isatty(i32 noundef %3705) #11
  %3707 = icmp ne i32 %3706, 0
  br i1 %3707, label %3708, label %3725

3708:                                             ; preds = %3703
  %3709 = load i32, ptr %105, align 4, !tbaa !5
  %3710 = call ptr @__errno_location() #12
  store i32 %3709, ptr %3710, align 4, !tbaa !5
  %3711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3712 = load i32, ptr @test_count, align 4, !tbaa !5
  %3713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3714 = load i32, ptr %3713, align 4, !tbaa !5
  %3715 = call ptr @s2n_strerror(i32 noundef %3714, ptr noundef @.str.4)
  %3716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3717 = load i32, ptr %3716, align 4, !tbaa !5
  %3718 = call ptr @s2n_strerror_debug(i32 noundef %3717, ptr noundef @.str.4)
  %3719 = call ptr @__errno_location() #12
  %3720 = load i32, ptr %3719, align 4, !tbaa !5
  %3721 = call ptr @strerror(i32 noundef %3720) #11
  %3722 = call ptr @__errno_location() #12
  %3723 = load i32, ptr %3722, align 4, !tbaa !5
  %3724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3711, ptr noundef @.str.2, i32 noundef %3712, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 464, ptr noundef %3715, ptr noundef %3718, ptr noundef %3721, i32 noundef %3723) #11
  br label %3742

3725:                                             ; preds = %3703, %3696
  %3726 = load i32, ptr %105, align 4, !tbaa !5
  %3727 = call ptr @__errno_location() #12
  store i32 %3726, ptr %3727, align 4, !tbaa !5
  %3728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3729 = load i32, ptr @test_count, align 4, !tbaa !5
  %3730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3731 = load i32, ptr %3730, align 4, !tbaa !5
  %3732 = call ptr @s2n_strerror(i32 noundef %3731, ptr noundef @.str.4)
  %3733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3734 = load i32, ptr %3733, align 4, !tbaa !5
  %3735 = call ptr @s2n_strerror_debug(i32 noundef %3734, ptr noundef @.str.4)
  %3736 = call ptr @__errno_location() #12
  %3737 = load i32, ptr %3736, align 4, !tbaa !5
  %3738 = call ptr @strerror(i32 noundef %3737) #11
  %3739 = call ptr @__errno_location() #12
  %3740 = load i32, ptr %3739, align 4, !tbaa !5
  %3741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3728, ptr noundef @.str.5, i32 noundef %3729, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 464, ptr noundef %3732, ptr noundef %3735, ptr noundef %3738, i32 noundef %3740) #11
  br label %3742

3742:                                             ; preds = %3725, %3708
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %3743

3743:                                             ; preds = %3742
  br label %3744

3744:                                             ; preds = %3743
  call void @exit(i32 noundef 1) #13
  unreachable

3745:                                             ; No predecessors!
  br label %3746

3746:                                             ; preds = %3745
  br label %3747

3747:                                             ; preds = %3746, %3688
  br label %3748

3748:                                             ; preds = %3747
  br label %3749

3749:                                             ; preds = %3748
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #11
  call void @llvm.memset.p0.i64(ptr align 4 %106, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #11
  %3750 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3750, ptr %107, align 8, !tbaa !9
  br label %3751

3751:                                             ; preds = %3749
  %3752 = load i32, ptr @test_count, align 4, !tbaa !5
  %3753 = add nsw i32 %3752, 1
  store i32 %3753, ptr @test_count, align 4, !tbaa !5
  %3754 = load ptr, ptr %107, align 8, !tbaa !9
  %3755 = icmp eq ptr %3754, null
  br i1 %3755, label %3756, label %3809

3756:                                             ; preds = %3751
  br label %3757

3757:                                             ; preds = %3756
  br label %3758

3758:                                             ; preds = %3757
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #11
  %3759 = call ptr @__errno_location() #12
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  store i32 %3760, ptr %108, align 4, !tbaa !5
  %3761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3762 = call i32 @s2n_print_stacktrace(ptr noundef %3761)
  %3763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3764 = trunc i8 %3763 to i1
  br i1 %3764, label %3765, label %3787

3765:                                             ; preds = %3758
  %3766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3767 = call i32 @fileno(ptr noundef %3766) #11
  %3768 = call i32 @isatty(i32 noundef %3767) #11
  %3769 = icmp ne i32 %3768, 0
  br i1 %3769, label %3770, label %3787

3770:                                             ; preds = %3765
  %3771 = load i32, ptr %108, align 4, !tbaa !5
  %3772 = call ptr @__errno_location() #12
  store i32 %3771, ptr %3772, align 4, !tbaa !5
  %3773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3774 = load i32, ptr @test_count, align 4, !tbaa !5
  %3775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3776 = load i32, ptr %3775, align 4, !tbaa !5
  %3777 = call ptr @s2n_strerror(i32 noundef %3776, ptr noundef @.str.4)
  %3778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3779 = load i32, ptr %3778, align 4, !tbaa !5
  %3780 = call ptr @s2n_strerror_debug(i32 noundef %3779, ptr noundef @.str.4)
  %3781 = call ptr @__errno_location() #12
  %3782 = load i32, ptr %3781, align 4, !tbaa !5
  %3783 = call ptr @strerror(i32 noundef %3782) #11
  %3784 = call ptr @__errno_location() #12
  %3785 = load i32, ptr %3784, align 4, !tbaa !5
  %3786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3773, ptr noundef @.str.2, i32 noundef %3774, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 470, ptr noundef %3777, ptr noundef %3780, ptr noundef %3783, i32 noundef %3785) #11
  br label %3804

3787:                                             ; preds = %3765, %3758
  %3788 = load i32, ptr %108, align 4, !tbaa !5
  %3789 = call ptr @__errno_location() #12
  store i32 %3788, ptr %3789, align 4, !tbaa !5
  %3790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3791 = load i32, ptr @test_count, align 4, !tbaa !5
  %3792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3793 = load i32, ptr %3792, align 4, !tbaa !5
  %3794 = call ptr @s2n_strerror(i32 noundef %3793, ptr noundef @.str.4)
  %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_debug(i32 noundef %3796, ptr noundef @.str.4)
  %3798 = call ptr @__errno_location() #12
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  %3800 = call ptr @strerror(i32 noundef %3799) #11
  %3801 = call ptr @__errno_location() #12
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  %3803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3790, ptr noundef @.str.5, i32 noundef %3791, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 470, ptr noundef %3794, ptr noundef %3797, ptr noundef %3800, i32 noundef %3802) #11
  br label %3804

3804:                                             ; preds = %3787, %3770
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %3805

3805:                                             ; preds = %3804
  br label %3806

3806:                                             ; preds = %3805
  call void @exit(i32 noundef 1) #13
  unreachable

3807:                                             ; No predecessors!
  br label %3808

3808:                                             ; preds = %3807
  br label %3809

3809:                                             ; preds = %3808, %3751
  br label %3810

3810:                                             ; preds = %3809
  br label %3811

3811:                                             ; preds = %3810
  br label %3812

3812:                                             ; preds = %3811
  %3813 = load i32, ptr @test_count, align 4, !tbaa !5
  %3814 = add nsw i32 %3813, 1
  store i32 %3814, ptr @test_count, align 4, !tbaa !5
  %3815 = load ptr, ptr %107, align 8, !tbaa !9
  %3816 = load ptr, ptr %27, align 8, !tbaa !9
  %3817 = call i32 @s2n_connection_set_config(ptr noundef %3815, ptr noundef %3816)
  %3818 = icmp eq i32 %3817, -1
  br i1 %3818, label %3819, label %3872

3819:                                             ; preds = %3812
  br label %3820

3820:                                             ; preds = %3819
  br label %3821

3821:                                             ; preds = %3820
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %3822 = call ptr @__errno_location() #12
  %3823 = load i32, ptr %3822, align 4, !tbaa !5
  store i32 %3823, ptr %109, align 4, !tbaa !5
  %3824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3825 = call i32 @s2n_print_stacktrace(ptr noundef %3824)
  %3826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3827 = trunc i8 %3826 to i1
  br i1 %3827, label %3828, label %3850

3828:                                             ; preds = %3821
  %3829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3830 = call i32 @fileno(ptr noundef %3829) #11
  %3831 = call i32 @isatty(i32 noundef %3830) #11
  %3832 = icmp ne i32 %3831, 0
  br i1 %3832, label %3833, label %3850

3833:                                             ; preds = %3828
  %3834 = load i32, ptr %109, align 4, !tbaa !5
  %3835 = call ptr @__errno_location() #12
  store i32 %3834, ptr %3835, align 4, !tbaa !5
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = load i32, ptr @test_count, align 4, !tbaa !5
  %3838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3839 = load i32, ptr %3838, align 4, !tbaa !5
  %3840 = call ptr @s2n_strerror(i32 noundef %3839, ptr noundef @.str.4)
  %3841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3842 = load i32, ptr %3841, align 4, !tbaa !5
  %3843 = call ptr @s2n_strerror_debug(i32 noundef %3842, ptr noundef @.str.4)
  %3844 = call ptr @__errno_location() #12
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  %3846 = call ptr @strerror(i32 noundef %3845) #11
  %3847 = call ptr @__errno_location() #12
  %3848 = load i32, ptr %3847, align 4, !tbaa !5
  %3849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3836, ptr noundef @.str.2, i32 noundef %3837, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 471, ptr noundef %3840, ptr noundef %3843, ptr noundef %3846, i32 noundef %3848) #11
  br label %3867

3850:                                             ; preds = %3828, %3821
  %3851 = load i32, ptr %109, align 4, !tbaa !5
  %3852 = call ptr @__errno_location() #12
  store i32 %3851, ptr %3852, align 4, !tbaa !5
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = load i32, ptr @test_count, align 4, !tbaa !5
  %3855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3856 = load i32, ptr %3855, align 4, !tbaa !5
  %3857 = call ptr @s2n_strerror(i32 noundef %3856, ptr noundef @.str.4)
  %3858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3859 = load i32, ptr %3858, align 4, !tbaa !5
  %3860 = call ptr @s2n_strerror_debug(i32 noundef %3859, ptr noundef @.str.4)
  %3861 = call ptr @__errno_location() #12
  %3862 = load i32, ptr %3861, align 4, !tbaa !5
  %3863 = call ptr @strerror(i32 noundef %3862) #11
  %3864 = call ptr @__errno_location() #12
  %3865 = load i32, ptr %3864, align 4, !tbaa !5
  %3866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3853, ptr noundef @.str.5, i32 noundef %3854, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 471, ptr noundef %3857, ptr noundef %3860, ptr noundef %3863, i32 noundef %3865) #11
  br label %3867

3867:                                             ; preds = %3850, %3833
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %3868

3868:                                             ; preds = %3867
  br label %3869

3869:                                             ; preds = %3868
  call void @exit(i32 noundef 1) #13
  unreachable

3870:                                             ; No predecessors!
  br label %3871

3871:                                             ; preds = %3870
  br label %3872

3872:                                             ; preds = %3871, %3812
  br label %3873

3873:                                             ; preds = %3872
  br label %3874

3874:                                             ; preds = %3873
  br label %3875

3875:                                             ; preds = %3874
  %3876 = load i32, ptr @test_count, align 4, !tbaa !5
  %3877 = add nsw i32 %3876, 1
  store i32 %3877, ptr @test_count, align 4, !tbaa !5
  %3878 = load ptr, ptr %107, align 8, !tbaa !9
  %3879 = call i32 @s2n_connection_set_ctx(ptr noundef %3878, ptr noundef %106)
  %3880 = icmp eq i32 %3879, -1
  br i1 %3880, label %3881, label %3934

3881:                                             ; preds = %3875
  br label %3882

3882:                                             ; preds = %3881
  br label %3883

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

3890:                                             ; preds = %3883
  %3891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3892 = call i32 @fileno(ptr noundef %3891) #11
  %3893 = call i32 @isatty(i32 noundef %3892) #11
  %3894 = icmp ne i32 %3893, 0
  br i1 %3894, label %3895, label %3912

3895:                                             ; preds = %3890
  %3896 = load i32, ptr %110, align 4, !tbaa !5
  %3897 = call ptr @__errno_location() #12
  store i32 %3896, ptr %3897, align 4, !tbaa !5
  %3898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3899 = load i32, ptr @test_count, align 4, !tbaa !5
  %3900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3901 = load i32, ptr %3900, align 4, !tbaa !5
  %3902 = call ptr @s2n_strerror(i32 noundef %3901, ptr noundef @.str.4)
  %3903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3904 = load i32, ptr %3903, align 4, !tbaa !5
  %3905 = call ptr @s2n_strerror_debug(i32 noundef %3904, ptr noundef @.str.4)
  %3906 = call ptr @__errno_location() #12
  %3907 = load i32, ptr %3906, align 4, !tbaa !5
  %3908 = call ptr @strerror(i32 noundef %3907) #11
  %3909 = call ptr @__errno_location() #12
  %3910 = load i32, ptr %3909, align 4, !tbaa !5
  %3911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3898, ptr noundef @.str.2, i32 noundef %3899, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 472, ptr noundef %3902, ptr noundef %3905, ptr noundef %3908, i32 noundef %3910) #11
  br label %3929

3912:                                             ; preds = %3890, %3883
  %3913 = load i32, ptr %110, align 4, !tbaa !5
  %3914 = call ptr @__errno_location() #12
  store i32 %3913, ptr %3914, align 4, !tbaa !5
  %3915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3916 = load i32, ptr @test_count, align 4, !tbaa !5
  %3917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @s2n_strerror(i32 noundef %3918, ptr noundef @.str.4)
  %3920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call ptr @s2n_strerror_debug(i32 noundef %3921, ptr noundef @.str.4)
  %3923 = call ptr @__errno_location() #12
  %3924 = load i32, ptr %3923, align 4, !tbaa !5
  %3925 = call ptr @strerror(i32 noundef %3924) #11
  %3926 = call ptr @__errno_location() #12
  %3927 = load i32, ptr %3926, align 4, !tbaa !5
  %3928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3915, ptr noundef @.str.5, i32 noundef %3916, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 472, ptr noundef %3919, ptr noundef %3922, ptr noundef %3925, i32 noundef %3927) #11
  br label %3929

3929:                                             ; preds = %3912, %3895
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %3930

3930:                                             ; preds = %3929
  br label %3931

3931:                                             ; preds = %3930
  call void @exit(i32 noundef 1) #13
  unreachable

3932:                                             ; No predecessors!
  br label %3933

3933:                                             ; preds = %3932
  br label %3934

3934:                                             ; preds = %3933, %3875
  br label %3935

3935:                                             ; preds = %3934
  br label %3936

3936:                                             ; preds = %3935
  br label %3937

3937:                                             ; preds = %3936
  %3938 = load i32, ptr @test_count, align 4, !tbaa !5
  %3939 = add nsw i32 %3938, 1
  store i32 %3939, ptr @test_count, align 4, !tbaa !5
  %3940 = load ptr, ptr %107, align 8, !tbaa !9
  %3941 = call i32 @s2n_connection_set_blinding(ptr noundef %3940, i32 noundef 1)
  %3942 = icmp eq i32 %3941, -1
  br i1 %3942, label %3943, label %3996

3943:                                             ; preds = %3937
  br label %3944

3944:                                             ; preds = %3943
  br label %3945

3945:                                             ; preds = %3944
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %3946 = call ptr @__errno_location() #12
  %3947 = load i32, ptr %3946, align 4, !tbaa !5
  store i32 %3947, ptr %111, align 4, !tbaa !5
  %3948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3949 = call i32 @s2n_print_stacktrace(ptr noundef %3948)
  %3950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3951 = trunc i8 %3950 to i1
  br i1 %3951, label %3952, label %3974

3952:                                             ; preds = %3945
  %3953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3954 = call i32 @fileno(ptr noundef %3953) #11
  %3955 = call i32 @isatty(i32 noundef %3954) #11
  %3956 = icmp ne i32 %3955, 0
  br i1 %3956, label %3957, label %3974

3957:                                             ; preds = %3952
  %3958 = load i32, ptr %111, align 4, !tbaa !5
  %3959 = call ptr @__errno_location() #12
  store i32 %3958, ptr %3959, align 4, !tbaa !5
  %3960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3961 = load i32, ptr @test_count, align 4, !tbaa !5
  %3962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3963 = load i32, ptr %3962, align 4, !tbaa !5
  %3964 = call ptr @s2n_strerror(i32 noundef %3963, ptr noundef @.str.4)
  %3965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3966 = load i32, ptr %3965, align 4, !tbaa !5
  %3967 = call ptr @s2n_strerror_debug(i32 noundef %3966, ptr noundef @.str.4)
  %3968 = call ptr @__errno_location() #12
  %3969 = load i32, ptr %3968, align 4, !tbaa !5
  %3970 = call ptr @strerror(i32 noundef %3969) #11
  %3971 = call ptr @__errno_location() #12
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3960, ptr noundef @.str.2, i32 noundef %3961, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 473, ptr noundef %3964, ptr noundef %3967, ptr noundef %3970, i32 noundef %3972) #11
  br label %3991

3974:                                             ; preds = %3952, %3945
  %3975 = load i32, ptr %111, align 4, !tbaa !5
  %3976 = call ptr @__errno_location() #12
  store i32 %3975, ptr %3976, align 4, !tbaa !5
  %3977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3978 = load i32, ptr @test_count, align 4, !tbaa !5
  %3979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call ptr @s2n_strerror(i32 noundef %3980, ptr noundef @.str.4)
  %3982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call ptr @s2n_strerror_debug(i32 noundef %3983, ptr noundef @.str.4)
  %3985 = call ptr @__errno_location() #12
  %3986 = load i32, ptr %3985, align 4, !tbaa !5
  %3987 = call ptr @strerror(i32 noundef %3986) #11
  %3988 = call ptr @__errno_location() #12
  %3989 = load i32, ptr %3988, align 4, !tbaa !5
  %3990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3977, ptr noundef @.str.5, i32 noundef %3978, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 473, ptr noundef %3981, ptr noundef %3984, ptr noundef %3987, i32 noundef %3989) #11
  br label %3991

3991:                                             ; preds = %3974, %3957
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %3992

3992:                                             ; preds = %3991
  br label %3993

3993:                                             ; preds = %3992
  call void @exit(i32 noundef 1) #13
  unreachable

3994:                                             ; No predecessors!
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995, %3937
  br label %3997

3997:                                             ; preds = %3996
  br label %3998

3998:                                             ; preds = %3997
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #11
  br label %3999

3999:                                             ; preds = %3998
  %4000 = load i32, ptr @test_count, align 4, !tbaa !5
  %4001 = add nsw i32 %4000, 1
  store i32 %4001, ptr @test_count, align 4, !tbaa !5
  %4002 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %112)
  %4003 = icmp eq i32 %4002, -1
  br i1 %4003, label %4004, label %4057

4004:                                             ; preds = %3999
  br label %4005

4005:                                             ; preds = %4004
  br label %4006

4006:                                             ; preds = %4005
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %4007 = call ptr @__errno_location() #12
  %4008 = load i32, ptr %4007, align 4, !tbaa !5
  store i32 %4008, ptr %113, align 4, !tbaa !5
  %4009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4010 = call i32 @s2n_print_stacktrace(ptr noundef %4009)
  %4011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4012 = trunc i8 %4011 to i1
  br i1 %4012, label %4013, label %4035

4013:                                             ; preds = %4006
  %4014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4015 = call i32 @fileno(ptr noundef %4014) #11
  %4016 = call i32 @isatty(i32 noundef %4015) #11
  %4017 = icmp ne i32 %4016, 0
  br i1 %4017, label %4018, label %4035

4018:                                             ; preds = %4013
  %4019 = load i32, ptr %113, align 4, !tbaa !5
  %4020 = call ptr @__errno_location() #12
  store i32 %4019, ptr %4020, align 4, !tbaa !5
  %4021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4022 = load i32, ptr @test_count, align 4, !tbaa !5
  %4023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4024 = load i32, ptr %4023, align 4, !tbaa !5
  %4025 = call ptr @s2n_strerror(i32 noundef %4024, ptr noundef @.str.4)
  %4026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4027 = load i32, ptr %4026, align 4, !tbaa !5
  %4028 = call ptr @s2n_strerror_debug(i32 noundef %4027, ptr noundef @.str.4)
  %4029 = call ptr @__errno_location() #12
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call ptr @strerror(i32 noundef %4030) #11
  %4032 = call ptr @__errno_location() #12
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4021, ptr noundef @.str.2, i32 noundef %4022, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 476, ptr noundef %4025, ptr noundef %4028, ptr noundef %4031, i32 noundef %4033) #11
  br label %4052

4035:                                             ; preds = %4013, %4006
  %4036 = load i32, ptr %113, align 4, !tbaa !5
  %4037 = call ptr @__errno_location() #12
  store i32 %4036, ptr %4037, align 4, !tbaa !5
  %4038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4039 = load i32, ptr @test_count, align 4, !tbaa !5
  %4040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call ptr @s2n_strerror(i32 noundef %4041, ptr noundef @.str.4)
  %4043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = call ptr @s2n_strerror_debug(i32 noundef %4044, ptr noundef @.str.4)
  %4046 = call ptr @__errno_location() #12
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call ptr @strerror(i32 noundef %4047) #11
  %4049 = call ptr @__errno_location() #12
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4038, ptr noundef @.str.5, i32 noundef %4039, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 476, ptr noundef %4042, ptr noundef %4045, ptr noundef %4048, i32 noundef %4050) #11
  br label %4052

4052:                                             ; preds = %4035, %4018
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %4053

4053:                                             ; preds = %4052
  br label %4054

4054:                                             ; preds = %4053
  call void @exit(i32 noundef 1) #13
  unreachable

4055:                                             ; No predecessors!
  br label %4056

4056:                                             ; preds = %4055
  br label %4057

4057:                                             ; preds = %4056, %3999
  br label %4058

4058:                                             ; preds = %4057
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

4060:                                             ; preds = %4059
  %4061 = load i32, ptr @test_count, align 4, !tbaa !5
  %4062 = add nsw i32 %4061, 1
  store i32 %4062, ptr @test_count, align 4, !tbaa !5
  %4063 = load ptr, ptr %102, align 8, !tbaa !9
  %4064 = load ptr, ptr %107, align 8, !tbaa !9
  %4065 = call i32 @s2n_connections_set_io_pair(ptr noundef %4063, ptr noundef %4064, ptr noundef %112)
  %4066 = icmp eq i32 %4065, -1
  br i1 %4066, label %4067, label %4120

4067:                                             ; preds = %4060
  br label %4068

4068:                                             ; preds = %4067
  br label %4069

4069:                                             ; preds = %4068
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %4070 = call ptr @__errno_location() #12
  %4071 = load i32, ptr %4070, align 4, !tbaa !5
  store i32 %4071, ptr %114, align 4, !tbaa !5
  %4072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4073 = call i32 @s2n_print_stacktrace(ptr noundef %4072)
  %4074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4075 = trunc i8 %4074 to i1
  br i1 %4075, label %4076, label %4098

4076:                                             ; preds = %4069
  %4077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4078 = call i32 @fileno(ptr noundef %4077) #11
  %4079 = call i32 @isatty(i32 noundef %4078) #11
  %4080 = icmp ne i32 %4079, 0
  br i1 %4080, label %4081, label %4098

4081:                                             ; preds = %4076
  %4082 = load i32, ptr %114, align 4, !tbaa !5
  %4083 = call ptr @__errno_location() #12
  store i32 %4082, ptr %4083, align 4, !tbaa !5
  %4084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4085 = load i32, ptr @test_count, align 4, !tbaa !5
  %4086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @s2n_strerror(i32 noundef %4087, ptr noundef @.str.4)
  %4089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call ptr @s2n_strerror_debug(i32 noundef %4090, ptr noundef @.str.4)
  %4092 = call ptr @__errno_location() #12
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call ptr @strerror(i32 noundef %4093) #11
  %4095 = call ptr @__errno_location() #12
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4084, ptr noundef @.str.2, i32 noundef %4085, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 477, ptr noundef %4088, ptr noundef %4091, ptr noundef %4094, i32 noundef %4096) #11
  br label %4115

4098:                                             ; preds = %4076, %4069
  %4099 = load i32, ptr %114, align 4, !tbaa !5
  %4100 = call ptr @__errno_location() #12
  store i32 %4099, ptr %4100, align 4, !tbaa !5
  %4101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4102 = load i32, ptr @test_count, align 4, !tbaa !5
  %4103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call ptr @s2n_strerror(i32 noundef %4104, ptr noundef @.str.4)
  %4106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @s2n_strerror_debug(i32 noundef %4107, ptr noundef @.str.4)
  %4109 = call ptr @__errno_location() #12
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @strerror(i32 noundef %4110) #11
  %4112 = call ptr @__errno_location() #12
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4101, ptr noundef @.str.5, i32 noundef %4102, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 477, ptr noundef %4105, ptr noundef %4108, ptr noundef %4111, i32 noundef %4113) #11
  br label %4115

4115:                                             ; preds = %4098, %4081
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %4116

4116:                                             ; preds = %4115
  br label %4117

4117:                                             ; preds = %4116
  call void @exit(i32 noundef 1) #13
  unreachable

4118:                                             ; No predecessors!
  br label %4119

4119:                                             ; preds = %4118
  br label %4120

4120:                                             ; preds = %4119, %4060
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121
  %4123 = load i32, ptr %100, align 4, !tbaa !5
  %4124 = icmp eq i32 %4123, 48
  br i1 %4124, label %4125, label %4189

4125:                                             ; preds = %4122
  br label %4126

4126:                                             ; preds = %4125
  %4127 = load i32, ptr @test_count, align 4, !tbaa !5
  %4128 = add nsw i32 %4127, 1
  store i32 %4128, ptr @test_count, align 4, !tbaa !5
  %4129 = load ptr, ptr %107, align 8, !tbaa !9
  %4130 = load ptr, ptr %102, align 8, !tbaa !9
  %4131 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4129, ptr noundef %4130)
  %4132 = icmp eq i32 %4131, -1
  br i1 %4132, label %4133, label %4186

4133:                                             ; preds = %4126
  br label %4134

4134:                                             ; preds = %4133
  br label %4135

4135:                                             ; preds = %4134
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %4136 = call ptr @__errno_location() #12
  %4137 = load i32, ptr %4136, align 4, !tbaa !5
  store i32 %4137, ptr %115, align 4, !tbaa !5
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = call i32 @s2n_print_stacktrace(ptr noundef %4138)
  %4140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4141 = trunc i8 %4140 to i1
  br i1 %4141, label %4142, label %4164

4142:                                             ; preds = %4135
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = call i32 @fileno(ptr noundef %4143) #11
  %4145 = call i32 @isatty(i32 noundef %4144) #11
  %4146 = icmp ne i32 %4145, 0
  br i1 %4146, label %4147, label %4164

4147:                                             ; preds = %4142
  %4148 = load i32, ptr %115, align 4, !tbaa !5
  %4149 = call ptr @__errno_location() #12
  store i32 %4148, ptr %4149, align 4, !tbaa !5
  %4150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4151 = load i32, ptr @test_count, align 4, !tbaa !5
  %4152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4153 = load i32, ptr %4152, align 4, !tbaa !5
  %4154 = call ptr @s2n_strerror(i32 noundef %4153, ptr noundef @.str.4)
  %4155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4156 = load i32, ptr %4155, align 4, !tbaa !5
  %4157 = call ptr @s2n_strerror_debug(i32 noundef %4156, ptr noundef @.str.4)
  %4158 = call ptr @__errno_location() #12
  %4159 = load i32, ptr %4158, align 4, !tbaa !5
  %4160 = call ptr @strerror(i32 noundef %4159) #11
  %4161 = call ptr @__errno_location() #12
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  %4163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4150, ptr noundef @.str.2, i32 noundef %4151, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 480, ptr noundef %4154, ptr noundef %4157, ptr noundef %4160, i32 noundef %4162) #11
  br label %4181

4164:                                             ; preds = %4142, %4135
  %4165 = load i32, ptr %115, align 4, !tbaa !5
  %4166 = call ptr @__errno_location() #12
  store i32 %4165, ptr %4166, align 4, !tbaa !5
  %4167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4168 = load i32, ptr @test_count, align 4, !tbaa !5
  %4169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4170 = load i32, ptr %4169, align 4, !tbaa !5
  %4171 = call ptr @s2n_strerror(i32 noundef %4170, ptr noundef @.str.4)
  %4172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  %4174 = call ptr @s2n_strerror_debug(i32 noundef %4173, ptr noundef @.str.4)
  %4175 = call ptr @__errno_location() #12
  %4176 = load i32, ptr %4175, align 4, !tbaa !5
  %4177 = call ptr @strerror(i32 noundef %4176) #11
  %4178 = call ptr @__errno_location() #12
  %4179 = load i32, ptr %4178, align 4, !tbaa !5
  %4180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4167, ptr noundef @.str.5, i32 noundef %4168, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 480, ptr noundef %4171, ptr noundef %4174, ptr noundef %4177, i32 noundef %4179) #11
  br label %4181

4181:                                             ; preds = %4164, %4147
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %4182

4182:                                             ; preds = %4181
  br label %4183

4183:                                             ; preds = %4182
  call void @exit(i32 noundef 1) #13
  unreachable

4184:                                             ; No predecessors!
  br label %4185

4185:                                             ; preds = %4184
  br label %4186

4186:                                             ; preds = %4185, %4126
  br label %4187

4187:                                             ; preds = %4186
  br label %4188

4188:                                             ; preds = %4187
  br label %4447

4189:                                             ; preds = %4122
  br label %4190

4190:                                             ; preds = %4189
  br label %4191

4191:                                             ; preds = %4190
  %4192 = load i32, ptr @test_count, align 4, !tbaa !5
  %4193 = add nsw i32 %4192, 1
  store i32 %4193, ptr @test_count, align 4, !tbaa !5
  %4194 = load ptr, ptr %107, align 8, !tbaa !9
  %4195 = load ptr, ptr %102, align 8, !tbaa !9
  %4196 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4194, ptr noundef %4195)
  %4197 = icmp eq i32 %4196, -1
  br i1 %4197, label %4251, label %4198

4198:                                             ; preds = %4191
  br label %4199

4199:                                             ; preds = %4198
  br label %4200

4200:                                             ; preds = %4199
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %4201 = call ptr @__errno_location() #12
  %4202 = load i32, ptr %4201, align 4, !tbaa !5
  store i32 %4202, ptr %116, align 4, !tbaa !5
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = call i32 @s2n_print_stacktrace(ptr noundef %4203)
  %4205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4206 = trunc i8 %4205 to i1
  br i1 %4206, label %4207, label %4229

4207:                                             ; preds = %4200
  %4208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4209 = call i32 @fileno(ptr noundef %4208) #11
  %4210 = call i32 @isatty(i32 noundef %4209) #11
  %4211 = icmp ne i32 %4210, 0
  br i1 %4211, label %4212, label %4229

4212:                                             ; preds = %4207
  %4213 = load i32, ptr %116, align 4, !tbaa !5
  %4214 = call ptr @__errno_location() #12
  store i32 %4213, ptr %4214, align 4, !tbaa !5
  %4215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4216 = load i32, ptr @test_count, align 4, !tbaa !5
  %4217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call ptr @s2n_strerror(i32 noundef %4218, ptr noundef @.str.4)
  %4220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4221 = load i32, ptr %4220, align 4, !tbaa !5
  %4222 = call ptr @s2n_strerror_debug(i32 noundef %4221, ptr noundef @.str.4)
  %4223 = call ptr @__errno_location() #12
  %4224 = load i32, ptr %4223, align 4, !tbaa !5
  %4225 = call ptr @strerror(i32 noundef %4224) #11
  %4226 = call ptr @__errno_location() #12
  %4227 = load i32, ptr %4226, align 4, !tbaa !5
  %4228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4215, ptr noundef @.str.2, i32 noundef %4216, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 483, ptr noundef %4219, ptr noundef %4222, ptr noundef %4225, i32 noundef %4227) #11
  br label %4246

4229:                                             ; preds = %4207, %4200
  %4230 = load i32, ptr %116, align 4, !tbaa !5
  %4231 = call ptr @__errno_location() #12
  store i32 %4230, ptr %4231, align 4, !tbaa !5
  %4232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4233 = load i32, ptr @test_count, align 4, !tbaa !5
  %4234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call ptr @s2n_strerror(i32 noundef %4235, ptr noundef @.str.4)
  %4237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call ptr @s2n_strerror_debug(i32 noundef %4238, ptr noundef @.str.4)
  %4240 = call ptr @__errno_location() #12
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call ptr @strerror(i32 noundef %4241) #11
  %4243 = call ptr @__errno_location() #12
  %4244 = load i32, ptr %4243, align 4, !tbaa !5
  %4245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4232, ptr noundef @.str.5, i32 noundef %4233, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 483, ptr noundef %4236, ptr noundef %4239, ptr noundef %4242, i32 noundef %4244) #11
  br label %4246

4246:                                             ; preds = %4229, %4212
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %4247

4247:                                             ; preds = %4246
  br label %4248

4248:                                             ; preds = %4247
  call void @exit(i32 noundef 1) #13
  unreachable

4249:                                             ; No predecessors!
  br label %4250

4250:                                             ; preds = %4249
  br label %4251

4251:                                             ; preds = %4250, %4191
  br label %4252

4252:                                             ; preds = %4251
  br label %4253

4253:                                             ; preds = %4252
  br label %4254

4254:                                             ; preds = %4253
  %4255 = load i32, ptr @test_count, align 4, !tbaa !5
  %4256 = add nsw i32 %4255, 1
  store i32 %4256, ptr @test_count, align 4, !tbaa !5
  %4257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4258 = load i32, ptr %4257, align 4, !tbaa !5
  %4259 = load i32, ptr %52, align 4, !tbaa !5
  %4260 = icmp eq i32 %4258, %4259
  br i1 %4260, label %4314, label %4261

4261:                                             ; preds = %4254
  br label %4262

4262:                                             ; preds = %4261
  br label %4263

4263:                                             ; preds = %4262
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %4264 = call ptr @__errno_location() #12
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  store i32 %4265, ptr %117, align 4, !tbaa !5
  %4266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4267 = call i32 @s2n_print_stacktrace(ptr noundef %4266)
  %4268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4269 = trunc i8 %4268 to i1
  br i1 %4269, label %4270, label %4292

4270:                                             ; preds = %4263
  %4271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4272 = call i32 @fileno(ptr noundef %4271) #11
  %4273 = call i32 @isatty(i32 noundef %4272) #11
  %4274 = icmp ne i32 %4273, 0
  br i1 %4274, label %4275, label %4292

4275:                                             ; preds = %4270
  %4276 = load i32, ptr %117, align 4, !tbaa !5
  %4277 = call ptr @__errno_location() #12
  store i32 %4276, ptr %4277, align 4, !tbaa !5
  %4278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4279 = load i32, ptr @test_count, align 4, !tbaa !5
  %4280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4281 = load i32, ptr %4280, align 4, !tbaa !5
  %4282 = call ptr @s2n_strerror(i32 noundef %4281, ptr noundef @.str.4)
  %4283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4284 = load i32, ptr %4283, align 4, !tbaa !5
  %4285 = call ptr @s2n_strerror_debug(i32 noundef %4284, ptr noundef @.str.4)
  %4286 = call ptr @__errno_location() #12
  %4287 = load i32, ptr %4286, align 4, !tbaa !5
  %4288 = call ptr @strerror(i32 noundef %4287) #11
  %4289 = call ptr @__errno_location() #12
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4278, ptr noundef @.str.2, i32 noundef %4279, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 483, ptr noundef %4282, ptr noundef %4285, ptr noundef %4288, i32 noundef %4290) #11
  br label %4309

4292:                                             ; preds = %4270, %4263
  %4293 = load i32, ptr %117, align 4, !tbaa !5
  %4294 = call ptr @__errno_location() #12
  store i32 %4293, ptr %4294, align 4, !tbaa !5
  %4295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4296 = load i32, ptr @test_count, align 4, !tbaa !5
  %4297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4298 = load i32, ptr %4297, align 4, !tbaa !5
  %4299 = call ptr @s2n_strerror(i32 noundef %4298, ptr noundef @.str.4)
  %4300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4301 = load i32, ptr %4300, align 4, !tbaa !5
  %4302 = call ptr @s2n_strerror_debug(i32 noundef %4301, ptr noundef @.str.4)
  %4303 = call ptr @__errno_location() #12
  %4304 = load i32, ptr %4303, align 4, !tbaa !5
  %4305 = call ptr @strerror(i32 noundef %4304) #11
  %4306 = call ptr @__errno_location() #12
  %4307 = load i32, ptr %4306, align 4, !tbaa !5
  %4308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4295, ptr noundef @.str.5, i32 noundef %4296, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 483, ptr noundef %4299, ptr noundef %4302, ptr noundef %4305, i32 noundef %4307) #11
  br label %4309

4309:                                             ; preds = %4292, %4275
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %4310

4310:                                             ; preds = %4309
  br label %4311

4311:                                             ; preds = %4310
  call void @exit(i32 noundef 1) #13
  unreachable

4312:                                             ; No predecessors!
  br label %4313

4313:                                             ; preds = %4312
  br label %4314

4314:                                             ; preds = %4313, %4254
  br label %4315

4315:                                             ; preds = %4314
  br label %4316

4316:                                             ; preds = %4315
  br label %4317

4317:                                             ; preds = %4316
  %4318 = load i32, ptr @test_count, align 4, !tbaa !5
  %4319 = add nsw i32 %4318, 1
  store i32 %4319, ptr @test_count, align 4, !tbaa !5
  %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 = icmp eq ptr %4322, null
  br i1 %4323, label %4324, label %4377

4324:                                             ; preds = %4317
  br label %4325

4325:                                             ; preds = %4324
  br label %4326

4326:                                             ; preds = %4325
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %4327 = call ptr @__errno_location() #12
  %4328 = load i32, ptr %4327, align 4, !tbaa !5
  store i32 %4328, ptr %118, align 4, !tbaa !5
  %4329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4330 = call i32 @s2n_print_stacktrace(ptr noundef %4329)
  %4331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4332 = trunc i8 %4331 to i1
  br i1 %4332, label %4333, label %4355

4333:                                             ; preds = %4326
  %4334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4335 = call i32 @fileno(ptr noundef %4334) #11
  %4336 = call i32 @isatty(i32 noundef %4335) #11
  %4337 = icmp ne i32 %4336, 0
  br i1 %4337, label %4338, label %4355

4338:                                             ; preds = %4333
  %4339 = load i32, ptr %118, align 4, !tbaa !5
  %4340 = call ptr @__errno_location() #12
  store i32 %4339, ptr %4340, align 4, !tbaa !5
  %4341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4342 = load i32, ptr @test_count, align 4, !tbaa !5
  %4343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4344 = load i32, ptr %4343, align 4, !tbaa !5
  %4345 = call ptr @s2n_strerror(i32 noundef %4344, ptr noundef @.str.4)
  %4346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4347 = load i32, ptr %4346, align 4, !tbaa !5
  %4348 = call ptr @s2n_strerror_debug(i32 noundef %4347, ptr noundef @.str.4)
  %4349 = call ptr @__errno_location() #12
  %4350 = load i32, ptr %4349, align 4, !tbaa !5
  %4351 = call ptr @strerror(i32 noundef %4350) #11
  %4352 = call ptr @__errno_location() #12
  %4353 = load i32, ptr %4352, align 4, !tbaa !5
  %4354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4341, ptr noundef @.str.2, i32 noundef %4342, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 483, ptr noundef %4345, ptr noundef %4348, ptr noundef %4351, i32 noundef %4353) #11
  br label %4372

4355:                                             ; preds = %4333, %4326
  %4356 = load i32, ptr %118, align 4, !tbaa !5
  %4357 = call ptr @__errno_location() #12
  store i32 %4356, ptr %4357, align 4, !tbaa !5
  %4358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4359 = load i32, ptr @test_count, align 4, !tbaa !5
  %4360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4361 = load i32, ptr %4360, align 4, !tbaa !5
  %4362 = call ptr @s2n_strerror(i32 noundef %4361, ptr noundef @.str.4)
  %4363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  %4365 = call ptr @s2n_strerror_debug(i32 noundef %4364, ptr noundef @.str.4)
  %4366 = call ptr @__errno_location() #12
  %4367 = load i32, ptr %4366, align 4, !tbaa !5
  %4368 = call ptr @strerror(i32 noundef %4367) #11
  %4369 = call ptr @__errno_location() #12
  %4370 = load i32, ptr %4369, align 4, !tbaa !5
  %4371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4358, ptr noundef @.str.5, i32 noundef %4359, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 483, ptr noundef %4362, ptr noundef %4365, ptr noundef %4368, i32 noundef %4370) #11
  br label %4372

4372:                                             ; preds = %4355, %4338
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %4373

4373:                                             ; preds = %4372
  br label %4374

4374:                                             ; preds = %4373
  call void @exit(i32 noundef 1) #13
  unreachable

4375:                                             ; No predecessors!
  br label %4376

4376:                                             ; preds = %4375
  br label %4377

4377:                                             ; preds = %4376, %4317
  br label %4378

4378:                                             ; preds = %4377
  br label %4379

4379:                                             ; preds = %4378
  br label %4380

4380:                                             ; preds = %4379
  br label %4381

4381:                                             ; preds = %4380
  br label %4382

4382:                                             ; preds = %4381
  %4383 = load i32, ptr @test_count, align 4, !tbaa !5
  %4384 = add nsw i32 %4383, 1
  store i32 %4384, ptr @test_count, align 4, !tbaa !5
  %4385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4386 = load i32, ptr %4385, align 4, !tbaa !5
  %4387 = call ptr @s2n_strerror_source(i32 noundef %4386)
  %4388 = load ptr, ptr %53, align 8, !tbaa !9
  %4389 = call i32 @strcmp(ptr noundef %4387, ptr noundef %4388) #14
  %4390 = icmp eq i32 %4389, 0
  br i1 %4390, label %4444, label %4391

4391:                                             ; preds = %4382
  br label %4392

4392:                                             ; preds = %4391
  br label %4393

4393:                                             ; preds = %4392
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %4394 = call ptr @__errno_location() #12
  %4395 = load i32, ptr %4394, align 4, !tbaa !5
  store i32 %4395, ptr %119, align 4, !tbaa !5
  %4396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4397 = call i32 @s2n_print_stacktrace(ptr noundef %4396)
  %4398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4399 = trunc i8 %4398 to i1
  br i1 %4399, label %4400, label %4422

4400:                                             ; preds = %4393
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = call i32 @fileno(ptr noundef %4401) #11
  %4403 = call i32 @isatty(i32 noundef %4402) #11
  %4404 = icmp ne i32 %4403, 0
  br i1 %4404, label %4405, label %4422

4405:                                             ; preds = %4400
  %4406 = load i32, ptr %119, align 4, !tbaa !5
  %4407 = call ptr @__errno_location() #12
  store i32 %4406, ptr %4407, align 4, !tbaa !5
  %4408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4409 = load i32, ptr @test_count, align 4, !tbaa !5
  %4410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4411 = load i32, ptr %4410, align 4, !tbaa !5
  %4412 = call ptr @s2n_strerror(i32 noundef %4411, ptr noundef @.str.4)
  %4413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4414 = load i32, ptr %4413, align 4, !tbaa !5
  %4415 = call ptr @s2n_strerror_debug(i32 noundef %4414, ptr noundef @.str.4)
  %4416 = call ptr @__errno_location() #12
  %4417 = load i32, ptr %4416, align 4, !tbaa !5
  %4418 = call ptr @strerror(i32 noundef %4417) #11
  %4419 = call ptr @__errno_location() #12
  %4420 = load i32, ptr %4419, align 4, !tbaa !5
  %4421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4408, ptr noundef @.str.2, i32 noundef %4409, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 484, ptr noundef %4412, ptr noundef %4415, ptr noundef %4418, i32 noundef %4420) #11
  br label %4439

4422:                                             ; preds = %4400, %4393
  %4423 = load i32, ptr %119, align 4, !tbaa !5
  %4424 = call ptr @__errno_location() #12
  store i32 %4423, ptr %4424, 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 @.str.4)
  %4430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4431 = load i32, ptr %4430, align 4, !tbaa !5
  %4432 = call ptr @s2n_strerror_debug(i32 noundef %4431, ptr noundef @.str.4)
  %4433 = call ptr @__errno_location() #12
  %4434 = load i32, ptr %4433, align 4, !tbaa !5
  %4435 = call ptr @strerror(i32 noundef %4434) #11
  %4436 = call ptr @__errno_location() #12
  %4437 = load i32, ptr %4436, align 4, !tbaa !5
  %4438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4425, ptr noundef @.str.5, i32 noundef %4426, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 484, ptr noundef %4429, ptr noundef %4432, ptr noundef %4435, i32 noundef %4437) #11
  br label %4439

4439:                                             ; preds = %4422, %4405
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %4440

4440:                                             ; preds = %4439
  br label %4441

4441:                                             ; preds = %4440
  call void @exit(i32 noundef 1) #13
  unreachable

4442:                                             ; No predecessors!
  br label %4443

4443:                                             ; preds = %4442
  br label %4444

4444:                                             ; preds = %4443, %4382
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

4446:                                             ; preds = %4445
  br label %4447

4447:                                             ; preds = %4446, %4188
  br label %4448

4448:                                             ; preds = %4447
  %4449 = load i32, ptr @test_count, align 4, !tbaa !5
  %4450 = add nsw i32 %4449, 1
  store i32 %4450, ptr @test_count, align 4, !tbaa !5
  %4451 = load i64, ptr %9, align 8, !tbaa !15
  %4452 = trunc i64 %4451 to i32
  %4453 = call i32 @s2n_validate_test_async_pkey_ctx(ptr noundef %106, i32 noundef %4452)
  %4454 = getelementptr inbounds %struct.s2n_result, ptr %120, i32 0, i32 0
  store i32 %4453, ptr %4454, align 4
  %4455 = getelementptr inbounds %struct.s2n_result, ptr %120, i32 0, i32 0
  %4456 = load i32, ptr %4455, align 4
  %4457 = call zeroext i1 @s2n_result_is_ok(i32 %4456)
  br i1 %4457, label %4511, label %4458

4458:                                             ; preds = %4448
  br label %4459

4459:                                             ; preds = %4458
  br label %4460

4460:                                             ; preds = %4459
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #11
  %4461 = call ptr @__errno_location() #12
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  store i32 %4462, ptr %121, align 4, !tbaa !5
  %4463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4464 = call i32 @s2n_print_stacktrace(ptr noundef %4463)
  %4465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4466 = trunc i8 %4465 to i1
  br i1 %4466, label %4467, label %4489

4467:                                             ; preds = %4460
  %4468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4469 = call i32 @fileno(ptr noundef %4468) #11
  %4470 = call i32 @isatty(i32 noundef %4469) #11
  %4471 = icmp ne i32 %4470, 0
  br i1 %4471, label %4472, label %4489

4472:                                             ; preds = %4467
  %4473 = load i32, ptr %121, align 4, !tbaa !5
  %4474 = call ptr @__errno_location() #12
  store i32 %4473, ptr %4474, align 4, !tbaa !5
  %4475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4476 = load i32, ptr @test_count, align 4, !tbaa !5
  %4477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4478 = load i32, ptr %4477, align 4, !tbaa !5
  %4479 = call ptr @s2n_strerror(i32 noundef %4478, ptr noundef @.str.4)
  %4480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  %4482 = call ptr @s2n_strerror_debug(i32 noundef %4481, ptr noundef @.str.4)
  %4483 = call ptr @__errno_location() #12
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @strerror(i32 noundef %4484) #11
  %4486 = call ptr @__errno_location() #12
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4475, ptr noundef @.str.2, i32 noundef %4476, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 487, ptr noundef %4479, ptr noundef %4482, ptr noundef %4485, i32 noundef %4487) #11
  br label %4506

4489:                                             ; preds = %4467, %4460
  %4490 = load i32, ptr %121, align 4, !tbaa !5
  %4491 = call ptr @__errno_location() #12
  store i32 %4490, ptr %4491, align 4, !tbaa !5
  %4492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4493 = load i32, ptr @test_count, align 4, !tbaa !5
  %4494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4495 = load i32, ptr %4494, align 4, !tbaa !5
  %4496 = call ptr @s2n_strerror(i32 noundef %4495, ptr noundef @.str.4)
  %4497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror_debug(i32 noundef %4498, ptr noundef @.str.4)
  %4500 = call ptr @__errno_location() #12
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @strerror(i32 noundef %4501) #11
  %4503 = call ptr @__errno_location() #12
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4492, ptr noundef @.str.5, i32 noundef %4493, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 487, ptr noundef %4496, ptr noundef %4499, ptr noundef %4502, i32 noundef %4504) #11
  br label %4506

4506:                                             ; preds = %4489, %4472
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %4507

4507:                                             ; preds = %4506
  br label %4508

4508:                                             ; preds = %4507
  call void @exit(i32 noundef 1) #13
  unreachable

4509:                                             ; No predecessors!
  br label %4510

4510:                                             ; preds = %4509
  br label %4511

4511:                                             ; preds = %4510, %4448
  br label %4512

4512:                                             ; preds = %4511
  br label %4513

4513:                                             ; preds = %4512
  %4514 = call i32 @s2n_io_pair_close(ptr noundef %112)
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #11
  %4515 = call i32 @s2n_connection_ptr_free(ptr noundef %107)
  %4516 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  store i32 %4515, ptr %4516, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #11
  %4517 = call i32 @s2n_connection_ptr_free(ptr noundef %102)
  %4518 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  store i32 %4517, ptr %4518, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %101) #11
  br label %4519

4519:                                             ; preds = %4513
  %4520 = load i32, ptr %100, align 4, !tbaa !5
  %4521 = add i32 %4520, 1
  store i32 %4521, ptr %100, align 4, !tbaa !5
  br label %3551, !llvm.loop !47

4522:                                             ; preds = %3554
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  store i32 0, ptr %124, align 4, !tbaa !5
  br label %4523

4523:                                             ; preds = %5425, %4522
  %4524 = load i32, ptr %124, align 4, !tbaa !5
  %4525 = load i32, ptr %15, align 4, !tbaa !5
  %4526 = sub i32 %4525, 48
  %4527 = icmp ult i32 %4524, %4526
  br i1 %4527, label %4529, label %4528

4528:                                             ; preds = %4523
  store i32 432, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %5428

4529:                                             ; preds = %4523
  call void @llvm.lifetime.start.p0(i64 20, ptr %125) #11
  call void @llvm.memset.p0.i64(ptr align 4 %125, i8 0, i64 20, i1 false)
  %4530 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %125, i32 0, i32 0
  %4531 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %125, i32 0, i32 1
  %4532 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %125, i32 0, i32 2
  store i8 1, ptr %4532, align 4, !tbaa !39
  %4533 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %125, i32 0, i32 3
  %4534 = load i32, ptr %124, align 4, !tbaa !5
  store i32 %4534, ptr %4533, align 4, !tbaa !41
  %4535 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %125, i32 0, i32 4
  %4536 = getelementptr inbounds %struct.s2n_test_rsa_client_key_send_ctx, ptr %125, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #11
  %4537 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4537, ptr %126, align 8, !tbaa !9
  br label %4538

4538:                                             ; preds = %4529
  %4539 = load i32, ptr @test_count, align 4, !tbaa !5
  %4540 = add nsw i32 %4539, 1
  store i32 %4540, ptr @test_count, align 4, !tbaa !5
  %4541 = load ptr, ptr %126, align 8, !tbaa !9
  %4542 = icmp eq ptr %4541, null
  br i1 %4542, label %4543, label %4596

4543:                                             ; preds = %4538
  br label %4544

4544:                                             ; preds = %4543
  br label %4545

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

4552:                                             ; preds = %4545
  %4553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4554 = call i32 @fileno(ptr noundef %4553) #11
  %4555 = call i32 @isatty(i32 noundef %4554) #11
  %4556 = icmp ne i32 %4555, 0
  br i1 %4556, label %4557, label %4574

4557:                                             ; preds = %4552
  %4558 = load i32, ptr %127, align 4, !tbaa !5
  %4559 = call ptr @__errno_location() #12
  store i32 %4558, ptr %4559, align 4, !tbaa !5
  %4560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4561 = load i32, ptr @test_count, align 4, !tbaa !5
  %4562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4563 = load i32, ptr %4562, align 4, !tbaa !5
  %4564 = call ptr @s2n_strerror(i32 noundef %4563, ptr noundef @.str.4)
  %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_debug(i32 noundef %4566, ptr noundef @.str.4)
  %4568 = call ptr @__errno_location() #12
  %4569 = load i32, ptr %4568, align 4, !tbaa !5
  %4570 = call ptr @strerror(i32 noundef %4569) #11
  %4571 = call ptr @__errno_location() #12
  %4572 = load i32, ptr %4571, align 4, !tbaa !5
  %4573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4560, ptr noundef @.str.2, i32 noundef %4561, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 504, ptr noundef %4564, ptr noundef %4567, ptr noundef %4570, i32 noundef %4572) #11
  br label %4591

4574:                                             ; preds = %4552, %4545
  %4575 = load i32, ptr %127, align 4, !tbaa !5
  %4576 = call ptr @__errno_location() #12
  store i32 %4575, ptr %4576, align 4, !tbaa !5
  %4577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4578 = load i32, ptr @test_count, align 4, !tbaa !5
  %4579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4580 = load i32, ptr %4579, align 4, !tbaa !5
  %4581 = call ptr @s2n_strerror(i32 noundef %4580, ptr noundef @.str.4)
  %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_debug(i32 noundef %4583, ptr noundef @.str.4)
  %4585 = call ptr @__errno_location() #12
  %4586 = load i32, ptr %4585, align 4, !tbaa !5
  %4587 = call ptr @strerror(i32 noundef %4586) #11
  %4588 = call ptr @__errno_location() #12
  %4589 = load i32, ptr %4588, align 4, !tbaa !5
  %4590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4577, ptr noundef @.str.5, i32 noundef %4578, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 504, ptr noundef %4581, ptr noundef %4584, ptr noundef %4587, i32 noundef %4589) #11
  br label %4591

4591:                                             ; preds = %4574, %4557
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %4592

4592:                                             ; preds = %4591
  br label %4593

4593:                                             ; preds = %4592
  call void @exit(i32 noundef 1) #13
  unreachable

4594:                                             ; No predecessors!
  br label %4595

4595:                                             ; preds = %4594
  br label %4596

4596:                                             ; preds = %4595, %4538
  br label %4597

4597:                                             ; preds = %4596
  br label %4598

4598:                                             ; preds = %4597
  br label %4599

4599:                                             ; preds = %4598
  %4600 = load i32, ptr @test_count, align 4, !tbaa !5
  %4601 = add nsw i32 %4600, 1
  store i32 %4601, ptr @test_count, align 4, !tbaa !5
  %4602 = load ptr, ptr %126, align 8, !tbaa !9
  %4603 = load ptr, ptr %24, align 8, !tbaa !9
  %4604 = call i32 @s2n_connection_set_config(ptr noundef %4602, ptr noundef %4603)
  %4605 = icmp eq i32 %4604, -1
  br i1 %4605, label %4606, label %4659

4606:                                             ; preds = %4599
  br label %4607

4607:                                             ; preds = %4606
  br label %4608

4608:                                             ; preds = %4607
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  %4609 = call ptr @__errno_location() #12
  %4610 = load i32, ptr %4609, align 4, !tbaa !5
  store i32 %4610, ptr %128, align 4, !tbaa !5
  %4611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4612 = call i32 @s2n_print_stacktrace(ptr noundef %4611)
  %4613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4614 = trunc i8 %4613 to i1
  br i1 %4614, label %4615, label %4637

4615:                                             ; preds = %4608
  %4616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4617 = call i32 @fileno(ptr noundef %4616) #11
  %4618 = call i32 @isatty(i32 noundef %4617) #11
  %4619 = icmp ne i32 %4618, 0
  br i1 %4619, label %4620, label %4637

4620:                                             ; preds = %4615
  %4621 = load i32, ptr %128, align 4, !tbaa !5
  %4622 = call ptr @__errno_location() #12
  store i32 %4621, ptr %4622, align 4, !tbaa !5
  %4623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4624 = load i32, ptr @test_count, align 4, !tbaa !5
  %4625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4626 = load i32, ptr %4625, align 4, !tbaa !5
  %4627 = call ptr @s2n_strerror(i32 noundef %4626, ptr noundef @.str.4)
  %4628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4629 = load i32, ptr %4628, align 4, !tbaa !5
  %4630 = call ptr @s2n_strerror_debug(i32 noundef %4629, ptr noundef @.str.4)
  %4631 = call ptr @__errno_location() #12
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  %4633 = call ptr @strerror(i32 noundef %4632) #11
  %4634 = call ptr @__errno_location() #12
  %4635 = load i32, ptr %4634, align 4, !tbaa !5
  %4636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4623, ptr noundef @.str.2, i32 noundef %4624, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 505, ptr noundef %4627, ptr noundef %4630, ptr noundef %4633, i32 noundef %4635) #11
  br label %4654

4637:                                             ; preds = %4615, %4608
  %4638 = load i32, ptr %128, align 4, !tbaa !5
  %4639 = call ptr @__errno_location() #12
  store i32 %4638, ptr %4639, align 4, !tbaa !5
  %4640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4641 = load i32, ptr @test_count, align 4, !tbaa !5
  %4642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4643 = load i32, ptr %4642, align 4, !tbaa !5
  %4644 = call ptr @s2n_strerror(i32 noundef %4643, ptr noundef @.str.4)
  %4645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4646 = load i32, ptr %4645, align 4, !tbaa !5
  %4647 = call ptr @s2n_strerror_debug(i32 noundef %4646, ptr noundef @.str.4)
  %4648 = call ptr @__errno_location() #12
  %4649 = load i32, ptr %4648, align 4, !tbaa !5
  %4650 = call ptr @strerror(i32 noundef %4649) #11
  %4651 = call ptr @__errno_location() #12
  %4652 = load i32, ptr %4651, align 4, !tbaa !5
  %4653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4640, ptr noundef @.str.5, i32 noundef %4641, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 505, ptr noundef %4644, ptr noundef %4647, ptr noundef %4650, i32 noundef %4652) #11
  br label %4654

4654:                                             ; preds = %4637, %4620
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %4655

4655:                                             ; preds = %4654
  br label %4656

4656:                                             ; preds = %4655
  call void @exit(i32 noundef 1) #13
  unreachable

4657:                                             ; No predecessors!
  br label %4658

4658:                                             ; preds = %4657
  br label %4659

4659:                                             ; preds = %4658, %4599
  br label %4660

4660:                                             ; preds = %4659
  br label %4661

4661:                                             ; preds = %4660
  br label %4662

4662:                                             ; preds = %4661
  %4663 = load i32, ptr @test_count, align 4, !tbaa !5
  %4664 = add nsw i32 %4663, 1
  store i32 %4664, ptr @test_count, align 4, !tbaa !5
  %4665 = load ptr, ptr %126, align 8, !tbaa !9
  %4666 = call i32 @s2n_connection_set_ctx(ptr noundef %4665, ptr noundef %125)
  %4667 = icmp eq i32 %4666, -1
  br i1 %4667, label %4668, label %4721

4668:                                             ; preds = %4662
  br label %4669

4669:                                             ; preds = %4668
  br label %4670

4670:                                             ; preds = %4669
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %4671 = call ptr @__errno_location() #12
  %4672 = load i32, ptr %4671, align 4, !tbaa !5
  store i32 %4672, ptr %129, align 4, !tbaa !5
  %4673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4674 = call i32 @s2n_print_stacktrace(ptr noundef %4673)
  %4675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4676 = trunc i8 %4675 to i1
  br i1 %4676, label %4677, label %4699

4677:                                             ; preds = %4670
  %4678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4679 = call i32 @fileno(ptr noundef %4678) #11
  %4680 = call i32 @isatty(i32 noundef %4679) #11
  %4681 = icmp ne i32 %4680, 0
  br i1 %4681, label %4682, label %4699

4682:                                             ; preds = %4677
  %4683 = load i32, ptr %129, align 4, !tbaa !5
  %4684 = call ptr @__errno_location() #12
  store i32 %4683, ptr %4684, align 4, !tbaa !5
  %4685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4686 = load i32, ptr @test_count, align 4, !tbaa !5
  %4687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4688 = load i32, ptr %4687, align 4, !tbaa !5
  %4689 = call ptr @s2n_strerror(i32 noundef %4688, ptr noundef @.str.4)
  %4690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  %4692 = call ptr @s2n_strerror_debug(i32 noundef %4691, ptr noundef @.str.4)
  %4693 = call ptr @__errno_location() #12
  %4694 = load i32, ptr %4693, align 4, !tbaa !5
  %4695 = call ptr @strerror(i32 noundef %4694) #11
  %4696 = call ptr @__errno_location() #12
  %4697 = load i32, ptr %4696, align 4, !tbaa !5
  %4698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4685, ptr noundef @.str.2, i32 noundef %4686, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 506, ptr noundef %4689, ptr noundef %4692, ptr noundef %4695, i32 noundef %4697) #11
  br label %4716

4699:                                             ; preds = %4677, %4670
  %4700 = load i32, ptr %129, align 4, !tbaa !5
  %4701 = call ptr @__errno_location() #12
  store i32 %4700, ptr %4701, align 4, !tbaa !5
  %4702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4703 = load i32, ptr @test_count, align 4, !tbaa !5
  %4704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4705 = load i32, ptr %4704, align 4, !tbaa !5
  %4706 = call ptr @s2n_strerror(i32 noundef %4705, ptr noundef @.str.4)
  %4707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4708 = load i32, ptr %4707, align 4, !tbaa !5
  %4709 = call ptr @s2n_strerror_debug(i32 noundef %4708, ptr noundef @.str.4)
  %4710 = call ptr @__errno_location() #12
  %4711 = load i32, ptr %4710, align 4, !tbaa !5
  %4712 = call ptr @strerror(i32 noundef %4711) #11
  %4713 = call ptr @__errno_location() #12
  %4714 = load i32, ptr %4713, align 4, !tbaa !5
  %4715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4702, ptr noundef @.str.5, i32 noundef %4703, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 506, ptr noundef %4706, ptr noundef %4709, ptr noundef %4712, i32 noundef %4714) #11
  br label %4716

4716:                                             ; preds = %4699, %4682
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %4717

4717:                                             ; preds = %4716
  br label %4718

4718:                                             ; preds = %4717
  call void @exit(i32 noundef 1) #13
  unreachable

4719:                                             ; No predecessors!
  br label %4720

4720:                                             ; preds = %4719
  br label %4721

4721:                                             ; preds = %4720, %4662
  br label %4722

4722:                                             ; preds = %4721
  br label %4723

4723:                                             ; preds = %4722
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #11
  call void @llvm.memset.p0.i64(ptr align 4 %130, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #11
  %4724 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4724, ptr %131, align 8, !tbaa !9
  br label %4725

4725:                                             ; preds = %4723
  %4726 = load i32, ptr @test_count, align 4, !tbaa !5
  %4727 = add nsw i32 %4726, 1
  store i32 %4727, ptr @test_count, align 4, !tbaa !5
  %4728 = load ptr, ptr %131, align 8, !tbaa !9
  %4729 = icmp eq ptr %4728, null
  br i1 %4729, label %4730, label %4783

4730:                                             ; preds = %4725
  br label %4731

4731:                                             ; preds = %4730
  br label %4732

4732:                                             ; preds = %4731
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %4733 = call ptr @__errno_location() #12
  %4734 = load i32, ptr %4733, align 4, !tbaa !5
  store i32 %4734, ptr %132, align 4, !tbaa !5
  %4735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4736 = call i32 @s2n_print_stacktrace(ptr noundef %4735)
  %4737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4738 = trunc i8 %4737 to i1
  br i1 %4738, label %4739, label %4761

4739:                                             ; preds = %4732
  %4740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4741 = call i32 @fileno(ptr noundef %4740) #11
  %4742 = call i32 @isatty(i32 noundef %4741) #11
  %4743 = icmp ne i32 %4742, 0
  br i1 %4743, label %4744, label %4761

4744:                                             ; preds = %4739
  %4745 = load i32, ptr %132, align 4, !tbaa !5
  %4746 = call ptr @__errno_location() #12
  store i32 %4745, ptr %4746, align 4, !tbaa !5
  %4747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4748 = load i32, ptr @test_count, align 4, !tbaa !5
  %4749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4750 = load i32, ptr %4749, align 4, !tbaa !5
  %4751 = call ptr @s2n_strerror(i32 noundef %4750, ptr noundef @.str.4)
  %4752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4753 = load i32, ptr %4752, align 4, !tbaa !5
  %4754 = call ptr @s2n_strerror_debug(i32 noundef %4753, ptr noundef @.str.4)
  %4755 = call ptr @__errno_location() #12
  %4756 = load i32, ptr %4755, align 4, !tbaa !5
  %4757 = call ptr @strerror(i32 noundef %4756) #11
  %4758 = call ptr @__errno_location() #12
  %4759 = load i32, ptr %4758, align 4, !tbaa !5
  %4760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4747, ptr noundef @.str.2, i32 noundef %4748, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 512, ptr noundef %4751, ptr noundef %4754, ptr noundef %4757, i32 noundef %4759) #11
  br label %4778

4761:                                             ; preds = %4739, %4732
  %4762 = load i32, ptr %132, align 4, !tbaa !5
  %4763 = call ptr @__errno_location() #12
  store i32 %4762, ptr %4763, align 4, !tbaa !5
  %4764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4765 = load i32, ptr @test_count, align 4, !tbaa !5
  %4766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call ptr @s2n_strerror(i32 noundef %4767, ptr noundef @.str.4)
  %4769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call ptr @s2n_strerror_debug(i32 noundef %4770, ptr noundef @.str.4)
  %4772 = call ptr @__errno_location() #12
  %4773 = load i32, ptr %4772, align 4, !tbaa !5
  %4774 = call ptr @strerror(i32 noundef %4773) #11
  %4775 = call ptr @__errno_location() #12
  %4776 = load i32, ptr %4775, align 4, !tbaa !5
  %4777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4764, ptr noundef @.str.5, i32 noundef %4765, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 512, ptr noundef %4768, ptr noundef %4771, ptr noundef %4774, i32 noundef %4776) #11
  br label %4778

4778:                                             ; preds = %4761, %4744
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %4779

4779:                                             ; preds = %4778
  br label %4780

4780:                                             ; preds = %4779
  call void @exit(i32 noundef 1) #13
  unreachable

4781:                                             ; No predecessors!
  br label %4782

4782:                                             ; preds = %4781
  br label %4783

4783:                                             ; preds = %4782, %4725
  br label %4784

4784:                                             ; preds = %4783
  br label %4785

4785:                                             ; preds = %4784
  br label %4786

4786:                                             ; preds = %4785
  %4787 = load i32, ptr @test_count, align 4, !tbaa !5
  %4788 = add nsw i32 %4787, 1
  store i32 %4788, ptr @test_count, align 4, !tbaa !5
  %4789 = load ptr, ptr %131, align 8, !tbaa !9
  %4790 = load ptr, ptr %27, align 8, !tbaa !9
  %4791 = call i32 @s2n_connection_set_config(ptr noundef %4789, ptr noundef %4790)
  %4792 = icmp eq i32 %4791, -1
  br i1 %4792, label %4793, label %4846

4793:                                             ; preds = %4786
  br label %4794

4794:                                             ; preds = %4793
  br label %4795

4795:                                             ; preds = %4794
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #11
  %4796 = call ptr @__errno_location() #12
  %4797 = load i32, ptr %4796, align 4, !tbaa !5
  store i32 %4797, ptr %133, align 4, !tbaa !5
  %4798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4799 = call i32 @s2n_print_stacktrace(ptr noundef %4798)
  %4800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4801 = trunc i8 %4800 to i1
  br i1 %4801, label %4802, label %4824

4802:                                             ; preds = %4795
  %4803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4804 = call i32 @fileno(ptr noundef %4803) #11
  %4805 = call i32 @isatty(i32 noundef %4804) #11
  %4806 = icmp ne i32 %4805, 0
  br i1 %4806, label %4807, label %4824

4807:                                             ; preds = %4802
  %4808 = load i32, ptr %133, align 4, !tbaa !5
  %4809 = call ptr @__errno_location() #12
  store i32 %4808, ptr %4809, align 4, !tbaa !5
  %4810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4811 = load i32, ptr @test_count, align 4, !tbaa !5
  %4812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4813 = load i32, ptr %4812, align 4, !tbaa !5
  %4814 = call ptr @s2n_strerror(i32 noundef %4813, ptr noundef @.str.4)
  %4815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4816 = load i32, ptr %4815, align 4, !tbaa !5
  %4817 = call ptr @s2n_strerror_debug(i32 noundef %4816, ptr noundef @.str.4)
  %4818 = call ptr @__errno_location() #12
  %4819 = load i32, ptr %4818, align 4, !tbaa !5
  %4820 = call ptr @strerror(i32 noundef %4819) #11
  %4821 = call ptr @__errno_location() #12
  %4822 = load i32, ptr %4821, align 4, !tbaa !5
  %4823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4810, ptr noundef @.str.2, i32 noundef %4811, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 513, ptr noundef %4814, ptr noundef %4817, ptr noundef %4820, i32 noundef %4822) #11
  br label %4841

4824:                                             ; preds = %4802, %4795
  %4825 = load i32, ptr %133, align 4, !tbaa !5
  %4826 = call ptr @__errno_location() #12
  store i32 %4825, ptr %4826, align 4, !tbaa !5
  %4827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4828 = load i32, ptr @test_count, align 4, !tbaa !5
  %4829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  %4831 = call ptr @s2n_strerror(i32 noundef %4830, ptr noundef @.str.4)
  %4832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4833 = load i32, ptr %4832, align 4, !tbaa !5
  %4834 = call ptr @s2n_strerror_debug(i32 noundef %4833, ptr noundef @.str.4)
  %4835 = call ptr @__errno_location() #12
  %4836 = load i32, ptr %4835, align 4, !tbaa !5
  %4837 = call ptr @strerror(i32 noundef %4836) #11
  %4838 = call ptr @__errno_location() #12
  %4839 = load i32, ptr %4838, align 4, !tbaa !5
  %4840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4827, ptr noundef @.str.5, i32 noundef %4828, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 513, ptr noundef %4831, ptr noundef %4834, ptr noundef %4837, i32 noundef %4839) #11
  br label %4841

4841:                                             ; preds = %4824, %4807
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %4842

4842:                                             ; preds = %4841
  br label %4843

4843:                                             ; preds = %4842
  call void @exit(i32 noundef 1) #13
  unreachable

4844:                                             ; No predecessors!
  br label %4845

4845:                                             ; preds = %4844
  br label %4846

4846:                                             ; preds = %4845, %4786
  br label %4847

4847:                                             ; preds = %4846
  br label %4848

4848:                                             ; preds = %4847
  br label %4849

4849:                                             ; preds = %4848
  %4850 = load i32, ptr @test_count, align 4, !tbaa !5
  %4851 = add nsw i32 %4850, 1
  store i32 %4851, ptr @test_count, align 4, !tbaa !5
  %4852 = load ptr, ptr %131, align 8, !tbaa !9
  %4853 = call i32 @s2n_connection_set_ctx(ptr noundef %4852, ptr noundef %130)
  %4854 = icmp eq i32 %4853, -1
  br i1 %4854, label %4855, label %4908

4855:                                             ; preds = %4849
  br label %4856

4856:                                             ; preds = %4855
  br label %4857

4857:                                             ; preds = %4856
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %4858 = call ptr @__errno_location() #12
  %4859 = load i32, ptr %4858, align 4, !tbaa !5
  store i32 %4859, ptr %134, align 4, !tbaa !5
  %4860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4861 = call i32 @s2n_print_stacktrace(ptr noundef %4860)
  %4862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4863 = trunc i8 %4862 to i1
  br i1 %4863, label %4864, label %4886

4864:                                             ; preds = %4857
  %4865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4866 = call i32 @fileno(ptr noundef %4865) #11
  %4867 = call i32 @isatty(i32 noundef %4866) #11
  %4868 = icmp ne i32 %4867, 0
  br i1 %4868, label %4869, label %4886

4869:                                             ; preds = %4864
  %4870 = load i32, ptr %134, align 4, !tbaa !5
  %4871 = call ptr @__errno_location() #12
  store i32 %4870, ptr %4871, align 4, !tbaa !5
  %4872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4873 = load i32, ptr @test_count, align 4, !tbaa !5
  %4874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4875 = load i32, ptr %4874, align 4, !tbaa !5
  %4876 = call ptr @s2n_strerror(i32 noundef %4875, ptr noundef @.str.4)
  %4877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4878 = load i32, ptr %4877, align 4, !tbaa !5
  %4879 = call ptr @s2n_strerror_debug(i32 noundef %4878, ptr noundef @.str.4)
  %4880 = call ptr @__errno_location() #12
  %4881 = load i32, ptr %4880, align 4, !tbaa !5
  %4882 = call ptr @strerror(i32 noundef %4881) #11
  %4883 = call ptr @__errno_location() #12
  %4884 = load i32, ptr %4883, align 4, !tbaa !5
  %4885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4872, ptr noundef @.str.2, i32 noundef %4873, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 514, ptr noundef %4876, ptr noundef %4879, ptr noundef %4882, i32 noundef %4884) #11
  br label %4903

4886:                                             ; preds = %4864, %4857
  %4887 = load i32, ptr %134, align 4, !tbaa !5
  %4888 = call ptr @__errno_location() #12
  store i32 %4887, ptr %4888, align 4, !tbaa !5
  %4889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4890 = load i32, ptr @test_count, align 4, !tbaa !5
  %4891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4892 = load i32, ptr %4891, align 4, !tbaa !5
  %4893 = call ptr @s2n_strerror(i32 noundef %4892, ptr noundef @.str.4)
  %4894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4895 = load i32, ptr %4894, align 4, !tbaa !5
  %4896 = call ptr @s2n_strerror_debug(i32 noundef %4895, ptr noundef @.str.4)
  %4897 = call ptr @__errno_location() #12
  %4898 = load i32, ptr %4897, align 4, !tbaa !5
  %4899 = call ptr @strerror(i32 noundef %4898) #11
  %4900 = call ptr @__errno_location() #12
  %4901 = load i32, ptr %4900, align 4, !tbaa !5
  %4902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4889, ptr noundef @.str.5, i32 noundef %4890, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 514, ptr noundef %4893, ptr noundef %4896, ptr noundef %4899, i32 noundef %4901) #11
  br label %4903

4903:                                             ; preds = %4886, %4869
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %4904

4904:                                             ; preds = %4903
  br label %4905

4905:                                             ; preds = %4904
  call void @exit(i32 noundef 1) #13
  unreachable

4906:                                             ; No predecessors!
  br label %4907

4907:                                             ; preds = %4906
  br label %4908

4908:                                             ; preds = %4907, %4849
  br label %4909

4909:                                             ; preds = %4908
  br label %4910

4910:                                             ; preds = %4909
  br label %4911

4911:                                             ; preds = %4910
  %4912 = load i32, ptr @test_count, align 4, !tbaa !5
  %4913 = add nsw i32 %4912, 1
  store i32 %4913, ptr @test_count, align 4, !tbaa !5
  %4914 = load ptr, ptr %131, align 8, !tbaa !9
  %4915 = call i32 @s2n_connection_set_blinding(ptr noundef %4914, i32 noundef 1)
  %4916 = icmp eq i32 %4915, -1
  br i1 %4916, label %4917, label %4970

4917:                                             ; preds = %4911
  br label %4918

4918:                                             ; preds = %4917
  br label %4919

4919:                                             ; preds = %4918
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %4920 = call ptr @__errno_location() #12
  %4921 = load i32, ptr %4920, align 4, !tbaa !5
  store i32 %4921, ptr %135, align 4, !tbaa !5
  %4922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4923 = call i32 @s2n_print_stacktrace(ptr noundef %4922)
  %4924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4925 = trunc i8 %4924 to i1
  br i1 %4925, label %4926, label %4948

4926:                                             ; preds = %4919
  %4927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4928 = call i32 @fileno(ptr noundef %4927) #11
  %4929 = call i32 @isatty(i32 noundef %4928) #11
  %4930 = icmp ne i32 %4929, 0
  br i1 %4930, label %4931, label %4948

4931:                                             ; preds = %4926
  %4932 = load i32, ptr %135, align 4, !tbaa !5
  %4933 = call ptr @__errno_location() #12
  store i32 %4932, ptr %4933, align 4, !tbaa !5
  %4934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4935 = load i32, ptr @test_count, align 4, !tbaa !5
  %4936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4937 = load i32, ptr %4936, align 4, !tbaa !5
  %4938 = call ptr @s2n_strerror(i32 noundef %4937, ptr noundef @.str.4)
  %4939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  %4941 = call ptr @s2n_strerror_debug(i32 noundef %4940, ptr noundef @.str.4)
  %4942 = call ptr @__errno_location() #12
  %4943 = load i32, ptr %4942, align 4, !tbaa !5
  %4944 = call ptr @strerror(i32 noundef %4943) #11
  %4945 = call ptr @__errno_location() #12
  %4946 = load i32, ptr %4945, align 4, !tbaa !5
  %4947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4934, ptr noundef @.str.2, i32 noundef %4935, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 515, ptr noundef %4938, ptr noundef %4941, ptr noundef %4944, i32 noundef %4946) #11
  br label %4965

4948:                                             ; preds = %4926, %4919
  %4949 = load i32, ptr %135, align 4, !tbaa !5
  %4950 = call ptr @__errno_location() #12
  store i32 %4949, ptr %4950, align 4, !tbaa !5
  %4951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4952 = load i32, ptr @test_count, align 4, !tbaa !5
  %4953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4954 = load i32, ptr %4953, align 4, !tbaa !5
  %4955 = call ptr @s2n_strerror(i32 noundef %4954, ptr noundef @.str.4)
  %4956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4957 = load i32, ptr %4956, align 4, !tbaa !5
  %4958 = call ptr @s2n_strerror_debug(i32 noundef %4957, ptr noundef @.str.4)
  %4959 = call ptr @__errno_location() #12
  %4960 = load i32, ptr %4959, align 4, !tbaa !5
  %4961 = call ptr @strerror(i32 noundef %4960) #11
  %4962 = call ptr @__errno_location() #12
  %4963 = load i32, ptr %4962, align 4, !tbaa !5
  %4964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4951, ptr noundef @.str.5, i32 noundef %4952, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 515, ptr noundef %4955, ptr noundef %4958, ptr noundef %4961, i32 noundef %4963) #11
  br label %4965

4965:                                             ; preds = %4948, %4931
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %4966

4966:                                             ; preds = %4965
  br label %4967

4967:                                             ; preds = %4966
  call void @exit(i32 noundef 1) #13
  unreachable

4968:                                             ; No predecessors!
  br label %4969

4969:                                             ; preds = %4968
  br label %4970

4970:                                             ; preds = %4969, %4911
  br label %4971

4971:                                             ; preds = %4970
  br label %4972

4972:                                             ; preds = %4971
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #11
  br label %4973

4973:                                             ; preds = %4972
  %4974 = load i32, ptr @test_count, align 4, !tbaa !5
  %4975 = add nsw i32 %4974, 1
  store i32 %4975, ptr @test_count, align 4, !tbaa !5
  %4976 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %136)
  %4977 = icmp eq i32 %4976, -1
  br i1 %4977, label %4978, label %5031

4978:                                             ; preds = %4973
  br label %4979

4979:                                             ; preds = %4978
  br label %4980

4980:                                             ; preds = %4979
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %4981 = call ptr @__errno_location() #12
  %4982 = load i32, ptr %4981, align 4, !tbaa !5
  store i32 %4982, ptr %137, align 4, !tbaa !5
  %4983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4984 = call i32 @s2n_print_stacktrace(ptr noundef %4983)
  %4985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4986 = trunc i8 %4985 to i1
  br i1 %4986, label %4987, label %5009

4987:                                             ; preds = %4980
  %4988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4989 = call i32 @fileno(ptr noundef %4988) #11
  %4990 = call i32 @isatty(i32 noundef %4989) #11
  %4991 = icmp ne i32 %4990, 0
  br i1 %4991, label %4992, label %5009

4992:                                             ; preds = %4987
  %4993 = load i32, ptr %137, align 4, !tbaa !5
  %4994 = call ptr @__errno_location() #12
  store i32 %4993, ptr %4994, align 4, !tbaa !5
  %4995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4996 = load i32, ptr @test_count, align 4, !tbaa !5
  %4997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4998 = load i32, ptr %4997, align 4, !tbaa !5
  %4999 = call ptr @s2n_strerror(i32 noundef %4998, ptr noundef @.str.4)
  %5000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5001 = load i32, ptr %5000, align 4, !tbaa !5
  %5002 = call ptr @s2n_strerror_debug(i32 noundef %5001, ptr noundef @.str.4)
  %5003 = call ptr @__errno_location() #12
  %5004 = load i32, ptr %5003, align 4, !tbaa !5
  %5005 = call ptr @strerror(i32 noundef %5004) #11
  %5006 = call ptr @__errno_location() #12
  %5007 = load i32, ptr %5006, align 4, !tbaa !5
  %5008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4995, ptr noundef @.str.2, i32 noundef %4996, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 518, ptr noundef %4999, ptr noundef %5002, ptr noundef %5005, i32 noundef %5007) #11
  br label %5026

5009:                                             ; preds = %4987, %4980
  %5010 = load i32, ptr %137, align 4, !tbaa !5
  %5011 = call ptr @__errno_location() #12
  store i32 %5010, ptr %5011, align 4, !tbaa !5
  %5012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5013 = load i32, ptr @test_count, align 4, !tbaa !5
  %5014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5015 = load i32, ptr %5014, align 4, !tbaa !5
  %5016 = call ptr @s2n_strerror(i32 noundef %5015, ptr noundef @.str.4)
  %5017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  %5019 = call ptr @s2n_strerror_debug(i32 noundef %5018, ptr noundef @.str.4)
  %5020 = call ptr @__errno_location() #12
  %5021 = load i32, ptr %5020, align 4, !tbaa !5
  %5022 = call ptr @strerror(i32 noundef %5021) #11
  %5023 = call ptr @__errno_location() #12
  %5024 = load i32, ptr %5023, align 4, !tbaa !5
  %5025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5012, ptr noundef @.str.5, i32 noundef %5013, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 518, ptr noundef %5016, ptr noundef %5019, ptr noundef %5022, i32 noundef %5024) #11
  br label %5026

5026:                                             ; preds = %5009, %4992
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %5027

5027:                                             ; preds = %5026
  br label %5028

5028:                                             ; preds = %5027
  call void @exit(i32 noundef 1) #13
  unreachable

5029:                                             ; No predecessors!
  br label %5030

5030:                                             ; preds = %5029
  br label %5031

5031:                                             ; preds = %5030, %4973
  br label %5032

5032:                                             ; preds = %5031
  br label %5033

5033:                                             ; preds = %5032
  br label %5034

5034:                                             ; preds = %5033
  %5035 = load i32, ptr @test_count, align 4, !tbaa !5
  %5036 = add nsw i32 %5035, 1
  store i32 %5036, ptr @test_count, align 4, !tbaa !5
  %5037 = load ptr, ptr %126, align 8, !tbaa !9
  %5038 = load ptr, ptr %131, align 8, !tbaa !9
  %5039 = call i32 @s2n_connections_set_io_pair(ptr noundef %5037, ptr noundef %5038, ptr noundef %136)
  %5040 = icmp eq i32 %5039, -1
  br i1 %5040, label %5041, label %5094

5041:                                             ; preds = %5034
  br label %5042

5042:                                             ; preds = %5041
  br label %5043

5043:                                             ; preds = %5042
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %5044 = call ptr @__errno_location() #12
  %5045 = load i32, ptr %5044, align 4, !tbaa !5
  store i32 %5045, ptr %138, align 4, !tbaa !5
  %5046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5047 = call i32 @s2n_print_stacktrace(ptr noundef %5046)
  %5048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5049 = trunc i8 %5048 to i1
  br i1 %5049, label %5050, label %5072

5050:                                             ; preds = %5043
  %5051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5052 = call i32 @fileno(ptr noundef %5051) #11
  %5053 = call i32 @isatty(i32 noundef %5052) #11
  %5054 = icmp ne i32 %5053, 0
  br i1 %5054, label %5055, label %5072

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

5072:                                             ; preds = %5050, %5043
  %5073 = load i32, ptr %138, align 4, !tbaa !5
  %5074 = call ptr @__errno_location() #12
  store i32 %5073, ptr %5074, align 4, !tbaa !5
  %5075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5076 = load i32, ptr @test_count, align 4, !tbaa !5
  %5077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5078 = load i32, ptr %5077, align 4, !tbaa !5
  %5079 = call ptr @s2n_strerror(i32 noundef %5078, ptr noundef @.str.4)
  %5080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5081 = load i32, ptr %5080, align 4, !tbaa !5
  %5082 = call ptr @s2n_strerror_debug(i32 noundef %5081, ptr noundef @.str.4)
  %5083 = call ptr @__errno_location() #12
  %5084 = load i32, ptr %5083, align 4, !tbaa !5
  %5085 = call ptr @strerror(i32 noundef %5084) #11
  %5086 = call ptr @__errno_location() #12
  %5087 = load i32, ptr %5086, align 4, !tbaa !5
  %5088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5075, ptr noundef @.str.5, i32 noundef %5076, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 519, ptr noundef %5079, ptr noundef %5082, ptr noundef %5085, i32 noundef %5087) #11
  br label %5089

5089:                                             ; preds = %5072, %5055
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %5090

5090:                                             ; preds = %5089
  br label %5091

5091:                                             ; preds = %5090
  call void @exit(i32 noundef 1) #13
  unreachable

5092:                                             ; No predecessors!
  br label %5093

5093:                                             ; preds = %5092
  br label %5094

5094:                                             ; preds = %5093, %5034
  br label %5095

5095:                                             ; preds = %5094
  br label %5096

5096:                                             ; preds = %5095
  br label %5097

5097:                                             ; preds = %5096
  br label %5098

5098:                                             ; preds = %5097
  %5099 = load i32, ptr @test_count, align 4, !tbaa !5
  %5100 = add nsw i32 %5099, 1
  store i32 %5100, ptr @test_count, align 4, !tbaa !5
  %5101 = load ptr, ptr %131, align 8, !tbaa !9
  %5102 = load ptr, ptr %126, align 8, !tbaa !9
  %5103 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5101, ptr noundef %5102)
  %5104 = icmp eq i32 %5103, -1
  br i1 %5104, label %5158, label %5105

5105:                                             ; preds = %5098
  br label %5106

5106:                                             ; preds = %5105
  br label %5107

5107:                                             ; preds = %5106
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %5108 = call ptr @__errno_location() #12
  %5109 = load i32, ptr %5108, align 4, !tbaa !5
  store i32 %5109, ptr %139, align 4, !tbaa !5
  %5110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5111 = call i32 @s2n_print_stacktrace(ptr noundef %5110)
  %5112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5113 = trunc i8 %5112 to i1
  br i1 %5113, label %5114, label %5136

5114:                                             ; preds = %5107
  %5115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5116 = call i32 @fileno(ptr noundef %5115) #11
  %5117 = call i32 @isatty(i32 noundef %5116) #11
  %5118 = icmp ne i32 %5117, 0
  br i1 %5118, label %5119, label %5136

5119:                                             ; preds = %5114
  %5120 = load i32, ptr %139, align 4, !tbaa !5
  %5121 = call ptr @__errno_location() #12
  store i32 %5120, ptr %5121, align 4, !tbaa !5
  %5122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5123 = load i32, ptr @test_count, align 4, !tbaa !5
  %5124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5125 = load i32, ptr %5124, align 4, !tbaa !5
  %5126 = call ptr @s2n_strerror(i32 noundef %5125, ptr noundef @.str.4)
  %5127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5128 = load i32, ptr %5127, align 4, !tbaa !5
  %5129 = call ptr @s2n_strerror_debug(i32 noundef %5128, ptr noundef @.str.4)
  %5130 = call ptr @__errno_location() #12
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call ptr @strerror(i32 noundef %5131) #11
  %5133 = call ptr @__errno_location() #12
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5122, ptr noundef @.str.2, i32 noundef %5123, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 521, ptr noundef %5126, ptr noundef %5129, ptr noundef %5132, i32 noundef %5134) #11
  br label %5153

5136:                                             ; preds = %5114, %5107
  %5137 = load i32, ptr %139, align 4, !tbaa !5
  %5138 = call ptr @__errno_location() #12
  store i32 %5137, ptr %5138, align 4, !tbaa !5
  %5139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5140 = load i32, ptr @test_count, align 4, !tbaa !5
  %5141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5142 = load i32, ptr %5141, align 4, !tbaa !5
  %5143 = call ptr @s2n_strerror(i32 noundef %5142, ptr noundef @.str.4)
  %5144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5145 = load i32, ptr %5144, align 4, !tbaa !5
  %5146 = call ptr @s2n_strerror_debug(i32 noundef %5145, ptr noundef @.str.4)
  %5147 = call ptr @__errno_location() #12
  %5148 = load i32, ptr %5147, align 4, !tbaa !5
  %5149 = call ptr @strerror(i32 noundef %5148) #11
  %5150 = call ptr @__errno_location() #12
  %5151 = load i32, ptr %5150, align 4, !tbaa !5
  %5152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5139, ptr noundef @.str.5, i32 noundef %5140, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 521, ptr noundef %5143, ptr noundef %5146, ptr noundef %5149, i32 noundef %5151) #11
  br label %5153

5153:                                             ; preds = %5136, %5119
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %5154

5154:                                             ; preds = %5153
  br label %5155

5155:                                             ; preds = %5154
  call void @exit(i32 noundef 1) #13
  unreachable

5156:                                             ; No predecessors!
  br label %5157

5157:                                             ; preds = %5156
  br label %5158

5158:                                             ; preds = %5157, %5098
  br label %5159

5159:                                             ; preds = %5158
  br label %5160

5160:                                             ; preds = %5159
  br label %5161

5161:                                             ; preds = %5160
  %5162 = load i32, ptr @test_count, align 4, !tbaa !5
  %5163 = add nsw i32 %5162, 1
  store i32 %5163, ptr @test_count, align 4, !tbaa !5
  %5164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5165 = load i32, ptr %5164, align 4, !tbaa !5
  %5166 = load i32, ptr %52, align 4, !tbaa !5
  %5167 = icmp eq i32 %5165, %5166
  br i1 %5167, label %5221, label %5168

5168:                                             ; preds = %5161
  br label %5169

5169:                                             ; preds = %5168
  br label %5170

5170:                                             ; preds = %5169
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %5171 = call ptr @__errno_location() #12
  %5172 = load i32, ptr %5171, align 4, !tbaa !5
  store i32 %5172, ptr %140, align 4, !tbaa !5
  %5173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5174 = call i32 @s2n_print_stacktrace(ptr noundef %5173)
  %5175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5176 = trunc i8 %5175 to i1
  br i1 %5176, label %5177, label %5199

5177:                                             ; preds = %5170
  %5178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5179 = call i32 @fileno(ptr noundef %5178) #11
  %5180 = call i32 @isatty(i32 noundef %5179) #11
  %5181 = icmp ne i32 %5180, 0
  br i1 %5181, label %5182, label %5199

5182:                                             ; preds = %5177
  %5183 = load i32, ptr %140, align 4, !tbaa !5
  %5184 = call ptr @__errno_location() #12
  store i32 %5183, ptr %5184, align 4, !tbaa !5
  %5185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5186 = load i32, ptr @test_count, align 4, !tbaa !5
  %5187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5188 = load i32, ptr %5187, align 4, !tbaa !5
  %5189 = call ptr @s2n_strerror(i32 noundef %5188, ptr noundef @.str.4)
  %5190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call ptr @s2n_strerror_debug(i32 noundef %5191, ptr noundef @.str.4)
  %5193 = call ptr @__errno_location() #12
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call ptr @strerror(i32 noundef %5194) #11
  %5196 = call ptr @__errno_location() #12
  %5197 = load i32, ptr %5196, align 4, !tbaa !5
  %5198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5185, ptr noundef @.str.2, i32 noundef %5186, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 521, ptr noundef %5189, ptr noundef %5192, ptr noundef %5195, i32 noundef %5197) #11
  br label %5216

5199:                                             ; preds = %5177, %5170
  %5200 = load i32, ptr %140, align 4, !tbaa !5
  %5201 = call ptr @__errno_location() #12
  store i32 %5200, ptr %5201, align 4, !tbaa !5
  %5202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5203 = load i32, ptr @test_count, align 4, !tbaa !5
  %5204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5205 = load i32, ptr %5204, align 4, !tbaa !5
  %5206 = call ptr @s2n_strerror(i32 noundef %5205, ptr noundef @.str.4)
  %5207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5208 = load i32, ptr %5207, align 4, !tbaa !5
  %5209 = call ptr @s2n_strerror_debug(i32 noundef %5208, ptr noundef @.str.4)
  %5210 = call ptr @__errno_location() #12
  %5211 = load i32, ptr %5210, align 4, !tbaa !5
  %5212 = call ptr @strerror(i32 noundef %5211) #11
  %5213 = call ptr @__errno_location() #12
  %5214 = load i32, ptr %5213, align 4, !tbaa !5
  %5215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5202, ptr noundef @.str.5, i32 noundef %5203, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 521, ptr noundef %5206, ptr noundef %5209, ptr noundef %5212, i32 noundef %5214) #11
  br label %5216

5216:                                             ; preds = %5199, %5182
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %5217

5217:                                             ; preds = %5216
  br label %5218

5218:                                             ; preds = %5217
  call void @exit(i32 noundef 1) #13
  unreachable

5219:                                             ; No predecessors!
  br label %5220

5220:                                             ; preds = %5219
  br label %5221

5221:                                             ; preds = %5220, %5161
  br label %5222

5222:                                             ; preds = %5221
  br label %5223

5223:                                             ; preds = %5222
  br label %5224

5224:                                             ; preds = %5223
  %5225 = load i32, ptr @test_count, align 4, !tbaa !5
  %5226 = add nsw i32 %5225, 1
  store i32 %5226, ptr @test_count, align 4, !tbaa !5
  %5227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5228 = load i32, ptr %5227, align 4, !tbaa !5
  %5229 = call ptr @s2n_strerror_debug(i32 noundef %5228, ptr noundef @.str.4)
  %5230 = icmp eq ptr %5229, null
  br i1 %5230, label %5231, label %5284

5231:                                             ; preds = %5224
  br label %5232

5232:                                             ; preds = %5231
  br label %5233

5233:                                             ; preds = %5232
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %5234 = call ptr @__errno_location() #12
  %5235 = load i32, ptr %5234, align 4, !tbaa !5
  store i32 %5235, ptr %141, align 4, !tbaa !5
  %5236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5237 = call i32 @s2n_print_stacktrace(ptr noundef %5236)
  %5238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5239 = trunc i8 %5238 to i1
  br i1 %5239, label %5240, label %5262

5240:                                             ; preds = %5233
  %5241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5242 = call i32 @fileno(ptr noundef %5241) #11
  %5243 = call i32 @isatty(i32 noundef %5242) #11
  %5244 = icmp ne i32 %5243, 0
  br i1 %5244, label %5245, label %5262

5245:                                             ; preds = %5240
  %5246 = load i32, ptr %141, align 4, !tbaa !5
  %5247 = call ptr @__errno_location() #12
  store i32 %5246, ptr %5247, align 4, !tbaa !5
  %5248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5249 = load i32, ptr @test_count, align 4, !tbaa !5
  %5250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5251 = load i32, ptr %5250, align 4, !tbaa !5
  %5252 = call ptr @s2n_strerror(i32 noundef %5251, ptr noundef @.str.4)
  %5253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5254 = load i32, ptr %5253, align 4, !tbaa !5
  %5255 = call ptr @s2n_strerror_debug(i32 noundef %5254, ptr noundef @.str.4)
  %5256 = call ptr @__errno_location() #12
  %5257 = load i32, ptr %5256, align 4, !tbaa !5
  %5258 = call ptr @strerror(i32 noundef %5257) #11
  %5259 = call ptr @__errno_location() #12
  %5260 = load i32, ptr %5259, align 4, !tbaa !5
  %5261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5248, ptr noundef @.str.2, i32 noundef %5249, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 521, ptr noundef %5252, ptr noundef %5255, ptr noundef %5258, i32 noundef %5260) #11
  br label %5279

5262:                                             ; preds = %5240, %5233
  %5263 = load i32, ptr %141, align 4, !tbaa !5
  %5264 = call ptr @__errno_location() #12
  store i32 %5263, ptr %5264, align 4, !tbaa !5
  %5265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5266 = load i32, ptr @test_count, align 4, !tbaa !5
  %5267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5268 = load i32, ptr %5267, align 4, !tbaa !5
  %5269 = call ptr @s2n_strerror(i32 noundef %5268, ptr noundef @.str.4)
  %5270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5271 = load i32, ptr %5270, align 4, !tbaa !5
  %5272 = call ptr @s2n_strerror_debug(i32 noundef %5271, ptr noundef @.str.4)
  %5273 = call ptr @__errno_location() #12
  %5274 = load i32, ptr %5273, align 4, !tbaa !5
  %5275 = call ptr @strerror(i32 noundef %5274) #11
  %5276 = call ptr @__errno_location() #12
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  %5278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5265, ptr noundef @.str.5, i32 noundef %5266, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 521, ptr noundef %5269, ptr noundef %5272, ptr noundef %5275, i32 noundef %5277) #11
  br label %5279

5279:                                             ; preds = %5262, %5245
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %5280

5280:                                             ; preds = %5279
  br label %5281

5281:                                             ; preds = %5280
  call void @exit(i32 noundef 1) #13
  unreachable

5282:                                             ; No predecessors!
  br label %5283

5283:                                             ; preds = %5282
  br label %5284

5284:                                             ; preds = %5283, %5224
  br label %5285

5285:                                             ; preds = %5284
  br label %5286

5286:                                             ; preds = %5285
  br label %5287

5287:                                             ; preds = %5286
  br label %5288

5288:                                             ; preds = %5287
  br label %5289

5289:                                             ; preds = %5288
  %5290 = load i32, ptr @test_count, align 4, !tbaa !5
  %5291 = add nsw i32 %5290, 1
  store i32 %5291, ptr @test_count, align 4, !tbaa !5
  %5292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5293 = load i32, ptr %5292, align 4, !tbaa !5
  %5294 = call ptr @s2n_strerror_source(i32 noundef %5293)
  %5295 = load ptr, ptr %53, align 8, !tbaa !9
  %5296 = call i32 @strcmp(ptr noundef %5294, ptr noundef %5295) #14
  %5297 = icmp eq i32 %5296, 0
  br i1 %5297, label %5351, label %5298

5298:                                             ; preds = %5289
  br label %5299

5299:                                             ; preds = %5298
  br label %5300

5300:                                             ; preds = %5299
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %5301 = call ptr @__errno_location() #12
  %5302 = load i32, ptr %5301, align 4, !tbaa !5
  store i32 %5302, ptr %142, align 4, !tbaa !5
  %5303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5304 = call i32 @s2n_print_stacktrace(ptr noundef %5303)
  %5305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5306 = trunc i8 %5305 to i1
  br i1 %5306, label %5307, label %5329

5307:                                             ; preds = %5300
  %5308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5309 = call i32 @fileno(ptr noundef %5308) #11
  %5310 = call i32 @isatty(i32 noundef %5309) #11
  %5311 = icmp ne i32 %5310, 0
  br i1 %5311, label %5312, label %5329

5312:                                             ; preds = %5307
  %5313 = load i32, ptr %142, align 4, !tbaa !5
  %5314 = call ptr @__errno_location() #12
  store i32 %5313, ptr %5314, align 4, !tbaa !5
  %5315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5316 = load i32, ptr @test_count, align 4, !tbaa !5
  %5317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5318 = load i32, ptr %5317, align 4, !tbaa !5
  %5319 = call ptr @s2n_strerror(i32 noundef %5318, ptr noundef @.str.4)
  %5320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5321 = load i32, ptr %5320, align 4, !tbaa !5
  %5322 = call ptr @s2n_strerror_debug(i32 noundef %5321, ptr noundef @.str.4)
  %5323 = call ptr @__errno_location() #12
  %5324 = load i32, ptr %5323, align 4, !tbaa !5
  %5325 = call ptr @strerror(i32 noundef %5324) #11
  %5326 = call ptr @__errno_location() #12
  %5327 = load i32, ptr %5326, align 4, !tbaa !5
  %5328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5315, ptr noundef @.str.2, i32 noundef %5316, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 522, ptr noundef %5319, ptr noundef %5322, ptr noundef %5325, i32 noundef %5327) #11
  br label %5346

5329:                                             ; preds = %5307, %5300
  %5330 = load i32, ptr %142, align 4, !tbaa !5
  %5331 = call ptr @__errno_location() #12
  store i32 %5330, ptr %5331, align 4, !tbaa !5
  %5332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5333 = load i32, ptr @test_count, align 4, !tbaa !5
  %5334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5335 = load i32, ptr %5334, align 4, !tbaa !5
  %5336 = call ptr @s2n_strerror(i32 noundef %5335, ptr noundef @.str.4)
  %5337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5338 = load i32, ptr %5337, align 4, !tbaa !5
  %5339 = call ptr @s2n_strerror_debug(i32 noundef %5338, ptr noundef @.str.4)
  %5340 = call ptr @__errno_location() #12
  %5341 = load i32, ptr %5340, align 4, !tbaa !5
  %5342 = call ptr @strerror(i32 noundef %5341) #11
  %5343 = call ptr @__errno_location() #12
  %5344 = load i32, ptr %5343, align 4, !tbaa !5
  %5345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5332, ptr noundef @.str.5, i32 noundef %5333, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 522, ptr noundef %5336, ptr noundef %5339, ptr noundef %5342, i32 noundef %5344) #11
  br label %5346

5346:                                             ; preds = %5329, %5312
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %5347

5347:                                             ; preds = %5346
  br label %5348

5348:                                             ; preds = %5347
  call void @exit(i32 noundef 1) #13
  unreachable

5349:                                             ; No predecessors!
  br label %5350

5350:                                             ; preds = %5349
  br label %5351

5351:                                             ; preds = %5350, %5289
  br label %5352

5352:                                             ; preds = %5351
  br label %5353

5353:                                             ; preds = %5352
  br label %5354

5354:                                             ; preds = %5353
  %5355 = load i32, ptr @test_count, align 4, !tbaa !5
  %5356 = add nsw i32 %5355, 1
  store i32 %5356, ptr @test_count, align 4, !tbaa !5
  %5357 = load i64, ptr %9, align 8, !tbaa !15
  %5358 = trunc i64 %5357 to i32
  %5359 = call i32 @s2n_validate_test_async_pkey_ctx(ptr noundef %130, i32 noundef %5358)
  %5360 = getelementptr inbounds %struct.s2n_result, ptr %143, i32 0, i32 0
  store i32 %5359, ptr %5360, align 4
  %5361 = getelementptr inbounds %struct.s2n_result, ptr %143, i32 0, i32 0
  %5362 = load i32, ptr %5361, align 4
  %5363 = call zeroext i1 @s2n_result_is_ok(i32 %5362)
  br i1 %5363, label %5417, label %5364

5364:                                             ; preds = %5354
  br label %5365

5365:                                             ; preds = %5364
  br label %5366

5366:                                             ; preds = %5365
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %5367 = call ptr @__errno_location() #12
  %5368 = load i32, ptr %5367, align 4, !tbaa !5
  store i32 %5368, ptr %144, align 4, !tbaa !5
  %5369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5370 = call i32 @s2n_print_stacktrace(ptr noundef %5369)
  %5371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5372 = trunc i8 %5371 to i1
  br i1 %5372, label %5373, label %5395

5373:                                             ; preds = %5366
  %5374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5375 = call i32 @fileno(ptr noundef %5374) #11
  %5376 = call i32 @isatty(i32 noundef %5375) #11
  %5377 = icmp ne i32 %5376, 0
  br i1 %5377, label %5378, label %5395

5378:                                             ; preds = %5373
  %5379 = load i32, ptr %144, align 4, !tbaa !5
  %5380 = call ptr @__errno_location() #12
  store i32 %5379, ptr %5380, align 4, !tbaa !5
  %5381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5382 = load i32, ptr @test_count, align 4, !tbaa !5
  %5383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5384 = load i32, ptr %5383, align 4, !tbaa !5
  %5385 = call ptr @s2n_strerror(i32 noundef %5384, ptr noundef @.str.4)
  %5386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5387 = load i32, ptr %5386, align 4, !tbaa !5
  %5388 = call ptr @s2n_strerror_debug(i32 noundef %5387, ptr noundef @.str.4)
  %5389 = call ptr @__errno_location() #12
  %5390 = load i32, ptr %5389, align 4, !tbaa !5
  %5391 = call ptr @strerror(i32 noundef %5390) #11
  %5392 = call ptr @__errno_location() #12
  %5393 = load i32, ptr %5392, align 4, !tbaa !5
  %5394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5381, ptr noundef @.str.2, i32 noundef %5382, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 524, ptr noundef %5385, ptr noundef %5388, ptr noundef %5391, i32 noundef %5393) #11
  br label %5412

5395:                                             ; preds = %5373, %5366
  %5396 = load i32, ptr %144, align 4, !tbaa !5
  %5397 = call ptr @__errno_location() #12
  store i32 %5396, ptr %5397, align 4, !tbaa !5
  %5398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5399 = load i32, ptr @test_count, align 4, !tbaa !5
  %5400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call ptr @s2n_strerror(i32 noundef %5401, ptr noundef @.str.4)
  %5403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5404 = load i32, ptr %5403, align 4, !tbaa !5
  %5405 = call ptr @s2n_strerror_debug(i32 noundef %5404, ptr noundef @.str.4)
  %5406 = call ptr @__errno_location() #12
  %5407 = load i32, ptr %5406, align 4, !tbaa !5
  %5408 = call ptr @strerror(i32 noundef %5407) #11
  %5409 = call ptr @__errno_location() #12
  %5410 = load i32, ptr %5409, align 4, !tbaa !5
  %5411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5398, ptr noundef @.str.5, i32 noundef %5399, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 524, ptr noundef %5402, ptr noundef %5405, ptr noundef %5408, i32 noundef %5410) #11
  br label %5412

5412:                                             ; preds = %5395, %5378
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %5413

5413:                                             ; preds = %5412
  br label %5414

5414:                                             ; preds = %5413
  call void @exit(i32 noundef 1) #13
  unreachable

5415:                                             ; No predecessors!
  br label %5416

5416:                                             ; preds = %5415
  br label %5417

5417:                                             ; preds = %5416, %5354
  br label %5418

5418:                                             ; preds = %5417
  br label %5419

5419:                                             ; preds = %5418
  %5420 = call i32 @s2n_io_pair_close(ptr noundef %136)
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #11
  %5421 = call i32 @s2n_connection_ptr_free(ptr noundef %131)
  %5422 = getelementptr inbounds %struct.s2n_result, ptr %145, i32 0, i32 0
  store i32 %5421, ptr %5422, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #11
  %5423 = call i32 @s2n_connection_ptr_free(ptr noundef %126)
  %5424 = getelementptr inbounds %struct.s2n_result, ptr %146, i32 0, i32 0
  store i32 %5423, ptr %5424, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %125) #11
  br label %5425

5425:                                             ; preds = %5419
  %5426 = load i32, ptr %124, align 4, !tbaa !5
  %5427 = add i32 %5426, 1
  store i32 %5427, ptr %124, align 4, !tbaa !5
  br label %4523, !llvm.loop !48

5428:                                             ; preds = %4528
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  %5429 = call i32 @s2n_config_ptr_free(ptr noundef %27)
  %5430 = getelementptr inbounds %struct.s2n_result, ptr %147, i32 0, i32 0
  store i32 %5429, ptr %5430, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  %5431 = call i32 @s2n_config_ptr_free(ptr noundef %24)
  %5432 = getelementptr inbounds %struct.s2n_result, ptr %148, i32 0, i32 0
  store i32 %5431, ptr %5432, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  %5433 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %11)
  %5434 = getelementptr inbounds %struct.s2n_result, ptr %149, i32 0, i32 0
  store i32 %5433, ptr %5434, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  br label %5435

5435:                                             ; preds = %5428
  %5436 = load i64, ptr %9, align 8, !tbaa !15
  %5437 = add i64 %5436, 1
  store i64 %5437, ptr %9, align 8, !tbaa !15
  br label %330, !llvm.loop !49

5438:                                             ; preds = %333
  br label %5439

5439:                                             ; preds = %5438
  br label %5440

5440:                                             ; preds = %5439
  %5441 = call i32 @s2n_cleanup()
  %5442 = icmp eq i32 %5441, -1
  br i1 %5442, label %5443, label %5494

5443:                                             ; preds = %5440
  br label %5444

5444:                                             ; preds = %5443
  br label %5445

5445:                                             ; preds = %5444
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %5446 = call ptr @__errno_location() #12
  %5447 = load i32, ptr %5446, align 4, !tbaa !5
  store i32 %5447, ptr %150, align 4, !tbaa !5
  %5448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5449 = call i32 @s2n_print_stacktrace(ptr noundef %5448)
  %5450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5451 = trunc i8 %5450 to i1
  br i1 %5451, label %5452, label %5474

5452:                                             ; preds = %5445
  %5453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5454 = call i32 @fileno(ptr noundef %5453) #11
  %5455 = call i32 @isatty(i32 noundef %5454) #11
  %5456 = icmp ne i32 %5455, 0
  br i1 %5456, label %5457, label %5474

5457:                                             ; preds = %5452
  %5458 = load i32, ptr %150, align 4, !tbaa !5
  %5459 = call ptr @__errno_location() #12
  store i32 %5458, ptr %5459, align 4, !tbaa !5
  %5460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5461 = load i32, ptr @test_count, align 4, !tbaa !5
  %5462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5463 = load i32, ptr %5462, align 4, !tbaa !5
  %5464 = call ptr @s2n_strerror(i32 noundef %5463, ptr noundef @.str.4)
  %5465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5466 = load i32, ptr %5465, align 4, !tbaa !5
  %5467 = call ptr @s2n_strerror_debug(i32 noundef %5466, ptr noundef @.str.4)
  %5468 = call ptr @__errno_location() #12
  %5469 = load i32, ptr %5468, align 4, !tbaa !5
  %5470 = call ptr @strerror(i32 noundef %5469) #11
  %5471 = call ptr @__errno_location() #12
  %5472 = load i32, ptr %5471, align 4, !tbaa !5
  %5473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5460, ptr noundef @.str.2, i32 noundef %5461, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 528, ptr noundef %5464, ptr noundef %5467, ptr noundef %5470, i32 noundef %5472) #11
  br label %5491

5474:                                             ; preds = %5452, %5445
  %5475 = load i32, ptr %150, align 4, !tbaa !5
  %5476 = call ptr @__errno_location() #12
  store i32 %5475, ptr %5476, align 4, !tbaa !5
  %5477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5478 = load i32, ptr @test_count, align 4, !tbaa !5
  %5479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5480 = load i32, ptr %5479, align 4, !tbaa !5
  %5481 = call ptr @s2n_strerror(i32 noundef %5480, ptr noundef @.str.4)
  %5482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5483 = load i32, ptr %5482, align 4, !tbaa !5
  %5484 = call ptr @s2n_strerror_debug(i32 noundef %5483, ptr noundef @.str.4)
  %5485 = call ptr @__errno_location() #12
  %5486 = load i32, ptr %5485, align 4, !tbaa !5
  %5487 = call ptr @strerror(i32 noundef %5486) #11
  %5488 = call ptr @__errno_location() #12
  %5489 = load i32, ptr %5488, align 4, !tbaa !5
  %5490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5477, ptr noundef @.str.5, i32 noundef %5478, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 528, ptr noundef %5481, ptr noundef %5484, ptr noundef %5487, i32 noundef %5489) #11
  br label %5491

5491:                                             ; preds = %5474, %5457
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %5492

5492:                                             ; preds = %5491
  call void @exit(i32 noundef 1) #13
  unreachable

5493:                                             ; No predecessors!
  br label %5494

5494:                                             ; preds = %5493, %5440
  br label %5495

5495:                                             ; preds = %5494
  br label %5496

5496:                                             ; preds = %5495
  br label %5497

5497:                                             ; preds = %5496
  %5498 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5499 = icmp eq i32 %5498, -1
  br i1 %5499, label %5500, label %5551

5500:                                             ; preds = %5497
  br label %5501

5501:                                             ; preds = %5500
  br label %5502

5502:                                             ; preds = %5501
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #11
  %5503 = call ptr @__errno_location() #12
  %5504 = load i32, ptr %5503, align 4, !tbaa !5
  store i32 %5504, ptr %151, align 4, !tbaa !5
  %5505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5506 = call i32 @s2n_print_stacktrace(ptr noundef %5505)
  %5507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5508 = trunc i8 %5507 to i1
  br i1 %5508, label %5509, label %5531

5509:                                             ; preds = %5502
  %5510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5511 = call i32 @fileno(ptr noundef %5510) #11
  %5512 = call i32 @isatty(i32 noundef %5511) #11
  %5513 = icmp ne i32 %5512, 0
  br i1 %5513, label %5514, label %5531

5514:                                             ; preds = %5509
  %5515 = load i32, ptr %151, align 4, !tbaa !5
  %5516 = call ptr @__errno_location() #12
  store i32 %5515, ptr %5516, align 4, !tbaa !5
  %5517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5518 = load i32, ptr @test_count, align 4, !tbaa !5
  %5519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5520 = load i32, ptr %5519, align 4, !tbaa !5
  %5521 = call ptr @s2n_strerror(i32 noundef %5520, ptr noundef @.str.4)
  %5522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  %5524 = call ptr @s2n_strerror_debug(i32 noundef %5523, ptr noundef @.str.4)
  %5525 = call ptr @__errno_location() #12
  %5526 = load i32, ptr %5525, align 4, !tbaa !5
  %5527 = call ptr @strerror(i32 noundef %5526) #11
  %5528 = call ptr @__errno_location() #12
  %5529 = load i32, ptr %5528, align 4, !tbaa !5
  %5530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5517, ptr noundef @.str.2, i32 noundef %5518, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 528, ptr noundef %5521, ptr noundef %5524, ptr noundef %5527, i32 noundef %5529) #11
  br label %5548

5531:                                             ; preds = %5509, %5502
  %5532 = load i32, ptr %151, align 4, !tbaa !5
  %5533 = call ptr @__errno_location() #12
  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() #12
  %5543 = load i32, ptr %5542, align 4, !tbaa !5
  %5544 = call ptr @strerror(i32 noundef %5543) #11
  %5545 = call ptr @__errno_location() #12
  %5546 = load i32, ptr %5545, align 4, !tbaa !5
  %5547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5534, ptr noundef @.str.5, i32 noundef %5535, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 528, ptr noundef %5538, ptr noundef %5541, ptr noundef %5544, i32 noundef %5546) #11
  br label %5548

5548:                                             ; preds = %5531, %5514
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %5549

5549:                                             ; preds = %5548
  call void @exit(i32 noundef 1) #13
  unreachable

5550:                                             ; No predecessors!
  br label %5551

5551:                                             ; preds = %5550, %5497
  br label %5552

5552:                                             ; preds = %5551
  %5553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5554 = trunc i8 %5553 to i1
  br i1 %5554, label %5555, label %5571

5555:                                             ; preds = %5552
  %5556 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5557 = call i32 @fileno(ptr noundef %5556) #11
  %5558 = call i32 @isatty(i32 noundef %5557) #11
  %5559 = icmp ne i32 %5558, 0
  br i1 %5559, label %5560, label %5571

5560:                                             ; preds = %5555
  %5561 = load i32, ptr @test_count, align 4, !tbaa !5
  %5562 = icmp ne i32 %5561, 0
  br i1 %5562, label %5563, label %5567

5563:                                             ; preds = %5560
  %5564 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5565 = load i32, ptr @test_count, align 4, !tbaa !5
  %5566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5564, ptr noundef @.str.40, i32 noundef %5565) #11
  br label %5570

5567:                                             ; preds = %5560
  %5568 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5568, ptr noundef @.str.41) #11
  br label %5570

5570:                                             ; preds = %5567, %5563
  br label %5582

5571:                                             ; preds = %5555, %5552
  %5572 = load i32, ptr @test_count, align 4, !tbaa !5
  %5573 = icmp ne i32 %5572, 0
  br i1 %5573, label %5574, label %5578

5574:                                             ; preds = %5571
  %5575 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5576 = load i32, ptr @test_count, align 4, !tbaa !5
  %5577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5575, ptr noundef @.str.42, i32 noundef %5576) #11
  br label %5581

5578:                                             ; preds = %5571
  %5579 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5579, ptr noundef @.str.43) #11
  br label %5581

5581:                                             ; preds = %5578, %5574
  br label %5582

5582:                                             ; preds = %5581, %5570
  store i32 0, ptr %3, align 4
  br label %5584

5583:                                             ; No predecessors!
  br label %5584

5584:                                             ; preds = %5583, %5582
  %5585 = load i32, ptr %3, align 4
  ret i32 %5585
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #2

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

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) #2

declare ptr @s2n_cert_chain_and_key_get_private_key(ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #7

declare i32 @s2n_pkey_size(ptr noundef, ptr noundef) #2

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_rsa_client_key_send(ptr noundef, ptr noundef) #0

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #2

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) #2

declare i32 @s2n_config_set_async_pkey_callback(ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_async_pkey_decrypt_callback(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_offload_pkey_decrypt_callback(ptr noundef, ptr noundef) #0

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #2

declare i32 @s2n_connection_set_ctx(ptr noundef, ptr noundef) #2

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) #2

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_validate_test_async_pkey_ctx(ptr noundef, i32 noundef) #0

declare ptr @s2n_strerror_source(i32 noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare ptr @strstr(ptr noundef, ptr noundef) #10

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #10

declare i32 @s2n_cleanup() #2

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

!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, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{i64 0, i64 1, !11, i64 8, i64 16, !18, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 8, !9, i64 64, i64 8, !9, i64 72, i64 8, !9, i64 80, i64 8, !9}
!18 = !{!7, !7, i64 0}
!19 = !{!20, !10, i64 72}
!20 = !{!"s2n_kex", !12, i64 0, !7, i64 8, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80}
!21 = !{i64 0, i64 1, !18, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 2, !18, i64 32, i64 8, !9, i64 40, i64 4, !5, i64 48, i64 8, !9, i64 56, i64 16, !18, i64 72, i64 1, !18, i64 80, i64 8, !9, i64 88, i64 8, !9, i64 96, i64 4, !5, i64 100, i64 1, !18}
!22 = !{!23, !10, i64 32}
!23 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!24 = !{!25, !26, i64 0}
!25 = !{!"s2n_cipher_preferences", !26, i64 0, !10, i64 8, !12, i64 16}
!26 = !{!"short", !7, i64 0}
!27 = !{!25, !10, i64 8}
!28 = !{!25, !12, i64 16}
!29 = !{i64 0, i64 1, !18, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 1, !11, i64 57, i64 2, !18}
!30 = !{!31, !10, i64 8}
!31 = !{!"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}
!32 = !{!33, !10, i64 96}
!33 = !{!"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, !34, i64 24, !35, 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, !16, i64 144, !10, i64 152, !16, i64 160, !16, 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, !36, i64 304, !26, 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, !35, i64 448}
!34 = !{!"certs_by_type", !7, i64 0}
!35 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!36 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.mustprogress"}
!39 = !{!40, !12, i64 8}
!40 = !{!"s2n_test_rsa_client_key_send_ctx", !12, i64 0, !6, i64 4, !12, i64 8, !6, i64 12, !12, i64 16, !7, i64 17}
!41 = !{!40, !6, i64 12}
!42 = !{!40, !12, i64 16}
!43 = !{!40, !7, i64 17}
!44 = distinct !{!44, !38}
!45 = !{!40, !12, i64 0}
!46 = !{!40, !6, i64 4}
!47 = distinct !{!47, !38}
!48 = distinct !{!48, !38}
!49 = distinct !{!49, !38}


; 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_kex = type { i8, [2 x ptr], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_test_rsa_client_key_send_ctx = type { i8, i32, i8, i32, i8, i8 }
%struct.s2n_test_async_pkey_cb_ctx = type { i32, i32 }
%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 [87 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 [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [201 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [26 x i8], align 1
@s2n_rsa = external local_unnamed_addr constant %struct.s2n_kex, align 8
@s2n_rsa_with_aes_128_gcm_sha256 = external local_unnamed_addr global %struct.s2n_cipher_suite, align 8
@security_policy_test_all = external local_unnamed_addr constant %struct.s2n_security_policy, align 8
@.str.14 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.43 = 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 i32, align 4
  %5 = alloca %struct.s2n_kex, align 8
  %6 = alloca %struct.s2n_cipher_suite, align 8
  %7 = alloca [1 x ptr], align 8
  %8 = alloca %struct.s2n_cipher_preferences, align 8
  %9 = alloca %struct.s2n_security_policy, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca %struct.s2n_test_rsa_client_key_send_ctx, align 4
  %13 = alloca ptr, align 8
  %14 = alloca %struct.s2n_test_async_pkey_cb_ctx, align 8
  %15 = alloca ptr, align 8
  %16 = alloca %struct.s2n_test_io_pair, align 4
  %17 = alloca %struct.s2n_test_rsa_client_key_send_ctx, align 4
  %18 = alloca ptr, align 8
  %19 = alloca %struct.s2n_test_async_pkey_cb_ctx, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %struct.s2n_test_io_pair, align 4
  %22 = alloca %struct.s2n_test_rsa_client_key_send_ctx, align 4
  %23 = alloca ptr, align 8
  %24 = alloca %struct.s2n_test_async_pkey_cb_ctx, align 8
  %25 = alloca ptr, align 8
  %26 = alloca %struct.s2n_test_io_pair, align 4
  %27 = alloca %struct.s2n_test_rsa_client_key_send_ctx, align 4
  %28 = alloca ptr, align 8
  %29 = alloca %struct.s2n_test_async_pkey_cb_ctx, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %struct.s2n_test_io_pair, align 4
  %32 = alloca %struct.s2n_test_rsa_client_key_send_ctx, align 4
  %33 = alloca ptr, align 8
  %34 = alloca %struct.s2n_test_async_pkey_cb_ctx, align 8
  %35 = alloca ptr, align 8
  %36 = alloca %struct.s2n_test_io_pair, align 4
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %37 = load ptr, ptr @stdout, align 8, !tbaa !9
  %38 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %39 = load ptr, ptr @stdout, align 8, !tbaa !9
  %40 = tail call i32 @fflush(ptr noundef %39)
  %41 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %42 = icmp eq i32 %41, -1
  br i1 %42, label %43, label %67

43:                                               ; preds = %2
  %44 = tail call ptr @__errno_location() #13
  %45 = load i32, ptr %44, align 4, !tbaa !5
  %46 = load ptr, ptr @stderr, align 8, !tbaa !9
  %47 = tail call i32 @s2n_print_stacktrace(ptr noundef %46) #12
  %48 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %49 = trunc nuw i8 %48 to i1
  br i1 %49, label %50, label %54

50:                                               ; preds = %43
  %51 = load ptr, ptr @stderr, align 8, !tbaa !9
  %52 = tail call i32 @fileno(ptr noundef %51) #12
  %53 = tail call i32 @isatty(i32 noundef %52) #12
  %.not312 = icmp eq i32 %53, 0
  br i1 %.not312, label %54, label %55

54:                                               ; preds = %50, %43
  br label %55

55:                                               ; preds = %50, %54
  %.str.5.sink = phi ptr [ @.str.5, %54 ], [ @.str.2, %50 ]
  store i32 %45, ptr %44, align 4, !tbaa !5
  %56 = load ptr, ptr @stderr, align 8, !tbaa !9
  %57 = load i32, ptr @test_count, align 4, !tbaa !5
  %58 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %59 = load i32, ptr %58, align 4, !tbaa !5
  %60 = tail call ptr @s2n_strerror(i32 noundef %59, ptr noundef nonnull @.str.4) #12
  %61 = load i32, ptr %58, align 4, !tbaa !5
  %62 = tail call ptr @s2n_strerror_debug(i32 noundef %61, ptr noundef nonnull @.str.4) #12
  %63 = load i32, ptr %44, align 4, !tbaa !5
  %64 = tail call ptr @strerror(i32 noundef %63) #12
  %65 = load i32, ptr %44, align 4, !tbaa !5
  %66 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %56, ptr noundef nonnull %.str.5.sink, i32 noundef %57, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %60, ptr noundef %62, ptr noundef %64, i32 noundef %65) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

67:                                               ; preds = %2
  %68 = load i32, ptr @test_count, align 4, !tbaa !5
  %69 = add nsw i32 %68, 1
  store i32 %69, ptr @test_count, align 4, !tbaa !5
  %70 = tail call i32 @s2n_enable_atexit() #12
  %71 = icmp eq i32 %70, -1
  br i1 %71, label %72, label %96

72:                                               ; preds = %67
  %73 = tail call ptr @__errno_location() #13
  %74 = load i32, ptr %73, align 4, !tbaa !5
  %75 = load ptr, ptr @stderr, align 8, !tbaa !9
  %76 = tail call i32 @s2n_print_stacktrace(ptr noundef %75) #12
  %77 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %78 = trunc nuw i8 %77 to i1
  br i1 %78, label %79, label %83

79:                                               ; preds = %72
  %80 = load ptr, ptr @stderr, align 8, !tbaa !9
  %81 = tail call i32 @fileno(ptr noundef %80) #12
  %82 = tail call i32 @isatty(i32 noundef %81) #12
  %.not311 = icmp eq i32 %82, 0
  br i1 %.not311, label %83, label %84

83:                                               ; preds = %79, %72
  br label %84

84:                                               ; preds = %79, %83
  %.str.5.sink381 = phi ptr [ @.str.5, %83 ], [ @.str.2, %79 ]
  store i32 %74, ptr %73, align 4, !tbaa !5
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = load i32, ptr @test_count, align 4, !tbaa !5
  %87 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = tail call ptr @s2n_strerror(i32 noundef %88, ptr noundef nonnull @.str.4) #12
  %90 = load i32, ptr %87, align 4, !tbaa !5
  %91 = tail call ptr @s2n_strerror_debug(i32 noundef %90, ptr noundef nonnull @.str.4) #12
  %92 = load i32, ptr %73, align 4, !tbaa !5
  %93 = tail call ptr @strerror(i32 noundef %92) #12
  %94 = load i32, ptr %73, align 4, !tbaa !5
  %95 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %85, ptr noundef nonnull %.str.5.sink381, i32 noundef %86, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %89, ptr noundef %91, ptr noundef %93, i32 noundef %94) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

96:                                               ; preds = %67
  %97 = tail call i32 @s2n_init() #12
  %98 = icmp eq i32 %97, -1
  br i1 %98, label %112, label %.preheader314

.preheader314:                                    ; preds = %96
  %99 = getelementptr inbounds i8, ptr %5, i64 72
  %100 = getelementptr inbounds i8, ptr %6, i64 32
  %101 = getelementptr inbounds i8, ptr %8, i64 8
  %102 = getelementptr inbounds i8, ptr %8, i64 16
  %103 = getelementptr inbounds i8, ptr %9, i64 8
  %104 = getelementptr inbounds i8, ptr %17, i64 8
  %105 = getelementptr inbounds i8, ptr %17, i64 12
  %106 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %107 = getelementptr inbounds i8, ptr %22, i64 16
  %108 = getelementptr inbounds i8, ptr %22, i64 17
  %109 = getelementptr inbounds i8, ptr %27, i64 4
  %110 = getelementptr inbounds i8, ptr %32, i64 8
  %111 = getelementptr inbounds i8, ptr %32, i64 12
  br label %139

112:                                              ; preds = %96
  %113 = tail call ptr @__errno_location() #13
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = tail call i32 @s2n_print_stacktrace(ptr noundef %115) #12
  %117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %118 = trunc nuw i8 %117 to i1
  br i1 %118, label %119, label %123

119:                                              ; preds = %112
  %120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %121 = tail call i32 @fileno(ptr noundef %120) #12
  %122 = tail call i32 @isatty(i32 noundef %121) #12
  %.not310 = icmp eq i32 %122, 0
  br i1 %.not310, label %123, label %124

123:                                              ; preds = %119, %112
  br label %124

124:                                              ; preds = %119, %123
  %.str.5.sink392 = phi ptr [ @.str.5, %123 ], [ @.str.2, %119 ]
  store i32 %114, ptr %113, align 4, !tbaa !5
  %125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = tail call ptr @s2n_strerror(i32 noundef %128, ptr noundef nonnull @.str.4) #12
  %130 = load i32, ptr %127, align 4, !tbaa !5
  %131 = tail call ptr @s2n_strerror_debug(i32 noundef %130, ptr noundef nonnull @.str.4) #12
  %132 = load i32, ptr %113, align 4, !tbaa !5
  %133 = tail call ptr @strerror(i32 noundef %132) #12
  %134 = load i32, ptr %113, align 4, !tbaa !5
  %135 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %125, ptr noundef nonnull %.str.5.sink392, i32 noundef %126, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %129, ptr noundef %131, ptr noundef %133, i32 noundef %134) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

136:                                              ; preds = %._crit_edge
  %137 = call i32 @s2n_cleanup() #12
  %138 = icmp eq i32 %137, -1
  br i1 %138, label %2422, label %2445

139:                                              ; preds = %.preheader314, %._crit_edge
  %.0366 = phi i64 [ 0, %.preheader314 ], [ %2014, %._crit_edge ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #12
  store ptr null, ptr %3, align 8, !tbaa !9
  %140 = load i32, ptr @test_count, align 4, !tbaa !5
  %141 = add nsw i32 %140, 1
  store i32 %141, ptr @test_count, align 4, !tbaa !5
  %142 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9) #12
  %143 = icmp eq i32 %142, -1
  br i1 %143, label %144, label %167

144:                                              ; preds = %139
  %145 = tail call ptr @__errno_location() #13
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = call i32 @s2n_print_stacktrace(ptr noundef %147) #12
  %149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %150 = trunc nuw i8 %149 to i1
  br i1 %150, label %151, label %155

151:                                              ; preds = %144
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = call i32 @fileno(ptr noundef %152) #12
  %154 = call i32 @isatty(i32 noundef %153) #12
  %.not309 = icmp eq i32 %154, 0
  br i1 %.not309, label %155, label %156

155:                                              ; preds = %151, %144
  br label %156

156:                                              ; preds = %151, %155
  %.str.5.sink403 = phi ptr [ @.str.5, %155 ], [ @.str.2, %151 ]
  store i32 %146, ptr %145, align 4, !tbaa !5
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = load i32, ptr @test_count, align 4, !tbaa !5
  %159 = load i32, ptr %106, align 4, !tbaa !5
  %160 = call ptr @s2n_strerror(i32 noundef %159, ptr noundef nonnull @.str.4) #12
  %161 = load i32, ptr %106, align 4, !tbaa !5
  %162 = call ptr @s2n_strerror_debug(i32 noundef %161, ptr noundef nonnull @.str.4) #12
  %163 = load i32, ptr %145, align 4, !tbaa !5
  %164 = call ptr @strerror(i32 noundef %163) #12
  %165 = load i32, ptr %145, align 4, !tbaa !5
  %166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %157, ptr noundef nonnull %.str.5.sink403, i32 noundef %158, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %160, ptr noundef %162, ptr noundef %164, i32 noundef %165) #14
  call void @exit(i32 noundef 1) #15
  unreachable

167:                                              ; preds = %139
  %168 = load ptr, ptr %3, align 8, !tbaa !9
  %169 = call ptr @s2n_cert_chain_and_key_get_private_key(ptr noundef %168) #12
  %170 = load i32, ptr @test_count, align 4, !tbaa !5
  %171 = add nsw i32 %170, 1
  store i32 %171, ptr @test_count, align 4, !tbaa !5
  %172 = icmp eq ptr %169, null
  br i1 %172, label %173, label %196

173:                                              ; preds = %167
  %174 = tail call ptr @__errno_location() #13
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = call i32 @s2n_print_stacktrace(ptr noundef %176) #12
  %178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %179 = trunc nuw i8 %178 to i1
  br i1 %179, label %180, label %184

180:                                              ; preds = %173
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = call i32 @fileno(ptr noundef %181) #12
  %183 = call i32 @isatty(i32 noundef %182) #12
  %.not308 = icmp eq i32 %183, 0
  br i1 %.not308, label %184, label %185

184:                                              ; preds = %180, %173
  br label %185

185:                                              ; preds = %180, %184
  %.str.5.sink412 = phi ptr [ @.str.5, %184 ], [ @.str.2, %180 ]
  store i32 %175, ptr %174, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = load i32, ptr %106, align 4, !tbaa !5
  %189 = call ptr @s2n_strerror(i32 noundef %188, ptr noundef nonnull @.str.4) #12
  %190 = load i32, ptr %106, align 4, !tbaa !5
  %191 = call ptr @s2n_strerror_debug(i32 noundef %190, ptr noundef nonnull @.str.4) #12
  %192 = load i32, ptr %174, align 4, !tbaa !5
  %193 = call ptr @strerror(i32 noundef %192) #12
  %194 = load i32, ptr %174, align 4, !tbaa !5
  %195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %186, ptr noundef nonnull %.str.5.sink412, i32 noundef %187, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %189, ptr noundef %191, ptr noundef %193, i32 noundef %194) #14
  call void @exit(i32 noundef 1) #15
  unreachable

196:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #12
  store i32 0, ptr %4, align 4, !tbaa !5
  %197 = add nsw i32 %170, 2
  store i32 %197, ptr @test_count, align 4, !tbaa !5
  %198 = call i32 @s2n_pkey_size(ptr noundef nonnull %169, ptr noundef nonnull %4) #12
  %199 = call zeroext i1 @s2n_result_is_ok(i32 %198)
  br i1 %199, label %223, label %200

200:                                              ; preds = %196
  %201 = tail call ptr @__errno_location() #13
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = call i32 @s2n_print_stacktrace(ptr noundef %203) #12
  %205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %206 = trunc nuw i8 %205 to i1
  br i1 %206, label %207, label %211

207:                                              ; preds = %200
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = call i32 @fileno(ptr noundef %208) #12
  %210 = call i32 @isatty(i32 noundef %209) #12
  %.not230 = icmp eq i32 %210, 0
  br i1 %.not230, label %211, label %212

211:                                              ; preds = %207, %200
  br label %212

212:                                              ; preds = %207, %211
  %.str.5.sink421 = phi ptr [ @.str.5, %211 ], [ @.str.2, %207 ]
  store i32 %202, ptr %201, align 4, !tbaa !5
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = load i32, ptr @test_count, align 4, !tbaa !5
  %215 = load i32, ptr %106, align 4, !tbaa !5
  %216 = call ptr @s2n_strerror(i32 noundef %215, ptr noundef nonnull @.str.4) #12
  %217 = load i32, ptr %106, align 4, !tbaa !5
  %218 = call ptr @s2n_strerror_debug(i32 noundef %217, ptr noundef nonnull @.str.4) #12
  %219 = load i32, ptr %201, align 4, !tbaa !5
  %220 = call ptr @strerror(i32 noundef %219) #12
  %221 = load i32, ptr %201, align 4, !tbaa !5
  %222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %213, ptr noundef nonnull %.str.5.sink421, i32 noundef %214, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %216, ptr noundef %218, ptr noundef %220, i32 noundef %221) #14
  call void @exit(i32 noundef 1) #15
  unreachable

223:                                              ; preds = %196
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr @test_count, align 4, !tbaa !5
  %226 = load i32, ptr %4, align 4, !tbaa !5
  %.not231 = icmp eq i32 %226, 0
  br i1 %.not231, label %227, label %250

227:                                              ; preds = %223
  %228 = tail call ptr @__errno_location() #13
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %231 = call i32 @s2n_print_stacktrace(ptr noundef %230) #12
  %232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %233 = trunc nuw i8 %232 to i1
  br i1 %233, label %234, label %238

234:                                              ; preds = %227
  %235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %236 = call i32 @fileno(ptr noundef %235) #12
  %237 = call i32 @isatty(i32 noundef %236) #12
  %.not232 = icmp eq i32 %237, 0
  br i1 %.not232, label %238, label %239

238:                                              ; preds = %234, %227
  br label %239

239:                                              ; preds = %234, %238
  %.str.5.sink430 = phi ptr [ @.str.5, %238 ], [ @.str.2, %234 ]
  store i32 %229, ptr %228, align 4, !tbaa !5
  %240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %241 = load i32, ptr @test_count, align 4, !tbaa !5
  %242 = load i32, ptr %106, align 4, !tbaa !5
  %243 = call ptr @s2n_strerror(i32 noundef %242, ptr noundef nonnull @.str.4) #12
  %244 = load i32, ptr %106, align 4, !tbaa !5
  %245 = call ptr @s2n_strerror_debug(i32 noundef %244, ptr noundef nonnull @.str.4) #12
  %246 = load i32, ptr %228, align 4, !tbaa !5
  %247 = call ptr @strerror(i32 noundef %246) #12
  %248 = load i32, ptr %228, align 4, !tbaa !5
  %249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %240, ptr noundef nonnull %.str.5.sink430, i32 noundef %241, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %243, ptr noundef %245, ptr noundef %247, i32 noundef %248) #14
  call void @exit(i32 noundef 1) #15
  unreachable

250:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %5) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %5, ptr noundef nonnull align 8 dereferenceable(88) @s2n_rsa, i64 88, i1 false), !tbaa.struct !15
  store ptr @s2n_test_rsa_client_key_send, ptr %99, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %6) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(104) @s2n_rsa_with_aes_128_gcm_sha256, i64 104, i1 false), !tbaa.struct !19
  store ptr %5, ptr %100, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #12
  store ptr %6, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #12
  store i16 1, ptr %8, align 8, !tbaa !22
  store ptr %7, ptr %101, align 8, !tbaa !25
  store i8 0, ptr %102, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %9, ptr noundef nonnull align 8 dereferenceable(64) @security_policy_test_all, i64 64, i1 false), !tbaa.struct !27
  store ptr %8, ptr %103, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  %251 = call ptr @s2n_config_new() #12
  store ptr %251, ptr %10, align 8, !tbaa !9
  %252 = load i32, ptr @test_count, align 4, !tbaa !5
  %253 = add nsw i32 %252, 1
  store i32 %253, ptr @test_count, align 4, !tbaa !5
  %254 = icmp eq ptr %251, null
  br i1 %254, label %255, label %278

255:                                              ; preds = %250
  %256 = tail call ptr @__errno_location() #13
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = call i32 @s2n_print_stacktrace(ptr noundef %258) #12
  %260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %261 = trunc nuw i8 %260 to i1
  br i1 %261, label %262, label %266

262:                                              ; preds = %255
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = call i32 @fileno(ptr noundef %263) #12
  %265 = call i32 @isatty(i32 noundef %264) #12
  %.not307 = icmp eq i32 %265, 0
  br i1 %.not307, label %266, label %267

266:                                              ; preds = %262, %255
  br label %267

267:                                              ; preds = %262, %266
  %.str.5.sink439 = phi ptr [ @.str.5, %266 ], [ @.str.2, %262 ]
  store i32 %257, ptr %256, align 4, !tbaa !5
  %268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %269 = load i32, ptr @test_count, align 4, !tbaa !5
  %270 = load i32, ptr %106, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror(i32 noundef %270, ptr noundef nonnull @.str.4) #12
  %272 = load i32, ptr %106, align 4, !tbaa !5
  %273 = call ptr @s2n_strerror_debug(i32 noundef %272, ptr noundef nonnull @.str.4) #12
  %274 = load i32, ptr %256, align 4, !tbaa !5
  %275 = call ptr @strerror(i32 noundef %274) #12
  %276 = load i32, ptr %256, align 4, !tbaa !5
  %277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %268, ptr noundef nonnull %.str.5.sink439, i32 noundef %269, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %271, ptr noundef %273, ptr noundef %275, i32 noundef %276) #14
  call void @exit(i32 noundef 1) #15
  unreachable

278:                                              ; preds = %250
  %279 = add nsw i32 %252, 2
  store i32 %279, ptr @test_count, align 4, !tbaa !5
  %280 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %251) #12
  %281 = icmp eq i32 %280, -1
  br i1 %281, label %282, label %305

282:                                              ; preds = %278
  %283 = tail call ptr @__errno_location() #13
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = call i32 @s2n_print_stacktrace(ptr noundef %285) #12
  %287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %288 = trunc nuw i8 %287 to i1
  br i1 %288, label %289, label %293

289:                                              ; preds = %282
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = call i32 @fileno(ptr noundef %290) #12
  %292 = call i32 @isatty(i32 noundef %291) #12
  %.not306 = icmp eq i32 %292, 0
  br i1 %.not306, label %293, label %294

293:                                              ; preds = %289, %282
  br label %294

294:                                              ; preds = %289, %293
  %.str.5.sink448 = phi ptr [ @.str.5, %293 ], [ @.str.2, %289 ]
  store i32 %284, ptr %283, align 4, !tbaa !5
  %295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %296 = load i32, ptr @test_count, align 4, !tbaa !5
  %297 = load i32, ptr %106, align 4, !tbaa !5
  %298 = call ptr @s2n_strerror(i32 noundef %297, ptr noundef nonnull @.str.4) #12
  %299 = load i32, ptr %106, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef nonnull @.str.4) #12
  %301 = load i32, ptr %283, align 4, !tbaa !5
  %302 = call ptr @strerror(i32 noundef %301) #12
  %303 = load i32, ptr %283, align 4, !tbaa !5
  %304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %295, ptr noundef nonnull %.str.5.sink448, i32 noundef %296, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %298, ptr noundef %300, ptr noundef %302, i32 noundef %303) #14
  call void @exit(i32 noundef 1) #15
  unreachable

305:                                              ; preds = %278
  %306 = load ptr, ptr %10, align 8, !tbaa !9
  %307 = getelementptr inbounds i8, ptr %306, i64 96
  store ptr %9, ptr %307, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %308 = call ptr @s2n_config_new() #12
  store ptr %308, ptr %11, align 8, !tbaa !9
  %309 = load i32, ptr @test_count, align 4, !tbaa !5
  %310 = add nsw i32 %309, 1
  store i32 %310, ptr @test_count, align 4, !tbaa !5
  %311 = icmp eq ptr %308, null
  br i1 %311, label %312, label %335

312:                                              ; preds = %305
  %313 = tail call ptr @__errno_location() #13
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = call i32 @s2n_print_stacktrace(ptr noundef %315) #12
  %317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %318 = trunc nuw i8 %317 to i1
  br i1 %318, label %319, label %323

319:                                              ; preds = %312
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = call i32 @fileno(ptr noundef %320) #12
  %322 = call i32 @isatty(i32 noundef %321) #12
  %.not305 = icmp eq i32 %322, 0
  br i1 %.not305, label %323, label %324

323:                                              ; preds = %319, %312
  br label %324

324:                                              ; preds = %319, %323
  %.str.5.sink457 = phi ptr [ @.str.5, %323 ], [ @.str.2, %319 ]
  store i32 %314, ptr %313, align 4, !tbaa !5
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = load i32, ptr %106, align 4, !tbaa !5
  %328 = call ptr @s2n_strerror(i32 noundef %327, ptr noundef nonnull @.str.4) #12
  %329 = load i32, ptr %106, align 4, !tbaa !5
  %330 = call ptr @s2n_strerror_debug(i32 noundef %329, ptr noundef nonnull @.str.4) #12
  %331 = load i32, ptr %313, align 4, !tbaa !5
  %332 = call ptr @strerror(i32 noundef %331) #12
  %333 = load i32, ptr %313, align 4, !tbaa !5
  %334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %325, ptr noundef nonnull %.str.5.sink457, i32 noundef %326, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %328, ptr noundef %330, ptr noundef %332, i32 noundef %333) #14
  call void @exit(i32 noundef 1) #15
  unreachable

335:                                              ; preds = %305
  %336 = add nsw i32 %309, 2
  store i32 %336, ptr @test_count, align 4, !tbaa !5
  %337 = load ptr, ptr %3, align 8, !tbaa !9
  %338 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %308, ptr noundef %337) #12
  %339 = icmp eq i32 %338, -1
  br i1 %339, label %340, label %363

340:                                              ; preds = %335
  %341 = tail call ptr @__errno_location() #13
  %342 = load i32, ptr %341, align 4, !tbaa !5
  %343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %344 = call i32 @s2n_print_stacktrace(ptr noundef %343) #12
  %345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %346 = trunc nuw i8 %345 to i1
  br i1 %346, label %347, label %351

347:                                              ; preds = %340
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = call i32 @fileno(ptr noundef %348) #12
  %350 = call i32 @isatty(i32 noundef %349) #12
  %.not304 = icmp eq i32 %350, 0
  br i1 %.not304, label %351, label %352

351:                                              ; preds = %347, %340
  br label %352

352:                                              ; preds = %347, %351
  %.str.5.sink466 = phi ptr [ @.str.5, %351 ], [ @.str.2, %347 ]
  store i32 %342, ptr %341, align 4, !tbaa !5
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = load i32, ptr @test_count, align 4, !tbaa !5
  %355 = load i32, ptr %106, align 4, !tbaa !5
  %356 = call ptr @s2n_strerror(i32 noundef %355, ptr noundef nonnull @.str.4) #12
  %357 = load i32, ptr %106, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror_debug(i32 noundef %357, ptr noundef nonnull @.str.4) #12
  %359 = load i32, ptr %341, align 4, !tbaa !5
  %360 = call ptr @strerror(i32 noundef %359) #12
  %361 = load i32, ptr %341, align 4, !tbaa !5
  %362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %353, ptr noundef nonnull %.str.5.sink466, i32 noundef %354, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %356, ptr noundef %358, ptr noundef %360, i32 noundef %361) #14
  call void @exit(i32 noundef 1) #15
  unreachable

363:                                              ; preds = %335
  %364 = load ptr, ptr %11, align 8, !tbaa !9
  %365 = getelementptr inbounds i8, ptr %364, i64 96
  store ptr %9, ptr %365, align 8, !tbaa !30
  switch i64 %.0366, label %422 [
    i64 1, label %366
    i64 2, label %394
  ]

366:                                              ; preds = %363
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = add nsw i32 %367, 1
  store i32 %368, ptr @test_count, align 4, !tbaa !5
  %369 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %364, ptr noundef nonnull @s2n_test_async_pkey_decrypt_callback) #12
  %370 = icmp eq i32 %369, -1
  br i1 %370, label %371, label %422

371:                                              ; preds = %366
  %372 = tail call ptr @__errno_location() #13
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = call i32 @s2n_print_stacktrace(ptr noundef %374) #12
  %376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %377 = trunc nuw i8 %376 to i1
  br i1 %377, label %378, label %382

378:                                              ; preds = %371
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = call i32 @fileno(ptr noundef %379) #12
  %381 = call i32 @isatty(i32 noundef %380) #12
  %.not303 = icmp eq i32 %381, 0
  br i1 %.not303, label %382, label %383

382:                                              ; preds = %378, %371
  br label %383

383:                                              ; preds = %378, %382
  %.str.5.sink475 = phi ptr [ @.str.5, %382 ], [ @.str.2, %378 ]
  store i32 %373, ptr %372, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = load i32, ptr %106, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror(i32 noundef %386, ptr noundef nonnull @.str.4) #12
  %388 = load i32, ptr %106, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror_debug(i32 noundef %388, ptr noundef nonnull @.str.4) #12
  %390 = load i32, ptr %372, align 4, !tbaa !5
  %391 = call ptr @strerror(i32 noundef %390) #12
  %392 = load i32, ptr %372, align 4, !tbaa !5
  %393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef nonnull %.str.5.sink475, i32 noundef %385, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 340, ptr noundef %387, ptr noundef %389, ptr noundef %391, i32 noundef %392) #14
  call void @exit(i32 noundef 1) #15
  unreachable

394:                                              ; preds = %363
  %395 = load i32, ptr @test_count, align 4, !tbaa !5
  %396 = add nsw i32 %395, 1
  store i32 %396, ptr @test_count, align 4, !tbaa !5
  %397 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %364, ptr noundef nonnull @s2n_test_offload_pkey_decrypt_callback) #12
  %398 = icmp eq i32 %397, -1
  br i1 %398, label %399, label %422

399:                                              ; preds = %394
  %400 = tail call ptr @__errno_location() #13
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = call i32 @s2n_print_stacktrace(ptr noundef %402) #12
  %404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %405 = trunc nuw i8 %404 to i1
  br i1 %405, label %406, label %410

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

410:                                              ; preds = %406, %399
  br label %411

411:                                              ; preds = %406, %410
  %.str.5.sink484 = phi ptr [ @.str.5, %410 ], [ @.str.2, %406 ]
  store i32 %401, ptr %400, align 4, !tbaa !5
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = load i32, ptr %106, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror(i32 noundef %414, ptr noundef nonnull @.str.4) #12
  %416 = load i32, ptr %106, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror_debug(i32 noundef %416, ptr noundef nonnull @.str.4) #12
  %418 = load i32, ptr %400, align 4, !tbaa !5
  %419 = call ptr @strerror(i32 noundef %418) #12
  %420 = load i32, ptr %400, align 4, !tbaa !5
  %421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef nonnull %.str.5.sink484, i32 noundef %413, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %415, ptr noundef %417, ptr noundef %419, i32 noundef %420) #14
  call void @exit(i32 noundef 1) #15
  unreachable

422:                                              ; preds = %363, %394, %366
  %423 = trunc nuw nsw i64 %.0366 to i32
  br label %431

424:                                              ; preds = %746
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %17) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %17, i8 0, i64 20, i1 false)
  store i8 1, ptr %104, align 4, !tbaa !36
  %425 = load i32, ptr %4, align 4, !tbaa !5
  %426 = add i32 %425, -1
  store i32 %426, ptr %105, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %427 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %427, ptr %18, align 8, !tbaa !9
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @test_count, align 4, !tbaa !5
  %430 = icmp eq ptr %427, null
  br i1 %430, label %751, label %774

431:                                              ; preds = %422, %746
  %.0218362 = phi i64 [ 0, %422 ], [ %750, %746 ]
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %12) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %12, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  %432 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %432, ptr %13, align 8, !tbaa !9
  %433 = load i32, ptr @test_count, align 4, !tbaa !5
  %434 = add nsw i32 %433, 1
  store i32 %434, ptr @test_count, align 4, !tbaa !5
  %435 = icmp eq ptr %432, null
  br i1 %435, label %436, label %459

436:                                              ; preds = %431
  %437 = tail call ptr @__errno_location() #13
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = call i32 @s2n_print_stacktrace(ptr noundef %439) #12
  %441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %442 = trunc nuw i8 %441 to i1
  br i1 %442, label %443, label %447

443:                                              ; preds = %436
  %444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %445 = call i32 @fileno(ptr noundef %444) #12
  %446 = call i32 @isatty(i32 noundef %445) #12
  %.not302 = icmp eq i32 %446, 0
  br i1 %.not302, label %447, label %448

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

448:                                              ; preds = %443, %447
  %.str.5.sink493 = phi ptr [ @.str.5, %447 ], [ @.str.2, %443 ]
  store i32 %438, ptr %437, align 4, !tbaa !5
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = load i32, ptr %106, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror(i32 noundef %451, ptr noundef nonnull @.str.4) #12
  %453 = load i32, ptr %106, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror_debug(i32 noundef %453, ptr noundef nonnull @.str.4) #12
  %455 = load i32, ptr %437, align 4, !tbaa !5
  %456 = call ptr @strerror(i32 noundef %455) #12
  %457 = load i32, ptr %437, align 4, !tbaa !5
  %458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %449, ptr noundef nonnull %.str.5.sink493, i32 noundef %450, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %452, ptr noundef %454, ptr noundef %456, i32 noundef %457) #14
  call void @exit(i32 noundef 1) #15
  unreachable

459:                                              ; preds = %431
  %460 = add nsw i32 %433, 2
  store i32 %460, ptr @test_count, align 4, !tbaa !5
  %461 = load ptr, ptr %10, align 8, !tbaa !9
  %462 = call i32 @s2n_connection_set_config(ptr noundef nonnull %432, ptr noundef %461) #12
  %463 = icmp eq i32 %462, -1
  br i1 %463, label %464, label %487

464:                                              ; preds = %459
  %465 = tail call ptr @__errno_location() #13
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %468 = call i32 @s2n_print_stacktrace(ptr noundef %467) #12
  %469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %470 = trunc nuw i8 %469 to i1
  br i1 %470, label %471, label %475

471:                                              ; preds = %464
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = call i32 @fileno(ptr noundef %472) #12
  %474 = call i32 @isatty(i32 noundef %473) #12
  %.not301 = icmp eq i32 %474, 0
  br i1 %.not301, label %475, label %476

475:                                              ; preds = %471, %464
  br label %476

476:                                              ; preds = %471, %475
  %.str.5.sink502 = phi ptr [ @.str.5, %475 ], [ @.str.2, %471 ]
  store i32 %466, ptr %465, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = load i32, ptr @test_count, align 4, !tbaa !5
  %479 = load i32, ptr %106, align 4, !tbaa !5
  %480 = call ptr @s2n_strerror(i32 noundef %479, ptr noundef nonnull @.str.4) #12
  %481 = load i32, ptr %106, align 4, !tbaa !5
  %482 = call ptr @s2n_strerror_debug(i32 noundef %481, ptr noundef nonnull @.str.4) #12
  %483 = load i32, ptr %465, align 4, !tbaa !5
  %484 = call ptr @strerror(i32 noundef %483) #12
  %485 = load i32, ptr %465, align 4, !tbaa !5
  %486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %477, ptr noundef nonnull %.str.5.sink502, i32 noundef %478, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 352, ptr noundef %480, ptr noundef %482, ptr noundef %484, i32 noundef %485) #14
  call void @exit(i32 noundef 1) #15
  unreachable

487:                                              ; preds = %459
  %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 = load ptr, ptr %13, align 8, !tbaa !9
  %491 = call i32 @s2n_connection_set_ctx(ptr noundef %490, ptr noundef nonnull %12) #12
  %492 = icmp eq i32 %491, -1
  br i1 %492, label %493, label %516

493:                                              ; preds = %487
  %494 = tail call ptr @__errno_location() #13
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = call i32 @s2n_print_stacktrace(ptr noundef %496) #12
  %498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %499 = trunc nuw i8 %498 to i1
  br i1 %499, label %500, label %504

500:                                              ; preds = %493
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @fileno(ptr noundef %501) #12
  %503 = call i32 @isatty(i32 noundef %502) #12
  %.not300 = icmp eq i32 %503, 0
  br i1 %.not300, label %504, label %505

504:                                              ; preds = %500, %493
  br label %505

505:                                              ; preds = %500, %504
  %.str.5.sink511 = phi ptr [ @.str.5, %504 ], [ @.str.2, %500 ]
  store i32 %495, ptr %494, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = load i32, ptr %106, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror(i32 noundef %508, ptr noundef nonnull @.str.4) #12
  %510 = load i32, ptr %106, align 4, !tbaa !5
  %511 = call ptr @s2n_strerror_debug(i32 noundef %510, ptr noundef nonnull @.str.4) #12
  %512 = load i32, ptr %494, align 4, !tbaa !5
  %513 = call ptr @strerror(i32 noundef %512) #12
  %514 = load i32, ptr %494, align 4, !tbaa !5
  %515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %506, ptr noundef nonnull %.str.5.sink511, i32 noundef %507, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %509, ptr noundef %511, ptr noundef %513, i32 noundef %514) #14
  call void @exit(i32 noundef 1) #15
  unreachable

516:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  store i64 0, ptr %14, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %517 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %517, ptr %15, align 8, !tbaa !9
  %518 = load i32, ptr @test_count, align 4, !tbaa !5
  %519 = add nsw i32 %518, 1
  store i32 %519, ptr @test_count, align 4, !tbaa !5
  %520 = icmp eq ptr %517, null
  br i1 %520, label %521, label %544

521:                                              ; preds = %516
  %522 = tail call ptr @__errno_location() #13
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = call i32 @s2n_print_stacktrace(ptr noundef %524) #12
  %526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %527 = trunc nuw i8 %526 to i1
  br i1 %527, label %528, label %532

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

532:                                              ; preds = %528, %521
  br label %533

533:                                              ; preds = %528, %532
  %.str.5.sink520 = phi ptr [ @.str.5, %532 ], [ @.str.2, %528 ]
  store i32 %523, ptr %522, align 4, !tbaa !5
  %534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %535 = load i32, ptr @test_count, align 4, !tbaa !5
  %536 = load i32, ptr %106, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror(i32 noundef %536, ptr noundef nonnull @.str.4) #12
  %538 = load i32, ptr %106, align 4, !tbaa !5
  %539 = call ptr @s2n_strerror_debug(i32 noundef %538, ptr noundef nonnull @.str.4) #12
  %540 = load i32, ptr %522, align 4, !tbaa !5
  %541 = call ptr @strerror(i32 noundef %540) #12
  %542 = load i32, ptr %522, align 4, !tbaa !5
  %543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %534, ptr noundef nonnull %.str.5.sink520, i32 noundef %535, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 359, ptr noundef %537, ptr noundef %539, ptr noundef %541, i32 noundef %542) #14
  call void @exit(i32 noundef 1) #15
  unreachable

544:                                              ; preds = %516
  %545 = add nsw i32 %518, 2
  store i32 %545, ptr @test_count, align 4, !tbaa !5
  %546 = load ptr, ptr %11, align 8, !tbaa !9
  %547 = call i32 @s2n_connection_set_config(ptr noundef nonnull %517, ptr noundef %546) #12
  %548 = icmp eq i32 %547, -1
  br i1 %548, label %549, label %572

549:                                              ; preds = %544
  %550 = tail call ptr @__errno_location() #13
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @s2n_print_stacktrace(ptr noundef %552) #12
  %554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %555 = trunc nuw i8 %554 to i1
  br i1 %555, label %556, label %560

556:                                              ; preds = %549
  %557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %558 = call i32 @fileno(ptr noundef %557) #12
  %559 = call i32 @isatty(i32 noundef %558) #12
  %.not298 = icmp eq i32 %559, 0
  br i1 %.not298, label %560, label %561

560:                                              ; preds = %556, %549
  br label %561

561:                                              ; preds = %556, %560
  %.str.5.sink529 = phi ptr [ @.str.5, %560 ], [ @.str.2, %556 ]
  store i32 %551, ptr %550, align 4, !tbaa !5
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = load i32, ptr %106, align 4, !tbaa !5
  %565 = call ptr @s2n_strerror(i32 noundef %564, ptr noundef nonnull @.str.4) #12
  %566 = load i32, ptr %106, align 4, !tbaa !5
  %567 = call ptr @s2n_strerror_debug(i32 noundef %566, ptr noundef nonnull @.str.4) #12
  %568 = load i32, ptr %550, align 4, !tbaa !5
  %569 = call ptr @strerror(i32 noundef %568) #12
  %570 = load i32, ptr %550, align 4, !tbaa !5
  %571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %562, ptr noundef nonnull %.str.5.sink529, i32 noundef %563, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 360, ptr noundef %565, ptr noundef %567, ptr noundef %569, i32 noundef %570) #14
  call void @exit(i32 noundef 1) #15
  unreachable

572:                                              ; preds = %544
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr @test_count, align 4, !tbaa !5
  %575 = load ptr, ptr %15, align 8, !tbaa !9
  %576 = call i32 @s2n_connection_set_ctx(ptr noundef %575, ptr noundef nonnull %14) #12
  %577 = icmp eq i32 %576, -1
  br i1 %577, label %578, label %601

578:                                              ; preds = %572
  %579 = tail call ptr @__errno_location() #13
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = call i32 @s2n_print_stacktrace(ptr noundef %581) #12
  %583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %584 = trunc nuw i8 %583 to i1
  br i1 %584, label %585, label %589

585:                                              ; preds = %578
  %586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %587 = call i32 @fileno(ptr noundef %586) #12
  %588 = call i32 @isatty(i32 noundef %587) #12
  %.not297 = icmp eq i32 %588, 0
  br i1 %.not297, label %589, label %590

589:                                              ; preds = %585, %578
  br label %590

590:                                              ; preds = %585, %589
  %.str.5.sink538 = phi ptr [ @.str.5, %589 ], [ @.str.2, %585 ]
  store i32 %580, ptr %579, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = load i32, ptr %106, align 4, !tbaa !5
  %594 = call ptr @s2n_strerror(i32 noundef %593, ptr noundef nonnull @.str.4) #12
  %595 = load i32, ptr %106, align 4, !tbaa !5
  %596 = call ptr @s2n_strerror_debug(i32 noundef %595, ptr noundef nonnull @.str.4) #12
  %597 = load i32, ptr %579, align 4, !tbaa !5
  %598 = call ptr @strerror(i32 noundef %597) #12
  %599 = load i32, ptr %579, align 4, !tbaa !5
  %600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %591, ptr noundef nonnull %.str.5.sink538, i32 noundef %592, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %594, ptr noundef %596, ptr noundef %598, i32 noundef %599) #14
  call void @exit(i32 noundef 1) #15
  unreachable

601:                                              ; preds = %572
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = add nsw i32 %602, 1
  store i32 %603, ptr @test_count, align 4, !tbaa !5
  %604 = load ptr, ptr %15, align 8, !tbaa !9
  %605 = call i32 @s2n_connection_set_blinding(ptr noundef %604, i32 noundef 1) #12
  %606 = icmp eq i32 %605, -1
  br i1 %606, label %607, label %630

607:                                              ; preds = %601
  %608 = tail call ptr @__errno_location() #13
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = call i32 @s2n_print_stacktrace(ptr noundef %610) #12
  %612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %613 = trunc nuw i8 %612 to i1
  br i1 %613, label %614, label %618

614:                                              ; preds = %607
  %615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %616 = call i32 @fileno(ptr noundef %615) #12
  %617 = call i32 @isatty(i32 noundef %616) #12
  %.not296 = icmp eq i32 %617, 0
  br i1 %.not296, label %618, label %619

618:                                              ; preds = %614, %607
  br label %619

619:                                              ; preds = %614, %618
  %.str.5.sink547 = phi ptr [ @.str.5, %618 ], [ @.str.2, %614 ]
  store i32 %609, ptr %608, align 4, !tbaa !5
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = load i32, ptr %106, align 4, !tbaa !5
  %623 = call ptr @s2n_strerror(i32 noundef %622, ptr noundef nonnull @.str.4) #12
  %624 = load i32, ptr %106, align 4, !tbaa !5
  %625 = call ptr @s2n_strerror_debug(i32 noundef %624, ptr noundef nonnull @.str.4) #12
  %626 = load i32, ptr %608, align 4, !tbaa !5
  %627 = call ptr @strerror(i32 noundef %626) #12
  %628 = load i32, ptr %608, align 4, !tbaa !5
  %629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %620, ptr noundef nonnull %.str.5.sink547, i32 noundef %621, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 362, ptr noundef %623, ptr noundef %625, ptr noundef %627, i32 noundef %628) #14
  call void @exit(i32 noundef 1) #15
  unreachable

630:                                              ; preds = %601
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr @test_count, align 4, !tbaa !5
  %633 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %16) #12
  %634 = icmp eq i32 %633, -1
  br i1 %634, label %635, label %658

635:                                              ; preds = %630
  %636 = tail call ptr @__errno_location() #13
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = call i32 @s2n_print_stacktrace(ptr noundef %638) #12
  %640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %641 = trunc nuw i8 %640 to i1
  br i1 %641, label %642, label %646

642:                                              ; preds = %635
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = call i32 @fileno(ptr noundef %643) #12
  %645 = call i32 @isatty(i32 noundef %644) #12
  %.not295 = icmp eq i32 %645, 0
  br i1 %.not295, label %646, label %647

646:                                              ; preds = %642, %635
  br label %647

647:                                              ; preds = %642, %646
  %.str.5.sink556 = phi ptr [ @.str.5, %646 ], [ @.str.2, %642 ]
  store i32 %637, ptr %636, align 4, !tbaa !5
  %648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %649 = load i32, ptr @test_count, align 4, !tbaa !5
  %650 = load i32, ptr %106, align 4, !tbaa !5
  %651 = call ptr @s2n_strerror(i32 noundef %650, ptr noundef nonnull @.str.4) #12
  %652 = load i32, ptr %106, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror_debug(i32 noundef %652, ptr noundef nonnull @.str.4) #12
  %654 = load i32, ptr %636, align 4, !tbaa !5
  %655 = call ptr @strerror(i32 noundef %654) #12
  %656 = load i32, ptr %636, align 4, !tbaa !5
  %657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %648, ptr noundef nonnull %.str.5.sink556, i32 noundef %649, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 365, ptr noundef %651, ptr noundef %653, ptr noundef %655, i32 noundef %656) #14
  call void @exit(i32 noundef 1) #15
  unreachable

658:                                              ; preds = %630
  %659 = load i32, ptr @test_count, align 4, !tbaa !5
  %660 = add nsw i32 %659, 1
  store i32 %660, ptr @test_count, align 4, !tbaa !5
  %661 = load ptr, ptr %13, align 8, !tbaa !9
  %662 = load ptr, ptr %15, align 8, !tbaa !9
  %663 = call i32 @s2n_connections_set_io_pair(ptr noundef %661, ptr noundef %662, ptr noundef nonnull %16) #12
  %664 = icmp eq i32 %663, -1
  br i1 %664, label %665, label %688

665:                                              ; preds = %658
  %666 = tail call ptr @__errno_location() #13
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = call i32 @s2n_print_stacktrace(ptr noundef %668) #12
  %670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %671 = trunc nuw i8 %670 to i1
  br i1 %671, label %672, label %676

672:                                              ; preds = %665
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = call i32 @fileno(ptr noundef %673) #12
  %675 = call i32 @isatty(i32 noundef %674) #12
  %.not294 = icmp eq i32 %675, 0
  br i1 %.not294, label %676, label %677

676:                                              ; preds = %672, %665
  br label %677

677:                                              ; preds = %672, %676
  %.str.5.sink565 = phi ptr [ @.str.5, %676 ], [ @.str.2, %672 ]
  store i32 %667, ptr %666, align 4, !tbaa !5
  %678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %679 = load i32, ptr @test_count, align 4, !tbaa !5
  %680 = load i32, ptr %106, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror(i32 noundef %680, ptr noundef nonnull @.str.4) #12
  %682 = load i32, ptr %106, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror_debug(i32 noundef %682, ptr noundef nonnull @.str.4) #12
  %684 = load i32, ptr %666, align 4, !tbaa !5
  %685 = call ptr @strerror(i32 noundef %684) #12
  %686 = load i32, ptr %666, align 4, !tbaa !5
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %678, ptr noundef nonnull %.str.5.sink565, i32 noundef %679, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %681, ptr noundef %683, ptr noundef %685, i32 noundef %686) #14
  call void @exit(i32 noundef 1) #15
  unreachable

688:                                              ; preds = %658
  %689 = load i32, ptr @test_count, align 4, !tbaa !5
  %690 = add nsw i32 %689, 1
  store i32 %690, ptr @test_count, align 4, !tbaa !5
  %691 = load ptr, ptr %15, align 8, !tbaa !9
  %692 = load ptr, ptr %13, align 8, !tbaa !9
  %693 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %691, ptr noundef %692) #12
  %694 = icmp eq i32 %693, -1
  br i1 %694, label %695, label %718

695:                                              ; preds = %688
  %696 = tail call ptr @__errno_location() #13
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = call i32 @s2n_print_stacktrace(ptr noundef %698) #12
  %700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %701 = trunc nuw i8 %700 to i1
  br i1 %701, label %702, label %706

702:                                              ; preds = %695
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = call i32 @fileno(ptr noundef %703) #12
  %705 = call i32 @isatty(i32 noundef %704) #12
  %.not293 = icmp eq i32 %705, 0
  br i1 %.not293, label %706, label %707

706:                                              ; preds = %702, %695
  br label %707

707:                                              ; preds = %702, %706
  %.str.5.sink574 = phi ptr [ @.str.5, %706 ], [ @.str.2, %702 ]
  store i32 %697, ptr %696, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = load i32, ptr @test_count, align 4, !tbaa !5
  %710 = load i32, ptr %106, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror(i32 noundef %710, ptr noundef nonnull @.str.4) #12
  %712 = load i32, ptr %106, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror_debug(i32 noundef %712, ptr noundef nonnull @.str.4) #12
  %714 = load i32, ptr %696, align 4, !tbaa !5
  %715 = call ptr @strerror(i32 noundef %714) #12
  %716 = load i32, ptr %696, align 4, !tbaa !5
  %717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %708, ptr noundef nonnull %.str.5.sink574, i32 noundef %709, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %711, ptr noundef %713, ptr noundef %715, i32 noundef %716) #14
  call void @exit(i32 noundef 1) #15
  unreachable

718:                                              ; preds = %688
  %719 = load i32, ptr @test_count, align 4, !tbaa !5
  %720 = add nsw i32 %719, 1
  store i32 %720, ptr @test_count, align 4, !tbaa !5
  %721 = call i32 @s2n_validate_test_async_pkey_ctx(ptr noundef nonnull %14, i32 noundef %423)
  %722 = call zeroext i1 @s2n_result_is_ok(i32 %721)
  br i1 %722, label %746, label %723

723:                                              ; preds = %718
  %724 = tail call ptr @__errno_location() #13
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @s2n_print_stacktrace(ptr noundef %726) #12
  %728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %729 = trunc nuw i8 %728 to i1
  br i1 %729, label %730, label %734

730:                                              ; preds = %723
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = call i32 @fileno(ptr noundef %731) #12
  %733 = call i32 @isatty(i32 noundef %732) #12
  %.not292 = icmp eq i32 %733, 0
  br i1 %.not292, label %734, label %735

734:                                              ; preds = %730, %723
  br label %735

735:                                              ; preds = %730, %734
  %.str.5.sink583 = phi ptr [ @.str.5, %734 ], [ @.str.2, %730 ]
  store i32 %725, ptr %724, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = load i32, ptr %106, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror(i32 noundef %738, ptr noundef nonnull @.str.4) #12
  %740 = load i32, ptr %106, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror_debug(i32 noundef %740, ptr noundef nonnull @.str.4) #12
  %742 = load i32, ptr %724, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #12
  %744 = load i32, ptr %724, align 4, !tbaa !5
  %745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %736, ptr noundef nonnull %.str.5.sink583, i32 noundef %737, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %739, ptr noundef %741, ptr noundef %743, i32 noundef %744) #14
  call void @exit(i32 noundef 1) #15
  unreachable

746:                                              ; preds = %718
  %747 = call i32 @s2n_io_pair_close(ptr noundef nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  %748 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  %749 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %12) #12
  %750 = add nuw nsw i64 %.0218362, 1
  %exitcond.not = icmp eq i64 %750, 100
  br i1 %exitcond.not, label %424, label %431, !llvm.loop !39

751:                                              ; preds = %424
  %752 = tail call ptr @__errno_location() #13
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %755 = call i32 @s2n_print_stacktrace(ptr noundef %754) #12
  %756 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %757 = trunc nuw i8 %756 to i1
  br i1 %757, label %758, label %762

758:                                              ; preds = %751
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = call i32 @fileno(ptr noundef %759) #12
  %761 = call i32 @isatty(i32 noundef %760) #12
  %.not291 = icmp eq i32 %761, 0
  br i1 %.not291, label %762, label %763

762:                                              ; preds = %758, %751
  br label %763

763:                                              ; preds = %758, %762
  %.str.5.sink592 = phi ptr [ @.str.5, %762 ], [ @.str.2, %758 ]
  store i32 %753, ptr %752, align 4, !tbaa !5
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = load i32, ptr %106, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror(i32 noundef %766, ptr noundef nonnull @.str.4) #12
  %768 = load i32, ptr %106, align 4, !tbaa !5
  %769 = call ptr @s2n_strerror_debug(i32 noundef %768, ptr noundef nonnull @.str.4) #12
  %770 = load i32, ptr %752, align 4, !tbaa !5
  %771 = call ptr @strerror(i32 noundef %770) #12
  %772 = load i32, ptr %752, align 4, !tbaa !5
  %773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %764, ptr noundef nonnull %.str.5.sink592, i32 noundef %765, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 390, ptr noundef %767, ptr noundef %769, ptr noundef %771, i32 noundef %772) #14
  call void @exit(i32 noundef 1) #15
  unreachable

774:                                              ; preds = %424
  %775 = add nsw i32 %428, 2
  store i32 %775, ptr @test_count, align 4, !tbaa !5
  %776 = load ptr, ptr %10, align 8, !tbaa !9
  %777 = call i32 @s2n_connection_set_config(ptr noundef nonnull %427, ptr noundef %776) #12
  %778 = icmp eq i32 %777, -1
  br i1 %778, label %779, label %802

779:                                              ; preds = %774
  %780 = tail call ptr @__errno_location() #13
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %783 = call i32 @s2n_print_stacktrace(ptr noundef %782) #12
  %784 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %785 = trunc nuw i8 %784 to i1
  br i1 %785, label %786, label %790

786:                                              ; preds = %779
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = call i32 @fileno(ptr noundef %787) #12
  %789 = call i32 @isatty(i32 noundef %788) #12
  %.not290 = icmp eq i32 %789, 0
  br i1 %.not290, label %790, label %791

790:                                              ; preds = %786, %779
  br label %791

791:                                              ; preds = %786, %790
  %.str.5.sink601 = phi ptr [ @.str.5, %790 ], [ @.str.2, %786 ]
  store i32 %781, ptr %780, align 4, !tbaa !5
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = load i32, ptr @test_count, align 4, !tbaa !5
  %794 = load i32, ptr %106, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror(i32 noundef %794, ptr noundef nonnull @.str.4) #12
  %796 = load i32, ptr %106, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror_debug(i32 noundef %796, ptr noundef nonnull @.str.4) #12
  %798 = load i32, ptr %780, align 4, !tbaa !5
  %799 = call ptr @strerror(i32 noundef %798) #12
  %800 = load i32, ptr %780, align 4, !tbaa !5
  %801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef nonnull %.str.5.sink601, i32 noundef %793, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %795, ptr noundef %797, ptr noundef %799, i32 noundef %800) #14
  call void @exit(i32 noundef 1) #15
  unreachable

802:                                              ; preds = %774
  %803 = load i32, ptr @test_count, align 4, !tbaa !5
  %804 = add nsw i32 %803, 1
  store i32 %804, ptr @test_count, align 4, !tbaa !5
  %805 = load ptr, ptr %18, align 8, !tbaa !9
  %806 = call i32 @s2n_connection_set_ctx(ptr noundef %805, ptr noundef nonnull %17) #12
  %807 = icmp eq i32 %806, -1
  br i1 %807, label %808, label %831

808:                                              ; preds = %802
  %809 = tail call ptr @__errno_location() #13
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %812 = call i32 @s2n_print_stacktrace(ptr noundef %811) #12
  %813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %814 = trunc nuw i8 %813 to i1
  br i1 %814, label %815, label %819

815:                                              ; preds = %808
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = call i32 @fileno(ptr noundef %816) #12
  %818 = call i32 @isatty(i32 noundef %817) #12
  %.not289 = icmp eq i32 %818, 0
  br i1 %.not289, label %819, label %820

819:                                              ; preds = %815, %808
  br label %820

820:                                              ; preds = %815, %819
  %.str.5.sink610 = phi ptr [ @.str.5, %819 ], [ @.str.2, %815 ]
  store i32 %810, ptr %809, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = load i32, ptr %106, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror(i32 noundef %823, ptr noundef nonnull @.str.4) #12
  %825 = load i32, ptr %106, align 4, !tbaa !5
  %826 = call ptr @s2n_strerror_debug(i32 noundef %825, ptr noundef nonnull @.str.4) #12
  %827 = load i32, ptr %809, align 4, !tbaa !5
  %828 = call ptr @strerror(i32 noundef %827) #12
  %829 = load i32, ptr %809, align 4, !tbaa !5
  %830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %821, ptr noundef nonnull %.str.5.sink610, i32 noundef %822, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %824, ptr noundef %826, ptr noundef %828, i32 noundef %829) #14
  call void @exit(i32 noundef 1) #15
  unreachable

831:                                              ; preds = %802
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #12
  store i64 0, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #12
  %832 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %832, ptr %20, align 8, !tbaa !9
  %833 = load i32, ptr @test_count, align 4, !tbaa !5
  %834 = add nsw i32 %833, 1
  store i32 %834, ptr @test_count, align 4, !tbaa !5
  %835 = icmp eq ptr %832, null
  br i1 %835, label %836, label %859

836:                                              ; preds = %831
  %837 = tail call ptr @__errno_location() #13
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @s2n_print_stacktrace(ptr noundef %839) #12
  %841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %842 = trunc nuw i8 %841 to i1
  br i1 %842, label %843, label %847

843:                                              ; preds = %836
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @fileno(ptr noundef %844) #12
  %846 = call i32 @isatty(i32 noundef %845) #12
  %.not288 = icmp eq i32 %846, 0
  br i1 %.not288, label %847, label %848

847:                                              ; preds = %843, %836
  br label %848

848:                                              ; preds = %843, %847
  %.str.5.sink619 = phi ptr [ @.str.5, %847 ], [ @.str.2, %843 ]
  store i32 %838, ptr %837, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = load i32, ptr @test_count, align 4, !tbaa !5
  %851 = load i32, ptr %106, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror(i32 noundef %851, ptr noundef nonnull @.str.4) #12
  %853 = load i32, ptr %106, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror_debug(i32 noundef %853, ptr noundef nonnull @.str.4) #12
  %855 = load i32, ptr %837, align 4, !tbaa !5
  %856 = call ptr @strerror(i32 noundef %855) #12
  %857 = load i32, ptr %837, align 4, !tbaa !5
  %858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %849, ptr noundef nonnull %.str.5.sink619, i32 noundef %850, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %852, ptr noundef %854, ptr noundef %856, i32 noundef %857) #14
  call void @exit(i32 noundef 1) #15
  unreachable

859:                                              ; preds = %831
  %860 = add nsw i32 %833, 2
  store i32 %860, ptr @test_count, align 4, !tbaa !5
  %861 = load ptr, ptr %11, align 8, !tbaa !9
  %862 = call i32 @s2n_connection_set_config(ptr noundef nonnull %832, ptr noundef %861) #12
  %863 = icmp eq i32 %862, -1
  br i1 %863, label %864, label %887

864:                                              ; preds = %859
  %865 = tail call ptr @__errno_location() #13
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = call i32 @s2n_print_stacktrace(ptr noundef %867) #12
  %869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %870 = trunc nuw i8 %869 to i1
  br i1 %870, label %871, label %875

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

875:                                              ; preds = %871, %864
  br label %876

876:                                              ; preds = %871, %875
  %.str.5.sink628 = phi ptr [ @.str.5, %875 ], [ @.str.2, %871 ]
  store i32 %866, ptr %865, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = load i32, ptr @test_count, align 4, !tbaa !5
  %879 = load i32, ptr %106, align 4, !tbaa !5
  %880 = call ptr @s2n_strerror(i32 noundef %879, ptr noundef nonnull @.str.4) #12
  %881 = load i32, ptr %106, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror_debug(i32 noundef %881, ptr noundef nonnull @.str.4) #12
  %883 = load i32, ptr %865, align 4, !tbaa !5
  %884 = call ptr @strerror(i32 noundef %883) #12
  %885 = load i32, ptr %865, align 4, !tbaa !5
  %886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %877, ptr noundef nonnull %.str.5.sink628, i32 noundef %878, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 399, ptr noundef %880, ptr noundef %882, ptr noundef %884, i32 noundef %885) #14
  call void @exit(i32 noundef 1) #15
  unreachable

887:                                              ; preds = %859
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = add nsw i32 %888, 1
  store i32 %889, ptr @test_count, align 4, !tbaa !5
  %890 = load ptr, ptr %20, align 8, !tbaa !9
  %891 = call i32 @s2n_connection_set_ctx(ptr noundef %890, ptr noundef nonnull %19) #12
  %892 = icmp eq i32 %891, -1
  br i1 %892, label %893, label %916

893:                                              ; preds = %887
  %894 = tail call ptr @__errno_location() #13
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = call i32 @s2n_print_stacktrace(ptr noundef %896) #12
  %898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %899 = trunc nuw i8 %898 to i1
  br i1 %899, label %900, label %904

900:                                              ; preds = %893
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @fileno(ptr noundef %901) #12
  %903 = call i32 @isatty(i32 noundef %902) #12
  %.not286 = icmp eq i32 %903, 0
  br i1 %.not286, label %904, label %905

904:                                              ; preds = %900, %893
  br label %905

905:                                              ; preds = %900, %904
  %.str.5.sink637 = phi ptr [ @.str.5, %904 ], [ @.str.2, %900 ]
  store i32 %895, ptr %894, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = load i32, ptr %106, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror(i32 noundef %908, ptr noundef nonnull @.str.4) #12
  %910 = load i32, ptr %106, align 4, !tbaa !5
  %911 = call ptr @s2n_strerror_debug(i32 noundef %910, ptr noundef nonnull @.str.4) #12
  %912 = load i32, ptr %894, align 4, !tbaa !5
  %913 = call ptr @strerror(i32 noundef %912) #12
  %914 = load i32, ptr %894, align 4, !tbaa !5
  %915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %906, ptr noundef nonnull %.str.5.sink637, i32 noundef %907, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %909, ptr noundef %911, ptr noundef %913, i32 noundef %914) #14
  call void @exit(i32 noundef 1) #15
  unreachable

916:                                              ; preds = %887
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = add nsw i32 %917, 1
  store i32 %918, ptr @test_count, align 4, !tbaa !5
  %919 = load ptr, ptr %20, align 8, !tbaa !9
  %920 = call i32 @s2n_connection_set_blinding(ptr noundef %919, i32 noundef 1) #12
  %921 = icmp eq i32 %920, -1
  br i1 %921, label %922, label %945

922:                                              ; preds = %916
  %923 = tail call ptr @__errno_location() #13
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = call i32 @s2n_print_stacktrace(ptr noundef %925) #12
  %927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %928 = trunc nuw i8 %927 to i1
  br i1 %928, label %929, label %933

929:                                              ; preds = %922
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = call i32 @fileno(ptr noundef %930) #12
  %932 = call i32 @isatty(i32 noundef %931) #12
  %.not285 = icmp eq i32 %932, 0
  br i1 %.not285, label %933, label %934

933:                                              ; preds = %929, %922
  br label %934

934:                                              ; preds = %929, %933
  %.str.5.sink646 = phi ptr [ @.str.5, %933 ], [ @.str.2, %929 ]
  store i32 %924, ptr %923, align 4, !tbaa !5
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = load i32, ptr %106, align 4, !tbaa !5
  %938 = call ptr @s2n_strerror(i32 noundef %937, ptr noundef nonnull @.str.4) #12
  %939 = load i32, ptr %106, align 4, !tbaa !5
  %940 = call ptr @s2n_strerror_debug(i32 noundef %939, ptr noundef nonnull @.str.4) #12
  %941 = load i32, ptr %923, align 4, !tbaa !5
  %942 = call ptr @strerror(i32 noundef %941) #12
  %943 = load i32, ptr %923, align 4, !tbaa !5
  %944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %935, ptr noundef nonnull %.str.5.sink646, i32 noundef %936, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 401, ptr noundef %938, ptr noundef %940, ptr noundef %942, i32 noundef %943) #14
  call void @exit(i32 noundef 1) #15
  unreachable

945:                                              ; preds = %916
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %946 = load i32, ptr @test_count, align 4, !tbaa !5
  %947 = add nsw i32 %946, 1
  store i32 %947, ptr @test_count, align 4, !tbaa !5
  %948 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %21) #12
  %949 = icmp eq i32 %948, -1
  br i1 %949, label %950, label %973

950:                                              ; preds = %945
  %951 = tail call ptr @__errno_location() #13
  %952 = load i32, ptr %951, align 4, !tbaa !5
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = call i32 @s2n_print_stacktrace(ptr noundef %953) #12
  %955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %956 = trunc nuw i8 %955 to i1
  br i1 %956, label %957, label %961

957:                                              ; preds = %950
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @fileno(ptr noundef %958) #12
  %960 = call i32 @isatty(i32 noundef %959) #12
  %.not284 = icmp eq i32 %960, 0
  br i1 %.not284, label %961, label %962

961:                                              ; preds = %957, %950
  br label %962

962:                                              ; preds = %957, %961
  %.str.5.sink655 = phi ptr [ @.str.5, %961 ], [ @.str.2, %957 ]
  store i32 %952, ptr %951, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = load i32, ptr %106, align 4, !tbaa !5
  %966 = call ptr @s2n_strerror(i32 noundef %965, ptr noundef nonnull @.str.4) #12
  %967 = load i32, ptr %106, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror_debug(i32 noundef %967, ptr noundef nonnull @.str.4) #12
  %969 = load i32, ptr %951, align 4, !tbaa !5
  %970 = call ptr @strerror(i32 noundef %969) #12
  %971 = load i32, ptr %951, align 4, !tbaa !5
  %972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %963, ptr noundef nonnull %.str.5.sink655, i32 noundef %964, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %966, ptr noundef %968, ptr noundef %970, i32 noundef %971) #14
  call void @exit(i32 noundef 1) #15
  unreachable

973:                                              ; preds = %945
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = add nsw i32 %974, 1
  store i32 %975, ptr @test_count, align 4, !tbaa !5
  %976 = load ptr, ptr %18, align 8, !tbaa !9
  %977 = load ptr, ptr %20, align 8, !tbaa !9
  %978 = call i32 @s2n_connections_set_io_pair(ptr noundef %976, ptr noundef %977, ptr noundef nonnull %21) #12
  %979 = icmp eq i32 %978, -1
  br i1 %979, label %980, label %1003

980:                                              ; preds = %973
  %981 = tail call ptr @__errno_location() #13
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = call i32 @s2n_print_stacktrace(ptr noundef %983) #12
  %985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %986 = trunc nuw i8 %985 to i1
  br i1 %986, label %987, label %991

987:                                              ; preds = %980
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = call i32 @fileno(ptr noundef %988) #12
  %990 = call i32 @isatty(i32 noundef %989) #12
  %.not283 = icmp eq i32 %990, 0
  br i1 %.not283, label %991, label %992

991:                                              ; preds = %987, %980
  br label %992

992:                                              ; preds = %987, %991
  %.str.5.sink664 = phi ptr [ @.str.5, %991 ], [ @.str.2, %987 ]
  store i32 %982, ptr %981, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = load i32, ptr %106, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror(i32 noundef %995, ptr noundef nonnull @.str.4) #12
  %997 = load i32, ptr %106, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror_debug(i32 noundef %997, ptr noundef nonnull @.str.4) #12
  %999 = load i32, ptr %981, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #12
  %1001 = load i32, ptr %981, align 4, !tbaa !5
  %1002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %993, ptr noundef nonnull %.str.5.sink664, i32 noundef %994, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %996, ptr noundef %998, ptr noundef %1000, i32 noundef %1001) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1003:                                             ; preds = %973
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = add nsw i32 %1004, 1
  store i32 %1005, ptr @test_count, align 4, !tbaa !5
  %1006 = load ptr, ptr %20, align 8, !tbaa !9
  %1007 = load ptr, ptr %18, align 8, !tbaa !9
  %1008 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1006, ptr noundef %1007) #12
  %1009 = icmp eq i32 %1008, -1
  br i1 %1009, label %1033, label %1010

1010:                                             ; preds = %1003
  %1011 = tail call ptr @__errno_location() #13
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @s2n_print_stacktrace(ptr noundef %1013) #12
  %1015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1016 = trunc nuw i8 %1015 to i1
  br i1 %1016, label %1017, label %1021

1017:                                             ; preds = %1010
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @fileno(ptr noundef %1018) #12
  %1020 = call i32 @isatty(i32 noundef %1019) #12
  %.not234 = icmp eq i32 %1020, 0
  br i1 %.not234, label %1021, label %1022

1021:                                             ; preds = %1017, %1010
  br label %1022

1022:                                             ; preds = %1017, %1021
  %.str.5.sink673 = phi ptr [ @.str.5, %1021 ], [ @.str.2, %1017 ]
  store i32 %1012, ptr %1011, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = load i32, ptr %106, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror(i32 noundef %1025, ptr noundef nonnull @.str.4) #12
  %1027 = load i32, ptr %106, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror_debug(i32 noundef %1027, ptr noundef nonnull @.str.4) #12
  %1029 = load i32, ptr %1011, align 4, !tbaa !5
  %1030 = call ptr @strerror(i32 noundef %1029) #12
  %1031 = load i32, ptr %1011, align 4, !tbaa !5
  %1032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef nonnull %.str.5.sink673, i32 noundef %1024, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %1026, ptr noundef %1028, ptr noundef %1030, i32 noundef %1031) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1033:                                             ; preds = %1003
  %1034 = load i32, ptr @test_count, align 4, !tbaa !5
  %1035 = add nsw i32 %1034, 1
  store i32 %1035, ptr @test_count, align 4, !tbaa !5
  %1036 = load i32, ptr %106, align 4, !tbaa !5
  %1037 = icmp eq i32 %1036, 335544321
  br i1 %1037, label %1061, label %1038

1038:                                             ; preds = %1033
  %1039 = tail call ptr @__errno_location() #13
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = call i32 @s2n_print_stacktrace(ptr noundef %1041) #12
  %1043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1044 = trunc nuw i8 %1043 to i1
  br i1 %1044, label %1045, label %1049

1045:                                             ; preds = %1038
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = call i32 @fileno(ptr noundef %1046) #12
  %1048 = call i32 @isatty(i32 noundef %1047) #12
  %.not235 = icmp eq i32 %1048, 0
  br i1 %.not235, label %1049, label %1050

1049:                                             ; preds = %1045, %1038
  br label %1050

1050:                                             ; preds = %1045, %1049
  %.str.5.sink682 = phi ptr [ @.str.5, %1049 ], [ @.str.2, %1045 ]
  store i32 %1040, ptr %1039, align 4, !tbaa !5
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = load i32, ptr @test_count, align 4, !tbaa !5
  %1053 = load i32, ptr %106, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror(i32 noundef %1053, ptr noundef nonnull @.str.4) #12
  %1055 = load i32, ptr %106, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef nonnull @.str.4) #12
  %1057 = load i32, ptr %1039, align 4, !tbaa !5
  %1058 = call ptr @strerror(i32 noundef %1057) #12
  %1059 = load i32, ptr %1039, align 4, !tbaa !5
  %1060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1051, ptr noundef nonnull %.str.5.sink682, i32 noundef %1052, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %1054, ptr noundef %1056, ptr noundef %1058, i32 noundef %1059) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1061:                                             ; preds = %1033
  %1062 = add nsw i32 %1034, 2
  store i32 %1062, ptr @test_count, align 4, !tbaa !5
  %1063 = call ptr @s2n_strerror_debug(i32 noundef 335544321, ptr noundef nonnull @.str.4) #12
  %1064 = icmp eq ptr %1063, null
  br i1 %1064, label %1065, label %1088

1065:                                             ; preds = %1061
  %1066 = tail call ptr @__errno_location() #13
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = call i32 @s2n_print_stacktrace(ptr noundef %1068) #12
  %1070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1071 = trunc nuw i8 %1070 to i1
  br i1 %1071, label %1072, label %1076

1072:                                             ; preds = %1065
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = call i32 @fileno(ptr noundef %1073) #12
  %1075 = call i32 @isatty(i32 noundef %1074) #12
  %.not282 = icmp eq i32 %1075, 0
  br i1 %.not282, label %1076, label %1077

1076:                                             ; preds = %1072, %1065
  br label %1077

1077:                                             ; preds = %1072, %1076
  %.str.5.sink691 = phi ptr [ @.str.5, %1076 ], [ @.str.2, %1072 ]
  store i32 %1067, ptr %1066, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = load i32, ptr %106, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef nonnull @.str.4) #12
  %1082 = load i32, ptr %106, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef nonnull @.str.4) #12
  %1084 = load i32, ptr %1066, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #12
  %1086 = load i32, ptr %1066, align 4, !tbaa !5
  %1087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef nonnull %.str.5.sink691, i32 noundef %1079, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %1081, ptr noundef %1083, ptr noundef %1085, i32 noundef %1086) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1088:                                             ; preds = %1061
  %1089 = load i32, ptr %106, align 4, !tbaa !5
  %1090 = call ptr @s2n_strerror_source(i32 noundef %1089) #12
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = add nsw i32 %1091, 1
  store i32 %1092, ptr @test_count, align 4, !tbaa !5
  %1093 = call ptr @strstr(ptr noundef nonnull dereferenceable(1) %1090, ptr noundef nonnull dereferenceable(1) @.str.35) #16
  %1094 = icmp eq ptr %1093, null
  br i1 %1094, label %1095, label %1118

1095:                                             ; preds = %1088
  %1096 = tail call ptr @__errno_location() #13
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = call i32 @s2n_print_stacktrace(ptr noundef %1098) #12
  %1100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1101 = trunc nuw i8 %1100 to i1
  br i1 %1101, label %1102, label %1106

1102:                                             ; preds = %1095
  %1103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1104 = call i32 @fileno(ptr noundef %1103) #12
  %1105 = call i32 @isatty(i32 noundef %1104) #12
  %.not281 = icmp eq i32 %1105, 0
  br i1 %.not281, label %1106, label %1107

1106:                                             ; preds = %1102, %1095
  br label %1107

1107:                                             ; preds = %1102, %1106
  %.str.5.sink700 = phi ptr [ @.str.5, %1106 ], [ @.str.2, %1102 ]
  store i32 %1097, ptr %1096, align 4, !tbaa !5
  %1108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1109 = load i32, ptr @test_count, align 4, !tbaa !5
  %1110 = load i32, ptr %106, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror(i32 noundef %1110, ptr noundef nonnull @.str.4) #12
  %1112 = load i32, ptr %106, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror_debug(i32 noundef %1112, ptr noundef nonnull @.str.4) #12
  %1114 = load i32, ptr %1096, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #12
  %1116 = load i32, ptr %1096, align 4, !tbaa !5
  %1117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1108, ptr noundef nonnull %.str.5.sink700, i32 noundef %1109, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 411, ptr noundef %1111, ptr noundef %1113, ptr noundef %1115, i32 noundef %1116) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1118:                                             ; preds = %1088
  %1119 = add nsw i32 %1091, 2
  store i32 %1119, ptr @test_count, align 4, !tbaa !5
  %1120 = call i32 @s2n_validate_test_async_pkey_ctx(ptr noundef nonnull %19, i32 noundef %423)
  %1121 = call zeroext i1 @s2n_result_is_ok(i32 %1120)
  br i1 %1121, label %1145, label %1122

1122:                                             ; preds = %1118
  %1123 = tail call ptr @__errno_location() #13
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @s2n_print_stacktrace(ptr noundef %1125) #12
  %1127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1128 = trunc nuw i8 %1127 to i1
  br i1 %1128, label %1129, label %1133

1129:                                             ; preds = %1122
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @fileno(ptr noundef %1130) #12
  %1132 = call i32 @isatty(i32 noundef %1131) #12
  %.not236 = icmp eq i32 %1132, 0
  br i1 %.not236, label %1133, label %1134

1133:                                             ; preds = %1129, %1122
  br label %1134

1134:                                             ; preds = %1129, %1133
  %.str.5.sink709 = phi ptr [ @.str.5, %1133 ], [ @.str.2, %1129 ]
  store i32 %1124, ptr %1123, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = load i32, ptr %106, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror(i32 noundef %1137, ptr noundef nonnull @.str.4) #12
  %1139 = load i32, ptr %106, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef nonnull @.str.4) #12
  %1141 = load i32, ptr %1123, align 4, !tbaa !5
  %1142 = call ptr @strerror(i32 noundef %1141) #12
  %1143 = load i32, ptr %1123, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef nonnull %.str.5.sink709, i32 noundef %1136, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %1138, ptr noundef %1140, ptr noundef %1142, i32 noundef %1143) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1145:                                             ; preds = %1118
  %1146 = call i32 @s2n_io_pair_close(ptr noundef nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  %1147 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  %1148 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %17) #12
  br label %1149

1149:                                             ; preds = %1145, %1575
  %.0219363 = phi i8 [ 0, %1145 ], [ %1579, %1575 ]
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %22, i8 0, i64 20, i1 false)
  store i8 1, ptr %107, align 4, !tbaa !41
  store i8 %.0219363, ptr %108, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  %1150 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1150, ptr %23, align 8, !tbaa !9
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = add nsw i32 %1151, 1
  store i32 %1152, ptr @test_count, align 4, !tbaa !5
  %1153 = icmp eq ptr %1150, null
  br i1 %1153, label %1154, label %1177

1154:                                             ; preds = %1149
  %1155 = tail call ptr @__errno_location() #13
  %1156 = load i32, ptr %1155, align 4, !tbaa !5
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @s2n_print_stacktrace(ptr noundef %1157) #12
  %1159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1160 = trunc nuw i8 %1159 to i1
  br i1 %1160, label %1161, label %1165

1161:                                             ; preds = %1154
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @fileno(ptr noundef %1162) #12
  %1164 = call i32 @isatty(i32 noundef %1163) #12
  %.not280 = icmp eq i32 %1164, 0
  br i1 %.not280, label %1165, label %1166

1165:                                             ; preds = %1161, %1154
  br label %1166

1166:                                             ; preds = %1161, %1165
  %.str.5.sink718 = phi ptr [ @.str.5, %1165 ], [ @.str.2, %1161 ]
  store i32 %1156, ptr %1155, align 4, !tbaa !5
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = load i32, ptr @test_count, align 4, !tbaa !5
  %1169 = load i32, ptr %106, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror(i32 noundef %1169, ptr noundef nonnull @.str.4) #12
  %1171 = load i32, ptr %106, align 4, !tbaa !5
  %1172 = call ptr @s2n_strerror_debug(i32 noundef %1171, ptr noundef nonnull @.str.4) #12
  %1173 = load i32, ptr %1155, align 4, !tbaa !5
  %1174 = call ptr @strerror(i32 noundef %1173) #12
  %1175 = load i32, ptr %1155, align 4, !tbaa !5
  %1176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1167, ptr noundef nonnull %.str.5.sink718, i32 noundef %1168, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %1170, ptr noundef %1172, ptr noundef %1174, i32 noundef %1175) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1177:                                             ; preds = %1149
  %1178 = add nsw i32 %1151, 2
  store i32 %1178, ptr @test_count, align 4, !tbaa !5
  %1179 = load ptr, ptr %10, align 8, !tbaa !9
  %1180 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1150, ptr noundef %1179) #12
  %1181 = icmp eq i32 %1180, -1
  br i1 %1181, label %1182, label %1205

1182:                                             ; preds = %1177
  %1183 = tail call ptr @__errno_location() #13
  %1184 = load i32, ptr %1183, align 4, !tbaa !5
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = call i32 @s2n_print_stacktrace(ptr noundef %1185) #12
  %1187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1188 = trunc nuw i8 %1187 to i1
  br i1 %1188, label %1189, label %1193

1189:                                             ; preds = %1182
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1191 = call i32 @fileno(ptr noundef %1190) #12
  %1192 = call i32 @isatty(i32 noundef %1191) #12
  %.not279 = icmp eq i32 %1192, 0
  br i1 %.not279, label %1193, label %1194

1193:                                             ; preds = %1189, %1182
  br label %1194

1194:                                             ; preds = %1189, %1193
  %.str.5.sink727 = phi ptr [ @.str.5, %1193 ], [ @.str.2, %1189 ]
  store i32 %1184, ptr %1183, align 4, !tbaa !5
  %1195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1196 = load i32, ptr @test_count, align 4, !tbaa !5
  %1197 = load i32, ptr %106, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror(i32 noundef %1197, ptr noundef nonnull @.str.4) #12
  %1199 = load i32, ptr %106, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror_debug(i32 noundef %1199, ptr noundef nonnull @.str.4) #12
  %1201 = load i32, ptr %1183, align 4, !tbaa !5
  %1202 = call ptr @strerror(i32 noundef %1201) #12
  %1203 = load i32, ptr %1183, align 4, !tbaa !5
  %1204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1195, ptr noundef nonnull %.str.5.sink727, i32 noundef %1196, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 426, ptr noundef %1198, ptr noundef %1200, ptr noundef %1202, i32 noundef %1203) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1205:                                             ; preds = %1177
  %1206 = load i32, ptr @test_count, align 4, !tbaa !5
  %1207 = add nsw i32 %1206, 1
  store i32 %1207, ptr @test_count, align 4, !tbaa !5
  %1208 = load ptr, ptr %23, align 8, !tbaa !9
  %1209 = call i32 @s2n_connection_set_ctx(ptr noundef %1208, ptr noundef nonnull %22) #12
  %1210 = icmp eq i32 %1209, -1
  br i1 %1210, label %1211, label %1234

1211:                                             ; preds = %1205
  %1212 = tail call ptr @__errno_location() #13
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = call i32 @s2n_print_stacktrace(ptr noundef %1214) #12
  %1216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1217 = trunc nuw i8 %1216 to i1
  br i1 %1217, label %1218, label %1222

1218:                                             ; preds = %1211
  %1219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1220 = call i32 @fileno(ptr noundef %1219) #12
  %1221 = call i32 @isatty(i32 noundef %1220) #12
  %.not278 = icmp eq i32 %1221, 0
  br i1 %.not278, label %1222, label %1223

1222:                                             ; preds = %1218, %1211
  br label %1223

1223:                                             ; preds = %1218, %1222
  %.str.5.sink736 = phi ptr [ @.str.5, %1222 ], [ @.str.2, %1218 ]
  store i32 %1213, ptr %1212, align 4, !tbaa !5
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = load i32, ptr %106, align 4, !tbaa !5
  %1227 = call ptr @s2n_strerror(i32 noundef %1226, ptr noundef nonnull @.str.4) #12
  %1228 = load i32, ptr %106, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror_debug(i32 noundef %1228, ptr noundef nonnull @.str.4) #12
  %1230 = load i32, ptr %1212, align 4, !tbaa !5
  %1231 = call ptr @strerror(i32 noundef %1230) #12
  %1232 = load i32, ptr %1212, align 4, !tbaa !5
  %1233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1224, ptr noundef nonnull %.str.5.sink736, i32 noundef %1225, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %1227, ptr noundef %1229, ptr noundef %1231, i32 noundef %1232) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1234:                                             ; preds = %1205
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  store i64 0, ptr %24, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #12
  %1235 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1235, ptr %25, align 8, !tbaa !9
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = add nsw i32 %1236, 1
  store i32 %1237, ptr @test_count, align 4, !tbaa !5
  %1238 = icmp eq ptr %1235, null
  br i1 %1238, label %1239, label %1262

1239:                                             ; preds = %1234
  %1240 = tail call ptr @__errno_location() #13
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = call i32 @s2n_print_stacktrace(ptr noundef %1242) #12
  %1244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1245 = trunc nuw i8 %1244 to i1
  br i1 %1245, label %1246, label %1250

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

1250:                                             ; preds = %1246, %1239
  br label %1251

1251:                                             ; preds = %1246, %1250
  %.str.5.sink745 = phi ptr [ @.str.5, %1250 ], [ @.str.2, %1246 ]
  store i32 %1241, ptr %1240, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = load i32, ptr %106, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror(i32 noundef %1254, ptr noundef nonnull @.str.4) #12
  %1256 = load i32, ptr %106, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror_debug(i32 noundef %1256, ptr noundef nonnull @.str.4) #12
  %1258 = load i32, ptr %1240, align 4, !tbaa !5
  %1259 = call ptr @strerror(i32 noundef %1258) #12
  %1260 = load i32, ptr %1240, align 4, !tbaa !5
  %1261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1252, ptr noundef nonnull %.str.5.sink745, i32 noundef %1253, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 433, ptr noundef %1255, ptr noundef %1257, ptr noundef %1259, i32 noundef %1260) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1262:                                             ; preds = %1234
  %1263 = add nsw i32 %1236, 2
  store i32 %1263, ptr @test_count, align 4, !tbaa !5
  %1264 = load ptr, ptr %11, align 8, !tbaa !9
  %1265 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1235, ptr noundef %1264) #12
  %1266 = icmp eq i32 %1265, -1
  br i1 %1266, label %1267, label %1290

1267:                                             ; preds = %1262
  %1268 = tail call ptr @__errno_location() #13
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 @s2n_print_stacktrace(ptr noundef %1270) #12
  %1272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1273 = trunc nuw i8 %1272 to i1
  br i1 %1273, label %1274, label %1278

1274:                                             ; preds = %1267
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @fileno(ptr noundef %1275) #12
  %1277 = call i32 @isatty(i32 noundef %1276) #12
  %.not276 = icmp eq i32 %1277, 0
  br i1 %.not276, label %1278, label %1279

1278:                                             ; preds = %1274, %1267
  br label %1279

1279:                                             ; preds = %1274, %1278
  %.str.5.sink754 = phi ptr [ @.str.5, %1278 ], [ @.str.2, %1274 ]
  store i32 %1269, ptr %1268, align 4, !tbaa !5
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = load i32, ptr @test_count, align 4, !tbaa !5
  %1282 = load i32, ptr %106, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror(i32 noundef %1282, ptr noundef nonnull @.str.4) #12
  %1284 = load i32, ptr %106, align 4, !tbaa !5
  %1285 = call ptr @s2n_strerror_debug(i32 noundef %1284, ptr noundef nonnull @.str.4) #12
  %1286 = load i32, ptr %1268, align 4, !tbaa !5
  %1287 = call ptr @strerror(i32 noundef %1286) #12
  %1288 = load i32, ptr %1268, align 4, !tbaa !5
  %1289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1280, ptr noundef nonnull %.str.5.sink754, i32 noundef %1281, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %1283, ptr noundef %1285, ptr noundef %1287, i32 noundef %1288) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1290:                                             ; preds = %1262
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = add nsw i32 %1291, 1
  store i32 %1292, ptr @test_count, align 4, !tbaa !5
  %1293 = load ptr, ptr %25, align 8, !tbaa !9
  %1294 = call i32 @s2n_connection_set_ctx(ptr noundef %1293, ptr noundef nonnull %24) #12
  %1295 = icmp eq i32 %1294, -1
  br i1 %1295, label %1296, label %1319

1296:                                             ; preds = %1290
  %1297 = tail call ptr @__errno_location() #13
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = call i32 @s2n_print_stacktrace(ptr noundef %1299) #12
  %1301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1302 = trunc nuw i8 %1301 to i1
  br i1 %1302, label %1303, label %1307

1303:                                             ; preds = %1296
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = call i32 @fileno(ptr noundef %1304) #12
  %1306 = call i32 @isatty(i32 noundef %1305) #12
  %.not275 = icmp eq i32 %1306, 0
  br i1 %.not275, label %1307, label %1308

1307:                                             ; preds = %1303, %1296
  br label %1308

1308:                                             ; preds = %1303, %1307
  %.str.5.sink763 = phi ptr [ @.str.5, %1307 ], [ @.str.2, %1303 ]
  store i32 %1298, ptr %1297, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = load i32, ptr @test_count, align 4, !tbaa !5
  %1311 = load i32, ptr %106, align 4, !tbaa !5
  %1312 = call ptr @s2n_strerror(i32 noundef %1311, ptr noundef nonnull @.str.4) #12
  %1313 = load i32, ptr %106, align 4, !tbaa !5
  %1314 = call ptr @s2n_strerror_debug(i32 noundef %1313, ptr noundef nonnull @.str.4) #12
  %1315 = load i32, ptr %1297, align 4, !tbaa !5
  %1316 = call ptr @strerror(i32 noundef %1315) #12
  %1317 = load i32, ptr %1297, align 4, !tbaa !5
  %1318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1309, ptr noundef nonnull %.str.5.sink763, i32 noundef %1310, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %1312, ptr noundef %1314, ptr noundef %1316, i32 noundef %1317) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1319:                                             ; preds = %1290
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = add nsw i32 %1320, 1
  store i32 %1321, ptr @test_count, align 4, !tbaa !5
  %1322 = load ptr, ptr %25, align 8, !tbaa !9
  %1323 = call i32 @s2n_connection_set_blinding(ptr noundef %1322, i32 noundef 1) #12
  %1324 = icmp eq i32 %1323, -1
  br i1 %1324, label %1325, label %1348

1325:                                             ; preds = %1319
  %1326 = tail call ptr @__errno_location() #13
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = call i32 @s2n_print_stacktrace(ptr noundef %1328) #12
  %1330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1331 = trunc nuw i8 %1330 to i1
  br i1 %1331, label %1332, label %1336

1332:                                             ; preds = %1325
  %1333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1334 = call i32 @fileno(ptr noundef %1333) #12
  %1335 = call i32 @isatty(i32 noundef %1334) #12
  %.not274 = icmp eq i32 %1335, 0
  br i1 %.not274, label %1336, label %1337

1336:                                             ; preds = %1332, %1325
  br label %1337

1337:                                             ; preds = %1332, %1336
  %.str.5.sink772 = phi ptr [ @.str.5, %1336 ], [ @.str.2, %1332 ]
  store i32 %1327, ptr %1326, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = load i32, ptr %106, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror(i32 noundef %1340, ptr noundef nonnull @.str.4) #12
  %1342 = load i32, ptr %106, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror_debug(i32 noundef %1342, ptr noundef nonnull @.str.4) #12
  %1344 = load i32, ptr %1326, align 4, !tbaa !5
  %1345 = call ptr @strerror(i32 noundef %1344) #12
  %1346 = load i32, ptr %1326, align 4, !tbaa !5
  %1347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1338, ptr noundef nonnull %.str.5.sink772, i32 noundef %1339, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %1341, ptr noundef %1343, ptr noundef %1345, i32 noundef %1346) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1348:                                             ; preds = %1319
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #12
  %1349 = load i32, ptr @test_count, align 4, !tbaa !5
  %1350 = add nsw i32 %1349, 1
  store i32 %1350, ptr @test_count, align 4, !tbaa !5
  %1351 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %26) #12
  %1352 = icmp eq i32 %1351, -1
  br i1 %1352, label %1353, label %1376

1353:                                             ; preds = %1348
  %1354 = tail call ptr @__errno_location() #13
  %1355 = load i32, ptr %1354, align 4, !tbaa !5
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = call i32 @s2n_print_stacktrace(ptr noundef %1356) #12
  %1358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1359 = trunc nuw i8 %1358 to i1
  br i1 %1359, label %1360, label %1364

1360:                                             ; preds = %1353
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1362 = call i32 @fileno(ptr noundef %1361) #12
  %1363 = call i32 @isatty(i32 noundef %1362) #12
  %.not273 = icmp eq i32 %1363, 0
  br i1 %.not273, label %1364, label %1365

1364:                                             ; preds = %1360, %1353
  br label %1365

1365:                                             ; preds = %1360, %1364
  %.str.5.sink781 = phi ptr [ @.str.5, %1364 ], [ @.str.2, %1360 ]
  store i32 %1355, ptr %1354, align 4, !tbaa !5
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = load i32, ptr @test_count, align 4, !tbaa !5
  %1368 = load i32, ptr %106, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror(i32 noundef %1368, ptr noundef nonnull @.str.4) #12
  %1370 = load i32, ptr %106, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror_debug(i32 noundef %1370, ptr noundef nonnull @.str.4) #12
  %1372 = load i32, ptr %1354, align 4, !tbaa !5
  %1373 = call ptr @strerror(i32 noundef %1372) #12
  %1374 = load i32, ptr %1354, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1366, ptr noundef nonnull %.str.5.sink781, i32 noundef %1367, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %1369, ptr noundef %1371, ptr noundef %1373, i32 noundef %1374) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1376:                                             ; preds = %1348
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = add nsw i32 %1377, 1
  store i32 %1378, ptr @test_count, align 4, !tbaa !5
  %1379 = load ptr, ptr %23, align 8, !tbaa !9
  %1380 = load ptr, ptr %25, align 8, !tbaa !9
  %1381 = call i32 @s2n_connections_set_io_pair(ptr noundef %1379, ptr noundef %1380, ptr noundef nonnull %26) #12
  %1382 = icmp eq i32 %1381, -1
  br i1 %1382, label %1383, label %1406

1383:                                             ; preds = %1376
  %1384 = tail call ptr @__errno_location() #13
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = call i32 @s2n_print_stacktrace(ptr noundef %1386) #12
  %1388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1389 = trunc nuw i8 %1388 to i1
  br i1 %1389, label %1390, label %1394

1390:                                             ; preds = %1383
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @fileno(ptr noundef %1391) #12
  %1393 = call i32 @isatty(i32 noundef %1392) #12
  %.not272 = icmp eq i32 %1393, 0
  br i1 %.not272, label %1394, label %1395

1394:                                             ; preds = %1390, %1383
  br label %1395

1395:                                             ; preds = %1390, %1394
  %.str.5.sink790 = phi ptr [ @.str.5, %1394 ], [ @.str.2, %1390 ]
  store i32 %1385, ptr %1384, align 4, !tbaa !5
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = load i32, ptr @test_count, align 4, !tbaa !5
  %1398 = load i32, ptr %106, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror(i32 noundef %1398, ptr noundef nonnull @.str.4) #12
  %1400 = load i32, ptr %106, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror_debug(i32 noundef %1400, ptr noundef nonnull @.str.4) #12
  %1402 = load i32, ptr %1384, align 4, !tbaa !5
  %1403 = call ptr @strerror(i32 noundef %1402) #12
  %1404 = load i32, ptr %1384, align 4, !tbaa !5
  %1405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1396, ptr noundef nonnull %.str.5.sink790, i32 noundef %1397, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 440, ptr noundef %1399, ptr noundef %1401, ptr noundef %1403, i32 noundef %1404) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1406:                                             ; preds = %1376
  %1407 = icmp eq i8 %.0219363, 33
  %1408 = load i32, ptr @test_count, align 4, !tbaa !5
  %1409 = add nsw i32 %1408, 1
  store i32 %1409, ptr @test_count, align 4, !tbaa !5
  %1410 = load ptr, ptr %25, align 8, !tbaa !9
  %1411 = load ptr, ptr %23, align 8, !tbaa !9
  %1412 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1410, ptr noundef %1411) #12
  %1413 = icmp eq i32 %1412, -1
  br i1 %1407, label %1414, label %1438

1414:                                             ; preds = %1406
  br i1 %1413, label %1415, label %1547

1415:                                             ; preds = %1414
  %1416 = tail call ptr @__errno_location() #13
  %1417 = load i32, ptr %1416, align 4, !tbaa !5
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = call i32 @s2n_print_stacktrace(ptr noundef %1418) #12
  %1420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1421 = trunc nuw i8 %1420 to i1
  br i1 %1421, label %1422, label %1426

1422:                                             ; preds = %1415
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = call i32 @fileno(ptr noundef %1423) #12
  %1425 = call i32 @isatty(i32 noundef %1424) #12
  %.not271 = icmp eq i32 %1425, 0
  br i1 %.not271, label %1426, label %1427

1426:                                             ; preds = %1422, %1415
  br label %1427

1427:                                             ; preds = %1422, %1426
  %.str.5.sink799 = phi ptr [ @.str.5, %1426 ], [ @.str.2, %1422 ]
  store i32 %1417, ptr %1416, align 4, !tbaa !5
  %1428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1429 = load i32, ptr @test_count, align 4, !tbaa !5
  %1430 = load i32, ptr %106, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror(i32 noundef %1430, ptr noundef nonnull @.str.4) #12
  %1432 = load i32, ptr %106, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror_debug(i32 noundef %1432, ptr noundef nonnull @.str.4) #12
  %1434 = load i32, ptr %1416, align 4, !tbaa !5
  %1435 = call ptr @strerror(i32 noundef %1434) #12
  %1436 = load i32, ptr %1416, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1428, ptr noundef nonnull %.str.5.sink799, i32 noundef %1429, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %1431, ptr noundef %1433, ptr noundef %1435, i32 noundef %1436) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1438:                                             ; preds = %1406
  br i1 %1413, label %1462, label %1439

1439:                                             ; preds = %1438
  %1440 = tail call ptr @__errno_location() #13
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1443 = call i32 @s2n_print_stacktrace(ptr noundef %1442) #12
  %1444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1445 = trunc nuw i8 %1444 to i1
  br i1 %1445, label %1446, label %1450

1446:                                             ; preds = %1439
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = call i32 @fileno(ptr noundef %1447) #12
  %1449 = call i32 @isatty(i32 noundef %1448) #12
  %.not266 = icmp eq i32 %1449, 0
  br i1 %.not266, label %1450, label %1451

1450:                                             ; preds = %1446, %1439
  br label %1451

1451:                                             ; preds = %1446, %1450
  %.str.5.sink808 = phi ptr [ @.str.5, %1450 ], [ @.str.2, %1446 ]
  store i32 %1441, ptr %1440, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = load i32, ptr @test_count, align 4, !tbaa !5
  %1454 = load i32, ptr %106, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror(i32 noundef %1454, ptr noundef nonnull @.str.4) #12
  %1456 = load i32, ptr %106, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror_debug(i32 noundef %1456, ptr noundef nonnull @.str.4) #12
  %1458 = load i32, ptr %1440, align 4, !tbaa !5
  %1459 = call ptr @strerror(i32 noundef %1458) #12
  %1460 = load i32, ptr %1440, align 4, !tbaa !5
  %1461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1452, ptr noundef nonnull %.str.5.sink808, i32 noundef %1453, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %1455, ptr noundef %1457, ptr noundef %1459, i32 noundef %1460) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1462:                                             ; preds = %1438
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = add nsw i32 %1463, 1
  store i32 %1464, ptr @test_count, align 4, !tbaa !5
  %1465 = load i32, ptr %106, align 4, !tbaa !5
  %1466 = icmp eq i32 %1465, 335544321
  br i1 %1466, label %1490, label %1467

1467:                                             ; preds = %1462
  %1468 = tail call ptr @__errno_location() #13
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1471 = call i32 @s2n_print_stacktrace(ptr noundef %1470) #12
  %1472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1473 = trunc nuw i8 %1472 to i1
  br i1 %1473, label %1474, label %1478

1474:                                             ; preds = %1467
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @fileno(ptr noundef %1475) #12
  %1477 = call i32 @isatty(i32 noundef %1476) #12
  %.not267 = icmp eq i32 %1477, 0
  br i1 %.not267, label %1478, label %1479

1478:                                             ; preds = %1474, %1467
  br label %1479

1479:                                             ; preds = %1474, %1478
  %.str.5.sink817 = phi ptr [ @.str.5, %1478 ], [ @.str.2, %1474 ]
  store i32 %1469, ptr %1468, align 4, !tbaa !5
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = load i32, ptr %106, align 4, !tbaa !5
  %1483 = call ptr @s2n_strerror(i32 noundef %1482, ptr noundef nonnull @.str.4) #12
  %1484 = load i32, ptr %106, align 4, !tbaa !5
  %1485 = call ptr @s2n_strerror_debug(i32 noundef %1484, ptr noundef nonnull @.str.4) #12
  %1486 = load i32, ptr %1468, align 4, !tbaa !5
  %1487 = call ptr @strerror(i32 noundef %1486) #12
  %1488 = load i32, ptr %1468, align 4, !tbaa !5
  %1489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1480, ptr noundef nonnull %.str.5.sink817, i32 noundef %1481, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %1483, ptr noundef %1485, ptr noundef %1487, i32 noundef %1488) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1490:                                             ; preds = %1462
  %1491 = add nsw i32 %1463, 2
  store i32 %1491, ptr @test_count, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror_debug(i32 noundef 335544321, ptr noundef nonnull @.str.4) #12
  %1493 = icmp eq ptr %1492, null
  br i1 %1493, label %1494, label %1517

1494:                                             ; preds = %1490
  %1495 = tail call ptr @__errno_location() #13
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = call i32 @s2n_print_stacktrace(ptr noundef %1497) #12
  %1499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1500 = trunc nuw i8 %1499 to i1
  br i1 %1500, label %1501, label %1505

1501:                                             ; preds = %1494
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = call i32 @fileno(ptr noundef %1502) #12
  %1504 = call i32 @isatty(i32 noundef %1503) #12
  %.not269 = icmp eq i32 %1504, 0
  br i1 %.not269, label %1505, label %1506

1505:                                             ; preds = %1501, %1494
  br label %1506

1506:                                             ; preds = %1501, %1505
  %.str.5.sink826 = phi ptr [ @.str.5, %1505 ], [ @.str.2, %1501 ]
  store i32 %1496, ptr %1495, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = load i32, ptr %106, align 4, !tbaa !5
  %1510 = call ptr @s2n_strerror(i32 noundef %1509, ptr noundef nonnull @.str.4) #12
  %1511 = load i32, ptr %106, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror_debug(i32 noundef %1511, ptr noundef nonnull @.str.4) #12
  %1513 = load i32, ptr %1495, align 4, !tbaa !5
  %1514 = call ptr @strerror(i32 noundef %1513) #12
  %1515 = load i32, ptr %1495, align 4, !tbaa !5
  %1516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1507, ptr noundef nonnull %.str.5.sink826, i32 noundef %1508, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %1510, ptr noundef %1512, ptr noundef %1514, i32 noundef %1515) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1517:                                             ; preds = %1490
  %1518 = load i32, ptr @test_count, align 4, !tbaa !5
  %1519 = add nsw i32 %1518, 1
  store i32 %1519, ptr @test_count, align 4, !tbaa !5
  %1520 = load i32, ptr %106, align 4, !tbaa !5
  %1521 = call ptr @s2n_strerror_source(i32 noundef %1520) #12
  %1522 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1521, ptr noundef nonnull dereferenceable(1) %1090) #16
  %1523 = icmp eq i32 %1522, 0
  br i1 %1523, label %1547, label %1524

1524:                                             ; preds = %1517
  %1525 = tail call ptr @__errno_location() #13
  %1526 = load i32, ptr %1525, align 4, !tbaa !5
  %1527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1528 = call i32 @s2n_print_stacktrace(ptr noundef %1527) #12
  %1529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1530 = trunc nuw i8 %1529 to i1
  br i1 %1530, label %1531, label %1535

1531:                                             ; preds = %1524
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = call i32 @fileno(ptr noundef %1532) #12
  %1534 = call i32 @isatty(i32 noundef %1533) #12
  %.not268 = icmp eq i32 %1534, 0
  br i1 %.not268, label %1535, label %1536

1535:                                             ; preds = %1531, %1524
  br label %1536

1536:                                             ; preds = %1531, %1535
  %.str.5.sink835 = phi ptr [ @.str.5, %1535 ], [ @.str.2, %1531 ]
  store i32 %1526, ptr %1525, align 4, !tbaa !5
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = load i32, ptr @test_count, align 4, !tbaa !5
  %1539 = load i32, ptr %106, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror(i32 noundef %1539, ptr noundef nonnull @.str.4) #12
  %1541 = load i32, ptr %106, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror_debug(i32 noundef %1541, ptr noundef nonnull @.str.4) #12
  %1543 = load i32, ptr %1525, align 4, !tbaa !5
  %1544 = call ptr @strerror(i32 noundef %1543) #12
  %1545 = load i32, ptr %1525, align 4, !tbaa !5
  %1546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1537, ptr noundef nonnull %.str.5.sink835, i32 noundef %1538, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 447, ptr noundef %1540, ptr noundef %1542, ptr noundef %1544, i32 noundef %1545) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1547:                                             ; preds = %1414, %1517
  %1548 = load i32, ptr @test_count, align 4, !tbaa !5
  %1549 = add nsw i32 %1548, 1
  store i32 %1549, ptr @test_count, align 4, !tbaa !5
  %1550 = call i32 @s2n_validate_test_async_pkey_ctx(ptr noundef nonnull %24, i32 noundef %423)
  %1551 = call zeroext i1 @s2n_result_is_ok(i32 %1550)
  br i1 %1551, label %1575, label %1552

1552:                                             ; preds = %1547
  %1553 = tail call ptr @__errno_location() #13
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = call i32 @s2n_print_stacktrace(ptr noundef %1555) #12
  %1557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1558 = trunc nuw i8 %1557 to i1
  br i1 %1558, label %1559, label %1563

1559:                                             ; preds = %1552
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @fileno(ptr noundef %1560) #12
  %1562 = call i32 @isatty(i32 noundef %1561) #12
  %.not270 = icmp eq i32 %1562, 0
  br i1 %.not270, label %1563, label %1564

1563:                                             ; preds = %1559, %1552
  br label %1564

1564:                                             ; preds = %1559, %1563
  %.str.5.sink844 = phi ptr [ @.str.5, %1563 ], [ @.str.2, %1559 ]
  store i32 %1554, ptr %1553, align 4, !tbaa !5
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = load i32, ptr %106, align 4, !tbaa !5
  %1568 = call ptr @s2n_strerror(i32 noundef %1567, ptr noundef nonnull @.str.4) #12
  %1569 = load i32, ptr %106, align 4, !tbaa !5
  %1570 = call ptr @s2n_strerror_debug(i32 noundef %1569, ptr noundef nonnull @.str.4) #12
  %1571 = load i32, ptr %1553, align 4, !tbaa !5
  %1572 = call ptr @strerror(i32 noundef %1571) #12
  %1573 = load i32, ptr %1553, align 4, !tbaa !5
  %1574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1565, ptr noundef nonnull %.str.5.sink844, i32 noundef %1566, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 450, ptr noundef %1568, ptr noundef %1570, ptr noundef %1572, i32 noundef %1573) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1575:                                             ; preds = %1547
  %1576 = call i32 @s2n_io_pair_close(ptr noundef nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #12
  %1577 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %1578 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %22) #12
  %1579 = add nuw nsw i8 %.0219363, 1
  %exitcond368.not = icmp eq i8 %1579, 44
  br i1 %exitcond368.not, label %.preheader313, label %1149, !llvm.loop !43

.preheader:                                       ; preds = %2006
  %1580 = load i32, ptr %4, align 4, !tbaa !5
  %.not367 = icmp eq i32 %1580, 48
  br i1 %.not367, label %._crit_edge, label %.lr.ph

.preheader313:                                    ; preds = %1575, %2006
  %.0220364 = phi i32 [ %2010, %2006 ], [ 0, %1575 ]
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %27) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %27, i8 0, i64 20, i1 false)
  store i8 1, ptr %27, align 4, !tbaa !44
  store i32 %.0220364, ptr %109, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #12
  %1581 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1581, ptr %28, align 8, !tbaa !9
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = add nsw i32 %1582, 1
  store i32 %1583, ptr @test_count, align 4, !tbaa !5
  %1584 = icmp eq ptr %1581, null
  br i1 %1584, label %1585, label %1608

1585:                                             ; preds = %.preheader313
  %1586 = tail call ptr @__errno_location() #13
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @s2n_print_stacktrace(ptr noundef %1588) #12
  %1590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1591 = trunc nuw i8 %1590 to i1
  br i1 %1591, label %1592, label %1596

1592:                                             ; preds = %1585
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @fileno(ptr noundef %1593) #12
  %1595 = call i32 @isatty(i32 noundef %1594) #12
  %.not265 = icmp eq i32 %1595, 0
  br i1 %.not265, label %1596, label %1597

1596:                                             ; preds = %1592, %1585
  br label %1597

1597:                                             ; preds = %1592, %1596
  %.str.5.sink853 = phi ptr [ @.str.5, %1596 ], [ @.str.2, %1592 ]
  store i32 %1587, ptr %1586, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = load i32, ptr %106, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror(i32 noundef %1600, ptr noundef nonnull @.str.4) #12
  %1602 = load i32, ptr %106, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror_debug(i32 noundef %1602, ptr noundef nonnull @.str.4) #12
  %1604 = load i32, ptr %1586, align 4, !tbaa !5
  %1605 = call ptr @strerror(i32 noundef %1604) #12
  %1606 = load i32, ptr %1586, align 4, !tbaa !5
  %1607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1598, ptr noundef nonnull %.str.5.sink853, i32 noundef %1599, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 462, ptr noundef %1601, ptr noundef %1603, ptr noundef %1605, i32 noundef %1606) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1608:                                             ; preds = %.preheader313
  %1609 = add nsw i32 %1582, 2
  store i32 %1609, ptr @test_count, align 4, !tbaa !5
  %1610 = load ptr, ptr %10, align 8, !tbaa !9
  %1611 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1581, ptr noundef %1610) #12
  %1612 = icmp eq i32 %1611, -1
  br i1 %1612, label %1613, label %1636

1613:                                             ; preds = %1608
  %1614 = tail call ptr @__errno_location() #13
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = call i32 @s2n_print_stacktrace(ptr noundef %1616) #12
  %1618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1619 = trunc nuw i8 %1618 to i1
  br i1 %1619, label %1620, label %1624

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

1624:                                             ; preds = %1620, %1613
  br label %1625

1625:                                             ; preds = %1620, %1624
  %.str.5.sink862 = phi ptr [ @.str.5, %1624 ], [ @.str.2, %1620 ]
  store i32 %1615, ptr %1614, align 4, !tbaa !5
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = load i32, ptr @test_count, align 4, !tbaa !5
  %1628 = load i32, ptr %106, align 4, !tbaa !5
  %1629 = call ptr @s2n_strerror(i32 noundef %1628, ptr noundef nonnull @.str.4) #12
  %1630 = load i32, ptr %106, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror_debug(i32 noundef %1630, ptr noundef nonnull @.str.4) #12
  %1632 = load i32, ptr %1614, align 4, !tbaa !5
  %1633 = call ptr @strerror(i32 noundef %1632) #12
  %1634 = load i32, ptr %1614, align 4, !tbaa !5
  %1635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1626, ptr noundef nonnull %.str.5.sink862, i32 noundef %1627, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 463, ptr noundef %1629, ptr noundef %1631, ptr noundef %1633, i32 noundef %1634) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1636:                                             ; preds = %1608
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %1638 = add nsw i32 %1637, 1
  store i32 %1638, ptr @test_count, align 4, !tbaa !5
  %1639 = load ptr, ptr %28, align 8, !tbaa !9
  %1640 = call i32 @s2n_connection_set_ctx(ptr noundef %1639, ptr noundef nonnull %27) #12
  %1641 = icmp eq i32 %1640, -1
  br i1 %1641, label %1642, label %1665

1642:                                             ; preds = %1636
  %1643 = tail call ptr @__errno_location() #13
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = call i32 @s2n_print_stacktrace(ptr noundef %1645) #12
  %1647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1648 = trunc nuw i8 %1647 to i1
  br i1 %1648, label %1649, label %1653

1649:                                             ; preds = %1642
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = call i32 @fileno(ptr noundef %1650) #12
  %1652 = call i32 @isatty(i32 noundef %1651) #12
  %.not263 = icmp eq i32 %1652, 0
  br i1 %.not263, label %1653, label %1654

1653:                                             ; preds = %1649, %1642
  br label %1654

1654:                                             ; preds = %1649, %1653
  %.str.5.sink871 = phi ptr [ @.str.5, %1653 ], [ @.str.2, %1649 ]
  store i32 %1644, ptr %1643, align 4, !tbaa !5
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = load i32, ptr %106, align 4, !tbaa !5
  %1658 = call ptr @s2n_strerror(i32 noundef %1657, ptr noundef nonnull @.str.4) #12
  %1659 = load i32, ptr %106, align 4, !tbaa !5
  %1660 = call ptr @s2n_strerror_debug(i32 noundef %1659, ptr noundef nonnull @.str.4) #12
  %1661 = load i32, ptr %1643, align 4, !tbaa !5
  %1662 = call ptr @strerror(i32 noundef %1661) #12
  %1663 = load i32, ptr %1643, align 4, !tbaa !5
  %1664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1655, ptr noundef nonnull %.str.5.sink871, i32 noundef %1656, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 464, ptr noundef %1658, ptr noundef %1660, ptr noundef %1662, i32 noundef %1663) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1665:                                             ; preds = %1636
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  store i64 0, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %1666 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1666, ptr %30, align 8, !tbaa !9
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = add nsw i32 %1667, 1
  store i32 %1668, ptr @test_count, align 4, !tbaa !5
  %1669 = icmp eq ptr %1666, null
  br i1 %1669, label %1670, label %1693

1670:                                             ; preds = %1665
  %1671 = tail call ptr @__errno_location() #13
  %1672 = load i32, ptr %1671, align 4, !tbaa !5
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = call i32 @s2n_print_stacktrace(ptr noundef %1673) #12
  %1675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1676 = trunc nuw i8 %1675 to i1
  br i1 %1676, label %1677, label %1681

1677:                                             ; preds = %1670
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = call i32 @fileno(ptr noundef %1678) #12
  %1680 = call i32 @isatty(i32 noundef %1679) #12
  %.not262 = icmp eq i32 %1680, 0
  br i1 %.not262, label %1681, label %1682

1681:                                             ; preds = %1677, %1670
  br label %1682

1682:                                             ; preds = %1677, %1681
  %.str.5.sink880 = phi ptr [ @.str.5, %1681 ], [ @.str.2, %1677 ]
  store i32 %1672, ptr %1671, align 4, !tbaa !5
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = load i32, ptr %106, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror(i32 noundef %1685, ptr noundef nonnull @.str.4) #12
  %1687 = load i32, ptr %106, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror_debug(i32 noundef %1687, ptr noundef nonnull @.str.4) #12
  %1689 = load i32, ptr %1671, align 4, !tbaa !5
  %1690 = call ptr @strerror(i32 noundef %1689) #12
  %1691 = load i32, ptr %1671, align 4, !tbaa !5
  %1692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1683, ptr noundef nonnull %.str.5.sink880, i32 noundef %1684, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 470, ptr noundef %1686, ptr noundef %1688, ptr noundef %1690, i32 noundef %1691) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1693:                                             ; preds = %1665
  %1694 = add nsw i32 %1667, 2
  store i32 %1694, ptr @test_count, align 4, !tbaa !5
  %1695 = load ptr, ptr %11, align 8, !tbaa !9
  %1696 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1666, ptr noundef %1695) #12
  %1697 = icmp eq i32 %1696, -1
  br i1 %1697, label %1698, label %1721

1698:                                             ; preds = %1693
  %1699 = tail call ptr @__errno_location() #13
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @s2n_print_stacktrace(ptr noundef %1701) #12
  %1703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1704 = trunc nuw i8 %1703 to i1
  br i1 %1704, label %1705, label %1709

1705:                                             ; preds = %1698
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = call i32 @fileno(ptr noundef %1706) #12
  %1708 = call i32 @isatty(i32 noundef %1707) #12
  %.not261 = icmp eq i32 %1708, 0
  br i1 %.not261, label %1709, label %1710

1709:                                             ; preds = %1705, %1698
  br label %1710

1710:                                             ; preds = %1705, %1709
  %.str.5.sink889 = phi ptr [ @.str.5, %1709 ], [ @.str.2, %1705 ]
  store i32 %1700, ptr %1699, align 4, !tbaa !5
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = load i32, ptr %106, align 4, !tbaa !5
  %1714 = call ptr @s2n_strerror(i32 noundef %1713, ptr noundef nonnull @.str.4) #12
  %1715 = load i32, ptr %106, align 4, !tbaa !5
  %1716 = call ptr @s2n_strerror_debug(i32 noundef %1715, ptr noundef nonnull @.str.4) #12
  %1717 = load i32, ptr %1699, align 4, !tbaa !5
  %1718 = call ptr @strerror(i32 noundef %1717) #12
  %1719 = load i32, ptr %1699, align 4, !tbaa !5
  %1720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1711, ptr noundef nonnull %.str.5.sink889, i32 noundef %1712, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 471, ptr noundef %1714, ptr noundef %1716, ptr noundef %1718, i32 noundef %1719) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1721:                                             ; preds = %1693
  %1722 = load i32, ptr @test_count, align 4, !tbaa !5
  %1723 = add nsw i32 %1722, 1
  store i32 %1723, ptr @test_count, align 4, !tbaa !5
  %1724 = load ptr, ptr %30, align 8, !tbaa !9
  %1725 = call i32 @s2n_connection_set_ctx(ptr noundef %1724, ptr noundef nonnull %29) #12
  %1726 = icmp eq i32 %1725, -1
  br i1 %1726, label %1727, label %1750

1727:                                             ; preds = %1721
  %1728 = tail call ptr @__errno_location() #13
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = call i32 @s2n_print_stacktrace(ptr noundef %1730) #12
  %1732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1733 = trunc nuw i8 %1732 to i1
  br i1 %1733, label %1734, label %1738

1734:                                             ; preds = %1727
  %1735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1736 = call i32 @fileno(ptr noundef %1735) #12
  %1737 = call i32 @isatty(i32 noundef %1736) #12
  %.not260 = icmp eq i32 %1737, 0
  br i1 %.not260, label %1738, label %1739

1738:                                             ; preds = %1734, %1727
  br label %1739

1739:                                             ; preds = %1734, %1738
  %.str.5.sink898 = phi ptr [ @.str.5, %1738 ], [ @.str.2, %1734 ]
  store i32 %1729, ptr %1728, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = load i32, ptr %106, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror(i32 noundef %1742, ptr noundef nonnull @.str.4) #12
  %1744 = load i32, ptr %106, align 4, !tbaa !5
  %1745 = call ptr @s2n_strerror_debug(i32 noundef %1744, ptr noundef nonnull @.str.4) #12
  %1746 = load i32, ptr %1728, align 4, !tbaa !5
  %1747 = call ptr @strerror(i32 noundef %1746) #12
  %1748 = load i32, ptr %1728, align 4, !tbaa !5
  %1749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1740, ptr noundef nonnull %.str.5.sink898, i32 noundef %1741, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %1743, ptr noundef %1745, ptr noundef %1747, i32 noundef %1748) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1750:                                             ; preds = %1721
  %1751 = load i32, ptr @test_count, align 4, !tbaa !5
  %1752 = add nsw i32 %1751, 1
  store i32 %1752, ptr @test_count, align 4, !tbaa !5
  %1753 = load ptr, ptr %30, align 8, !tbaa !9
  %1754 = call i32 @s2n_connection_set_blinding(ptr noundef %1753, i32 noundef 1) #12
  %1755 = icmp eq i32 %1754, -1
  br i1 %1755, label %1756, label %1779

1756:                                             ; preds = %1750
  %1757 = tail call ptr @__errno_location() #13
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1760 = call i32 @s2n_print_stacktrace(ptr noundef %1759) #12
  %1761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1762 = trunc nuw i8 %1761 to i1
  br i1 %1762, label %1763, label %1767

1763:                                             ; preds = %1756
  %1764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1765 = call i32 @fileno(ptr noundef %1764) #12
  %1766 = call i32 @isatty(i32 noundef %1765) #12
  %.not259 = icmp eq i32 %1766, 0
  br i1 %.not259, label %1767, label %1768

1767:                                             ; preds = %1763, %1756
  br label %1768

1768:                                             ; preds = %1763, %1767
  %.str.5.sink907 = phi ptr [ @.str.5, %1767 ], [ @.str.2, %1763 ]
  store i32 %1758, ptr %1757, align 4, !tbaa !5
  %1769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1770 = load i32, ptr @test_count, align 4, !tbaa !5
  %1771 = load i32, ptr %106, align 4, !tbaa !5
  %1772 = call ptr @s2n_strerror(i32 noundef %1771, ptr noundef nonnull @.str.4) #12
  %1773 = load i32, ptr %106, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror_debug(i32 noundef %1773, ptr noundef nonnull @.str.4) #12
  %1775 = load i32, ptr %1757, align 4, !tbaa !5
  %1776 = call ptr @strerror(i32 noundef %1775) #12
  %1777 = load i32, ptr %1757, align 4, !tbaa !5
  %1778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1769, ptr noundef nonnull %.str.5.sink907, i32 noundef %1770, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %1772, ptr noundef %1774, ptr noundef %1776, i32 noundef %1777) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1779:                                             ; preds = %1750
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #12
  %1780 = load i32, ptr @test_count, align 4, !tbaa !5
  %1781 = add nsw i32 %1780, 1
  store i32 %1781, ptr @test_count, align 4, !tbaa !5
  %1782 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %31) #12
  %1783 = icmp eq i32 %1782, -1
  br i1 %1783, label %1784, label %1807

1784:                                             ; preds = %1779
  %1785 = tail call ptr @__errno_location() #13
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = call i32 @s2n_print_stacktrace(ptr noundef %1787) #12
  %1789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1790 = trunc nuw i8 %1789 to i1
  br i1 %1790, label %1791, label %1795

1791:                                             ; preds = %1784
  %1792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1793 = call i32 @fileno(ptr noundef %1792) #12
  %1794 = call i32 @isatty(i32 noundef %1793) #12
  %.not258 = icmp eq i32 %1794, 0
  br i1 %.not258, label %1795, label %1796

1795:                                             ; preds = %1791, %1784
  br label %1796

1796:                                             ; preds = %1791, %1795
  %.str.5.sink916 = phi ptr [ @.str.5, %1795 ], [ @.str.2, %1791 ]
  store i32 %1786, ptr %1785, align 4, !tbaa !5
  %1797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1798 = load i32, ptr @test_count, align 4, !tbaa !5
  %1799 = load i32, ptr %106, align 4, !tbaa !5
  %1800 = call ptr @s2n_strerror(i32 noundef %1799, ptr noundef nonnull @.str.4) #12
  %1801 = load i32, ptr %106, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror_debug(i32 noundef %1801, ptr noundef nonnull @.str.4) #12
  %1803 = load i32, ptr %1785, align 4, !tbaa !5
  %1804 = call ptr @strerror(i32 noundef %1803) #12
  %1805 = load i32, ptr %1785, align 4, !tbaa !5
  %1806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1797, ptr noundef nonnull %.str.5.sink916, i32 noundef %1798, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 476, ptr noundef %1800, ptr noundef %1802, ptr noundef %1804, i32 noundef %1805) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1807:                                             ; preds = %1779
  %1808 = load i32, ptr @test_count, align 4, !tbaa !5
  %1809 = add nsw i32 %1808, 1
  store i32 %1809, ptr @test_count, align 4, !tbaa !5
  %1810 = load ptr, ptr %28, align 8, !tbaa !9
  %1811 = load ptr, ptr %30, align 8, !tbaa !9
  %1812 = call i32 @s2n_connections_set_io_pair(ptr noundef %1810, ptr noundef %1811, ptr noundef nonnull %31) #12
  %1813 = icmp eq i32 %1812, -1
  br i1 %1813, label %1814, label %1837

1814:                                             ; preds = %1807
  %1815 = tail call ptr @__errno_location() #13
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = call i32 @s2n_print_stacktrace(ptr noundef %1817) #12
  %1819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1820 = trunc nuw i8 %1819 to i1
  br i1 %1820, label %1821, label %1825

1821:                                             ; preds = %1814
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = call i32 @fileno(ptr noundef %1822) #12
  %1824 = call i32 @isatty(i32 noundef %1823) #12
  %.not257 = icmp eq i32 %1824, 0
  br i1 %.not257, label %1825, label %1826

1825:                                             ; preds = %1821, %1814
  br label %1826

1826:                                             ; preds = %1821, %1825
  %.str.5.sink925 = phi ptr [ @.str.5, %1825 ], [ @.str.2, %1821 ]
  store i32 %1816, ptr %1815, align 4, !tbaa !5
  %1827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1828 = load i32, ptr @test_count, align 4, !tbaa !5
  %1829 = load i32, ptr %106, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror(i32 noundef %1829, ptr noundef nonnull @.str.4) #12
  %1831 = load i32, ptr %106, align 4, !tbaa !5
  %1832 = call ptr @s2n_strerror_debug(i32 noundef %1831, ptr noundef nonnull @.str.4) #12
  %1833 = load i32, ptr %1815, align 4, !tbaa !5
  %1834 = call ptr @strerror(i32 noundef %1833) #12
  %1835 = load i32, ptr %1815, align 4, !tbaa !5
  %1836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1827, ptr noundef nonnull %.str.5.sink925, i32 noundef %1828, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %1830, ptr noundef %1832, ptr noundef %1834, i32 noundef %1835) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1837:                                             ; preds = %1807
  %1838 = icmp eq i32 %.0220364, 48
  %1839 = load i32, ptr @test_count, align 4, !tbaa !5
  %1840 = add nsw i32 %1839, 1
  store i32 %1840, ptr @test_count, align 4, !tbaa !5
  %1841 = load ptr, ptr %30, align 8, !tbaa !9
  %1842 = load ptr, ptr %28, align 8, !tbaa !9
  %1843 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1841, ptr noundef %1842) #12
  %1844 = icmp eq i32 %1843, -1
  br i1 %1838, label %1845, label %1869

1845:                                             ; preds = %1837
  br i1 %1844, label %1846, label %1978

1846:                                             ; preds = %1845
  %1847 = tail call ptr @__errno_location() #13
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  %1849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1850 = call i32 @s2n_print_stacktrace(ptr noundef %1849) #12
  %1851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1852 = trunc nuw i8 %1851 to i1
  br i1 %1852, label %1853, label %1857

1853:                                             ; preds = %1846
  %1854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1855 = call i32 @fileno(ptr noundef %1854) #12
  %1856 = call i32 @isatty(i32 noundef %1855) #12
  %.not256 = icmp eq i32 %1856, 0
  br i1 %.not256, label %1857, label %1858

1857:                                             ; preds = %1853, %1846
  br label %1858

1858:                                             ; preds = %1853, %1857
  %.str.5.sink934 = phi ptr [ @.str.5, %1857 ], [ @.str.2, %1853 ]
  store i32 %1848, ptr %1847, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = load i32, ptr @test_count, align 4, !tbaa !5
  %1861 = load i32, ptr %106, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef nonnull @.str.4) #12
  %1863 = load i32, ptr %106, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror_debug(i32 noundef %1863, ptr noundef nonnull @.str.4) #12
  %1865 = load i32, ptr %1847, align 4, !tbaa !5
  %1866 = call ptr @strerror(i32 noundef %1865) #12
  %1867 = load i32, ptr %1847, align 4, !tbaa !5
  %1868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1859, ptr noundef nonnull %.str.5.sink934, i32 noundef %1860, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %1862, ptr noundef %1864, ptr noundef %1866, i32 noundef %1867) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1869:                                             ; preds = %1837
  br i1 %1844, label %1893, label %1870

1870:                                             ; preds = %1869
  %1871 = tail call ptr @__errno_location() #13
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = call i32 @s2n_print_stacktrace(ptr noundef %1873) #12
  %1875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1876 = trunc nuw i8 %1875 to i1
  br i1 %1876, label %1877, label %1881

1877:                                             ; preds = %1870
  %1878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1879 = call i32 @fileno(ptr noundef %1878) #12
  %1880 = call i32 @isatty(i32 noundef %1879) #12
  %.not251 = icmp eq i32 %1880, 0
  br i1 %.not251, label %1881, label %1882

1881:                                             ; preds = %1877, %1870
  br label %1882

1882:                                             ; preds = %1877, %1881
  %.str.5.sink943 = phi ptr [ @.str.5, %1881 ], [ @.str.2, %1877 ]
  store i32 %1872, ptr %1871, align 4, !tbaa !5
  %1883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1884 = load i32, ptr @test_count, align 4, !tbaa !5
  %1885 = load i32, ptr %106, align 4, !tbaa !5
  %1886 = call ptr @s2n_strerror(i32 noundef %1885, ptr noundef nonnull @.str.4) #12
  %1887 = load i32, ptr %106, align 4, !tbaa !5
  %1888 = call ptr @s2n_strerror_debug(i32 noundef %1887, ptr noundef nonnull @.str.4) #12
  %1889 = load i32, ptr %1871, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #12
  %1891 = load i32, ptr %1871, align 4, !tbaa !5
  %1892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1883, ptr noundef nonnull %.str.5.sink943, i32 noundef %1884, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %1886, ptr noundef %1888, ptr noundef %1890, i32 noundef %1891) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1893:                                             ; preds = %1869
  %1894 = load i32, ptr @test_count, align 4, !tbaa !5
  %1895 = add nsw i32 %1894, 1
  store i32 %1895, ptr @test_count, align 4, !tbaa !5
  %1896 = load i32, ptr %106, align 4, !tbaa !5
  %1897 = icmp eq i32 %1896, 335544321
  br i1 %1897, label %1921, label %1898

1898:                                             ; preds = %1893
  %1899 = tail call ptr @__errno_location() #13
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1902 = call i32 @s2n_print_stacktrace(ptr noundef %1901) #12
  %1903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1904 = trunc nuw i8 %1903 to i1
  br i1 %1904, label %1905, label %1909

1905:                                             ; preds = %1898
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = call i32 @fileno(ptr noundef %1906) #12
  %1908 = call i32 @isatty(i32 noundef %1907) #12
  %.not252 = icmp eq i32 %1908, 0
  br i1 %.not252, label %1909, label %1910

1909:                                             ; preds = %1905, %1898
  br label %1910

1910:                                             ; preds = %1905, %1909
  %.str.5.sink952 = phi ptr [ @.str.5, %1909 ], [ @.str.2, %1905 ]
  store i32 %1900, ptr %1899, align 4, !tbaa !5
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = load i32, ptr @test_count, align 4, !tbaa !5
  %1913 = load i32, ptr %106, align 4, !tbaa !5
  %1914 = call ptr @s2n_strerror(i32 noundef %1913, ptr noundef nonnull @.str.4) #12
  %1915 = load i32, ptr %106, align 4, !tbaa !5
  %1916 = call ptr @s2n_strerror_debug(i32 noundef %1915, ptr noundef nonnull @.str.4) #12
  %1917 = load i32, ptr %1899, align 4, !tbaa !5
  %1918 = call ptr @strerror(i32 noundef %1917) #12
  %1919 = load i32, ptr %1899, align 4, !tbaa !5
  %1920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1911, ptr noundef nonnull %.str.5.sink952, i32 noundef %1912, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %1914, ptr noundef %1916, ptr noundef %1918, i32 noundef %1919) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1921:                                             ; preds = %1893
  %1922 = add nsw i32 %1894, 2
  store i32 %1922, ptr @test_count, align 4, !tbaa !5
  %1923 = call ptr @s2n_strerror_debug(i32 noundef 335544321, ptr noundef nonnull @.str.4) #12
  %1924 = icmp eq ptr %1923, null
  br i1 %1924, label %1925, label %1948

1925:                                             ; preds = %1921
  %1926 = tail call ptr @__errno_location() #13
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = call i32 @s2n_print_stacktrace(ptr noundef %1928) #12
  %1930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1931 = trunc nuw i8 %1930 to i1
  br i1 %1931, label %1932, label %1936

1932:                                             ; preds = %1925
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = call i32 @fileno(ptr noundef %1933) #12
  %1935 = call i32 @isatty(i32 noundef %1934) #12
  %.not254 = icmp eq i32 %1935, 0
  br i1 %.not254, label %1936, label %1937

1936:                                             ; preds = %1932, %1925
  br label %1937

1937:                                             ; preds = %1932, %1936
  %.str.5.sink961 = phi ptr [ @.str.5, %1936 ], [ @.str.2, %1932 ]
  store i32 %1927, ptr %1926, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = load i32, ptr @test_count, align 4, !tbaa !5
  %1940 = load i32, ptr %106, align 4, !tbaa !5
  %1941 = call ptr @s2n_strerror(i32 noundef %1940, ptr noundef nonnull @.str.4) #12
  %1942 = load i32, ptr %106, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror_debug(i32 noundef %1942, ptr noundef nonnull @.str.4) #12
  %1944 = load i32, ptr %1926, align 4, !tbaa !5
  %1945 = call ptr @strerror(i32 noundef %1944) #12
  %1946 = load i32, ptr %1926, align 4, !tbaa !5
  %1947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1938, ptr noundef nonnull %.str.5.sink961, i32 noundef %1939, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %1941, ptr noundef %1943, ptr noundef %1945, i32 noundef %1946) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1948:                                             ; preds = %1921
  %1949 = load i32, ptr @test_count, align 4, !tbaa !5
  %1950 = add nsw i32 %1949, 1
  store i32 %1950, ptr @test_count, align 4, !tbaa !5
  %1951 = load i32, ptr %106, align 4, !tbaa !5
  %1952 = call ptr @s2n_strerror_source(i32 noundef %1951) #12
  %1953 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1952, ptr noundef nonnull dereferenceable(1) %1090) #16
  %1954 = icmp eq i32 %1953, 0
  br i1 %1954, label %1978, label %1955

1955:                                             ; preds = %1948
  %1956 = tail call ptr @__errno_location() #13
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = call i32 @s2n_print_stacktrace(ptr noundef %1958) #12
  %1960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1961 = trunc nuw i8 %1960 to i1
  br i1 %1961, label %1962, label %1966

1962:                                             ; preds = %1955
  %1963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1964 = call i32 @fileno(ptr noundef %1963) #12
  %1965 = call i32 @isatty(i32 noundef %1964) #12
  %.not253 = icmp eq i32 %1965, 0
  br i1 %.not253, label %1966, label %1967

1966:                                             ; preds = %1962, %1955
  br label %1967

1967:                                             ; preds = %1962, %1966
  %.str.5.sink970 = phi ptr [ @.str.5, %1966 ], [ @.str.2, %1962 ]
  store i32 %1957, ptr %1956, align 4, !tbaa !5
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = load i32, ptr @test_count, align 4, !tbaa !5
  %1970 = load i32, ptr %106, align 4, !tbaa !5
  %1971 = call ptr @s2n_strerror(i32 noundef %1970, ptr noundef nonnull @.str.4) #12
  %1972 = load i32, ptr %106, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror_debug(i32 noundef %1972, ptr noundef nonnull @.str.4) #12
  %1974 = load i32, ptr %1956, align 4, !tbaa !5
  %1975 = call ptr @strerror(i32 noundef %1974) #12
  %1976 = load i32, ptr %1956, align 4, !tbaa !5
  %1977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1968, ptr noundef nonnull %.str.5.sink970, i32 noundef %1969, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 484, ptr noundef %1971, ptr noundef %1973, ptr noundef %1975, i32 noundef %1976) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1978:                                             ; preds = %1845, %1948
  %1979 = load i32, ptr @test_count, align 4, !tbaa !5
  %1980 = add nsw i32 %1979, 1
  store i32 %1980, ptr @test_count, align 4, !tbaa !5
  %1981 = call i32 @s2n_validate_test_async_pkey_ctx(ptr noundef nonnull %29, i32 noundef %423)
  %1982 = call zeroext i1 @s2n_result_is_ok(i32 %1981)
  br i1 %1982, label %2006, label %1983

1983:                                             ; preds = %1978
  %1984 = tail call ptr @__errno_location() #13
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = call i32 @s2n_print_stacktrace(ptr noundef %1986) #12
  %1988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1989 = trunc nuw i8 %1988 to i1
  br i1 %1989, label %1990, label %1994

1990:                                             ; preds = %1983
  %1991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1992 = call i32 @fileno(ptr noundef %1991) #12
  %1993 = call i32 @isatty(i32 noundef %1992) #12
  %.not255 = icmp eq i32 %1993, 0
  br i1 %.not255, label %1994, label %1995

1994:                                             ; preds = %1990, %1983
  br label %1995

1995:                                             ; preds = %1990, %1994
  %.str.5.sink979 = phi ptr [ @.str.5, %1994 ], [ @.str.2, %1990 ]
  store i32 %1985, ptr %1984, align 4, !tbaa !5
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = load i32, ptr @test_count, align 4, !tbaa !5
  %1998 = load i32, ptr %106, align 4, !tbaa !5
  %1999 = call ptr @s2n_strerror(i32 noundef %1998, ptr noundef nonnull @.str.4) #12
  %2000 = load i32, ptr %106, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror_debug(i32 noundef %2000, ptr noundef nonnull @.str.4) #12
  %2002 = load i32, ptr %1984, align 4, !tbaa !5
  %2003 = call ptr @strerror(i32 noundef %2002) #12
  %2004 = load i32, ptr %1984, align 4, !tbaa !5
  %2005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1996, ptr noundef nonnull %.str.5.sink979, i32 noundef %1997, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %1999, ptr noundef %2001, ptr noundef %2003, i32 noundef %2004) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2006:                                             ; preds = %1978
  %2007 = call i32 @s2n_io_pair_close(ptr noundef nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #12
  %2008 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  %2009 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %27) #12
  %2010 = add nuw nsw i32 %.0220364, 1
  %exitcond369.not = icmp eq i32 %2010, 49
  br i1 %exitcond369.not, label %.preheader, label %.preheader313, !llvm.loop !46

._crit_edge:                                      ; preds = %2414, %.preheader
  %2011 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  %2012 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #12
  %2013 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #12
  %2014 = add nuw nsw i64 %.0366, 1
  %exitcond370.not = icmp eq i64 %2014, 3
  br i1 %exitcond370.not, label %136, label %139, !llvm.loop !47

.lr.ph:                                           ; preds = %.preheader, %2414
  %.0221365 = phi i32 [ %2418, %2414 ], [ 0, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %32) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %32, i8 0, i64 20, i1 false)
  store i8 1, ptr %110, align 4, !tbaa !36
  store i32 %.0221365, ptr %111, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #12
  %2015 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2015, ptr %33, align 8, !tbaa !9
  %2016 = load i32, ptr @test_count, align 4, !tbaa !5
  %2017 = add nsw i32 %2016, 1
  store i32 %2017, ptr @test_count, align 4, !tbaa !5
  %2018 = icmp eq ptr %2015, null
  br i1 %2018, label %2019, label %2042

2019:                                             ; preds = %.lr.ph
  %2020 = tail call ptr @__errno_location() #13
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = call i32 @s2n_print_stacktrace(ptr noundef %2022) #12
  %2024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2025 = trunc nuw i8 %2024 to i1
  br i1 %2025, label %2026, label %2030

2026:                                             ; preds = %2019
  %2027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2028 = call i32 @fileno(ptr noundef %2027) #12
  %2029 = call i32 @isatty(i32 noundef %2028) #12
  %.not250 = icmp eq i32 %2029, 0
  br i1 %.not250, label %2030, label %2031

2030:                                             ; preds = %2026, %2019
  br label %2031

2031:                                             ; preds = %2026, %2030
  %.str.5.sink988 = phi ptr [ @.str.5, %2030 ], [ @.str.2, %2026 ]
  store i32 %2021, ptr %2020, align 4, !tbaa !5
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = load i32, ptr @test_count, align 4, !tbaa !5
  %2034 = load i32, ptr %106, align 4, !tbaa !5
  %2035 = call ptr @s2n_strerror(i32 noundef %2034, ptr noundef nonnull @.str.4) #12
  %2036 = load i32, ptr %106, align 4, !tbaa !5
  %2037 = call ptr @s2n_strerror_debug(i32 noundef %2036, ptr noundef nonnull @.str.4) #12
  %2038 = load i32, ptr %2020, align 4, !tbaa !5
  %2039 = call ptr @strerror(i32 noundef %2038) #12
  %2040 = load i32, ptr %2020, align 4, !tbaa !5
  %2041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2032, ptr noundef nonnull %.str.5.sink988, i32 noundef %2033, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 504, ptr noundef %2035, ptr noundef %2037, ptr noundef %2039, i32 noundef %2040) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2042:                                             ; preds = %.lr.ph
  %2043 = add nsw i32 %2016, 2
  store i32 %2043, ptr @test_count, align 4, !tbaa !5
  %2044 = load ptr, ptr %10, align 8, !tbaa !9
  %2045 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2015, ptr noundef %2044) #12
  %2046 = icmp eq i32 %2045, -1
  br i1 %2046, label %2047, label %2070

2047:                                             ; preds = %2042
  %2048 = tail call ptr @__errno_location() #13
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = call i32 @s2n_print_stacktrace(ptr noundef %2050) #12
  %2052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2053 = trunc nuw i8 %2052 to i1
  br i1 %2053, label %2054, label %2058

2054:                                             ; preds = %2047
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @fileno(ptr noundef %2055) #12
  %2057 = call i32 @isatty(i32 noundef %2056) #12
  %.not249 = icmp eq i32 %2057, 0
  br i1 %.not249, label %2058, label %2059

2058:                                             ; preds = %2054, %2047
  br label %2059

2059:                                             ; preds = %2054, %2058
  %.str.5.sink997 = phi ptr [ @.str.5, %2058 ], [ @.str.2, %2054 ]
  store i32 %2049, ptr %2048, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = load i32, ptr @test_count, align 4, !tbaa !5
  %2062 = load i32, ptr %106, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror(i32 noundef %2062, ptr noundef nonnull @.str.4) #12
  %2064 = load i32, ptr %106, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror_debug(i32 noundef %2064, ptr noundef nonnull @.str.4) #12
  %2066 = load i32, ptr %2048, align 4, !tbaa !5
  %2067 = call ptr @strerror(i32 noundef %2066) #12
  %2068 = load i32, ptr %2048, align 4, !tbaa !5
  %2069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2060, ptr noundef nonnull %.str.5.sink997, i32 noundef %2061, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %2063, ptr noundef %2065, ptr noundef %2067, i32 noundef %2068) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2070:                                             ; preds = %2042
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = add nsw i32 %2071, 1
  store i32 %2072, ptr @test_count, align 4, !tbaa !5
  %2073 = load ptr, ptr %33, align 8, !tbaa !9
  %2074 = call i32 @s2n_connection_set_ctx(ptr noundef %2073, ptr noundef nonnull %32) #12
  %2075 = icmp eq i32 %2074, -1
  br i1 %2075, label %2076, label %2099

2076:                                             ; preds = %2070
  %2077 = tail call ptr @__errno_location() #13
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = call i32 @s2n_print_stacktrace(ptr noundef %2079) #12
  %2081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2082 = trunc nuw i8 %2081 to i1
  br i1 %2082, label %2083, label %2087

2083:                                             ; preds = %2076
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = call i32 @fileno(ptr noundef %2084) #12
  %2086 = call i32 @isatty(i32 noundef %2085) #12
  %.not248 = icmp eq i32 %2086, 0
  br i1 %.not248, label %2087, label %2088

2087:                                             ; preds = %2083, %2076
  br label %2088

2088:                                             ; preds = %2083, %2087
  %.str.5.sink1006 = phi ptr [ @.str.5, %2087 ], [ @.str.2, %2083 ]
  store i32 %2078, ptr %2077, align 4, !tbaa !5
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = load i32, ptr @test_count, align 4, !tbaa !5
  %2091 = load i32, ptr %106, align 4, !tbaa !5
  %2092 = call ptr @s2n_strerror(i32 noundef %2091, ptr noundef nonnull @.str.4) #12
  %2093 = load i32, ptr %106, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror_debug(i32 noundef %2093, ptr noundef nonnull @.str.4) #12
  %2095 = load i32, ptr %2077, align 4, !tbaa !5
  %2096 = call ptr @strerror(i32 noundef %2095) #12
  %2097 = load i32, ptr %2077, align 4, !tbaa !5
  %2098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2089, ptr noundef nonnull %.str.5.sink1006, i32 noundef %2090, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 506, ptr noundef %2092, ptr noundef %2094, ptr noundef %2096, i32 noundef %2097) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2099:                                             ; preds = %2070
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #12
  store i64 0, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #12
  %2100 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2100, ptr %35, align 8, !tbaa !9
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = add nsw i32 %2101, 1
  store i32 %2102, ptr @test_count, align 4, !tbaa !5
  %2103 = icmp eq ptr %2100, null
  br i1 %2103, label %2104, label %2127

2104:                                             ; preds = %2099
  %2105 = tail call ptr @__errno_location() #13
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = call i32 @s2n_print_stacktrace(ptr noundef %2107) #12
  %2109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2110 = trunc nuw i8 %2109 to i1
  br i1 %2110, label %2111, label %2115

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

2115:                                             ; preds = %2111, %2104
  br label %2116

2116:                                             ; preds = %2111, %2115
  %.str.5.sink1015 = phi ptr [ @.str.5, %2115 ], [ @.str.2, %2111 ]
  store i32 %2106, ptr %2105, align 4, !tbaa !5
  %2117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2118 = load i32, ptr @test_count, align 4, !tbaa !5
  %2119 = load i32, ptr %106, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror(i32 noundef %2119, ptr noundef nonnull @.str.4) #12
  %2121 = load i32, ptr %106, align 4, !tbaa !5
  %2122 = call ptr @s2n_strerror_debug(i32 noundef %2121, ptr noundef nonnull @.str.4) #12
  %2123 = load i32, ptr %2105, align 4, !tbaa !5
  %2124 = call ptr @strerror(i32 noundef %2123) #12
  %2125 = load i32, ptr %2105, align 4, !tbaa !5
  %2126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2117, ptr noundef nonnull %.str.5.sink1015, i32 noundef %2118, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %2120, ptr noundef %2122, ptr noundef %2124, i32 noundef %2125) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2127:                                             ; preds = %2099
  %2128 = add nsw i32 %2101, 2
  store i32 %2128, ptr @test_count, align 4, !tbaa !5
  %2129 = load ptr, ptr %11, align 8, !tbaa !9
  %2130 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2100, ptr noundef %2129) #12
  %2131 = icmp eq i32 %2130, -1
  br i1 %2131, label %2132, label %2155

2132:                                             ; preds = %2127
  %2133 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %2142 = call i32 @isatty(i32 noundef %2141) #12
  %.not246 = icmp eq i32 %2142, 0
  br i1 %.not246, label %2143, label %2144

2143:                                             ; preds = %2139, %2132
  br label %2144

2144:                                             ; preds = %2139, %2143
  %.str.5.sink1024 = 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 = load i32, ptr %106, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror(i32 noundef %2147, ptr noundef nonnull @.str.4) #12
  %2149 = load i32, ptr %106, align 4, !tbaa !5
  %2150 = call ptr @s2n_strerror_debug(i32 noundef %2149, ptr noundef nonnull @.str.4) #12
  %2151 = load i32, ptr %2133, align 4, !tbaa !5
  %2152 = call ptr @strerror(i32 noundef %2151) #12
  %2153 = load i32, ptr %2133, align 4, !tbaa !5
  %2154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2145, ptr noundef nonnull %.str.5.sink1024, i32 noundef %2146, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 513, ptr noundef %2148, ptr noundef %2150, ptr noundef %2152, i32 noundef %2153) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2155:                                             ; preds = %2127
  %2156 = load i32, ptr @test_count, align 4, !tbaa !5
  %2157 = add nsw i32 %2156, 1
  store i32 %2157, ptr @test_count, align 4, !tbaa !5
  %2158 = load ptr, ptr %35, align 8, !tbaa !9
  %2159 = call i32 @s2n_connection_set_ctx(ptr noundef %2158, ptr noundef nonnull %34) #12
  %2160 = icmp eq i32 %2159, -1
  br i1 %2160, label %2161, label %2184

2161:                                             ; preds = %2155
  %2162 = tail call ptr @__errno_location() #13
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = call i32 @s2n_print_stacktrace(ptr noundef %2164) #12
  %2166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2167 = trunc nuw i8 %2166 to i1
  br i1 %2167, label %2168, label %2172

2168:                                             ; preds = %2161
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = call i32 @fileno(ptr noundef %2169) #12
  %2171 = call i32 @isatty(i32 noundef %2170) #12
  %.not245 = icmp eq i32 %2171, 0
  br i1 %.not245, label %2172, label %2173

2172:                                             ; preds = %2168, %2161
  br label %2173

2173:                                             ; preds = %2168, %2172
  %.str.5.sink1033 = phi ptr [ @.str.5, %2172 ], [ @.str.2, %2168 ]
  store i32 %2163, ptr %2162, align 4, !tbaa !5
  %2174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2175 = load i32, ptr @test_count, align 4, !tbaa !5
  %2176 = load i32, ptr %106, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror(i32 noundef %2176, ptr noundef nonnull @.str.4) #12
  %2178 = load i32, ptr %106, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror_debug(i32 noundef %2178, ptr noundef nonnull @.str.4) #12
  %2180 = load i32, ptr %2162, align 4, !tbaa !5
  %2181 = call ptr @strerror(i32 noundef %2180) #12
  %2182 = load i32, ptr %2162, align 4, !tbaa !5
  %2183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2174, ptr noundef nonnull %.str.5.sink1033, i32 noundef %2175, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 514, ptr noundef %2177, ptr noundef %2179, ptr noundef %2181, i32 noundef %2182) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2184:                                             ; preds = %2155
  %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 = load ptr, ptr %35, align 8, !tbaa !9
  %2188 = call i32 @s2n_connection_set_blinding(ptr noundef %2187, i32 noundef 1) #12
  %2189 = icmp eq i32 %2188, -1
  br i1 %2189, label %2190, label %2213

2190:                                             ; preds = %2184
  %2191 = tail call ptr @__errno_location() #13
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = call i32 @s2n_print_stacktrace(ptr noundef %2193) #12
  %2195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2196 = trunc nuw i8 %2195 to i1
  br i1 %2196, label %2197, label %2201

2197:                                             ; preds = %2190
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = call i32 @fileno(ptr noundef %2198) #12
  %2200 = call i32 @isatty(i32 noundef %2199) #12
  %.not244 = icmp eq i32 %2200, 0
  br i1 %.not244, label %2201, label %2202

2201:                                             ; preds = %2197, %2190
  br label %2202

2202:                                             ; preds = %2197, %2201
  %.str.5.sink1042 = phi ptr [ @.str.5, %2201 ], [ @.str.2, %2197 ]
  store i32 %2192, ptr %2191, align 4, !tbaa !5
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = load i32, ptr @test_count, align 4, !tbaa !5
  %2205 = load i32, ptr %106, align 4, !tbaa !5
  %2206 = call ptr @s2n_strerror(i32 noundef %2205, ptr noundef nonnull @.str.4) #12
  %2207 = load i32, ptr %106, align 4, !tbaa !5
  %2208 = call ptr @s2n_strerror_debug(i32 noundef %2207, ptr noundef nonnull @.str.4) #12
  %2209 = load i32, ptr %2191, align 4, !tbaa !5
  %2210 = call ptr @strerror(i32 noundef %2209) #12
  %2211 = load i32, ptr %2191, align 4, !tbaa !5
  %2212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2203, ptr noundef nonnull %.str.5.sink1042, i32 noundef %2204, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 515, ptr noundef %2206, ptr noundef %2208, ptr noundef %2210, i32 noundef %2211) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2213:                                             ; preds = %2184
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  %2214 = load i32, ptr @test_count, align 4, !tbaa !5
  %2215 = add nsw i32 %2214, 1
  store i32 %2215, ptr @test_count, align 4, !tbaa !5
  %2216 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %36) #12
  %2217 = icmp eq i32 %2216, -1
  br i1 %2217, label %2218, label %2241

2218:                                             ; preds = %2213
  %2219 = tail call ptr @__errno_location() #13
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = call i32 @s2n_print_stacktrace(ptr noundef %2221) #12
  %2223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2224 = trunc nuw i8 %2223 to i1
  br i1 %2224, label %2225, label %2229

2225:                                             ; preds = %2218
  %2226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2227 = call i32 @fileno(ptr noundef %2226) #12
  %2228 = call i32 @isatty(i32 noundef %2227) #12
  %.not243 = icmp eq i32 %2228, 0
  br i1 %.not243, label %2229, label %2230

2229:                                             ; preds = %2225, %2218
  br label %2230

2230:                                             ; preds = %2225, %2229
  %.str.5.sink1051 = phi ptr [ @.str.5, %2229 ], [ @.str.2, %2225 ]
  store i32 %2220, ptr %2219, align 4, !tbaa !5
  %2231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2232 = load i32, ptr @test_count, align 4, !tbaa !5
  %2233 = load i32, ptr %106, align 4, !tbaa !5
  %2234 = call ptr @s2n_strerror(i32 noundef %2233, ptr noundef nonnull @.str.4) #12
  %2235 = load i32, ptr %106, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror_debug(i32 noundef %2235, ptr noundef nonnull @.str.4) #12
  %2237 = load i32, ptr %2219, align 4, !tbaa !5
  %2238 = call ptr @strerror(i32 noundef %2237) #12
  %2239 = load i32, ptr %2219, align 4, !tbaa !5
  %2240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2231, ptr noundef nonnull %.str.5.sink1051, i32 noundef %2232, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 518, ptr noundef %2234, ptr noundef %2236, ptr noundef %2238, i32 noundef %2239) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2241:                                             ; preds = %2213
  %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 = load ptr, ptr %33, align 8, !tbaa !9
  %2245 = load ptr, ptr %35, align 8, !tbaa !9
  %2246 = call i32 @s2n_connections_set_io_pair(ptr noundef %2244, ptr noundef %2245, ptr noundef nonnull %36) #12
  %2247 = icmp eq i32 %2246, -1
  br i1 %2247, label %2248, label %2271

2248:                                             ; preds = %2241
  %2249 = tail call ptr @__errno_location() #13
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2252 = call i32 @s2n_print_stacktrace(ptr noundef %2251) #12
  %2253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2254 = trunc nuw i8 %2253 to i1
  br i1 %2254, label %2255, label %2259

2255:                                             ; preds = %2248
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = call i32 @fileno(ptr noundef %2256) #12
  %2258 = call i32 @isatty(i32 noundef %2257) #12
  %.not242 = icmp eq i32 %2258, 0
  br i1 %.not242, label %2259, label %2260

2259:                                             ; preds = %2255, %2248
  br label %2260

2260:                                             ; preds = %2255, %2259
  %.str.5.sink1060 = phi ptr [ @.str.5, %2259 ], [ @.str.2, %2255 ]
  store i32 %2250, ptr %2249, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = load i32, ptr %106, align 4, !tbaa !5
  %2264 = call ptr @s2n_strerror(i32 noundef %2263, ptr noundef nonnull @.str.4) #12
  %2265 = load i32, ptr %106, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror_debug(i32 noundef %2265, ptr noundef nonnull @.str.4) #12
  %2267 = load i32, ptr %2249, align 4, !tbaa !5
  %2268 = call ptr @strerror(i32 noundef %2267) #12
  %2269 = load i32, ptr %2249, align 4, !tbaa !5
  %2270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2261, ptr noundef nonnull %.str.5.sink1060, i32 noundef %2262, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 519, ptr noundef %2264, ptr noundef %2266, ptr noundef %2268, i32 noundef %2269) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2271:                                             ; preds = %2241
  %2272 = load i32, ptr @test_count, align 4, !tbaa !5
  %2273 = add nsw i32 %2272, 1
  store i32 %2273, ptr @test_count, align 4, !tbaa !5
  %2274 = load ptr, ptr %35, align 8, !tbaa !9
  %2275 = load ptr, ptr %33, align 8, !tbaa !9
  %2276 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2274, ptr noundef %2275) #12
  %2277 = icmp eq i32 %2276, -1
  br i1 %2277, label %2301, label %2278

2278:                                             ; preds = %2271
  %2279 = tail call ptr @__errno_location() #13
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = call i32 @s2n_print_stacktrace(ptr noundef %2281) #12
  %2283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2284 = trunc nuw i8 %2283 to i1
  br i1 %2284, label %2285, label %2289

2285:                                             ; preds = %2278
  %2286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2287 = call i32 @fileno(ptr noundef %2286) #12
  %2288 = call i32 @isatty(i32 noundef %2287) #12
  %.not237 = icmp eq i32 %2288, 0
  br i1 %.not237, label %2289, label %2290

2289:                                             ; preds = %2285, %2278
  br label %2290

2290:                                             ; preds = %2285, %2289
  %.str.5.sink1069 = phi ptr [ @.str.5, %2289 ], [ @.str.2, %2285 ]
  store i32 %2280, ptr %2279, align 4, !tbaa !5
  %2291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2292 = load i32, ptr @test_count, align 4, !tbaa !5
  %2293 = load i32, ptr %106, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror(i32 noundef %2293, ptr noundef nonnull @.str.4) #12
  %2295 = load i32, ptr %106, align 4, !tbaa !5
  %2296 = call ptr @s2n_strerror_debug(i32 noundef %2295, ptr noundef nonnull @.str.4) #12
  %2297 = load i32, ptr %2279, align 4, !tbaa !5
  %2298 = call ptr @strerror(i32 noundef %2297) #12
  %2299 = load i32, ptr %2279, align 4, !tbaa !5
  %2300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2291, ptr noundef nonnull %.str.5.sink1069, i32 noundef %2292, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 521, ptr noundef %2294, ptr noundef %2296, ptr noundef %2298, i32 noundef %2299) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2301:                                             ; preds = %2271
  %2302 = load i32, ptr @test_count, align 4, !tbaa !5
  %2303 = add nsw i32 %2302, 1
  store i32 %2303, ptr @test_count, align 4, !tbaa !5
  %2304 = load i32, ptr %106, align 4, !tbaa !5
  %2305 = icmp eq i32 %2304, 335544321
  br i1 %2305, label %2329, label %2306

2306:                                             ; preds = %2301
  %2307 = tail call ptr @__errno_location() #13
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2310 = call i32 @s2n_print_stacktrace(ptr noundef %2309) #12
  %2311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2312 = trunc nuw i8 %2311 to i1
  br i1 %2312, label %2313, label %2317

2313:                                             ; preds = %2306
  %2314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2315 = call i32 @fileno(ptr noundef %2314) #12
  %2316 = call i32 @isatty(i32 noundef %2315) #12
  %.not238 = icmp eq i32 %2316, 0
  br i1 %.not238, label %2317, label %2318

2317:                                             ; preds = %2313, %2306
  br label %2318

2318:                                             ; preds = %2313, %2317
  %.str.5.sink1078 = phi ptr [ @.str.5, %2317 ], [ @.str.2, %2313 ]
  store i32 %2308, ptr %2307, align 4, !tbaa !5
  %2319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2320 = load i32, ptr @test_count, align 4, !tbaa !5
  %2321 = load i32, ptr %106, align 4, !tbaa !5
  %2322 = call ptr @s2n_strerror(i32 noundef %2321, ptr noundef nonnull @.str.4) #12
  %2323 = load i32, ptr %106, align 4, !tbaa !5
  %2324 = call ptr @s2n_strerror_debug(i32 noundef %2323, ptr noundef nonnull @.str.4) #12
  %2325 = load i32, ptr %2307, align 4, !tbaa !5
  %2326 = call ptr @strerror(i32 noundef %2325) #12
  %2327 = load i32, ptr %2307, align 4, !tbaa !5
  %2328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2319, ptr noundef nonnull %.str.5.sink1078, i32 noundef %2320, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 521, ptr noundef %2322, ptr noundef %2324, ptr noundef %2326, i32 noundef %2327) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2329:                                             ; preds = %2301
  %2330 = add nsw i32 %2302, 2
  store i32 %2330, ptr @test_count, align 4, !tbaa !5
  %2331 = call ptr @s2n_strerror_debug(i32 noundef 335544321, ptr noundef nonnull @.str.4) #12
  %2332 = icmp eq ptr %2331, null
  br i1 %2332, label %2333, label %2356

2333:                                             ; preds = %2329
  %2334 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %2343 = call i32 @isatty(i32 noundef %2342) #12
  %.not241 = icmp eq i32 %2343, 0
  br i1 %.not241, label %2344, label %2345

2344:                                             ; preds = %2340, %2333
  br label %2345

2345:                                             ; preds = %2340, %2344
  %.str.5.sink1087 = 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 = load i32, ptr %106, align 4, !tbaa !5
  %2349 = call ptr @s2n_strerror(i32 noundef %2348, ptr noundef nonnull @.str.4) #12
  %2350 = load i32, ptr %106, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror_debug(i32 noundef %2350, ptr noundef nonnull @.str.4) #12
  %2352 = load i32, ptr %2334, align 4, !tbaa !5
  %2353 = call ptr @strerror(i32 noundef %2352) #12
  %2354 = load i32, ptr %2334, align 4, !tbaa !5
  %2355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef nonnull %.str.5.sink1087, i32 noundef %2347, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 521, ptr noundef %2349, ptr noundef %2351, ptr noundef %2353, i32 noundef %2354) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2356:                                             ; preds = %2329
  %2357 = load i32, ptr @test_count, align 4, !tbaa !5
  %2358 = add nsw i32 %2357, 1
  store i32 %2358, ptr @test_count, align 4, !tbaa !5
  %2359 = load i32, ptr %106, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror_source(i32 noundef %2359) #12
  %2361 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2360, ptr noundef nonnull dereferenceable(1) %1090) #16
  %2362 = icmp eq i32 %2361, 0
  br i1 %2362, label %2386, label %2363

2363:                                             ; preds = %2356
  %2364 = tail call ptr @__errno_location() #13
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2367 = call i32 @s2n_print_stacktrace(ptr noundef %2366) #12
  %2368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2369 = trunc nuw i8 %2368 to i1
  br i1 %2369, label %2370, label %2374

2370:                                             ; preds = %2363
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = call i32 @fileno(ptr noundef %2371) #12
  %2373 = call i32 @isatty(i32 noundef %2372) #12
  %.not239 = icmp eq i32 %2373, 0
  br i1 %.not239, label %2374, label %2375

2374:                                             ; preds = %2370, %2363
  br label %2375

2375:                                             ; preds = %2370, %2374
  %.str.5.sink1096 = phi ptr [ @.str.5, %2374 ], [ @.str.2, %2370 ]
  store i32 %2365, ptr %2364, align 4, !tbaa !5
  %2376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = load i32, ptr %106, align 4, !tbaa !5
  %2379 = call ptr @s2n_strerror(i32 noundef %2378, ptr noundef nonnull @.str.4) #12
  %2380 = load i32, ptr %106, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef %2380, ptr noundef nonnull @.str.4) #12
  %2382 = load i32, ptr %2364, align 4, !tbaa !5
  %2383 = call ptr @strerror(i32 noundef %2382) #12
  %2384 = load i32, ptr %2364, align 4, !tbaa !5
  %2385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2376, ptr noundef nonnull %.str.5.sink1096, i32 noundef %2377, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 522, ptr noundef %2379, ptr noundef %2381, ptr noundef %2383, i32 noundef %2384) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2386:                                             ; preds = %2356
  %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_validate_test_async_pkey_ctx(ptr noundef nonnull %34, i32 noundef %423)
  %2390 = call zeroext i1 @s2n_result_is_ok(i32 %2389)
  br i1 %2390, label %2414, label %2391

2391:                                             ; preds = %2386
  %2392 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %2401 = call i32 @isatty(i32 noundef %2400) #12
  %.not240 = icmp eq i32 %2401, 0
  br i1 %.not240, label %2402, label %2403

2402:                                             ; preds = %2398, %2391
  br label %2403

2403:                                             ; preds = %2398, %2402
  %.str.5.sink1105 = 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 = load i32, ptr %106, align 4, !tbaa !5
  %2407 = call ptr @s2n_strerror(i32 noundef %2406, ptr noundef nonnull @.str.4) #12
  %2408 = load i32, ptr %106, align 4, !tbaa !5
  %2409 = call ptr @s2n_strerror_debug(i32 noundef %2408, ptr noundef nonnull @.str.4) #12
  %2410 = load i32, ptr %2392, align 4, !tbaa !5
  %2411 = call ptr @strerror(i32 noundef %2410) #12
  %2412 = load i32, ptr %2392, align 4, !tbaa !5
  %2413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2404, ptr noundef nonnull %.str.5.sink1105, i32 noundef %2405, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 524, ptr noundef %2407, ptr noundef %2409, ptr noundef %2411, i32 noundef %2412) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2414:                                             ; preds = %2386
  %2415 = call i32 @s2n_io_pair_close(ptr noundef nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  %2416 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  %2417 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %32) #12
  %2418 = add nuw i32 %.0221365, 1
  %2419 = load i32, ptr %4, align 4, !tbaa !5
  %2420 = add i32 %2419, -48
  %2421 = icmp ult i32 %2418, %2420
  br i1 %2421, label %.lr.ph, label %._crit_edge, !llvm.loop !48

2422:                                             ; preds = %136
  %2423 = tail call ptr @__errno_location() #13
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2426 = call i32 @s2n_print_stacktrace(ptr noundef %2425) #12
  %2427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2428 = trunc nuw i8 %2427 to i1
  br i1 %2428, label %2429, label %2433

2429:                                             ; preds = %2422
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = call i32 @fileno(ptr noundef %2430) #12
  %2432 = call i32 @isatty(i32 noundef %2431) #12
  %.not229 = icmp eq i32 %2432, 0
  br i1 %.not229, label %2433, label %2434

2433:                                             ; preds = %2429, %2422
  br label %2434

2434:                                             ; preds = %2429, %2433
  %.str.5.sink1114 = phi ptr [ @.str.5, %2433 ], [ @.str.2, %2429 ]
  store i32 %2424, ptr %2423, align 4, !tbaa !5
  %2435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2436 = load i32, ptr @test_count, align 4, !tbaa !5
  %2437 = load i32, ptr %106, align 4, !tbaa !5
  %2438 = call ptr @s2n_strerror(i32 noundef %2437, ptr noundef nonnull @.str.4) #12
  %2439 = load i32, ptr %106, align 4, !tbaa !5
  %2440 = call ptr @s2n_strerror_debug(i32 noundef %2439, ptr noundef nonnull @.str.4) #12
  %2441 = load i32, ptr %2423, align 4, !tbaa !5
  %2442 = call ptr @strerror(i32 noundef %2441) #12
  %2443 = load i32, ptr %2423, align 4, !tbaa !5
  %2444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2435, ptr noundef nonnull %.str.5.sink1114, i32 noundef %2436, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 528, ptr noundef %2438, ptr noundef %2440, ptr noundef %2442, i32 noundef %2443) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2445:                                             ; preds = %136
  %2446 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %2447 = icmp eq i32 %2446, -1
  br i1 %2447, label %2448, label %2471

2448:                                             ; preds = %2445
  %2449 = tail call ptr @__errno_location() #13
  %2450 = load i32, ptr %2449, align 4, !tbaa !5
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = call i32 @s2n_print_stacktrace(ptr noundef %2451) #12
  %2453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2454 = trunc nuw i8 %2453 to i1
  br i1 %2454, label %2455, label %2459

2455:                                             ; preds = %2448
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = call i32 @fileno(ptr noundef %2456) #12
  %2458 = call i32 @isatty(i32 noundef %2457) #12
  %.not228 = icmp eq i32 %2458, 0
  br i1 %.not228, label %2459, label %2460

2459:                                             ; preds = %2455, %2448
  br label %2460

2460:                                             ; preds = %2455, %2459
  %.str.5.sink1123 = phi ptr [ @.str.5, %2459 ], [ @.str.2, %2455 ]
  store i32 %2450, ptr %2449, align 4, !tbaa !5
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = load i32, ptr @test_count, align 4, !tbaa !5
  %2463 = load i32, ptr %106, align 4, !tbaa !5
  %2464 = call ptr @s2n_strerror(i32 noundef %2463, ptr noundef nonnull @.str.4) #12
  %2465 = load i32, ptr %106, align 4, !tbaa !5
  %2466 = call ptr @s2n_strerror_debug(i32 noundef %2465, ptr noundef nonnull @.str.4) #12
  %2467 = load i32, ptr %2449, align 4, !tbaa !5
  %2468 = call ptr @strerror(i32 noundef %2467) #12
  %2469 = load i32, ptr %2449, align 4, !tbaa !5
  %2470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2461, ptr noundef nonnull %.str.5.sink1123, i32 noundef %2462, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 528, ptr noundef %2464, ptr noundef %2466, ptr noundef %2468, i32 noundef %2469) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2471:                                             ; preds = %2445
  %2472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2473 = trunc nuw i8 %2472 to i1
  br i1 %2473, label %2474, label %2485

2474:                                             ; preds = %2471
  %2475 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2476 = call i32 @fileno(ptr noundef %2475) #12
  %2477 = call i32 @isatty(i32 noundef %2476) #12
  %.not = icmp eq i32 %2477, 0
  br i1 %.not, label %2485, label %2478

2478:                                             ; preds = %2474
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not227 = icmp eq i32 %2479, 0
  %2480 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not227, label %2483, label %2481

2481:                                             ; preds = %2478
  %2482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2480, ptr noundef nonnull @.str.40, i32 noundef %2479) #12
  br label %2492

2483:                                             ; preds = %2478
  %2484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2480, ptr noundef nonnull @.str.41) #12
  br label %2492

2485:                                             ; preds = %2474, %2471
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not226 = icmp eq i32 %2486, 0
  %2487 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not226, label %2490, label %2488

2488:                                             ; preds = %2485
  %2489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2487, ptr noundef nonnull @.str.42, i32 noundef %2486) #12
  br label %2492

2490:                                             ; preds = %2485
  %2491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2487, ptr noundef nonnull @.str.43) #12
  br label %2492

2492:                                             ; preds = %2488, %2490, %2481, %2483
  ret i32 0
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #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 #2

; 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 #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

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

; 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) #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_cert_chain_and_key_get_private_key(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #8

declare i32 @s2n_pkey_size(ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_rsa_client_key_send(ptr noundef, ptr noundef) #0

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_async_pkey_callback(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_async_pkey_decrypt_callback(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_offload_pkey_decrypt_callback(ptr noundef, ptr noundef) #0

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #10

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_ctx(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_validate_test_async_pkey_ctx(ptr noundef, i32 noundef) local_unnamed_addr #0

declare ptr @s2n_strerror_source(i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strstr(ptr noundef, ptr nocapture noundef) local_unnamed_addr #11

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #11

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

!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 = !{i64 0, i64 1, !11, i64 8, i64 16, !16, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 8, !9, i64 64, i64 8, !9, i64 72, i64 8, !9, i64 80, i64 8, !9}
!16 = !{!7, !7, i64 0}
!17 = !{!18, !10, i64 72}
!18 = !{!"s2n_kex", !12, i64 0, !7, i64 8, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80}
!19 = !{i64 0, i64 1, !16, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 2, !16, i64 32, i64 8, !9, i64 40, i64 4, !5, i64 48, i64 8, !9, i64 56, i64 16, !16, i64 72, i64 1, !16, i64 80, i64 8, !9, i64 88, i64 8, !9, i64 96, i64 4, !5, i64 100, i64 1, !16}
!20 = !{!21, !10, i64 32}
!21 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!22 = !{!23, !24, i64 0}
!23 = !{!"s2n_cipher_preferences", !24, i64 0, !10, i64 8, !12, i64 16}
!24 = !{!"short", !7, i64 0}
!25 = !{!23, !10, i64 8}
!26 = !{!23, !12, i64 16}
!27 = !{i64 0, i64 1, !16, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 1, !11, i64 57, i64 2, !16}
!28 = !{!29, !10, i64 8}
!29 = !{!"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}
!30 = !{!31, !10, i64 96}
!31 = !{!"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, !32, i64 24, !33, 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, !34, i64 144, !10, i64 152, !34, i64 160, !34, 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, !35, i64 304, !24, 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, !33, i64 448}
!32 = !{!"certs_by_type", !7, i64 0}
!33 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!34 = !{!"long", !7, i64 0}
!35 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!36 = !{!37, !12, i64 8}
!37 = !{!"s2n_test_rsa_client_key_send_ctx", !12, i64 0, !6, i64 4, !12, i64 8, !6, i64 12, !12, i64 16, !7, i64 17}
!38 = !{!37, !6, i64 12}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.mustprogress"}
!41 = !{!37, !12, i64 16}
!42 = !{!37, !7, i64 17}
!43 = distinct !{!43, !40}
!44 = !{!37, !12, i64 0}
!45 = !{!37, !6, i64 4}
!46 = distinct !{!46, !40}
!47 = distinct !{!47, !40}
!48 = distinct !{!48, !40}


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