; LLVM IR from aws/s2n-tls :: tests/unit (s2n_connection_protocol_versions_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_overwrite_client_hello_ctx = type { i8, i8, i8, [3 x i8], i32 }
%struct.s2n_test_io_pair = type { i32, i32 }
%struct.s2n_result = type { i32 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@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 [96 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 [200 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 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 [112 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [86 x i8], align 1
@__const.main.context = external hidden unnamed_addr constant %struct.s2n_overwrite_client_hello_ctx, align 4
@.str.53 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [74 x i8], align 1
@s2n_unknown_protocol_version = external global i8, align 1
@.str.57 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.64 = 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 ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i8, align 1
  %24 = alloca i32, align 4
  %25 = alloca i8, align 1
  %26 = alloca i8, align 1
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct.s2n_overwrite_client_hello_ctx, align 4
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca %struct.s2n_test_io_pair, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %struct.s2n_result, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i8, align 1
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i8, align 1
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca %struct.s2n_result, align 4
  %55 = alloca %struct.s2n_result, align 4
  %56 = alloca %struct.s2n_result, align 4
  %57 = alloca i8, align 1
  %58 = alloca i8, align 1
  %59 = alloca ptr, align 8
  %60 = alloca i32, align 4
  %61 = alloca ptr, align 8
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca %struct.s2n_overwrite_client_hello_ctx, align 4
  %66 = alloca i32, align 4
  %67 = alloca ptr, align 8
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca %struct.s2n_test_io_pair, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca %struct.s2n_result, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i8, align 1
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca %struct.s2n_result, align 4
  %87 = alloca %struct.s2n_result, align 4
  %88 = alloca %struct.s2n_result, align 4
  %89 = alloca %struct.s2n_result, align 4
  %90 = alloca i8, align 1
  %91 = alloca ptr, align 8
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca ptr, align 8
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca ptr, align 8
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca %struct.s2n_test_io_pair, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca %struct.s2n_result, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca %struct.s2n_result, align 4
  %110 = alloca %struct.s2n_result, align 4
  %111 = alloca %struct.s2n_result, align 4
  %112 = alloca i8, align 1
  %113 = alloca ptr, align 8
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca %struct.s2n_overwrite_client_hello_ctx, align 4
  %117 = alloca i32, align 4
  %118 = alloca ptr, align 8
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca ptr, align 8
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca %struct.s2n_test_io_pair, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca %struct.s2n_result, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i8, align 1
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca %struct.s2n_result, align 4
  %135 = alloca %struct.s2n_result, align 4
  %136 = alloca %struct.s2n_result, align 4
  %137 = alloca i8, align 1
  %138 = alloca ptr, align 8
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca %struct.s2n_overwrite_client_hello_ctx, align 4
  %142 = alloca i32, align 4
  %143 = alloca ptr, align 8
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca ptr, align 8
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca %struct.s2n_test_io_pair, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca %struct.s2n_result, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i8, align 1
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca %struct.s2n_result, align 4
  %160 = alloca %struct.s2n_result, align 4
  %161 = alloca %struct.s2n_result, align 4
  %162 = alloca ptr, align 8
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca %struct.s2n_overwrite_client_hello_ctx, align 4
  %166 = alloca i32, align 4
  %167 = alloca ptr, align 8
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca ptr, align 8
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca %struct.s2n_test_io_pair, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca %struct.s2n_result, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i8, align 1
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca %struct.s2n_result, align 4
  %189 = alloca %struct.s2n_result, align 4
  %190 = alloca %struct.s2n_result, align 4
  %191 = alloca i32, align 4
  %192 = alloca i32, align 4
  %193 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %194

194:                                              ; preds = %2
  br label %195

195:                                              ; preds = %194
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %196 = load ptr, ptr @stdout, align 8, !tbaa !9
  %197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %196, ptr noundef @.str, ptr noundef @.str.1) #10
  %198 = load ptr, ptr @stdout, align 8, !tbaa !9
  %199 = call i32 @fflush(ptr noundef %198)
  br label %200

200:                                              ; preds = %195
  %201 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %202 = icmp eq i32 %201, -1
  br i1 %202, label %203, label %254

203:                                              ; preds = %200
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %206 = call ptr @__errno_location() #11
  %207 = load i32, ptr %206, align 4, !tbaa !5
  store i32 %207, ptr %6, align 4, !tbaa !5
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = call i32 @s2n_print_stacktrace(ptr noundef %208)
  %210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %211 = trunc i8 %210 to i1
  br i1 %211, label %212, label %234

212:                                              ; preds = %205
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = call i32 @fileno(ptr noundef %213) #10
  %215 = call i32 @isatty(i32 noundef %214) #10
  %216 = icmp ne i32 %215, 0
  br i1 %216, label %217, label %234

217:                                              ; preds = %212
  %218 = load i32, ptr %6, align 4, !tbaa !5
  %219 = call ptr @__errno_location() #11
  store i32 %218, ptr %219, align 4, !tbaa !5
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = load i32, ptr @test_count, align 4, !tbaa !5
  %222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = call ptr @s2n_strerror(i32 noundef %223, ptr noundef @.str.4)
  %225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = call ptr @s2n_strerror_debug(i32 noundef %226, ptr noundef @.str.4)
  %228 = call ptr @__errno_location() #11
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = call ptr @strerror(i32 noundef %229) #10
  %231 = call ptr @__errno_location() #11
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %220, ptr noundef @.str.2, i32 noundef %221, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 88, ptr noundef %224, ptr noundef %227, ptr noundef %230, i32 noundef %232) #10
  br label %251

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

251:                                              ; preds = %234, %217
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %252

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

253:                                              ; No predecessors!
  br label %254

254:                                              ; preds = %253, %200
  br label %255

255:                                              ; preds = %254
  br label %256

256:                                              ; preds = %255
  %257 = load i32, ptr @test_count, align 4, !tbaa !5
  %258 = add nsw i32 %257, 1
  store i32 %258, ptr @test_count, align 4, !tbaa !5
  %259 = call i32 @s2n_enable_atexit()
  %260 = icmp eq i32 %259, -1
  br i1 %260, label %261, label %312

261:                                              ; preds = %256
  br label %262

262:                                              ; preds = %261
  br label %263

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %264 = call ptr @__errno_location() #11
  %265 = load i32, ptr %264, align 4, !tbaa !5
  store i32 %265, ptr %7, align 4, !tbaa !5
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = call i32 @s2n_print_stacktrace(ptr noundef %266)
  %268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %269 = trunc i8 %268 to i1
  br i1 %269, label %270, label %292

270:                                              ; preds = %263
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = call i32 @fileno(ptr noundef %271) #10
  %273 = call i32 @isatty(i32 noundef %272) #10
  %274 = icmp ne i32 %273, 0
  br i1 %274, label %275, label %292

275:                                              ; preds = %270
  %276 = load i32, ptr %7, align 4, !tbaa !5
  %277 = call ptr @__errno_location() #11
  store i32 %276, ptr %277, align 4, !tbaa !5
  %278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %279 = load i32, ptr @test_count, align 4, !tbaa !5
  %280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %281 = load i32, ptr %280, align 4, !tbaa !5
  %282 = call ptr @s2n_strerror(i32 noundef %281, ptr noundef @.str.4)
  %283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = call ptr @s2n_strerror_debug(i32 noundef %284, ptr noundef @.str.4)
  %286 = call ptr @__errno_location() #11
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = call ptr @strerror(i32 noundef %287) #10
  %289 = call ptr @__errno_location() #11
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %278, ptr noundef @.str.2, i32 noundef %279, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 88, ptr noundef %282, ptr noundef %285, ptr noundef %288, i32 noundef %290) #10
  br label %309

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

309:                                              ; preds = %292, %275
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %310

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

311:                                              ; No predecessors!
  br label %312

312:                                              ; preds = %311, %256
  br label %313

313:                                              ; preds = %312
  br label %314

314:                                              ; preds = %313
  br label %315

315:                                              ; preds = %314
  %316 = call i32 @s2n_init()
  %317 = icmp eq i32 %316, -1
  br i1 %317, label %318, label %369

318:                                              ; preds = %315
  br label %319

319:                                              ; preds = %318
  br label %320

320:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %321 = call ptr @__errno_location() #11
  %322 = load i32, ptr %321, align 4, !tbaa !5
  store i32 %322, ptr %8, align 4, !tbaa !5
  %323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %324 = call i32 @s2n_print_stacktrace(ptr noundef %323)
  %325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %326 = trunc i8 %325 to i1
  br i1 %326, label %327, label %349

327:                                              ; preds = %320
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = call i32 @fileno(ptr noundef %328) #10
  %330 = call i32 @isatty(i32 noundef %329) #10
  %331 = icmp ne i32 %330, 0
  br i1 %331, label %332, label %349

332:                                              ; preds = %327
  %333 = load i32, ptr %8, align 4, !tbaa !5
  %334 = call ptr @__errno_location() #11
  store i32 %333, ptr %334, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = call ptr @s2n_strerror(i32 noundef %338, ptr noundef @.str.4)
  %340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = call ptr @s2n_strerror_debug(i32 noundef %341, ptr noundef @.str.4)
  %343 = call ptr @__errno_location() #11
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @strerror(i32 noundef %344) #10
  %346 = call ptr @__errno_location() #11
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %335, ptr noundef @.str.2, i32 noundef %336, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 88, ptr noundef %339, ptr noundef %342, ptr noundef %345, i32 noundef %347) #10
  br label %366

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

366:                                              ; preds = %349, %332
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %367

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

368:                                              ; No predecessors!
  br label %369

369:                                              ; preds = %368, %315
  br label %370

370:                                              ; preds = %369
  br label %371

371:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #10
  store ptr null, ptr %9, align 8, !tbaa !9
  br label %372

372:                                              ; preds = %371
  %373 = load i32, ptr @test_count, align 4, !tbaa !5
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr @test_count, align 4, !tbaa !5
  %375 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %9, ptr noundef @.str.8, ptr noundef @.str.9)
  %376 = icmp eq i32 %375, -1
  br i1 %376, label %377, label %430

377:                                              ; preds = %372
  br label %378

378:                                              ; preds = %377
  br label %379

379:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  %380 = call ptr @__errno_location() #11
  %381 = load i32, ptr %380, align 4, !tbaa !5
  store i32 %381, ptr %10, align 4, !tbaa !5
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = call i32 @s2n_print_stacktrace(ptr noundef %382)
  %384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %385 = trunc i8 %384 to i1
  br i1 %385, label %386, label %408

386:                                              ; preds = %379
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = call i32 @fileno(ptr noundef %387) #10
  %389 = call i32 @isatty(i32 noundef %388) #10
  %390 = icmp ne i32 %389, 0
  br i1 %390, label %391, label %408

391:                                              ; preds = %386
  %392 = load i32, ptr %10, align 4, !tbaa !5
  %393 = call ptr @__errno_location() #11
  store i32 %392, ptr %393, align 4, !tbaa !5
  %394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %395 = load i32, ptr @test_count, align 4, !tbaa !5
  %396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror(i32 noundef %397, ptr noundef @.str.4)
  %399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = call ptr @s2n_strerror_debug(i32 noundef %400, ptr noundef @.str.4)
  %402 = call ptr @__errno_location() #11
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @strerror(i32 noundef %403) #10
  %405 = call ptr @__errno_location() #11
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %394, ptr noundef @.str.2, i32 noundef %395, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 92, ptr noundef %398, ptr noundef %401, ptr noundef %404, i32 noundef %406) #10
  br label %425

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

425:                                              ; preds = %408, %391
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %426

426:                                              ; preds = %425
  br label %427

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

428:                                              ; No predecessors!
  br label %429

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %429, %372
  br label %431

431:                                              ; preds = %430
  br label %432

432:                                              ; preds = %431
  br label %433

433:                                              ; preds = %432
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr @test_count, align 4, !tbaa !5
  %438 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef null)
  %439 = icmp eq i32 %438, -1
  br i1 %439, label %493, label %440

440:                                              ; preds = %435
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  %443 = call ptr @__errno_location() #11
  %444 = load i32, ptr %443, align 4, !tbaa !5
  store i32 %444, ptr %11, align 4, !tbaa !5
  %445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %446 = call i32 @s2n_print_stacktrace(ptr noundef %445)
  %447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %448 = trunc i8 %447 to i1
  br i1 %448, label %449, label %471

449:                                              ; preds = %442
  %450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %451 = call i32 @fileno(ptr noundef %450) #10
  %452 = call i32 @isatty(i32 noundef %451) #10
  %453 = icmp ne i32 %452, 0
  br i1 %453, label %454, label %471

454:                                              ; preds = %449
  %455 = load i32, ptr %11, align 4, !tbaa !5
  %456 = call ptr @__errno_location() #11
  store i32 %455, ptr %456, align 4, !tbaa !5
  %457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror(i32 noundef %460, ptr noundef @.str.4)
  %462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror_debug(i32 noundef %463, ptr noundef @.str.4)
  %465 = call ptr @__errno_location() #11
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call ptr @strerror(i32 noundef %466) #10
  %468 = call ptr @__errno_location() #11
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %457, ptr noundef @.str.2, i32 noundef %458, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 96, ptr noundef %461, ptr noundef %464, ptr noundef %467, i32 noundef %469) #10
  br label %488

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

488:                                              ; preds = %471, %454
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %489

489:                                              ; preds = %488
  br label %490

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

491:                                              ; No predecessors!
  br label %492

492:                                              ; preds = %491
  br label %493

493:                                              ; preds = %492, %435
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494
  br label %496

496:                                              ; preds = %495
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr @test_count, align 4, !tbaa !5
  %499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = icmp eq i32 %500, 402653193
  br i1 %501, label %555, label %502

502:                                              ; preds = %496
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  %505 = call ptr @__errno_location() #11
  %506 = load i32, ptr %505, align 4, !tbaa !5
  store i32 %506, ptr %12, align 4, !tbaa !5
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = call i32 @s2n_print_stacktrace(ptr noundef %507)
  %509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %510 = trunc i8 %509 to i1
  br i1 %510, label %511, label %533

511:                                              ; preds = %504
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = call i32 @fileno(ptr noundef %512) #10
  %514 = call i32 @isatty(i32 noundef %513) #10
  %515 = icmp ne i32 %514, 0
  br i1 %515, label %516, label %533

516:                                              ; preds = %511
  %517 = load i32, ptr %12, align 4, !tbaa !5
  %518 = call ptr @__errno_location() #11
  store i32 %517, ptr %518, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror(i32 noundef %522, ptr noundef @.str.4)
  %524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef @.str.4)
  %527 = call ptr @__errno_location() #11
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = call ptr @strerror(i32 noundef %528) #10
  %530 = call ptr @__errno_location() #11
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %519, ptr noundef @.str.2, i32 noundef %520, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 96, ptr noundef %523, ptr noundef %526, ptr noundef %529, i32 noundef %531) #10
  br label %550

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

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

551:                                              ; preds = %550
  br label %552

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

553:                                              ; No predecessors!
  br label %554

554:                                              ; preds = %553
  br label %555

555:                                              ; preds = %554, %496
  br label %556

556:                                              ; preds = %555
  br label %557

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557
  %559 = load i32, ptr @test_count, align 4, !tbaa !5
  %560 = add nsw i32 %559, 1
  store i32 %560, ptr @test_count, align 4, !tbaa !5
  %561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @s2n_strerror_debug(i32 noundef %562, ptr noundef @.str.4)
  %564 = icmp eq ptr %563, null
  br i1 %564, label %565, label %618

565:                                              ; preds = %558
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  %568 = call ptr @__errno_location() #11
  %569 = load i32, ptr %568, align 4, !tbaa !5
  store i32 %569, ptr %13, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @s2n_print_stacktrace(ptr noundef %570)
  %572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %573 = trunc i8 %572 to i1
  br i1 %573, label %574, label %596

574:                                              ; preds = %567
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @fileno(ptr noundef %575) #10
  %577 = call i32 @isatty(i32 noundef %576) #10
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %579, label %596

579:                                              ; preds = %574
  %580 = load i32, ptr %13, align 4, !tbaa !5
  %581 = call ptr @__errno_location() #11
  store i32 %580, ptr %581, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror(i32 noundef %585, ptr noundef @.str.4)
  %587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror_debug(i32 noundef %588, ptr noundef @.str.4)
  %590 = call ptr @__errno_location() #11
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call ptr @strerror(i32 noundef %591) #10
  %593 = call ptr @__errno_location() #11
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef @.str.2, i32 noundef %583, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 96, ptr noundef %586, ptr noundef %589, ptr noundef %592, i32 noundef %594) #10
  br label %613

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

613:                                              ; preds = %596, %579
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %614

614:                                              ; preds = %613
  br label %615

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

616:                                              ; No predecessors!
  br label %617

617:                                              ; preds = %616
  br label %618

618:                                              ; preds = %617, %558
  br label %619

619:                                              ; preds = %618
  br label %620

620:                                              ; preds = %619
  br label %621

621:                                              ; preds = %620
  br label %622

622:                                              ; preds = %621
  br label %623

623:                                              ; preds = %622
  %624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %624, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %625 = call ptr @__errno_location() #11
  store i32 0, ptr %625, align 4, !tbaa !5
  br label %626

626:                                              ; preds = %623
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  br label %629

629:                                              ; preds = %628
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = add nsw i32 %633, 1
  store i32 %634, ptr @test_count, align 4, !tbaa !5
  %635 = call i32 @s2n_connection_get_client_hello_version(ptr noundef null)
  %636 = icmp eq i32 %635, -1
  br i1 %636, label %690, label %637

637:                                              ; preds = %632
  br label %638

638:                                              ; preds = %637
  br label %639

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

646:                                              ; preds = %639
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @fileno(ptr noundef %647) #10
  %649 = call i32 @isatty(i32 noundef %648) #10
  %650 = icmp ne i32 %649, 0
  br i1 %650, label %651, label %668

651:                                              ; preds = %646
  %652 = load i32, ptr %14, align 4, !tbaa !5
  %653 = call ptr @__errno_location() #11
  store i32 %652, ptr %653, align 4, !tbaa !5
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = call ptr @s2n_strerror(i32 noundef %657, ptr noundef @.str.4)
  %659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror_debug(i32 noundef %660, ptr noundef @.str.4)
  %662 = call ptr @__errno_location() #11
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @strerror(i32 noundef %663) #10
  %665 = call ptr @__errno_location() #11
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %654, ptr noundef @.str.2, i32 noundef %655, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 97, ptr noundef %658, ptr noundef %661, ptr noundef %664, i32 noundef %666) #10
  br label %685

668:                                              ; preds = %646, %639
  %669 = load i32, ptr %14, align 4, !tbaa !5
  %670 = call ptr @__errno_location() #11
  store i32 %669, ptr %670, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror(i32 noundef %674, ptr noundef @.str.4)
  %676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror_debug(i32 noundef %677, ptr noundef @.str.4)
  %679 = call ptr @__errno_location() #11
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @strerror(i32 noundef %680) #10
  %682 = call ptr @__errno_location() #11
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %671, ptr noundef @.str.5, i32 noundef %672, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 97, ptr noundef %675, ptr noundef %678, ptr noundef %681, i32 noundef %683) #10
  br label %685

685:                                              ; preds = %668, %651
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %686

686:                                              ; preds = %685
  br label %687

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

688:                                              ; No predecessors!
  br label %689

689:                                              ; preds = %688
  br label %690

690:                                              ; preds = %689, %632
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691
  br label %693

693:                                              ; preds = %692
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = add nsw i32 %694, 1
  store i32 %695, 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 = icmp eq i32 %697, 402653193
  br i1 %698, label %752, label %699

699:                                              ; preds = %693
  br label %700

700:                                              ; preds = %699
  br label %701

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

708:                                              ; preds = %701
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = call i32 @fileno(ptr noundef %709) #10
  %711 = call i32 @isatty(i32 noundef %710) #10
  %712 = icmp ne i32 %711, 0
  br i1 %712, label %713, label %730

713:                                              ; preds = %708
  %714 = load i32, ptr %15, align 4, !tbaa !5
  %715 = call ptr @__errno_location() #11
  store i32 %714, ptr %715, align 4, !tbaa !5
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @s2n_strerror(i32 noundef %719, ptr noundef @.str.4)
  %721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call ptr @s2n_strerror_debug(i32 noundef %722, ptr noundef @.str.4)
  %724 = call ptr @__errno_location() #11
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call ptr @strerror(i32 noundef %725) #10
  %727 = call ptr @__errno_location() #11
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %716, ptr noundef @.str.2, i32 noundef %717, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 97, ptr noundef %720, ptr noundef %723, ptr noundef %726, i32 noundef %728) #10
  br label %747

730:                                              ; preds = %708, %701
  %731 = load i32, ptr %15, align 4, !tbaa !5
  %732 = call ptr @__errno_location() #11
  store i32 %731, ptr %732, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef @.str.4)
  %738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror_debug(i32 noundef %739, ptr noundef @.str.4)
  %741 = call ptr @__errno_location() #11
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #10
  %744 = call ptr @__errno_location() #11
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef @.str.5, i32 noundef %734, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 97, ptr noundef %737, ptr noundef %740, ptr noundef %743, i32 noundef %745) #10
  br label %747

747:                                              ; preds = %730, %713
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %748

748:                                              ; preds = %747
  br label %749

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

750:                                              ; No predecessors!
  br label %751

751:                                              ; preds = %750
  br label %752

752:                                              ; preds = %751, %693
  br label %753

753:                                              ; preds = %752
  br label %754

754:                                              ; preds = %753
  br label %755

755:                                              ; preds = %754
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = add nsw i32 %756, 1
  store i32 %757, ptr @test_count, align 4, !tbaa !5
  %758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @s2n_strerror_debug(i32 noundef %759, ptr noundef @.str.4)
  %761 = icmp eq ptr %760, null
  br i1 %761, label %762, label %815

762:                                              ; preds = %755
  br label %763

763:                                              ; preds = %762
  br label %764

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

771:                                              ; preds = %764
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = call i32 @fileno(ptr noundef %772) #10
  %774 = call i32 @isatty(i32 noundef %773) #10
  %775 = icmp ne i32 %774, 0
  br i1 %775, label %776, label %793

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

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

810:                                              ; preds = %793, %776
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %811

811:                                              ; preds = %810
  br label %812

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

813:                                              ; No predecessors!
  br label %814

814:                                              ; preds = %813
  br label %815

815:                                              ; preds = %814, %755
  br label %816

816:                                              ; preds = %815
  br label %817

817:                                              ; preds = %816
  br label %818

818:                                              ; preds = %817
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  %821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %821, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %822 = call ptr @__errno_location() #11
  store i32 0, ptr %822, align 4, !tbaa !5
  br label %823

823:                                              ; preds = %820
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824
  br label %826

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827
  br label %829

829:                                              ; preds = %828
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = add nsw i32 %830, 1
  store i32 %831, ptr @test_count, align 4, !tbaa !5
  %832 = call i32 @s2n_connection_get_server_protocol_version(ptr noundef null)
  %833 = icmp eq i32 %832, -1
  br i1 %833, label %887, label %834

834:                                              ; preds = %829
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %837 = call ptr @__errno_location() #11
  %838 = load i32, ptr %837, align 4, !tbaa !5
  store i32 %838, ptr %17, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @s2n_print_stacktrace(ptr noundef %839)
  %841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %842 = trunc i8 %841 to i1
  br i1 %842, label %843, label %865

843:                                              ; preds = %836
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @fileno(ptr noundef %844) #10
  %846 = call i32 @isatty(i32 noundef %845) #10
  %847 = icmp ne i32 %846, 0
  br i1 %847, label %848, label %865

848:                                              ; preds = %843
  %849 = load i32, ptr %17, align 4, !tbaa !5
  %850 = call ptr @__errno_location() #11
  store i32 %849, ptr %850, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror(i32 noundef %854, ptr noundef @.str.4)
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror_debug(i32 noundef %857, ptr noundef @.str.4)
  %859 = call ptr @__errno_location() #11
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @strerror(i32 noundef %860) #10
  %862 = call ptr @__errno_location() #11
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %851, ptr noundef @.str.2, i32 noundef %852, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 98, ptr noundef %855, ptr noundef %858, ptr noundef %861, i32 noundef %863) #10
  br label %882

865:                                              ; preds = %843, %836
  %866 = load i32, ptr %17, align 4, !tbaa !5
  %867 = call ptr @__errno_location() #11
  store i32 %866, ptr %867, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = load i32, ptr @test_count, align 4, !tbaa !5
  %870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror(i32 noundef %871, ptr noundef @.str.4)
  %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_debug(i32 noundef %874, ptr noundef @.str.4)
  %876 = call ptr @__errno_location() #11
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @strerror(i32 noundef %877) #10
  %879 = call ptr @__errno_location() #11
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %868, ptr noundef @.str.5, i32 noundef %869, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 98, ptr noundef %872, ptr noundef %875, ptr noundef %878, i32 noundef %880) #10
  br label %882

882:                                              ; preds = %865, %848
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %883

883:                                              ; preds = %882
  br label %884

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

885:                                              ; No predecessors!
  br label %886

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886, %829
  br label %888

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr @test_count, align 4, !tbaa !5
  %893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %894 = load i32, ptr %893, align 4, !tbaa !5
  %895 = icmp eq i32 %894, 402653193
  br i1 %895, label %949, label %896

896:                                              ; preds = %890
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %899 = call ptr @__errno_location() #11
  %900 = load i32, ptr %899, align 4, !tbaa !5
  store i32 %900, ptr %18, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @s2n_print_stacktrace(ptr noundef %901)
  %903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %904 = trunc i8 %903 to i1
  br i1 %904, label %905, label %927

905:                                              ; preds = %898
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @fileno(ptr noundef %906) #10
  %908 = call i32 @isatty(i32 noundef %907) #10
  %909 = icmp ne i32 %908, 0
  br i1 %909, label %910, label %927

910:                                              ; preds = %905
  %911 = load i32, ptr %18, align 4, !tbaa !5
  %912 = call ptr @__errno_location() #11
  store i32 %911, ptr %912, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef @.str.4)
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef @.str.4)
  %921 = call ptr @__errno_location() #11
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @strerror(i32 noundef %922) #10
  %924 = call ptr @__errno_location() #11
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef @.str.2, i32 noundef %914, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 98, ptr noundef %917, ptr noundef %920, ptr noundef %923, i32 noundef %925) #10
  br label %944

927:                                              ; preds = %905, %898
  %928 = load i32, ptr %18, align 4, !tbaa !5
  %929 = call ptr @__errno_location() #11
  store i32 %928, ptr %929, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror(i32 noundef %933, ptr noundef @.str.4)
  %935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror_debug(i32 noundef %936, ptr noundef @.str.4)
  %938 = call ptr @__errno_location() #11
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call ptr @strerror(i32 noundef %939) #10
  %941 = call ptr @__errno_location() #11
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %930, ptr noundef @.str.5, i32 noundef %931, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 98, ptr noundef %934, ptr noundef %937, ptr noundef %940, i32 noundef %942) #10
  br label %944

944:                                              ; preds = %927, %910
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %945

945:                                              ; preds = %944
  br label %946

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

947:                                              ; No predecessors!
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948, %890
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = add nsw i32 %953, 1
  store i32 %954, ptr @test_count, align 4, !tbaa !5
  %955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = call ptr @s2n_strerror_debug(i32 noundef %956, ptr noundef @.str.4)
  %958 = icmp eq ptr %957, null
  br i1 %958, label %959, label %1012

959:                                              ; preds = %952
  br label %960

960:                                              ; preds = %959
  br label %961

961:                                              ; preds = %960
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  %962 = call ptr @__errno_location() #11
  %963 = load i32, ptr %962, align 4, !tbaa !5
  store i32 %963, ptr %19, align 4, !tbaa !5
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = call i32 @s2n_print_stacktrace(ptr noundef %964)
  %966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %967 = trunc i8 %966 to i1
  br i1 %967, label %968, label %990

968:                                              ; preds = %961
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = call i32 @fileno(ptr noundef %969) #10
  %971 = call i32 @isatty(i32 noundef %970) #10
  %972 = icmp ne i32 %971, 0
  br i1 %972, label %973, label %990

973:                                              ; preds = %968
  %974 = load i32, ptr %19, align 4, !tbaa !5
  %975 = call ptr @__errno_location() #11
  store i32 %974, ptr %975, align 4, !tbaa !5
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = load i32, ptr @test_count, align 4, !tbaa !5
  %978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call ptr @s2n_strerror(i32 noundef %979, ptr noundef @.str.4)
  %981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @s2n_strerror_debug(i32 noundef %982, ptr noundef @.str.4)
  %984 = call ptr @__errno_location() #11
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call ptr @strerror(i32 noundef %985) #10
  %987 = call ptr @__errno_location() #11
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %976, ptr noundef @.str.2, i32 noundef %977, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 98, ptr noundef %980, ptr noundef %983, ptr noundef %986, i32 noundef %988) #10
  br label %1007

990:                                              ; preds = %968, %961
  %991 = load i32, ptr %19, align 4, !tbaa !5
  %992 = call ptr @__errno_location() #11
  store i32 %991, ptr %992, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror(i32 noundef %996, ptr noundef @.str.4)
  %998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror_debug(i32 noundef %999, ptr noundef @.str.4)
  %1001 = call ptr @__errno_location() #11
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @strerror(i32 noundef %1002) #10
  %1004 = call ptr @__errno_location() #11
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %993, ptr noundef @.str.5, i32 noundef %994, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 98, ptr noundef %997, ptr noundef %1000, ptr noundef %1003, i32 noundef %1005) #10
  br label %1007

1007:                                             ; preds = %990, %973
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

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

1010:                                             ; No predecessors!
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

1012:                                             ; preds = %1011, %952
  br label %1013

1013:                                             ; preds = %1012
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

1016:                                             ; preds = %1015
  br label %1017

1017:                                             ; preds = %1016
  %1018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1018, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1019 = call ptr @__errno_location() #11
  store i32 0, ptr %1019, align 4, !tbaa !5
  br label %1020

1020:                                             ; preds = %1017
  br label %1021

1021:                                             ; preds = %1020
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025
  %1027 = load i32, ptr @test_count, align 4, !tbaa !5
  %1028 = add nsw i32 %1027, 1
  store i32 %1028, ptr @test_count, align 4, !tbaa !5
  %1029 = call i32 @s2n_connection_get_actual_protocol_version(ptr noundef null)
  %1030 = icmp eq i32 %1029, -1
  br i1 %1030, label %1084, label %1031

1031:                                             ; preds = %1026
  br label %1032

1032:                                             ; preds = %1031
  br label %1033

1033:                                             ; preds = %1032
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %1034 = call ptr @__errno_location() #11
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  store i32 %1035, ptr %20, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = call i32 @s2n_print_stacktrace(ptr noundef %1036)
  %1038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1039 = trunc i8 %1038 to i1
  br i1 %1039, label %1040, label %1062

1040:                                             ; preds = %1033
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = call i32 @fileno(ptr noundef %1041) #10
  %1043 = call i32 @isatty(i32 noundef %1042) #10
  %1044 = icmp ne i32 %1043, 0
  br i1 %1044, label %1045, label %1062

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

1062:                                             ; preds = %1040, %1033
  %1063 = load i32, ptr %20, align 4, !tbaa !5
  %1064 = call ptr @__errno_location() #11
  store i32 %1063, ptr %1064, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = load i32, ptr @test_count, align 4, !tbaa !5
  %1067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror(i32 noundef %1068, ptr noundef @.str.4)
  %1070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call ptr @s2n_strerror_debug(i32 noundef %1071, ptr noundef @.str.4)
  %1073 = call ptr @__errno_location() #11
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call ptr @strerror(i32 noundef %1074) #10
  %1076 = call ptr @__errno_location() #11
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1065, ptr noundef @.str.5, i32 noundef %1066, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1069, ptr noundef %1072, ptr noundef %1075, i32 noundef %1077) #10
  br label %1079

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

1080:                                             ; preds = %1079
  br label %1081

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

1082:                                             ; No predecessors!
  br label %1083

1083:                                             ; preds = %1082
  br label %1084

1084:                                             ; preds = %1083, %1026
  br label %1085

1085:                                             ; preds = %1084
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  %1088 = load i32, ptr @test_count, align 4, !tbaa !5
  %1089 = add nsw i32 %1088, 1
  store i32 %1089, ptr @test_count, align 4, !tbaa !5
  %1090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = icmp eq i32 %1091, 402653193
  br i1 %1092, label %1146, label %1093

1093:                                             ; preds = %1087
  br label %1094

1094:                                             ; preds = %1093
  br label %1095

1095:                                             ; preds = %1094
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %1096 = call ptr @__errno_location() #11
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  store i32 %1097, ptr %21, align 4, !tbaa !5
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = call i32 @s2n_print_stacktrace(ptr noundef %1098)
  %1100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1101 = trunc i8 %1100 to i1
  br i1 %1101, label %1102, label %1124

1102:                                             ; preds = %1095
  %1103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1104 = call i32 @fileno(ptr noundef %1103) #10
  %1105 = call i32 @isatty(i32 noundef %1104) #10
  %1106 = icmp ne i32 %1105, 0
  br i1 %1106, label %1107, label %1124

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

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

1141:                                             ; preds = %1124, %1107
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

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

1144:                                             ; No predecessors!
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

1146:                                             ; preds = %1145, %1087
  br label %1147

1147:                                             ; preds = %1146
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = add nsw i32 %1150, 1
  store i32 %1151, ptr @test_count, align 4, !tbaa !5
  %1152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = call ptr @s2n_strerror_debug(i32 noundef %1153, ptr noundef @.str.4)
  %1155 = icmp eq ptr %1154, null
  br i1 %1155, label %1156, label %1209

1156:                                             ; preds = %1149
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

1158:                                             ; preds = %1157
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %1159 = call ptr @__errno_location() #11
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  store i32 %1160, ptr %22, align 4, !tbaa !5
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @s2n_print_stacktrace(ptr noundef %1161)
  %1163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1164 = trunc i8 %1163 to i1
  br i1 %1164, label %1165, label %1187

1165:                                             ; preds = %1158
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = call i32 @fileno(ptr noundef %1166) #10
  %1168 = call i32 @isatty(i32 noundef %1167) #10
  %1169 = icmp ne i32 %1168, 0
  br i1 %1169, label %1170, label %1187

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

1187:                                             ; preds = %1165, %1158
  %1188 = load i32, ptr %22, align 4, !tbaa !5
  %1189 = call ptr @__errno_location() #11
  store i32 %1188, ptr %1189, align 4, !tbaa !5
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror(i32 noundef %1193, ptr noundef @.str.4)
  %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_debug(i32 noundef %1196, ptr noundef @.str.4)
  %1198 = call ptr @__errno_location() #11
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @strerror(i32 noundef %1199) #10
  %1201 = call ptr @__errno_location() #11
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1190, ptr noundef @.str.5, i32 noundef %1191, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1194, ptr noundef %1197, ptr noundef %1200, i32 noundef %1202) #10
  br label %1204

1204:                                             ; preds = %1187, %1170
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

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

1207:                                             ; No predecessors!
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208, %1149
  br label %1210

1210:                                             ; preds = %1209
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

1213:                                             ; preds = %1212
  br label %1214

1214:                                             ; preds = %1213
  %1215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1215, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1216 = call ptr @__errno_location() #11
  store i32 0, ptr %1216, align 4, !tbaa !5
  br label %1217

1217:                                             ; preds = %1214
  br label %1218

1218:                                             ; preds = %1217
  br label %1219

1219:                                             ; preds = %1218
  br label %1220

1220:                                             ; preds = %1219
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #10
  store i8 33, ptr %23, align 1, !tbaa !15
  br label %1221

1221:                                             ; preds = %2501, %1220
  %1222 = load i8, ptr %23, align 1, !tbaa !15
  %1223 = zext i8 %1222 to i32
  %1224 = icmp sle i32 %1223, 34
  br i1 %1224, label %1226, label %1225

1225:                                             ; preds = %1221
  store i32 126, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  br label %2504

1226:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #10
  store i8 30, ptr %25, align 1, !tbaa !15
  br label %1227

1227:                                             ; preds = %2497, %1226
  %1228 = load i8, ptr %25, align 1, !tbaa !15
  %1229 = zext i8 %1228 to i32
  %1230 = icmp sle i32 %1229, 33
  br i1 %1230, label %1232, label %1231

1231:                                             ; preds = %1227
  store i32 129, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #10
  br label %2500

1232:                                             ; preds = %1227
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #10
  store i8 30, ptr %26, align 1, !tbaa !15
  br label %1233

1233:                                             ; preds = %2493, %1232
  %1234 = load i8, ptr %26, align 1, !tbaa !15
  %1235 = zext i8 %1234 to i32
  %1236 = icmp sle i32 %1235, 34
  br i1 %1236, label %1238, label %1237

1237:                                             ; preds = %1233
  store i32 132, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #10
  br label %2496

1238:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #10
  %1239 = call ptr @s2n_config_new()
  store ptr %1239, ptr %27, align 8, !tbaa !9
  br label %1240

1240:                                             ; preds = %1238
  %1241 = load i32, ptr @test_count, align 4, !tbaa !5
  %1242 = add nsw i32 %1241, 1
  store i32 %1242, ptr @test_count, align 4, !tbaa !5
  %1243 = load ptr, ptr %27, align 8, !tbaa !9
  %1244 = load ptr, ptr %9, align 8, !tbaa !9
  %1245 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1243, ptr noundef %1244)
  %1246 = icmp eq i32 %1245, -1
  br i1 %1246, label %1247, label %1300

1247:                                             ; preds = %1240
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %1250 = call ptr @__errno_location() #11
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  store i32 %1251, ptr %28, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @s2n_print_stacktrace(ptr noundef %1252)
  %1254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1255 = trunc i8 %1254 to i1
  br i1 %1255, label %1256, label %1278

1256:                                             ; preds = %1249
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @fileno(ptr noundef %1257) #10
  %1259 = call i32 @isatty(i32 noundef %1258) #10
  %1260 = icmp ne i32 %1259, 0
  br i1 %1260, label %1261, label %1278

1261:                                             ; preds = %1256
  %1262 = load i32, ptr %28, align 4, !tbaa !5
  %1263 = call ptr @__errno_location() #11
  store i32 %1262, ptr %1263, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = load i32, ptr @test_count, align 4, !tbaa !5
  %1266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror(i32 noundef %1267, ptr noundef @.str.4)
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef @.str.4)
  %1272 = call ptr @__errno_location() #11
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @strerror(i32 noundef %1273) #10
  %1275 = call ptr @__errno_location() #11
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1264, ptr noundef @.str.2, i32 noundef %1265, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1268, ptr noundef %1271, ptr noundef %1274, i32 noundef %1276) #10
  br label %1295

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

1295:                                             ; preds = %1278, %1261
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

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

1298:                                             ; No predecessors!
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

1300:                                             ; preds = %1299, %1240
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  %1303 = load i8, ptr %23, align 1, !tbaa !15
  %1304 = zext i8 %1303 to i32
  %1305 = icmp eq i32 %1304, 33
  br i1 %1305, label %1306, label %1369

1306:                                             ; preds = %1302
  br label %1307

1307:                                             ; preds = %1306
  %1308 = load i32, ptr @test_count, align 4, !tbaa !5
  %1309 = add nsw i32 %1308, 1
  store i32 %1309, ptr @test_count, align 4, !tbaa !5
  %1310 = load ptr, ptr %27, align 8, !tbaa !9
  %1311 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1310, ptr noundef @.str.18)
  %1312 = icmp eq i32 %1311, -1
  br i1 %1312, label %1313, label %1366

1313:                                             ; preds = %1307
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %1316 = call ptr @__errno_location() #11
  %1317 = load i32, ptr %1316, align 4, !tbaa !5
  store i32 %1317, ptr %29, align 4, !tbaa !5
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = call i32 @s2n_print_stacktrace(ptr noundef %1318)
  %1320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1321 = trunc i8 %1320 to i1
  br i1 %1321, label %1322, label %1344

1322:                                             ; preds = %1315
  %1323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1324 = call i32 @fileno(ptr noundef %1323) #10
  %1325 = call i32 @isatty(i32 noundef %1324) #10
  %1326 = icmp ne i32 %1325, 0
  br i1 %1326, label %1327, label %1344

1327:                                             ; preds = %1322
  %1328 = load i32, ptr %29, align 4, !tbaa !5
  %1329 = call ptr @__errno_location() #11
  store i32 %1328, ptr %1329, align 4, !tbaa !5
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = load i32, ptr @test_count, align 4, !tbaa !5
  %1332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1333 = load i32, ptr %1332, align 4, !tbaa !5
  %1334 = call ptr @s2n_strerror(i32 noundef %1333, ptr noundef @.str.4)
  %1335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1336 = load i32, ptr %1335, align 4, !tbaa !5
  %1337 = call ptr @s2n_strerror_debug(i32 noundef %1336, ptr noundef @.str.4)
  %1338 = call ptr @__errno_location() #11
  %1339 = load i32, ptr %1338, align 4, !tbaa !5
  %1340 = call ptr @strerror(i32 noundef %1339) #10
  %1341 = call ptr @__errno_location() #11
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1330, ptr noundef @.str.2, i32 noundef %1331, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1334, ptr noundef %1337, ptr noundef %1340, i32 noundef %1342) #10
  br label %1361

1344:                                             ; preds = %1322, %1315
  %1345 = load i32, ptr %29, align 4, !tbaa !5
  %1346 = call ptr @__errno_location() #11
  store i32 %1345, ptr %1346, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  %1351 = call ptr @s2n_strerror(i32 noundef %1350, ptr noundef @.str.4)
  %1352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror_debug(i32 noundef %1353, ptr noundef @.str.4)
  %1355 = call ptr @__errno_location() #11
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call ptr @strerror(i32 noundef %1356) #10
  %1358 = call ptr @__errno_location() #11
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1347, ptr noundef @.str.5, i32 noundef %1348, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1351, ptr noundef %1354, ptr noundef %1357, i32 noundef %1359) #10
  br label %1361

1361:                                             ; preds = %1344, %1327
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1362

1362:                                             ; preds = %1361
  br label %1363

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

1364:                                             ; No predecessors!
  br label %1365

1365:                                             ; preds = %1364
  br label %1366

1366:                                             ; preds = %1365, %1307
  br label %1367

1367:                                             ; preds = %1366
  br label %1368

1368:                                             ; preds = %1367
  br label %1436

1369:                                             ; preds = %1302
  %1370 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %1370, label %1371, label %1434

1371:                                             ; preds = %1369
  br label %1372

1372:                                             ; preds = %1371
  %1373 = load i32, ptr @test_count, align 4, !tbaa !5
  %1374 = add nsw i32 %1373, 1
  store i32 %1374, ptr @test_count, align 4, !tbaa !5
  %1375 = load ptr, ptr %27, align 8, !tbaa !9
  %1376 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1375, ptr noundef @.str.20)
  %1377 = icmp eq i32 %1376, -1
  br i1 %1377, label %1378, label %1431

1378:                                             ; preds = %1372
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

1380:                                             ; preds = %1379
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  %1381 = call ptr @__errno_location() #11
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  store i32 %1382, ptr %30, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = call i32 @s2n_print_stacktrace(ptr noundef %1383)
  %1385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1386 = trunc i8 %1385 to i1
  br i1 %1386, label %1387, label %1409

1387:                                             ; preds = %1380
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = call i32 @fileno(ptr noundef %1388) #10
  %1390 = call i32 @isatty(i32 noundef %1389) #10
  %1391 = icmp ne i32 %1390, 0
  br i1 %1391, label %1392, label %1409

1392:                                             ; preds = %1387
  %1393 = load i32, ptr %30, align 4, !tbaa !5
  %1394 = call ptr @__errno_location() #11
  store i32 %1393, ptr %1394, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror(i32 noundef %1398, ptr noundef @.str.4)
  %1400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror_debug(i32 noundef %1401, ptr noundef @.str.4)
  %1403 = call ptr @__errno_location() #11
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @strerror(i32 noundef %1404) #10
  %1406 = call ptr @__errno_location() #11
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1395, ptr noundef @.str.2, i32 noundef %1396, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1399, ptr noundef %1402, ptr noundef %1405, i32 noundef %1407) #10
  br label %1426

1409:                                             ; preds = %1387, %1380
  %1410 = load i32, ptr %30, align 4, !tbaa !5
  %1411 = call ptr @__errno_location() #11
  store i32 %1410, ptr %1411, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror(i32 noundef %1415, ptr noundef @.str.4)
  %1417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror_debug(i32 noundef %1418, ptr noundef @.str.4)
  %1420 = call ptr @__errno_location() #11
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @strerror(i32 noundef %1421) #10
  %1423 = call ptr @__errno_location() #11
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1412, ptr noundef @.str.5, i32 noundef %1413, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1416, ptr noundef %1419, ptr noundef %1422, i32 noundef %1424) #10
  br label %1426

1426:                                             ; preds = %1409, %1392
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1427

1427:                                             ; preds = %1426
  br label %1428

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

1429:                                             ; No predecessors!
  br label %1430

1430:                                             ; preds = %1429
  br label %1431

1431:                                             ; preds = %1430, %1372
  br label %1432

1432:                                             ; preds = %1431
  br label %1433

1433:                                             ; preds = %1432
  br label %1435

1434:                                             ; preds = %1369
  store i32 134, ptr %24, align 4
  br label %2488

1435:                                             ; preds = %1433
  br label %1436

1436:                                             ; preds = %1435, %1368
  call void @llvm.lifetime.start.p0(i64 12, ptr %31) #10
  %1437 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %31, i32 0, i32 0
  %1438 = load i8, ptr %25, align 1, !tbaa !15
  store i8 %1438, ptr %1437, align 4, !tbaa !16
  %1439 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %31, i32 0, i32 1
  %1440 = load i8, ptr %26, align 1, !tbaa !15
  store i8 %1440, ptr %1439, align 1, !tbaa !18
  %1441 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %31, i32 0, i32 2
  store i8 2, ptr %1441, align 2, !tbaa !19
  %1442 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %31, i32 0, i32 3
  call void @llvm.memset.p0.i64(ptr align 1 %1442, i8 0, i64 3, i1 false)
  %1443 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %31, i32 0, i32 4
  store i32 0, ptr %1443, align 4, !tbaa !20
  br label %1444

1444:                                             ; preds = %1436
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = add nsw i32 %1445, 1
  store i32 %1446, ptr @test_count, align 4, !tbaa !5
  %1447 = load ptr, ptr %27, align 8, !tbaa !9
  %1448 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %1447, ptr noundef @s2n_overwrite_client_hello_cb, ptr noundef %31)
  %1449 = icmp eq i32 %1448, -1
  br i1 %1449, label %1450, label %1503

1450:                                             ; preds = %1444
  br label %1451

1451:                                             ; preds = %1450
  br label %1452

1452:                                             ; preds = %1451
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1453 = call ptr @__errno_location() #11
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  store i32 %1454, ptr %32, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = call i32 @s2n_print_stacktrace(ptr noundef %1455)
  %1457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1458 = trunc i8 %1457 to i1
  br i1 %1458, label %1459, label %1481

1459:                                             ; preds = %1452
  %1460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1461 = call i32 @fileno(ptr noundef %1460) #10
  %1462 = call i32 @isatty(i32 noundef %1461) #10
  %1463 = icmp ne i32 %1462, 0
  br i1 %1463, label %1464, label %1481

1464:                                             ; preds = %1459
  %1465 = load i32, ptr %32, align 4, !tbaa !5
  %1466 = call ptr @__errno_location() #11
  store i32 %1465, ptr %1466, align 4, !tbaa !5
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @s2n_strerror(i32 noundef %1470, ptr noundef @.str.4)
  %1472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror_debug(i32 noundef %1473, ptr noundef @.str.4)
  %1475 = call ptr @__errno_location() #11
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call ptr @strerror(i32 noundef %1476) #10
  %1478 = call ptr @__errno_location() #11
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1467, ptr noundef @.str.2, i32 noundef %1468, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1471, ptr noundef %1474, ptr noundef %1477, i32 noundef %1479) #10
  br label %1498

1481:                                             ; preds = %1459, %1452
  %1482 = load i32, ptr %32, align 4, !tbaa !5
  %1483 = call ptr @__errno_location() #11
  store i32 %1482, ptr %1483, align 4, !tbaa !5
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = load i32, ptr @test_count, align 4, !tbaa !5
  %1486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror(i32 noundef %1487, ptr noundef @.str.4)
  %1489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef @.str.4)
  %1492 = call ptr @__errno_location() #11
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @strerror(i32 noundef %1493) #10
  %1495 = call ptr @__errno_location() #11
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1484, ptr noundef @.str.5, i32 noundef %1485, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1488, ptr noundef %1491, ptr noundef %1494, i32 noundef %1496) #10
  br label %1498

1498:                                             ; preds = %1481, %1464
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1499

1499:                                             ; preds = %1498
  br label %1500

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

1501:                                             ; No predecessors!
  br label %1502

1502:                                             ; preds = %1501
  br label %1503

1503:                                             ; preds = %1502, %1444
  br label %1504

1504:                                             ; preds = %1503
  br label %1505

1505:                                             ; preds = %1504
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %1506 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1506, ptr %33, align 8, !tbaa !9
  br label %1507

1507:                                             ; preds = %1505
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr @test_count, align 4, !tbaa !5
  %1510 = load ptr, ptr %33, align 8, !tbaa !9
  %1511 = icmp eq ptr %1510, null
  br i1 %1511, label %1512, label %1565

1512:                                             ; preds = %1507
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

1514:                                             ; preds = %1513
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %1515 = call ptr @__errno_location() #11
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  store i32 %1516, ptr %34, align 4, !tbaa !5
  %1517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1518 = call i32 @s2n_print_stacktrace(ptr noundef %1517)
  %1519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1520 = trunc i8 %1519 to i1
  br i1 %1520, label %1521, label %1543

1521:                                             ; preds = %1514
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = call i32 @fileno(ptr noundef %1522) #10
  %1524 = call i32 @isatty(i32 noundef %1523) #10
  %1525 = icmp ne i32 %1524, 0
  br i1 %1525, label %1526, label %1543

1526:                                             ; preds = %1521
  %1527 = load i32, ptr %34, align 4, !tbaa !5
  %1528 = call ptr @__errno_location() #11
  store i32 %1527, ptr %1528, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %1531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror(i32 noundef %1532, ptr noundef @.str.4)
  %1534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call ptr @s2n_strerror_debug(i32 noundef %1535, ptr noundef @.str.4)
  %1537 = call ptr @__errno_location() #11
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = call ptr @strerror(i32 noundef %1538) #10
  %1540 = call ptr @__errno_location() #11
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1529, ptr noundef @.str.2, i32 noundef %1530, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1533, ptr noundef %1536, ptr noundef %1539, i32 noundef %1541) #10
  br label %1560

1543:                                             ; preds = %1521, %1514
  %1544 = load i32, ptr %34, align 4, !tbaa !5
  %1545 = call ptr @__errno_location() #11
  store i32 %1544, ptr %1545, align 4, !tbaa !5
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = load i32, ptr @test_count, align 4, !tbaa !5
  %1548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1549 = load i32, ptr %1548, align 4, !tbaa !5
  %1550 = call ptr @s2n_strerror(i32 noundef %1549, ptr noundef @.str.4)
  %1551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror_debug(i32 noundef %1552, ptr noundef @.str.4)
  %1554 = call ptr @__errno_location() #11
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @strerror(i32 noundef %1555) #10
  %1557 = call ptr @__errno_location() #11
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1546, ptr noundef @.str.5, i32 noundef %1547, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1550, ptr noundef %1553, ptr noundef %1556, i32 noundef %1558) #10
  br label %1560

1560:                                             ; preds = %1543, %1526
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1561

1561:                                             ; preds = %1560
  br label %1562

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

1563:                                             ; No predecessors!
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564, %1507
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

1568:                                             ; preds = %1567
  %1569 = load i32, ptr @test_count, align 4, !tbaa !5
  %1570 = add nsw i32 %1569, 1
  store i32 %1570, ptr @test_count, align 4, !tbaa !5
  %1571 = load ptr, ptr %33, align 8, !tbaa !9
  %1572 = load ptr, ptr %27, align 8, !tbaa !9
  %1573 = call i32 @s2n_connection_set_config(ptr noundef %1571, ptr noundef %1572)
  %1574 = icmp eq i32 %1573, -1
  br i1 %1574, label %1575, label %1628

1575:                                             ; preds = %1568
  br label %1576

1576:                                             ; preds = %1575
  br label %1577

1577:                                             ; preds = %1576
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %1578 = call ptr @__errno_location() #11
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  store i32 %1579, ptr %35, align 4, !tbaa !5
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = call i32 @s2n_print_stacktrace(ptr noundef %1580)
  %1582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1583 = trunc i8 %1582 to i1
  br i1 %1583, label %1584, label %1606

1584:                                             ; preds = %1577
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = call i32 @fileno(ptr noundef %1585) #10
  %1587 = call i32 @isatty(i32 noundef %1586) #10
  %1588 = icmp ne i32 %1587, 0
  br i1 %1588, label %1589, label %1606

1589:                                             ; preds = %1584
  %1590 = load i32, ptr %35, align 4, !tbaa !5
  %1591 = call ptr @__errno_location() #11
  store i32 %1590, ptr %1591, align 4, !tbaa !5
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call ptr @s2n_strerror(i32 noundef %1595, ptr noundef @.str.4)
  %1597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = call ptr @s2n_strerror_debug(i32 noundef %1598, ptr noundef @.str.4)
  %1600 = call ptr @__errno_location() #11
  %1601 = load i32, ptr %1600, align 4, !tbaa !5
  %1602 = call ptr @strerror(i32 noundef %1601) #10
  %1603 = call ptr @__errno_location() #11
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1592, ptr noundef @.str.2, i32 noundef %1593, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 127, ptr noundef %1596, ptr noundef %1599, ptr noundef %1602, i32 noundef %1604) #10
  br label %1623

1606:                                             ; preds = %1584, %1577
  %1607 = load i32, ptr %35, align 4, !tbaa !5
  %1608 = call ptr @__errno_location() #11
  store i32 %1607, ptr %1608, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror(i32 noundef %1612, ptr noundef @.str.4)
  %1614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  %1616 = call ptr @s2n_strerror_debug(i32 noundef %1615, ptr noundef @.str.4)
  %1617 = call ptr @__errno_location() #11
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  %1619 = call ptr @strerror(i32 noundef %1618) #10
  %1620 = call ptr @__errno_location() #11
  %1621 = load i32, ptr %1620, align 4, !tbaa !5
  %1622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1609, ptr noundef @.str.5, i32 noundef %1610, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 127, ptr noundef %1613, ptr noundef %1616, ptr noundef %1619, i32 noundef %1621) #10
  br label %1623

1623:                                             ; preds = %1606, %1589
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1624

1624:                                             ; preds = %1623
  br label %1625

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

1626:                                             ; No predecessors!
  br label %1627

1627:                                             ; preds = %1626
  br label %1628

1628:                                             ; preds = %1627, %1568
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  %1631 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1631, ptr %36, align 8, !tbaa !9
  br label %1632

1632:                                             ; preds = %1630
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = add nsw i32 %1633, 1
  store i32 %1634, ptr @test_count, align 4, !tbaa !5
  %1635 = load ptr, ptr %36, align 8, !tbaa !9
  %1636 = icmp eq ptr %1635, null
  br i1 %1636, label %1637, label %1690

1637:                                             ; preds = %1632
  br label %1638

1638:                                             ; preds = %1637
  br label %1639

1639:                                             ; preds = %1638
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %1640 = call ptr @__errno_location() #11
  %1641 = load i32, ptr %1640, align 4, !tbaa !5
  store i32 %1641, ptr %37, align 4, !tbaa !5
  %1642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1643 = call i32 @s2n_print_stacktrace(ptr noundef %1642)
  %1644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1645 = trunc i8 %1644 to i1
  br i1 %1645, label %1646, label %1668

1646:                                             ; preds = %1639
  %1647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1648 = call i32 @fileno(ptr noundef %1647) #10
  %1649 = call i32 @isatty(i32 noundef %1648) #10
  %1650 = icmp ne i32 %1649, 0
  br i1 %1650, label %1651, label %1668

1651:                                             ; preds = %1646
  %1652 = load i32, ptr %37, align 4, !tbaa !5
  %1653 = call ptr @__errno_location() #11
  store i32 %1652, ptr %1653, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = load i32, ptr @test_count, align 4, !tbaa !5
  %1656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call ptr @s2n_strerror(i32 noundef %1657, ptr noundef @.str.4)
  %1659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1660 = load i32, ptr %1659, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror_debug(i32 noundef %1660, ptr noundef @.str.4)
  %1662 = call ptr @__errno_location() #11
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = call ptr @strerror(i32 noundef %1663) #10
  %1665 = call ptr @__errno_location() #11
  %1666 = load i32, ptr %1665, align 4, !tbaa !5
  %1667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1654, ptr noundef @.str.2, i32 noundef %1655, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 131, ptr noundef %1658, ptr noundef %1661, ptr noundef %1664, i32 noundef %1666) #10
  br label %1685

1668:                                             ; preds = %1646, %1639
  %1669 = load i32, ptr %37, align 4, !tbaa !5
  %1670 = call ptr @__errno_location() #11
  store i32 %1669, ptr %1670, align 4, !tbaa !5
  %1671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1672 = load i32, ptr @test_count, align 4, !tbaa !5
  %1673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call ptr @s2n_strerror(i32 noundef %1674, ptr noundef @.str.4)
  %1676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror_debug(i32 noundef %1677, ptr noundef @.str.4)
  %1679 = call ptr @__errno_location() #11
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  %1681 = call ptr @strerror(i32 noundef %1680) #10
  %1682 = call ptr @__errno_location() #11
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1671, ptr noundef @.str.5, i32 noundef %1672, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 131, ptr noundef %1675, ptr noundef %1678, ptr noundef %1681, i32 noundef %1683) #10
  br label %1685

1685:                                             ; preds = %1668, %1651
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1686

1686:                                             ; preds = %1685
  br label %1687

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

1688:                                             ; No predecessors!
  br label %1689

1689:                                             ; preds = %1688
  br label %1690

1690:                                             ; preds = %1689, %1632
  br label %1691

1691:                                             ; preds = %1690
  br label %1692

1692:                                             ; preds = %1691
  br label %1693

1693:                                             ; preds = %1692
  %1694 = load i32, ptr @test_count, align 4, !tbaa !5
  %1695 = add nsw i32 %1694, 1
  store i32 %1695, ptr @test_count, align 4, !tbaa !5
  %1696 = load ptr, ptr %36, align 8, !tbaa !9
  %1697 = load ptr, ptr %27, align 8, !tbaa !9
  %1698 = call i32 @s2n_connection_set_config(ptr noundef %1696, ptr noundef %1697)
  %1699 = icmp eq i32 %1698, -1
  br i1 %1699, label %1700, label %1753

1700:                                             ; preds = %1693
  br label %1701

1701:                                             ; preds = %1700
  br label %1702

1702:                                             ; preds = %1701
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1703 = call ptr @__errno_location() #11
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  store i32 %1704, ptr %38, align 4, !tbaa !5
  %1705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1706 = call i32 @s2n_print_stacktrace(ptr noundef %1705)
  %1707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1708 = trunc i8 %1707 to i1
  br i1 %1708, label %1709, label %1731

1709:                                             ; preds = %1702
  %1710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1711 = call i32 @fileno(ptr noundef %1710) #10
  %1712 = call i32 @isatty(i32 noundef %1711) #10
  %1713 = icmp ne i32 %1712, 0
  br i1 %1713, label %1714, label %1731

1714:                                             ; preds = %1709
  %1715 = load i32, ptr %38, align 4, !tbaa !5
  %1716 = call ptr @__errno_location() #11
  store i32 %1715, ptr %1716, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = load i32, ptr @test_count, align 4, !tbaa !5
  %1719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror(i32 noundef %1720, ptr noundef @.str.4)
  %1722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call ptr @s2n_strerror_debug(i32 noundef %1723, ptr noundef @.str.4)
  %1725 = call ptr @__errno_location() #11
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @strerror(i32 noundef %1726) #10
  %1728 = call ptr @__errno_location() #11
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1717, ptr noundef @.str.2, i32 noundef %1718, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 132, ptr noundef %1721, ptr noundef %1724, ptr noundef %1727, i32 noundef %1729) #10
  br label %1748

1731:                                             ; preds = %1709, %1702
  %1732 = load i32, ptr %38, align 4, !tbaa !5
  %1733 = call ptr @__errno_location() #11
  store i32 %1732, ptr %1733, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = load i32, ptr @test_count, align 4, !tbaa !5
  %1736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror(i32 noundef %1737, ptr noundef @.str.4)
  %1739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror_debug(i32 noundef %1740, ptr noundef @.str.4)
  %1742 = call ptr @__errno_location() #11
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @strerror(i32 noundef %1743) #10
  %1745 = call ptr @__errno_location() #11
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1734, ptr noundef @.str.5, i32 noundef %1735, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 132, ptr noundef %1738, ptr noundef %1741, ptr noundef %1744, i32 noundef %1746) #10
  br label %1748

1748:                                             ; preds = %1731, %1714
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1749

1749:                                             ; preds = %1748
  br label %1750

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

1751:                                             ; No predecessors!
  br label %1752

1752:                                             ; preds = %1751
  br label %1753

1753:                                             ; preds = %1752, %1693
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

1755:                                             ; preds = %1754
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  call void @llvm.memset.p0.i64(ptr align 4 %39, i8 0, i64 8, i1 false)
  br label %1756

1756:                                             ; preds = %1755
  %1757 = load i32, ptr @test_count, align 4, !tbaa !5
  %1758 = add nsw i32 %1757, 1
  store i32 %1758, ptr @test_count, align 4, !tbaa !5
  %1759 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %39)
  %1760 = icmp eq i32 %1759, -1
  br i1 %1760, label %1761, label %1814

1761:                                             ; preds = %1756
  br label %1762

1762:                                             ; preds = %1761
  br label %1763

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

1770:                                             ; preds = %1763
  %1771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1772 = call i32 @fileno(ptr noundef %1771) #10
  %1773 = call i32 @isatty(i32 noundef %1772) #10
  %1774 = icmp ne i32 %1773, 0
  br i1 %1774, label %1775, label %1792

1775:                                             ; preds = %1770
  %1776 = load i32, ptr %40, align 4, !tbaa !5
  %1777 = call ptr @__errno_location() #11
  store i32 %1776, ptr %1777, align 4, !tbaa !5
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1781, ptr noundef @.str.4)
  %1783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = call ptr @s2n_strerror_debug(i32 noundef %1784, ptr noundef @.str.4)
  %1786 = call ptr @__errno_location() #11
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @strerror(i32 noundef %1787) #10
  %1789 = call ptr @__errno_location() #11
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1778, ptr noundef @.str.2, i32 noundef %1779, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 135, ptr noundef %1782, ptr noundef %1785, ptr noundef %1788, i32 noundef %1790) #10
  br label %1809

1792:                                             ; preds = %1770, %1763
  %1793 = load i32, ptr %40, align 4, !tbaa !5
  %1794 = call ptr @__errno_location() #11
  store i32 %1793, ptr %1794, align 4, !tbaa !5
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1798, ptr noundef @.str.4)
  %1800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror_debug(i32 noundef %1801, ptr noundef @.str.4)
  %1803 = call ptr @__errno_location() #11
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @strerror(i32 noundef %1804) #10
  %1806 = call ptr @__errno_location() #11
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1795, ptr noundef @.str.5, i32 noundef %1796, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 135, ptr noundef %1799, ptr noundef %1802, ptr noundef %1805, i32 noundef %1807) #10
  br label %1809

1809:                                             ; preds = %1792, %1775
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %1810

1810:                                             ; preds = %1809
  br label %1811

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

1812:                                             ; No predecessors!
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

1814:                                             ; preds = %1813, %1756
  br label %1815

1815:                                             ; preds = %1814
  br label %1816

1816:                                             ; preds = %1815
  br label %1817

1817:                                             ; preds = %1816
  %1818 = load i32, ptr @test_count, align 4, !tbaa !5
  %1819 = add nsw i32 %1818, 1
  store i32 %1819, ptr @test_count, align 4, !tbaa !5
  %1820 = load ptr, ptr %33, align 8, !tbaa !9
  %1821 = load ptr, ptr %36, align 8, !tbaa !9
  %1822 = call i32 @s2n_connections_set_io_pair(ptr noundef %1820, ptr noundef %1821, ptr noundef %39)
  %1823 = icmp eq i32 %1822, -1
  br i1 %1823, label %1824, label %1877

1824:                                             ; preds = %1817
  br label %1825

1825:                                             ; preds = %1824
  br label %1826

1826:                                             ; preds = %1825
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %1827 = call ptr @__errno_location() #11
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  store i32 %1828, ptr %41, align 4, !tbaa !5
  %1829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1830 = call i32 @s2n_print_stacktrace(ptr noundef %1829)
  %1831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1832 = trunc i8 %1831 to i1
  br i1 %1832, label %1833, label %1855

1833:                                             ; preds = %1826
  %1834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1835 = call i32 @fileno(ptr noundef %1834) #10
  %1836 = call i32 @isatty(i32 noundef %1835) #10
  %1837 = icmp ne i32 %1836, 0
  br i1 %1837, label %1838, label %1855

1838:                                             ; preds = %1833
  %1839 = load i32, ptr %41, align 4, !tbaa !5
  %1840 = call ptr @__errno_location() #11
  store i32 %1839, ptr %1840, align 4, !tbaa !5
  %1841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1842 = load i32, ptr @test_count, align 4, !tbaa !5
  %1843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror(i32 noundef %1844, ptr noundef @.str.4)
  %1846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror_debug(i32 noundef %1847, ptr noundef @.str.4)
  %1849 = call ptr @__errno_location() #11
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call ptr @strerror(i32 noundef %1850) #10
  %1852 = call ptr @__errno_location() #11
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1841, ptr noundef @.str.2, i32 noundef %1842, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 136, ptr noundef %1845, ptr noundef %1848, ptr noundef %1851, i32 noundef %1853) #10
  br label %1872

1855:                                             ; preds = %1833, %1826
  %1856 = load i32, ptr %41, align 4, !tbaa !5
  %1857 = call ptr @__errno_location() #11
  store i32 %1856, ptr %1857, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef @.str.4)
  %1863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror_debug(i32 noundef %1864, ptr noundef @.str.4)
  %1866 = call ptr @__errno_location() #11
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call ptr @strerror(i32 noundef %1867) #10
  %1869 = call ptr @__errno_location() #11
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1858, ptr noundef @.str.5, i32 noundef %1859, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 136, ptr noundef %1862, ptr noundef %1865, ptr noundef %1868, i32 noundef %1870) #10
  br label %1872

1872:                                             ; preds = %1855, %1838
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1873

1873:                                             ; preds = %1872
  br label %1874

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

1875:                                             ; No predecessors!
  br label %1876

1876:                                             ; preds = %1875
  br label %1877

1877:                                             ; preds = %1876, %1817
  br label %1878

1878:                                             ; preds = %1877
  br label %1879

1879:                                             ; preds = %1878
  br label %1880

1880:                                             ; preds = %1879
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = add nsw i32 %1881, 1
  store i32 %1882, ptr @test_count, align 4, !tbaa !5
  %1883 = load ptr, ptr %36, align 8, !tbaa !9
  %1884 = load ptr, ptr %33, align 8, !tbaa !9
  %1885 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %1883, ptr noundef %1884, i32 noundef 1)
  %1886 = getelementptr inbounds %struct.s2n_result, ptr %42, i32 0, i32 0
  store i32 %1885, ptr %1886, align 4
  %1887 = getelementptr inbounds %struct.s2n_result, ptr %42, i32 0, i32 0
  %1888 = load i32, ptr %1887, align 4
  %1889 = call zeroext i1 @s2n_result_is_ok(i32 %1888)
  br i1 %1889, label %1943, label %1890

1890:                                             ; preds = %1880
  br label %1891

1891:                                             ; preds = %1890
  br label %1892

1892:                                             ; preds = %1891
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1893 = call ptr @__errno_location() #11
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  store i32 %1894, ptr %43, align 4, !tbaa !5
  %1895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1896 = call i32 @s2n_print_stacktrace(ptr noundef %1895)
  %1897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1898 = trunc i8 %1897 to i1
  br i1 %1898, label %1899, label %1921

1899:                                             ; preds = %1892
  %1900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1901 = call i32 @fileno(ptr noundef %1900) #10
  %1902 = call i32 @isatty(i32 noundef %1901) #10
  %1903 = icmp ne i32 %1902, 0
  br i1 %1903, label %1904, label %1921

1904:                                             ; preds = %1899
  %1905 = load i32, ptr %43, align 4, !tbaa !5
  %1906 = call ptr @__errno_location() #11
  store i32 %1905, ptr %1906, align 4, !tbaa !5
  %1907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1908 = load i32, ptr @test_count, align 4, !tbaa !5
  %1909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1910 = load i32, ptr %1909, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror(i32 noundef %1910, ptr noundef @.str.4)
  %1912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1913 = load i32, ptr %1912, align 4, !tbaa !5
  %1914 = call ptr @s2n_strerror_debug(i32 noundef %1913, ptr noundef @.str.4)
  %1915 = call ptr @__errno_location() #11
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call ptr @strerror(i32 noundef %1916) #10
  %1918 = call ptr @__errno_location() #11
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1907, ptr noundef @.str.2, i32 noundef %1908, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 138, ptr noundef %1911, ptr noundef %1914, ptr noundef %1917, i32 noundef %1919) #10
  br label %1938

1921:                                             ; preds = %1899, %1892
  %1922 = load i32, ptr %43, align 4, !tbaa !5
  %1923 = call ptr @__errno_location() #11
  store i32 %1922, ptr %1923, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = load i32, ptr @test_count, align 4, !tbaa !5
  %1926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror(i32 noundef %1927, ptr noundef @.str.4)
  %1929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call ptr @s2n_strerror_debug(i32 noundef %1930, ptr noundef @.str.4)
  %1932 = call ptr @__errno_location() #11
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call ptr @strerror(i32 noundef %1933) #10
  %1935 = call ptr @__errno_location() #11
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1924, ptr noundef @.str.5, i32 noundef %1925, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 138, ptr noundef %1928, ptr noundef %1931, ptr noundef %1934, i32 noundef %1936) #10
  br label %1938

1938:                                             ; preds = %1921, %1904
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1939

1939:                                             ; preds = %1938
  br label %1940

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

1941:                                             ; No predecessors!
  br label %1942

1942:                                             ; preds = %1941
  br label %1943

1943:                                             ; preds = %1942, %1880
  br label %1944

1944:                                             ; preds = %1943
  br label %1945

1945:                                             ; preds = %1944
  br label %1946

1946:                                             ; preds = %1945
  %1947 = load i32, ptr @test_count, align 4, !tbaa !5
  %1948 = add nsw i32 %1947, 1
  store i32 %1948, ptr @test_count, align 4, !tbaa !5
  %1949 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %31, i32 0, i32 4
  %1950 = load i32, ptr %1949, align 4, !tbaa !20
  %1951 = icmp eq i32 %1950, 1
  br i1 %1951, label %2005, label %1952

1952:                                             ; preds = %1946
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

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

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

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

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

2000:                                             ; preds = %1983, %1966
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

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

2003:                                             ; No predecessors!
  br label %2004

2004:                                             ; preds = %2003
  br label %2005

2005:                                             ; preds = %2004, %1946
  br label %2006

2006:                                             ; preds = %2005
  br label %2007

2007:                                             ; preds = %2006
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #10
  store i8 0, ptr %45, align 1, !tbaa !11
  br label %2008

2008:                                             ; preds = %2007
  %2009 = load i32, ptr @test_count, align 4, !tbaa !5
  %2010 = add nsw i32 %2009, 1
  store i32 %2010, ptr @test_count, align 4, !tbaa !5
  %2011 = load ptr, ptr %36, align 8, !tbaa !9
  %2012 = getelementptr inbounds %struct.s2n_connection, ptr %2011, i32 0, i32 71
  %2013 = call i32 @s2n_client_hello_has_extension(ptr noundef %2012, i16 noundef zeroext 43, ptr noundef %45)
  %2014 = icmp eq i32 %2013, -1
  br i1 %2014, label %2015, label %2068

2015:                                             ; preds = %2008
  br label %2016

2016:                                             ; preds = %2015
  br label %2017

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

2024:                                             ; preds = %2017
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = call i32 @fileno(ptr noundef %2025) #10
  %2027 = call i32 @isatty(i32 noundef %2026) #10
  %2028 = icmp ne i32 %2027, 0
  br i1 %2028, label %2029, label %2046

2029:                                             ; preds = %2024
  %2030 = load i32, ptr %46, align 4, !tbaa !5
  %2031 = call ptr @__errno_location() #11
  store i32 %2030, ptr %2031, align 4, !tbaa !5
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = load i32, ptr @test_count, align 4, !tbaa !5
  %2034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror(i32 noundef %2035, ptr noundef @.str.4)
  %2037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror_debug(i32 noundef %2038, ptr noundef @.str.4)
  %2040 = call ptr @__errno_location() #11
  %2041 = load i32, ptr %2040, align 4, !tbaa !5
  %2042 = call ptr @strerror(i32 noundef %2041) #10
  %2043 = call ptr @__errno_location() #11
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2032, ptr noundef @.str.2, i32 noundef %2033, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2036, ptr noundef %2039, ptr noundef %2042, i32 noundef %2044) #10
  br label %2063

2046:                                             ; preds = %2024, %2017
  %2047 = load i32, ptr %46, align 4, !tbaa !5
  %2048 = call ptr @__errno_location() #11
  store i32 %2047, ptr %2048, align 4, !tbaa !5
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = load i32, ptr @test_count, align 4, !tbaa !5
  %2051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2052 = load i32, ptr %2051, align 4, !tbaa !5
  %2053 = call ptr @s2n_strerror(i32 noundef %2052, ptr noundef @.str.4)
  %2054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror_debug(i32 noundef %2055, ptr noundef @.str.4)
  %2057 = call ptr @__errno_location() #11
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @strerror(i32 noundef %2058) #10
  %2060 = call ptr @__errno_location() #11
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2049, ptr noundef @.str.5, i32 noundef %2050, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2053, ptr noundef %2056, ptr noundef %2059, i32 noundef %2061) #10
  br label %2063

2063:                                             ; preds = %2046, %2029
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %2064

2064:                                             ; preds = %2063
  br label %2065

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

2066:                                             ; No predecessors!
  br label %2067

2067:                                             ; preds = %2066
  br label %2068

2068:                                             ; preds = %2067, %2008
  br label %2069

2069:                                             ; preds = %2068
  br label %2070

2070:                                             ; preds = %2069
  br label %2071

2071:                                             ; preds = %2070
  %2072 = load i32, ptr @test_count, align 4, !tbaa !5
  %2073 = add nsw i32 %2072, 1
  store i32 %2073, ptr @test_count, align 4, !tbaa !5
  %2074 = load i8, ptr %45, align 1, !tbaa !11, !range !13, !noundef !14
  %2075 = trunc i8 %2074 to i1
  br i1 %2075, label %2129, label %2076

2076:                                             ; preds = %2071
  br label %2077

2077:                                             ; preds = %2076
  br label %2078

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

2085:                                             ; preds = %2078
  %2086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2087 = call i32 @fileno(ptr noundef %2086) #10
  %2088 = call i32 @isatty(i32 noundef %2087) #10
  %2089 = icmp ne i32 %2088, 0
  br i1 %2089, label %2090, label %2107

2090:                                             ; preds = %2085
  %2091 = load i32, ptr %47, align 4, !tbaa !5
  %2092 = call ptr @__errno_location() #11
  store i32 %2091, ptr %2092, align 4, !tbaa !5
  %2093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2094 = load i32, ptr @test_count, align 4, !tbaa !5
  %2095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call ptr @s2n_strerror(i32 noundef %2096, ptr noundef @.str.4)
  %2098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror_debug(i32 noundef %2099, ptr noundef @.str.4)
  %2101 = call ptr @__errno_location() #11
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call ptr @strerror(i32 noundef %2102) #10
  %2104 = call ptr @__errno_location() #11
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2093, ptr noundef @.str.2, i32 noundef %2094, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2097, ptr noundef %2100, ptr noundef %2103, i32 noundef %2105) #10
  br label %2124

2107:                                             ; preds = %2085, %2078
  %2108 = load i32, ptr %47, align 4, !tbaa !5
  %2109 = call ptr @__errno_location() #11
  store i32 %2108, ptr %2109, align 4, !tbaa !5
  %2110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2111 = load i32, ptr @test_count, align 4, !tbaa !5
  %2112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2113 = load i32, ptr %2112, align 4, !tbaa !5
  %2114 = call ptr @s2n_strerror(i32 noundef %2113, ptr noundef @.str.4)
  %2115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror_debug(i32 noundef %2116, ptr noundef @.str.4)
  %2118 = call ptr @__errno_location() #11
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @strerror(i32 noundef %2119) #10
  %2121 = call ptr @__errno_location() #11
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2110, ptr noundef @.str.5, i32 noundef %2111, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2114, ptr noundef %2117, ptr noundef %2120, i32 noundef %2122) #10
  br label %2124

2124:                                             ; preds = %2107, %2090
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %2125

2125:                                             ; preds = %2124
  br label %2126

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

2127:                                             ; No predecessors!
  br label %2128

2128:                                             ; preds = %2127
  br label %2129

2129:                                             ; preds = %2128, %2071
  br label %2130

2130:                                             ; preds = %2129
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131
  %2133 = load i32, ptr @test_count, align 4, !tbaa !5
  %2134 = add nsw i32 %2133, 1
  store i32 %2134, ptr @test_count, align 4, !tbaa !5
  %2135 = load ptr, ptr %36, align 8, !tbaa !9
  %2136 = call i32 @s2n_connection_get_server_protocol_version(ptr noundef %2135)
  %2137 = load i8, ptr %23, align 1, !tbaa !15
  %2138 = zext i8 %2137 to i32
  %2139 = icmp eq i32 %2136, %2138
  br i1 %2139, label %2193, label %2140

2140:                                             ; preds = %2132
  br label %2141

2141:                                             ; preds = %2140
  br label %2142

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

2149:                                             ; preds = %2142
  %2150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2151 = call i32 @fileno(ptr noundef %2150) #10
  %2152 = call i32 @isatty(i32 noundef %2151) #10
  %2153 = icmp ne i32 %2152, 0
  br i1 %2153, label %2154, label %2171

2154:                                             ; preds = %2149
  %2155 = load i32, ptr %48, align 4, !tbaa !5
  %2156 = call ptr @__errno_location() #11
  store i32 %2155, ptr %2156, align 4, !tbaa !5
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = load i32, ptr @test_count, align 4, !tbaa !5
  %2159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror(i32 noundef %2160, ptr noundef @.str.4)
  %2162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call ptr @s2n_strerror_debug(i32 noundef %2163, ptr noundef @.str.4)
  %2165 = call ptr @__errno_location() #11
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @strerror(i32 noundef %2166) #10
  %2168 = call ptr @__errno_location() #11
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2157, ptr noundef @.str.2, i32 noundef %2158, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2161, ptr noundef %2164, ptr noundef %2167, i32 noundef %2169) #10
  br label %2188

2171:                                             ; preds = %2149, %2142
  %2172 = load i32, ptr %48, align 4, !tbaa !5
  %2173 = call ptr @__errno_location() #11
  store i32 %2172, ptr %2173, align 4, !tbaa !5
  %2174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2175 = load i32, ptr @test_count, align 4, !tbaa !5
  %2176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2177 = load i32, ptr %2176, align 4, !tbaa !5
  %2178 = call ptr @s2n_strerror(i32 noundef %2177, ptr noundef @.str.4)
  %2179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  %2181 = call ptr @s2n_strerror_debug(i32 noundef %2180, ptr noundef @.str.4)
  %2182 = call ptr @__errno_location() #11
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  %2184 = call ptr @strerror(i32 noundef %2183) #10
  %2185 = call ptr @__errno_location() #11
  %2186 = load i32, ptr %2185, align 4, !tbaa !5
  %2187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2174, ptr noundef @.str.5, i32 noundef %2175, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2178, ptr noundef %2181, ptr noundef %2184, i32 noundef %2186) #10
  br label %2188

2188:                                             ; preds = %2171, %2154
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %2189

2189:                                             ; preds = %2188
  br label %2190

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

2191:                                             ; No predecessors!
  br label %2192

2192:                                             ; preds = %2191
  br label %2193

2193:                                             ; preds = %2192, %2132
  br label %2194

2194:                                             ; preds = %2193
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

2196:                                             ; preds = %2195
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = add nsw i32 %2197, 1
  store i32 %2198, ptr @test_count, align 4, !tbaa !5
  %2199 = load ptr, ptr %36, align 8, !tbaa !9
  %2200 = call i32 @s2n_connection_get_client_hello_version(ptr noundef %2199)
  %2201 = load i8, ptr %25, align 1, !tbaa !15
  %2202 = zext i8 %2201 to i32
  %2203 = icmp eq i32 %2200, %2202
  br i1 %2203, label %2257, label %2204

2204:                                             ; preds = %2196
  br label %2205

2205:                                             ; preds = %2204
  br label %2206

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

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

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

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

2252:                                             ; preds = %2235, %2218
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2253

2253:                                             ; preds = %2252
  br label %2254

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

2255:                                             ; No predecessors!
  br label %2256

2256:                                             ; preds = %2255
  br label %2257

2257:                                             ; preds = %2256, %2196
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

2259:                                             ; preds = %2258
  br label %2260

2260:                                             ; preds = %2259
  %2261 = load i32, ptr @test_count, align 4, !tbaa !5
  %2262 = add nsw i32 %2261, 1
  store i32 %2262, ptr @test_count, align 4, !tbaa !5
  %2263 = load ptr, ptr %36, align 8, !tbaa !9
  %2264 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %2263)
  %2265 = load i8, ptr %26, align 1, !tbaa !15
  %2266 = zext i8 %2265 to i32
  %2267 = icmp eq i32 %2264, %2266
  br i1 %2267, label %2321, label %2268

2268:                                             ; preds = %2260
  br label %2269

2269:                                             ; preds = %2268
  br label %2270

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

2277:                                             ; preds = %2270
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = call i32 @fileno(ptr noundef %2278) #10
  %2280 = call i32 @isatty(i32 noundef %2279) #10
  %2281 = icmp ne i32 %2280, 0
  br i1 %2281, label %2282, label %2299

2282:                                             ; preds = %2277
  %2283 = load i32, ptr %50, align 4, !tbaa !5
  %2284 = call ptr @__errno_location() #11
  store i32 %2283, ptr %2284, align 4, !tbaa !5
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = load i32, ptr @test_count, align 4, !tbaa !5
  %2287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror(i32 noundef %2288, ptr noundef @.str.4)
  %2290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror_debug(i32 noundef %2291, ptr noundef @.str.4)
  %2293 = call ptr @__errno_location() #11
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @strerror(i32 noundef %2294) #10
  %2296 = call ptr @__errno_location() #11
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2285, ptr noundef @.str.2, i32 noundef %2286, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 154, ptr noundef %2289, ptr noundef %2292, ptr noundef %2295, i32 noundef %2297) #10
  br label %2316

2299:                                             ; preds = %2277, %2270
  %2300 = load i32, ptr %50, align 4, !tbaa !5
  %2301 = call ptr @__errno_location() #11
  store i32 %2300, ptr %2301, align 4, !tbaa !5
  %2302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call ptr @s2n_strerror(i32 noundef %2305, ptr noundef @.str.4)
  %2307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call ptr @s2n_strerror_debug(i32 noundef %2308, ptr noundef @.str.4)
  %2310 = call ptr @__errno_location() #11
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call ptr @strerror(i32 noundef %2311) #10
  %2313 = call ptr @__errno_location() #11
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  %2315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2302, ptr noundef @.str.5, i32 noundef %2303, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 154, ptr noundef %2306, ptr noundef %2309, ptr noundef %2312, i32 noundef %2314) #10
  br label %2316

2316:                                             ; preds = %2299, %2282
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

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

2319:                                             ; No predecessors!
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320, %2260
  br label %2322

2322:                                             ; preds = %2321
  br label %2323

2323:                                             ; preds = %2322
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #10
  %2324 = load ptr, ptr %36, align 8, !tbaa !9
  %2325 = call i32 @s2n_connection_get_actual_protocol_version(ptr noundef %2324)
  %2326 = trunc i32 %2325 to i8
  store i8 %2326, ptr %51, align 1, !tbaa !15
  %2327 = load i8, ptr %23, align 1, !tbaa !15
  %2328 = zext i8 %2327 to i32
  %2329 = icmp eq i32 %2328, 33
  br i1 %2329, label %2330, label %2406

2330:                                             ; preds = %2323
  br label %2331

2331:                                             ; preds = %2330
  %2332 = load i32, ptr @test_count, align 4, !tbaa !5
  %2333 = add nsw i32 %2332, 1
  store i32 %2333, ptr @test_count, align 4, !tbaa !5
  %2334 = load i8, ptr %51, align 1, !tbaa !15
  %2335 = zext i8 %2334 to i32
  %2336 = load i8, ptr %23, align 1, !tbaa !15
  %2337 = zext i8 %2336 to i32
  %2338 = load i8, ptr %25, align 1, !tbaa !15
  %2339 = zext i8 %2338 to i32
  %2340 = icmp slt i32 %2337, %2339
  br i1 %2340, label %2341, label %2344

2341:                                             ; preds = %2331
  %2342 = load i8, ptr %23, align 1, !tbaa !15
  %2343 = zext i8 %2342 to i32
  br label %2347

2344:                                             ; preds = %2331
  %2345 = load i8, ptr %25, align 1, !tbaa !15
  %2346 = zext i8 %2345 to i32
  br label %2347

2347:                                             ; preds = %2344, %2341
  %2348 = phi i32 [ %2343, %2341 ], [ %2346, %2344 ]
  %2349 = icmp eq i32 %2335, %2348
  br i1 %2349, label %2403, label %2350

2350:                                             ; preds = %2347
  br label %2351

2351:                                             ; preds = %2350
  br label %2352

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

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

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

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

2398:                                             ; preds = %2381, %2364
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2399

2399:                                             ; preds = %2398
  br label %2400

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

2401:                                             ; No predecessors!
  br label %2402

2402:                                             ; preds = %2401
  br label %2403

2403:                                             ; preds = %2402, %2347
  br label %2404

2404:                                             ; preds = %2403
  br label %2405

2405:                                             ; preds = %2404
  br label %2482

2406:                                             ; preds = %2323
  br label %2407

2407:                                             ; preds = %2406
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = add nsw i32 %2408, 1
  store i32 %2409, ptr @test_count, align 4, !tbaa !5
  %2410 = load i8, ptr %51, align 1, !tbaa !15
  %2411 = zext i8 %2410 to i32
  %2412 = load i8, ptr %23, align 1, !tbaa !15
  %2413 = zext i8 %2412 to i32
  %2414 = load i8, ptr %26, align 1, !tbaa !15
  %2415 = zext i8 %2414 to i32
  %2416 = icmp slt i32 %2413, %2415
  br i1 %2416, label %2417, label %2420

2417:                                             ; preds = %2407
  %2418 = load i8, ptr %23, align 1, !tbaa !15
  %2419 = zext i8 %2418 to i32
  br label %2423

2420:                                             ; preds = %2407
  %2421 = load i8, ptr %26, align 1, !tbaa !15
  %2422 = zext i8 %2421 to i32
  br label %2423

2423:                                             ; preds = %2420, %2417
  %2424 = phi i32 [ %2419, %2417 ], [ %2422, %2420 ]
  %2425 = icmp eq i32 %2411, %2424
  br i1 %2425, label %2479, label %2426

2426:                                             ; preds = %2423
  br label %2427

2427:                                             ; preds = %2426
  br label %2428

2428:                                             ; preds = %2427
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  %2429 = call ptr @__errno_location() #11
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  store i32 %2430, ptr %53, align 4, !tbaa !5
  %2431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2432 = call i32 @s2n_print_stacktrace(ptr noundef %2431)
  %2433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2434 = trunc i8 %2433 to i1
  br i1 %2434, label %2435, label %2457

2435:                                             ; preds = %2428
  %2436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2437 = call i32 @fileno(ptr noundef %2436) #10
  %2438 = call i32 @isatty(i32 noundef %2437) #10
  %2439 = icmp ne i32 %2438, 0
  br i1 %2439, label %2440, label %2457

2440:                                             ; preds = %2435
  %2441 = load i32, ptr %53, align 4, !tbaa !5
  %2442 = call ptr @__errno_location() #11
  store i32 %2441, ptr %2442, align 4, !tbaa !5
  %2443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2444 = load i32, ptr @test_count, align 4, !tbaa !5
  %2445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call ptr @s2n_strerror(i32 noundef %2446, ptr noundef @.str.4)
  %2448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = call ptr @s2n_strerror_debug(i32 noundef %2449, ptr noundef @.str.4)
  %2451 = call ptr @__errno_location() #11
  %2452 = load i32, ptr %2451, align 4, !tbaa !5
  %2453 = call ptr @strerror(i32 noundef %2452) #10
  %2454 = call ptr @__errno_location() #11
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2443, ptr noundef @.str.2, i32 noundef %2444, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2447, ptr noundef %2450, ptr noundef %2453, i32 noundef %2455) #10
  br label %2474

2457:                                             ; preds = %2435, %2428
  %2458 = load i32, ptr %53, align 4, !tbaa !5
  %2459 = call ptr @__errno_location() #11
  store i32 %2458, ptr %2459, align 4, !tbaa !5
  %2460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2461 = load i32, ptr @test_count, align 4, !tbaa !5
  %2462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @s2n_strerror(i32 noundef %2463, ptr noundef @.str.4)
  %2465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @s2n_strerror_debug(i32 noundef %2466, ptr noundef @.str.4)
  %2468 = call ptr @__errno_location() #11
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call ptr @strerror(i32 noundef %2469) #10
  %2471 = call ptr @__errno_location() #11
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2460, ptr noundef @.str.5, i32 noundef %2461, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2464, ptr noundef %2467, ptr noundef %2470, i32 noundef %2472) #10
  br label %2474

2474:                                             ; preds = %2457, %2440
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2475

2475:                                             ; preds = %2474
  br label %2476

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

2477:                                             ; No predecessors!
  br label %2478

2478:                                             ; preds = %2477
  br label %2479

2479:                                             ; preds = %2478, %2423
  br label %2480

2480:                                             ; preds = %2479
  br label %2481

2481:                                             ; preds = %2480
  br label %2482

2482:                                             ; preds = %2481, %2405
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #10
  %2483 = call i32 @s2n_io_pair_close(ptr noundef %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  %2484 = call i32 @s2n_connection_ptr_free(ptr noundef %36)
  %2485 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  store i32 %2484, ptr %2485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  %2486 = call i32 @s2n_connection_ptr_free(ptr noundef %33)
  %2487 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  store i32 %2486, ptr %2487, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %31) #10
  store i32 0, ptr %24, align 4
  br label %2488

2488:                                             ; preds = %2482, %1434
  %2489 = call i32 @s2n_config_ptr_free(ptr noundef %27)
  %2490 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  store i32 %2489, ptr %2490, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  %2491 = load i32, ptr %24, align 4
  switch i32 %2491, label %7768 [
    i32 0, label %2492
    i32 134, label %2493
  ]

2492:                                             ; preds = %2488
  br label %2493

2493:                                             ; preds = %2492, %2488
  %2494 = load i8, ptr %26, align 1, !tbaa !15
  %2495 = add i8 %2494, 1
  store i8 %2495, ptr %26, align 1, !tbaa !15
  br label %1233, !llvm.loop !21

2496:                                             ; preds = %1237
  br label %2497

2497:                                             ; preds = %2496
  %2498 = load i8, ptr %25, align 1, !tbaa !15
  %2499 = add i8 %2498, 1
  store i8 %2499, ptr %25, align 1, !tbaa !15
  br label %1227, !llvm.loop !23

2500:                                             ; preds = %1231
  br label %2501

2501:                                             ; preds = %2500
  %2502 = load i8, ptr %23, align 1, !tbaa !15
  %2503 = add i8 %2502, 1
  store i8 %2503, ptr %23, align 1, !tbaa !15
  br label %1221, !llvm.loop !24

2504:                                             ; preds = %1225
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #10
  store i8 33, ptr %57, align 1, !tbaa !15
  br label %2505

2505:                                             ; preds = %3744, %2504
  %2506 = load i8, ptr %57, align 1, !tbaa !15
  %2507 = zext i8 %2506 to i32
  %2508 = icmp sle i32 %2507, 34
  br i1 %2508, label %2510, label %2509

2509:                                             ; preds = %2505
  store i32 249, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #10
  br label %3747

2510:                                             ; preds = %2505
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #10
  store i8 30, ptr %58, align 1, !tbaa !15
  br label %2511

2511:                                             ; preds = %3740, %2510
  %2512 = load i8, ptr %58, align 1, !tbaa !15
  %2513 = zext i8 %2512 to i32
  %2514 = icmp sle i32 %2513, 33
  br i1 %2514, label %2516, label %2515

2515:                                             ; preds = %2511
  store i32 252, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #10
  br label %3743

2516:                                             ; preds = %2511
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  %2517 = call ptr @s2n_config_new()
  store ptr %2517, ptr %59, align 8, !tbaa !9
  br label %2518

2518:                                             ; preds = %2516
  %2519 = load i32, ptr @test_count, align 4, !tbaa !5
  %2520 = add nsw i32 %2519, 1
  store i32 %2520, ptr @test_count, align 4, !tbaa !5
  %2521 = load ptr, ptr %59, align 8, !tbaa !9
  %2522 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2521, ptr noundef @.str.18)
  %2523 = icmp eq i32 %2522, -1
  br i1 %2523, label %2524, label %2577

2524:                                             ; preds = %2518
  br label %2525

2525:                                             ; preds = %2524
  br label %2526

2526:                                             ; preds = %2525
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %2527 = call ptr @__errno_location() #11
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  store i32 %2528, ptr %60, align 4, !tbaa !5
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = call i32 @s2n_print_stacktrace(ptr noundef %2529)
  %2531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2532 = trunc i8 %2531 to i1
  br i1 %2532, label %2533, label %2555

2533:                                             ; preds = %2526
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = call i32 @fileno(ptr noundef %2534) #10
  %2536 = call i32 @isatty(i32 noundef %2535) #10
  %2537 = icmp ne i32 %2536, 0
  br i1 %2537, label %2538, label %2555

2538:                                             ; preds = %2533
  %2539 = load i32, ptr %60, align 4, !tbaa !5
  %2540 = call ptr @__errno_location() #11
  store i32 %2539, ptr %2540, align 4, !tbaa !5
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror(i32 noundef %2544, ptr noundef @.str.4)
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef @.str.4)
  %2549 = call ptr @__errno_location() #11
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @strerror(i32 noundef %2550) #10
  %2552 = call ptr @__errno_location() #11
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2541, ptr noundef @.str.2, i32 noundef %2542, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 181, ptr noundef %2545, ptr noundef %2548, ptr noundef %2551, i32 noundef %2553) #10
  br label %2572

2555:                                             ; preds = %2533, %2526
  %2556 = load i32, ptr %60, align 4, !tbaa !5
  %2557 = call ptr @__errno_location() #11
  store i32 %2556, ptr %2557, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %2560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror(i32 noundef %2561, ptr noundef @.str.4)
  %2563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef @.str.4)
  %2566 = call ptr @__errno_location() #11
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @strerror(i32 noundef %2567) #10
  %2569 = call ptr @__errno_location() #11
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2558, ptr noundef @.str.5, i32 noundef %2559, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 181, ptr noundef %2562, ptr noundef %2565, ptr noundef %2568, i32 noundef %2570) #10
  br label %2572

2572:                                             ; preds = %2555, %2538
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2573

2573:                                             ; preds = %2572
  br label %2574

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

2575:                                             ; No predecessors!
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

2577:                                             ; preds = %2576, %2518
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  %2580 = call ptr @s2n_config_new()
  store ptr %2580, ptr %61, align 8, !tbaa !9
  br label %2581

2581:                                             ; preds = %2579
  %2582 = load i32, ptr @test_count, align 4, !tbaa !5
  %2583 = add nsw i32 %2582, 1
  store i32 %2583, ptr @test_count, align 4, !tbaa !5
  %2584 = load ptr, ptr %61, align 8, !tbaa !9
  %2585 = load ptr, ptr %9, align 8, !tbaa !9
  %2586 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2584, ptr noundef %2585)
  %2587 = icmp eq i32 %2586, -1
  br i1 %2587, label %2588, label %2641

2588:                                             ; preds = %2581
  br label %2589

2589:                                             ; preds = %2588
  br label %2590

2590:                                             ; preds = %2589
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2591 = call ptr @__errno_location() #11
  %2592 = load i32, ptr %2591, align 4, !tbaa !5
  store i32 %2592, ptr %62, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = call i32 @s2n_print_stacktrace(ptr noundef %2593)
  %2595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2596 = trunc i8 %2595 to i1
  br i1 %2596, label %2597, label %2619

2597:                                             ; preds = %2590
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = call i32 @fileno(ptr noundef %2598) #10
  %2600 = call i32 @isatty(i32 noundef %2599) #10
  %2601 = icmp ne i32 %2600, 0
  br i1 %2601, label %2602, label %2619

2602:                                             ; preds = %2597
  %2603 = load i32, ptr %62, align 4, !tbaa !5
  %2604 = call ptr @__errno_location() #11
  store i32 %2603, ptr %2604, align 4, !tbaa !5
  %2605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2606 = load i32, ptr @test_count, align 4, !tbaa !5
  %2607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2608 = load i32, ptr %2607, align 4, !tbaa !5
  %2609 = call ptr @s2n_strerror(i32 noundef %2608, ptr noundef @.str.4)
  %2610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2611 = load i32, ptr %2610, align 4, !tbaa !5
  %2612 = call ptr @s2n_strerror_debug(i32 noundef %2611, ptr noundef @.str.4)
  %2613 = call ptr @__errno_location() #11
  %2614 = load i32, ptr %2613, align 4, !tbaa !5
  %2615 = call ptr @strerror(i32 noundef %2614) #10
  %2616 = call ptr @__errno_location() #11
  %2617 = load i32, ptr %2616, align 4, !tbaa !5
  %2618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2605, ptr noundef @.str.2, i32 noundef %2606, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 184, ptr noundef %2609, ptr noundef %2612, ptr noundef %2615, i32 noundef %2617) #10
  br label %2636

2619:                                             ; preds = %2597, %2590
  %2620 = load i32, ptr %62, align 4, !tbaa !5
  %2621 = call ptr @__errno_location() #11
  store i32 %2620, ptr %2621, align 4, !tbaa !5
  %2622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2623 = load i32, ptr @test_count, align 4, !tbaa !5
  %2624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2625 = load i32, ptr %2624, align 4, !tbaa !5
  %2626 = call ptr @s2n_strerror(i32 noundef %2625, ptr noundef @.str.4)
  %2627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2628 = load i32, ptr %2627, align 4, !tbaa !5
  %2629 = call ptr @s2n_strerror_debug(i32 noundef %2628, ptr noundef @.str.4)
  %2630 = call ptr @__errno_location() #11
  %2631 = load i32, ptr %2630, align 4, !tbaa !5
  %2632 = call ptr @strerror(i32 noundef %2631) #10
  %2633 = call ptr @__errno_location() #11
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  %2635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2622, ptr noundef @.str.5, i32 noundef %2623, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 184, ptr noundef %2626, ptr noundef %2629, ptr noundef %2632, i32 noundef %2634) #10
  br label %2636

2636:                                             ; preds = %2619, %2602
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2637

2637:                                             ; preds = %2636
  br label %2638

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

2639:                                             ; No predecessors!
  br label %2640

2640:                                             ; preds = %2639
  br label %2641

2641:                                             ; preds = %2640, %2581
  br label %2642

2642:                                             ; preds = %2641
  br label %2643

2643:                                             ; preds = %2642
  %2644 = load i8, ptr %57, align 1, !tbaa !15
  %2645 = zext i8 %2644 to i32
  %2646 = icmp eq i32 %2645, 33
  br i1 %2646, label %2647, label %2710

2647:                                             ; preds = %2643
  br label %2648

2648:                                             ; preds = %2647
  %2649 = load i32, ptr @test_count, align 4, !tbaa !5
  %2650 = add nsw i32 %2649, 1
  store i32 %2650, ptr @test_count, align 4, !tbaa !5
  %2651 = load ptr, ptr %61, align 8, !tbaa !9
  %2652 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2651, ptr noundef @.str.18)
  %2653 = icmp eq i32 %2652, -1
  br i1 %2653, label %2654, label %2707

2654:                                             ; preds = %2648
  br label %2655

2655:                                             ; preds = %2654
  br label %2656

2656:                                             ; preds = %2655
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2657 = call ptr @__errno_location() #11
  %2658 = load i32, ptr %2657, align 4, !tbaa !5
  store i32 %2658, ptr %63, align 4, !tbaa !5
  %2659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2660 = call i32 @s2n_print_stacktrace(ptr noundef %2659)
  %2661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2662 = trunc i8 %2661 to i1
  br i1 %2662, label %2663, label %2685

2663:                                             ; preds = %2656
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = call i32 @fileno(ptr noundef %2664) #10
  %2666 = call i32 @isatty(i32 noundef %2665) #10
  %2667 = icmp ne i32 %2666, 0
  br i1 %2667, label %2668, label %2685

2668:                                             ; preds = %2663
  %2669 = load i32, ptr %63, align 4, !tbaa !5
  %2670 = call ptr @__errno_location() #11
  store i32 %2669, ptr %2670, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = load i32, ptr @test_count, align 4, !tbaa !5
  %2673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror(i32 noundef %2674, ptr noundef @.str.4)
  %2676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror_debug(i32 noundef %2677, ptr noundef @.str.4)
  %2679 = call ptr @__errno_location() #11
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @strerror(i32 noundef %2680) #10
  %2682 = call ptr @__errno_location() #11
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2671, ptr noundef @.str.2, i32 noundef %2672, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2675, ptr noundef %2678, ptr noundef %2681, i32 noundef %2683) #10
  br label %2702

2685:                                             ; preds = %2663, %2656
  %2686 = load i32, ptr %63, align 4, !tbaa !5
  %2687 = call ptr @__errno_location() #11
  store i32 %2686, ptr %2687, align 4, !tbaa !5
  %2688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2689 = load i32, ptr @test_count, align 4, !tbaa !5
  %2690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2691 = load i32, ptr %2690, align 4, !tbaa !5
  %2692 = call ptr @s2n_strerror(i32 noundef %2691, ptr noundef @.str.4)
  %2693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2694 = load i32, ptr %2693, align 4, !tbaa !5
  %2695 = call ptr @s2n_strerror_debug(i32 noundef %2694, ptr noundef @.str.4)
  %2696 = call ptr @__errno_location() #11
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = call ptr @strerror(i32 noundef %2697) #10
  %2699 = call ptr @__errno_location() #11
  %2700 = load i32, ptr %2699, align 4, !tbaa !5
  %2701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2688, ptr noundef @.str.5, i32 noundef %2689, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2692, ptr noundef %2695, ptr noundef %2698, i32 noundef %2700) #10
  br label %2702

2702:                                             ; preds = %2685, %2668
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2703

2703:                                             ; preds = %2702
  br label %2704

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

2705:                                             ; No predecessors!
  br label %2706

2706:                                             ; preds = %2705
  br label %2707

2707:                                             ; preds = %2706, %2648
  br label %2708

2708:                                             ; preds = %2707
  br label %2709

2709:                                             ; preds = %2708
  br label %2777

2710:                                             ; preds = %2643
  %2711 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %2711, label %2712, label %2775

2712:                                             ; preds = %2710
  br label %2713

2713:                                             ; preds = %2712
  %2714 = load i32, ptr @test_count, align 4, !tbaa !5
  %2715 = add nsw i32 %2714, 1
  store i32 %2715, ptr @test_count, align 4, !tbaa !5
  %2716 = load ptr, ptr %61, align 8, !tbaa !9
  %2717 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2716, ptr noundef @.str.20)
  %2718 = icmp eq i32 %2717, -1
  br i1 %2718, label %2719, label %2772

2719:                                             ; preds = %2713
  br label %2720

2720:                                             ; preds = %2719
  br label %2721

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

2728:                                             ; preds = %2721
  %2729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2730 = call i32 @fileno(ptr noundef %2729) #10
  %2731 = call i32 @isatty(i32 noundef %2730) #10
  %2732 = icmp ne i32 %2731, 0
  br i1 %2732, label %2733, label %2750

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

2750:                                             ; preds = %2728, %2721
  %2751 = load i32, ptr %64, align 4, !tbaa !5
  %2752 = call ptr @__errno_location() #11
  store i32 %2751, ptr %2752, align 4, !tbaa !5
  %2753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2754 = load i32, ptr @test_count, align 4, !tbaa !5
  %2755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2756 = load i32, ptr %2755, align 4, !tbaa !5
  %2757 = call ptr @s2n_strerror(i32 noundef %2756, ptr noundef @.str.4)
  %2758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2759 = load i32, ptr %2758, align 4, !tbaa !5
  %2760 = call ptr @s2n_strerror_debug(i32 noundef %2759, ptr noundef @.str.4)
  %2761 = call ptr @__errno_location() #11
  %2762 = load i32, ptr %2761, align 4, !tbaa !5
  %2763 = call ptr @strerror(i32 noundef %2762) #10
  %2764 = call ptr @__errno_location() #11
  %2765 = load i32, ptr %2764, align 4, !tbaa !5
  %2766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2753, ptr noundef @.str.5, i32 noundef %2754, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 189, ptr noundef %2757, ptr noundef %2760, ptr noundef %2763, i32 noundef %2765) #10
  br label %2767

2767:                                             ; preds = %2750, %2733
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2768

2768:                                             ; preds = %2767
  br label %2769

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

2770:                                             ; No predecessors!
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

2772:                                             ; preds = %2771, %2713
  br label %2773

2773:                                             ; preds = %2772
  br label %2774

2774:                                             ; preds = %2773
  br label %2776

2775:                                             ; preds = %2710
  store i32 254, ptr %24, align 4
  br label %3733

2776:                                             ; preds = %2774
  br label %2777

2777:                                             ; preds = %2776, %2709
  call void @llvm.lifetime.start.p0(i64 12, ptr %65) #10
  %2778 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %65, i32 0, i32 0
  %2779 = load i8, ptr %58, align 1, !tbaa !15
  store i8 %2779, ptr %2778, align 4, !tbaa !16
  %2780 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %65, i32 0, i32 1
  store i8 0, ptr %2780, align 1, !tbaa !18
  %2781 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %65, i32 0, i32 2
  store i8 0, ptr %2781, align 2, !tbaa !19
  %2782 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %65, i32 0, i32 3
  call void @llvm.memset.p0.i64(ptr align 1 %2782, i8 0, i64 3, i1 false)
  %2783 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %65, i32 0, i32 4
  store i32 0, ptr %2783, align 4, !tbaa !20
  br label %2784

2784:                                             ; preds = %2777
  %2785 = load i32, ptr @test_count, align 4, !tbaa !5
  %2786 = add nsw i32 %2785, 1
  store i32 %2786, ptr @test_count, align 4, !tbaa !5
  %2787 = load ptr, ptr %61, align 8, !tbaa !9
  %2788 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %2787, ptr noundef @s2n_overwrite_client_hello_cb, ptr noundef %65)
  %2789 = icmp eq i32 %2788, -1
  br i1 %2789, label %2790, label %2843

2790:                                             ; preds = %2784
  br label %2791

2791:                                             ; preds = %2790
  br label %2792

2792:                                             ; preds = %2791
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %2793 = call ptr @__errno_location() #11
  %2794 = load i32, ptr %2793, align 4, !tbaa !5
  store i32 %2794, ptr %66, align 4, !tbaa !5
  %2795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2796 = call i32 @s2n_print_stacktrace(ptr noundef %2795)
  %2797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2798 = trunc i8 %2797 to i1
  br i1 %2798, label %2799, label %2821

2799:                                             ; preds = %2792
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = call i32 @fileno(ptr noundef %2800) #10
  %2802 = call i32 @isatty(i32 noundef %2801) #10
  %2803 = icmp ne i32 %2802, 0
  br i1 %2803, label %2804, label %2821

2804:                                             ; preds = %2799
  %2805 = load i32, ptr %66, align 4, !tbaa !5
  %2806 = call ptr @__errno_location() #11
  store i32 %2805, ptr %2806, align 4, !tbaa !5
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror(i32 noundef %2810, ptr noundef @.str.4)
  %2812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call ptr @s2n_strerror_debug(i32 noundef %2813, ptr noundef @.str.4)
  %2815 = call ptr @__errno_location() #11
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call ptr @strerror(i32 noundef %2816) #10
  %2818 = call ptr @__errno_location() #11
  %2819 = load i32, ptr %2818, align 4, !tbaa !5
  %2820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2807, ptr noundef @.str.2, i32 noundef %2808, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 197, ptr noundef %2811, ptr noundef %2814, ptr noundef %2817, i32 noundef %2819) #10
  br label %2838

2821:                                             ; preds = %2799, %2792
  %2822 = load i32, ptr %66, align 4, !tbaa !5
  %2823 = call ptr @__errno_location() #11
  store i32 %2822, ptr %2823, align 4, !tbaa !5
  %2824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2827 = load i32, ptr %2826, align 4, !tbaa !5
  %2828 = call ptr @s2n_strerror(i32 noundef %2827, ptr noundef @.str.4)
  %2829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2830 = load i32, ptr %2829, align 4, !tbaa !5
  %2831 = call ptr @s2n_strerror_debug(i32 noundef %2830, ptr noundef @.str.4)
  %2832 = call ptr @__errno_location() #11
  %2833 = load i32, ptr %2832, align 4, !tbaa !5
  %2834 = call ptr @strerror(i32 noundef %2833) #10
  %2835 = call ptr @__errno_location() #11
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2824, ptr noundef @.str.5, i32 noundef %2825, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 197, ptr noundef %2828, ptr noundef %2831, ptr noundef %2834, i32 noundef %2836) #10
  br label %2838

2838:                                             ; preds = %2821, %2804
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %2839

2839:                                             ; preds = %2838
  br label %2840

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

2841:                                             ; No predecessors!
  br label %2842

2842:                                             ; preds = %2841
  br label %2843

2843:                                             ; preds = %2842, %2784
  br label %2844

2844:                                             ; preds = %2843
  br label %2845

2845:                                             ; preds = %2844
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #10
  %2846 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2846, ptr %67, align 8, !tbaa !9
  br label %2847

2847:                                             ; preds = %2845
  %2848 = load i32, ptr @test_count, align 4, !tbaa !5
  %2849 = add nsw i32 %2848, 1
  store i32 %2849, ptr @test_count, align 4, !tbaa !5
  %2850 = load ptr, ptr %67, align 8, !tbaa !9
  %2851 = icmp eq ptr %2850, null
  br i1 %2851, label %2852, label %2905

2852:                                             ; preds = %2847
  br label %2853

2853:                                             ; preds = %2852
  br label %2854

2854:                                             ; preds = %2853
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %2855 = call ptr @__errno_location() #11
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  store i32 %2856, ptr %68, align 4, !tbaa !5
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = call i32 @s2n_print_stacktrace(ptr noundef %2857)
  %2859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2860 = trunc i8 %2859 to i1
  br i1 %2860, label %2861, label %2883

2861:                                             ; preds = %2854
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = call i32 @fileno(ptr noundef %2862) #10
  %2864 = call i32 @isatty(i32 noundef %2863) #10
  %2865 = icmp ne i32 %2864, 0
  br i1 %2865, label %2866, label %2883

2866:                                             ; preds = %2861
  %2867 = load i32, ptr %68, align 4, !tbaa !5
  %2868 = call ptr @__errno_location() #11
  store i32 %2867, ptr %2868, align 4, !tbaa !5
  %2869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2870 = load i32, ptr @test_count, align 4, !tbaa !5
  %2871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call ptr @s2n_strerror(i32 noundef %2872, ptr noundef @.str.4)
  %2874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call ptr @s2n_strerror_debug(i32 noundef %2875, ptr noundef @.str.4)
  %2877 = call ptr @__errno_location() #11
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  %2879 = call ptr @strerror(i32 noundef %2878) #10
  %2880 = call ptr @__errno_location() #11
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2869, ptr noundef @.str.2, i32 noundef %2870, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 201, ptr noundef %2873, ptr noundef %2876, ptr noundef %2879, i32 noundef %2881) #10
  br label %2900

2883:                                             ; preds = %2861, %2854
  %2884 = load i32, ptr %68, align 4, !tbaa !5
  %2885 = call ptr @__errno_location() #11
  store i32 %2884, ptr %2885, align 4, !tbaa !5
  %2886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2887 = load i32, ptr @test_count, align 4, !tbaa !5
  %2888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call ptr @s2n_strerror(i32 noundef %2889, ptr noundef @.str.4)
  %2891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror_debug(i32 noundef %2892, ptr noundef @.str.4)
  %2894 = call ptr @__errno_location() #11
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call ptr @strerror(i32 noundef %2895) #10
  %2897 = call ptr @__errno_location() #11
  %2898 = load i32, ptr %2897, align 4, !tbaa !5
  %2899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2886, ptr noundef @.str.5, i32 noundef %2887, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 201, ptr noundef %2890, ptr noundef %2893, ptr noundef %2896, i32 noundef %2898) #10
  br label %2900

2900:                                             ; preds = %2883, %2866
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %2901

2901:                                             ; preds = %2900
  br label %2902

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

2903:                                             ; No predecessors!
  br label %2904

2904:                                             ; preds = %2903
  br label %2905

2905:                                             ; preds = %2904, %2847
  br label %2906

2906:                                             ; preds = %2905
  br label %2907

2907:                                             ; preds = %2906
  br label %2908

2908:                                             ; preds = %2907
  %2909 = load i32, ptr @test_count, align 4, !tbaa !5
  %2910 = add nsw i32 %2909, 1
  store i32 %2910, ptr @test_count, align 4, !tbaa !5
  %2911 = load ptr, ptr %67, align 8, !tbaa !9
  %2912 = load ptr, ptr %59, align 8, !tbaa !9
  %2913 = call i32 @s2n_connection_set_config(ptr noundef %2911, ptr noundef %2912)
  %2914 = icmp eq i32 %2913, -1
  br i1 %2914, label %2915, label %2968

2915:                                             ; preds = %2908
  br label %2916

2916:                                             ; preds = %2915
  br label %2917

2917:                                             ; preds = %2916
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %2918 = call ptr @__errno_location() #11
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  store i32 %2919, ptr %69, align 4, !tbaa !5
  %2920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2921 = call i32 @s2n_print_stacktrace(ptr noundef %2920)
  %2922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2923 = trunc i8 %2922 to i1
  br i1 %2923, label %2924, label %2946

2924:                                             ; preds = %2917
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = call i32 @fileno(ptr noundef %2925) #10
  %2927 = call i32 @isatty(i32 noundef %2926) #10
  %2928 = icmp ne i32 %2927, 0
  br i1 %2928, label %2929, label %2946

2929:                                             ; preds = %2924
  %2930 = load i32, ptr %69, align 4, !tbaa !5
  %2931 = call ptr @__errno_location() #11
  store i32 %2930, ptr %2931, align 4, !tbaa !5
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = load i32, ptr @test_count, align 4, !tbaa !5
  %2934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2935 = load i32, ptr %2934, align 4, !tbaa !5
  %2936 = call ptr @s2n_strerror(i32 noundef %2935, ptr noundef @.str.4)
  %2937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2938 = load i32, ptr %2937, align 4, !tbaa !5
  %2939 = call ptr @s2n_strerror_debug(i32 noundef %2938, ptr noundef @.str.4)
  %2940 = call ptr @__errno_location() #11
  %2941 = load i32, ptr %2940, align 4, !tbaa !5
  %2942 = call ptr @strerror(i32 noundef %2941) #10
  %2943 = call ptr @__errno_location() #11
  %2944 = load i32, ptr %2943, align 4, !tbaa !5
  %2945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2932, ptr noundef @.str.2, i32 noundef %2933, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 202, ptr noundef %2936, ptr noundef %2939, ptr noundef %2942, i32 noundef %2944) #10
  br label %2963

2946:                                             ; preds = %2924, %2917
  %2947 = load i32, ptr %69, align 4, !tbaa !5
  %2948 = call ptr @__errno_location() #11
  store i32 %2947, ptr %2948, align 4, !tbaa !5
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = load i32, ptr @test_count, align 4, !tbaa !5
  %2951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @s2n_strerror(i32 noundef %2952, ptr noundef @.str.4)
  %2954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call ptr @s2n_strerror_debug(i32 noundef %2955, ptr noundef @.str.4)
  %2957 = call ptr @__errno_location() #11
  %2958 = load i32, ptr %2957, align 4, !tbaa !5
  %2959 = call ptr @strerror(i32 noundef %2958) #10
  %2960 = call ptr @__errno_location() #11
  %2961 = load i32, ptr %2960, align 4, !tbaa !5
  %2962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2949, ptr noundef @.str.5, i32 noundef %2950, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 202, ptr noundef %2953, ptr noundef %2956, ptr noundef %2959, i32 noundef %2961) #10
  br label %2963

2963:                                             ; preds = %2946, %2929
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %2964

2964:                                             ; preds = %2963
  br label %2965

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

2966:                                             ; No predecessors!
  br label %2967

2967:                                             ; preds = %2966
  br label %2968

2968:                                             ; preds = %2967, %2908
  br label %2969

2969:                                             ; preds = %2968
  br label %2970

2970:                                             ; preds = %2969
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  %2971 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2971, ptr %70, align 8, !tbaa !9
  br label %2972

2972:                                             ; preds = %2970
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = add nsw i32 %2973, 1
  store i32 %2974, ptr @test_count, align 4, !tbaa !5
  %2975 = load ptr, ptr %70, align 8, !tbaa !9
  %2976 = icmp eq ptr %2975, null
  br i1 %2976, label %2977, label %3030

2977:                                             ; preds = %2972
  br label %2978

2978:                                             ; preds = %2977
  br label %2979

2979:                                             ; preds = %2978
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %2980 = call ptr @__errno_location() #11
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  store i32 %2981, ptr %71, align 4, !tbaa !5
  %2982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2983 = call i32 @s2n_print_stacktrace(ptr noundef %2982)
  %2984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2985 = trunc i8 %2984 to i1
  br i1 %2985, label %2986, label %3008

2986:                                             ; preds = %2979
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = call i32 @fileno(ptr noundef %2987) #10
  %2989 = call i32 @isatty(i32 noundef %2988) #10
  %2990 = icmp ne i32 %2989, 0
  br i1 %2990, label %2991, label %3008

2991:                                             ; preds = %2986
  %2992 = load i32, ptr %71, align 4, !tbaa !5
  %2993 = call ptr @__errno_location() #11
  store i32 %2992, ptr %2993, align 4, !tbaa !5
  %2994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2995 = load i32, ptr @test_count, align 4, !tbaa !5
  %2996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call ptr @s2n_strerror(i32 noundef %2997, ptr noundef @.str.4)
  %2999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3000 = load i32, ptr %2999, align 4, !tbaa !5
  %3001 = call ptr @s2n_strerror_debug(i32 noundef %3000, ptr noundef @.str.4)
  %3002 = call ptr @__errno_location() #11
  %3003 = load i32, ptr %3002, align 4, !tbaa !5
  %3004 = call ptr @strerror(i32 noundef %3003) #10
  %3005 = call ptr @__errno_location() #11
  %3006 = load i32, ptr %3005, align 4, !tbaa !5
  %3007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2994, ptr noundef @.str.2, i32 noundef %2995, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2998, ptr noundef %3001, ptr noundef %3004, i32 noundef %3006) #10
  br label %3025

3008:                                             ; preds = %2986, %2979
  %3009 = load i32, ptr %71, align 4, !tbaa !5
  %3010 = call ptr @__errno_location() #11
  store i32 %3009, ptr %3010, align 4, !tbaa !5
  %3011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3012 = load i32, ptr @test_count, align 4, !tbaa !5
  %3013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  %3015 = call ptr @s2n_strerror(i32 noundef %3014, ptr noundef @.str.4)
  %3016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3017 = load i32, ptr %3016, align 4, !tbaa !5
  %3018 = call ptr @s2n_strerror_debug(i32 noundef %3017, ptr noundef @.str.4)
  %3019 = call ptr @__errno_location() #11
  %3020 = load i32, ptr %3019, align 4, !tbaa !5
  %3021 = call ptr @strerror(i32 noundef %3020) #10
  %3022 = call ptr @__errno_location() #11
  %3023 = load i32, ptr %3022, align 4, !tbaa !5
  %3024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3011, ptr noundef @.str.5, i32 noundef %3012, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 206, ptr noundef %3015, ptr noundef %3018, ptr noundef %3021, i32 noundef %3023) #10
  br label %3025

3025:                                             ; preds = %3008, %2991
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3026

3026:                                             ; preds = %3025
  br label %3027

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

3028:                                             ; No predecessors!
  br label %3029

3029:                                             ; preds = %3028
  br label %3030

3030:                                             ; preds = %3029, %2972
  br label %3031

3031:                                             ; preds = %3030
  br label %3032

3032:                                             ; preds = %3031
  br label %3033

3033:                                             ; preds = %3032
  %3034 = load i32, ptr @test_count, align 4, !tbaa !5
  %3035 = add nsw i32 %3034, 1
  store i32 %3035, ptr @test_count, align 4, !tbaa !5
  %3036 = load ptr, ptr %70, align 8, !tbaa !9
  %3037 = load ptr, ptr %61, align 8, !tbaa !9
  %3038 = call i32 @s2n_connection_set_config(ptr noundef %3036, ptr noundef %3037)
  %3039 = icmp eq i32 %3038, -1
  br i1 %3039, label %3040, label %3093

3040:                                             ; preds = %3033
  br label %3041

3041:                                             ; preds = %3040
  br label %3042

3042:                                             ; preds = %3041
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %3043 = call ptr @__errno_location() #11
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  store i32 %3044, ptr %72, align 4, !tbaa !5
  %3045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3046 = call i32 @s2n_print_stacktrace(ptr noundef %3045)
  %3047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3048 = trunc i8 %3047 to i1
  br i1 %3048, label %3049, label %3071

3049:                                             ; preds = %3042
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = call i32 @fileno(ptr noundef %3050) #10
  %3052 = call i32 @isatty(i32 noundef %3051) #10
  %3053 = icmp ne i32 %3052, 0
  br i1 %3053, label %3054, label %3071

3054:                                             ; preds = %3049
  %3055 = load i32, ptr %72, align 4, !tbaa !5
  %3056 = call ptr @__errno_location() #11
  store i32 %3055, ptr %3056, align 4, !tbaa !5
  %3057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3058 = load i32, ptr @test_count, align 4, !tbaa !5
  %3059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call ptr @s2n_strerror(i32 noundef %3060, ptr noundef @.str.4)
  %3062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3063 = load i32, ptr %3062, align 4, !tbaa !5
  %3064 = call ptr @s2n_strerror_debug(i32 noundef %3063, ptr noundef @.str.4)
  %3065 = call ptr @__errno_location() #11
  %3066 = load i32, ptr %3065, align 4, !tbaa !5
  %3067 = call ptr @strerror(i32 noundef %3066) #10
  %3068 = call ptr @__errno_location() #11
  %3069 = load i32, ptr %3068, align 4, !tbaa !5
  %3070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3057, ptr noundef @.str.2, i32 noundef %3058, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 207, ptr noundef %3061, ptr noundef %3064, ptr noundef %3067, i32 noundef %3069) #10
  br label %3088

3071:                                             ; preds = %3049, %3042
  %3072 = load i32, ptr %72, align 4, !tbaa !5
  %3073 = call ptr @__errno_location() #11
  store i32 %3072, ptr %3073, align 4, !tbaa !5
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = load i32, ptr @test_count, align 4, !tbaa !5
  %3076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call ptr @s2n_strerror(i32 noundef %3077, ptr noundef @.str.4)
  %3079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3080 = load i32, ptr %3079, align 4, !tbaa !5
  %3081 = call ptr @s2n_strerror_debug(i32 noundef %3080, ptr noundef @.str.4)
  %3082 = call ptr @__errno_location() #11
  %3083 = load i32, ptr %3082, align 4, !tbaa !5
  %3084 = call ptr @strerror(i32 noundef %3083) #10
  %3085 = call ptr @__errno_location() #11
  %3086 = load i32, ptr %3085, align 4, !tbaa !5
  %3087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3074, ptr noundef @.str.5, i32 noundef %3075, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 207, ptr noundef %3078, ptr noundef %3081, ptr noundef %3084, i32 noundef %3086) #10
  br label %3088

3088:                                             ; preds = %3071, %3054
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %3089

3089:                                             ; preds = %3088
  br label %3090

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

3091:                                             ; No predecessors!
  br label %3092

3092:                                             ; preds = %3091
  br label %3093

3093:                                             ; preds = %3092, %3033
  br label %3094

3094:                                             ; preds = %3093
  br label %3095

3095:                                             ; preds = %3094
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  call void @llvm.memset.p0.i64(ptr align 4 %73, i8 0, i64 8, i1 false)
  br label %3096

3096:                                             ; preds = %3095
  %3097 = load i32, ptr @test_count, align 4, !tbaa !5
  %3098 = add nsw i32 %3097, 1
  store i32 %3098, ptr @test_count, align 4, !tbaa !5
  %3099 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %73)
  %3100 = icmp eq i32 %3099, -1
  br i1 %3100, label %3101, label %3154

3101:                                             ; preds = %3096
  br label %3102

3102:                                             ; preds = %3101
  br label %3103

3103:                                             ; preds = %3102
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  %3104 = call ptr @__errno_location() #11
  %3105 = load i32, ptr %3104, align 4, !tbaa !5
  store i32 %3105, ptr %74, align 4, !tbaa !5
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3107 = call i32 @s2n_print_stacktrace(ptr noundef %3106)
  %3108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3109 = trunc i8 %3108 to i1
  br i1 %3109, label %3110, label %3132

3110:                                             ; preds = %3103
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = call i32 @fileno(ptr noundef %3111) #10
  %3113 = call i32 @isatty(i32 noundef %3112) #10
  %3114 = icmp ne i32 %3113, 0
  br i1 %3114, label %3115, label %3132

3115:                                             ; preds = %3110
  %3116 = load i32, ptr %74, align 4, !tbaa !5
  %3117 = call ptr @__errno_location() #11
  store i32 %3116, ptr %3117, align 4, !tbaa !5
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = load i32, ptr @test_count, align 4, !tbaa !5
  %3120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call ptr @s2n_strerror(i32 noundef %3121, ptr noundef @.str.4)
  %3123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = call ptr @s2n_strerror_debug(i32 noundef %3124, ptr noundef @.str.4)
  %3126 = call ptr @__errno_location() #11
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @strerror(i32 noundef %3127) #10
  %3129 = call ptr @__errno_location() #11
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3118, ptr noundef @.str.2, i32 noundef %3119, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 210, ptr noundef %3122, ptr noundef %3125, ptr noundef %3128, i32 noundef %3130) #10
  br label %3149

3132:                                             ; preds = %3110, %3103
  %3133 = load i32, ptr %74, align 4, !tbaa !5
  %3134 = call ptr @__errno_location() #11
  store i32 %3133, ptr %3134, align 4, !tbaa !5
  %3135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3136 = load i32, ptr @test_count, align 4, !tbaa !5
  %3137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3138 = load i32, ptr %3137, align 4, !tbaa !5
  %3139 = call ptr @s2n_strerror(i32 noundef %3138, ptr noundef @.str.4)
  %3140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3141 = load i32, ptr %3140, align 4, !tbaa !5
  %3142 = call ptr @s2n_strerror_debug(i32 noundef %3141, ptr noundef @.str.4)
  %3143 = call ptr @__errno_location() #11
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call ptr @strerror(i32 noundef %3144) #10
  %3146 = call ptr @__errno_location() #11
  %3147 = load i32, ptr %3146, align 4, !tbaa !5
  %3148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3135, ptr noundef @.str.5, i32 noundef %3136, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 210, ptr noundef %3139, ptr noundef %3142, ptr noundef %3145, i32 noundef %3147) #10
  br label %3149

3149:                                             ; preds = %3132, %3115
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %3150

3150:                                             ; preds = %3149
  br label %3151

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

3152:                                             ; No predecessors!
  br label %3153

3153:                                             ; preds = %3152
  br label %3154

3154:                                             ; preds = %3153, %3096
  br label %3155

3155:                                             ; preds = %3154
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

3157:                                             ; preds = %3156
  %3158 = load i32, ptr @test_count, align 4, !tbaa !5
  %3159 = add nsw i32 %3158, 1
  store i32 %3159, ptr @test_count, align 4, !tbaa !5
  %3160 = load ptr, ptr %67, align 8, !tbaa !9
  %3161 = load ptr, ptr %70, align 8, !tbaa !9
  %3162 = call i32 @s2n_connections_set_io_pair(ptr noundef %3160, ptr noundef %3161, ptr noundef %73)
  %3163 = icmp eq i32 %3162, -1
  br i1 %3163, label %3164, label %3217

3164:                                             ; preds = %3157
  br label %3165

3165:                                             ; preds = %3164
  br label %3166

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

3173:                                             ; preds = %3166
  %3174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3175 = call i32 @fileno(ptr noundef %3174) #10
  %3176 = call i32 @isatty(i32 noundef %3175) #10
  %3177 = icmp ne i32 %3176, 0
  br i1 %3177, label %3178, label %3195

3178:                                             ; preds = %3173
  %3179 = load i32, ptr %75, align 4, !tbaa !5
  %3180 = call ptr @__errno_location() #11
  store i32 %3179, ptr %3180, align 4, !tbaa !5
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3184, ptr noundef @.str.4)
  %3186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3187 = load i32, ptr %3186, align 4, !tbaa !5
  %3188 = call ptr @s2n_strerror_debug(i32 noundef %3187, ptr noundef @.str.4)
  %3189 = call ptr @__errno_location() #11
  %3190 = load i32, ptr %3189, align 4, !tbaa !5
  %3191 = call ptr @strerror(i32 noundef %3190) #10
  %3192 = call ptr @__errno_location() #11
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3181, ptr noundef @.str.2, i32 noundef %3182, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 211, ptr noundef %3185, ptr noundef %3188, ptr noundef %3191, i32 noundef %3193) #10
  br label %3212

3195:                                             ; preds = %3173, %3166
  %3196 = load i32, ptr %75, align 4, !tbaa !5
  %3197 = call ptr @__errno_location() #11
  store i32 %3196, ptr %3197, align 4, !tbaa !5
  %3198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3199 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3201, ptr noundef @.str.4)
  %3203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3204 = load i32, ptr %3203, align 4, !tbaa !5
  %3205 = call ptr @s2n_strerror_debug(i32 noundef %3204, ptr noundef @.str.4)
  %3206 = call ptr @__errno_location() #11
  %3207 = load i32, ptr %3206, align 4, !tbaa !5
  %3208 = call ptr @strerror(i32 noundef %3207) #10
  %3209 = call ptr @__errno_location() #11
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3198, ptr noundef @.str.5, i32 noundef %3199, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 211, ptr noundef %3202, ptr noundef %3205, ptr noundef %3208, i32 noundef %3210) #10
  br label %3212

3212:                                             ; preds = %3195, %3178
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3213

3213:                                             ; preds = %3212
  br label %3214

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

3215:                                             ; No predecessors!
  br label %3216

3216:                                             ; preds = %3215
  br label %3217

3217:                                             ; preds = %3216, %3157
  br label %3218

3218:                                             ; preds = %3217
  br label %3219

3219:                                             ; preds = %3218
  br label %3220

3220:                                             ; preds = %3219
  %3221 = load i32, ptr @test_count, align 4, !tbaa !5
  %3222 = add nsw i32 %3221, 1
  store i32 %3222, ptr @test_count, align 4, !tbaa !5
  %3223 = load ptr, ptr %70, align 8, !tbaa !9
  %3224 = load ptr, ptr %67, align 8, !tbaa !9
  %3225 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %3223, ptr noundef %3224, i32 noundef 1)
  %3226 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  store i32 %3225, ptr %3226, align 4
  %3227 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  %3228 = load i32, ptr %3227, align 4
  %3229 = call zeroext i1 @s2n_result_is_ok(i32 %3228)
  br i1 %3229, label %3283, label %3230

3230:                                             ; preds = %3220
  br label %3231

3231:                                             ; preds = %3230
  br label %3232

3232:                                             ; preds = %3231
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3233 = call ptr @__errno_location() #11
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  store i32 %3234, ptr %77, align 4, !tbaa !5
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = call i32 @s2n_print_stacktrace(ptr noundef %3235)
  %3237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3238 = trunc i8 %3237 to i1
  br i1 %3238, label %3239, label %3261

3239:                                             ; preds = %3232
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = call i32 @fileno(ptr noundef %3240) #10
  %3242 = call i32 @isatty(i32 noundef %3241) #10
  %3243 = icmp ne i32 %3242, 0
  br i1 %3243, label %3244, label %3261

3244:                                             ; preds = %3239
  %3245 = load i32, ptr %77, align 4, !tbaa !5
  %3246 = call ptr @__errno_location() #11
  store i32 %3245, ptr %3246, align 4, !tbaa !5
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = load i32, ptr @test_count, align 4, !tbaa !5
  %3249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call ptr @s2n_strerror(i32 noundef %3250, ptr noundef @.str.4)
  %3252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3253 = load i32, ptr %3252, align 4, !tbaa !5
  %3254 = call ptr @s2n_strerror_debug(i32 noundef %3253, ptr noundef @.str.4)
  %3255 = call ptr @__errno_location() #11
  %3256 = load i32, ptr %3255, align 4, !tbaa !5
  %3257 = call ptr @strerror(i32 noundef %3256) #10
  %3258 = call ptr @__errno_location() #11
  %3259 = load i32, ptr %3258, align 4, !tbaa !5
  %3260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3247, ptr noundef @.str.2, i32 noundef %3248, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3251, ptr noundef %3254, ptr noundef %3257, i32 noundef %3259) #10
  br label %3278

3261:                                             ; preds = %3239, %3232
  %3262 = load i32, ptr %77, align 4, !tbaa !5
  %3263 = call ptr @__errno_location() #11
  store i32 %3262, ptr %3263, align 4, !tbaa !5
  %3264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3265 = load i32, ptr @test_count, align 4, !tbaa !5
  %3266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3267 = load i32, ptr %3266, align 4, !tbaa !5
  %3268 = call ptr @s2n_strerror(i32 noundef %3267, ptr noundef @.str.4)
  %3269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3270 = load i32, ptr %3269, align 4, !tbaa !5
  %3271 = call ptr @s2n_strerror_debug(i32 noundef %3270, ptr noundef @.str.4)
  %3272 = call ptr @__errno_location() #11
  %3273 = load i32, ptr %3272, align 4, !tbaa !5
  %3274 = call ptr @strerror(i32 noundef %3273) #10
  %3275 = call ptr @__errno_location() #11
  %3276 = load i32, ptr %3275, align 4, !tbaa !5
  %3277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3264, ptr noundef @.str.5, i32 noundef %3265, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3268, ptr noundef %3271, ptr noundef %3274, i32 noundef %3276) #10
  br label %3278

3278:                                             ; preds = %3261, %3244
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3279

3279:                                             ; preds = %3278
  br label %3280

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

3281:                                             ; No predecessors!
  br label %3282

3282:                                             ; preds = %3281
  br label %3283

3283:                                             ; preds = %3282, %3220
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

3285:                                             ; preds = %3284
  br label %3286

3286:                                             ; preds = %3285
  %3287 = load i32, ptr @test_count, align 4, !tbaa !5
  %3288 = add nsw i32 %3287, 1
  store i32 %3288, ptr @test_count, align 4, !tbaa !5
  %3289 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %65, i32 0, i32 4
  %3290 = load i32, ptr %3289, align 4, !tbaa !20
  %3291 = icmp eq i32 %3290, 1
  br i1 %3291, label %3345, label %3292

3292:                                             ; preds = %3286
  br label %3293

3293:                                             ; preds = %3292
  br label %3294

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

3301:                                             ; preds = %3294
  %3302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3303 = call i32 @fileno(ptr noundef %3302) #10
  %3304 = call i32 @isatty(i32 noundef %3303) #10
  %3305 = icmp ne i32 %3304, 0
  br i1 %3305, label %3306, label %3323

3306:                                             ; preds = %3301
  %3307 = load i32, ptr %78, align 4, !tbaa !5
  %3308 = call ptr @__errno_location() #11
  store i32 %3307, ptr %3308, align 4, !tbaa !5
  %3309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3312, ptr noundef @.str.4)
  %3314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call ptr @s2n_strerror_debug(i32 noundef %3315, ptr noundef @.str.4)
  %3317 = call ptr @__errno_location() #11
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  %3319 = call ptr @strerror(i32 noundef %3318) #10
  %3320 = call ptr @__errno_location() #11
  %3321 = load i32, ptr %3320, align 4, !tbaa !5
  %3322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3309, ptr noundef @.str.2, i32 noundef %3310, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3313, ptr noundef %3316, ptr noundef %3319, i32 noundef %3321) #10
  br label %3340

3323:                                             ; preds = %3301, %3294
  %3324 = load i32, ptr %78, align 4, !tbaa !5
  %3325 = call ptr @__errno_location() #11
  store i32 %3324, ptr %3325, align 4, !tbaa !5
  %3326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3327 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3329, ptr noundef @.str.4)
  %3331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @s2n_strerror_debug(i32 noundef %3332, ptr noundef @.str.4)
  %3334 = call ptr @__errno_location() #11
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call ptr @strerror(i32 noundef %3335) #10
  %3337 = call ptr @__errno_location() #11
  %3338 = load i32, ptr %3337, align 4, !tbaa !5
  %3339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3326, ptr noundef @.str.5, i32 noundef %3327, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3330, ptr noundef %3333, ptr noundef %3336, i32 noundef %3338) #10
  br label %3340

3340:                                             ; preds = %3323, %3306
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %3341

3341:                                             ; preds = %3340
  br label %3342

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

3343:                                             ; No predecessors!
  br label %3344

3344:                                             ; preds = %3343
  br label %3345

3345:                                             ; preds = %3344, %3286
  br label %3346

3346:                                             ; preds = %3345
  br label %3347

3347:                                             ; preds = %3346
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #10
  store i8 0, ptr %79, align 1, !tbaa !11
  br label %3348

3348:                                             ; preds = %3347
  %3349 = load i32, ptr @test_count, align 4, !tbaa !5
  %3350 = add nsw i32 %3349, 1
  store i32 %3350, ptr @test_count, align 4, !tbaa !5
  %3351 = load ptr, ptr %70, align 8, !tbaa !9
  %3352 = getelementptr inbounds %struct.s2n_connection, ptr %3351, i32 0, i32 71
  %3353 = call i32 @s2n_client_hello_has_extension(ptr noundef %3352, i16 noundef zeroext 43, ptr noundef %79)
  %3354 = icmp eq i32 %3353, -1
  br i1 %3354, label %3355, label %3408

3355:                                             ; preds = %3348
  br label %3356

3356:                                             ; preds = %3355
  br label %3357

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

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

3369:                                             ; preds = %3364
  %3370 = load i32, ptr %80, align 4, !tbaa !5
  %3371 = call ptr @__errno_location() #11
  store i32 %3370, ptr %3371, align 4, !tbaa !5
  %3372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3373 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3375, ptr noundef @.str.4)
  %3377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3378 = load i32, ptr %3377, align 4, !tbaa !5
  %3379 = call ptr @s2n_strerror_debug(i32 noundef %3378, ptr noundef @.str.4)
  %3380 = call ptr @__errno_location() #11
  %3381 = load i32, ptr %3380, align 4, !tbaa !5
  %3382 = call ptr @strerror(i32 noundef %3381) #10
  %3383 = call ptr @__errno_location() #11
  %3384 = load i32, ptr %3383, align 4, !tbaa !5
  %3385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3372, ptr noundef @.str.2, i32 noundef %3373, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 219, ptr noundef %3376, ptr noundef %3379, ptr noundef %3382, i32 noundef %3384) #10
  br label %3403

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

3403:                                             ; preds = %3386, %3369
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3404

3404:                                             ; preds = %3403
  br label %3405

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

3406:                                             ; No predecessors!
  br label %3407

3407:                                             ; preds = %3406
  br label %3408

3408:                                             ; preds = %3407, %3348
  br label %3409

3409:                                             ; preds = %3408
  br label %3410

3410:                                             ; preds = %3409
  br label %3411

3411:                                             ; preds = %3410
  %3412 = load i32, ptr @test_count, align 4, !tbaa !5
  %3413 = add nsw i32 %3412, 1
  store i32 %3413, ptr @test_count, align 4, !tbaa !5
  %3414 = load i8, ptr %79, align 1, !tbaa !11, !range !13, !noundef !14
  %3415 = trunc i8 %3414 to i1
  br i1 %3415, label %3416, label %3469

3416:                                             ; preds = %3411
  br label %3417

3417:                                             ; preds = %3416
  br label %3418

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

3425:                                             ; preds = %3418
  %3426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3427 = call i32 @fileno(ptr noundef %3426) #10
  %3428 = call i32 @isatty(i32 noundef %3427) #10
  %3429 = icmp ne i32 %3428, 0
  br i1 %3429, label %3430, label %3447

3430:                                             ; preds = %3425
  %3431 = load i32, ptr %81, align 4, !tbaa !5
  %3432 = call ptr @__errno_location() #11
  store i32 %3431, ptr %3432, align 4, !tbaa !5
  %3433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3434 = load i32, ptr @test_count, align 4, !tbaa !5
  %3435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call ptr @s2n_strerror(i32 noundef %3436, ptr noundef @.str.4)
  %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_debug(i32 noundef %3439, ptr noundef @.str.4)
  %3441 = call ptr @__errno_location() #11
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call ptr @strerror(i32 noundef %3442) #10
  %3444 = call ptr @__errno_location() #11
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  %3446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3433, ptr noundef @.str.2, i32 noundef %3434, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 220, ptr noundef %3437, ptr noundef %3440, ptr noundef %3443, i32 noundef %3445) #10
  br label %3464

3447:                                             ; preds = %3425, %3418
  %3448 = load i32, ptr %81, align 4, !tbaa !5
  %3449 = call ptr @__errno_location() #11
  store i32 %3448, ptr %3449, align 4, !tbaa !5
  %3450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3451 = load i32, ptr @test_count, align 4, !tbaa !5
  %3452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call ptr @s2n_strerror(i32 noundef %3453, ptr noundef @.str.4)
  %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_debug(i32 noundef %3456, ptr noundef @.str.4)
  %3458 = call ptr @__errno_location() #11
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  %3460 = call ptr @strerror(i32 noundef %3459) #10
  %3461 = call ptr @__errno_location() #11
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3450, ptr noundef @.str.5, i32 noundef %3451, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 220, ptr noundef %3454, ptr noundef %3457, ptr noundef %3460, i32 noundef %3462) #10
  br label %3464

3464:                                             ; preds = %3447, %3430
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3465

3465:                                             ; preds = %3464
  br label %3466

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

3467:                                             ; No predecessors!
  br label %3468

3468:                                             ; preds = %3467
  br label %3469

3469:                                             ; preds = %3468, %3411
  br label %3470

3470:                                             ; preds = %3469
  br label %3471

3471:                                             ; preds = %3470
  br label %3472

3472:                                             ; preds = %3471
  %3473 = load i32, ptr @test_count, align 4, !tbaa !5
  %3474 = add nsw i32 %3473, 1
  store i32 %3474, ptr @test_count, align 4, !tbaa !5
  %3475 = load ptr, ptr %70, align 8, !tbaa !9
  %3476 = call i32 @s2n_connection_get_server_protocol_version(ptr noundef %3475)
  %3477 = load i8, ptr %57, align 1, !tbaa !15
  %3478 = zext i8 %3477 to i32
  %3479 = icmp eq i32 %3476, %3478
  br i1 %3479, label %3533, label %3480

3480:                                             ; preds = %3472
  br label %3481

3481:                                             ; preds = %3480
  br label %3482

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

3489:                                             ; preds = %3482
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = call i32 @fileno(ptr noundef %3490) #10
  %3492 = call i32 @isatty(i32 noundef %3491) #10
  %3493 = icmp ne i32 %3492, 0
  br i1 %3493, label %3494, label %3511

3494:                                             ; preds = %3489
  %3495 = load i32, ptr %82, align 4, !tbaa !5
  %3496 = call ptr @__errno_location() #11
  store i32 %3495, ptr %3496, align 4, !tbaa !5
  %3497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3498 = load i32, ptr @test_count, align 4, !tbaa !5
  %3499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @s2n_strerror(i32 noundef %3500, ptr noundef @.str.4)
  %3502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call ptr @s2n_strerror_debug(i32 noundef %3503, ptr noundef @.str.4)
  %3505 = call ptr @__errno_location() #11
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  %3507 = call ptr @strerror(i32 noundef %3506) #10
  %3508 = call ptr @__errno_location() #11
  %3509 = load i32, ptr %3508, align 4, !tbaa !5
  %3510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3497, ptr noundef @.str.2, i32 noundef %3498, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 222, ptr noundef %3501, ptr noundef %3504, ptr noundef %3507, i32 noundef %3509) #10
  br label %3528

3511:                                             ; preds = %3489, %3482
  %3512 = load i32, ptr %82, align 4, !tbaa !5
  %3513 = call ptr @__errno_location() #11
  store i32 %3512, ptr %3513, align 4, !tbaa !5
  %3514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3515 = load i32, ptr @test_count, align 4, !tbaa !5
  %3516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  %3518 = call ptr @s2n_strerror(i32 noundef %3517, ptr noundef @.str.4)
  %3519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3520 = load i32, ptr %3519, align 4, !tbaa !5
  %3521 = call ptr @s2n_strerror_debug(i32 noundef %3520, ptr noundef @.str.4)
  %3522 = call ptr @__errno_location() #11
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  %3524 = call ptr @strerror(i32 noundef %3523) #10
  %3525 = call ptr @__errno_location() #11
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  %3527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3514, ptr noundef @.str.5, i32 noundef %3515, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 222, ptr noundef %3518, ptr noundef %3521, ptr noundef %3524, i32 noundef %3526) #10
  br label %3528

3528:                                             ; preds = %3511, %3494
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3529

3529:                                             ; preds = %3528
  br label %3530

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

3531:                                             ; No predecessors!
  br label %3532

3532:                                             ; preds = %3531
  br label %3533

3533:                                             ; preds = %3532, %3472
  br label %3534

3534:                                             ; preds = %3533
  br label %3535

3535:                                             ; preds = %3534
  br label %3536

3536:                                             ; preds = %3535
  %3537 = load i32, ptr @test_count, align 4, !tbaa !5
  %3538 = add nsw i32 %3537, 1
  store i32 %3538, ptr @test_count, align 4, !tbaa !5
  %3539 = load ptr, ptr %70, align 8, !tbaa !9
  %3540 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %3539)
  %3541 = load i8, ptr %58, align 1, !tbaa !15
  %3542 = zext i8 %3541 to i32
  %3543 = icmp eq i32 %3540, %3542
  br i1 %3543, label %3597, label %3544

3544:                                             ; preds = %3536
  br label %3545

3545:                                             ; preds = %3544
  br label %3546

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

3553:                                             ; preds = %3546
  %3554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3555 = call i32 @fileno(ptr noundef %3554) #10
  %3556 = call i32 @isatty(i32 noundef %3555) #10
  %3557 = icmp ne i32 %3556, 0
  br i1 %3557, label %3558, label %3575

3558:                                             ; preds = %3553
  %3559 = load i32, ptr %83, align 4, !tbaa !5
  %3560 = call ptr @__errno_location() #11
  store i32 %3559, ptr %3560, align 4, !tbaa !5
  %3561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3562 = load i32, ptr @test_count, align 4, !tbaa !5
  %3563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @s2n_strerror(i32 noundef %3564, ptr noundef @.str.4)
  %3566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call ptr @s2n_strerror_debug(i32 noundef %3567, ptr noundef @.str.4)
  %3569 = call ptr @__errno_location() #11
  %3570 = load i32, ptr %3569, align 4, !tbaa !5
  %3571 = call ptr @strerror(i32 noundef %3570) #10
  %3572 = call ptr @__errno_location() #11
  %3573 = load i32, ptr %3572, align 4, !tbaa !5
  %3574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3561, ptr noundef @.str.2, i32 noundef %3562, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 223, ptr noundef %3565, ptr noundef %3568, ptr noundef %3571, i32 noundef %3573) #10
  br label %3592

3575:                                             ; preds = %3553, %3546
  %3576 = load i32, ptr %83, align 4, !tbaa !5
  %3577 = call ptr @__errno_location() #11
  store i32 %3576, ptr %3577, align 4, !tbaa !5
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = load i32, ptr @test_count, align 4, !tbaa !5
  %3580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3581 = load i32, ptr %3580, align 4, !tbaa !5
  %3582 = call ptr @s2n_strerror(i32 noundef %3581, ptr noundef @.str.4)
  %3583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3584 = load i32, ptr %3583, align 4, !tbaa !5
  %3585 = call ptr @s2n_strerror_debug(i32 noundef %3584, ptr noundef @.str.4)
  %3586 = call ptr @__errno_location() #11
  %3587 = load i32, ptr %3586, align 4, !tbaa !5
  %3588 = call ptr @strerror(i32 noundef %3587) #10
  %3589 = call ptr @__errno_location() #11
  %3590 = load i32, ptr %3589, align 4, !tbaa !5
  %3591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3578, ptr noundef @.str.5, i32 noundef %3579, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 223, ptr noundef %3582, ptr noundef %3585, ptr noundef %3588, i32 noundef %3590) #10
  br label %3592

3592:                                             ; preds = %3575, %3558
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  br label %3593

3593:                                             ; preds = %3592
  br label %3594

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

3595:                                             ; No predecessors!
  br label %3596

3596:                                             ; preds = %3595
  br label %3597

3597:                                             ; preds = %3596, %3536
  br label %3598

3598:                                             ; preds = %3597
  br label %3599

3599:                                             ; preds = %3598
  br label %3600

3600:                                             ; preds = %3599
  %3601 = load i32, ptr @test_count, align 4, !tbaa !5
  %3602 = add nsw i32 %3601, 1
  store i32 %3602, ptr @test_count, align 4, !tbaa !5
  %3603 = load ptr, ptr %70, align 8, !tbaa !9
  %3604 = call i32 @s2n_connection_get_client_hello_version(ptr noundef %3603)
  %3605 = load i8, ptr %58, align 1, !tbaa !15
  %3606 = zext i8 %3605 to i32
  %3607 = icmp eq i32 %3604, %3606
  br i1 %3607, label %3661, label %3608

3608:                                             ; preds = %3600
  br label %3609

3609:                                             ; preds = %3608
  br label %3610

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

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

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

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

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

3657:                                             ; preds = %3656
  br label %3658

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

3659:                                             ; No predecessors!
  br label %3660

3660:                                             ; preds = %3659
  br label %3661

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

3662:                                             ; preds = %3661
  br label %3663

3663:                                             ; preds = %3662
  br label %3664

3664:                                             ; preds = %3663
  %3665 = load i32, ptr @test_count, align 4, !tbaa !5
  %3666 = add nsw i32 %3665, 1
  store i32 %3666, ptr @test_count, align 4, !tbaa !5
  %3667 = load ptr, ptr %70, align 8, !tbaa !9
  %3668 = call i32 @s2n_connection_get_actual_protocol_version(ptr noundef %3667)
  %3669 = load i8, ptr %58, align 1, !tbaa !15
  %3670 = zext i8 %3669 to i32
  %3671 = icmp eq i32 %3668, %3670
  br i1 %3671, label %3725, label %3672

3672:                                             ; preds = %3664
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

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

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

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

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

3720:                                             ; preds = %3703, %3686
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %3721

3721:                                             ; preds = %3720
  br label %3722

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

3723:                                             ; No predecessors!
  br label %3724

3724:                                             ; preds = %3723
  br label %3725

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

3726:                                             ; preds = %3725
  br label %3727

3727:                                             ; preds = %3726
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #10
  %3728 = call i32 @s2n_io_pair_close(ptr noundef %73)
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  %3729 = call i32 @s2n_connection_ptr_free(ptr noundef %70)
  %3730 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  store i32 %3729, ptr %3730, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  %3731 = call i32 @s2n_connection_ptr_free(ptr noundef %67)
  %3732 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  store i32 %3731, ptr %3732, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %65) #10
  store i32 0, ptr %24, align 4
  br label %3733

3733:                                             ; preds = %3727, %2775
  %3734 = call i32 @s2n_config_ptr_free(ptr noundef %61)
  %3735 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  store i32 %3734, ptr %3735, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  %3736 = call i32 @s2n_config_ptr_free(ptr noundef %59)
  %3737 = getelementptr inbounds %struct.s2n_result, ptr %89, i32 0, i32 0
  store i32 %3736, ptr %3737, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  %3738 = load i32, ptr %24, align 4
  switch i32 %3738, label %7768 [
    i32 0, label %3739
    i32 254, label %3740
  ]

3739:                                             ; preds = %3733
  br label %3740

3740:                                             ; preds = %3739, %3733
  %3741 = load i8, ptr %58, align 1, !tbaa !15
  %3742 = add i8 %3741, 1
  store i8 %3742, ptr %58, align 1, !tbaa !15
  br label %2511, !llvm.loop !25

3743:                                             ; preds = %2515
  br label %3744

3744:                                             ; preds = %3743
  %3745 = load i8, ptr %57, align 1, !tbaa !15
  %3746 = add i8 %3745, 1
  store i8 %3746, ptr %57, align 1, !tbaa !15
  br label %2505, !llvm.loop !26

3747:                                             ; preds = %2509
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #10
  store i8 30, ptr %90, align 1, !tbaa !15
  br label %3748

3748:                                             ; preds = %4590, %3747
  %3749 = load i8, ptr %90, align 1, !tbaa !15
  %3750 = zext i8 %3749 to i32
  %3751 = icmp sle i32 %3750, 34
  br i1 %3751, label %3753, label %3752

3752:                                             ; preds = %3748
  store i32 369, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #10
  br label %4593

3753:                                             ; preds = %3748
  %3754 = load i8, ptr %90, align 1, !tbaa !15
  %3755 = zext i8 %3754 to i32
  %3756 = icmp eq i32 %3755, 34
  br i1 %3756, label %3757, label %3760

3757:                                             ; preds = %3753
  %3758 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %3758, label %3760, label %3759

3759:                                             ; preds = %3757
  br label %4590

3760:                                             ; preds = %3757, %3753
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #10
  %3761 = call ptr @s2n_config_new()
  store ptr %3761, ptr %91, align 8, !tbaa !9
  br label %3762

3762:                                             ; preds = %3760
  %3763 = load i32, ptr @test_count, align 4, !tbaa !5
  %3764 = add nsw i32 %3763, 1
  store i32 %3764, ptr @test_count, align 4, !tbaa !5
  %3765 = load ptr, ptr %91, align 8, !tbaa !9
  %3766 = load ptr, ptr %9, align 8, !tbaa !9
  %3767 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3765, ptr noundef %3766)
  %3768 = icmp eq i32 %3767, -1
  br i1 %3768, label %3769, label %3822

3769:                                             ; preds = %3762
  br label %3770

3770:                                             ; preds = %3769
  br label %3771

3771:                                             ; preds = %3770
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %3772 = call ptr @__errno_location() #11
  %3773 = load i32, ptr %3772, align 4, !tbaa !5
  store i32 %3773, ptr %92, align 4, !tbaa !5
  %3774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3775 = call i32 @s2n_print_stacktrace(ptr noundef %3774)
  %3776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3777 = trunc i8 %3776 to i1
  br i1 %3777, label %3778, label %3800

3778:                                             ; preds = %3771
  %3779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3780 = call i32 @fileno(ptr noundef %3779) #10
  %3781 = call i32 @isatty(i32 noundef %3780) #10
  %3782 = icmp ne i32 %3781, 0
  br i1 %3782, label %3783, label %3800

3783:                                             ; preds = %3778
  %3784 = load i32, ptr %92, align 4, !tbaa !5
  %3785 = call ptr @__errno_location() #11
  store i32 %3784, ptr %3785, align 4, !tbaa !5
  %3786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3787 = load i32, ptr @test_count, align 4, !tbaa !5
  %3788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3789 = load i32, ptr %3788, align 4, !tbaa !5
  %3790 = call ptr @s2n_strerror(i32 noundef %3789, ptr noundef @.str.4)
  %3791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  %3793 = call ptr @s2n_strerror_debug(i32 noundef %3792, ptr noundef @.str.4)
  %3794 = call ptr @__errno_location() #11
  %3795 = load i32, ptr %3794, align 4, !tbaa !5
  %3796 = call ptr @strerror(i32 noundef %3795) #10
  %3797 = call ptr @__errno_location() #11
  %3798 = load i32, ptr %3797, align 4, !tbaa !5
  %3799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3786, ptr noundef @.str.2, i32 noundef %3787, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 236, ptr noundef %3790, ptr noundef %3793, ptr noundef %3796, i32 noundef %3798) #10
  br label %3817

3800:                                             ; preds = %3778, %3771
  %3801 = load i32, ptr %92, align 4, !tbaa !5
  %3802 = call ptr @__errno_location() #11
  store i32 %3801, ptr %3802, align 4, !tbaa !5
  %3803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3804 = load i32, ptr @test_count, align 4, !tbaa !5
  %3805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3806 = load i32, ptr %3805, align 4, !tbaa !5
  %3807 = call ptr @s2n_strerror(i32 noundef %3806, ptr noundef @.str.4)
  %3808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3809 = load i32, ptr %3808, align 4, !tbaa !5
  %3810 = call ptr @s2n_strerror_debug(i32 noundef %3809, ptr noundef @.str.4)
  %3811 = call ptr @__errno_location() #11
  %3812 = load i32, ptr %3811, align 4, !tbaa !5
  %3813 = call ptr @strerror(i32 noundef %3812) #10
  %3814 = call ptr @__errno_location() #11
  %3815 = load i32, ptr %3814, align 4, !tbaa !5
  %3816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3803, ptr noundef @.str.5, i32 noundef %3804, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 236, ptr noundef %3807, ptr noundef %3810, ptr noundef %3813, i32 noundef %3815) #10
  br label %3817

3817:                                             ; preds = %3800, %3783
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %3818

3818:                                             ; preds = %3817
  br label %3819

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

3820:                                             ; No predecessors!
  br label %3821

3821:                                             ; preds = %3820
  br label %3822

3822:                                             ; preds = %3821, %3762
  br label %3823

3823:                                             ; preds = %3822
  br label %3824

3824:                                             ; preds = %3823
  br label %3825

3825:                                             ; preds = %3824
  %3826 = load i32, ptr @test_count, align 4, !tbaa !5
  %3827 = add nsw i32 %3826, 1
  store i32 %3827, ptr @test_count, align 4, !tbaa !5
  %3828 = load ptr, ptr %91, align 8, !tbaa !9
  %3829 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3828, ptr noundef @.str.20)
  %3830 = icmp eq i32 %3829, -1
  br i1 %3830, label %3831, label %3884

3831:                                             ; preds = %3825
  br label %3832

3832:                                             ; preds = %3831
  br label %3833

3833:                                             ; preds = %3832
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #10
  %3834 = call ptr @__errno_location() #11
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  store i32 %3835, ptr %93, align 4, !tbaa !5
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = call i32 @s2n_print_stacktrace(ptr noundef %3836)
  %3838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3839 = trunc i8 %3838 to i1
  br i1 %3839, label %3840, label %3862

3840:                                             ; preds = %3833
  %3841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3842 = call i32 @fileno(ptr noundef %3841) #10
  %3843 = call i32 @isatty(i32 noundef %3842) #10
  %3844 = icmp ne i32 %3843, 0
  br i1 %3844, label %3845, label %3862

3845:                                             ; preds = %3840
  %3846 = load i32, ptr %93, align 4, !tbaa !5
  %3847 = call ptr @__errno_location() #11
  store i32 %3846, ptr %3847, align 4, !tbaa !5
  %3848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3849 = load i32, ptr @test_count, align 4, !tbaa !5
  %3850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call ptr @s2n_strerror(i32 noundef %3851, ptr noundef @.str.4)
  %3853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call ptr @s2n_strerror_debug(i32 noundef %3854, ptr noundef @.str.4)
  %3856 = call ptr @__errno_location() #11
  %3857 = load i32, ptr %3856, align 4, !tbaa !5
  %3858 = call ptr @strerror(i32 noundef %3857) #10
  %3859 = call ptr @__errno_location() #11
  %3860 = load i32, ptr %3859, align 4, !tbaa !5
  %3861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3848, ptr noundef @.str.2, i32 noundef %3849, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 237, ptr noundef %3852, ptr noundef %3855, ptr noundef %3858, i32 noundef %3860) #10
  br label %3879

3862:                                             ; preds = %3840, %3833
  %3863 = load i32, ptr %93, align 4, !tbaa !5
  %3864 = call ptr @__errno_location() #11
  store i32 %3863, ptr %3864, align 4, !tbaa !5
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3868 = load i32, ptr %3867, align 4, !tbaa !5
  %3869 = call ptr @s2n_strerror(i32 noundef %3868, ptr noundef @.str.4)
  %3870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3871 = load i32, ptr %3870, align 4, !tbaa !5
  %3872 = call ptr @s2n_strerror_debug(i32 noundef %3871, ptr noundef @.str.4)
  %3873 = call ptr @__errno_location() #11
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = call ptr @strerror(i32 noundef %3874) #10
  %3876 = call ptr @__errno_location() #11
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  %3878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3865, ptr noundef @.str.5, i32 noundef %3866, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 237, ptr noundef %3869, ptr noundef %3872, ptr noundef %3875, i32 noundef %3877) #10
  br label %3879

3879:                                             ; preds = %3862, %3845
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

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

3882:                                             ; No predecessors!
  br label %3883

3883:                                             ; preds = %3882
  br label %3884

3884:                                             ; preds = %3883, %3825
  br label %3885

3885:                                             ; preds = %3884
  br label %3886

3886:                                             ; preds = %3885
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #10
  %3887 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3887, ptr %94, align 8, !tbaa !9
  br label %3888

3888:                                             ; preds = %3886
  %3889 = load i32, ptr @test_count, align 4, !tbaa !5
  %3890 = add nsw i32 %3889, 1
  store i32 %3890, ptr @test_count, align 4, !tbaa !5
  %3891 = load ptr, ptr %94, align 8, !tbaa !9
  %3892 = icmp eq ptr %3891, null
  br i1 %3892, label %3893, label %3946

3893:                                             ; preds = %3888
  br label %3894

3894:                                             ; preds = %3893
  br label %3895

3895:                                             ; preds = %3894
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #10
  %3896 = call ptr @__errno_location() #11
  %3897 = load i32, ptr %3896, align 4, !tbaa !5
  store i32 %3897, ptr %95, align 4, !tbaa !5
  %3898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3899 = call i32 @s2n_print_stacktrace(ptr noundef %3898)
  %3900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3901 = trunc i8 %3900 to i1
  br i1 %3901, label %3902, label %3924

3902:                                             ; preds = %3895
  %3903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3904 = call i32 @fileno(ptr noundef %3903) #10
  %3905 = call i32 @isatty(i32 noundef %3904) #10
  %3906 = icmp ne i32 %3905, 0
  br i1 %3906, label %3907, label %3924

3907:                                             ; preds = %3902
  %3908 = load i32, ptr %95, align 4, !tbaa !5
  %3909 = call ptr @__errno_location() #11
  store i32 %3908, ptr %3909, align 4, !tbaa !5
  %3910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3911 = load i32, ptr @test_count, align 4, !tbaa !5
  %3912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3913 = load i32, ptr %3912, align 4, !tbaa !5
  %3914 = call ptr @s2n_strerror(i32 noundef %3913, ptr noundef @.str.4)
  %3915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  %3917 = call ptr @s2n_strerror_debug(i32 noundef %3916, ptr noundef @.str.4)
  %3918 = call ptr @__errno_location() #11
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call ptr @strerror(i32 noundef %3919) #10
  %3921 = call ptr @__errno_location() #11
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3910, ptr noundef @.str.2, i32 noundef %3911, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 240, ptr noundef %3914, ptr noundef %3917, ptr noundef %3920, i32 noundef %3922) #10
  br label %3941

3924:                                             ; preds = %3902, %3895
  %3925 = load i32, ptr %95, align 4, !tbaa !5
  %3926 = call ptr @__errno_location() #11
  store i32 %3925, ptr %3926, align 4, !tbaa !5
  %3927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3928 = load i32, ptr @test_count, align 4, !tbaa !5
  %3929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3930 = load i32, ptr %3929, align 4, !tbaa !5
  %3931 = call ptr @s2n_strerror(i32 noundef %3930, ptr noundef @.str.4)
  %3932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3933 = load i32, ptr %3932, align 4, !tbaa !5
  %3934 = call ptr @s2n_strerror_debug(i32 noundef %3933, ptr noundef @.str.4)
  %3935 = call ptr @__errno_location() #11
  %3936 = load i32, ptr %3935, align 4, !tbaa !5
  %3937 = call ptr @strerror(i32 noundef %3936) #10
  %3938 = call ptr @__errno_location() #11
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  %3940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3927, ptr noundef @.str.5, i32 noundef %3928, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 240, ptr noundef %3931, ptr noundef %3934, ptr noundef %3937, i32 noundef %3939) #10
  br label %3941

3941:                                             ; preds = %3924, %3907
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %3942

3942:                                             ; preds = %3941
  br label %3943

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

3944:                                             ; No predecessors!
  br label %3945

3945:                                             ; preds = %3944
  br label %3946

3946:                                             ; preds = %3945, %3888
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

3948:                                             ; preds = %3947
  br label %3949

3949:                                             ; preds = %3948
  %3950 = load i32, ptr @test_count, align 4, !tbaa !5
  %3951 = add nsw i32 %3950, 1
  store i32 %3951, ptr @test_count, align 4, !tbaa !5
  %3952 = load ptr, ptr %94, align 8, !tbaa !9
  %3953 = load ptr, ptr %91, align 8, !tbaa !9
  %3954 = call i32 @s2n_connection_set_config(ptr noundef %3952, ptr noundef %3953)
  %3955 = icmp eq i32 %3954, -1
  br i1 %3955, label %3956, label %4009

3956:                                             ; preds = %3949
  br label %3957

3957:                                             ; preds = %3956
  br label %3958

3958:                                             ; preds = %3957
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  %3959 = call ptr @__errno_location() #11
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  store i32 %3960, ptr %96, align 4, !tbaa !5
  %3961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3962 = call i32 @s2n_print_stacktrace(ptr noundef %3961)
  %3963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3964 = trunc i8 %3963 to i1
  br i1 %3964, label %3965, label %3987

3965:                                             ; preds = %3958
  %3966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3967 = call i32 @fileno(ptr noundef %3966) #10
  %3968 = call i32 @isatty(i32 noundef %3967) #10
  %3969 = icmp ne i32 %3968, 0
  br i1 %3969, label %3970, label %3987

3970:                                             ; preds = %3965
  %3971 = load i32, ptr %96, align 4, !tbaa !5
  %3972 = call ptr @__errno_location() #11
  store i32 %3971, ptr %3972, align 4, !tbaa !5
  %3973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3974 = load i32, ptr @test_count, align 4, !tbaa !5
  %3975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3976 = load i32, ptr %3975, align 4, !tbaa !5
  %3977 = call ptr @s2n_strerror(i32 noundef %3976, ptr noundef @.str.4)
  %3978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3979 = load i32, ptr %3978, align 4, !tbaa !5
  %3980 = call ptr @s2n_strerror_debug(i32 noundef %3979, ptr noundef @.str.4)
  %3981 = call ptr @__errno_location() #11
  %3982 = load i32, ptr %3981, align 4, !tbaa !5
  %3983 = call ptr @strerror(i32 noundef %3982) #10
  %3984 = call ptr @__errno_location() #11
  %3985 = load i32, ptr %3984, align 4, !tbaa !5
  %3986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3973, ptr noundef @.str.2, i32 noundef %3974, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 241, ptr noundef %3977, ptr noundef %3980, ptr noundef %3983, i32 noundef %3985) #10
  br label %4004

3987:                                             ; preds = %3965, %3958
  %3988 = load i32, ptr %96, align 4, !tbaa !5
  %3989 = call ptr @__errno_location() #11
  store i32 %3988, ptr %3989, align 4, !tbaa !5
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = load i32, ptr @test_count, align 4, !tbaa !5
  %3992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3993 = load i32, ptr %3992, align 4, !tbaa !5
  %3994 = call ptr @s2n_strerror(i32 noundef %3993, ptr noundef @.str.4)
  %3995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3996 = load i32, ptr %3995, align 4, !tbaa !5
  %3997 = call ptr @s2n_strerror_debug(i32 noundef %3996, ptr noundef @.str.4)
  %3998 = call ptr @__errno_location() #11
  %3999 = load i32, ptr %3998, align 4, !tbaa !5
  %4000 = call ptr @strerror(i32 noundef %3999) #10
  %4001 = call ptr @__errno_location() #11
  %4002 = load i32, ptr %4001, align 4, !tbaa !5
  %4003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3990, ptr noundef @.str.5, i32 noundef %3991, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 241, ptr noundef %3994, ptr noundef %3997, ptr noundef %4000, i32 noundef %4002) #10
  br label %4004

4004:                                             ; preds = %3987, %3970
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4005

4005:                                             ; preds = %4004
  br label %4006

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

4007:                                             ; No predecessors!
  br label %4008

4008:                                             ; preds = %4007
  br label %4009

4009:                                             ; preds = %4008, %3949
  br label %4010

4010:                                             ; preds = %4009
  br label %4011

4011:                                             ; preds = %4010
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #10
  %4012 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4012, ptr %97, align 8, !tbaa !9
  br label %4013

4013:                                             ; preds = %4011
  %4014 = load i32, ptr @test_count, align 4, !tbaa !5
  %4015 = add nsw i32 %4014, 1
  store i32 %4015, ptr @test_count, align 4, !tbaa !5
  %4016 = load ptr, ptr %97, align 8, !tbaa !9
  %4017 = icmp eq ptr %4016, null
  br i1 %4017, label %4018, label %4071

4018:                                             ; preds = %4013
  br label %4019

4019:                                             ; preds = %4018
  br label %4020

4020:                                             ; preds = %4019
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  %4021 = call ptr @__errno_location() #11
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  store i32 %4022, ptr %98, align 4, !tbaa !5
  %4023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4024 = call i32 @s2n_print_stacktrace(ptr noundef %4023)
  %4025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4026 = trunc i8 %4025 to i1
  br i1 %4026, label %4027, label %4049

4027:                                             ; preds = %4020
  %4028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4029 = call i32 @fileno(ptr noundef %4028) #10
  %4030 = call i32 @isatty(i32 noundef %4029) #10
  %4031 = icmp ne i32 %4030, 0
  br i1 %4031, label %4032, label %4049

4032:                                             ; preds = %4027
  %4033 = load i32, ptr %98, align 4, !tbaa !5
  %4034 = call ptr @__errno_location() #11
  store i32 %4033, ptr %4034, align 4, !tbaa !5
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = load i32, ptr @test_count, align 4, !tbaa !5
  %4037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4038 = load i32, ptr %4037, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror(i32 noundef %4038, ptr noundef @.str.4)
  %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_debug(i32 noundef %4041, ptr noundef @.str.4)
  %4043 = call ptr @__errno_location() #11
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = call ptr @strerror(i32 noundef %4044) #10
  %4046 = call ptr @__errno_location() #11
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4035, ptr noundef @.str.2, i32 noundef %4036, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 244, ptr noundef %4039, ptr noundef %4042, ptr noundef %4045, i32 noundef %4047) #10
  br label %4066

4049:                                             ; preds = %4027, %4020
  %4050 = load i32, ptr %98, align 4, !tbaa !5
  %4051 = call ptr @__errno_location() #11
  store i32 %4050, ptr %4051, align 4, !tbaa !5
  %4052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4053 = load i32, ptr @test_count, align 4, !tbaa !5
  %4054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4055 = load i32, ptr %4054, align 4, !tbaa !5
  %4056 = call ptr @s2n_strerror(i32 noundef %4055, ptr noundef @.str.4)
  %4057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4058 = load i32, ptr %4057, align 4, !tbaa !5
  %4059 = call ptr @s2n_strerror_debug(i32 noundef %4058, ptr noundef @.str.4)
  %4060 = call ptr @__errno_location() #11
  %4061 = load i32, ptr %4060, align 4, !tbaa !5
  %4062 = call ptr @strerror(i32 noundef %4061) #10
  %4063 = call ptr @__errno_location() #11
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4052, ptr noundef @.str.5, i32 noundef %4053, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 244, ptr noundef %4056, ptr noundef %4059, ptr noundef %4062, i32 noundef %4064) #10
  br label %4066

4066:                                             ; preds = %4049, %4032
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %4067

4067:                                             ; preds = %4066
  br label %4068

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

4069:                                             ; No predecessors!
  br label %4070

4070:                                             ; preds = %4069
  br label %4071

4071:                                             ; preds = %4070, %4013
  br label %4072

4072:                                             ; preds = %4071
  br label %4073

4073:                                             ; preds = %4072
  br label %4074

4074:                                             ; preds = %4073
  %4075 = load i32, ptr @test_count, align 4, !tbaa !5
  %4076 = add nsw i32 %4075, 1
  store i32 %4076, ptr @test_count, align 4, !tbaa !5
  %4077 = load ptr, ptr %97, align 8, !tbaa !9
  %4078 = load ptr, ptr %91, align 8, !tbaa !9
  %4079 = call i32 @s2n_connection_set_config(ptr noundef %4077, ptr noundef %4078)
  %4080 = icmp eq i32 %4079, -1
  br i1 %4080, label %4081, label %4134

4081:                                             ; preds = %4074
  br label %4082

4082:                                             ; preds = %4081
  br label %4083

4083:                                             ; preds = %4082
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #10
  %4084 = call ptr @__errno_location() #11
  %4085 = load i32, ptr %4084, align 4, !tbaa !5
  store i32 %4085, ptr %99, align 4, !tbaa !5
  %4086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4087 = call i32 @s2n_print_stacktrace(ptr noundef %4086)
  %4088 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4089 = trunc i8 %4088 to i1
  br i1 %4089, label %4090, label %4112

4090:                                             ; preds = %4083
  %4091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4092 = call i32 @fileno(ptr noundef %4091) #10
  %4093 = call i32 @isatty(i32 noundef %4092) #10
  %4094 = icmp ne i32 %4093, 0
  br i1 %4094, label %4095, label %4112

4095:                                             ; preds = %4090
  %4096 = load i32, ptr %99, align 4, !tbaa !5
  %4097 = call ptr @__errno_location() #11
  store i32 %4096, ptr %4097, align 4, !tbaa !5
  %4098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4099 = load i32, ptr @test_count, align 4, !tbaa !5
  %4100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4101 = load i32, ptr %4100, align 4, !tbaa !5
  %4102 = call ptr @s2n_strerror(i32 noundef %4101, ptr noundef @.str.4)
  %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_debug(i32 noundef %4104, ptr noundef @.str.4)
  %4106 = call ptr @__errno_location() #11
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @strerror(i32 noundef %4107) #10
  %4109 = call ptr @__errno_location() #11
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4098, ptr noundef @.str.2, i32 noundef %4099, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 245, ptr noundef %4102, ptr noundef %4105, ptr noundef %4108, i32 noundef %4110) #10
  br label %4129

4112:                                             ; preds = %4090, %4083
  %4113 = load i32, ptr %99, align 4, !tbaa !5
  %4114 = call ptr @__errno_location() #11
  store i32 %4113, ptr %4114, align 4, !tbaa !5
  %4115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4116 = load i32, ptr @test_count, align 4, !tbaa !5
  %4117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4118 = load i32, ptr %4117, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror(i32 noundef %4118, ptr noundef @.str.4)
  %4120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4121 = load i32, ptr %4120, align 4, !tbaa !5
  %4122 = call ptr @s2n_strerror_debug(i32 noundef %4121, ptr noundef @.str.4)
  %4123 = call ptr @__errno_location() #11
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call ptr @strerror(i32 noundef %4124) #10
  %4126 = call ptr @__errno_location() #11
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4115, ptr noundef @.str.5, i32 noundef %4116, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 245, ptr noundef %4119, ptr noundef %4122, ptr noundef %4125, i32 noundef %4127) #10
  br label %4129

4129:                                             ; preds = %4112, %4095
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %4130

4130:                                             ; preds = %4129
  br label %4131

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

4132:                                             ; No predecessors!
  br label %4133

4133:                                             ; preds = %4132
  br label %4134

4134:                                             ; preds = %4133, %4074
  br label %4135

4135:                                             ; preds = %4134
  br label %4136

4136:                                             ; preds = %4135
  %4137 = load i8, ptr %90, align 1, !tbaa !15
  %4138 = load ptr, ptr %97, align 8, !tbaa !9
  %4139 = getelementptr inbounds %struct.s2n_connection, ptr %4138, i32 0, i32 22
  store i8 %4137, ptr %4139, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #10
  call void @llvm.memset.p0.i64(ptr align 4 %100, i8 0, i64 8, i1 false)
  br label %4140

4140:                                             ; preds = %4136
  %4141 = load i32, ptr @test_count, align 4, !tbaa !5
  %4142 = add nsw i32 %4141, 1
  store i32 %4142, ptr @test_count, align 4, !tbaa !5
  %4143 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %100)
  %4144 = icmp eq i32 %4143, -1
  br i1 %4144, label %4145, label %4198

4145:                                             ; preds = %4140
  br label %4146

4146:                                             ; preds = %4145
  br label %4147

4147:                                             ; preds = %4146
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  %4148 = call ptr @__errno_location() #11
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  store i32 %4149, ptr %101, align 4, !tbaa !5
  %4150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4151 = call i32 @s2n_print_stacktrace(ptr noundef %4150)
  %4152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4153 = trunc i8 %4152 to i1
  br i1 %4153, label %4154, label %4176

4154:                                             ; preds = %4147
  %4155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4156 = call i32 @fileno(ptr noundef %4155) #10
  %4157 = call i32 @isatty(i32 noundef %4156) #10
  %4158 = icmp ne i32 %4157, 0
  br i1 %4158, label %4159, label %4176

4159:                                             ; preds = %4154
  %4160 = load i32, ptr %101, align 4, !tbaa !5
  %4161 = call ptr @__errno_location() #11
  store i32 %4160, ptr %4161, align 4, !tbaa !5
  %4162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4163 = load i32, ptr @test_count, align 4, !tbaa !5
  %4164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call ptr @s2n_strerror(i32 noundef %4165, ptr noundef @.str.4)
  %4167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call ptr @s2n_strerror_debug(i32 noundef %4168, ptr noundef @.str.4)
  %4170 = call ptr @__errno_location() #11
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @strerror(i32 noundef %4171) #10
  %4173 = call ptr @__errno_location() #11
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4162, ptr noundef @.str.2, i32 noundef %4163, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 249, ptr noundef %4166, ptr noundef %4169, ptr noundef %4172, i32 noundef %4174) #10
  br label %4193

4176:                                             ; preds = %4154, %4147
  %4177 = load i32, ptr %101, align 4, !tbaa !5
  %4178 = call ptr @__errno_location() #11
  store i32 %4177, ptr %4178, align 4, !tbaa !5
  %4179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4180 = load i32, ptr @test_count, align 4, !tbaa !5
  %4181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4182 = load i32, ptr %4181, align 4, !tbaa !5
  %4183 = call ptr @s2n_strerror(i32 noundef %4182, ptr noundef @.str.4)
  %4184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4185 = load i32, ptr %4184, align 4, !tbaa !5
  %4186 = call ptr @s2n_strerror_debug(i32 noundef %4185, ptr noundef @.str.4)
  %4187 = call ptr @__errno_location() #11
  %4188 = load i32, ptr %4187, align 4, !tbaa !5
  %4189 = call ptr @strerror(i32 noundef %4188) #10
  %4190 = call ptr @__errno_location() #11
  %4191 = load i32, ptr %4190, align 4, !tbaa !5
  %4192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4179, ptr noundef @.str.5, i32 noundef %4180, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 249, ptr noundef %4183, ptr noundef %4186, ptr noundef %4189, i32 noundef %4191) #10
  br label %4193

4193:                                             ; preds = %4176, %4159
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %4194

4194:                                             ; preds = %4193
  br label %4195

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

4196:                                             ; No predecessors!
  br label %4197

4197:                                             ; preds = %4196
  br label %4198

4198:                                             ; preds = %4197, %4140
  br label %4199

4199:                                             ; preds = %4198
  br label %4200

4200:                                             ; preds = %4199
  br label %4201

4201:                                             ; preds = %4200
  %4202 = load i32, ptr @test_count, align 4, !tbaa !5
  %4203 = add nsw i32 %4202, 1
  store i32 %4203, ptr @test_count, align 4, !tbaa !5
  %4204 = load ptr, ptr %94, align 8, !tbaa !9
  %4205 = load ptr, ptr %97, align 8, !tbaa !9
  %4206 = call i32 @s2n_connections_set_io_pair(ptr noundef %4204, ptr noundef %4205, ptr noundef %100)
  %4207 = icmp eq i32 %4206, -1
  br i1 %4207, label %4208, label %4261

4208:                                             ; preds = %4201
  br label %4209

4209:                                             ; preds = %4208
  br label %4210

4210:                                             ; preds = %4209
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  %4211 = call ptr @__errno_location() #11
  %4212 = load i32, ptr %4211, align 4, !tbaa !5
  store i32 %4212, ptr %102, align 4, !tbaa !5
  %4213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4214 = call i32 @s2n_print_stacktrace(ptr noundef %4213)
  %4215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4216 = trunc i8 %4215 to i1
  br i1 %4216, label %4217, label %4239

4217:                                             ; preds = %4210
  %4218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4219 = call i32 @fileno(ptr noundef %4218) #10
  %4220 = call i32 @isatty(i32 noundef %4219) #10
  %4221 = icmp ne i32 %4220, 0
  br i1 %4221, label %4222, label %4239

4222:                                             ; preds = %4217
  %4223 = load i32, ptr %102, align 4, !tbaa !5
  %4224 = call ptr @__errno_location() #11
  store i32 %4223, ptr %4224, align 4, !tbaa !5
  %4225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4226 = load i32, ptr @test_count, align 4, !tbaa !5
  %4227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4228 = load i32, ptr %4227, align 4, !tbaa !5
  %4229 = call ptr @s2n_strerror(i32 noundef %4228, ptr noundef @.str.4)
  %4230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4231 = load i32, ptr %4230, align 4, !tbaa !5
  %4232 = call ptr @s2n_strerror_debug(i32 noundef %4231, ptr noundef @.str.4)
  %4233 = call ptr @__errno_location() #11
  %4234 = load i32, ptr %4233, align 4, !tbaa !5
  %4235 = call ptr @strerror(i32 noundef %4234) #10
  %4236 = call ptr @__errno_location() #11
  %4237 = load i32, ptr %4236, align 4, !tbaa !5
  %4238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4225, ptr noundef @.str.2, i32 noundef %4226, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 250, ptr noundef %4229, ptr noundef %4232, ptr noundef %4235, i32 noundef %4237) #10
  br label %4256

4239:                                             ; preds = %4217, %4210
  %4240 = load i32, ptr %102, align 4, !tbaa !5
  %4241 = call ptr @__errno_location() #11
  store i32 %4240, ptr %4241, align 4, !tbaa !5
  %4242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4243 = load i32, ptr @test_count, align 4, !tbaa !5
  %4244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4245 = load i32, ptr %4244, align 4, !tbaa !5
  %4246 = call ptr @s2n_strerror(i32 noundef %4245, ptr noundef @.str.4)
  %4247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4248 = load i32, ptr %4247, align 4, !tbaa !5
  %4249 = call ptr @s2n_strerror_debug(i32 noundef %4248, ptr noundef @.str.4)
  %4250 = call ptr @__errno_location() #11
  %4251 = load i32, ptr %4250, align 4, !tbaa !5
  %4252 = call ptr @strerror(i32 noundef %4251) #10
  %4253 = call ptr @__errno_location() #11
  %4254 = load i32, ptr %4253, align 4, !tbaa !5
  %4255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4242, ptr noundef @.str.5, i32 noundef %4243, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 250, ptr noundef %4246, ptr noundef %4249, ptr noundef %4252, i32 noundef %4254) #10
  br label %4256

4256:                                             ; preds = %4239, %4222
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4257

4257:                                             ; preds = %4256
  br label %4258

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

4259:                                             ; No predecessors!
  br label %4260

4260:                                             ; preds = %4259
  br label %4261

4261:                                             ; preds = %4260, %4201
  br label %4262

4262:                                             ; preds = %4261
  br label %4263

4263:                                             ; preds = %4262
  br label %4264

4264:                                             ; preds = %4263
  %4265 = load i32, ptr @test_count, align 4, !tbaa !5
  %4266 = add nsw i32 %4265, 1
  store i32 %4266, ptr @test_count, align 4, !tbaa !5
  %4267 = load ptr, ptr %97, align 8, !tbaa !9
  %4268 = load ptr, ptr %94, align 8, !tbaa !9
  %4269 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %4267, ptr noundef %4268, i32 noundef 2)
  %4270 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  store i32 %4269, ptr %4270, align 4
  %4271 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  %4272 = load i32, ptr %4271, align 4
  %4273 = call zeroext i1 @s2n_result_is_ok(i32 %4272)
  br i1 %4273, label %4327, label %4274

4274:                                             ; preds = %4264
  br label %4275

4275:                                             ; preds = %4274
  br label %4276

4276:                                             ; preds = %4275
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  %4277 = call ptr @__errno_location() #11
  %4278 = load i32, ptr %4277, align 4, !tbaa !5
  store i32 %4278, ptr %104, align 4, !tbaa !5
  %4279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4280 = call i32 @s2n_print_stacktrace(ptr noundef %4279)
  %4281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4282 = trunc i8 %4281 to i1
  br i1 %4282, label %4283, label %4305

4283:                                             ; preds = %4276
  %4284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4285 = call i32 @fileno(ptr noundef %4284) #10
  %4286 = call i32 @isatty(i32 noundef %4285) #10
  %4287 = icmp ne i32 %4286, 0
  br i1 %4287, label %4288, label %4305

4288:                                             ; preds = %4283
  %4289 = load i32, ptr %104, align 4, !tbaa !5
  %4290 = call ptr @__errno_location() #11
  store i32 %4289, ptr %4290, align 4, !tbaa !5
  %4291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4292 = load i32, ptr @test_count, align 4, !tbaa !5
  %4293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4294 = load i32, ptr %4293, align 4, !tbaa !5
  %4295 = call ptr @s2n_strerror(i32 noundef %4294, ptr noundef @.str.4)
  %4296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4297 = load i32, ptr %4296, align 4, !tbaa !5
  %4298 = call ptr @s2n_strerror_debug(i32 noundef %4297, ptr noundef @.str.4)
  %4299 = call ptr @__errno_location() #11
  %4300 = load i32, ptr %4299, align 4, !tbaa !5
  %4301 = call ptr @strerror(i32 noundef %4300) #10
  %4302 = call ptr @__errno_location() #11
  %4303 = load i32, ptr %4302, align 4, !tbaa !5
  %4304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4291, ptr noundef @.str.2, i32 noundef %4292, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 252, ptr noundef %4295, ptr noundef %4298, ptr noundef %4301, i32 noundef %4303) #10
  br label %4322

4305:                                             ; preds = %4283, %4276
  %4306 = load i32, ptr %104, align 4, !tbaa !5
  %4307 = call ptr @__errno_location() #11
  store i32 %4306, ptr %4307, align 4, !tbaa !5
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4309 = load i32, ptr @test_count, align 4, !tbaa !5
  %4310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4311 = load i32, ptr %4310, align 4, !tbaa !5
  %4312 = call ptr @s2n_strerror(i32 noundef %4311, ptr noundef @.str.4)
  %4313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4314 = load i32, ptr %4313, align 4, !tbaa !5
  %4315 = call ptr @s2n_strerror_debug(i32 noundef %4314, ptr noundef @.str.4)
  %4316 = call ptr @__errno_location() #11
  %4317 = load i32, ptr %4316, align 4, !tbaa !5
  %4318 = call ptr @strerror(i32 noundef %4317) #10
  %4319 = call ptr @__errno_location() #11
  %4320 = load i32, ptr %4319, align 4, !tbaa !5
  %4321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4308, ptr noundef @.str.5, i32 noundef %4309, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 252, ptr noundef %4312, ptr noundef %4315, ptr noundef %4318, i32 noundef %4320) #10
  br label %4322

4322:                                             ; preds = %4305, %4288
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %4323

4323:                                             ; preds = %4322
  br label %4324

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

4325:                                             ; No predecessors!
  br label %4326

4326:                                             ; preds = %4325
  br label %4327

4327:                                             ; preds = %4326, %4264
  br label %4328

4328:                                             ; preds = %4327
  br label %4329

4329:                                             ; preds = %4328
  br label %4330

4330:                                             ; preds = %4329
  %4331 = load i32, ptr @test_count, align 4, !tbaa !5
  %4332 = add nsw i32 %4331, 1
  store i32 %4332, ptr @test_count, align 4, !tbaa !5
  %4333 = load ptr, ptr %94, align 8, !tbaa !9
  %4334 = call i32 @s2n_connection_get_server_protocol_version(ptr noundef %4333)
  %4335 = load i8, ptr %90, align 1, !tbaa !15
  %4336 = zext i8 %4335 to i32
  %4337 = icmp eq i32 %4334, %4336
  br i1 %4337, label %4391, label %4338

4338:                                             ; preds = %4330
  br label %4339

4339:                                             ; preds = %4338
  br label %4340

4340:                                             ; preds = %4339
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %4341 = call ptr @__errno_location() #11
  %4342 = load i32, ptr %4341, align 4, !tbaa !5
  store i32 %4342, ptr %105, align 4, !tbaa !5
  %4343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4344 = call i32 @s2n_print_stacktrace(ptr noundef %4343)
  %4345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4346 = trunc i8 %4345 to i1
  br i1 %4346, label %4347, label %4369

4347:                                             ; preds = %4340
  %4348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4349 = call i32 @fileno(ptr noundef %4348) #10
  %4350 = call i32 @isatty(i32 noundef %4349) #10
  %4351 = icmp ne i32 %4350, 0
  br i1 %4351, label %4352, label %4369

4352:                                             ; preds = %4347
  %4353 = load i32, ptr %105, align 4, !tbaa !5
  %4354 = call ptr @__errno_location() #11
  store i32 %4353, ptr %4354, align 4, !tbaa !5
  %4355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4356 = load i32, ptr @test_count, align 4, !tbaa !5
  %4357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4358 = load i32, ptr %4357, align 4, !tbaa !5
  %4359 = call ptr @s2n_strerror(i32 noundef %4358, ptr noundef @.str.4)
  %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_debug(i32 noundef %4361, ptr noundef @.str.4)
  %4363 = call ptr @__errno_location() #11
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  %4365 = call ptr @strerror(i32 noundef %4364) #10
  %4366 = call ptr @__errno_location() #11
  %4367 = load i32, ptr %4366, align 4, !tbaa !5
  %4368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4355, ptr noundef @.str.2, i32 noundef %4356, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 254, ptr noundef %4359, ptr noundef %4362, ptr noundef %4365, i32 noundef %4367) #10
  br label %4386

4369:                                             ; preds = %4347, %4340
  %4370 = load i32, ptr %105, align 4, !tbaa !5
  %4371 = call ptr @__errno_location() #11
  store i32 %4370, ptr %4371, align 4, !tbaa !5
  %4372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4373 = load i32, ptr @test_count, align 4, !tbaa !5
  %4374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4375 = load i32, ptr %4374, align 4, !tbaa !5
  %4376 = call ptr @s2n_strerror(i32 noundef %4375, ptr noundef @.str.4)
  %4377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4378 = load i32, ptr %4377, align 4, !tbaa !5
  %4379 = call ptr @s2n_strerror_debug(i32 noundef %4378, ptr noundef @.str.4)
  %4380 = call ptr @__errno_location() #11
  %4381 = load i32, ptr %4380, align 4, !tbaa !5
  %4382 = call ptr @strerror(i32 noundef %4381) #10
  %4383 = call ptr @__errno_location() #11
  %4384 = load i32, ptr %4383, align 4, !tbaa !5
  %4385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4372, ptr noundef @.str.5, i32 noundef %4373, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 254, ptr noundef %4376, ptr noundef %4379, ptr noundef %4382, i32 noundef %4384) #10
  br label %4386

4386:                                             ; preds = %4369, %4352
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %4387

4387:                                             ; preds = %4386
  br label %4388

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

4389:                                             ; No predecessors!
  br label %4390

4390:                                             ; preds = %4389
  br label %4391

4391:                                             ; preds = %4390, %4330
  br label %4392

4392:                                             ; preds = %4391
  br label %4393

4393:                                             ; preds = %4392
  br label %4394

4394:                                             ; preds = %4393
  %4395 = load i32, ptr @test_count, align 4, !tbaa !5
  %4396 = add nsw i32 %4395, 1
  store i32 %4396, ptr @test_count, align 4, !tbaa !5
  %4397 = load ptr, ptr %94, align 8, !tbaa !9
  %4398 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %4397)
  %4399 = call i32 (...) @s2n_get_highest_fully_supported_tls_version()
  %4400 = icmp eq i32 %4398, %4399
  br i1 %4400, label %4454, label %4401

4401:                                             ; preds = %4394
  br label %4402

4402:                                             ; preds = %4401
  br label %4403

4403:                                             ; preds = %4402
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %4404 = call ptr @__errno_location() #11
  %4405 = load i32, ptr %4404, align 4, !tbaa !5
  store i32 %4405, ptr %106, align 4, !tbaa !5
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4407 = call i32 @s2n_print_stacktrace(ptr noundef %4406)
  %4408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4409 = trunc i8 %4408 to i1
  br i1 %4409, label %4410, label %4432

4410:                                             ; preds = %4403
  %4411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4412 = call i32 @fileno(ptr noundef %4411) #10
  %4413 = call i32 @isatty(i32 noundef %4412) #10
  %4414 = icmp ne i32 %4413, 0
  br i1 %4414, label %4415, label %4432

4415:                                             ; preds = %4410
  %4416 = load i32, ptr %106, align 4, !tbaa !5
  %4417 = call ptr @__errno_location() #11
  store i32 %4416, ptr %4417, align 4, !tbaa !5
  %4418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4419 = load i32, ptr @test_count, align 4, !tbaa !5
  %4420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4421 = load i32, ptr %4420, align 4, !tbaa !5
  %4422 = call ptr @s2n_strerror(i32 noundef %4421, ptr noundef @.str.4)
  %4423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4424 = load i32, ptr %4423, align 4, !tbaa !5
  %4425 = call ptr @s2n_strerror_debug(i32 noundef %4424, ptr noundef @.str.4)
  %4426 = call ptr @__errno_location() #11
  %4427 = load i32, ptr %4426, align 4, !tbaa !5
  %4428 = call ptr @strerror(i32 noundef %4427) #10
  %4429 = call ptr @__errno_location() #11
  %4430 = load i32, ptr %4429, align 4, !tbaa !5
  %4431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4418, ptr noundef @.str.2, i32 noundef %4419, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 255, ptr noundef %4422, ptr noundef %4425, ptr noundef %4428, i32 noundef %4430) #10
  br label %4449

4432:                                             ; preds = %4410, %4403
  %4433 = load i32, ptr %106, align 4, !tbaa !5
  %4434 = call ptr @__errno_location() #11
  store i32 %4433, ptr %4434, align 4, !tbaa !5
  %4435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4436 = load i32, ptr @test_count, align 4, !tbaa !5
  %4437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4438 = load i32, ptr %4437, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror(i32 noundef %4438, ptr noundef @.str.4)
  %4440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4441 = load i32, ptr %4440, align 4, !tbaa !5
  %4442 = call ptr @s2n_strerror_debug(i32 noundef %4441, ptr noundef @.str.4)
  %4443 = call ptr @__errno_location() #11
  %4444 = load i32, ptr %4443, align 4, !tbaa !5
  %4445 = call ptr @strerror(i32 noundef %4444) #10
  %4446 = call ptr @__errno_location() #11
  %4447 = load i32, ptr %4446, align 4, !tbaa !5
  %4448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4435, ptr noundef @.str.5, i32 noundef %4436, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 255, ptr noundef %4439, ptr noundef %4442, ptr noundef %4445, i32 noundef %4447) #10
  br label %4449

4449:                                             ; preds = %4432, %4415
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %4450

4450:                                             ; preds = %4449
  br label %4451

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

4452:                                             ; No predecessors!
  br label %4453

4453:                                             ; preds = %4452
  br label %4454

4454:                                             ; preds = %4453, %4394
  br label %4455

4455:                                             ; preds = %4454
  br label %4456

4456:                                             ; preds = %4455
  br label %4457

4457:                                             ; preds = %4456
  %4458 = load i32, ptr @test_count, align 4, !tbaa !5
  %4459 = add nsw i32 %4458, 1
  store i32 %4459, ptr @test_count, align 4, !tbaa !5
  %4460 = load ptr, ptr %94, align 8, !tbaa !9
  %4461 = call i32 @s2n_connection_get_client_hello_version(ptr noundef %4460)
  %4462 = icmp eq i32 %4461, 33
  br i1 %4462, label %4516, label %4463

4463:                                             ; preds = %4457
  br label %4464

4464:                                             ; preds = %4463
  br label %4465

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

4472:                                             ; preds = %4465
  %4473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4474 = call i32 @fileno(ptr noundef %4473) #10
  %4475 = call i32 @isatty(i32 noundef %4474) #10
  %4476 = icmp ne i32 %4475, 0
  br i1 %4476, label %4477, label %4494

4477:                                             ; preds = %4472
  %4478 = load i32, ptr %107, align 4, !tbaa !5
  %4479 = call ptr @__errno_location() #11
  store i32 %4478, ptr %4479, align 4, !tbaa !5
  %4480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4481 = load i32, ptr @test_count, align 4, !tbaa !5
  %4482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4483 = load i32, ptr %4482, align 4, !tbaa !5
  %4484 = call ptr @s2n_strerror(i32 noundef %4483, ptr noundef @.str.4)
  %4485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4486 = load i32, ptr %4485, align 4, !tbaa !5
  %4487 = call ptr @s2n_strerror_debug(i32 noundef %4486, ptr noundef @.str.4)
  %4488 = call ptr @__errno_location() #11
  %4489 = load i32, ptr %4488, align 4, !tbaa !5
  %4490 = call ptr @strerror(i32 noundef %4489) #10
  %4491 = call ptr @__errno_location() #11
  %4492 = load i32, ptr %4491, align 4, !tbaa !5
  %4493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4480, ptr noundef @.str.2, i32 noundef %4481, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 256, ptr noundef %4484, ptr noundef %4487, ptr noundef %4490, i32 noundef %4492) #10
  br label %4511

4494:                                             ; preds = %4472, %4465
  %4495 = load i32, ptr %107, align 4, !tbaa !5
  %4496 = call ptr @__errno_location() #11
  store i32 %4495, ptr %4496, align 4, !tbaa !5
  %4497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4498 = load i32, ptr @test_count, align 4, !tbaa !5
  %4499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call ptr @s2n_strerror(i32 noundef %4500, ptr noundef @.str.4)
  %4502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  %4504 = call ptr @s2n_strerror_debug(i32 noundef %4503, ptr noundef @.str.4)
  %4505 = call ptr @__errno_location() #11
  %4506 = load i32, ptr %4505, align 4, !tbaa !5
  %4507 = call ptr @strerror(i32 noundef %4506) #10
  %4508 = call ptr @__errno_location() #11
  %4509 = load i32, ptr %4508, align 4, !tbaa !5
  %4510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4497, ptr noundef @.str.5, i32 noundef %4498, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 256, ptr noundef %4501, ptr noundef %4504, ptr noundef %4507, i32 noundef %4509) #10
  br label %4511

4511:                                             ; preds = %4494, %4477
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %4512

4512:                                             ; preds = %4511
  br label %4513

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

4514:                                             ; No predecessors!
  br label %4515

4515:                                             ; preds = %4514
  br label %4516

4516:                                             ; preds = %4515, %4457
  br label %4517

4517:                                             ; preds = %4516
  br label %4518

4518:                                             ; preds = %4517
  br label %4519

4519:                                             ; preds = %4518
  %4520 = load i32, ptr @test_count, align 4, !tbaa !5
  %4521 = add nsw i32 %4520, 1
  store i32 %4521, ptr @test_count, align 4, !tbaa !5
  %4522 = load ptr, ptr %94, align 8, !tbaa !9
  %4523 = call i32 @s2n_connection_get_actual_protocol_version(ptr noundef %4522)
  %4524 = load i8, ptr %90, align 1, !tbaa !15
  %4525 = zext i8 %4524 to i32
  %4526 = icmp eq i32 %4523, %4525
  br i1 %4526, label %4580, label %4527

4527:                                             ; preds = %4519
  br label %4528

4528:                                             ; preds = %4527
  br label %4529

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

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

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

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

4575:                                             ; preds = %4558, %4541
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %4576

4576:                                             ; preds = %4575
  br label %4577

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

4578:                                             ; No predecessors!
  br label %4579

4579:                                             ; preds = %4578
  br label %4580

4580:                                             ; preds = %4579, %4519
  br label %4581

4581:                                             ; preds = %4580
  br label %4582

4582:                                             ; preds = %4581
  %4583 = call i32 @s2n_io_pair_close(ptr noundef %100)
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #10
  %4584 = call i32 @s2n_connection_ptr_free(ptr noundef %97)
  %4585 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %4584, ptr %4585, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  %4586 = call i32 @s2n_connection_ptr_free(ptr noundef %94)
  %4587 = getelementptr inbounds %struct.s2n_result, ptr %110, i32 0, i32 0
  store i32 %4586, ptr %4587, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #10
  %4588 = call i32 @s2n_config_ptr_free(ptr noundef %91)
  %4589 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  store i32 %4588, ptr %4589, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #10
  br label %4590

4590:                                             ; preds = %4582, %3759
  %4591 = load i8, ptr %90, align 1, !tbaa !15
  %4592 = add i8 %4591, 1
  store i8 %4592, ptr %90, align 1, !tbaa !15
  br label %3748, !llvm.loop !54

4593:                                             ; preds = %3752
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #10
  store i8 30, ptr %112, align 1, !tbaa !15
  br label %4594

4594:                                             ; preds = %5491, %4593
  %4595 = load i8, ptr %112, align 1, !tbaa !15
  %4596 = zext i8 %4595 to i32
  %4597 = icmp sle i32 %4596, 33
  br i1 %4597, label %4599, label %4598

4598:                                             ; preds = %4594
  store i32 450, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #10
  br label %5494

4599:                                             ; preds = %4594
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #10
  %4600 = call ptr @s2n_config_new()
  store ptr %4600, ptr %113, align 8, !tbaa !9
  br label %4601

4601:                                             ; preds = %4599
  %4602 = load i32, ptr @test_count, align 4, !tbaa !5
  %4603 = add nsw i32 %4602, 1
  store i32 %4603, ptr @test_count, align 4, !tbaa !5
  %4604 = load ptr, ptr %113, align 8, !tbaa !9
  %4605 = load ptr, ptr %9, align 8, !tbaa !9
  %4606 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %4604, ptr noundef %4605)
  %4607 = icmp eq i32 %4606, -1
  br i1 %4607, label %4608, label %4661

4608:                                             ; preds = %4601
  br label %4609

4609:                                             ; preds = %4608
  br label %4610

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

4617:                                             ; preds = %4610
  %4618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4619 = call i32 @fileno(ptr noundef %4618) #10
  %4620 = call i32 @isatty(i32 noundef %4619) #10
  %4621 = icmp ne i32 %4620, 0
  br i1 %4621, label %4622, label %4639

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

4639:                                             ; preds = %4617, %4610
  %4640 = load i32, ptr %114, align 4, !tbaa !5
  %4641 = call ptr @__errno_location() #11
  store i32 %4640, ptr %4641, align 4, !tbaa !5
  %4642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4643 = load i32, ptr @test_count, align 4, !tbaa !5
  %4644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4645 = load i32, ptr %4644, align 4, !tbaa !5
  %4646 = call ptr @s2n_strerror(i32 noundef %4645, ptr noundef @.str.4)
  %4647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4648 = load i32, ptr %4647, align 4, !tbaa !5
  %4649 = call ptr @s2n_strerror_debug(i32 noundef %4648, ptr noundef @.str.4)
  %4650 = call ptr @__errno_location() #11
  %4651 = load i32, ptr %4650, align 4, !tbaa !5
  %4652 = call ptr @strerror(i32 noundef %4651) #10
  %4653 = call ptr @__errno_location() #11
  %4654 = load i32, ptr %4653, align 4, !tbaa !5
  %4655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4642, ptr noundef @.str.5, i32 noundef %4643, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 265, ptr noundef %4646, ptr noundef %4649, ptr noundef %4652, i32 noundef %4654) #10
  br label %4656

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

4657:                                             ; preds = %4656
  br label %4658

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

4659:                                             ; No predecessors!
  br label %4660

4660:                                             ; preds = %4659
  br label %4661

4661:                                             ; preds = %4660, %4601
  br label %4662

4662:                                             ; preds = %4661
  br label %4663

4663:                                             ; preds = %4662
  br label %4664

4664:                                             ; preds = %4663
  %4665 = load i32, ptr @test_count, align 4, !tbaa !5
  %4666 = add nsw i32 %4665, 1
  store i32 %4666, ptr @test_count, align 4, !tbaa !5
  %4667 = load ptr, ptr %113, align 8, !tbaa !9
  %4668 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %4667, ptr noundef @.str.18)
  %4669 = icmp eq i32 %4668, -1
  br i1 %4669, label %4670, label %4723

4670:                                             ; preds = %4664
  br label %4671

4671:                                             ; preds = %4670
  br label %4672

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

4679:                                             ; preds = %4672
  %4680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4681 = call i32 @fileno(ptr noundef %4680) #10
  %4682 = call i32 @isatty(i32 noundef %4681) #10
  %4683 = icmp ne i32 %4682, 0
  br i1 %4683, label %4684, label %4701

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

4701:                                             ; preds = %4679, %4672
  %4702 = load i32, ptr %115, align 4, !tbaa !5
  %4703 = call ptr @__errno_location() #11
  store i32 %4702, ptr %4703, align 4, !tbaa !5
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = load i32, ptr @test_count, align 4, !tbaa !5
  %4706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4707 = load i32, ptr %4706, align 4, !tbaa !5
  %4708 = call ptr @s2n_strerror(i32 noundef %4707, ptr noundef @.str.4)
  %4709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4710 = load i32, ptr %4709, align 4, !tbaa !5
  %4711 = call ptr @s2n_strerror_debug(i32 noundef %4710, ptr noundef @.str.4)
  %4712 = call ptr @__errno_location() #11
  %4713 = load i32, ptr %4712, align 4, !tbaa !5
  %4714 = call ptr @strerror(i32 noundef %4713) #10
  %4715 = call ptr @__errno_location() #11
  %4716 = load i32, ptr %4715, align 4, !tbaa !5
  %4717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4704, ptr noundef @.str.5, i32 noundef %4705, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 266, ptr noundef %4708, ptr noundef %4711, ptr noundef %4714, i32 noundef %4716) #10
  br label %4718

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

4719:                                             ; preds = %4718
  br label %4720

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

4721:                                             ; No predecessors!
  br label %4722

4722:                                             ; preds = %4721
  br label %4723

4723:                                             ; preds = %4722, %4664
  br label %4724

4724:                                             ; preds = %4723
  br label %4725

4725:                                             ; preds = %4724
  call void @llvm.lifetime.start.p0(i64 12, ptr %116) #10
  %4726 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %116, i32 0, i32 0
  %4727 = load i8, ptr %112, align 1, !tbaa !15
  store i8 %4727, ptr %4726, align 4, !tbaa !16
  %4728 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %116, i32 0, i32 1
  store i8 34, ptr %4728, align 1, !tbaa !18
  %4729 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %116, i32 0, i32 2
  store i8 11, ptr %4729, align 2, !tbaa !19
  %4730 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %116, i32 0, i32 3
  call void @llvm.memset.p0.i64(ptr align 1 %4730, i8 0, i64 3, i1 false)
  %4731 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %116, i32 0, i32 4
  store i32 0, ptr %4731, align 4, !tbaa !20
  br label %4732

4732:                                             ; preds = %4725
  %4733 = load i32, ptr @test_count, align 4, !tbaa !5
  %4734 = add nsw i32 %4733, 1
  store i32 %4734, ptr @test_count, align 4, !tbaa !5
  %4735 = load ptr, ptr %113, align 8, !tbaa !9
  %4736 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %4735, ptr noundef @s2n_overwrite_client_hello_cb, ptr noundef %116)
  %4737 = icmp eq i32 %4736, -1
  br i1 %4737, label %4738, label %4791

4738:                                             ; preds = %4732
  br label %4739

4739:                                             ; preds = %4738
  br label %4740

4740:                                             ; preds = %4739
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %4741 = call ptr @__errno_location() #11
  %4742 = load i32, ptr %4741, align 4, !tbaa !5
  store i32 %4742, ptr %117, align 4, !tbaa !5
  %4743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4744 = call i32 @s2n_print_stacktrace(ptr noundef %4743)
  %4745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4746 = trunc i8 %4745 to i1
  br i1 %4746, label %4747, label %4769

4747:                                             ; preds = %4740
  %4748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4749 = call i32 @fileno(ptr noundef %4748) #10
  %4750 = call i32 @isatty(i32 noundef %4749) #10
  %4751 = icmp ne i32 %4750, 0
  br i1 %4751, label %4752, label %4769

4752:                                             ; preds = %4747
  %4753 = load i32, ptr %117, align 4, !tbaa !5
  %4754 = call ptr @__errno_location() #11
  store i32 %4753, ptr %4754, align 4, !tbaa !5
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = load i32, ptr @test_count, align 4, !tbaa !5
  %4757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4758 = load i32, ptr %4757, align 4, !tbaa !5
  %4759 = call ptr @s2n_strerror(i32 noundef %4758, ptr noundef @.str.4)
  %4760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  %4762 = call ptr @s2n_strerror_debug(i32 noundef %4761, ptr noundef @.str.4)
  %4763 = call ptr @__errno_location() #11
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call ptr @strerror(i32 noundef %4764) #10
  %4766 = call ptr @__errno_location() #11
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4755, ptr noundef @.str.2, i32 noundef %4756, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 274, ptr noundef %4759, ptr noundef %4762, ptr noundef %4765, i32 noundef %4767) #10
  br label %4786

4769:                                             ; preds = %4747, %4740
  %4770 = load i32, ptr %117, align 4, !tbaa !5
  %4771 = call ptr @__errno_location() #11
  store i32 %4770, ptr %4771, align 4, !tbaa !5
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = load i32, ptr @test_count, align 4, !tbaa !5
  %4774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call ptr @s2n_strerror(i32 noundef %4775, ptr noundef @.str.4)
  %4777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  %4779 = call ptr @s2n_strerror_debug(i32 noundef %4778, ptr noundef @.str.4)
  %4780 = call ptr @__errno_location() #11
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  %4782 = call ptr @strerror(i32 noundef %4781) #10
  %4783 = call ptr @__errno_location() #11
  %4784 = load i32, ptr %4783, align 4, !tbaa !5
  %4785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4772, ptr noundef @.str.5, i32 noundef %4773, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 274, ptr noundef %4776, ptr noundef %4779, ptr noundef %4782, i32 noundef %4784) #10
  br label %4786

4786:                                             ; preds = %4769, %4752
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %4787

4787:                                             ; preds = %4786
  br label %4788

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

4789:                                             ; No predecessors!
  br label %4790

4790:                                             ; preds = %4789
  br label %4791

4791:                                             ; preds = %4790, %4732
  br label %4792

4792:                                             ; preds = %4791
  br label %4793

4793:                                             ; preds = %4792
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #10
  %4794 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4794, ptr %118, align 8, !tbaa !9
  br label %4795

4795:                                             ; preds = %4793
  %4796 = load i32, ptr @test_count, align 4, !tbaa !5
  %4797 = add nsw i32 %4796, 1
  store i32 %4797, ptr @test_count, align 4, !tbaa !5
  %4798 = load ptr, ptr %118, align 8, !tbaa !9
  %4799 = icmp eq ptr %4798, null
  br i1 %4799, label %4800, label %4853

4800:                                             ; preds = %4795
  br label %4801

4801:                                             ; preds = %4800
  br label %4802

4802:                                             ; preds = %4801
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  %4803 = call ptr @__errno_location() #11
  %4804 = load i32, ptr %4803, align 4, !tbaa !5
  store i32 %4804, ptr %119, align 4, !tbaa !5
  %4805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4806 = call i32 @s2n_print_stacktrace(ptr noundef %4805)
  %4807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4808 = trunc i8 %4807 to i1
  br i1 %4808, label %4809, label %4831

4809:                                             ; preds = %4802
  %4810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4811 = call i32 @fileno(ptr noundef %4810) #10
  %4812 = call i32 @isatty(i32 noundef %4811) #10
  %4813 = icmp ne i32 %4812, 0
  br i1 %4813, label %4814, label %4831

4814:                                             ; preds = %4809
  %4815 = load i32, ptr %119, align 4, !tbaa !5
  %4816 = call ptr @__errno_location() #11
  store i32 %4815, ptr %4816, align 4, !tbaa !5
  %4817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4818 = load i32, ptr @test_count, align 4, !tbaa !5
  %4819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call ptr @s2n_strerror(i32 noundef %4820, ptr noundef @.str.4)
  %4822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call ptr @s2n_strerror_debug(i32 noundef %4823, ptr noundef @.str.4)
  %4825 = call ptr @__errno_location() #11
  %4826 = load i32, ptr %4825, align 4, !tbaa !5
  %4827 = call ptr @strerror(i32 noundef %4826) #10
  %4828 = call ptr @__errno_location() #11
  %4829 = load i32, ptr %4828, align 4, !tbaa !5
  %4830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4817, ptr noundef @.str.2, i32 noundef %4818, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 278, ptr noundef %4821, ptr noundef %4824, ptr noundef %4827, i32 noundef %4829) #10
  br label %4848

4831:                                             ; preds = %4809, %4802
  %4832 = load i32, ptr %119, align 4, !tbaa !5
  %4833 = call ptr @__errno_location() #11
  store i32 %4832, ptr %4833, align 4, !tbaa !5
  %4834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4835 = load i32, ptr @test_count, align 4, !tbaa !5
  %4836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4837 = load i32, ptr %4836, align 4, !tbaa !5
  %4838 = call ptr @s2n_strerror(i32 noundef %4837, ptr noundef @.str.4)
  %4839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4840 = load i32, ptr %4839, align 4, !tbaa !5
  %4841 = call ptr @s2n_strerror_debug(i32 noundef %4840, ptr noundef @.str.4)
  %4842 = call ptr @__errno_location() #11
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  %4844 = call ptr @strerror(i32 noundef %4843) #10
  %4845 = call ptr @__errno_location() #11
  %4846 = load i32, ptr %4845, align 4, !tbaa !5
  %4847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4834, ptr noundef @.str.5, i32 noundef %4835, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 278, ptr noundef %4838, ptr noundef %4841, ptr noundef %4844, i32 noundef %4846) #10
  br label %4848

4848:                                             ; preds = %4831, %4814
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  br label %4849

4849:                                             ; preds = %4848
  br label %4850

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

4851:                                             ; No predecessors!
  br label %4852

4852:                                             ; preds = %4851
  br label %4853

4853:                                             ; preds = %4852, %4795
  br label %4854

4854:                                             ; preds = %4853
  br label %4855

4855:                                             ; preds = %4854
  br label %4856

4856:                                             ; preds = %4855
  %4857 = load i32, ptr @test_count, align 4, !tbaa !5
  %4858 = add nsw i32 %4857, 1
  store i32 %4858, ptr @test_count, align 4, !tbaa !5
  %4859 = load ptr, ptr %118, align 8, !tbaa !9
  %4860 = load ptr, ptr %113, align 8, !tbaa !9
  %4861 = call i32 @s2n_connection_set_config(ptr noundef %4859, ptr noundef %4860)
  %4862 = icmp eq i32 %4861, -1
  br i1 %4862, label %4863, label %4916

4863:                                             ; preds = %4856
  br label %4864

4864:                                             ; preds = %4863
  br label %4865

4865:                                             ; preds = %4864
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %4866 = call ptr @__errno_location() #11
  %4867 = load i32, ptr %4866, align 4, !tbaa !5
  store i32 %4867, ptr %120, align 4, !tbaa !5
  %4868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4869 = call i32 @s2n_print_stacktrace(ptr noundef %4868)
  %4870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4871 = trunc i8 %4870 to i1
  br i1 %4871, label %4872, label %4894

4872:                                             ; preds = %4865
  %4873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4874 = call i32 @fileno(ptr noundef %4873) #10
  %4875 = call i32 @isatty(i32 noundef %4874) #10
  %4876 = icmp ne i32 %4875, 0
  br i1 %4876, label %4877, label %4894

4877:                                             ; preds = %4872
  %4878 = load i32, ptr %120, align 4, !tbaa !5
  %4879 = call ptr @__errno_location() #11
  store i32 %4878, ptr %4879, align 4, !tbaa !5
  %4880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4881 = load i32, ptr @test_count, align 4, !tbaa !5
  %4882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4883 = load i32, ptr %4882, align 4, !tbaa !5
  %4884 = call ptr @s2n_strerror(i32 noundef %4883, ptr noundef @.str.4)
  %4885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4886 = load i32, ptr %4885, align 4, !tbaa !5
  %4887 = call ptr @s2n_strerror_debug(i32 noundef %4886, ptr noundef @.str.4)
  %4888 = call ptr @__errno_location() #11
  %4889 = load i32, ptr %4888, align 4, !tbaa !5
  %4890 = call ptr @strerror(i32 noundef %4889) #10
  %4891 = call ptr @__errno_location() #11
  %4892 = load i32, ptr %4891, align 4, !tbaa !5
  %4893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4880, ptr noundef @.str.2, i32 noundef %4881, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 279, ptr noundef %4884, ptr noundef %4887, ptr noundef %4890, i32 noundef %4892) #10
  br label %4911

4894:                                             ; preds = %4872, %4865
  %4895 = load i32, ptr %120, align 4, !tbaa !5
  %4896 = call ptr @__errno_location() #11
  store i32 %4895, ptr %4896, align 4, !tbaa !5
  %4897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4898 = load i32, ptr @test_count, align 4, !tbaa !5
  %4899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4900 = load i32, ptr %4899, align 4, !tbaa !5
  %4901 = call ptr @s2n_strerror(i32 noundef %4900, ptr noundef @.str.4)
  %4902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4903 = load i32, ptr %4902, align 4, !tbaa !5
  %4904 = call ptr @s2n_strerror_debug(i32 noundef %4903, ptr noundef @.str.4)
  %4905 = call ptr @__errno_location() #11
  %4906 = load i32, ptr %4905, align 4, !tbaa !5
  %4907 = call ptr @strerror(i32 noundef %4906) #10
  %4908 = call ptr @__errno_location() #11
  %4909 = load i32, ptr %4908, align 4, !tbaa !5
  %4910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4897, ptr noundef @.str.5, i32 noundef %4898, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 279, ptr noundef %4901, ptr noundef %4904, ptr noundef %4907, i32 noundef %4909) #10
  br label %4911

4911:                                             ; preds = %4894, %4877
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %4912

4912:                                             ; preds = %4911
  br label %4913

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

4914:                                             ; No predecessors!
  br label %4915

4915:                                             ; preds = %4914
  br label %4916

4916:                                             ; preds = %4915, %4856
  br label %4917

4917:                                             ; preds = %4916
  br label %4918

4918:                                             ; preds = %4917
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #10
  %4919 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4919, ptr %121, align 8, !tbaa !9
  br label %4920

4920:                                             ; preds = %4918
  %4921 = load i32, ptr @test_count, align 4, !tbaa !5
  %4922 = add nsw i32 %4921, 1
  store i32 %4922, ptr @test_count, align 4, !tbaa !5
  %4923 = load ptr, ptr %121, align 8, !tbaa !9
  %4924 = icmp eq ptr %4923, null
  br i1 %4924, label %4925, label %4978

4925:                                             ; preds = %4920
  br label %4926

4926:                                             ; preds = %4925
  br label %4927

4927:                                             ; preds = %4926
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #10
  %4928 = call ptr @__errno_location() #11
  %4929 = load i32, ptr %4928, align 4, !tbaa !5
  store i32 %4929, ptr %122, align 4, !tbaa !5
  %4930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4931 = call i32 @s2n_print_stacktrace(ptr noundef %4930)
  %4932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4933 = trunc i8 %4932 to i1
  br i1 %4933, label %4934, label %4956

4934:                                             ; preds = %4927
  %4935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4936 = call i32 @fileno(ptr noundef %4935) #10
  %4937 = call i32 @isatty(i32 noundef %4936) #10
  %4938 = icmp ne i32 %4937, 0
  br i1 %4938, label %4939, label %4956

4939:                                             ; preds = %4934
  %4940 = load i32, ptr %122, align 4, !tbaa !5
  %4941 = call ptr @__errno_location() #11
  store i32 %4940, ptr %4941, align 4, !tbaa !5
  %4942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4943 = load i32, ptr @test_count, align 4, !tbaa !5
  %4944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4945 = load i32, ptr %4944, align 4, !tbaa !5
  %4946 = call ptr @s2n_strerror(i32 noundef %4945, ptr noundef @.str.4)
  %4947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = call ptr @s2n_strerror_debug(i32 noundef %4948, ptr noundef @.str.4)
  %4950 = call ptr @__errno_location() #11
  %4951 = load i32, ptr %4950, align 4, !tbaa !5
  %4952 = call ptr @strerror(i32 noundef %4951) #10
  %4953 = call ptr @__errno_location() #11
  %4954 = load i32, ptr %4953, align 4, !tbaa !5
  %4955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4942, ptr noundef @.str.2, i32 noundef %4943, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 283, ptr noundef %4946, ptr noundef %4949, ptr noundef %4952, i32 noundef %4954) #10
  br label %4973

4956:                                             ; preds = %4934, %4927
  %4957 = load i32, ptr %122, align 4, !tbaa !5
  %4958 = call ptr @__errno_location() #11
  store i32 %4957, ptr %4958, align 4, !tbaa !5
  %4959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4960 = load i32, ptr @test_count, align 4, !tbaa !5
  %4961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4962 = load i32, ptr %4961, align 4, !tbaa !5
  %4963 = call ptr @s2n_strerror(i32 noundef %4962, ptr noundef @.str.4)
  %4964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4965 = load i32, ptr %4964, align 4, !tbaa !5
  %4966 = call ptr @s2n_strerror_debug(i32 noundef %4965, ptr noundef @.str.4)
  %4967 = call ptr @__errno_location() #11
  %4968 = load i32, ptr %4967, align 4, !tbaa !5
  %4969 = call ptr @strerror(i32 noundef %4968) #10
  %4970 = call ptr @__errno_location() #11
  %4971 = load i32, ptr %4970, align 4, !tbaa !5
  %4972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4959, ptr noundef @.str.5, i32 noundef %4960, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 283, ptr noundef %4963, ptr noundef %4966, ptr noundef %4969, i32 noundef %4971) #10
  br label %4973

4973:                                             ; preds = %4956, %4939
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #10
  br label %4974

4974:                                             ; preds = %4973
  br label %4975

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

4976:                                             ; No predecessors!
  br label %4977

4977:                                             ; preds = %4976
  br label %4978

4978:                                             ; preds = %4977, %4920
  br label %4979

4979:                                             ; preds = %4978
  br label %4980

4980:                                             ; preds = %4979
  br label %4981

4981:                                             ; preds = %4980
  %4982 = load i32, ptr @test_count, align 4, !tbaa !5
  %4983 = add nsw i32 %4982, 1
  store i32 %4983, ptr @test_count, align 4, !tbaa !5
  %4984 = load ptr, ptr %121, align 8, !tbaa !9
  %4985 = load ptr, ptr %113, align 8, !tbaa !9
  %4986 = call i32 @s2n_connection_set_config(ptr noundef %4984, ptr noundef %4985)
  %4987 = icmp eq i32 %4986, -1
  br i1 %4987, label %4988, label %5041

4988:                                             ; preds = %4981
  br label %4989

4989:                                             ; preds = %4988
  br label %4990

4990:                                             ; preds = %4989
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %4991 = call ptr @__errno_location() #11
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  store i32 %4992, ptr %123, align 4, !tbaa !5
  %4993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4994 = call i32 @s2n_print_stacktrace(ptr noundef %4993)
  %4995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4996 = trunc i8 %4995 to i1
  br i1 %4996, label %4997, label %5019

4997:                                             ; preds = %4990
  %4998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4999 = call i32 @fileno(ptr noundef %4998) #10
  %5000 = call i32 @isatty(i32 noundef %4999) #10
  %5001 = icmp ne i32 %5000, 0
  br i1 %5001, label %5002, label %5019

5002:                                             ; preds = %4997
  %5003 = load i32, ptr %123, align 4, !tbaa !5
  %5004 = call ptr @__errno_location() #11
  store i32 %5003, ptr %5004, align 4, !tbaa !5
  %5005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5006 = load i32, ptr @test_count, align 4, !tbaa !5
  %5007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5008 = load i32, ptr %5007, align 4, !tbaa !5
  %5009 = call ptr @s2n_strerror(i32 noundef %5008, ptr noundef @.str.4)
  %5010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  %5012 = call ptr @s2n_strerror_debug(i32 noundef %5011, ptr noundef @.str.4)
  %5013 = call ptr @__errno_location() #11
  %5014 = load i32, ptr %5013, align 4, !tbaa !5
  %5015 = call ptr @strerror(i32 noundef %5014) #10
  %5016 = call ptr @__errno_location() #11
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5005, ptr noundef @.str.2, i32 noundef %5006, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 284, ptr noundef %5009, ptr noundef %5012, ptr noundef %5015, i32 noundef %5017) #10
  br label %5036

5019:                                             ; preds = %4997, %4990
  %5020 = load i32, ptr %123, align 4, !tbaa !5
  %5021 = call ptr @__errno_location() #11
  store i32 %5020, ptr %5021, align 4, !tbaa !5
  %5022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5023 = load i32, ptr @test_count, align 4, !tbaa !5
  %5024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5025 = load i32, ptr %5024, align 4, !tbaa !5
  %5026 = call ptr @s2n_strerror(i32 noundef %5025, ptr noundef @.str.4)
  %5027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5028 = load i32, ptr %5027, align 4, !tbaa !5
  %5029 = call ptr @s2n_strerror_debug(i32 noundef %5028, ptr noundef @.str.4)
  %5030 = call ptr @__errno_location() #11
  %5031 = load i32, ptr %5030, align 4, !tbaa !5
  %5032 = call ptr @strerror(i32 noundef %5031) #10
  %5033 = call ptr @__errno_location() #11
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5022, ptr noundef @.str.5, i32 noundef %5023, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 284, ptr noundef %5026, ptr noundef %5029, ptr noundef %5032, i32 noundef %5034) #10
  br label %5036

5036:                                             ; preds = %5019, %5002
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %5037

5037:                                             ; preds = %5036
  br label %5038

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

5039:                                             ; No predecessors!
  br label %5040

5040:                                             ; preds = %5039
  br label %5041

5041:                                             ; preds = %5040, %4981
  br label %5042

5042:                                             ; preds = %5041
  br label %5043

5043:                                             ; preds = %5042
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  call void @llvm.memset.p0.i64(ptr align 4 %124, i8 0, i64 8, i1 false)
  br label %5044

5044:                                             ; preds = %5043
  %5045 = load i32, ptr @test_count, align 4, !tbaa !5
  %5046 = add nsw i32 %5045, 1
  store i32 %5046, ptr @test_count, align 4, !tbaa !5
  %5047 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %124)
  %5048 = icmp eq i32 %5047, -1
  br i1 %5048, label %5049, label %5102

5049:                                             ; preds = %5044
  br label %5050

5050:                                             ; preds = %5049
  br label %5051

5051:                                             ; preds = %5050
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %5052 = call ptr @__errno_location() #11
  %5053 = load i32, ptr %5052, align 4, !tbaa !5
  store i32 %5053, ptr %125, align 4, !tbaa !5
  %5054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5055 = call i32 @s2n_print_stacktrace(ptr noundef %5054)
  %5056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5057 = trunc i8 %5056 to i1
  br i1 %5057, label %5058, label %5080

5058:                                             ; preds = %5051
  %5059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5060 = call i32 @fileno(ptr noundef %5059) #10
  %5061 = call i32 @isatty(i32 noundef %5060) #10
  %5062 = icmp ne i32 %5061, 0
  br i1 %5062, label %5063, label %5080

5063:                                             ; preds = %5058
  %5064 = load i32, ptr %125, align 4, !tbaa !5
  %5065 = call ptr @__errno_location() #11
  store i32 %5064, ptr %5065, align 4, !tbaa !5
  %5066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5067 = load i32, ptr @test_count, align 4, !tbaa !5
  %5068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5069 = load i32, ptr %5068, align 4, !tbaa !5
  %5070 = call ptr @s2n_strerror(i32 noundef %5069, ptr noundef @.str.4)
  %5071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5072 = load i32, ptr %5071, align 4, !tbaa !5
  %5073 = call ptr @s2n_strerror_debug(i32 noundef %5072, ptr noundef @.str.4)
  %5074 = call ptr @__errno_location() #11
  %5075 = load i32, ptr %5074, align 4, !tbaa !5
  %5076 = call ptr @strerror(i32 noundef %5075) #10
  %5077 = call ptr @__errno_location() #11
  %5078 = load i32, ptr %5077, align 4, !tbaa !5
  %5079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5066, ptr noundef @.str.2, i32 noundef %5067, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 287, ptr noundef %5070, ptr noundef %5073, ptr noundef %5076, i32 noundef %5078) #10
  br label %5097

5080:                                             ; preds = %5058, %5051
  %5081 = load i32, ptr %125, align 4, !tbaa !5
  %5082 = call ptr @__errno_location() #11
  store i32 %5081, ptr %5082, align 4, !tbaa !5
  %5083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5084 = load i32, ptr @test_count, align 4, !tbaa !5
  %5085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call ptr @s2n_strerror(i32 noundef %5086, ptr noundef @.str.4)
  %5088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call ptr @s2n_strerror_debug(i32 noundef %5089, ptr noundef @.str.4)
  %5091 = call ptr @__errno_location() #11
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call ptr @strerror(i32 noundef %5092) #10
  %5094 = call ptr @__errno_location() #11
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  %5096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5083, ptr noundef @.str.5, i32 noundef %5084, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 287, ptr noundef %5087, ptr noundef %5090, ptr noundef %5093, i32 noundef %5095) #10
  br label %5097

5097:                                             ; preds = %5080, %5063
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %5098

5098:                                             ; preds = %5097
  br label %5099

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

5100:                                             ; No predecessors!
  br label %5101

5101:                                             ; preds = %5100
  br label %5102

5102:                                             ; preds = %5101, %5044
  br label %5103

5103:                                             ; preds = %5102
  br label %5104

5104:                                             ; preds = %5103
  br label %5105

5105:                                             ; preds = %5104
  %5106 = load i32, ptr @test_count, align 4, !tbaa !5
  %5107 = add nsw i32 %5106, 1
  store i32 %5107, ptr @test_count, align 4, !tbaa !5
  %5108 = load ptr, ptr %118, align 8, !tbaa !9
  %5109 = load ptr, ptr %121, align 8, !tbaa !9
  %5110 = call i32 @s2n_connections_set_io_pair(ptr noundef %5108, ptr noundef %5109, ptr noundef %124)
  %5111 = icmp eq i32 %5110, -1
  br i1 %5111, label %5112, label %5165

5112:                                             ; preds = %5105
  br label %5113

5113:                                             ; preds = %5112
  br label %5114

5114:                                             ; preds = %5113
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %5115 = call ptr @__errno_location() #11
  %5116 = load i32, ptr %5115, align 4, !tbaa !5
  store i32 %5116, ptr %126, align 4, !tbaa !5
  %5117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5118 = call i32 @s2n_print_stacktrace(ptr noundef %5117)
  %5119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5120 = trunc i8 %5119 to i1
  br i1 %5120, label %5121, label %5143

5121:                                             ; preds = %5114
  %5122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5123 = call i32 @fileno(ptr noundef %5122) #10
  %5124 = call i32 @isatty(i32 noundef %5123) #10
  %5125 = icmp ne i32 %5124, 0
  br i1 %5125, label %5126, label %5143

5126:                                             ; preds = %5121
  %5127 = load i32, ptr %126, align 4, !tbaa !5
  %5128 = call ptr @__errno_location() #11
  store i32 %5127, ptr %5128, align 4, !tbaa !5
  %5129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5130 = load i32, ptr @test_count, align 4, !tbaa !5
  %5131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5132 = load i32, ptr %5131, align 4, !tbaa !5
  %5133 = call ptr @s2n_strerror(i32 noundef %5132, ptr noundef @.str.4)
  %5134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5135 = load i32, ptr %5134, align 4, !tbaa !5
  %5136 = call ptr @s2n_strerror_debug(i32 noundef %5135, ptr noundef @.str.4)
  %5137 = call ptr @__errno_location() #11
  %5138 = load i32, ptr %5137, align 4, !tbaa !5
  %5139 = call ptr @strerror(i32 noundef %5138) #10
  %5140 = call ptr @__errno_location() #11
  %5141 = load i32, ptr %5140, align 4, !tbaa !5
  %5142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5129, ptr noundef @.str.2, i32 noundef %5130, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5133, ptr noundef %5136, ptr noundef %5139, i32 noundef %5141) #10
  br label %5160

5143:                                             ; preds = %5121, %5114
  %5144 = load i32, ptr %126, align 4, !tbaa !5
  %5145 = call ptr @__errno_location() #11
  store i32 %5144, ptr %5145, align 4, !tbaa !5
  %5146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5147 = load i32, ptr @test_count, align 4, !tbaa !5
  %5148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5149 = load i32, ptr %5148, align 4, !tbaa !5
  %5150 = call ptr @s2n_strerror(i32 noundef %5149, ptr noundef @.str.4)
  %5151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5152 = load i32, ptr %5151, align 4, !tbaa !5
  %5153 = call ptr @s2n_strerror_debug(i32 noundef %5152, ptr noundef @.str.4)
  %5154 = call ptr @__errno_location() #11
  %5155 = load i32, ptr %5154, align 4, !tbaa !5
  %5156 = call ptr @strerror(i32 noundef %5155) #10
  %5157 = call ptr @__errno_location() #11
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5146, ptr noundef @.str.5, i32 noundef %5147, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5150, ptr noundef %5153, ptr noundef %5156, i32 noundef %5158) #10
  br label %5160

5160:                                             ; preds = %5143, %5126
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %5161

5161:                                             ; preds = %5160
  br label %5162

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

5163:                                             ; No predecessors!
  br label %5164

5164:                                             ; preds = %5163
  br label %5165

5165:                                             ; preds = %5164, %5105
  br label %5166

5166:                                             ; preds = %5165
  br label %5167

5167:                                             ; preds = %5166
  br label %5168

5168:                                             ; preds = %5167
  %5169 = load i32, ptr @test_count, align 4, !tbaa !5
  %5170 = add nsw i32 %5169, 1
  store i32 %5170, ptr @test_count, align 4, !tbaa !5
  %5171 = load ptr, ptr %121, align 8, !tbaa !9
  %5172 = load ptr, ptr %118, align 8, !tbaa !9
  %5173 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %5171, ptr noundef %5172, i32 noundef 1)
  %5174 = getelementptr inbounds %struct.s2n_result, ptr %127, i32 0, i32 0
  store i32 %5173, ptr %5174, align 4
  %5175 = getelementptr inbounds %struct.s2n_result, ptr %127, i32 0, i32 0
  %5176 = load i32, ptr %5175, align 4
  %5177 = call zeroext i1 @s2n_result_is_ok(i32 %5176)
  br i1 %5177, label %5231, label %5178

5178:                                             ; preds = %5168
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

5180:                                             ; preds = %5179
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #10
  %5181 = call ptr @__errno_location() #11
  %5182 = load i32, ptr %5181, align 4, !tbaa !5
  store i32 %5182, ptr %128, align 4, !tbaa !5
  %5183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5184 = call i32 @s2n_print_stacktrace(ptr noundef %5183)
  %5185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5186 = trunc i8 %5185 to i1
  br i1 %5186, label %5187, label %5209

5187:                                             ; preds = %5180
  %5188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5189 = call i32 @fileno(ptr noundef %5188) #10
  %5190 = call i32 @isatty(i32 noundef %5189) #10
  %5191 = icmp ne i32 %5190, 0
  br i1 %5191, label %5192, label %5209

5192:                                             ; preds = %5187
  %5193 = load i32, ptr %128, align 4, !tbaa !5
  %5194 = call ptr @__errno_location() #11
  store i32 %5193, ptr %5194, align 4, !tbaa !5
  %5195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5196 = load i32, ptr @test_count, align 4, !tbaa !5
  %5197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5198 = load i32, ptr %5197, align 4, !tbaa !5
  %5199 = call ptr @s2n_strerror(i32 noundef %5198, ptr noundef @.str.4)
  %5200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5201 = load i32, ptr %5200, align 4, !tbaa !5
  %5202 = call ptr @s2n_strerror_debug(i32 noundef %5201, ptr noundef @.str.4)
  %5203 = call ptr @__errno_location() #11
  %5204 = load i32, ptr %5203, align 4, !tbaa !5
  %5205 = call ptr @strerror(i32 noundef %5204) #10
  %5206 = call ptr @__errno_location() #11
  %5207 = load i32, ptr %5206, align 4, !tbaa !5
  %5208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5195, ptr noundef @.str.2, i32 noundef %5196, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 290, ptr noundef %5199, ptr noundef %5202, ptr noundef %5205, i32 noundef %5207) #10
  br label %5226

5209:                                             ; preds = %5187, %5180
  %5210 = load i32, ptr %128, align 4, !tbaa !5
  %5211 = call ptr @__errno_location() #11
  store i32 %5210, ptr %5211, align 4, !tbaa !5
  %5212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5213 = load i32, ptr @test_count, align 4, !tbaa !5
  %5214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5215 = load i32, ptr %5214, align 4, !tbaa !5
  %5216 = call ptr @s2n_strerror(i32 noundef %5215, ptr noundef @.str.4)
  %5217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5218 = load i32, ptr %5217, align 4, !tbaa !5
  %5219 = call ptr @s2n_strerror_debug(i32 noundef %5218, ptr noundef @.str.4)
  %5220 = call ptr @__errno_location() #11
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @strerror(i32 noundef %5221) #10
  %5223 = call ptr @__errno_location() #11
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5212, ptr noundef @.str.5, i32 noundef %5213, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 290, ptr noundef %5216, ptr noundef %5219, ptr noundef %5222, i32 noundef %5224) #10
  br label %5226

5226:                                             ; preds = %5209, %5192
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  br label %5227

5227:                                             ; preds = %5226
  br label %5228

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

5229:                                             ; No predecessors!
  br label %5230

5230:                                             ; preds = %5229
  br label %5231

5231:                                             ; preds = %5230, %5168
  br label %5232

5232:                                             ; preds = %5231
  br label %5233

5233:                                             ; preds = %5232
  br label %5234

5234:                                             ; preds = %5233
  %5235 = load i32, ptr @test_count, align 4, !tbaa !5
  %5236 = add nsw i32 %5235, 1
  store i32 %5236, ptr @test_count, align 4, !tbaa !5
  %5237 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %116, i32 0, i32 4
  %5238 = load i32, ptr %5237, align 4, !tbaa !20
  %5239 = icmp eq i32 %5238, 1
  br i1 %5239, label %5293, label %5240

5240:                                             ; preds = %5234
  br label %5241

5241:                                             ; preds = %5240
  br label %5242

5242:                                             ; preds = %5241
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %5243 = call ptr @__errno_location() #11
  %5244 = load i32, ptr %5243, align 4, !tbaa !5
  store i32 %5244, ptr %129, align 4, !tbaa !5
  %5245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5246 = call i32 @s2n_print_stacktrace(ptr noundef %5245)
  %5247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5248 = trunc i8 %5247 to i1
  br i1 %5248, label %5249, label %5271

5249:                                             ; preds = %5242
  %5250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5251 = call i32 @fileno(ptr noundef %5250) #10
  %5252 = call i32 @isatty(i32 noundef %5251) #10
  %5253 = icmp ne i32 %5252, 0
  br i1 %5253, label %5254, label %5271

5254:                                             ; preds = %5249
  %5255 = load i32, ptr %129, align 4, !tbaa !5
  %5256 = call ptr @__errno_location() #11
  store i32 %5255, ptr %5256, align 4, !tbaa !5
  %5257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5258 = load i32, ptr @test_count, align 4, !tbaa !5
  %5259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5260 = load i32, ptr %5259, align 4, !tbaa !5
  %5261 = call ptr @s2n_strerror(i32 noundef %5260, ptr noundef @.str.4)
  %5262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5263 = load i32, ptr %5262, align 4, !tbaa !5
  %5264 = call ptr @s2n_strerror_debug(i32 noundef %5263, ptr noundef @.str.4)
  %5265 = call ptr @__errno_location() #11
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @strerror(i32 noundef %5266) #10
  %5268 = call ptr @__errno_location() #11
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5257, ptr noundef @.str.2, i32 noundef %5258, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 291, ptr noundef %5261, ptr noundef %5264, ptr noundef %5267, i32 noundef %5269) #10
  br label %5288

5271:                                             ; preds = %5249, %5242
  %5272 = load i32, ptr %129, align 4, !tbaa !5
  %5273 = call ptr @__errno_location() #11
  store i32 %5272, ptr %5273, align 4, !tbaa !5
  %5274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5275 = load i32, ptr @test_count, align 4, !tbaa !5
  %5276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  %5278 = call ptr @s2n_strerror(i32 noundef %5277, ptr noundef @.str.4)
  %5279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5280 = load i32, ptr %5279, align 4, !tbaa !5
  %5281 = call ptr @s2n_strerror_debug(i32 noundef %5280, ptr noundef @.str.4)
  %5282 = call ptr @__errno_location() #11
  %5283 = load i32, ptr %5282, align 4, !tbaa !5
  %5284 = call ptr @strerror(i32 noundef %5283) #10
  %5285 = call ptr @__errno_location() #11
  %5286 = load i32, ptr %5285, align 4, !tbaa !5
  %5287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5274, ptr noundef @.str.5, i32 noundef %5275, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 291, ptr noundef %5278, ptr noundef %5281, ptr noundef %5284, i32 noundef %5286) #10
  br label %5288

5288:                                             ; preds = %5271, %5254
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %5289

5289:                                             ; preds = %5288
  br label %5290

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

5291:                                             ; No predecessors!
  br label %5292

5292:                                             ; preds = %5291
  br label %5293

5293:                                             ; preds = %5292, %5234
  br label %5294

5294:                                             ; preds = %5293
  br label %5295

5295:                                             ; preds = %5294
  call void @llvm.lifetime.start.p0(i64 1, ptr %130) #10
  store i8 0, ptr %130, align 1, !tbaa !11
  br label %5296

5296:                                             ; preds = %5295
  %5297 = load i32, ptr @test_count, align 4, !tbaa !5
  %5298 = add nsw i32 %5297, 1
  store i32 %5298, ptr @test_count, align 4, !tbaa !5
  %5299 = load ptr, ptr %121, align 8, !tbaa !9
  %5300 = getelementptr inbounds %struct.s2n_connection, ptr %5299, i32 0, i32 71
  %5301 = call i32 @s2n_client_hello_has_extension(ptr noundef %5300, i16 noundef zeroext 43, ptr noundef %130)
  %5302 = icmp eq i32 %5301, -1
  br i1 %5302, label %5303, label %5356

5303:                                             ; preds = %5296
  br label %5304

5304:                                             ; preds = %5303
  br label %5305

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

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

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

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

5351:                                             ; preds = %5334, %5317
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %5352

5352:                                             ; preds = %5351
  br label %5353

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

5354:                                             ; No predecessors!
  br label %5355

5355:                                             ; preds = %5354
  br label %5356

5356:                                             ; preds = %5355, %5296
  br label %5357

5357:                                             ; preds = %5356
  br label %5358

5358:                                             ; preds = %5357
  br label %5359

5359:                                             ; preds = %5358
  %5360 = load i32, ptr @test_count, align 4, !tbaa !5
  %5361 = add nsw i32 %5360, 1
  store i32 %5361, ptr @test_count, align 4, !tbaa !5
  %5362 = load i8, ptr %130, align 1, !tbaa !11, !range !13, !noundef !14
  %5363 = trunc i8 %5362 to i1
  br i1 %5363, label %5417, label %5364

5364:                                             ; preds = %5359
  br label %5365

5365:                                             ; preds = %5364
  br label %5366

5366:                                             ; preds = %5365
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %5367 = call ptr @__errno_location() #11
  %5368 = load i32, ptr %5367, align 4, !tbaa !5
  store i32 %5368, ptr %132, 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) #10
  %5376 = call i32 @isatty(i32 noundef %5375) #10
  %5377 = icmp ne i32 %5376, 0
  br i1 %5377, label %5378, label %5395

5378:                                             ; preds = %5373
  %5379 = load i32, ptr %132, align 4, !tbaa !5
  %5380 = call ptr @__errno_location() #11
  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() #11
  %5390 = load i32, ptr %5389, align 4, !tbaa !5
  %5391 = call ptr @strerror(i32 noundef %5390) #10
  %5392 = call ptr @__errno_location() #11
  %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.32, ptr noundef @.str.1, i32 noundef 297, ptr noundef %5385, ptr noundef %5388, ptr noundef %5391, i32 noundef %5393) #10
  br label %5412

5395:                                             ; preds = %5373, %5366
  %5396 = load i32, ptr %132, align 4, !tbaa !5
  %5397 = call ptr @__errno_location() #11
  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() #11
  %5407 = load i32, ptr %5406, align 4, !tbaa !5
  %5408 = call ptr @strerror(i32 noundef %5407) #10
  %5409 = call ptr @__errno_location() #11
  %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.32, ptr noundef @.str.1, i32 noundef 297, ptr noundef %5402, ptr noundef %5405, ptr noundef %5408, i32 noundef %5410) #10
  br label %5412

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

5413:                                             ; preds = %5412
  br label %5414

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

5415:                                             ; No predecessors!
  br label %5416

5416:                                             ; preds = %5415
  br label %5417

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

5418:                                             ; preds = %5417
  br label %5419

5419:                                             ; preds = %5418
  br label %5420

5420:                                             ; preds = %5419
  %5421 = load i32, ptr @test_count, align 4, !tbaa !5
  %5422 = add nsw i32 %5421, 1
  store i32 %5422, ptr @test_count, align 4, !tbaa !5
  %5423 = load ptr, ptr %121, align 8, !tbaa !9
  %5424 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %5423)
  %5425 = load i8, ptr %112, align 1, !tbaa !15
  %5426 = zext i8 %5425 to i32
  %5427 = icmp eq i32 %5424, %5426
  br i1 %5427, label %5481, label %5428

5428:                                             ; preds = %5420
  br label %5429

5429:                                             ; preds = %5428
  br label %5430

5430:                                             ; preds = %5429
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #10
  %5431 = call ptr @__errno_location() #11
  %5432 = load i32, ptr %5431, align 4, !tbaa !5
  store i32 %5432, ptr %133, align 4, !tbaa !5
  %5433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5434 = call i32 @s2n_print_stacktrace(ptr noundef %5433)
  %5435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5436 = trunc i8 %5435 to i1
  br i1 %5436, label %5437, label %5459

5437:                                             ; preds = %5430
  %5438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5439 = call i32 @fileno(ptr noundef %5438) #10
  %5440 = call i32 @isatty(i32 noundef %5439) #10
  %5441 = icmp ne i32 %5440, 0
  br i1 %5441, label %5442, label %5459

5442:                                             ; preds = %5437
  %5443 = load i32, ptr %133, align 4, !tbaa !5
  %5444 = call ptr @__errno_location() #11
  store i32 %5443, ptr %5444, align 4, !tbaa !5
  %5445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5446 = load i32, ptr @test_count, align 4, !tbaa !5
  %5447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @s2n_strerror(i32 noundef %5448, ptr noundef @.str.4)
  %5450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call ptr @s2n_strerror_debug(i32 noundef %5451, ptr noundef @.str.4)
  %5453 = call ptr @__errno_location() #11
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call ptr @strerror(i32 noundef %5454) #10
  %5456 = call ptr @__errno_location() #11
  %5457 = load i32, ptr %5456, align 4, !tbaa !5
  %5458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5445, ptr noundef @.str.2, i32 noundef %5446, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 299, ptr noundef %5449, ptr noundef %5452, ptr noundef %5455, i32 noundef %5457) #10
  br label %5476

5459:                                             ; preds = %5437, %5430
  %5460 = load i32, ptr %133, align 4, !tbaa !5
  %5461 = call ptr @__errno_location() #11
  store i32 %5460, ptr %5461, align 4, !tbaa !5
  %5462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5463 = load i32, ptr @test_count, align 4, !tbaa !5
  %5464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5465 = load i32, ptr %5464, align 4, !tbaa !5
  %5466 = call ptr @s2n_strerror(i32 noundef %5465, ptr noundef @.str.4)
  %5467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call ptr @s2n_strerror_debug(i32 noundef %5468, ptr noundef @.str.4)
  %5470 = call ptr @__errno_location() #11
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call ptr @strerror(i32 noundef %5471) #10
  %5473 = call ptr @__errno_location() #11
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  %5475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5462, ptr noundef @.str.5, i32 noundef %5463, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 299, ptr noundef %5466, ptr noundef %5469, ptr noundef %5472, i32 noundef %5474) #10
  br label %5476

5476:                                             ; preds = %5459, %5442
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #10
  br label %5477

5477:                                             ; preds = %5476
  br label %5478

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

5479:                                             ; No predecessors!
  br label %5480

5480:                                             ; preds = %5479
  br label %5481

5481:                                             ; preds = %5480, %5420
  br label %5482

5482:                                             ; preds = %5481
  br label %5483

5483:                                             ; preds = %5482
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #10
  %5484 = call i32 @s2n_io_pair_close(ptr noundef %124)
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  %5485 = call i32 @s2n_connection_ptr_free(ptr noundef %121)
  %5486 = getelementptr inbounds %struct.s2n_result, ptr %134, i32 0, i32 0
  store i32 %5485, ptr %5486, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #10
  %5487 = call i32 @s2n_connection_ptr_free(ptr noundef %118)
  %5488 = getelementptr inbounds %struct.s2n_result, ptr %135, i32 0, i32 0
  store i32 %5487, ptr %5488, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %116) #10
  %5489 = call i32 @s2n_config_ptr_free(ptr noundef %113)
  %5490 = getelementptr inbounds %struct.s2n_result, ptr %136, i32 0, i32 0
  store i32 %5489, ptr %5490, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #10
  br label %5491

5491:                                             ; preds = %5483
  %5492 = load i8, ptr %112, align 1, !tbaa !15
  %5493 = add i8 %5492, 1
  store i8 %5493, ptr %112, align 1, !tbaa !15
  br label %4594, !llvm.loop !55

5494:                                             ; preds = %4598
  call void @llvm.lifetime.start.p0(i64 1, ptr %137) #10
  store i8 30, ptr %137, align 1, !tbaa !15
  br label %5495

5495:                                             ; preds = %6392, %5494
  %5496 = load i8, ptr %137, align 1, !tbaa !15
  %5497 = zext i8 %5496 to i32
  %5498 = icmp sle i32 %5497, 33
  br i1 %5498, label %5500, label %5499

5499:                                             ; preds = %5495
  store i32 537, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #10
  br label %6395

5500:                                             ; preds = %5495
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #10
  %5501 = call ptr @s2n_config_new()
  store ptr %5501, ptr %138, align 8, !tbaa !9
  br label %5502

5502:                                             ; preds = %5500
  %5503 = load i32, ptr @test_count, align 4, !tbaa !5
  %5504 = add nsw i32 %5503, 1
  store i32 %5504, ptr @test_count, align 4, !tbaa !5
  %5505 = load ptr, ptr %138, align 8, !tbaa !9
  %5506 = load ptr, ptr %9, align 8, !tbaa !9
  %5507 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %5505, ptr noundef %5506)
  %5508 = icmp eq i32 %5507, -1
  br i1 %5508, label %5509, label %5562

5509:                                             ; preds = %5502
  br label %5510

5510:                                             ; preds = %5509
  br label %5511

5511:                                             ; preds = %5510
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #10
  %5512 = call ptr @__errno_location() #11
  %5513 = load i32, ptr %5512, align 4, !tbaa !5
  store i32 %5513, ptr %139, align 4, !tbaa !5
  %5514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5515 = call i32 @s2n_print_stacktrace(ptr noundef %5514)
  %5516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5517 = trunc i8 %5516 to i1
  br i1 %5517, label %5518, label %5540

5518:                                             ; preds = %5511
  %5519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5520 = call i32 @fileno(ptr noundef %5519) #10
  %5521 = call i32 @isatty(i32 noundef %5520) #10
  %5522 = icmp ne i32 %5521, 0
  br i1 %5522, label %5523, label %5540

5523:                                             ; preds = %5518
  %5524 = load i32, ptr %139, align 4, !tbaa !5
  %5525 = call ptr @__errno_location() #11
  store i32 %5524, ptr %5525, align 4, !tbaa !5
  %5526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5527 = load i32, ptr @test_count, align 4, !tbaa !5
  %5528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5529 = load i32, ptr %5528, align 4, !tbaa !5
  %5530 = call ptr @s2n_strerror(i32 noundef %5529, ptr noundef @.str.4)
  %5531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5532 = load i32, ptr %5531, align 4, !tbaa !5
  %5533 = call ptr @s2n_strerror_debug(i32 noundef %5532, ptr noundef @.str.4)
  %5534 = call ptr @__errno_location() #11
  %5535 = load i32, ptr %5534, align 4, !tbaa !5
  %5536 = call ptr @strerror(i32 noundef %5535) #10
  %5537 = call ptr @__errno_location() #11
  %5538 = load i32, ptr %5537, align 4, !tbaa !5
  %5539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5526, ptr noundef @.str.2, i32 noundef %5527, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 307, ptr noundef %5530, ptr noundef %5533, ptr noundef %5536, i32 noundef %5538) #10
  br label %5557

5540:                                             ; preds = %5518, %5511
  %5541 = load i32, ptr %139, align 4, !tbaa !5
  %5542 = call ptr @__errno_location() #11
  store i32 %5541, ptr %5542, align 4, !tbaa !5
  %5543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5544 = load i32, ptr @test_count, align 4, !tbaa !5
  %5545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5546 = load i32, ptr %5545, align 4, !tbaa !5
  %5547 = call ptr @s2n_strerror(i32 noundef %5546, ptr noundef @.str.4)
  %5548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5549 = load i32, ptr %5548, align 4, !tbaa !5
  %5550 = call ptr @s2n_strerror_debug(i32 noundef %5549, ptr noundef @.str.4)
  %5551 = call ptr @__errno_location() #11
  %5552 = load i32, ptr %5551, align 4, !tbaa !5
  %5553 = call ptr @strerror(i32 noundef %5552) #10
  %5554 = call ptr @__errno_location() #11
  %5555 = load i32, ptr %5554, align 4, !tbaa !5
  %5556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5543, ptr noundef @.str.5, i32 noundef %5544, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 307, ptr noundef %5547, ptr noundef %5550, ptr noundef %5553, i32 noundef %5555) #10
  br label %5557

5557:                                             ; preds = %5540, %5523
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #10
  br label %5558

5558:                                             ; preds = %5557
  br label %5559

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

5560:                                             ; No predecessors!
  br label %5561

5561:                                             ; preds = %5560
  br label %5562

5562:                                             ; preds = %5561, %5502
  br label %5563

5563:                                             ; preds = %5562
  br label %5564

5564:                                             ; preds = %5563
  br label %5565

5565:                                             ; preds = %5564
  %5566 = load i32, ptr @test_count, align 4, !tbaa !5
  %5567 = add nsw i32 %5566, 1
  store i32 %5567, ptr @test_count, align 4, !tbaa !5
  %5568 = load ptr, ptr %138, align 8, !tbaa !9
  %5569 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %5568, ptr noundef @.str.18)
  %5570 = icmp eq i32 %5569, -1
  br i1 %5570, label %5571, label %5624

5571:                                             ; preds = %5565
  br label %5572

5572:                                             ; preds = %5571
  br label %5573

5573:                                             ; preds = %5572
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #10
  %5574 = call ptr @__errno_location() #11
  %5575 = load i32, ptr %5574, align 4, !tbaa !5
  store i32 %5575, ptr %140, align 4, !tbaa !5
  %5576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5577 = call i32 @s2n_print_stacktrace(ptr noundef %5576)
  %5578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5579 = trunc i8 %5578 to i1
  br i1 %5579, label %5580, label %5602

5580:                                             ; preds = %5573
  %5581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5582 = call i32 @fileno(ptr noundef %5581) #10
  %5583 = call i32 @isatty(i32 noundef %5582) #10
  %5584 = icmp ne i32 %5583, 0
  br i1 %5584, label %5585, label %5602

5585:                                             ; preds = %5580
  %5586 = load i32, ptr %140, align 4, !tbaa !5
  %5587 = call ptr @__errno_location() #11
  store i32 %5586, ptr %5587, align 4, !tbaa !5
  %5588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5589 = load i32, ptr @test_count, align 4, !tbaa !5
  %5590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5591 = load i32, ptr %5590, align 4, !tbaa !5
  %5592 = call ptr @s2n_strerror(i32 noundef %5591, ptr noundef @.str.4)
  %5593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5594 = load i32, ptr %5593, align 4, !tbaa !5
  %5595 = call ptr @s2n_strerror_debug(i32 noundef %5594, ptr noundef @.str.4)
  %5596 = call ptr @__errno_location() #11
  %5597 = load i32, ptr %5596, align 4, !tbaa !5
  %5598 = call ptr @strerror(i32 noundef %5597) #10
  %5599 = call ptr @__errno_location() #11
  %5600 = load i32, ptr %5599, align 4, !tbaa !5
  %5601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5588, ptr noundef @.str.2, i32 noundef %5589, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 308, ptr noundef %5592, ptr noundef %5595, ptr noundef %5598, i32 noundef %5600) #10
  br label %5619

5602:                                             ; preds = %5580, %5573
  %5603 = load i32, ptr %140, align 4, !tbaa !5
  %5604 = call ptr @__errno_location() #11
  store i32 %5603, ptr %5604, align 4, !tbaa !5
  %5605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5606 = load i32, ptr @test_count, align 4, !tbaa !5
  %5607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5608 = load i32, ptr %5607, align 4, !tbaa !5
  %5609 = call ptr @s2n_strerror(i32 noundef %5608, ptr noundef @.str.4)
  %5610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5611 = load i32, ptr %5610, align 4, !tbaa !5
  %5612 = call ptr @s2n_strerror_debug(i32 noundef %5611, ptr noundef @.str.4)
  %5613 = call ptr @__errno_location() #11
  %5614 = load i32, ptr %5613, align 4, !tbaa !5
  %5615 = call ptr @strerror(i32 noundef %5614) #10
  %5616 = call ptr @__errno_location() #11
  %5617 = load i32, ptr %5616, align 4, !tbaa !5
  %5618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5605, ptr noundef @.str.5, i32 noundef %5606, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 308, ptr noundef %5609, ptr noundef %5612, ptr noundef %5615, i32 noundef %5617) #10
  br label %5619

5619:                                             ; preds = %5602, %5585
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #10
  br label %5620

5620:                                             ; preds = %5619
  br label %5621

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

5622:                                             ; No predecessors!
  br label %5623

5623:                                             ; preds = %5622
  br label %5624

5624:                                             ; preds = %5623, %5565
  br label %5625

5625:                                             ; preds = %5624
  br label %5626

5626:                                             ; preds = %5625
  call void @llvm.lifetime.start.p0(i64 12, ptr %141) #10
  %5627 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %141, i32 0, i32 0
  %5628 = load i8, ptr %137, align 1, !tbaa !15
  store i8 %5628, ptr %5627, align 4, !tbaa !16
  %5629 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %141, i32 0, i32 1
  store i8 44, ptr %5629, align 1, !tbaa !18
  %5630 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %141, i32 0, i32 2
  store i8 2, ptr %5630, align 2, !tbaa !19
  %5631 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %141, i32 0, i32 3
  call void @llvm.memset.p0.i64(ptr align 1 %5631, i8 0, i64 3, i1 false)
  %5632 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %141, i32 0, i32 4
  store i32 0, ptr %5632, align 4, !tbaa !20
  br label %5633

5633:                                             ; preds = %5626
  %5634 = load i32, ptr @test_count, align 4, !tbaa !5
  %5635 = add nsw i32 %5634, 1
  store i32 %5635, ptr @test_count, align 4, !tbaa !5
  %5636 = load ptr, ptr %138, align 8, !tbaa !9
  %5637 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %5636, ptr noundef @s2n_overwrite_client_hello_cb, ptr noundef %141)
  %5638 = icmp eq i32 %5637, -1
  br i1 %5638, label %5639, label %5692

5639:                                             ; preds = %5633
  br label %5640

5640:                                             ; preds = %5639
  br label %5641

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

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

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

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

5687:                                             ; preds = %5670, %5653
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %5688

5688:                                             ; preds = %5687
  br label %5689

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

5690:                                             ; No predecessors!
  br label %5691

5691:                                             ; preds = %5690
  br label %5692

5692:                                             ; preds = %5691, %5633
  br label %5693

5693:                                             ; preds = %5692
  br label %5694

5694:                                             ; preds = %5693
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #10
  %5695 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5695, ptr %143, align 8, !tbaa !9
  br label %5696

5696:                                             ; preds = %5694
  %5697 = load i32, ptr @test_count, align 4, !tbaa !5
  %5698 = add nsw i32 %5697, 1
  store i32 %5698, ptr @test_count, align 4, !tbaa !5
  %5699 = load ptr, ptr %143, align 8, !tbaa !9
  %5700 = icmp eq ptr %5699, null
  br i1 %5700, label %5701, label %5754

5701:                                             ; preds = %5696
  br label %5702

5702:                                             ; preds = %5701
  br label %5703

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

5710:                                             ; preds = %5703
  %5711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5712 = call i32 @fileno(ptr noundef %5711) #10
  %5713 = call i32 @isatty(i32 noundef %5712) #10
  %5714 = icmp ne i32 %5713, 0
  br i1 %5714, label %5715, label %5732

5715:                                             ; preds = %5710
  %5716 = load i32, ptr %144, align 4, !tbaa !5
  %5717 = call ptr @__errno_location() #11
  store i32 %5716, ptr %5717, align 4, !tbaa !5
  %5718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5719 = load i32, ptr @test_count, align 4, !tbaa !5
  %5720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5721 = load i32, ptr %5720, align 4, !tbaa !5
  %5722 = call ptr @s2n_strerror(i32 noundef %5721, ptr noundef @.str.4)
  %5723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5724 = load i32, ptr %5723, align 4, !tbaa !5
  %5725 = call ptr @s2n_strerror_debug(i32 noundef %5724, ptr noundef @.str.4)
  %5726 = call ptr @__errno_location() #11
  %5727 = load i32, ptr %5726, align 4, !tbaa !5
  %5728 = call ptr @strerror(i32 noundef %5727) #10
  %5729 = call ptr @__errno_location() #11
  %5730 = load i32, ptr %5729, align 4, !tbaa !5
  %5731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5718, ptr noundef @.str.2, i32 noundef %5719, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 320, ptr noundef %5722, ptr noundef %5725, ptr noundef %5728, i32 noundef %5730) #10
  br label %5749

5732:                                             ; preds = %5710, %5703
  %5733 = load i32, ptr %144, align 4, !tbaa !5
  %5734 = call ptr @__errno_location() #11
  store i32 %5733, ptr %5734, align 4, !tbaa !5
  %5735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5736 = load i32, ptr @test_count, align 4, !tbaa !5
  %5737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5738 = load i32, ptr %5737, align 4, !tbaa !5
  %5739 = call ptr @s2n_strerror(i32 noundef %5738, ptr noundef @.str.4)
  %5740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5741 = load i32, ptr %5740, align 4, !tbaa !5
  %5742 = call ptr @s2n_strerror_debug(i32 noundef %5741, ptr noundef @.str.4)
  %5743 = call ptr @__errno_location() #11
  %5744 = load i32, ptr %5743, align 4, !tbaa !5
  %5745 = call ptr @strerror(i32 noundef %5744) #10
  %5746 = call ptr @__errno_location() #11
  %5747 = load i32, ptr %5746, align 4, !tbaa !5
  %5748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5735, ptr noundef @.str.5, i32 noundef %5736, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 320, ptr noundef %5739, ptr noundef %5742, ptr noundef %5745, i32 noundef %5747) #10
  br label %5749

5749:                                             ; preds = %5732, %5715
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #10
  br label %5750

5750:                                             ; preds = %5749
  br label %5751

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

5752:                                             ; No predecessors!
  br label %5753

5753:                                             ; preds = %5752
  br label %5754

5754:                                             ; preds = %5753, %5696
  br label %5755

5755:                                             ; preds = %5754
  br label %5756

5756:                                             ; preds = %5755
  br label %5757

5757:                                             ; preds = %5756
  %5758 = load i32, ptr @test_count, align 4, !tbaa !5
  %5759 = add nsw i32 %5758, 1
  store i32 %5759, ptr @test_count, align 4, !tbaa !5
  %5760 = load ptr, ptr %143, align 8, !tbaa !9
  %5761 = load ptr, ptr %138, align 8, !tbaa !9
  %5762 = call i32 @s2n_connection_set_config(ptr noundef %5760, ptr noundef %5761)
  %5763 = icmp eq i32 %5762, -1
  br i1 %5763, label %5764, label %5817

5764:                                             ; preds = %5757
  br label %5765

5765:                                             ; preds = %5764
  br label %5766

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

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

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

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

5812:                                             ; preds = %5795, %5778
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #10
  br label %5813

5813:                                             ; preds = %5812
  br label %5814

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

5815:                                             ; No predecessors!
  br label %5816

5816:                                             ; preds = %5815
  br label %5817

5817:                                             ; preds = %5816, %5757
  br label %5818

5818:                                             ; preds = %5817
  br label %5819

5819:                                             ; preds = %5818
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #10
  %5820 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5820, ptr %146, align 8, !tbaa !9
  br label %5821

5821:                                             ; preds = %5819
  %5822 = load i32, ptr @test_count, align 4, !tbaa !5
  %5823 = add nsw i32 %5822, 1
  store i32 %5823, ptr @test_count, align 4, !tbaa !5
  %5824 = load ptr, ptr %146, align 8, !tbaa !9
  %5825 = icmp eq ptr %5824, null
  br i1 %5825, label %5826, label %5879

5826:                                             ; preds = %5821
  br label %5827

5827:                                             ; preds = %5826
  br label %5828

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

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

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

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

5874:                                             ; preds = %5857, %5840
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %5875

5875:                                             ; preds = %5874
  br label %5876

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

5877:                                             ; No predecessors!
  br label %5878

5878:                                             ; preds = %5877
  br label %5879

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

5880:                                             ; preds = %5879
  br label %5881

5881:                                             ; preds = %5880
  br label %5882

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

5889:                                             ; preds = %5882
  br label %5890

5890:                                             ; preds = %5889
  br label %5891

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

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

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

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

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

5938:                                             ; preds = %5937
  br label %5939

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

5940:                                             ; No predecessors!
  br label %5941

5941:                                             ; preds = %5940
  br label %5942

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

5943:                                             ; preds = %5942
  br label %5944

5944:                                             ; preds = %5943
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #10
  call void @llvm.memset.p0.i64(ptr align 4 %149, i8 0, i64 8, i1 false)
  br label %5945

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

5950:                                             ; preds = %5945
  br label %5951

5951:                                             ; preds = %5950
  br label %5952

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

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

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

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

5998:                                             ; preds = %5981, %5964
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #10
  br label %5999

5999:                                             ; preds = %5998
  br label %6000

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

6001:                                             ; No predecessors!
  br label %6002

6002:                                             ; preds = %6001
  br label %6003

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

6004:                                             ; preds = %6003
  br label %6005

6005:                                             ; preds = %6004
  br label %6006

6006:                                             ; preds = %6005
  %6007 = load i32, ptr @test_count, align 4, !tbaa !5
  %6008 = add nsw i32 %6007, 1
  store i32 %6008, ptr @test_count, align 4, !tbaa !5
  %6009 = load ptr, ptr %143, align 8, !tbaa !9
  %6010 = load ptr, ptr %146, align 8, !tbaa !9
  %6011 = call i32 @s2n_connections_set_io_pair(ptr noundef %6009, ptr noundef %6010, ptr noundef %149)
  %6012 = icmp eq i32 %6011, -1
  br i1 %6012, label %6013, label %6066

6013:                                             ; preds = %6006
  br label %6014

6014:                                             ; preds = %6013
  br label %6015

6015:                                             ; preds = %6014
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  %6016 = call ptr @__errno_location() #11
  %6017 = load i32, ptr %6016, align 4, !tbaa !5
  store i32 %6017, ptr %151, align 4, !tbaa !5
  %6018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6019 = call i32 @s2n_print_stacktrace(ptr noundef %6018)
  %6020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6021 = trunc i8 %6020 to i1
  br i1 %6021, label %6022, label %6044

6022:                                             ; preds = %6015
  %6023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6024 = call i32 @fileno(ptr noundef %6023) #10
  %6025 = call i32 @isatty(i32 noundef %6024) #10
  %6026 = icmp ne i32 %6025, 0
  br i1 %6026, label %6027, label %6044

6027:                                             ; preds = %6022
  %6028 = load i32, ptr %151, align 4, !tbaa !5
  %6029 = call ptr @__errno_location() #11
  store i32 %6028, ptr %6029, align 4, !tbaa !5
  %6030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6031 = load i32, ptr @test_count, align 4, !tbaa !5
  %6032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6033 = load i32, ptr %6032, align 4, !tbaa !5
  %6034 = call ptr @s2n_strerror(i32 noundef %6033, ptr noundef @.str.4)
  %6035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6036 = load i32, ptr %6035, align 4, !tbaa !5
  %6037 = call ptr @s2n_strerror_debug(i32 noundef %6036, ptr noundef @.str.4)
  %6038 = call ptr @__errno_location() #11
  %6039 = load i32, ptr %6038, align 4, !tbaa !5
  %6040 = call ptr @strerror(i32 noundef %6039) #10
  %6041 = call ptr @__errno_location() #11
  %6042 = load i32, ptr %6041, align 4, !tbaa !5
  %6043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6030, ptr noundef @.str.2, i32 noundef %6031, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 330, ptr noundef %6034, ptr noundef %6037, ptr noundef %6040, i32 noundef %6042) #10
  br label %6061

6044:                                             ; preds = %6022, %6015
  %6045 = load i32, ptr %151, align 4, !tbaa !5
  %6046 = call ptr @__errno_location() #11
  store i32 %6045, ptr %6046, align 4, !tbaa !5
  %6047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6048 = load i32, ptr @test_count, align 4, !tbaa !5
  %6049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6050 = load i32, ptr %6049, align 4, !tbaa !5
  %6051 = call ptr @s2n_strerror(i32 noundef %6050, ptr noundef @.str.4)
  %6052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6053 = load i32, ptr %6052, align 4, !tbaa !5
  %6054 = call ptr @s2n_strerror_debug(i32 noundef %6053, ptr noundef @.str.4)
  %6055 = call ptr @__errno_location() #11
  %6056 = load i32, ptr %6055, align 4, !tbaa !5
  %6057 = call ptr @strerror(i32 noundef %6056) #10
  %6058 = call ptr @__errno_location() #11
  %6059 = load i32, ptr %6058, align 4, !tbaa !5
  %6060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6047, ptr noundef @.str.5, i32 noundef %6048, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 330, ptr noundef %6051, ptr noundef %6054, ptr noundef %6057, i32 noundef %6059) #10
  br label %6061

6061:                                             ; preds = %6044, %6027
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  br label %6062

6062:                                             ; preds = %6061
  br label %6063

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

6064:                                             ; No predecessors!
  br label %6065

6065:                                             ; preds = %6064
  br label %6066

6066:                                             ; preds = %6065, %6006
  br label %6067

6067:                                             ; preds = %6066
  br label %6068

6068:                                             ; preds = %6067
  br label %6069

6069:                                             ; preds = %6068
  %6070 = load i32, ptr @test_count, align 4, !tbaa !5
  %6071 = add nsw i32 %6070, 1
  store i32 %6071, ptr @test_count, align 4, !tbaa !5
  %6072 = load ptr, ptr %146, align 8, !tbaa !9
  %6073 = load ptr, ptr %143, align 8, !tbaa !9
  %6074 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %6072, ptr noundef %6073, i32 noundef 1)
  %6075 = getelementptr inbounds %struct.s2n_result, ptr %152, i32 0, i32 0
  store i32 %6074, ptr %6075, align 4
  %6076 = getelementptr inbounds %struct.s2n_result, ptr %152, i32 0, i32 0
  %6077 = load i32, ptr %6076, align 4
  %6078 = call zeroext i1 @s2n_result_is_ok(i32 %6077)
  br i1 %6078, label %6132, label %6079

6079:                                             ; preds = %6069
  br label %6080

6080:                                             ; preds = %6079
  br label %6081

6081:                                             ; preds = %6080
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #10
  %6082 = call ptr @__errno_location() #11
  %6083 = load i32, ptr %6082, align 4, !tbaa !5
  store i32 %6083, ptr %153, align 4, !tbaa !5
  %6084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6085 = call i32 @s2n_print_stacktrace(ptr noundef %6084)
  %6086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6087 = trunc i8 %6086 to i1
  br i1 %6087, label %6088, label %6110

6088:                                             ; preds = %6081
  %6089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6090 = call i32 @fileno(ptr noundef %6089) #10
  %6091 = call i32 @isatty(i32 noundef %6090) #10
  %6092 = icmp ne i32 %6091, 0
  br i1 %6092, label %6093, label %6110

6093:                                             ; preds = %6088
  %6094 = load i32, ptr %153, align 4, !tbaa !5
  %6095 = call ptr @__errno_location() #11
  store i32 %6094, ptr %6095, align 4, !tbaa !5
  %6096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6097 = load i32, ptr @test_count, align 4, !tbaa !5
  %6098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6099 = load i32, ptr %6098, align 4, !tbaa !5
  %6100 = call ptr @s2n_strerror(i32 noundef %6099, ptr noundef @.str.4)
  %6101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6102 = load i32, ptr %6101, align 4, !tbaa !5
  %6103 = call ptr @s2n_strerror_debug(i32 noundef %6102, ptr noundef @.str.4)
  %6104 = call ptr @__errno_location() #11
  %6105 = load i32, ptr %6104, align 4, !tbaa !5
  %6106 = call ptr @strerror(i32 noundef %6105) #10
  %6107 = call ptr @__errno_location() #11
  %6108 = load i32, ptr %6107, align 4, !tbaa !5
  %6109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6096, ptr noundef @.str.2, i32 noundef %6097, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6100, ptr noundef %6103, ptr noundef %6106, i32 noundef %6108) #10
  br label %6127

6110:                                             ; preds = %6088, %6081
  %6111 = load i32, ptr %153, align 4, !tbaa !5
  %6112 = call ptr @__errno_location() #11
  store i32 %6111, ptr %6112, align 4, !tbaa !5
  %6113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6114 = load i32, ptr @test_count, align 4, !tbaa !5
  %6115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6116 = load i32, ptr %6115, align 4, !tbaa !5
  %6117 = call ptr @s2n_strerror(i32 noundef %6116, ptr noundef @.str.4)
  %6118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6119 = load i32, ptr %6118, align 4, !tbaa !5
  %6120 = call ptr @s2n_strerror_debug(i32 noundef %6119, ptr noundef @.str.4)
  %6121 = call ptr @__errno_location() #11
  %6122 = load i32, ptr %6121, align 4, !tbaa !5
  %6123 = call ptr @strerror(i32 noundef %6122) #10
  %6124 = call ptr @__errno_location() #11
  %6125 = load i32, ptr %6124, align 4, !tbaa !5
  %6126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6113, ptr noundef @.str.5, i32 noundef %6114, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6117, ptr noundef %6120, ptr noundef %6123, i32 noundef %6125) #10
  br label %6127

6127:                                             ; preds = %6110, %6093
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #10
  br label %6128

6128:                                             ; preds = %6127
  br label %6129

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

6130:                                             ; No predecessors!
  br label %6131

6131:                                             ; preds = %6130
  br label %6132

6132:                                             ; preds = %6131, %6069
  br label %6133

6133:                                             ; preds = %6132
  br label %6134

6134:                                             ; preds = %6133
  br label %6135

6135:                                             ; preds = %6134
  %6136 = load i32, ptr @test_count, align 4, !tbaa !5
  %6137 = add nsw i32 %6136, 1
  store i32 %6137, ptr @test_count, align 4, !tbaa !5
  %6138 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %141, i32 0, i32 4
  %6139 = load i32, ptr %6138, align 4, !tbaa !20
  %6140 = icmp eq i32 %6139, 1
  br i1 %6140, label %6194, label %6141

6141:                                             ; preds = %6135
  br label %6142

6142:                                             ; preds = %6141
  br label %6143

6143:                                             ; preds = %6142
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  %6144 = call ptr @__errno_location() #11
  %6145 = load i32, ptr %6144, align 4, !tbaa !5
  store i32 %6145, ptr %154, align 4, !tbaa !5
  %6146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6147 = call i32 @s2n_print_stacktrace(ptr noundef %6146)
  %6148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6149 = trunc i8 %6148 to i1
  br i1 %6149, label %6150, label %6172

6150:                                             ; preds = %6143
  %6151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6152 = call i32 @fileno(ptr noundef %6151) #10
  %6153 = call i32 @isatty(i32 noundef %6152) #10
  %6154 = icmp ne i32 %6153, 0
  br i1 %6154, label %6155, label %6172

6155:                                             ; preds = %6150
  %6156 = load i32, ptr %154, align 4, !tbaa !5
  %6157 = call ptr @__errno_location() #11
  store i32 %6156, ptr %6157, align 4, !tbaa !5
  %6158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6159 = load i32, ptr @test_count, align 4, !tbaa !5
  %6160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6161 = load i32, ptr %6160, align 4, !tbaa !5
  %6162 = call ptr @s2n_strerror(i32 noundef %6161, ptr noundef @.str.4)
  %6163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6164 = load i32, ptr %6163, align 4, !tbaa !5
  %6165 = call ptr @s2n_strerror_debug(i32 noundef %6164, ptr noundef @.str.4)
  %6166 = call ptr @__errno_location() #11
  %6167 = load i32, ptr %6166, align 4, !tbaa !5
  %6168 = call ptr @strerror(i32 noundef %6167) #10
  %6169 = call ptr @__errno_location() #11
  %6170 = load i32, ptr %6169, align 4, !tbaa !5
  %6171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6158, ptr noundef @.str.2, i32 noundef %6159, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 333, ptr noundef %6162, ptr noundef %6165, ptr noundef %6168, i32 noundef %6170) #10
  br label %6189

6172:                                             ; preds = %6150, %6143
  %6173 = load i32, ptr %154, align 4, !tbaa !5
  %6174 = call ptr @__errno_location() #11
  store i32 %6173, ptr %6174, align 4, !tbaa !5
  %6175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6176 = load i32, ptr @test_count, align 4, !tbaa !5
  %6177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6178 = load i32, ptr %6177, align 4, !tbaa !5
  %6179 = call ptr @s2n_strerror(i32 noundef %6178, ptr noundef @.str.4)
  %6180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6181 = load i32, ptr %6180, align 4, !tbaa !5
  %6182 = call ptr @s2n_strerror_debug(i32 noundef %6181, ptr noundef @.str.4)
  %6183 = call ptr @__errno_location() #11
  %6184 = load i32, ptr %6183, align 4, !tbaa !5
  %6185 = call ptr @strerror(i32 noundef %6184) #10
  %6186 = call ptr @__errno_location() #11
  %6187 = load i32, ptr %6186, align 4, !tbaa !5
  %6188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6175, ptr noundef @.str.5, i32 noundef %6176, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 333, ptr noundef %6179, ptr noundef %6182, ptr noundef %6185, i32 noundef %6187) #10
  br label %6189

6189:                                             ; preds = %6172, %6155
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %6190

6190:                                             ; preds = %6189
  br label %6191

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

6192:                                             ; No predecessors!
  br label %6193

6193:                                             ; preds = %6192
  br label %6194

6194:                                             ; preds = %6193, %6135
  br label %6195

6195:                                             ; preds = %6194
  br label %6196

6196:                                             ; preds = %6195
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #10
  store i8 0, ptr %155, align 1, !tbaa !11
  br label %6197

6197:                                             ; preds = %6196
  %6198 = load i32, ptr @test_count, align 4, !tbaa !5
  %6199 = add nsw i32 %6198, 1
  store i32 %6199, ptr @test_count, align 4, !tbaa !5
  %6200 = load ptr, ptr %146, align 8, !tbaa !9
  %6201 = getelementptr inbounds %struct.s2n_connection, ptr %6200, i32 0, i32 71
  %6202 = call i32 @s2n_client_hello_has_extension(ptr noundef %6201, i16 noundef zeroext 43, ptr noundef %155)
  %6203 = icmp eq i32 %6202, -1
  br i1 %6203, label %6204, label %6257

6204:                                             ; preds = %6197
  br label %6205

6205:                                             ; preds = %6204
  br label %6206

6206:                                             ; preds = %6205
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %6207 = call ptr @__errno_location() #11
  %6208 = load i32, ptr %6207, align 4, !tbaa !5
  store i32 %6208, ptr %156, align 4, !tbaa !5
  %6209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6210 = call i32 @s2n_print_stacktrace(ptr noundef %6209)
  %6211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6212 = trunc i8 %6211 to i1
  br i1 %6212, label %6213, label %6235

6213:                                             ; preds = %6206
  %6214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6215 = call i32 @fileno(ptr noundef %6214) #10
  %6216 = call i32 @isatty(i32 noundef %6215) #10
  %6217 = icmp ne i32 %6216, 0
  br i1 %6217, label %6218, label %6235

6218:                                             ; preds = %6213
  %6219 = load i32, ptr %156, align 4, !tbaa !5
  %6220 = call ptr @__errno_location() #11
  store i32 %6219, ptr %6220, align 4, !tbaa !5
  %6221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6222 = load i32, ptr @test_count, align 4, !tbaa !5
  %6223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6224 = load i32, ptr %6223, align 4, !tbaa !5
  %6225 = call ptr @s2n_strerror(i32 noundef %6224, ptr noundef @.str.4)
  %6226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6227 = load i32, ptr %6226, align 4, !tbaa !5
  %6228 = call ptr @s2n_strerror_debug(i32 noundef %6227, ptr noundef @.str.4)
  %6229 = call ptr @__errno_location() #11
  %6230 = load i32, ptr %6229, align 4, !tbaa !5
  %6231 = call ptr @strerror(i32 noundef %6230) #10
  %6232 = call ptr @__errno_location() #11
  %6233 = load i32, ptr %6232, align 4, !tbaa !5
  %6234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6221, ptr noundef @.str.2, i32 noundef %6222, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 338, ptr noundef %6225, ptr noundef %6228, ptr noundef %6231, i32 noundef %6233) #10
  br label %6252

6235:                                             ; preds = %6213, %6206
  %6236 = load i32, ptr %156, align 4, !tbaa !5
  %6237 = call ptr @__errno_location() #11
  store i32 %6236, ptr %6237, align 4, !tbaa !5
  %6238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6239 = load i32, ptr @test_count, align 4, !tbaa !5
  %6240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6241 = load i32, ptr %6240, align 4, !tbaa !5
  %6242 = call ptr @s2n_strerror(i32 noundef %6241, ptr noundef @.str.4)
  %6243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6244 = load i32, ptr %6243, align 4, !tbaa !5
  %6245 = call ptr @s2n_strerror_debug(i32 noundef %6244, ptr noundef @.str.4)
  %6246 = call ptr @__errno_location() #11
  %6247 = load i32, ptr %6246, align 4, !tbaa !5
  %6248 = call ptr @strerror(i32 noundef %6247) #10
  %6249 = call ptr @__errno_location() #11
  %6250 = load i32, ptr %6249, align 4, !tbaa !5
  %6251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6238, ptr noundef @.str.5, i32 noundef %6239, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 338, ptr noundef %6242, ptr noundef %6245, ptr noundef %6248, i32 noundef %6250) #10
  br label %6252

6252:                                             ; preds = %6235, %6218
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %6253

6253:                                             ; preds = %6252
  br label %6254

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

6255:                                             ; No predecessors!
  br label %6256

6256:                                             ; preds = %6255
  br label %6257

6257:                                             ; preds = %6256, %6197
  br label %6258

6258:                                             ; preds = %6257
  br label %6259

6259:                                             ; preds = %6258
  br label %6260

6260:                                             ; preds = %6259
  %6261 = load i32, ptr @test_count, align 4, !tbaa !5
  %6262 = add nsw i32 %6261, 1
  store i32 %6262, ptr @test_count, align 4, !tbaa !5
  %6263 = load i8, ptr %155, align 1, !tbaa !11, !range !13, !noundef !14
  %6264 = trunc i8 %6263 to i1
  br i1 %6264, label %6318, label %6265

6265:                                             ; preds = %6260
  br label %6266

6266:                                             ; preds = %6265
  br label %6267

6267:                                             ; preds = %6266
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %6268 = call ptr @__errno_location() #11
  %6269 = load i32, ptr %6268, align 4, !tbaa !5
  store i32 %6269, ptr %157, align 4, !tbaa !5
  %6270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6271 = call i32 @s2n_print_stacktrace(ptr noundef %6270)
  %6272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6273 = trunc i8 %6272 to i1
  br i1 %6273, label %6274, label %6296

6274:                                             ; preds = %6267
  %6275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6276 = call i32 @fileno(ptr noundef %6275) #10
  %6277 = call i32 @isatty(i32 noundef %6276) #10
  %6278 = icmp ne i32 %6277, 0
  br i1 %6278, label %6279, label %6296

6279:                                             ; preds = %6274
  %6280 = load i32, ptr %157, align 4, !tbaa !5
  %6281 = call ptr @__errno_location() #11
  store i32 %6280, ptr %6281, align 4, !tbaa !5
  %6282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6283 = load i32, ptr @test_count, align 4, !tbaa !5
  %6284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6285 = load i32, ptr %6284, align 4, !tbaa !5
  %6286 = call ptr @s2n_strerror(i32 noundef %6285, ptr noundef @.str.4)
  %6287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6288 = load i32, ptr %6287, align 4, !tbaa !5
  %6289 = call ptr @s2n_strerror_debug(i32 noundef %6288, ptr noundef @.str.4)
  %6290 = call ptr @__errno_location() #11
  %6291 = load i32, ptr %6290, align 4, !tbaa !5
  %6292 = call ptr @strerror(i32 noundef %6291) #10
  %6293 = call ptr @__errno_location() #11
  %6294 = load i32, ptr %6293, align 4, !tbaa !5
  %6295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6282, ptr noundef @.str.2, i32 noundef %6283, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 339, ptr noundef %6286, ptr noundef %6289, ptr noundef %6292, i32 noundef %6294) #10
  br label %6313

6296:                                             ; preds = %6274, %6267
  %6297 = load i32, ptr %157, align 4, !tbaa !5
  %6298 = call ptr @__errno_location() #11
  store i32 %6297, ptr %6298, align 4, !tbaa !5
  %6299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6300 = load i32, ptr @test_count, align 4, !tbaa !5
  %6301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6302 = load i32, ptr %6301, align 4, !tbaa !5
  %6303 = call ptr @s2n_strerror(i32 noundef %6302, ptr noundef @.str.4)
  %6304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6305 = load i32, ptr %6304, align 4, !tbaa !5
  %6306 = call ptr @s2n_strerror_debug(i32 noundef %6305, ptr noundef @.str.4)
  %6307 = call ptr @__errno_location() #11
  %6308 = load i32, ptr %6307, align 4, !tbaa !5
  %6309 = call ptr @strerror(i32 noundef %6308) #10
  %6310 = call ptr @__errno_location() #11
  %6311 = load i32, ptr %6310, align 4, !tbaa !5
  %6312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6299, ptr noundef @.str.5, i32 noundef %6300, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 339, ptr noundef %6303, ptr noundef %6306, ptr noundef %6309, i32 noundef %6311) #10
  br label %6313

6313:                                             ; preds = %6296, %6279
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %6314

6314:                                             ; preds = %6313
  br label %6315

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

6316:                                             ; No predecessors!
  br label %6317

6317:                                             ; preds = %6316
  br label %6318

6318:                                             ; preds = %6317, %6260
  br label %6319

6319:                                             ; preds = %6318
  br label %6320

6320:                                             ; preds = %6319
  br label %6321

6321:                                             ; preds = %6320
  %6322 = load i32, ptr @test_count, align 4, !tbaa !5
  %6323 = add nsw i32 %6322, 1
  store i32 %6323, ptr @test_count, align 4, !tbaa !5
  %6324 = load ptr, ptr %146, align 8, !tbaa !9
  %6325 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %6324)
  %6326 = load i8, ptr %137, align 1, !tbaa !15
  %6327 = zext i8 %6326 to i32
  %6328 = icmp eq i32 %6325, %6327
  br i1 %6328, label %6382, label %6329

6329:                                             ; preds = %6321
  br label %6330

6330:                                             ; preds = %6329
  br label %6331

6331:                                             ; preds = %6330
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #10
  %6332 = call ptr @__errno_location() #11
  %6333 = load i32, ptr %6332, align 4, !tbaa !5
  store i32 %6333, ptr %158, align 4, !tbaa !5
  %6334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6335 = call i32 @s2n_print_stacktrace(ptr noundef %6334)
  %6336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6337 = trunc i8 %6336 to i1
  br i1 %6337, label %6338, label %6360

6338:                                             ; preds = %6331
  %6339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6340 = call i32 @fileno(ptr noundef %6339) #10
  %6341 = call i32 @isatty(i32 noundef %6340) #10
  %6342 = icmp ne i32 %6341, 0
  br i1 %6342, label %6343, label %6360

6343:                                             ; preds = %6338
  %6344 = load i32, ptr %158, align 4, !tbaa !5
  %6345 = call ptr @__errno_location() #11
  store i32 %6344, ptr %6345, align 4, !tbaa !5
  %6346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6347 = load i32, ptr @test_count, align 4, !tbaa !5
  %6348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6349 = load i32, ptr %6348, align 4, !tbaa !5
  %6350 = call ptr @s2n_strerror(i32 noundef %6349, ptr noundef @.str.4)
  %6351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6352 = load i32, ptr %6351, align 4, !tbaa !5
  %6353 = call ptr @s2n_strerror_debug(i32 noundef %6352, ptr noundef @.str.4)
  %6354 = call ptr @__errno_location() #11
  %6355 = load i32, ptr %6354, align 4, !tbaa !5
  %6356 = call ptr @strerror(i32 noundef %6355) #10
  %6357 = call ptr @__errno_location() #11
  %6358 = load i32, ptr %6357, align 4, !tbaa !5
  %6359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6346, ptr noundef @.str.2, i32 noundef %6347, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6350, ptr noundef %6353, ptr noundef %6356, i32 noundef %6358) #10
  br label %6377

6360:                                             ; preds = %6338, %6331
  %6361 = load i32, ptr %158, align 4, !tbaa !5
  %6362 = call ptr @__errno_location() #11
  store i32 %6361, ptr %6362, align 4, !tbaa !5
  %6363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6364 = load i32, ptr @test_count, align 4, !tbaa !5
  %6365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6366 = load i32, ptr %6365, align 4, !tbaa !5
  %6367 = call ptr @s2n_strerror(i32 noundef %6366, ptr noundef @.str.4)
  %6368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6369 = load i32, ptr %6368, align 4, !tbaa !5
  %6370 = call ptr @s2n_strerror_debug(i32 noundef %6369, ptr noundef @.str.4)
  %6371 = call ptr @__errno_location() #11
  %6372 = load i32, ptr %6371, align 4, !tbaa !5
  %6373 = call ptr @strerror(i32 noundef %6372) #10
  %6374 = call ptr @__errno_location() #11
  %6375 = load i32, ptr %6374, align 4, !tbaa !5
  %6376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6363, ptr noundef @.str.5, i32 noundef %6364, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6367, ptr noundef %6370, ptr noundef %6373, i32 noundef %6375) #10
  br label %6377

6377:                                             ; preds = %6360, %6343
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #10
  br label %6378

6378:                                             ; preds = %6377
  br label %6379

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

6380:                                             ; No predecessors!
  br label %6381

6381:                                             ; preds = %6380
  br label %6382

6382:                                             ; preds = %6381, %6321
  br label %6383

6383:                                             ; preds = %6382
  br label %6384

6384:                                             ; preds = %6383
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #10
  %6385 = call i32 @s2n_io_pair_close(ptr noundef %149)
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #10
  %6386 = call i32 @s2n_connection_ptr_free(ptr noundef %146)
  %6387 = getelementptr inbounds %struct.s2n_result, ptr %159, i32 0, i32 0
  store i32 %6386, ptr %6387, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #10
  %6388 = call i32 @s2n_connection_ptr_free(ptr noundef %143)
  %6389 = getelementptr inbounds %struct.s2n_result, ptr %160, i32 0, i32 0
  store i32 %6388, ptr %6389, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %141) #10
  %6390 = call i32 @s2n_config_ptr_free(ptr noundef %138)
  %6391 = getelementptr inbounds %struct.s2n_result, ptr %161, i32 0, i32 0
  store i32 %6390, ptr %6391, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #10
  br label %6392

6392:                                             ; preds = %6384
  %6393 = load i8, ptr %137, align 1, !tbaa !15
  %6394 = add i8 %6393, 1
  store i8 %6394, ptr %137, align 1, !tbaa !15
  br label %5495, !llvm.loop !56

6395:                                             ; preds = %5499
  %6396 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %6396, label %6397, label %7607

6397:                                             ; preds = %6395
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #10
  %6398 = call ptr @s2n_config_new()
  store ptr %6398, ptr %162, align 8, !tbaa !9
  br label %6399

6399:                                             ; preds = %6397
  %6400 = load i32, ptr @test_count, align 4, !tbaa !5
  %6401 = add nsw i32 %6400, 1
  store i32 %6401, ptr @test_count, align 4, !tbaa !5
  %6402 = load ptr, ptr %162, align 8, !tbaa !9
  %6403 = load ptr, ptr %9, align 8, !tbaa !9
  %6404 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6402, ptr noundef %6403)
  %6405 = icmp eq i32 %6404, -1
  br i1 %6405, label %6406, label %6459

6406:                                             ; preds = %6399
  br label %6407

6407:                                             ; preds = %6406
  br label %6408

6408:                                             ; preds = %6407
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %6409 = call ptr @__errno_location() #11
  %6410 = load i32, ptr %6409, align 4, !tbaa !5
  store i32 %6410, ptr %163, align 4, !tbaa !5
  %6411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6412 = call i32 @s2n_print_stacktrace(ptr noundef %6411)
  %6413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6414 = trunc i8 %6413 to i1
  br i1 %6414, label %6415, label %6437

6415:                                             ; preds = %6408
  %6416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6417 = call i32 @fileno(ptr noundef %6416) #10
  %6418 = call i32 @isatty(i32 noundef %6417) #10
  %6419 = icmp ne i32 %6418, 0
  br i1 %6419, label %6420, label %6437

6420:                                             ; preds = %6415
  %6421 = load i32, ptr %163, align 4, !tbaa !5
  %6422 = call ptr @__errno_location() #11
  store i32 %6421, ptr %6422, align 4, !tbaa !5
  %6423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6424 = load i32, ptr @test_count, align 4, !tbaa !5
  %6425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6426 = load i32, ptr %6425, align 4, !tbaa !5
  %6427 = call ptr @s2n_strerror(i32 noundef %6426, ptr noundef @.str.4)
  %6428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6429 = load i32, ptr %6428, align 4, !tbaa !5
  %6430 = call ptr @s2n_strerror_debug(i32 noundef %6429, ptr noundef @.str.4)
  %6431 = call ptr @__errno_location() #11
  %6432 = load i32, ptr %6431, align 4, !tbaa !5
  %6433 = call ptr @strerror(i32 noundef %6432) #10
  %6434 = call ptr @__errno_location() #11
  %6435 = load i32, ptr %6434, align 4, !tbaa !5
  %6436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6423, ptr noundef @.str.2, i32 noundef %6424, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 349, ptr noundef %6427, ptr noundef %6430, ptr noundef %6433, i32 noundef %6435) #10
  br label %6454

6437:                                             ; preds = %6415, %6408
  %6438 = load i32, ptr %163, align 4, !tbaa !5
  %6439 = call ptr @__errno_location() #11
  store i32 %6438, ptr %6439, align 4, !tbaa !5
  %6440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6441 = load i32, ptr @test_count, align 4, !tbaa !5
  %6442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6443 = load i32, ptr %6442, align 4, !tbaa !5
  %6444 = call ptr @s2n_strerror(i32 noundef %6443, ptr noundef @.str.4)
  %6445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6446 = load i32, ptr %6445, align 4, !tbaa !5
  %6447 = call ptr @s2n_strerror_debug(i32 noundef %6446, ptr noundef @.str.4)
  %6448 = call ptr @__errno_location() #11
  %6449 = load i32, ptr %6448, align 4, !tbaa !5
  %6450 = call ptr @strerror(i32 noundef %6449) #10
  %6451 = call ptr @__errno_location() #11
  %6452 = load i32, ptr %6451, align 4, !tbaa !5
  %6453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6440, ptr noundef @.str.5, i32 noundef %6441, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 349, ptr noundef %6444, ptr noundef %6447, ptr noundef %6450, i32 noundef %6452) #10
  br label %6454

6454:                                             ; preds = %6437, %6420
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %6455

6455:                                             ; preds = %6454
  br label %6456

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

6457:                                             ; No predecessors!
  br label %6458

6458:                                             ; preds = %6457
  br label %6459

6459:                                             ; preds = %6458, %6399
  br label %6460

6460:                                             ; preds = %6459
  br label %6461

6461:                                             ; preds = %6460
  br label %6462

6462:                                             ; preds = %6461
  %6463 = load i32, ptr @test_count, align 4, !tbaa !5
  %6464 = add nsw i32 %6463, 1
  store i32 %6464, ptr @test_count, align 4, !tbaa !5
  %6465 = load ptr, ptr %162, align 8, !tbaa !9
  %6466 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6465, ptr noundef @.str.20)
  %6467 = icmp eq i32 %6466, -1
  br i1 %6467, label %6468, label %6521

6468:                                             ; preds = %6462
  br label %6469

6469:                                             ; preds = %6468
  br label %6470

6470:                                             ; preds = %6469
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #10
  %6471 = call ptr @__errno_location() #11
  %6472 = load i32, ptr %6471, align 4, !tbaa !5
  store i32 %6472, ptr %164, align 4, !tbaa !5
  %6473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6474 = call i32 @s2n_print_stacktrace(ptr noundef %6473)
  %6475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6476 = trunc i8 %6475 to i1
  br i1 %6476, label %6477, label %6499

6477:                                             ; preds = %6470
  %6478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6479 = call i32 @fileno(ptr noundef %6478) #10
  %6480 = call i32 @isatty(i32 noundef %6479) #10
  %6481 = icmp ne i32 %6480, 0
  br i1 %6481, label %6482, label %6499

6482:                                             ; preds = %6477
  %6483 = load i32, ptr %164, align 4, !tbaa !5
  %6484 = call ptr @__errno_location() #11
  store i32 %6483, ptr %6484, align 4, !tbaa !5
  %6485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6486 = load i32, ptr @test_count, align 4, !tbaa !5
  %6487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6488 = load i32, ptr %6487, align 4, !tbaa !5
  %6489 = call ptr @s2n_strerror(i32 noundef %6488, ptr noundef @.str.4)
  %6490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6491 = load i32, ptr %6490, align 4, !tbaa !5
  %6492 = call ptr @s2n_strerror_debug(i32 noundef %6491, ptr noundef @.str.4)
  %6493 = call ptr @__errno_location() #11
  %6494 = load i32, ptr %6493, align 4, !tbaa !5
  %6495 = call ptr @strerror(i32 noundef %6494) #10
  %6496 = call ptr @__errno_location() #11
  %6497 = load i32, ptr %6496, align 4, !tbaa !5
  %6498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6485, ptr noundef @.str.2, i32 noundef %6486, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 350, ptr noundef %6489, ptr noundef %6492, ptr noundef %6495, i32 noundef %6497) #10
  br label %6516

6499:                                             ; preds = %6477, %6470
  %6500 = load i32, ptr %164, align 4, !tbaa !5
  %6501 = call ptr @__errno_location() #11
  store i32 %6500, ptr %6501, align 4, !tbaa !5
  %6502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6503 = load i32, ptr @test_count, align 4, !tbaa !5
  %6504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6505 = load i32, ptr %6504, align 4, !tbaa !5
  %6506 = call ptr @s2n_strerror(i32 noundef %6505, ptr noundef @.str.4)
  %6507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6508 = load i32, ptr %6507, align 4, !tbaa !5
  %6509 = call ptr @s2n_strerror_debug(i32 noundef %6508, ptr noundef @.str.4)
  %6510 = call ptr @__errno_location() #11
  %6511 = load i32, ptr %6510, align 4, !tbaa !5
  %6512 = call ptr @strerror(i32 noundef %6511) #10
  %6513 = call ptr @__errno_location() #11
  %6514 = load i32, ptr %6513, align 4, !tbaa !5
  %6515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6502, ptr noundef @.str.5, i32 noundef %6503, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 350, ptr noundef %6506, ptr noundef %6509, ptr noundef %6512, i32 noundef %6514) #10
  br label %6516

6516:                                             ; preds = %6499, %6482
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #10
  br label %6517

6517:                                             ; preds = %6516
  br label %6518

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

6519:                                             ; No predecessors!
  br label %6520

6520:                                             ; preds = %6519
  br label %6521

6521:                                             ; preds = %6520, %6462
  br label %6522

6522:                                             ; preds = %6521
  br label %6523

6523:                                             ; preds = %6522
  call void @llvm.lifetime.start.p0(i64 12, ptr %165) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %165, ptr align 4 @__const.main.context, i64 12, i1 false)
  br label %6524

6524:                                             ; preds = %6523
  %6525 = load i32, ptr @test_count, align 4, !tbaa !5
  %6526 = add nsw i32 %6525, 1
  store i32 %6526, ptr @test_count, align 4, !tbaa !5
  %6527 = load ptr, ptr %162, align 8, !tbaa !9
  %6528 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %6527, ptr noundef @s2n_overwrite_client_hello_cb, ptr noundef %165)
  %6529 = icmp eq i32 %6528, -1
  br i1 %6529, label %6530, label %6583

6530:                                             ; preds = %6524
  br label %6531

6531:                                             ; preds = %6530
  br label %6532

6532:                                             ; preds = %6531
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #10
  %6533 = call ptr @__errno_location() #11
  %6534 = load i32, ptr %6533, align 4, !tbaa !5
  store i32 %6534, ptr %166, align 4, !tbaa !5
  %6535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6536 = call i32 @s2n_print_stacktrace(ptr noundef %6535)
  %6537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6538 = trunc i8 %6537 to i1
  br i1 %6538, label %6539, label %6561

6539:                                             ; preds = %6532
  %6540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6541 = call i32 @fileno(ptr noundef %6540) #10
  %6542 = call i32 @isatty(i32 noundef %6541) #10
  %6543 = icmp ne i32 %6542, 0
  br i1 %6543, label %6544, label %6561

6544:                                             ; preds = %6539
  %6545 = load i32, ptr %166, align 4, !tbaa !5
  %6546 = call ptr @__errno_location() #11
  store i32 %6545, ptr %6546, align 4, !tbaa !5
  %6547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6548 = load i32, ptr @test_count, align 4, !tbaa !5
  %6549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6550 = load i32, ptr %6549, align 4, !tbaa !5
  %6551 = call ptr @s2n_strerror(i32 noundef %6550, ptr noundef @.str.4)
  %6552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6553 = load i32, ptr %6552, align 4, !tbaa !5
  %6554 = call ptr @s2n_strerror_debug(i32 noundef %6553, ptr noundef @.str.4)
  %6555 = call ptr @__errno_location() #11
  %6556 = load i32, ptr %6555, align 4, !tbaa !5
  %6557 = call ptr @strerror(i32 noundef %6556) #10
  %6558 = call ptr @__errno_location() #11
  %6559 = load i32, ptr %6558, align 4, !tbaa !5
  %6560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6547, ptr noundef @.str.2, i32 noundef %6548, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6551, ptr noundef %6554, ptr noundef %6557, i32 noundef %6559) #10
  br label %6578

6561:                                             ; preds = %6539, %6532
  %6562 = load i32, ptr %166, align 4, !tbaa !5
  %6563 = call ptr @__errno_location() #11
  store i32 %6562, ptr %6563, align 4, !tbaa !5
  %6564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6565 = load i32, ptr @test_count, align 4, !tbaa !5
  %6566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6567 = load i32, ptr %6566, align 4, !tbaa !5
  %6568 = call ptr @s2n_strerror(i32 noundef %6567, ptr noundef @.str.4)
  %6569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6570 = load i32, ptr %6569, align 4, !tbaa !5
  %6571 = call ptr @s2n_strerror_debug(i32 noundef %6570, ptr noundef @.str.4)
  %6572 = call ptr @__errno_location() #11
  %6573 = load i32, ptr %6572, align 4, !tbaa !5
  %6574 = call ptr @strerror(i32 noundef %6573) #10
  %6575 = call ptr @__errno_location() #11
  %6576 = load i32, ptr %6575, align 4, !tbaa !5
  %6577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6564, ptr noundef @.str.5, i32 noundef %6565, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6568, ptr noundef %6571, ptr noundef %6574, i32 noundef %6576) #10
  br label %6578

6578:                                             ; preds = %6561, %6544
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #10
  br label %6579

6579:                                             ; preds = %6578
  br label %6580

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

6581:                                             ; No predecessors!
  br label %6582

6582:                                             ; preds = %6581
  br label %6583

6583:                                             ; preds = %6582, %6524
  br label %6584

6584:                                             ; preds = %6583
  br label %6585

6585:                                             ; preds = %6584
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #10
  %6586 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6586, ptr %167, align 8, !tbaa !9
  br label %6587

6587:                                             ; preds = %6585
  %6588 = load i32, ptr @test_count, align 4, !tbaa !5
  %6589 = add nsw i32 %6588, 1
  store i32 %6589, ptr @test_count, align 4, !tbaa !5
  %6590 = load ptr, ptr %167, align 8, !tbaa !9
  %6591 = icmp eq ptr %6590, null
  br i1 %6591, label %6592, label %6645

6592:                                             ; preds = %6587
  br label %6593

6593:                                             ; preds = %6592
  br label %6594

6594:                                             ; preds = %6593
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #10
  %6595 = call ptr @__errno_location() #11
  %6596 = load i32, ptr %6595, align 4, !tbaa !5
  store i32 %6596, ptr %168, align 4, !tbaa !5
  %6597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6598 = call i32 @s2n_print_stacktrace(ptr noundef %6597)
  %6599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6600 = trunc i8 %6599 to i1
  br i1 %6600, label %6601, label %6623

6601:                                             ; preds = %6594
  %6602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6603 = call i32 @fileno(ptr noundef %6602) #10
  %6604 = call i32 @isatty(i32 noundef %6603) #10
  %6605 = icmp ne i32 %6604, 0
  br i1 %6605, label %6606, label %6623

6606:                                             ; preds = %6601
  %6607 = load i32, ptr %168, align 4, !tbaa !5
  %6608 = call ptr @__errno_location() #11
  store i32 %6607, ptr %6608, align 4, !tbaa !5
  %6609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6610 = load i32, ptr @test_count, align 4, !tbaa !5
  %6611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6612 = load i32, ptr %6611, align 4, !tbaa !5
  %6613 = call ptr @s2n_strerror(i32 noundef %6612, ptr noundef @.str.4)
  %6614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6615 = load i32, ptr %6614, align 4, !tbaa !5
  %6616 = call ptr @s2n_strerror_debug(i32 noundef %6615, ptr noundef @.str.4)
  %6617 = call ptr @__errno_location() #11
  %6618 = load i32, ptr %6617, align 4, !tbaa !5
  %6619 = call ptr @strerror(i32 noundef %6618) #10
  %6620 = call ptr @__errno_location() #11
  %6621 = load i32, ptr %6620, align 4, !tbaa !5
  %6622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6609, ptr noundef @.str.2, i32 noundef %6610, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 361, ptr noundef %6613, ptr noundef %6616, ptr noundef %6619, i32 noundef %6621) #10
  br label %6640

6623:                                             ; preds = %6601, %6594
  %6624 = load i32, ptr %168, align 4, !tbaa !5
  %6625 = call ptr @__errno_location() #11
  store i32 %6624, ptr %6625, align 4, !tbaa !5
  %6626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6627 = load i32, ptr @test_count, align 4, !tbaa !5
  %6628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6629 = load i32, ptr %6628, align 4, !tbaa !5
  %6630 = call ptr @s2n_strerror(i32 noundef %6629, ptr noundef @.str.4)
  %6631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6632 = load i32, ptr %6631, align 4, !tbaa !5
  %6633 = call ptr @s2n_strerror_debug(i32 noundef %6632, ptr noundef @.str.4)
  %6634 = call ptr @__errno_location() #11
  %6635 = load i32, ptr %6634, align 4, !tbaa !5
  %6636 = call ptr @strerror(i32 noundef %6635) #10
  %6637 = call ptr @__errno_location() #11
  %6638 = load i32, ptr %6637, align 4, !tbaa !5
  %6639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6626, ptr noundef @.str.5, i32 noundef %6627, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 361, ptr noundef %6630, ptr noundef %6633, ptr noundef %6636, i32 noundef %6638) #10
  br label %6640

6640:                                             ; preds = %6623, %6606
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #10
  br label %6641

6641:                                             ; preds = %6640
  br label %6642

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

6643:                                             ; No predecessors!
  br label %6644

6644:                                             ; preds = %6643
  br label %6645

6645:                                             ; preds = %6644, %6587
  br label %6646

6646:                                             ; preds = %6645
  br label %6647

6647:                                             ; preds = %6646
  br label %6648

6648:                                             ; preds = %6647
  %6649 = load i32, ptr @test_count, align 4, !tbaa !5
  %6650 = add nsw i32 %6649, 1
  store i32 %6650, ptr @test_count, align 4, !tbaa !5
  %6651 = load ptr, ptr %167, align 8, !tbaa !9
  %6652 = load ptr, ptr %162, align 8, !tbaa !9
  %6653 = call i32 @s2n_connection_set_config(ptr noundef %6651, ptr noundef %6652)
  %6654 = icmp eq i32 %6653, -1
  br i1 %6654, label %6655, label %6708

6655:                                             ; preds = %6648
  br label %6656

6656:                                             ; preds = %6655
  br label %6657

6657:                                             ; preds = %6656
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  %6658 = call ptr @__errno_location() #11
  %6659 = load i32, ptr %6658, align 4, !tbaa !5
  store i32 %6659, ptr %169, align 4, !tbaa !5
  %6660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6661 = call i32 @s2n_print_stacktrace(ptr noundef %6660)
  %6662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6663 = trunc i8 %6662 to i1
  br i1 %6663, label %6664, label %6686

6664:                                             ; preds = %6657
  %6665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6666 = call i32 @fileno(ptr noundef %6665) #10
  %6667 = call i32 @isatty(i32 noundef %6666) #10
  %6668 = icmp ne i32 %6667, 0
  br i1 %6668, label %6669, label %6686

6669:                                             ; preds = %6664
  %6670 = load i32, ptr %169, align 4, !tbaa !5
  %6671 = call ptr @__errno_location() #11
  store i32 %6670, ptr %6671, align 4, !tbaa !5
  %6672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6673 = load i32, ptr @test_count, align 4, !tbaa !5
  %6674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6675 = load i32, ptr %6674, align 4, !tbaa !5
  %6676 = call ptr @s2n_strerror(i32 noundef %6675, ptr noundef @.str.4)
  %6677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6678 = load i32, ptr %6677, align 4, !tbaa !5
  %6679 = call ptr @s2n_strerror_debug(i32 noundef %6678, ptr noundef @.str.4)
  %6680 = call ptr @__errno_location() #11
  %6681 = load i32, ptr %6680, align 4, !tbaa !5
  %6682 = call ptr @strerror(i32 noundef %6681) #10
  %6683 = call ptr @__errno_location() #11
  %6684 = load i32, ptr %6683, align 4, !tbaa !5
  %6685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6672, ptr noundef @.str.2, i32 noundef %6673, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 362, ptr noundef %6676, ptr noundef %6679, ptr noundef %6682, i32 noundef %6684) #10
  br label %6703

6686:                                             ; preds = %6664, %6657
  %6687 = load i32, ptr %169, align 4, !tbaa !5
  %6688 = call ptr @__errno_location() #11
  store i32 %6687, ptr %6688, align 4, !tbaa !5
  %6689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6690 = load i32, ptr @test_count, align 4, !tbaa !5
  %6691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6692 = load i32, ptr %6691, align 4, !tbaa !5
  %6693 = call ptr @s2n_strerror(i32 noundef %6692, ptr noundef @.str.4)
  %6694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6695 = load i32, ptr %6694, align 4, !tbaa !5
  %6696 = call ptr @s2n_strerror_debug(i32 noundef %6695, ptr noundef @.str.4)
  %6697 = call ptr @__errno_location() #11
  %6698 = load i32, ptr %6697, align 4, !tbaa !5
  %6699 = call ptr @strerror(i32 noundef %6698) #10
  %6700 = call ptr @__errno_location() #11
  %6701 = load i32, ptr %6700, align 4, !tbaa !5
  %6702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6689, ptr noundef @.str.5, i32 noundef %6690, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 362, ptr noundef %6693, ptr noundef %6696, ptr noundef %6699, i32 noundef %6701) #10
  br label %6703

6703:                                             ; preds = %6686, %6669
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  br label %6704

6704:                                             ; preds = %6703
  br label %6705

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

6706:                                             ; No predecessors!
  br label %6707

6707:                                             ; preds = %6706
  br label %6708

6708:                                             ; preds = %6707, %6648
  br label %6709

6709:                                             ; preds = %6708
  br label %6710

6710:                                             ; preds = %6709
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #10
  %6711 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6711, ptr %170, align 8, !tbaa !9
  br label %6712

6712:                                             ; preds = %6710
  %6713 = load i32, ptr @test_count, align 4, !tbaa !5
  %6714 = add nsw i32 %6713, 1
  store i32 %6714, ptr @test_count, align 4, !tbaa !5
  %6715 = load ptr, ptr %170, align 8, !tbaa !9
  %6716 = icmp eq ptr %6715, null
  br i1 %6716, label %6717, label %6770

6717:                                             ; preds = %6712
  br label %6718

6718:                                             ; preds = %6717
  br label %6719

6719:                                             ; preds = %6718
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #10
  %6720 = call ptr @__errno_location() #11
  %6721 = load i32, ptr %6720, align 4, !tbaa !5
  store i32 %6721, ptr %171, align 4, !tbaa !5
  %6722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6723 = call i32 @s2n_print_stacktrace(ptr noundef %6722)
  %6724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6725 = trunc i8 %6724 to i1
  br i1 %6725, label %6726, label %6748

6726:                                             ; preds = %6719
  %6727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6728 = call i32 @fileno(ptr noundef %6727) #10
  %6729 = call i32 @isatty(i32 noundef %6728) #10
  %6730 = icmp ne i32 %6729, 0
  br i1 %6730, label %6731, label %6748

6731:                                             ; preds = %6726
  %6732 = load i32, ptr %171, align 4, !tbaa !5
  %6733 = call ptr @__errno_location() #11
  store i32 %6732, ptr %6733, align 4, !tbaa !5
  %6734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6735 = load i32, ptr @test_count, align 4, !tbaa !5
  %6736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6737 = load i32, ptr %6736, align 4, !tbaa !5
  %6738 = call ptr @s2n_strerror(i32 noundef %6737, ptr noundef @.str.4)
  %6739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6740 = load i32, ptr %6739, align 4, !tbaa !5
  %6741 = call ptr @s2n_strerror_debug(i32 noundef %6740, ptr noundef @.str.4)
  %6742 = call ptr @__errno_location() #11
  %6743 = load i32, ptr %6742, align 4, !tbaa !5
  %6744 = call ptr @strerror(i32 noundef %6743) #10
  %6745 = call ptr @__errno_location() #11
  %6746 = load i32, ptr %6745, align 4, !tbaa !5
  %6747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6734, ptr noundef @.str.2, i32 noundef %6735, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 366, ptr noundef %6738, ptr noundef %6741, ptr noundef %6744, i32 noundef %6746) #10
  br label %6765

6748:                                             ; preds = %6726, %6719
  %6749 = load i32, ptr %171, align 4, !tbaa !5
  %6750 = call ptr @__errno_location() #11
  store i32 %6749, ptr %6750, align 4, !tbaa !5
  %6751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6752 = load i32, ptr @test_count, align 4, !tbaa !5
  %6753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6754 = load i32, ptr %6753, align 4, !tbaa !5
  %6755 = call ptr @s2n_strerror(i32 noundef %6754, ptr noundef @.str.4)
  %6756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6757 = load i32, ptr %6756, align 4, !tbaa !5
  %6758 = call ptr @s2n_strerror_debug(i32 noundef %6757, ptr noundef @.str.4)
  %6759 = call ptr @__errno_location() #11
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  %6761 = call ptr @strerror(i32 noundef %6760) #10
  %6762 = call ptr @__errno_location() #11
  %6763 = load i32, ptr %6762, align 4, !tbaa !5
  %6764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6751, ptr noundef @.str.5, i32 noundef %6752, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 366, ptr noundef %6755, ptr noundef %6758, ptr noundef %6761, i32 noundef %6763) #10
  br label %6765

6765:                                             ; preds = %6748, %6731
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #10
  br label %6766

6766:                                             ; preds = %6765
  br label %6767

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

6768:                                             ; No predecessors!
  br label %6769

6769:                                             ; preds = %6768
  br label %6770

6770:                                             ; preds = %6769, %6712
  br label %6771

6771:                                             ; preds = %6770
  br label %6772

6772:                                             ; preds = %6771
  br label %6773

6773:                                             ; preds = %6772
  %6774 = load i32, ptr @test_count, align 4, !tbaa !5
  %6775 = add nsw i32 %6774, 1
  store i32 %6775, ptr @test_count, align 4, !tbaa !5
  %6776 = load ptr, ptr %170, align 8, !tbaa !9
  %6777 = load ptr, ptr %162, align 8, !tbaa !9
  %6778 = call i32 @s2n_connection_set_config(ptr noundef %6776, ptr noundef %6777)
  %6779 = icmp eq i32 %6778, -1
  br i1 %6779, label %6780, label %6833

6780:                                             ; preds = %6773
  br label %6781

6781:                                             ; preds = %6780
  br label %6782

6782:                                             ; preds = %6781
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #10
  %6783 = call ptr @__errno_location() #11
  %6784 = load i32, ptr %6783, align 4, !tbaa !5
  store i32 %6784, ptr %172, align 4, !tbaa !5
  %6785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6786 = call i32 @s2n_print_stacktrace(ptr noundef %6785)
  %6787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6788 = trunc i8 %6787 to i1
  br i1 %6788, label %6789, label %6811

6789:                                             ; preds = %6782
  %6790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6791 = call i32 @fileno(ptr noundef %6790) #10
  %6792 = call i32 @isatty(i32 noundef %6791) #10
  %6793 = icmp ne i32 %6792, 0
  br i1 %6793, label %6794, label %6811

6794:                                             ; preds = %6789
  %6795 = load i32, ptr %172, align 4, !tbaa !5
  %6796 = call ptr @__errno_location() #11
  store i32 %6795, ptr %6796, align 4, !tbaa !5
  %6797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6798 = load i32, ptr @test_count, align 4, !tbaa !5
  %6799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6800 = load i32, ptr %6799, align 4, !tbaa !5
  %6801 = call ptr @s2n_strerror(i32 noundef %6800, ptr noundef @.str.4)
  %6802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6803 = load i32, ptr %6802, align 4, !tbaa !5
  %6804 = call ptr @s2n_strerror_debug(i32 noundef %6803, ptr noundef @.str.4)
  %6805 = call ptr @__errno_location() #11
  %6806 = load i32, ptr %6805, align 4, !tbaa !5
  %6807 = call ptr @strerror(i32 noundef %6806) #10
  %6808 = call ptr @__errno_location() #11
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  %6810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6797, ptr noundef @.str.2, i32 noundef %6798, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 367, ptr noundef %6801, ptr noundef %6804, ptr noundef %6807, i32 noundef %6809) #10
  br label %6828

6811:                                             ; preds = %6789, %6782
  %6812 = load i32, ptr %172, align 4, !tbaa !5
  %6813 = call ptr @__errno_location() #11
  store i32 %6812, ptr %6813, align 4, !tbaa !5
  %6814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6815 = load i32, ptr @test_count, align 4, !tbaa !5
  %6816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6817 = load i32, ptr %6816, align 4, !tbaa !5
  %6818 = call ptr @s2n_strerror(i32 noundef %6817, ptr noundef @.str.4)
  %6819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6820 = load i32, ptr %6819, align 4, !tbaa !5
  %6821 = call ptr @s2n_strerror_debug(i32 noundef %6820, ptr noundef @.str.4)
  %6822 = call ptr @__errno_location() #11
  %6823 = load i32, ptr %6822, align 4, !tbaa !5
  %6824 = call ptr @strerror(i32 noundef %6823) #10
  %6825 = call ptr @__errno_location() #11
  %6826 = load i32, ptr %6825, align 4, !tbaa !5
  %6827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6814, ptr noundef @.str.5, i32 noundef %6815, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 367, ptr noundef %6818, ptr noundef %6821, ptr noundef %6824, i32 noundef %6826) #10
  br label %6828

6828:                                             ; preds = %6811, %6794
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #10
  br label %6829

6829:                                             ; preds = %6828
  br label %6830

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

6831:                                             ; No predecessors!
  br label %6832

6832:                                             ; preds = %6831
  br label %6833

6833:                                             ; preds = %6832, %6773
  br label %6834

6834:                                             ; preds = %6833
  br label %6835

6835:                                             ; preds = %6834
  br label %6836

6836:                                             ; preds = %6835
  %6837 = load i32, ptr @test_count, align 4, !tbaa !5
  %6838 = add nsw i32 %6837, 1
  store i32 %6838, ptr @test_count, align 4, !tbaa !5
  %6839 = load ptr, ptr %170, align 8, !tbaa !9
  %6840 = call i32 @s2n_connection_set_blinding(ptr noundef %6839, i32 noundef 1)
  %6841 = icmp eq i32 %6840, -1
  br i1 %6841, label %6842, label %6895

6842:                                             ; preds = %6836
  br label %6843

6843:                                             ; preds = %6842
  br label %6844

6844:                                             ; preds = %6843
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #10
  %6845 = call ptr @__errno_location() #11
  %6846 = load i32, ptr %6845, align 4, !tbaa !5
  store i32 %6846, ptr %173, align 4, !tbaa !5
  %6847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6848 = call i32 @s2n_print_stacktrace(ptr noundef %6847)
  %6849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6850 = trunc i8 %6849 to i1
  br i1 %6850, label %6851, label %6873

6851:                                             ; preds = %6844
  %6852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6853 = call i32 @fileno(ptr noundef %6852) #10
  %6854 = call i32 @isatty(i32 noundef %6853) #10
  %6855 = icmp ne i32 %6854, 0
  br i1 %6855, label %6856, label %6873

6856:                                             ; preds = %6851
  %6857 = load i32, ptr %173, align 4, !tbaa !5
  %6858 = call ptr @__errno_location() #11
  store i32 %6857, ptr %6858, align 4, !tbaa !5
  %6859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6860 = load i32, ptr @test_count, align 4, !tbaa !5
  %6861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6862 = load i32, ptr %6861, align 4, !tbaa !5
  %6863 = call ptr @s2n_strerror(i32 noundef %6862, ptr noundef @.str.4)
  %6864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6865 = load i32, ptr %6864, align 4, !tbaa !5
  %6866 = call ptr @s2n_strerror_debug(i32 noundef %6865, ptr noundef @.str.4)
  %6867 = call ptr @__errno_location() #11
  %6868 = load i32, ptr %6867, align 4, !tbaa !5
  %6869 = call ptr @strerror(i32 noundef %6868) #10
  %6870 = call ptr @__errno_location() #11
  %6871 = load i32, ptr %6870, align 4, !tbaa !5
  %6872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6859, ptr noundef @.str.2, i32 noundef %6860, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 368, ptr noundef %6863, ptr noundef %6866, ptr noundef %6869, i32 noundef %6871) #10
  br label %6890

6873:                                             ; preds = %6851, %6844
  %6874 = load i32, ptr %173, align 4, !tbaa !5
  %6875 = call ptr @__errno_location() #11
  store i32 %6874, ptr %6875, align 4, !tbaa !5
  %6876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6877 = load i32, ptr @test_count, align 4, !tbaa !5
  %6878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call ptr @s2n_strerror(i32 noundef %6879, ptr noundef @.str.4)
  %6881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  %6883 = call ptr @s2n_strerror_debug(i32 noundef %6882, ptr noundef @.str.4)
  %6884 = call ptr @__errno_location() #11
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call ptr @strerror(i32 noundef %6885) #10
  %6887 = call ptr @__errno_location() #11
  %6888 = load i32, ptr %6887, align 4, !tbaa !5
  %6889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6876, ptr noundef @.str.5, i32 noundef %6877, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 368, ptr noundef %6880, ptr noundef %6883, ptr noundef %6886, i32 noundef %6888) #10
  br label %6890

6890:                                             ; preds = %6873, %6856
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #10
  br label %6891

6891:                                             ; preds = %6890
  br label %6892

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

6893:                                             ; No predecessors!
  br label %6894

6894:                                             ; preds = %6893
  br label %6895

6895:                                             ; preds = %6894, %6836
  br label %6896

6896:                                             ; preds = %6895
  br label %6897

6897:                                             ; preds = %6896
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #10
  call void @llvm.memset.p0.i64(ptr align 4 %174, i8 0, i64 8, i1 false)
  br label %6898

6898:                                             ; preds = %6897
  %6899 = load i32, ptr @test_count, align 4, !tbaa !5
  %6900 = add nsw i32 %6899, 1
  store i32 %6900, ptr @test_count, align 4, !tbaa !5
  %6901 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %174)
  %6902 = icmp eq i32 %6901, -1
  br i1 %6902, label %6903, label %6956

6903:                                             ; preds = %6898
  br label %6904

6904:                                             ; preds = %6903
  br label %6905

6905:                                             ; preds = %6904
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #10
  %6906 = call ptr @__errno_location() #11
  %6907 = load i32, ptr %6906, align 4, !tbaa !5
  store i32 %6907, ptr %175, align 4, !tbaa !5
  %6908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6909 = call i32 @s2n_print_stacktrace(ptr noundef %6908)
  %6910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6911 = trunc i8 %6910 to i1
  br i1 %6911, label %6912, label %6934

6912:                                             ; preds = %6905
  %6913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6914 = call i32 @fileno(ptr noundef %6913) #10
  %6915 = call i32 @isatty(i32 noundef %6914) #10
  %6916 = icmp ne i32 %6915, 0
  br i1 %6916, label %6917, label %6934

6917:                                             ; preds = %6912
  %6918 = load i32, ptr %175, align 4, !tbaa !5
  %6919 = call ptr @__errno_location() #11
  store i32 %6918, ptr %6919, align 4, !tbaa !5
  %6920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6921 = load i32, ptr @test_count, align 4, !tbaa !5
  %6922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6923 = load i32, ptr %6922, align 4, !tbaa !5
  %6924 = call ptr @s2n_strerror(i32 noundef %6923, ptr noundef @.str.4)
  %6925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6926 = load i32, ptr %6925, align 4, !tbaa !5
  %6927 = call ptr @s2n_strerror_debug(i32 noundef %6926, ptr noundef @.str.4)
  %6928 = call ptr @__errno_location() #11
  %6929 = load i32, ptr %6928, align 4, !tbaa !5
  %6930 = call ptr @strerror(i32 noundef %6929) #10
  %6931 = call ptr @__errno_location() #11
  %6932 = load i32, ptr %6931, align 4, !tbaa !5
  %6933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6920, ptr noundef @.str.2, i32 noundef %6921, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6924, ptr noundef %6927, ptr noundef %6930, i32 noundef %6932) #10
  br label %6951

6934:                                             ; preds = %6912, %6905
  %6935 = load i32, ptr %175, align 4, !tbaa !5
  %6936 = call ptr @__errno_location() #11
  store i32 %6935, ptr %6936, align 4, !tbaa !5
  %6937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6938 = load i32, ptr @test_count, align 4, !tbaa !5
  %6939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call ptr @s2n_strerror(i32 noundef %6940, ptr noundef @.str.4)
  %6942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6943 = load i32, ptr %6942, align 4, !tbaa !5
  %6944 = call ptr @s2n_strerror_debug(i32 noundef %6943, ptr noundef @.str.4)
  %6945 = call ptr @__errno_location() #11
  %6946 = load i32, ptr %6945, align 4, !tbaa !5
  %6947 = call ptr @strerror(i32 noundef %6946) #10
  %6948 = call ptr @__errno_location() #11
  %6949 = load i32, ptr %6948, align 4, !tbaa !5
  %6950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6937, ptr noundef @.str.5, i32 noundef %6938, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6941, ptr noundef %6944, ptr noundef %6947, i32 noundef %6949) #10
  br label %6951

6951:                                             ; preds = %6934, %6917
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #10
  br label %6952

6952:                                             ; preds = %6951
  br label %6953

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

6954:                                             ; No predecessors!
  br label %6955

6955:                                             ; preds = %6954
  br label %6956

6956:                                             ; preds = %6955, %6898
  br label %6957

6957:                                             ; preds = %6956
  br label %6958

6958:                                             ; preds = %6957
  br label %6959

6959:                                             ; preds = %6958
  %6960 = load i32, ptr @test_count, align 4, !tbaa !5
  %6961 = add nsw i32 %6960, 1
  store i32 %6961, ptr @test_count, align 4, !tbaa !5
  %6962 = load ptr, ptr %167, align 8, !tbaa !9
  %6963 = load ptr, ptr %170, align 8, !tbaa !9
  %6964 = call i32 @s2n_connections_set_io_pair(ptr noundef %6962, ptr noundef %6963, ptr noundef %174)
  %6965 = icmp eq i32 %6964, -1
  br i1 %6965, label %6966, label %7019

6966:                                             ; preds = %6959
  br label %6967

6967:                                             ; preds = %6966
  br label %6968

6968:                                             ; preds = %6967
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #10
  %6969 = call ptr @__errno_location() #11
  %6970 = load i32, ptr %6969, align 4, !tbaa !5
  store i32 %6970, ptr %176, align 4, !tbaa !5
  %6971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6972 = call i32 @s2n_print_stacktrace(ptr noundef %6971)
  %6973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6974 = trunc i8 %6973 to i1
  br i1 %6974, label %6975, label %6997

6975:                                             ; preds = %6968
  %6976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6977 = call i32 @fileno(ptr noundef %6976) #10
  %6978 = call i32 @isatty(i32 noundef %6977) #10
  %6979 = icmp ne i32 %6978, 0
  br i1 %6979, label %6980, label %6997

6980:                                             ; preds = %6975
  %6981 = load i32, ptr %176, align 4, !tbaa !5
  %6982 = call ptr @__errno_location() #11
  store i32 %6981, ptr %6982, align 4, !tbaa !5
  %6983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6984 = load i32, ptr @test_count, align 4, !tbaa !5
  %6985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6986 = load i32, ptr %6985, align 4, !tbaa !5
  %6987 = call ptr @s2n_strerror(i32 noundef %6986, ptr noundef @.str.4)
  %6988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6989 = load i32, ptr %6988, align 4, !tbaa !5
  %6990 = call ptr @s2n_strerror_debug(i32 noundef %6989, ptr noundef @.str.4)
  %6991 = call ptr @__errno_location() #11
  %6992 = load i32, ptr %6991, align 4, !tbaa !5
  %6993 = call ptr @strerror(i32 noundef %6992) #10
  %6994 = call ptr @__errno_location() #11
  %6995 = load i32, ptr %6994, align 4, !tbaa !5
  %6996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6983, ptr noundef @.str.2, i32 noundef %6984, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 372, ptr noundef %6987, ptr noundef %6990, ptr noundef %6993, i32 noundef %6995) #10
  br label %7014

6997:                                             ; preds = %6975, %6968
  %6998 = load i32, ptr %176, align 4, !tbaa !5
  %6999 = call ptr @__errno_location() #11
  store i32 %6998, ptr %6999, align 4, !tbaa !5
  %7000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7001 = load i32, ptr @test_count, align 4, !tbaa !5
  %7002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7003 = load i32, ptr %7002, align 4, !tbaa !5
  %7004 = call ptr @s2n_strerror(i32 noundef %7003, ptr noundef @.str.4)
  %7005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7006 = load i32, ptr %7005, align 4, !tbaa !5
  %7007 = call ptr @s2n_strerror_debug(i32 noundef %7006, ptr noundef @.str.4)
  %7008 = call ptr @__errno_location() #11
  %7009 = load i32, ptr %7008, align 4, !tbaa !5
  %7010 = call ptr @strerror(i32 noundef %7009) #10
  %7011 = call ptr @__errno_location() #11
  %7012 = load i32, ptr %7011, align 4, !tbaa !5
  %7013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7000, ptr noundef @.str.5, i32 noundef %7001, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 372, ptr noundef %7004, ptr noundef %7007, ptr noundef %7010, i32 noundef %7012) #10
  br label %7014

7014:                                             ; preds = %6997, %6980
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #10
  br label %7015

7015:                                             ; preds = %7014
  br label %7016

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

7017:                                             ; No predecessors!
  br label %7018

7018:                                             ; preds = %7017
  br label %7019

7019:                                             ; preds = %7018, %6959
  br label %7020

7020:                                             ; preds = %7019
  br label %7021

7021:                                             ; preds = %7020
  br label %7022

7022:                                             ; preds = %7021
  br label %7023

7023:                                             ; preds = %7022
  br label %7024

7024:                                             ; preds = %7023
  %7025 = load i32, ptr @test_count, align 4, !tbaa !5
  %7026 = add nsw i32 %7025, 1
  store i32 %7026, ptr @test_count, align 4, !tbaa !5
  %7027 = load ptr, ptr %170, align 8, !tbaa !9
  %7028 = load ptr, ptr %167, align 8, !tbaa !9
  %7029 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %7027, ptr noundef %7028, i32 noundef 1)
  %7030 = getelementptr inbounds %struct.s2n_result, ptr %177, i32 0, i32 0
  store i32 %7029, ptr %7030, align 4
  %7031 = getelementptr inbounds %struct.s2n_result, ptr %177, i32 0, i32 0
  %7032 = load i32, ptr %7031, align 4
  %7033 = call zeroext i1 @s2n_result_is_error(i32 %7032)
  br i1 %7033, label %7087, label %7034

7034:                                             ; preds = %7024
  br label %7035

7035:                                             ; preds = %7034
  br label %7036

7036:                                             ; preds = %7035
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %7037 = call ptr @__errno_location() #11
  %7038 = load i32, ptr %7037, align 4, !tbaa !5
  store i32 %7038, ptr %178, align 4, !tbaa !5
  %7039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7040 = call i32 @s2n_print_stacktrace(ptr noundef %7039)
  %7041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7042 = trunc i8 %7041 to i1
  br i1 %7042, label %7043, label %7065

7043:                                             ; preds = %7036
  %7044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7045 = call i32 @fileno(ptr noundef %7044) #10
  %7046 = call i32 @isatty(i32 noundef %7045) #10
  %7047 = icmp ne i32 %7046, 0
  br i1 %7047, label %7048, label %7065

7048:                                             ; preds = %7043
  %7049 = load i32, ptr %178, align 4, !tbaa !5
  %7050 = call ptr @__errno_location() #11
  store i32 %7049, ptr %7050, align 4, !tbaa !5
  %7051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7052 = load i32, ptr @test_count, align 4, !tbaa !5
  %7053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7054 = load i32, ptr %7053, align 4, !tbaa !5
  %7055 = call ptr @s2n_strerror(i32 noundef %7054, ptr noundef @.str.4)
  %7056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7057 = load i32, ptr %7056, align 4, !tbaa !5
  %7058 = call ptr @s2n_strerror_debug(i32 noundef %7057, ptr noundef @.str.4)
  %7059 = call ptr @__errno_location() #11
  %7060 = load i32, ptr %7059, align 4, !tbaa !5
  %7061 = call ptr @strerror(i32 noundef %7060) #10
  %7062 = call ptr @__errno_location() #11
  %7063 = load i32, ptr %7062, align 4, !tbaa !5
  %7064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7051, ptr noundef @.str.2, i32 noundef %7052, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 375, ptr noundef %7055, ptr noundef %7058, ptr noundef %7061, i32 noundef %7063) #10
  br label %7082

7065:                                             ; preds = %7043, %7036
  %7066 = load i32, ptr %178, align 4, !tbaa !5
  %7067 = call ptr @__errno_location() #11
  store i32 %7066, ptr %7067, align 4, !tbaa !5
  %7068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7069 = load i32, ptr @test_count, align 4, !tbaa !5
  %7070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7071 = load i32, ptr %7070, align 4, !tbaa !5
  %7072 = call ptr @s2n_strerror(i32 noundef %7071, ptr noundef @.str.4)
  %7073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7074 = load i32, ptr %7073, align 4, !tbaa !5
  %7075 = call ptr @s2n_strerror_debug(i32 noundef %7074, ptr noundef @.str.4)
  %7076 = call ptr @__errno_location() #11
  %7077 = load i32, ptr %7076, align 4, !tbaa !5
  %7078 = call ptr @strerror(i32 noundef %7077) #10
  %7079 = call ptr @__errno_location() #11
  %7080 = load i32, ptr %7079, align 4, !tbaa !5
  %7081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7068, ptr noundef @.str.5, i32 noundef %7069, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 375, ptr noundef %7072, ptr noundef %7075, ptr noundef %7078, i32 noundef %7080) #10
  br label %7082

7082:                                             ; preds = %7065, %7048
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %7083

7083:                                             ; preds = %7082
  br label %7084

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

7085:                                             ; No predecessors!
  br label %7086

7086:                                             ; preds = %7085
  br label %7087

7087:                                             ; preds = %7086, %7024
  br label %7088

7088:                                             ; preds = %7087
  br label %7089

7089:                                             ; preds = %7088
  br label %7090

7090:                                             ; preds = %7089
  %7091 = load i32, ptr @test_count, align 4, !tbaa !5
  %7092 = add nsw i32 %7091, 1
  store i32 %7092, ptr @test_count, align 4, !tbaa !5
  %7093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7094 = load i32, ptr %7093, align 4, !tbaa !5
  %7095 = icmp eq i32 %7094, 335544322
  br i1 %7095, label %7149, label %7096

7096:                                             ; preds = %7090
  br label %7097

7097:                                             ; preds = %7096
  br label %7098

7098:                                             ; preds = %7097
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #10
  %7099 = call ptr @__errno_location() #11
  %7100 = load i32, ptr %7099, align 4, !tbaa !5
  store i32 %7100, ptr %179, align 4, !tbaa !5
  %7101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7102 = call i32 @s2n_print_stacktrace(ptr noundef %7101)
  %7103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7104 = trunc i8 %7103 to i1
  br i1 %7104, label %7105, label %7127

7105:                                             ; preds = %7098
  %7106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7107 = call i32 @fileno(ptr noundef %7106) #10
  %7108 = call i32 @isatty(i32 noundef %7107) #10
  %7109 = icmp ne i32 %7108, 0
  br i1 %7109, label %7110, label %7127

7110:                                             ; preds = %7105
  %7111 = load i32, ptr %179, align 4, !tbaa !5
  %7112 = call ptr @__errno_location() #11
  store i32 %7111, ptr %7112, align 4, !tbaa !5
  %7113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7114 = load i32, ptr @test_count, align 4, !tbaa !5
  %7115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7116 = load i32, ptr %7115, align 4, !tbaa !5
  %7117 = call ptr @s2n_strerror(i32 noundef %7116, ptr noundef @.str.4)
  %7118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7119 = load i32, ptr %7118, align 4, !tbaa !5
  %7120 = call ptr @s2n_strerror_debug(i32 noundef %7119, ptr noundef @.str.4)
  %7121 = call ptr @__errno_location() #11
  %7122 = load i32, ptr %7121, align 4, !tbaa !5
  %7123 = call ptr @strerror(i32 noundef %7122) #10
  %7124 = call ptr @__errno_location() #11
  %7125 = load i32, ptr %7124, align 4, !tbaa !5
  %7126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7113, ptr noundef @.str.2, i32 noundef %7114, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 375, ptr noundef %7117, ptr noundef %7120, ptr noundef %7123, i32 noundef %7125) #10
  br label %7144

7127:                                             ; preds = %7105, %7098
  %7128 = load i32, ptr %179, align 4, !tbaa !5
  %7129 = call ptr @__errno_location() #11
  store i32 %7128, ptr %7129, align 4, !tbaa !5
  %7130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7131 = load i32, ptr @test_count, align 4, !tbaa !5
  %7132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7133 = load i32, ptr %7132, align 4, !tbaa !5
  %7134 = call ptr @s2n_strerror(i32 noundef %7133, ptr noundef @.str.4)
  %7135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7136 = load i32, ptr %7135, align 4, !tbaa !5
  %7137 = call ptr @s2n_strerror_debug(i32 noundef %7136, ptr noundef @.str.4)
  %7138 = call ptr @__errno_location() #11
  %7139 = load i32, ptr %7138, align 4, !tbaa !5
  %7140 = call ptr @strerror(i32 noundef %7139) #10
  %7141 = call ptr @__errno_location() #11
  %7142 = load i32, ptr %7141, align 4, !tbaa !5
  %7143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7130, ptr noundef @.str.5, i32 noundef %7131, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 375, ptr noundef %7134, ptr noundef %7137, ptr noundef %7140, i32 noundef %7142) #10
  br label %7144

7144:                                             ; preds = %7127, %7110
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #10
  br label %7145

7145:                                             ; preds = %7144
  br label %7146

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

7147:                                             ; No predecessors!
  br label %7148

7148:                                             ; preds = %7147
  br label %7149

7149:                                             ; preds = %7148, %7090
  br label %7150

7150:                                             ; preds = %7149
  br label %7151

7151:                                             ; preds = %7150
  br label %7152

7152:                                             ; preds = %7151
  %7153 = load i32, ptr @test_count, align 4, !tbaa !5
  %7154 = add nsw i32 %7153, 1
  store i32 %7154, ptr @test_count, align 4, !tbaa !5
  %7155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7156 = load i32, ptr %7155, align 4, !tbaa !5
  %7157 = call ptr @s2n_strerror_debug(i32 noundef %7156, ptr noundef @.str.4)
  %7158 = icmp eq ptr %7157, null
  br i1 %7158, label %7159, label %7212

7159:                                             ; preds = %7152
  br label %7160

7160:                                             ; preds = %7159
  br label %7161

7161:                                             ; preds = %7160
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #10
  %7162 = call ptr @__errno_location() #11
  %7163 = load i32, ptr %7162, align 4, !tbaa !5
  store i32 %7163, ptr %180, align 4, !tbaa !5
  %7164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7165 = call i32 @s2n_print_stacktrace(ptr noundef %7164)
  %7166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7167 = trunc i8 %7166 to i1
  br i1 %7167, label %7168, label %7190

7168:                                             ; preds = %7161
  %7169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7170 = call i32 @fileno(ptr noundef %7169) #10
  %7171 = call i32 @isatty(i32 noundef %7170) #10
  %7172 = icmp ne i32 %7171, 0
  br i1 %7172, label %7173, label %7190

7173:                                             ; preds = %7168
  %7174 = load i32, ptr %180, align 4, !tbaa !5
  %7175 = call ptr @__errno_location() #11
  store i32 %7174, ptr %7175, align 4, !tbaa !5
  %7176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7177 = load i32, ptr @test_count, align 4, !tbaa !5
  %7178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7179 = load i32, ptr %7178, align 4, !tbaa !5
  %7180 = call ptr @s2n_strerror(i32 noundef %7179, ptr noundef @.str.4)
  %7181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7182 = load i32, ptr %7181, align 4, !tbaa !5
  %7183 = call ptr @s2n_strerror_debug(i32 noundef %7182, ptr noundef @.str.4)
  %7184 = call ptr @__errno_location() #11
  %7185 = load i32, ptr %7184, align 4, !tbaa !5
  %7186 = call ptr @strerror(i32 noundef %7185) #10
  %7187 = call ptr @__errno_location() #11
  %7188 = load i32, ptr %7187, align 4, !tbaa !5
  %7189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7176, ptr noundef @.str.2, i32 noundef %7177, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 375, ptr noundef %7180, ptr noundef %7183, ptr noundef %7186, i32 noundef %7188) #10
  br label %7207

7190:                                             ; preds = %7168, %7161
  %7191 = load i32, ptr %180, align 4, !tbaa !5
  %7192 = call ptr @__errno_location() #11
  store i32 %7191, ptr %7192, align 4, !tbaa !5
  %7193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7194 = load i32, ptr @test_count, align 4, !tbaa !5
  %7195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7196 = load i32, ptr %7195, align 4, !tbaa !5
  %7197 = call ptr @s2n_strerror(i32 noundef %7196, ptr noundef @.str.4)
  %7198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7199 = load i32, ptr %7198, align 4, !tbaa !5
  %7200 = call ptr @s2n_strerror_debug(i32 noundef %7199, ptr noundef @.str.4)
  %7201 = call ptr @__errno_location() #11
  %7202 = load i32, ptr %7201, align 4, !tbaa !5
  %7203 = call ptr @strerror(i32 noundef %7202) #10
  %7204 = call ptr @__errno_location() #11
  %7205 = load i32, ptr %7204, align 4, !tbaa !5
  %7206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7193, ptr noundef @.str.5, i32 noundef %7194, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 375, ptr noundef %7197, ptr noundef %7200, ptr noundef %7203, i32 noundef %7205) #10
  br label %7207

7207:                                             ; preds = %7190, %7173
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #10
  br label %7208

7208:                                             ; preds = %7207
  br label %7209

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

7210:                                             ; No predecessors!
  br label %7211

7211:                                             ; preds = %7210
  br label %7212

7212:                                             ; preds = %7211, %7152
  br label %7213

7213:                                             ; preds = %7212
  br label %7214

7214:                                             ; preds = %7213
  br label %7215

7215:                                             ; preds = %7214
  br label %7216

7216:                                             ; preds = %7215
  br label %7217

7217:                                             ; preds = %7216
  %7218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7218, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7219 = call ptr @__errno_location() #11
  store i32 0, ptr %7219, align 4, !tbaa !5
  br label %7220

7220:                                             ; preds = %7217
  br label %7221

7221:                                             ; preds = %7220
  br label %7222

7222:                                             ; preds = %7221
  br label %7223

7223:                                             ; preds = %7222
  br label %7224

7224:                                             ; preds = %7223
  %7225 = load i32, ptr @test_count, align 4, !tbaa !5
  %7226 = add nsw i32 %7225, 1
  store i32 %7226, ptr @test_count, align 4, !tbaa !5
  %7227 = getelementptr inbounds %struct.s2n_overwrite_client_hello_ctx, ptr %165, i32 0, i32 4
  %7228 = load i32, ptr %7227, align 4, !tbaa !20
  %7229 = icmp eq i32 %7228, 1
  br i1 %7229, label %7283, label %7230

7230:                                             ; preds = %7224
  br label %7231

7231:                                             ; preds = %7230
  br label %7232

7232:                                             ; preds = %7231
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #10
  %7233 = call ptr @__errno_location() #11
  %7234 = load i32, ptr %7233, align 4, !tbaa !5
  store i32 %7234, ptr %181, align 4, !tbaa !5
  %7235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7236 = call i32 @s2n_print_stacktrace(ptr noundef %7235)
  %7237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7238 = trunc i8 %7237 to i1
  br i1 %7238, label %7239, label %7261

7239:                                             ; preds = %7232
  %7240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7241 = call i32 @fileno(ptr noundef %7240) #10
  %7242 = call i32 @isatty(i32 noundef %7241) #10
  %7243 = icmp ne i32 %7242, 0
  br i1 %7243, label %7244, label %7261

7244:                                             ; preds = %7239
  %7245 = load i32, ptr %181, align 4, !tbaa !5
  %7246 = call ptr @__errno_location() #11
  store i32 %7245, ptr %7246, align 4, !tbaa !5
  %7247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7248 = load i32, ptr @test_count, align 4, !tbaa !5
  %7249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7250 = load i32, ptr %7249, align 4, !tbaa !5
  %7251 = call ptr @s2n_strerror(i32 noundef %7250, ptr noundef @.str.4)
  %7252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7253 = load i32, ptr %7252, align 4, !tbaa !5
  %7254 = call ptr @s2n_strerror_debug(i32 noundef %7253, ptr noundef @.str.4)
  %7255 = call ptr @__errno_location() #11
  %7256 = load i32, ptr %7255, align 4, !tbaa !5
  %7257 = call ptr @strerror(i32 noundef %7256) #10
  %7258 = call ptr @__errno_location() #11
  %7259 = load i32, ptr %7258, align 4, !tbaa !5
  %7260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7247, ptr noundef @.str.2, i32 noundef %7248, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 376, ptr noundef %7251, ptr noundef %7254, ptr noundef %7257, i32 noundef %7259) #10
  br label %7278

7261:                                             ; preds = %7239, %7232
  %7262 = load i32, ptr %181, align 4, !tbaa !5
  %7263 = call ptr @__errno_location() #11
  store i32 %7262, ptr %7263, align 4, !tbaa !5
  %7264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7265 = load i32, ptr @test_count, align 4, !tbaa !5
  %7266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7267 = load i32, ptr %7266, align 4, !tbaa !5
  %7268 = call ptr @s2n_strerror(i32 noundef %7267, ptr noundef @.str.4)
  %7269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7270 = load i32, ptr %7269, align 4, !tbaa !5
  %7271 = call ptr @s2n_strerror_debug(i32 noundef %7270, ptr noundef @.str.4)
  %7272 = call ptr @__errno_location() #11
  %7273 = load i32, ptr %7272, align 4, !tbaa !5
  %7274 = call ptr @strerror(i32 noundef %7273) #10
  %7275 = call ptr @__errno_location() #11
  %7276 = load i32, ptr %7275, align 4, !tbaa !5
  %7277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7264, ptr noundef @.str.5, i32 noundef %7265, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 376, ptr noundef %7268, ptr noundef %7271, ptr noundef %7274, i32 noundef %7276) #10
  br label %7278

7278:                                             ; preds = %7261, %7244
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #10
  br label %7279

7279:                                             ; preds = %7278
  br label %7280

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

7281:                                             ; No predecessors!
  br label %7282

7282:                                             ; preds = %7281
  br label %7283

7283:                                             ; preds = %7282, %7224
  br label %7284

7284:                                             ; preds = %7283
  br label %7285

7285:                                             ; preds = %7284
  call void @llvm.lifetime.start.p0(i64 1, ptr %182) #10
  store i8 0, ptr %182, align 1, !tbaa !11
  br label %7286

7286:                                             ; preds = %7285
  %7287 = load i32, ptr @test_count, align 4, !tbaa !5
  %7288 = add nsw i32 %7287, 1
  store i32 %7288, ptr @test_count, align 4, !tbaa !5
  %7289 = load ptr, ptr %170, align 8, !tbaa !9
  %7290 = getelementptr inbounds %struct.s2n_connection, ptr %7289, i32 0, i32 71
  %7291 = call i32 @s2n_client_hello_has_extension(ptr noundef %7290, i16 noundef zeroext 43, ptr noundef %182)
  %7292 = icmp eq i32 %7291, -1
  br i1 %7292, label %7293, label %7346

7293:                                             ; preds = %7286
  br label %7294

7294:                                             ; preds = %7293
  br label %7295

7295:                                             ; preds = %7294
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  %7296 = call ptr @__errno_location() #11
  %7297 = load i32, ptr %7296, align 4, !tbaa !5
  store i32 %7297, ptr %183, align 4, !tbaa !5
  %7298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7299 = call i32 @s2n_print_stacktrace(ptr noundef %7298)
  %7300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7301 = trunc i8 %7300 to i1
  br i1 %7301, label %7302, label %7324

7302:                                             ; preds = %7295
  %7303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7304 = call i32 @fileno(ptr noundef %7303) #10
  %7305 = call i32 @isatty(i32 noundef %7304) #10
  %7306 = icmp ne i32 %7305, 0
  br i1 %7306, label %7307, label %7324

7307:                                             ; preds = %7302
  %7308 = load i32, ptr %183, align 4, !tbaa !5
  %7309 = call ptr @__errno_location() #11
  store i32 %7308, ptr %7309, align 4, !tbaa !5
  %7310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7311 = load i32, ptr @test_count, align 4, !tbaa !5
  %7312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call ptr @s2n_strerror(i32 noundef %7313, ptr noundef @.str.4)
  %7315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call ptr @s2n_strerror_debug(i32 noundef %7316, ptr noundef @.str.4)
  %7318 = call ptr @__errno_location() #11
  %7319 = load i32, ptr %7318, align 4, !tbaa !5
  %7320 = call ptr @strerror(i32 noundef %7319) #10
  %7321 = call ptr @__errno_location() #11
  %7322 = load i32, ptr %7321, align 4, !tbaa !5
  %7323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7310, ptr noundef @.str.2, i32 noundef %7311, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 381, ptr noundef %7314, ptr noundef %7317, ptr noundef %7320, i32 noundef %7322) #10
  br label %7341

7324:                                             ; preds = %7302, %7295
  %7325 = load i32, ptr %183, align 4, !tbaa !5
  %7326 = call ptr @__errno_location() #11
  store i32 %7325, ptr %7326, align 4, !tbaa !5
  %7327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7328 = load i32, ptr @test_count, align 4, !tbaa !5
  %7329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call ptr @s2n_strerror(i32 noundef %7330, ptr noundef @.str.4)
  %7332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  %7334 = call ptr @s2n_strerror_debug(i32 noundef %7333, ptr noundef @.str.4)
  %7335 = call ptr @__errno_location() #11
  %7336 = load i32, ptr %7335, align 4, !tbaa !5
  %7337 = call ptr @strerror(i32 noundef %7336) #10
  %7338 = call ptr @__errno_location() #11
  %7339 = load i32, ptr %7338, align 4, !tbaa !5
  %7340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7327, ptr noundef @.str.5, i32 noundef %7328, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 381, ptr noundef %7331, ptr noundef %7334, ptr noundef %7337, i32 noundef %7339) #10
  br label %7341

7341:                                             ; preds = %7324, %7307
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %7342

7342:                                             ; preds = %7341
  br label %7343

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

7344:                                             ; No predecessors!
  br label %7345

7345:                                             ; preds = %7344
  br label %7346

7346:                                             ; preds = %7345, %7286
  br label %7347

7347:                                             ; preds = %7346
  br label %7348

7348:                                             ; preds = %7347
  br label %7349

7349:                                             ; preds = %7348
  %7350 = load i32, ptr @test_count, align 4, !tbaa !5
  %7351 = add nsw i32 %7350, 1
  store i32 %7351, ptr @test_count, align 4, !tbaa !5
  %7352 = load i8, ptr %182, align 1, !tbaa !11, !range !13, !noundef !14
  %7353 = trunc i8 %7352 to i1
  br i1 %7353, label %7407, label %7354

7354:                                             ; preds = %7349
  br label %7355

7355:                                             ; preds = %7354
  br label %7356

7356:                                             ; preds = %7355
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #10
  %7357 = call ptr @__errno_location() #11
  %7358 = load i32, ptr %7357, align 4, !tbaa !5
  store i32 %7358, ptr %184, align 4, !tbaa !5
  %7359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7360 = call i32 @s2n_print_stacktrace(ptr noundef %7359)
  %7361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7362 = trunc i8 %7361 to i1
  br i1 %7362, label %7363, label %7385

7363:                                             ; preds = %7356
  %7364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7365 = call i32 @fileno(ptr noundef %7364) #10
  %7366 = call i32 @isatty(i32 noundef %7365) #10
  %7367 = icmp ne i32 %7366, 0
  br i1 %7367, label %7368, label %7385

7368:                                             ; preds = %7363
  %7369 = load i32, ptr %184, align 4, !tbaa !5
  %7370 = call ptr @__errno_location() #11
  store i32 %7369, ptr %7370, align 4, !tbaa !5
  %7371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7372 = load i32, ptr @test_count, align 4, !tbaa !5
  %7373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7374 = load i32, ptr %7373, align 4, !tbaa !5
  %7375 = call ptr @s2n_strerror(i32 noundef %7374, ptr noundef @.str.4)
  %7376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7377 = load i32, ptr %7376, align 4, !tbaa !5
  %7378 = call ptr @s2n_strerror_debug(i32 noundef %7377, ptr noundef @.str.4)
  %7379 = call ptr @__errno_location() #11
  %7380 = load i32, ptr %7379, align 4, !tbaa !5
  %7381 = call ptr @strerror(i32 noundef %7380) #10
  %7382 = call ptr @__errno_location() #11
  %7383 = load i32, ptr %7382, align 4, !tbaa !5
  %7384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7371, ptr noundef @.str.2, i32 noundef %7372, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7375, ptr noundef %7378, ptr noundef %7381, i32 noundef %7383) #10
  br label %7402

7385:                                             ; preds = %7363, %7356
  %7386 = load i32, ptr %184, align 4, !tbaa !5
  %7387 = call ptr @__errno_location() #11
  store i32 %7386, ptr %7387, align 4, !tbaa !5
  %7388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7389 = load i32, ptr @test_count, align 4, !tbaa !5
  %7390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7391 = load i32, ptr %7390, align 4, !tbaa !5
  %7392 = call ptr @s2n_strerror(i32 noundef %7391, ptr noundef @.str.4)
  %7393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7394 = load i32, ptr %7393, align 4, !tbaa !5
  %7395 = call ptr @s2n_strerror_debug(i32 noundef %7394, ptr noundef @.str.4)
  %7396 = call ptr @__errno_location() #11
  %7397 = load i32, ptr %7396, align 4, !tbaa !5
  %7398 = call ptr @strerror(i32 noundef %7397) #10
  %7399 = call ptr @__errno_location() #11
  %7400 = load i32, ptr %7399, align 4, !tbaa !5
  %7401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7388, ptr noundef @.str.5, i32 noundef %7389, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7392, ptr noundef %7395, ptr noundef %7398, i32 noundef %7400) #10
  br label %7402

7402:                                             ; preds = %7385, %7368
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #10
  br label %7403

7403:                                             ; preds = %7402
  br label %7404

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

7405:                                             ; No predecessors!
  br label %7406

7406:                                             ; preds = %7405
  br label %7407

7407:                                             ; preds = %7406, %7349
  br label %7408

7408:                                             ; preds = %7407
  br label %7409

7409:                                             ; preds = %7408
  br label %7410

7410:                                             ; preds = %7409
  %7411 = load i32, ptr @test_count, align 4, !tbaa !5
  %7412 = add nsw i32 %7411, 1
  store i32 %7412, ptr @test_count, align 4, !tbaa !5
  %7413 = load ptr, ptr %170, align 8, !tbaa !9
  %7414 = call i32 @s2n_connection_get_server_protocol_version(ptr noundef %7413)
  %7415 = icmp eq i32 %7414, 34
  br i1 %7415, label %7469, label %7416

7416:                                             ; preds = %7410
  br label %7417

7417:                                             ; preds = %7416
  br label %7418

7418:                                             ; preds = %7417
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #10
  %7419 = call ptr @__errno_location() #11
  %7420 = load i32, ptr %7419, align 4, !tbaa !5
  store i32 %7420, ptr %185, align 4, !tbaa !5
  %7421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7422 = call i32 @s2n_print_stacktrace(ptr noundef %7421)
  %7423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7424 = trunc i8 %7423 to i1
  br i1 %7424, label %7425, label %7447

7425:                                             ; preds = %7418
  %7426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7427 = call i32 @fileno(ptr noundef %7426) #10
  %7428 = call i32 @isatty(i32 noundef %7427) #10
  %7429 = icmp ne i32 %7428, 0
  br i1 %7429, label %7430, label %7447

7430:                                             ; preds = %7425
  %7431 = load i32, ptr %185, align 4, !tbaa !5
  %7432 = call ptr @__errno_location() #11
  store i32 %7431, ptr %7432, align 4, !tbaa !5
  %7433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7434 = load i32, ptr @test_count, align 4, !tbaa !5
  %7435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7436 = load i32, ptr %7435, align 4, !tbaa !5
  %7437 = call ptr @s2n_strerror(i32 noundef %7436, ptr noundef @.str.4)
  %7438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7439 = load i32, ptr %7438, align 4, !tbaa !5
  %7440 = call ptr @s2n_strerror_debug(i32 noundef %7439, ptr noundef @.str.4)
  %7441 = call ptr @__errno_location() #11
  %7442 = load i32, ptr %7441, align 4, !tbaa !5
  %7443 = call ptr @strerror(i32 noundef %7442) #10
  %7444 = call ptr @__errno_location() #11
  %7445 = load i32, ptr %7444, align 4, !tbaa !5
  %7446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7433, ptr noundef @.str.2, i32 noundef %7434, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 384, ptr noundef %7437, ptr noundef %7440, ptr noundef %7443, i32 noundef %7445) #10
  br label %7464

7447:                                             ; preds = %7425, %7418
  %7448 = load i32, ptr %185, align 4, !tbaa !5
  %7449 = call ptr @__errno_location() #11
  store i32 %7448, ptr %7449, align 4, !tbaa !5
  %7450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7451 = load i32, ptr @test_count, align 4, !tbaa !5
  %7452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7453 = load i32, ptr %7452, align 4, !tbaa !5
  %7454 = call ptr @s2n_strerror(i32 noundef %7453, ptr noundef @.str.4)
  %7455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7456 = load i32, ptr %7455, align 4, !tbaa !5
  %7457 = call ptr @s2n_strerror_debug(i32 noundef %7456, ptr noundef @.str.4)
  %7458 = call ptr @__errno_location() #11
  %7459 = load i32, ptr %7458, align 4, !tbaa !5
  %7460 = call ptr @strerror(i32 noundef %7459) #10
  %7461 = call ptr @__errno_location() #11
  %7462 = load i32, ptr %7461, align 4, !tbaa !5
  %7463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7450, ptr noundef @.str.5, i32 noundef %7451, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 384, ptr noundef %7454, ptr noundef %7457, ptr noundef %7460, i32 noundef %7462) #10
  br label %7464

7464:                                             ; preds = %7447, %7430
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #10
  br label %7465

7465:                                             ; preds = %7464
  br label %7466

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

7467:                                             ; No predecessors!
  br label %7468

7468:                                             ; preds = %7467
  br label %7469

7469:                                             ; preds = %7468, %7410
  br label %7470

7470:                                             ; preds = %7469
  br label %7471

7471:                                             ; preds = %7470
  br label %7472

7472:                                             ; preds = %7471
  %7473 = load i32, ptr @test_count, align 4, !tbaa !5
  %7474 = add nsw i32 %7473, 1
  store i32 %7474, ptr @test_count, align 4, !tbaa !5
  %7475 = load ptr, ptr %170, align 8, !tbaa !9
  %7476 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %7475)
  %7477 = load i8, ptr @s2n_unknown_protocol_version, align 1, !tbaa !15
  %7478 = zext i8 %7477 to i32
  %7479 = icmp eq i32 %7476, %7478
  br i1 %7479, label %7533, label %7480

7480:                                             ; preds = %7472
  br label %7481

7481:                                             ; preds = %7480
  br label %7482

7482:                                             ; preds = %7481
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #10
  %7483 = call ptr @__errno_location() #11
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  store i32 %7484, ptr %186, align 4, !tbaa !5
  %7485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7486 = call i32 @s2n_print_stacktrace(ptr noundef %7485)
  %7487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7488 = trunc i8 %7487 to i1
  br i1 %7488, label %7489, label %7511

7489:                                             ; preds = %7482
  %7490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7491 = call i32 @fileno(ptr noundef %7490) #10
  %7492 = call i32 @isatty(i32 noundef %7491) #10
  %7493 = icmp ne i32 %7492, 0
  br i1 %7493, label %7494, label %7511

7494:                                             ; preds = %7489
  %7495 = load i32, ptr %186, align 4, !tbaa !5
  %7496 = call ptr @__errno_location() #11
  store i32 %7495, ptr %7496, align 4, !tbaa !5
  %7497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7498 = load i32, ptr @test_count, align 4, !tbaa !5
  %7499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7500 = load i32, ptr %7499, align 4, !tbaa !5
  %7501 = call ptr @s2n_strerror(i32 noundef %7500, ptr noundef @.str.4)
  %7502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7503 = load i32, ptr %7502, align 4, !tbaa !5
  %7504 = call ptr @s2n_strerror_debug(i32 noundef %7503, ptr noundef @.str.4)
  %7505 = call ptr @__errno_location() #11
  %7506 = load i32, ptr %7505, align 4, !tbaa !5
  %7507 = call ptr @strerror(i32 noundef %7506) #10
  %7508 = call ptr @__errno_location() #11
  %7509 = load i32, ptr %7508, align 4, !tbaa !5
  %7510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7497, ptr noundef @.str.2, i32 noundef %7498, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 385, ptr noundef %7501, ptr noundef %7504, ptr noundef %7507, i32 noundef %7509) #10
  br label %7528

7511:                                             ; preds = %7489, %7482
  %7512 = load i32, ptr %186, align 4, !tbaa !5
  %7513 = call ptr @__errno_location() #11
  store i32 %7512, ptr %7513, align 4, !tbaa !5
  %7514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7515 = load i32, ptr @test_count, align 4, !tbaa !5
  %7516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7517 = load i32, ptr %7516, align 4, !tbaa !5
  %7518 = call ptr @s2n_strerror(i32 noundef %7517, ptr noundef @.str.4)
  %7519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7520 = load i32, ptr %7519, align 4, !tbaa !5
  %7521 = call ptr @s2n_strerror_debug(i32 noundef %7520, ptr noundef @.str.4)
  %7522 = call ptr @__errno_location() #11
  %7523 = load i32, ptr %7522, align 4, !tbaa !5
  %7524 = call ptr @strerror(i32 noundef %7523) #10
  %7525 = call ptr @__errno_location() #11
  %7526 = load i32, ptr %7525, align 4, !tbaa !5
  %7527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7514, ptr noundef @.str.5, i32 noundef %7515, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 385, ptr noundef %7518, ptr noundef %7521, ptr noundef %7524, i32 noundef %7526) #10
  br label %7528

7528:                                             ; preds = %7511, %7494
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #10
  br label %7529

7529:                                             ; preds = %7528
  br label %7530

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

7531:                                             ; No predecessors!
  br label %7532

7532:                                             ; preds = %7531
  br label %7533

7533:                                             ; preds = %7532, %7472
  br label %7534

7534:                                             ; preds = %7533
  br label %7535

7535:                                             ; preds = %7534
  br label %7536

7536:                                             ; preds = %7535
  %7537 = load i32, ptr @test_count, align 4, !tbaa !5
  %7538 = add nsw i32 %7537, 1
  store i32 %7538, ptr @test_count, align 4, !tbaa !5
  %7539 = load ptr, ptr %170, align 8, !tbaa !9
  %7540 = call i32 @s2n_connection_get_actual_protocol_version(ptr noundef %7539)
  %7541 = load i8, ptr @s2n_unknown_protocol_version, align 1, !tbaa !15
  %7542 = zext i8 %7541 to i32
  %7543 = icmp eq i32 %7540, %7542
  br i1 %7543, label %7597, label %7544

7544:                                             ; preds = %7536
  br label %7545

7545:                                             ; preds = %7544
  br label %7546

7546:                                             ; preds = %7545
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #10
  %7547 = call ptr @__errno_location() #11
  %7548 = load i32, ptr %7547, align 4, !tbaa !5
  store i32 %7548, ptr %187, align 4, !tbaa !5
  %7549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7550 = call i32 @s2n_print_stacktrace(ptr noundef %7549)
  %7551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7552 = trunc i8 %7551 to i1
  br i1 %7552, label %7553, label %7575

7553:                                             ; preds = %7546
  %7554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7555 = call i32 @fileno(ptr noundef %7554) #10
  %7556 = call i32 @isatty(i32 noundef %7555) #10
  %7557 = icmp ne i32 %7556, 0
  br i1 %7557, label %7558, label %7575

7558:                                             ; preds = %7553
  %7559 = load i32, ptr %187, align 4, !tbaa !5
  %7560 = call ptr @__errno_location() #11
  store i32 %7559, ptr %7560, align 4, !tbaa !5
  %7561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7562 = load i32, ptr @test_count, align 4, !tbaa !5
  %7563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7564 = load i32, ptr %7563, align 4, !tbaa !5
  %7565 = call ptr @s2n_strerror(i32 noundef %7564, ptr noundef @.str.4)
  %7566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7567 = load i32, ptr %7566, align 4, !tbaa !5
  %7568 = call ptr @s2n_strerror_debug(i32 noundef %7567, ptr noundef @.str.4)
  %7569 = call ptr @__errno_location() #11
  %7570 = load i32, ptr %7569, align 4, !tbaa !5
  %7571 = call ptr @strerror(i32 noundef %7570) #10
  %7572 = call ptr @__errno_location() #11
  %7573 = load i32, ptr %7572, align 4, !tbaa !5
  %7574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7561, ptr noundef @.str.2, i32 noundef %7562, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 386, ptr noundef %7565, ptr noundef %7568, ptr noundef %7571, i32 noundef %7573) #10
  br label %7592

7575:                                             ; preds = %7553, %7546
  %7576 = load i32, ptr %187, align 4, !tbaa !5
  %7577 = call ptr @__errno_location() #11
  store i32 %7576, ptr %7577, align 4, !tbaa !5
  %7578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7579 = load i32, ptr @test_count, align 4, !tbaa !5
  %7580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7581 = load i32, ptr %7580, align 4, !tbaa !5
  %7582 = call ptr @s2n_strerror(i32 noundef %7581, ptr noundef @.str.4)
  %7583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7584 = load i32, ptr %7583, align 4, !tbaa !5
  %7585 = call ptr @s2n_strerror_debug(i32 noundef %7584, ptr noundef @.str.4)
  %7586 = call ptr @__errno_location() #11
  %7587 = load i32, ptr %7586, align 4, !tbaa !5
  %7588 = call ptr @strerror(i32 noundef %7587) #10
  %7589 = call ptr @__errno_location() #11
  %7590 = load i32, ptr %7589, align 4, !tbaa !5
  %7591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7578, ptr noundef @.str.5, i32 noundef %7579, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 386, ptr noundef %7582, ptr noundef %7585, ptr noundef %7588, i32 noundef %7590) #10
  br label %7592

7592:                                             ; preds = %7575, %7558
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #10
  br label %7593

7593:                                             ; preds = %7592
  br label %7594

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

7595:                                             ; No predecessors!
  br label %7596

7596:                                             ; preds = %7595
  br label %7597

7597:                                             ; preds = %7596, %7536
  br label %7598

7598:                                             ; preds = %7597
  br label %7599

7599:                                             ; preds = %7598
  call void @llvm.lifetime.end.p0(i64 1, ptr %182) #10
  %7600 = call i32 @s2n_io_pair_close(ptr noundef %174)
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #10
  %7601 = call i32 @s2n_connection_ptr_free(ptr noundef %170)
  %7602 = getelementptr inbounds %struct.s2n_result, ptr %188, i32 0, i32 0
  store i32 %7601, ptr %7602, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #10
  %7603 = call i32 @s2n_connection_ptr_free(ptr noundef %167)
  %7604 = getelementptr inbounds %struct.s2n_result, ptr %189, i32 0, i32 0
  store i32 %7603, ptr %7604, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %165) #10
  %7605 = call i32 @s2n_config_ptr_free(ptr noundef %162)
  %7606 = getelementptr inbounds %struct.s2n_result, ptr %190, i32 0, i32 0
  store i32 %7605, ptr %7606, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #10
  br label %7607

7607:                                             ; preds = %7599, %6395
  br label %7608

7608:                                             ; preds = %7607
  br label %7609

7609:                                             ; preds = %7608
  %7610 = call i32 @s2n_cleanup()
  %7611 = icmp eq i32 %7610, -1
  br i1 %7611, label %7612, label %7665

7612:                                             ; preds = %7609
  br label %7613

7613:                                             ; preds = %7612
  br label %7614

7614:                                             ; preds = %7613
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #10
  %7615 = call ptr @__errno_location() #11
  %7616 = load i32, ptr %7615, align 4, !tbaa !5
  store i32 %7616, ptr %191, align 4, !tbaa !5
  %7617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7618 = call i32 @s2n_print_stacktrace(ptr noundef %7617)
  %7619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7620 = trunc i8 %7619 to i1
  br i1 %7620, label %7621, label %7643

7621:                                             ; preds = %7614
  %7622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7623 = call i32 @fileno(ptr noundef %7622) #10
  %7624 = call i32 @isatty(i32 noundef %7623) #10
  %7625 = icmp ne i32 %7624, 0
  br i1 %7625, label %7626, label %7643

7626:                                             ; preds = %7621
  %7627 = load i32, ptr %191, align 4, !tbaa !5
  %7628 = call ptr @__errno_location() #11
  store i32 %7627, ptr %7628, align 4, !tbaa !5
  %7629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7630 = load i32, ptr @test_count, align 4, !tbaa !5
  %7631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  %7633 = call ptr @s2n_strerror(i32 noundef %7632, ptr noundef @.str.4)
  %7634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7635 = load i32, ptr %7634, align 4, !tbaa !5
  %7636 = call ptr @s2n_strerror_debug(i32 noundef %7635, ptr noundef @.str.4)
  %7637 = call ptr @__errno_location() #11
  %7638 = load i32, ptr %7637, align 4, !tbaa !5
  %7639 = call ptr @strerror(i32 noundef %7638) #10
  %7640 = call ptr @__errno_location() #11
  %7641 = load i32, ptr %7640, align 4, !tbaa !5
  %7642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7629, ptr noundef @.str.2, i32 noundef %7630, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 389, ptr noundef %7633, ptr noundef %7636, ptr noundef %7639, i32 noundef %7641) #10
  br label %7660

7643:                                             ; preds = %7621, %7614
  %7644 = load i32, ptr %191, align 4, !tbaa !5
  %7645 = call ptr @__errno_location() #11
  store i32 %7644, ptr %7645, align 4, !tbaa !5
  %7646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7647 = load i32, ptr @test_count, align 4, !tbaa !5
  %7648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7649 = load i32, ptr %7648, align 4, !tbaa !5
  %7650 = call ptr @s2n_strerror(i32 noundef %7649, ptr noundef @.str.4)
  %7651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7652 = load i32, ptr %7651, align 4, !tbaa !5
  %7653 = call ptr @s2n_strerror_debug(i32 noundef %7652, ptr noundef @.str.4)
  %7654 = call ptr @__errno_location() #11
  %7655 = load i32, ptr %7654, align 4, !tbaa !5
  %7656 = call ptr @strerror(i32 noundef %7655) #10
  %7657 = call ptr @__errno_location() #11
  %7658 = load i32, ptr %7657, align 4, !tbaa !5
  %7659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7646, ptr noundef @.str.5, i32 noundef %7647, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 389, ptr noundef %7650, ptr noundef %7653, ptr noundef %7656, i32 noundef %7658) #10
  br label %7660

7660:                                             ; preds = %7643, %7626
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #10
  br label %7661

7661:                                             ; preds = %7660
  br label %7662

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

7663:                                             ; No predecessors!
  br label %7664

7664:                                             ; preds = %7663
  br label %7665

7665:                                             ; preds = %7664, %7609
  br label %7666

7666:                                             ; preds = %7665
  br label %7667

7667:                                             ; preds = %7666
  br label %7668

7668:                                             ; preds = %7667
  br label %7669

7669:                                             ; preds = %7668
  %7670 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %7671 = icmp eq i32 %7670, -1
  br i1 %7671, label %7672, label %7725

7672:                                             ; preds = %7669
  br label %7673

7673:                                             ; preds = %7672
  br label %7674

7674:                                             ; preds = %7673
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #10
  %7675 = call ptr @__errno_location() #11
  %7676 = load i32, ptr %7675, align 4, !tbaa !5
  store i32 %7676, ptr %192, align 4, !tbaa !5
  %7677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7678 = call i32 @s2n_print_stacktrace(ptr noundef %7677)
  %7679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7680 = trunc i8 %7679 to i1
  br i1 %7680, label %7681, label %7703

7681:                                             ; preds = %7674
  %7682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7683 = call i32 @fileno(ptr noundef %7682) #10
  %7684 = call i32 @isatty(i32 noundef %7683) #10
  %7685 = icmp ne i32 %7684, 0
  br i1 %7685, label %7686, label %7703

7686:                                             ; preds = %7681
  %7687 = load i32, ptr %192, align 4, !tbaa !5
  %7688 = call ptr @__errno_location() #11
  store i32 %7687, ptr %7688, align 4, !tbaa !5
  %7689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7690 = load i32, ptr @test_count, align 4, !tbaa !5
  %7691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7692 = load i32, ptr %7691, align 4, !tbaa !5
  %7693 = call ptr @s2n_strerror(i32 noundef %7692, ptr noundef @.str.4)
  %7694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7695 = load i32, ptr %7694, align 4, !tbaa !5
  %7696 = call ptr @s2n_strerror_debug(i32 noundef %7695, ptr noundef @.str.4)
  %7697 = call ptr @__errno_location() #11
  %7698 = load i32, ptr %7697, align 4, !tbaa !5
  %7699 = call ptr @strerror(i32 noundef %7698) #10
  %7700 = call ptr @__errno_location() #11
  %7701 = load i32, ptr %7700, align 4, !tbaa !5
  %7702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7689, ptr noundef @.str.2, i32 noundef %7690, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 389, ptr noundef %7693, ptr noundef %7696, ptr noundef %7699, i32 noundef %7701) #10
  br label %7720

7703:                                             ; preds = %7681, %7674
  %7704 = load i32, ptr %192, align 4, !tbaa !5
  %7705 = call ptr @__errno_location() #11
  store i32 %7704, ptr %7705, align 4, !tbaa !5
  %7706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7707 = load i32, ptr @test_count, align 4, !tbaa !5
  %7708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7709 = load i32, ptr %7708, align 4, !tbaa !5
  %7710 = call ptr @s2n_strerror(i32 noundef %7709, ptr noundef @.str.4)
  %7711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7712 = load i32, ptr %7711, align 4, !tbaa !5
  %7713 = call ptr @s2n_strerror_debug(i32 noundef %7712, ptr noundef @.str.4)
  %7714 = call ptr @__errno_location() #11
  %7715 = load i32, ptr %7714, align 4, !tbaa !5
  %7716 = call ptr @strerror(i32 noundef %7715) #10
  %7717 = call ptr @__errno_location() #11
  %7718 = load i32, ptr %7717, align 4, !tbaa !5
  %7719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7706, ptr noundef @.str.5, i32 noundef %7707, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 389, ptr noundef %7710, ptr noundef %7713, ptr noundef %7716, i32 noundef %7718) #10
  br label %7720

7720:                                             ; preds = %7703, %7686
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #10
  br label %7721

7721:                                             ; preds = %7720
  br label %7722

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

7723:                                             ; No predecessors!
  br label %7724

7724:                                             ; preds = %7723
  br label %7725

7725:                                             ; preds = %7724, %7669
  br label %7726

7726:                                             ; preds = %7725
  br label %7727

7727:                                             ; preds = %7726
  %7728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7729 = trunc i8 %7728 to i1
  br i1 %7729, label %7730, label %7746

7730:                                             ; preds = %7727
  %7731 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7732 = call i32 @fileno(ptr noundef %7731) #10
  %7733 = call i32 @isatty(i32 noundef %7732) #10
  %7734 = icmp ne i32 %7733, 0
  br i1 %7734, label %7735, label %7746

7735:                                             ; preds = %7730
  %7736 = load i32, ptr @test_count, align 4, !tbaa !5
  %7737 = icmp ne i32 %7736, 0
  br i1 %7737, label %7738, label %7742

7738:                                             ; preds = %7735
  %7739 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7740 = load i32, ptr @test_count, align 4, !tbaa !5
  %7741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7739, ptr noundef @.str.61, i32 noundef %7740) #10
  br label %7745

7742:                                             ; preds = %7735
  %7743 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7743, ptr noundef @.str.62) #10
  br label %7745

7745:                                             ; preds = %7742, %7738
  br label %7757

7746:                                             ; preds = %7730, %7727
  %7747 = load i32, ptr @test_count, align 4, !tbaa !5
  %7748 = icmp ne i32 %7747, 0
  br i1 %7748, label %7749, label %7753

7749:                                             ; preds = %7746
  %7750 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7751 = load i32, ptr @test_count, align 4, !tbaa !5
  %7752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7750, ptr noundef @.str.63, i32 noundef %7751) #10
  br label %7756

7753:                                             ; preds = %7746
  %7754 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7754, ptr noundef @.str.64) #10
  br label %7756

7756:                                             ; preds = %7753, %7749
  br label %7757

7757:                                             ; preds = %7756, %7745
  store i32 0, ptr %3, align 4
  store i32 1, ptr %24, align 4
  br label %7762

7758:                                             ; No predecessors!
  br label %7759

7759:                                             ; preds = %7758
  br label %7760

7760:                                             ; preds = %7759
  br label %7761

7761:                                             ; preds = %7760
  store i32 0, ptr %24, align 4
  br label %7762

7762:                                             ; preds = %7761, %7757
  %7763 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %9)
  %7764 = getelementptr inbounds %struct.s2n_result, ptr %193, i32 0, i32 0
  store i32 %7763, ptr %7764, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #10
  %7765 = load i32, ptr %24, align 4
  switch i32 %7765, label %7768 [
    i32 0, label %7766
    i32 1, label %7766
  ]

7766:                                             ; preds = %7762, %7762
  %7767 = load i32, ptr %3, align 4
  ret i32 %7767

7768:                                             ; preds = %7762, %3733, %2488
  unreachable
}

; 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 i32 @s2n_connection_get_client_protocol_version(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_connection_get_client_hello_version(ptr noundef) #2

declare i32 @s2n_connection_get_server_protocol_version(ptr noundef) #2

declare i32 @s2n_connection_get_actual_protocol_version(ptr noundef) #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

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

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

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

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

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

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_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

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

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

declare i32 @s2n_client_hello_has_extension(ptr noundef, i16 noundef zeroext, ptr noundef) #2

declare i32 @s2n_get_highest_fully_supported_tls_version(...) #2

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

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

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

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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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 = !{!7, !7, i64 0}
!16 = !{!17, !7, i64 0}
!17 = !{!"s2n_overwrite_client_hello_ctx", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !6, i64 8}
!18 = !{!17, !7, i64 1}
!19 = !{!17, !7, i64 2}
!20 = !{!17, !6, i64 8}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = distinct !{!23, !22}
!24 = distinct !{!24, !22}
!25 = distinct !{!25, !22}
!26 = distinct !{!26, !22}
!27 = !{!28, !7, i64 219}
!28 = !{!"s2n_connection", !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, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !29, i64 160, !30, i64 168, !30, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !31, i64 240, !10, i64 632, !10, i64 640, !32, i64 648, !38, i64 1144, !41, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !44, i64 1776, !44, i64 1816, !44, i64 1856, !44, i64 1896, !6, i64 1936, !30, i64 1944, !7, i64 1952, !44, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !45, i64 2004, !45, i64 2008, !46, i64 2016, !43, i64 2208, !6, i64 2212, !43, i64 2216, !30, i64 2224, !7, i64 2232, !30, i64 2240, !30, i64 2248, !30, i64 2256, !45, i64 2264, !45, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !37, i64 2792, !6, i64 2816, !37, i64 2824, !37, i64 2848, !37, i64 2872, !48, i64 2896, !50, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !37, i64 3784, !6, i64 3808, !52, i64 3816, !7, i64 3848, !44, i64 3992, !37, i64 4032, !37, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !43, i64 4084, !43, i64 4086, !6, i64 4088, !6, i64 4092, !37, i64 4096, !6, i64 4120, !53, i64 4128, !45, i64 4176, !7, i64 4180, !7, i64 4181}
!29 = !{!"s2n_timer", !30, i64 0}
!30 = !{!"long", !7, i64 0}
!31 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!32 = !{!"s2n_kex_parameters", !33, i64 0, !34, i64 8, !7, i64 24, !34, i64 56, !35, i64 72, !35, i64 184, !7, i64 296, !36, i64 360, !37, i64 448, !37, i64 472}
!33 = !{!"s2n_dh_params", !10, i64 0}
!34 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!35 = !{!"s2n_kem_group_params", !10, i64 0, !36, i64 8, !34, i64 96}
!36 = !{!"s2n_kem_params", !10, i64 0, !37, i64 8, !37, i64 32, !37, i64 56, !12, i64 80}
!37 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!38 = !{!"s2n_handshake_parameters", !39, i64 0, !39, i64 48, !37, i64 96, !6, i64 120, !40, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!39 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!40 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!41 = !{!"s2n_psk_parameters", !6, i64 0, !42, i64 8, !43, i64 40, !43, i64 42, !10, i64 48, !6, i64 56}
!42 = !{!"s2n_array", !37, i64 0, !6, i64 24, !6, i64 28}
!43 = !{!"short", !7, i64 0}
!44 = !{!"s2n_stuffer", !37, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!45 = !{!"", !6, i64 0}
!46 = !{!"s2n_handshake", !44, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !47, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!47 = !{!"s2n_offered_early_data", !10, i64 0}
!48 = !{!"s2n_client_hello", !37, i64 0, !49, i64 24, !37, i64 728, !37, i64 752, !37, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!49 = !{!"", !7, i64 0, !37, i64 672, !43, i64 696}
!50 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !43, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !51, i64 48, !12, i64 52}
!51 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!52 = !{!"s2n_ticket_fields", !37, i64 0, !6, i64 24}
!53 = !{!"s2n_post_handshake", !44, i64 0, !7, i64 40}
!54 = distinct !{!54, !22}
!55 = distinct !{!55, !22}
!56 = distinct !{!56, !22}


; 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_overwrite_client_hello_ctx = type { i8, i8, i8, [3 x i8], 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 [96 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 [200 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 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 [112 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [86 x i8], align 1
@__const.main.context = external hidden unnamed_addr constant %struct.s2n_overwrite_client_hello_ctx, align 4
@.str.53 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [74 x i8], align 1
@s2n_unknown_protocol_version = external local_unnamed_addr global i8, align 1
@.str.57 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.64 = 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 ptr, align 8
  %5 = alloca %struct.s2n_overwrite_client_hello_ctx, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %struct.s2n_test_io_pair, align 8
  %9 = alloca i8, align 1
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca %struct.s2n_overwrite_client_hello_ctx, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.s2n_test_io_pair, align 8
  %16 = alloca i8, align 1
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca %struct.s2n_test_io_pair, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.s2n_overwrite_client_hello_ctx, align 4
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %struct.s2n_test_io_pair, align 8
  %26 = alloca i8, align 1
  %27 = alloca ptr, align 8
  %28 = alloca %struct.s2n_overwrite_client_hello_ctx, align 4
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %struct.s2n_test_io_pair, align 8
  %32 = alloca i8, align 1
  %33 = alloca ptr, align 8
  %34 = alloca %struct.s2n_overwrite_client_hello_ctx, align 4
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca %struct.s2n_test_io_pair, align 8
  %38 = alloca i8, align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %39 = load ptr, ptr @stdout, align 8, !tbaa !9
  %40 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %39, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %41 = load ptr, ptr @stdout, align 8, !tbaa !9
  %42 = tail call i32 @fflush(ptr noundef %41)
  %43 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %44 = icmp eq i32 %43, -1
  br i1 %44, label %45, label %69

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

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

56:                                               ; preds = %52, %45
  br label %57

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

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

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

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

85:                                               ; preds = %81, %74
  br label %86

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

98:                                               ; preds = %69
  %99 = tail call i32 @s2n_init() #12
  %100 = icmp eq i32 %99, -1
  br i1 %100, label %101, label %125

101:                                              ; preds = %98
  %102 = tail call ptr @__errno_location() #13
  %103 = load i32, ptr %102, align 4, !tbaa !5
  %104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %105 = tail call i32 @s2n_print_stacktrace(ptr noundef %104) #12
  %106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %107 = trunc nuw i8 %106 to i1
  br i1 %107, label %108, label %112

108:                                              ; preds = %101
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = tail call i32 @fileno(ptr noundef %109) #12
  %111 = tail call i32 @isatty(i32 noundef %110) #12
  %.not437 = icmp eq i32 %111, 0
  br i1 %.not437, label %112, label %113

112:                                              ; preds = %108, %101
  br label %113

113:                                              ; preds = %108, %112
  %.str.5.sink506 = phi ptr [ @.str.5, %112 ], [ @.str.2, %108 ]
  store i32 %103, ptr %102, align 4, !tbaa !5
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = load i32, ptr @test_count, align 4, !tbaa !5
  %116 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = tail call ptr @s2n_strerror(i32 noundef %117, ptr noundef nonnull @.str.4) #12
  %119 = load i32, ptr %116, align 4, !tbaa !5
  %120 = tail call ptr @s2n_strerror_debug(i32 noundef %119, ptr noundef nonnull @.str.4) #12
  %121 = load i32, ptr %102, align 4, !tbaa !5
  %122 = tail call ptr @strerror(i32 noundef %121) #12
  %123 = load i32, ptr %102, align 4, !tbaa !5
  %124 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %114, ptr noundef nonnull %.str.5.sink506, i32 noundef %115, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %118, ptr noundef %120, ptr noundef %122, i32 noundef %123) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

125:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #12
  store ptr null, ptr %3, align 8, !tbaa !9
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = add nsw i32 %126, 1
  store i32 %127, ptr @test_count, align 4, !tbaa !5
  %128 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9) #12
  %129 = icmp eq i32 %128, -1
  br i1 %129, label %130, label %154

130:                                              ; preds = %125
  %131 = tail call ptr @__errno_location() #13
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %134 = call i32 @s2n_print_stacktrace(ptr noundef %133) #12
  %135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %136 = trunc nuw i8 %135 to i1
  br i1 %136, label %137, label %141

137:                                              ; preds = %130
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = call i32 @fileno(ptr noundef %138) #12
  %140 = call i32 @isatty(i32 noundef %139) #12
  %.not436 = icmp eq i32 %140, 0
  br i1 %.not436, label %141, label %142

141:                                              ; preds = %137, %130
  br label %142

142:                                              ; preds = %137, %141
  %.str.5.sink517 = phi ptr [ @.str.5, %141 ], [ @.str.2, %137 ]
  store i32 %132, ptr %131, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = load i32, ptr @test_count, align 4, !tbaa !5
  %145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = call ptr @s2n_strerror(i32 noundef %146, ptr noundef nonnull @.str.4) #12
  %148 = load i32, ptr %145, align 4, !tbaa !5
  %149 = call ptr @s2n_strerror_debug(i32 noundef %148, ptr noundef nonnull @.str.4) #12
  %150 = load i32, ptr %131, align 4, !tbaa !5
  %151 = call ptr @strerror(i32 noundef %150) #12
  %152 = load i32, ptr %131, align 4, !tbaa !5
  %153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %143, ptr noundef nonnull %.str.5.sink517, i32 noundef %144, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %147, ptr noundef %149, ptr noundef %151, i32 noundef %152) #14
  call void @exit(i32 noundef 1) #15
  unreachable

154:                                              ; preds = %125
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = add nsw i32 %155, 1
  store i32 %156, ptr @test_count, align 4, !tbaa !5
  %157 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef null) #12
  %158 = icmp eq i32 %157, -1
  br i1 %158, label %183, label %159

159:                                              ; preds = %154
  %160 = tail call ptr @__errno_location() #13
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %163 = call i32 @s2n_print_stacktrace(ptr noundef %162) #12
  %164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %165 = trunc nuw i8 %164 to i1
  br i1 %165, label %166, label %170

166:                                              ; preds = %159
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = call i32 @fileno(ptr noundef %167) #12
  %169 = call i32 @isatty(i32 noundef %168) #12
  %.not = icmp eq i32 %169, 0
  br i1 %.not, label %170, label %171

170:                                              ; preds = %166, %159
  br label %171

171:                                              ; preds = %166, %170
  %.str.5.sink528 = phi ptr [ @.str.5, %170 ], [ @.str.2, %166 ]
  store i32 %161, ptr %160, align 4, !tbaa !5
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = load i32, ptr @test_count, align 4, !tbaa !5
  %174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = call ptr @s2n_strerror(i32 noundef %175, ptr noundef nonnull @.str.4) #12
  %177 = load i32, ptr %174, align 4, !tbaa !5
  %178 = call ptr @s2n_strerror_debug(i32 noundef %177, ptr noundef nonnull @.str.4) #12
  %179 = load i32, ptr %160, align 4, !tbaa !5
  %180 = call ptr @strerror(i32 noundef %179) #12
  %181 = load i32, ptr %160, align 4, !tbaa !5
  %182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %172, ptr noundef nonnull %.str.5.sink528, i32 noundef %173, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %176, ptr noundef %178, ptr noundef %180, i32 noundef %181) #14
  call void @exit(i32 noundef 1) #15
  unreachable

183:                                              ; preds = %154
  %184 = load i32, ptr @test_count, align 4, !tbaa !5
  %185 = add nsw i32 %184, 1
  store i32 %185, ptr @test_count, align 4, !tbaa !5
  %186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = icmp eq i32 %187, 402653193
  br i1 %188, label %212, label %189

189:                                              ; preds = %183
  %190 = tail call ptr @__errno_location() #13
  %191 = load i32, ptr %190, align 4, !tbaa !5
  %192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %193 = call i32 @s2n_print_stacktrace(ptr noundef %192) #12
  %194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %195 = trunc nuw i8 %194 to i1
  br i1 %195, label %196, label %200

196:                                              ; preds = %189
  %197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %198 = call i32 @fileno(ptr noundef %197) #12
  %199 = call i32 @isatty(i32 noundef %198) #12
  %.not322 = icmp eq i32 %199, 0
  br i1 %.not322, label %200, label %201

200:                                              ; preds = %196, %189
  br label %201

201:                                              ; preds = %196, %200
  %.str.5.sink539 = phi ptr [ @.str.5, %200 ], [ @.str.2, %196 ]
  store i32 %191, ptr %190, align 4, !tbaa !5
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = load i32, ptr @test_count, align 4, !tbaa !5
  %204 = load i32, ptr %186, align 4, !tbaa !5
  %205 = call ptr @s2n_strerror(i32 noundef %204, ptr noundef nonnull @.str.4) #12
  %206 = load i32, ptr %186, align 4, !tbaa !5
  %207 = call ptr @s2n_strerror_debug(i32 noundef %206, ptr noundef nonnull @.str.4) #12
  %208 = load i32, ptr %190, align 4, !tbaa !5
  %209 = call ptr @strerror(i32 noundef %208) #12
  %210 = load i32, ptr %190, align 4, !tbaa !5
  %211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %202, ptr noundef nonnull %.str.5.sink539, i32 noundef %203, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %205, ptr noundef %207, ptr noundef %209, i32 noundef %210) #14
  call void @exit(i32 noundef 1) #15
  unreachable

212:                                              ; preds = %183
  %213 = add nsw i32 %184, 2
  store i32 %213, ptr @test_count, align 4, !tbaa !5
  %214 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %215 = icmp eq ptr %214, null
  br i1 %215, label %216, label %239

216:                                              ; preds = %212
  %217 = tail call ptr @__errno_location() #13
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @s2n_print_stacktrace(ptr noundef %219) #12
  %221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %222 = trunc nuw i8 %221 to i1
  br i1 %222, label %223, label %227

223:                                              ; preds = %216
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @fileno(ptr noundef %224) #12
  %226 = call i32 @isatty(i32 noundef %225) #12
  %.not435 = icmp eq i32 %226, 0
  br i1 %.not435, label %227, label %228

227:                                              ; preds = %223, %216
  br label %228

228:                                              ; preds = %223, %227
  %.str.5.sink548 = phi ptr [ @.str.5, %227 ], [ @.str.2, %223 ]
  store i32 %218, ptr %217, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = load i32, ptr %186, align 4, !tbaa !5
  %232 = call ptr @s2n_strerror(i32 noundef %231, ptr noundef nonnull @.str.4) #12
  %233 = load i32, ptr %186, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror_debug(i32 noundef %233, ptr noundef nonnull @.str.4) #12
  %235 = load i32, ptr %217, align 4, !tbaa !5
  %236 = call ptr @strerror(i32 noundef %235) #12
  %237 = load i32, ptr %217, align 4, !tbaa !5
  %238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef nonnull %.str.5.sink548, i32 noundef %230, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %232, ptr noundef %234, ptr noundef %236, i32 noundef %237) #14
  call void @exit(i32 noundef 1) #15
  unreachable

239:                                              ; preds = %212
  store i32 0, ptr %186, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %240 = tail call ptr @__errno_location() #13
  store i32 0, ptr %240, align 4, !tbaa !5
  %241 = load i32, ptr @test_count, align 4, !tbaa !5
  %242 = add nsw i32 %241, 1
  store i32 %242, ptr @test_count, align 4, !tbaa !5
  %243 = call i32 @s2n_connection_get_client_hello_version(ptr noundef null) #12
  %244 = icmp eq i32 %243, -1
  br i1 %244, label %267, label %245

245:                                              ; preds = %239
  %246 = load i32, ptr %240, align 4, !tbaa !5
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = call i32 @s2n_print_stacktrace(ptr noundef %247) #12
  %249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %250 = trunc nuw i8 %249 to i1
  br i1 %250, label %251, label %255

251:                                              ; preds = %245
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = call i32 @fileno(ptr noundef %252) #12
  %254 = call i32 @isatty(i32 noundef %253) #12
  %.not323 = icmp eq i32 %254, 0
  br i1 %.not323, label %255, label %256

255:                                              ; preds = %251, %245
  br label %256

256:                                              ; preds = %251, %255
  %.str.5.sink557 = phi ptr [ @.str.5, %255 ], [ @.str.2, %251 ]
  store i32 %246, ptr %240, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = load i32, ptr @test_count, align 4, !tbaa !5
  %259 = load i32, ptr %186, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror(i32 noundef %259, ptr noundef nonnull @.str.4) #12
  %261 = load i32, ptr %186, align 4, !tbaa !5
  %262 = call ptr @s2n_strerror_debug(i32 noundef %261, ptr noundef nonnull @.str.4) #12
  %263 = load i32, ptr %240, align 4, !tbaa !5
  %264 = call ptr @strerror(i32 noundef %263) #12
  %265 = load i32, ptr %240, align 4, !tbaa !5
  %266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %257, ptr noundef nonnull %.str.5.sink557, i32 noundef %258, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %260, ptr noundef %262, ptr noundef %264, i32 noundef %265) #14
  call void @exit(i32 noundef 1) #15
  unreachable

267:                                              ; preds = %239
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr @test_count, align 4, !tbaa !5
  %270 = load i32, ptr %186, align 4, !tbaa !5
  %271 = icmp eq i32 %270, 402653193
  br i1 %271, label %294, label %272

272:                                              ; preds = %267
  %273 = load i32, ptr %240, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = call i32 @s2n_print_stacktrace(ptr noundef %274) #12
  %276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %277 = trunc nuw i8 %276 to i1
  br i1 %277, label %278, label %282

278:                                              ; preds = %272
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = call i32 @fileno(ptr noundef %279) #12
  %281 = call i32 @isatty(i32 noundef %280) #12
  %.not324 = icmp eq i32 %281, 0
  br i1 %.not324, label %282, label %283

282:                                              ; preds = %278, %272
  br label %283

283:                                              ; preds = %278, %282
  %.str.5.sink566 = phi ptr [ @.str.5, %282 ], [ @.str.2, %278 ]
  store i32 %273, ptr %240, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = load i32, ptr %186, align 4, !tbaa !5
  %287 = call ptr @s2n_strerror(i32 noundef %286, ptr noundef nonnull @.str.4) #12
  %288 = load i32, ptr %186, align 4, !tbaa !5
  %289 = call ptr @s2n_strerror_debug(i32 noundef %288, ptr noundef nonnull @.str.4) #12
  %290 = load i32, ptr %240, align 4, !tbaa !5
  %291 = call ptr @strerror(i32 noundef %290) #12
  %292 = load i32, ptr %240, align 4, !tbaa !5
  %293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %284, ptr noundef nonnull %.str.5.sink566, i32 noundef %285, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %287, ptr noundef %289, ptr noundef %291, i32 noundef %292) #14
  call void @exit(i32 noundef 1) #15
  unreachable

294:                                              ; preds = %267
  %295 = add nsw i32 %268, 2
  store i32 %295, ptr @test_count, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %297 = icmp eq ptr %296, null
  br i1 %297, label %298, label %320

298:                                              ; preds = %294
  %299 = load i32, ptr %240, align 4, !tbaa !5
  %300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %301 = call i32 @s2n_print_stacktrace(ptr noundef %300) #12
  %302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %303 = trunc nuw i8 %302 to i1
  br i1 %303, label %304, label %308

304:                                              ; preds = %298
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = call i32 @fileno(ptr noundef %305) #12
  %307 = call i32 @isatty(i32 noundef %306) #12
  %.not434 = icmp eq i32 %307, 0
  br i1 %.not434, label %308, label %309

308:                                              ; preds = %304, %298
  br label %309

309:                                              ; preds = %304, %308
  %.str.5.sink575 = phi ptr [ @.str.5, %308 ], [ @.str.2, %304 ]
  store i32 %299, ptr %240, align 4, !tbaa !5
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = load i32, ptr @test_count, align 4, !tbaa !5
  %312 = load i32, ptr %186, align 4, !tbaa !5
  %313 = call ptr @s2n_strerror(i32 noundef %312, ptr noundef nonnull @.str.4) #12
  %314 = load i32, ptr %186, align 4, !tbaa !5
  %315 = call ptr @s2n_strerror_debug(i32 noundef %314, ptr noundef nonnull @.str.4) #12
  %316 = load i32, ptr %240, align 4, !tbaa !5
  %317 = call ptr @strerror(i32 noundef %316) #12
  %318 = load i32, ptr %240, align 4, !tbaa !5
  %319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %310, ptr noundef nonnull %.str.5.sink575, i32 noundef %311, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %313, ptr noundef %315, ptr noundef %317, i32 noundef %318) #14
  call void @exit(i32 noundef 1) #15
  unreachable

320:                                              ; preds = %294
  store i32 0, ptr %186, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %240, align 4, !tbaa !5
  %321 = load i32, ptr @test_count, align 4, !tbaa !5
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr @test_count, align 4, !tbaa !5
  %323 = call i32 @s2n_connection_get_server_protocol_version(ptr noundef null) #12
  %324 = icmp eq i32 %323, -1
  br i1 %324, label %347, label %325

325:                                              ; preds = %320
  %326 = load i32, ptr %240, align 4, !tbaa !5
  %327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %328 = call i32 @s2n_print_stacktrace(ptr noundef %327) #12
  %329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %330 = trunc nuw i8 %329 to i1
  br i1 %330, label %331, label %335

331:                                              ; preds = %325
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = call i32 @fileno(ptr noundef %332) #12
  %334 = call i32 @isatty(i32 noundef %333) #12
  %.not325 = icmp eq i32 %334, 0
  br i1 %.not325, label %335, label %336

335:                                              ; preds = %331, %325
  br label %336

336:                                              ; preds = %331, %335
  %.str.5.sink584 = phi ptr [ @.str.5, %335 ], [ @.str.2, %331 ]
  store i32 %326, ptr %240, align 4, !tbaa !5
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = load i32, ptr @test_count, align 4, !tbaa !5
  %339 = load i32, ptr %186, align 4, !tbaa !5
  %340 = call ptr @s2n_strerror(i32 noundef %339, ptr noundef nonnull @.str.4) #12
  %341 = load i32, ptr %186, align 4, !tbaa !5
  %342 = call ptr @s2n_strerror_debug(i32 noundef %341, ptr noundef nonnull @.str.4) #12
  %343 = load i32, ptr %240, align 4, !tbaa !5
  %344 = call ptr @strerror(i32 noundef %343) #12
  %345 = load i32, ptr %240, align 4, !tbaa !5
  %346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %337, ptr noundef nonnull %.str.5.sink584, i32 noundef %338, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %340, ptr noundef %342, ptr noundef %344, i32 noundef %345) #14
  call void @exit(i32 noundef 1) #15
  unreachable

347:                                              ; preds = %320
  %348 = load i32, ptr @test_count, align 4, !tbaa !5
  %349 = add nsw i32 %348, 1
  store i32 %349, ptr @test_count, align 4, !tbaa !5
  %350 = load i32, ptr %186, align 4, !tbaa !5
  %351 = icmp eq i32 %350, 402653193
  br i1 %351, label %374, label %352

352:                                              ; preds = %347
  %353 = load i32, ptr %240, align 4, !tbaa !5
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = call i32 @s2n_print_stacktrace(ptr noundef %354) #12
  %356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %357 = trunc nuw i8 %356 to i1
  br i1 %357, label %358, label %362

358:                                              ; preds = %352
  %359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %360 = call i32 @fileno(ptr noundef %359) #12
  %361 = call i32 @isatty(i32 noundef %360) #12
  %.not326 = icmp eq i32 %361, 0
  br i1 %.not326, label %362, label %363

362:                                              ; preds = %358, %352
  br label %363

363:                                              ; preds = %358, %362
  %.str.5.sink593 = phi ptr [ @.str.5, %362 ], [ @.str.2, %358 ]
  store i32 %353, ptr %240, align 4, !tbaa !5
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = load i32, ptr @test_count, align 4, !tbaa !5
  %366 = load i32, ptr %186, align 4, !tbaa !5
  %367 = call ptr @s2n_strerror(i32 noundef %366, ptr noundef nonnull @.str.4) #12
  %368 = load i32, ptr %186, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror_debug(i32 noundef %368, ptr noundef nonnull @.str.4) #12
  %370 = load i32, ptr %240, align 4, !tbaa !5
  %371 = call ptr @strerror(i32 noundef %370) #12
  %372 = load i32, ptr %240, align 4, !tbaa !5
  %373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %364, ptr noundef nonnull %.str.5.sink593, i32 noundef %365, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %367, ptr noundef %369, ptr noundef %371, i32 noundef %372) #14
  call void @exit(i32 noundef 1) #15
  unreachable

374:                                              ; preds = %347
  %375 = add nsw i32 %348, 2
  store i32 %375, ptr @test_count, align 4, !tbaa !5
  %376 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %377 = icmp eq ptr %376, null
  br i1 %377, label %378, label %400

378:                                              ; preds = %374
  %379 = load i32, ptr %240, align 4, !tbaa !5
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = call i32 @s2n_print_stacktrace(ptr noundef %380) #12
  %382 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %383 = trunc nuw i8 %382 to i1
  br i1 %383, label %384, label %388

384:                                              ; preds = %378
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = call i32 @fileno(ptr noundef %385) #12
  %387 = call i32 @isatty(i32 noundef %386) #12
  %.not433 = icmp eq i32 %387, 0
  br i1 %.not433, label %388, label %389

388:                                              ; preds = %384, %378
  br label %389

389:                                              ; preds = %384, %388
  %.str.5.sink602 = phi ptr [ @.str.5, %388 ], [ @.str.2, %384 ]
  store i32 %379, ptr %240, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = load i32, ptr @test_count, align 4, !tbaa !5
  %392 = load i32, ptr %186, align 4, !tbaa !5
  %393 = call ptr @s2n_strerror(i32 noundef %392, ptr noundef nonnull @.str.4) #12
  %394 = load i32, ptr %186, align 4, !tbaa !5
  %395 = call ptr @s2n_strerror_debug(i32 noundef %394, ptr noundef nonnull @.str.4) #12
  %396 = load i32, ptr %240, align 4, !tbaa !5
  %397 = call ptr @strerror(i32 noundef %396) #12
  %398 = load i32, ptr %240, align 4, !tbaa !5
  %399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %390, ptr noundef nonnull %.str.5.sink602, i32 noundef %391, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %393, ptr noundef %395, ptr noundef %397, i32 noundef %398) #14
  call void @exit(i32 noundef 1) #15
  unreachable

400:                                              ; preds = %374
  store i32 0, ptr %186, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %240, align 4, !tbaa !5
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = add nsw i32 %401, 1
  store i32 %402, ptr @test_count, align 4, !tbaa !5
  %403 = call i32 @s2n_connection_get_actual_protocol_version(ptr noundef null) #12
  %404 = icmp eq i32 %403, -1
  br i1 %404, label %427, label %405

405:                                              ; preds = %400
  %406 = load i32, ptr %240, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = call i32 @s2n_print_stacktrace(ptr noundef %407) #12
  %409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %410 = trunc nuw i8 %409 to i1
  br i1 %410, label %411, label %415

411:                                              ; preds = %405
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = call i32 @fileno(ptr noundef %412) #12
  %414 = call i32 @isatty(i32 noundef %413) #12
  %.not327 = icmp eq i32 %414, 0
  br i1 %.not327, label %415, label %416

415:                                              ; preds = %411, %405
  br label %416

416:                                              ; preds = %411, %415
  %.str.5.sink611 = phi ptr [ @.str.5, %415 ], [ @.str.2, %411 ]
  store i32 %406, ptr %240, align 4, !tbaa !5
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = load i32, ptr %186, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror(i32 noundef %419, ptr noundef nonnull @.str.4) #12
  %421 = load i32, ptr %186, align 4, !tbaa !5
  %422 = call ptr @s2n_strerror_debug(i32 noundef %421, ptr noundef nonnull @.str.4) #12
  %423 = load i32, ptr %240, align 4, !tbaa !5
  %424 = call ptr @strerror(i32 noundef %423) #12
  %425 = load i32, ptr %240, align 4, !tbaa !5
  %426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %417, ptr noundef nonnull %.str.5.sink611, i32 noundef %418, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %420, ptr noundef %422, ptr noundef %424, i32 noundef %425) #14
  call void @exit(i32 noundef 1) #15
  unreachable

427:                                              ; preds = %400
  %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 = load i32, ptr %186, align 4, !tbaa !5
  %431 = icmp eq i32 %430, 402653193
  br i1 %431, label %454, label %432

432:                                              ; preds = %427
  %433 = load i32, ptr %240, align 4, !tbaa !5
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @s2n_print_stacktrace(ptr noundef %434) #12
  %436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %437 = trunc nuw i8 %436 to i1
  br i1 %437, label %438, label %442

438:                                              ; preds = %432
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = call i32 @fileno(ptr noundef %439) #12
  %441 = call i32 @isatty(i32 noundef %440) #12
  %.not328 = icmp eq i32 %441, 0
  br i1 %.not328, label %442, label %443

442:                                              ; preds = %438, %432
  br label %443

443:                                              ; preds = %438, %442
  %.str.5.sink620 = phi ptr [ @.str.5, %442 ], [ @.str.2, %438 ]
  store i32 %433, ptr %240, align 4, !tbaa !5
  %444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = load i32, ptr %186, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror(i32 noundef %446, ptr noundef nonnull @.str.4) #12
  %448 = load i32, ptr %186, align 4, !tbaa !5
  %449 = call ptr @s2n_strerror_debug(i32 noundef %448, ptr noundef nonnull @.str.4) #12
  %450 = load i32, ptr %240, align 4, !tbaa !5
  %451 = call ptr @strerror(i32 noundef %450) #12
  %452 = load i32, ptr %240, align 4, !tbaa !5
  %453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %444, ptr noundef nonnull %.str.5.sink620, i32 noundef %445, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %447, ptr noundef %449, ptr noundef %451, i32 noundef %452) #14
  call void @exit(i32 noundef 1) #15
  unreachable

454:                                              ; preds = %427
  %455 = add nsw i32 %428, 2
  store i32 %455, ptr @test_count, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %457 = icmp eq ptr %456, null
  br i1 %457, label %458, label %480

458:                                              ; preds = %454
  %459 = load i32, ptr %240, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = call i32 @s2n_print_stacktrace(ptr noundef %460) #12
  %462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %463 = trunc nuw i8 %462 to i1
  br i1 %463, label %464, label %468

464:                                              ; preds = %458
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = call i32 @fileno(ptr noundef %465) #12
  %467 = call i32 @isatty(i32 noundef %466) #12
  %.not432 = icmp eq i32 %467, 0
  br i1 %.not432, label %468, label %469

468:                                              ; preds = %464, %458
  br label %469

469:                                              ; preds = %464, %468
  %.str.5.sink629 = phi ptr [ @.str.5, %468 ], [ @.str.2, %464 ]
  store i32 %459, ptr %240, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = load i32, ptr %186, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror(i32 noundef %472, ptr noundef nonnull @.str.4) #12
  %474 = load i32, ptr %186, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror_debug(i32 noundef %474, ptr noundef nonnull @.str.4) #12
  %476 = load i32, ptr %240, align 4, !tbaa !5
  %477 = call ptr @strerror(i32 noundef %476) #12
  %478 = load i32, ptr %240, align 4, !tbaa !5
  %479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %470, ptr noundef nonnull %.str.5.sink629, i32 noundef %471, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %473, ptr noundef %475, ptr noundef %477, i32 noundef %478) #14
  call void @exit(i32 noundef 1) #15
  unreachable

480:                                              ; preds = %454
  store i32 0, ptr %186, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %240, align 4, !tbaa !5
  %481 = getelementptr inbounds i8, ptr %5, i64 1
  %482 = getelementptr inbounds i8, ptr %5, i64 2
  %483 = getelementptr inbounds i8, ptr %5, i64 3
  %484 = getelementptr inbounds i8, ptr %5, i64 8
  br label %.preheader445

.preheader445:                                    ; preds = %480, %489
  %indvars.iv459 = phi i32 [ 33, %480 ], [ %indvars.iv.next460, %489 ]
  %485 = icmp eq i32 %indvars.iv459, 33
  br label %.preheader444

.preheader443:                                    ; preds = %489
  %486 = getelementptr inbounds i8, ptr %12, i64 1
  %487 = getelementptr inbounds i8, ptr %12, i64 8
  br label %.preheader442

.preheader444:                                    ; preds = %.preheader445, %490
  %indvars.iv455 = phi i32 [ 30, %.preheader445 ], [ %indvars.iv.next456, %490 ]
  %488 = trunc nuw nsw i32 %indvars.iv455 to i8
  br label %491

489:                                              ; preds = %490
  %indvars.iv.next460 = add nuw nsw i32 %indvars.iv459, 1
  %exitcond462.not = icmp eq i32 %indvars.iv.next460, 35
  br i1 %exitcond462.not, label %.preheader443, label %.preheader445, !llvm.loop !15

490:                                              ; preds = %1025
  %indvars.iv.next456 = add nuw nsw i32 %indvars.iv455, 1
  %exitcond458.not = icmp eq i32 %indvars.iv.next456, 34
  br i1 %exitcond458.not, label %489, label %.preheader444, !llvm.loop !17

491:                                              ; preds = %.preheader444, %1025
  %indvars.iv = phi i32 [ 30, %.preheader444 ], [ %indvars.iv.next, %1025 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #12
  %492 = call ptr @s2n_config_new() #12
  store ptr %492, ptr %4, align 8, !tbaa !9
  %493 = load i32, ptr @test_count, align 4, !tbaa !5
  %494 = add nsw i32 %493, 1
  store i32 %494, ptr @test_count, align 4, !tbaa !5
  %495 = load ptr, ptr %3, align 8, !tbaa !9
  %496 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %492, ptr noundef %495) #12
  %497 = icmp eq i32 %496, -1
  br i1 %497, label %498, label %520

498:                                              ; preds = %491
  %499 = load i32, ptr %240, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = call i32 @s2n_print_stacktrace(ptr noundef %500) #12
  %502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %503 = trunc nuw i8 %502 to i1
  br i1 %503, label %504, label %508

504:                                              ; preds = %498
  %505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %506 = call i32 @fileno(ptr noundef %505) #12
  %507 = call i32 @isatty(i32 noundef %506) #12
  %.not431 = icmp eq i32 %507, 0
  br i1 %.not431, label %508, label %509

508:                                              ; preds = %504, %498
  br label %509

509:                                              ; preds = %504, %508
  %.str.5.sink638 = phi ptr [ @.str.5, %508 ], [ @.str.2, %504 ]
  store i32 %499, ptr %240, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = load i32, ptr @test_count, align 4, !tbaa !5
  %512 = load i32, ptr %186, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror(i32 noundef %512, ptr noundef nonnull @.str.4) #12
  %514 = load i32, ptr %186, align 4, !tbaa !5
  %515 = call ptr @s2n_strerror_debug(i32 noundef %514, ptr noundef nonnull @.str.4) #12
  %516 = load i32, ptr %240, align 4, !tbaa !5
  %517 = call ptr @strerror(i32 noundef %516) #12
  %518 = load i32, ptr %240, align 4, !tbaa !5
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %510, ptr noundef nonnull %.str.5.sink638, i32 noundef %511, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %513, ptr noundef %515, ptr noundef %517, i32 noundef %518) #14
  call void @exit(i32 noundef 1) #15
  unreachable

520:                                              ; preds = %491
  br i1 %485, label %521, label %549

521:                                              ; preds = %520
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = add nsw i32 %522, 1
  store i32 %523, ptr @test_count, align 4, !tbaa !5
  %524 = load ptr, ptr %4, align 8, !tbaa !9
  %525 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %524, ptr noundef nonnull @.str.18) #12
  %526 = icmp eq i32 %525, -1
  br i1 %526, label %527, label %579

527:                                              ; preds = %521
  %528 = load i32, ptr %240, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = call i32 @s2n_print_stacktrace(ptr noundef %529) #12
  %531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %532 = trunc nuw i8 %531 to i1
  br i1 %532, label %533, label %537

533:                                              ; preds = %527
  %534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %535 = call i32 @fileno(ptr noundef %534) #12
  %536 = call i32 @isatty(i32 noundef %535) #12
  %.not430 = icmp eq i32 %536, 0
  br i1 %.not430, label %537, label %538

537:                                              ; preds = %533, %527
  br label %538

538:                                              ; preds = %533, %537
  %.str.5.sink647 = phi ptr [ @.str.5, %537 ], [ @.str.2, %533 ]
  store i32 %528, ptr %240, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = load i32, ptr %186, align 4, !tbaa !5
  %542 = call ptr @s2n_strerror(i32 noundef %541, ptr noundef nonnull @.str.4) #12
  %543 = load i32, ptr %186, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror_debug(i32 noundef %543, ptr noundef nonnull @.str.4) #12
  %545 = load i32, ptr %240, align 4, !tbaa !5
  %546 = call ptr @strerror(i32 noundef %545) #12
  %547 = load i32, ptr %240, align 4, !tbaa !5
  %548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef nonnull %.str.5.sink647, i32 noundef %540, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %542, ptr noundef %544, ptr noundef %546, i32 noundef %547) #14
  call void @exit(i32 noundef 1) #15
  unreachable

549:                                              ; preds = %520
  %550 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #12
  br i1 %550, label %551, label %1025

551:                                              ; preds = %549
  %552 = load i32, ptr @test_count, align 4, !tbaa !5
  %553 = add nsw i32 %552, 1
  store i32 %553, ptr @test_count, align 4, !tbaa !5
  %554 = load ptr, ptr %4, align 8, !tbaa !9
  %555 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %554, ptr noundef nonnull @.str.20) #12
  %556 = icmp eq i32 %555, -1
  br i1 %556, label %557, label %579

557:                                              ; preds = %551
  %558 = load i32, ptr %240, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = call i32 @s2n_print_stacktrace(ptr noundef %559) #12
  %561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %562 = trunc nuw i8 %561 to i1
  br i1 %562, label %563, label %567

563:                                              ; preds = %557
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = call i32 @fileno(ptr noundef %564) #12
  %566 = call i32 @isatty(i32 noundef %565) #12
  %.not413 = icmp eq i32 %566, 0
  br i1 %.not413, label %567, label %568

567:                                              ; preds = %563, %557
  br label %568

568:                                              ; preds = %563, %567
  %.str.5.sink656 = phi ptr [ @.str.5, %567 ], [ @.str.2, %563 ]
  store i32 %558, ptr %240, align 4, !tbaa !5
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = load i32, ptr %186, align 4, !tbaa !5
  %572 = call ptr @s2n_strerror(i32 noundef %571, ptr noundef nonnull @.str.4) #12
  %573 = load i32, ptr %186, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror_debug(i32 noundef %573, ptr noundef nonnull @.str.4) #12
  %575 = load i32, ptr %240, align 4, !tbaa !5
  %576 = call ptr @strerror(i32 noundef %575) #12
  %577 = load i32, ptr %240, align 4, !tbaa !5
  %578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %569, ptr noundef nonnull %.str.5.sink656, i32 noundef %570, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %572, ptr noundef %574, ptr noundef %576, i32 noundef %577) #14
  call void @exit(i32 noundef 1) #15
  unreachable

579:                                              ; preds = %551, %521
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %5) #12
  store i8 %488, ptr %5, align 4, !tbaa !18
  %580 = trunc nuw nsw i32 %indvars.iv to i8
  store i8 %580, ptr %481, align 1, !tbaa !20
  store i8 2, ptr %482, align 2, !tbaa !21
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %483, i8 0, i64 3, i1 false)
  store i32 0, ptr %484, align 4, !tbaa !22
  %581 = load i32, ptr @test_count, align 4, !tbaa !5
  %582 = add nsw i32 %581, 1
  store i32 %582, ptr @test_count, align 4, !tbaa !5
  %583 = load ptr, ptr %4, align 8, !tbaa !9
  %584 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %583, ptr noundef nonnull @s2n_overwrite_client_hello_cb, ptr noundef nonnull %5) #12
  %585 = icmp eq i32 %584, -1
  br i1 %585, label %586, label %608

586:                                              ; preds = %579
  %587 = load i32, ptr %240, align 4, !tbaa !5
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = call i32 @s2n_print_stacktrace(ptr noundef %588) #12
  %590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %591 = trunc nuw i8 %590 to i1
  br i1 %591, label %592, label %596

592:                                              ; preds = %586
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = call i32 @fileno(ptr noundef %593) #12
  %595 = call i32 @isatty(i32 noundef %594) #12
  %.not429 = icmp eq i32 %595, 0
  br i1 %.not429, label %596, label %597

596:                                              ; preds = %592, %586
  br label %597

597:                                              ; preds = %592, %596
  %.str.5.sink665 = phi ptr [ @.str.5, %596 ], [ @.str.2, %592 ]
  store i32 %587, ptr %240, align 4, !tbaa !5
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = load i32, ptr @test_count, align 4, !tbaa !5
  %600 = load i32, ptr %186, align 4, !tbaa !5
  %601 = call ptr @s2n_strerror(i32 noundef %600, ptr noundef nonnull @.str.4) #12
  %602 = load i32, ptr %186, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror_debug(i32 noundef %602, ptr noundef nonnull @.str.4) #12
  %604 = load i32, ptr %240, align 4, !tbaa !5
  %605 = call ptr @strerror(i32 noundef %604) #12
  %606 = load i32, ptr %240, align 4, !tbaa !5
  %607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %598, ptr noundef nonnull %.str.5.sink665, i32 noundef %599, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %601, ptr noundef %603, ptr noundef %605, i32 noundef %606) #14
  call void @exit(i32 noundef 1) #15
  unreachable

608:                                              ; preds = %579
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #12
  %609 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %609, ptr %6, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr @test_count, align 4, !tbaa !5
  %612 = icmp eq ptr %609, null
  br i1 %612, label %613, label %635

613:                                              ; preds = %608
  %614 = load i32, ptr %240, align 4, !tbaa !5
  %615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %616 = call i32 @s2n_print_stacktrace(ptr noundef %615) #12
  %617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %618 = trunc nuw i8 %617 to i1
  br i1 %618, label %619, label %623

619:                                              ; preds = %613
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = call i32 @fileno(ptr noundef %620) #12
  %622 = call i32 @isatty(i32 noundef %621) #12
  %.not428 = icmp eq i32 %622, 0
  br i1 %.not428, label %623, label %624

623:                                              ; preds = %619, %613
  br label %624

624:                                              ; preds = %619, %623
  %.str.5.sink674 = phi ptr [ @.str.5, %623 ], [ @.str.2, %619 ]
  store i32 %614, ptr %240, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = load i32, ptr %186, align 4, !tbaa !5
  %628 = call ptr @s2n_strerror(i32 noundef %627, ptr noundef nonnull @.str.4) #12
  %629 = load i32, ptr %186, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror_debug(i32 noundef %629, ptr noundef nonnull @.str.4) #12
  %631 = load i32, ptr %240, align 4, !tbaa !5
  %632 = call ptr @strerror(i32 noundef %631) #12
  %633 = load i32, ptr %240, align 4, !tbaa !5
  %634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %625, ptr noundef nonnull %.str.5.sink674, i32 noundef %626, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %628, ptr noundef %630, ptr noundef %632, i32 noundef %633) #14
  call void @exit(i32 noundef 1) #15
  unreachable

635:                                              ; preds = %608
  %636 = add nsw i32 %610, 2
  store i32 %636, ptr @test_count, align 4, !tbaa !5
  %637 = load ptr, ptr %4, align 8, !tbaa !9
  %638 = call i32 @s2n_connection_set_config(ptr noundef nonnull %609, ptr noundef %637) #12
  %639 = icmp eq i32 %638, -1
  br i1 %639, label %640, label %662

640:                                              ; preds = %635
  %641 = load i32, ptr %240, align 4, !tbaa !5
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = call i32 @s2n_print_stacktrace(ptr noundef %642) #12
  %644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %645 = trunc nuw i8 %644 to i1
  br i1 %645, label %646, label %650

646:                                              ; preds = %640
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @fileno(ptr noundef %647) #12
  %649 = call i32 @isatty(i32 noundef %648) #12
  %.not427 = icmp eq i32 %649, 0
  br i1 %.not427, label %650, label %651

650:                                              ; preds = %646, %640
  br label %651

651:                                              ; preds = %646, %650
  %.str.5.sink683 = phi ptr [ @.str.5, %650 ], [ @.str.2, %646 ]
  store i32 %641, ptr %240, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = load i32, ptr %186, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror(i32 noundef %654, ptr noundef nonnull @.str.4) #12
  %656 = load i32, ptr %186, align 4, !tbaa !5
  %657 = call ptr @s2n_strerror_debug(i32 noundef %656, ptr noundef nonnull @.str.4) #12
  %658 = load i32, ptr %240, align 4, !tbaa !5
  %659 = call ptr @strerror(i32 noundef %658) #12
  %660 = load i32, ptr %240, align 4, !tbaa !5
  %661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %652, ptr noundef nonnull %.str.5.sink683, i32 noundef %653, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %655, ptr noundef %657, ptr noundef %659, i32 noundef %660) #14
  call void @exit(i32 noundef 1) #15
  unreachable

662:                                              ; preds = %635
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #12
  %663 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %663, ptr %7, align 8, !tbaa !9
  %664 = load i32, ptr @test_count, align 4, !tbaa !5
  %665 = add nsw i32 %664, 1
  store i32 %665, ptr @test_count, align 4, !tbaa !5
  %666 = icmp eq ptr %663, null
  br i1 %666, label %667, label %689

667:                                              ; preds = %662
  %668 = load i32, ptr %240, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = call i32 @s2n_print_stacktrace(ptr noundef %669) #12
  %671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %672 = trunc nuw i8 %671 to i1
  br i1 %672, label %673, label %677

673:                                              ; preds = %667
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = call i32 @fileno(ptr noundef %674) #12
  %676 = call i32 @isatty(i32 noundef %675) #12
  %.not426 = icmp eq i32 %676, 0
  br i1 %.not426, label %677, label %678

677:                                              ; preds = %673, %667
  br label %678

678:                                              ; preds = %673, %677
  %.str.5.sink692 = phi ptr [ @.str.5, %677 ], [ @.str.2, %673 ]
  store i32 %668, ptr %240, align 4, !tbaa !5
  %679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = load i32, ptr %186, align 4, !tbaa !5
  %682 = call ptr @s2n_strerror(i32 noundef %681, ptr noundef nonnull @.str.4) #12
  %683 = load i32, ptr %186, align 4, !tbaa !5
  %684 = call ptr @s2n_strerror_debug(i32 noundef %683, ptr noundef nonnull @.str.4) #12
  %685 = load i32, ptr %240, align 4, !tbaa !5
  %686 = call ptr @strerror(i32 noundef %685) #12
  %687 = load i32, ptr %240, align 4, !tbaa !5
  %688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %679, ptr noundef nonnull %.str.5.sink692, i32 noundef %680, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %682, ptr noundef %684, ptr noundef %686, i32 noundef %687) #14
  call void @exit(i32 noundef 1) #15
  unreachable

689:                                              ; preds = %662
  %690 = add nsw i32 %664, 2
  store i32 %690, ptr @test_count, align 4, !tbaa !5
  %691 = load ptr, ptr %4, align 8, !tbaa !9
  %692 = call i32 @s2n_connection_set_config(ptr noundef nonnull %663, ptr noundef %691) #12
  %693 = icmp eq i32 %692, -1
  br i1 %693, label %694, label %716

694:                                              ; preds = %689
  %695 = load i32, ptr %240, align 4, !tbaa !5
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = call i32 @s2n_print_stacktrace(ptr noundef %696) #12
  %698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %699 = trunc nuw i8 %698 to i1
  br i1 %699, label %700, label %704

700:                                              ; preds = %694
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = call i32 @fileno(ptr noundef %701) #12
  %703 = call i32 @isatty(i32 noundef %702) #12
  %.not425 = icmp eq i32 %703, 0
  br i1 %.not425, label %704, label %705

704:                                              ; preds = %700, %694
  br label %705

705:                                              ; preds = %700, %704
  %.str.5.sink701 = phi ptr [ @.str.5, %704 ], [ @.str.2, %700 ]
  store i32 %695, ptr %240, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = load i32, ptr %186, align 4, !tbaa !5
  %709 = call ptr @s2n_strerror(i32 noundef %708, ptr noundef nonnull @.str.4) #12
  %710 = load i32, ptr %186, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror_debug(i32 noundef %710, ptr noundef nonnull @.str.4) #12
  %712 = load i32, ptr %240, align 4, !tbaa !5
  %713 = call ptr @strerror(i32 noundef %712) #12
  %714 = load i32, ptr %240, align 4, !tbaa !5
  %715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef nonnull %.str.5.sink701, i32 noundef %707, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %709, ptr noundef %711, ptr noundef %713, i32 noundef %714) #14
  call void @exit(i32 noundef 1) #15
  unreachable

716:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #12
  store i64 0, ptr %8, align 8
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = add nsw i32 %717, 1
  store i32 %718, ptr @test_count, align 4, !tbaa !5
  %719 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %8) #12
  %720 = icmp eq i32 %719, -1
  br i1 %720, label %721, label %743

721:                                              ; preds = %716
  %722 = load i32, ptr %240, align 4, !tbaa !5
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @s2n_print_stacktrace(ptr noundef %723) #12
  %725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %727, label %731

727:                                              ; preds = %721
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @fileno(ptr noundef %728) #12
  %730 = call i32 @isatty(i32 noundef %729) #12
  %.not424 = icmp eq i32 %730, 0
  br i1 %.not424, label %731, label %732

731:                                              ; preds = %727, %721
  br label %732

732:                                              ; preds = %727, %731
  %.str.5.sink710 = phi ptr [ @.str.5, %731 ], [ @.str.2, %727 ]
  store i32 %722, ptr %240, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = load i32, ptr %186, align 4, !tbaa !5
  %736 = call ptr @s2n_strerror(i32 noundef %735, ptr noundef nonnull @.str.4) #12
  %737 = load i32, ptr %186, align 4, !tbaa !5
  %738 = call ptr @s2n_strerror_debug(i32 noundef %737, ptr noundef nonnull @.str.4) #12
  %739 = load i32, ptr %240, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #12
  %741 = load i32, ptr %240, align 4, !tbaa !5
  %742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef nonnull %.str.5.sink710, i32 noundef %734, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %736, ptr noundef %738, ptr noundef %740, i32 noundef %741) #14
  call void @exit(i32 noundef 1) #15
  unreachable

743:                                              ; preds = %716
  %744 = load i32, ptr @test_count, align 4, !tbaa !5
  %745 = add nsw i32 %744, 1
  store i32 %745, ptr @test_count, align 4, !tbaa !5
  %746 = load ptr, ptr %6, align 8, !tbaa !9
  %747 = load ptr, ptr %7, align 8, !tbaa !9
  %748 = call i32 @s2n_connections_set_io_pair(ptr noundef %746, ptr noundef %747, ptr noundef nonnull %8) #12
  %749 = icmp eq i32 %748, -1
  br i1 %749, label %750, label %772

750:                                              ; preds = %743
  %751 = load i32, ptr %240, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @s2n_print_stacktrace(ptr noundef %752) #12
  %754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %755 = trunc nuw i8 %754 to i1
  br i1 %755, label %756, label %760

756:                                              ; preds = %750
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = call i32 @fileno(ptr noundef %757) #12
  %759 = call i32 @isatty(i32 noundef %758) #12
  %.not423 = icmp eq i32 %759, 0
  br i1 %.not423, label %760, label %761

760:                                              ; preds = %756, %750
  br label %761

761:                                              ; preds = %756, %760
  %.str.5.sink719 = phi ptr [ @.str.5, %760 ], [ @.str.2, %756 ]
  store i32 %751, ptr %240, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = load i32, ptr %186, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror(i32 noundef %764, ptr noundef nonnull @.str.4) #12
  %766 = load i32, ptr %186, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror_debug(i32 noundef %766, ptr noundef nonnull @.str.4) #12
  %768 = load i32, ptr %240, align 4, !tbaa !5
  %769 = call ptr @strerror(i32 noundef %768) #12
  %770 = load i32, ptr %240, align 4, !tbaa !5
  %771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef nonnull %.str.5.sink719, i32 noundef %763, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %765, ptr noundef %767, ptr noundef %769, i32 noundef %770) #14
  call void @exit(i32 noundef 1) #15
  unreachable

772:                                              ; preds = %743
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr @test_count, align 4, !tbaa !5
  %775 = load ptr, ptr %7, align 8, !tbaa !9
  %776 = load ptr, ptr %6, align 8, !tbaa !9
  %777 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %775, ptr noundef %776, i32 noundef 1) #12
  %778 = call zeroext i1 @s2n_result_is_ok(i32 %777)
  br i1 %778, label %801, label %779

779:                                              ; preds = %772
  %780 = load i32, ptr %240, align 4, !tbaa !5
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = call i32 @s2n_print_stacktrace(ptr noundef %781) #12
  %783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %784 = trunc nuw i8 %783 to i1
  br i1 %784, label %785, label %789

785:                                              ; preds = %779
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = call i32 @fileno(ptr noundef %786) #12
  %788 = call i32 @isatty(i32 noundef %787) #12
  %.not414 = icmp eq i32 %788, 0
  br i1 %.not414, label %789, label %790

789:                                              ; preds = %785, %779
  br label %790

790:                                              ; preds = %785, %789
  %.str.5.sink728 = phi ptr [ @.str.5, %789 ], [ @.str.2, %785 ]
  store i32 %780, ptr %240, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = load i32, ptr %186, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror(i32 noundef %793, ptr noundef nonnull @.str.4) #12
  %795 = load i32, ptr %186, align 4, !tbaa !5
  %796 = call ptr @s2n_strerror_debug(i32 noundef %795, ptr noundef nonnull @.str.4) #12
  %797 = load i32, ptr %240, align 4, !tbaa !5
  %798 = call ptr @strerror(i32 noundef %797) #12
  %799 = load i32, ptr %240, align 4, !tbaa !5
  %800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %791, ptr noundef nonnull %.str.5.sink728, i32 noundef %792, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %794, ptr noundef %796, ptr noundef %798, i32 noundef %799) #14
  call void @exit(i32 noundef 1) #15
  unreachable

801:                                              ; preds = %772
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = add nsw i32 %802, 1
  store i32 %803, ptr @test_count, align 4, !tbaa !5
  %804 = load i32, ptr %484, align 4, !tbaa !22
  %805 = icmp eq i32 %804, 1
  br i1 %805, label %828, label %806

806:                                              ; preds = %801
  %807 = load i32, ptr %240, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = call i32 @s2n_print_stacktrace(ptr noundef %808) #12
  %810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %811 = trunc nuw i8 %810 to i1
  br i1 %811, label %812, label %816

812:                                              ; preds = %806
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = call i32 @fileno(ptr noundef %813) #12
  %815 = call i32 @isatty(i32 noundef %814) #12
  %.not415 = icmp eq i32 %815, 0
  br i1 %.not415, label %816, label %817

816:                                              ; preds = %812, %806
  br label %817

817:                                              ; preds = %812, %816
  %.str.5.sink737 = phi ptr [ @.str.5, %816 ], [ @.str.2, %812 ]
  store i32 %807, ptr %240, align 4, !tbaa !5
  %818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %819 = load i32, ptr @test_count, align 4, !tbaa !5
  %820 = load i32, ptr %186, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror(i32 noundef %820, ptr noundef nonnull @.str.4) #12
  %822 = load i32, ptr %186, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror_debug(i32 noundef %822, ptr noundef nonnull @.str.4) #12
  %824 = load i32, ptr %240, align 4, !tbaa !5
  %825 = call ptr @strerror(i32 noundef %824) #12
  %826 = load i32, ptr %240, align 4, !tbaa !5
  %827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %818, ptr noundef nonnull %.str.5.sink737, i32 noundef %819, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %821, ptr noundef %823, ptr noundef %825, i32 noundef %826) #14
  call void @exit(i32 noundef 1) #15
  unreachable

828:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #12
  store i8 0, ptr %9, align 1, !tbaa !11
  %829 = add nsw i32 %802, 2
  store i32 %829, ptr @test_count, align 4, !tbaa !5
  %830 = load ptr, ptr %7, align 8, !tbaa !9
  %831 = getelementptr inbounds i8, ptr %830, i64 2896
  %832 = call i32 @s2n_client_hello_has_extension(ptr noundef nonnull %831, i16 noundef zeroext 43, ptr noundef nonnull %9) #12
  %833 = icmp eq i32 %832, -1
  br i1 %833, label %834, label %856

834:                                              ; preds = %828
  %835 = load i32, ptr %240, align 4, !tbaa !5
  %836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %837 = call i32 @s2n_print_stacktrace(ptr noundef %836) #12
  %838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %839 = trunc nuw i8 %838 to i1
  br i1 %839, label %840, label %844

840:                                              ; preds = %834
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = call i32 @fileno(ptr noundef %841) #12
  %843 = call i32 @isatty(i32 noundef %842) #12
  %.not422 = icmp eq i32 %843, 0
  br i1 %.not422, label %844, label %845

844:                                              ; preds = %840, %834
  br label %845

845:                                              ; preds = %840, %844
  %.str.5.sink746 = phi ptr [ @.str.5, %844 ], [ @.str.2, %840 ]
  store i32 %835, ptr %240, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = load i32, ptr @test_count, align 4, !tbaa !5
  %848 = load i32, ptr %186, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror(i32 noundef %848, ptr noundef nonnull @.str.4) #12
  %850 = load i32, ptr %186, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror_debug(i32 noundef %850, ptr noundef nonnull @.str.4) #12
  %852 = load i32, ptr %240, align 4, !tbaa !5
  %853 = call ptr @strerror(i32 noundef %852) #12
  %854 = load i32, ptr %240, align 4, !tbaa !5
  %855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef nonnull %.str.5.sink746, i32 noundef %847, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %849, ptr noundef %851, ptr noundef %853, i32 noundef %854) #14
  call void @exit(i32 noundef 1) #15
  unreachable

856:                                              ; preds = %828
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = load i8, ptr %9, align 1, !tbaa !11, !range !13, !noundef !14
  %860 = trunc nuw i8 %859 to i1
  br i1 %860, label %883, label %861

861:                                              ; preds = %856
  %862 = load i32, ptr %240, align 4, !tbaa !5
  %863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %864 = call i32 @s2n_print_stacktrace(ptr noundef %863) #12
  %865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %866 = trunc nuw i8 %865 to i1
  br i1 %866, label %867, label %871

867:                                              ; preds = %861
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @fileno(ptr noundef %868) #12
  %870 = call i32 @isatty(i32 noundef %869) #12
  %.not416 = icmp eq i32 %870, 0
  br i1 %.not416, label %871, label %872

871:                                              ; preds = %867, %861
  br label %872

872:                                              ; preds = %867, %871
  %.str.5.sink755 = phi ptr [ @.str.5, %871 ], [ @.str.2, %867 ]
  store i32 %862, ptr %240, align 4, !tbaa !5
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = load i32, ptr @test_count, align 4, !tbaa !5
  %875 = load i32, ptr %186, align 4, !tbaa !5
  %876 = call ptr @s2n_strerror(i32 noundef %875, ptr noundef nonnull @.str.4) #12
  %877 = load i32, ptr %186, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror_debug(i32 noundef %877, ptr noundef nonnull @.str.4) #12
  %879 = load i32, ptr %240, align 4, !tbaa !5
  %880 = call ptr @strerror(i32 noundef %879) #12
  %881 = load i32, ptr %240, align 4, !tbaa !5
  %882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %873, ptr noundef nonnull %.str.5.sink755, i32 noundef %874, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %876, ptr noundef %878, ptr noundef %880, i32 noundef %881) #14
  call void @exit(i32 noundef 1) #15
  unreachable

883:                                              ; preds = %856
  %884 = add nsw i32 %857, 2
  store i32 %884, ptr @test_count, align 4, !tbaa !5
  %885 = load ptr, ptr %7, align 8, !tbaa !9
  %886 = call i32 @s2n_connection_get_server_protocol_version(ptr noundef %885) #12
  %887 = icmp eq i32 %886, %indvars.iv459
  br i1 %887, label %910, label %888

888:                                              ; preds = %883
  %889 = load i32, ptr %240, align 4, !tbaa !5
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = call i32 @s2n_print_stacktrace(ptr noundef %890) #12
  %892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %893 = trunc nuw i8 %892 to i1
  br i1 %893, label %894, label %898

894:                                              ; preds = %888
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = call i32 @fileno(ptr noundef %895) #12
  %897 = call i32 @isatty(i32 noundef %896) #12
  %.not417 = icmp eq i32 %897, 0
  br i1 %.not417, label %898, label %899

898:                                              ; preds = %894, %888
  br label %899

899:                                              ; preds = %894, %898
  %.str.5.sink764 = phi ptr [ @.str.5, %898 ], [ @.str.2, %894 ]
  store i32 %889, ptr %240, align 4, !tbaa !5
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = load i32, ptr @test_count, align 4, !tbaa !5
  %902 = load i32, ptr %186, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror(i32 noundef %902, ptr noundef nonnull @.str.4) #12
  %904 = load i32, ptr %186, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror_debug(i32 noundef %904, ptr noundef nonnull @.str.4) #12
  %906 = load i32, ptr %240, align 4, !tbaa !5
  %907 = call ptr @strerror(i32 noundef %906) #12
  %908 = load i32, ptr %240, align 4, !tbaa !5
  %909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %900, ptr noundef nonnull %.str.5.sink764, i32 noundef %901, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %903, ptr noundef %905, ptr noundef %907, i32 noundef %908) #14
  call void @exit(i32 noundef 1) #15
  unreachable

910:                                              ; preds = %883
  %911 = load i32, ptr @test_count, align 4, !tbaa !5
  %912 = add nsw i32 %911, 1
  store i32 %912, ptr @test_count, align 4, !tbaa !5
  %913 = load ptr, ptr %7, align 8, !tbaa !9
  %914 = call i32 @s2n_connection_get_client_hello_version(ptr noundef %913) #12
  %915 = icmp eq i32 %914, %indvars.iv455
  br i1 %915, label %938, label %916

916:                                              ; preds = %910
  %917 = load i32, ptr %240, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @s2n_print_stacktrace(ptr noundef %918) #12
  %920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %921 = trunc nuw i8 %920 to i1
  br i1 %921, label %922, label %926

922:                                              ; preds = %916
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = call i32 @fileno(ptr noundef %923) #12
  %925 = call i32 @isatty(i32 noundef %924) #12
  %.not418 = icmp eq i32 %925, 0
  br i1 %.not418, label %926, label %927

926:                                              ; preds = %922, %916
  br label %927

927:                                              ; preds = %922, %926
  %.str.5.sink773 = phi ptr [ @.str.5, %926 ], [ @.str.2, %922 ]
  store i32 %917, ptr %240, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = load i32, ptr @test_count, align 4, !tbaa !5
  %930 = load i32, ptr %186, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror(i32 noundef %930, ptr noundef nonnull @.str.4) #12
  %932 = load i32, ptr %186, align 4, !tbaa !5
  %933 = call ptr @s2n_strerror_debug(i32 noundef %932, ptr noundef nonnull @.str.4) #12
  %934 = load i32, ptr %240, align 4, !tbaa !5
  %935 = call ptr @strerror(i32 noundef %934) #12
  %936 = load i32, ptr %240, align 4, !tbaa !5
  %937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %928, ptr noundef nonnull %.str.5.sink773, i32 noundef %929, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %931, ptr noundef %933, ptr noundef %935, i32 noundef %936) #14
  call void @exit(i32 noundef 1) #15
  unreachable

938:                                              ; preds = %910
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = add nsw i32 %939, 1
  store i32 %940, ptr @test_count, align 4, !tbaa !5
  %941 = load ptr, ptr %7, align 8, !tbaa !9
  %942 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %941) #12
  %943 = icmp eq i32 %942, %indvars.iv
  br i1 %943, label %966, label %944

944:                                              ; preds = %938
  %945 = load i32, ptr %240, align 4, !tbaa !5
  %946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %947 = call i32 @s2n_print_stacktrace(ptr noundef %946) #12
  %948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %949 = trunc nuw i8 %948 to i1
  br i1 %949, label %950, label %954

950:                                              ; preds = %944
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = call i32 @fileno(ptr noundef %951) #12
  %953 = call i32 @isatty(i32 noundef %952) #12
  %.not419 = icmp eq i32 %953, 0
  br i1 %.not419, label %954, label %955

954:                                              ; preds = %950, %944
  br label %955

955:                                              ; preds = %950, %954
  %.str.5.sink782 = phi ptr [ @.str.5, %954 ], [ @.str.2, %950 ]
  store i32 %945, ptr %240, align 4, !tbaa !5
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = load i32, ptr @test_count, align 4, !tbaa !5
  %958 = load i32, ptr %186, align 4, !tbaa !5
  %959 = call ptr @s2n_strerror(i32 noundef %958, ptr noundef nonnull @.str.4) #12
  %960 = load i32, ptr %186, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror_debug(i32 noundef %960, ptr noundef nonnull @.str.4) #12
  %962 = load i32, ptr %240, align 4, !tbaa !5
  %963 = call ptr @strerror(i32 noundef %962) #12
  %964 = load i32, ptr %240, align 4, !tbaa !5
  %965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %956, ptr noundef nonnull %.str.5.sink782, i32 noundef %957, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %959, ptr noundef %961, ptr noundef %963, i32 noundef %964) #14
  call void @exit(i32 noundef 1) #15
  unreachable

966:                                              ; preds = %938
  %967 = load ptr, ptr %7, align 8, !tbaa !9
  %968 = call i32 @s2n_connection_get_actual_protocol_version(ptr noundef %967) #12
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = add nsw i32 %969, 1
  store i32 %970, ptr @test_count, align 4, !tbaa !5
  %971 = and i32 %968, 255
  br i1 %485, label %972, label %996

972:                                              ; preds = %966
  %973 = icmp eq i32 %indvars.iv455, %971
  br i1 %973, label %1021, label %974

974:                                              ; preds = %972
  %975 = load i32, ptr %240, align 4, !tbaa !5
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = call i32 @s2n_print_stacktrace(ptr noundef %976) #12
  %978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %979 = trunc nuw i8 %978 to i1
  br i1 %979, label %980, label %984

980:                                              ; preds = %974
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = call i32 @fileno(ptr noundef %981) #12
  %983 = call i32 @isatty(i32 noundef %982) #12
  %.not421 = icmp eq i32 %983, 0
  br i1 %.not421, label %984, label %985

984:                                              ; preds = %980, %974
  br label %985

985:                                              ; preds = %980, %984
  %.str.5.sink791 = phi ptr [ @.str.5, %984 ], [ @.str.2, %980 ]
  store i32 %975, ptr %240, align 4, !tbaa !5
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = load i32, ptr @test_count, align 4, !tbaa !5
  %988 = load i32, ptr %186, align 4, !tbaa !5
  %989 = call ptr @s2n_strerror(i32 noundef %988, ptr noundef nonnull @.str.4) #12
  %990 = load i32, ptr %186, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror_debug(i32 noundef %990, ptr noundef nonnull @.str.4) #12
  %992 = load i32, ptr %240, align 4, !tbaa !5
  %993 = call ptr @strerror(i32 noundef %992) #12
  %994 = load i32, ptr %240, align 4, !tbaa !5
  %995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %986, ptr noundef nonnull %.str.5.sink791, i32 noundef %987, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %989, ptr noundef %991, ptr noundef %993, i32 noundef %994) #14
  call void @exit(i32 noundef 1) #15
  unreachable

996:                                              ; preds = %966
  %997 = call i32 @llvm.umin.i32(i32 %indvars.iv459, i32 %indvars.iv)
  %998 = icmp eq i32 %971, %997
  br i1 %998, label %1021, label %999

999:                                              ; preds = %996
  %1000 = load i32, ptr %240, align 4, !tbaa !5
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = call i32 @s2n_print_stacktrace(ptr noundef %1001) #12
  %1003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1004 = trunc nuw i8 %1003 to i1
  br i1 %1004, label %1005, label %1009

1005:                                             ; preds = %999
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = call i32 @fileno(ptr noundef %1006) #12
  %1008 = call i32 @isatty(i32 noundef %1007) #12
  %.not420 = icmp eq i32 %1008, 0
  br i1 %.not420, label %1009, label %1010

1009:                                             ; preds = %1005, %999
  br label %1010

1010:                                             ; preds = %1005, %1009
  %.str.5.sink800 = phi ptr [ @.str.5, %1009 ], [ @.str.2, %1005 ]
  store i32 %1000, ptr %240, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = load i32, ptr @test_count, align 4, !tbaa !5
  %1013 = load i32, ptr %186, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror(i32 noundef %1013, ptr noundef nonnull @.str.4) #12
  %1015 = load i32, ptr %186, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror_debug(i32 noundef %1015, ptr noundef nonnull @.str.4) #12
  %1017 = load i32, ptr %240, align 4, !tbaa !5
  %1018 = call ptr @strerror(i32 noundef %1017) #12
  %1019 = load i32, ptr %240, align 4, !tbaa !5
  %1020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1011, ptr noundef nonnull %.str.5.sink800, i32 noundef %1012, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1014, ptr noundef %1016, ptr noundef %1018, i32 noundef %1019) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1021:                                             ; preds = %996, %972
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #12
  %1022 = call i32 @s2n_io_pair_close(ptr noundef nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  %1023 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #12
  %1024 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %5) #12
  br label %1025

1025:                                             ; preds = %549, %1021
  %1026 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #12
  %indvars.iv.next = add nuw nsw i32 %indvars.iv, 1
  %exitcond.not = icmp eq i32 %indvars.iv.next, 35
  br i1 %exitcond.not, label %490, label %491, !llvm.loop !23

.preheader442:                                    ; preds = %.preheader443, %1028
  %indvars.iv467 = phi i32 [ 33, %.preheader443 ], [ %indvars.iv.next468, %1028 ]
  %1027 = icmp eq i32 %indvars.iv467, 33
  br label %1029

1028:                                             ; preds = %1564
  %indvars.iv.next468 = add nuw nsw i32 %indvars.iv467, 1
  %exitcond470.not = icmp eq i32 %indvars.iv.next468, 35
  br i1 %exitcond470.not, label %.preheader441, label %.preheader442, !llvm.loop !24

1029:                                             ; preds = %.preheader442, %1564
  %indvars.iv463 = phi i32 [ 30, %.preheader442 ], [ %indvars.iv.next464, %1564 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  %1030 = call ptr @s2n_config_new() #12
  store ptr %1030, ptr %10, align 8, !tbaa !9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = add nsw i32 %1031, 1
  store i32 %1032, ptr @test_count, align 4, !tbaa !5
  %1033 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1030, ptr noundef nonnull @.str.18) #12
  %1034 = icmp eq i32 %1033, -1
  br i1 %1034, label %1035, label %1057

1035:                                             ; preds = %1029
  %1036 = load i32, ptr %240, align 4, !tbaa !5
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = call i32 @s2n_print_stacktrace(ptr noundef %1037) #12
  %1039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1040 = trunc nuw i8 %1039 to i1
  br i1 %1040, label %1041, label %1045

1041:                                             ; preds = %1035
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = call i32 @fileno(ptr noundef %1042) #12
  %1044 = call i32 @isatty(i32 noundef %1043) #12
  %.not412 = icmp eq i32 %1044, 0
  br i1 %.not412, label %1045, label %1046

1045:                                             ; preds = %1041, %1035
  br label %1046

1046:                                             ; preds = %1041, %1045
  %.str.5.sink809 = phi ptr [ @.str.5, %1045 ], [ @.str.2, %1041 ]
  store i32 %1036, ptr %240, align 4, !tbaa !5
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = load i32, ptr @test_count, align 4, !tbaa !5
  %1049 = load i32, ptr %186, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror(i32 noundef %1049, ptr noundef nonnull @.str.4) #12
  %1051 = load i32, ptr %186, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror_debug(i32 noundef %1051, ptr noundef nonnull @.str.4) #12
  %1053 = load i32, ptr %240, align 4, !tbaa !5
  %1054 = call ptr @strerror(i32 noundef %1053) #12
  %1055 = load i32, ptr %240, align 4, !tbaa !5
  %1056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1047, ptr noundef nonnull %.str.5.sink809, i32 noundef %1048, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1050, ptr noundef %1052, ptr noundef %1054, i32 noundef %1055) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1057:                                             ; preds = %1029
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %1058 = call ptr @s2n_config_new() #12
  store ptr %1058, ptr %11, align 8, !tbaa !9
  %1059 = load i32, ptr @test_count, align 4, !tbaa !5
  %1060 = add nsw i32 %1059, 1
  store i32 %1060, ptr @test_count, align 4, !tbaa !5
  %1061 = load ptr, ptr %3, align 8, !tbaa !9
  %1062 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1058, ptr noundef %1061) #12
  %1063 = icmp eq i32 %1062, -1
  br i1 %1063, label %1064, label %1086

1064:                                             ; preds = %1057
  %1065 = load i32, ptr %240, align 4, !tbaa !5
  %1066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1067 = call i32 @s2n_print_stacktrace(ptr noundef %1066) #12
  %1068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1069 = trunc nuw i8 %1068 to i1
  br i1 %1069, label %1070, label %1074

1070:                                             ; preds = %1064
  %1071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1072 = call i32 @fileno(ptr noundef %1071) #12
  %1073 = call i32 @isatty(i32 noundef %1072) #12
  %.not411 = icmp eq i32 %1073, 0
  br i1 %.not411, label %1074, label %1075

1074:                                             ; preds = %1070, %1064
  br label %1075

1075:                                             ; preds = %1070, %1074
  %.str.5.sink818 = phi ptr [ @.str.5, %1074 ], [ @.str.2, %1070 ]
  store i32 %1065, ptr %240, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = load i32, ptr @test_count, align 4, !tbaa !5
  %1078 = load i32, ptr %186, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror(i32 noundef %1078, ptr noundef nonnull @.str.4) #12
  %1080 = load i32, ptr %186, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror_debug(i32 noundef %1080, ptr noundef nonnull @.str.4) #12
  %1082 = load i32, ptr %240, align 4, !tbaa !5
  %1083 = call ptr @strerror(i32 noundef %1082) #12
  %1084 = load i32, ptr %240, align 4, !tbaa !5
  %1085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1076, ptr noundef nonnull %.str.5.sink818, i32 noundef %1077, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %1079, ptr noundef %1081, ptr noundef %1083, i32 noundef %1084) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1086:                                             ; preds = %1057
  br i1 %1027, label %1087, label %1115

1087:                                             ; preds = %1086
  %1088 = load i32, ptr @test_count, align 4, !tbaa !5
  %1089 = add nsw i32 %1088, 1
  store i32 %1089, ptr @test_count, align 4, !tbaa !5
  %1090 = load ptr, ptr %11, align 8, !tbaa !9
  %1091 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1090, ptr noundef nonnull @.str.18) #12
  %1092 = icmp eq i32 %1091, -1
  br i1 %1092, label %1093, label %1145

1093:                                             ; preds = %1087
  %1094 = load i32, ptr %240, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = call i32 @s2n_print_stacktrace(ptr noundef %1095) #12
  %1097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1098 = trunc nuw i8 %1097 to i1
  br i1 %1098, label %1099, label %1103

1099:                                             ; preds = %1093
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @fileno(ptr noundef %1100) #12
  %1102 = call i32 @isatty(i32 noundef %1101) #12
  %.not410 = icmp eq i32 %1102, 0
  br i1 %.not410, label %1103, label %1104

1103:                                             ; preds = %1099, %1093
  br label %1104

1104:                                             ; preds = %1099, %1103
  %.str.5.sink827 = phi ptr [ @.str.5, %1103 ], [ @.str.2, %1099 ]
  store i32 %1094, ptr %240, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = load i32, ptr %186, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror(i32 noundef %1107, ptr noundef nonnull @.str.4) #12
  %1109 = load i32, ptr %186, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror_debug(i32 noundef %1109, ptr noundef nonnull @.str.4) #12
  %1111 = load i32, ptr %240, align 4, !tbaa !5
  %1112 = call ptr @strerror(i32 noundef %1111) #12
  %1113 = load i32, ptr %240, align 4, !tbaa !5
  %1114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef nonnull %.str.5.sink827, i32 noundef %1106, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1108, ptr noundef %1110, ptr noundef %1112, i32 noundef %1113) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1115:                                             ; preds = %1086
  %1116 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #12
  br i1 %1116, label %1117, label %1564

1117:                                             ; preds = %1115
  %1118 = load i32, ptr @test_count, align 4, !tbaa !5
  %1119 = add nsw i32 %1118, 1
  store i32 %1119, ptr @test_count, align 4, !tbaa !5
  %1120 = load ptr, ptr %11, align 8, !tbaa !9
  %1121 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1120, ptr noundef nonnull @.str.20) #12
  %1122 = icmp eq i32 %1121, -1
  br i1 %1122, label %1123, label %1145

1123:                                             ; preds = %1117
  %1124 = load i32, ptr %240, 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 = %1123
  %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
  %.not394 = icmp eq i32 %1132, 0
  br i1 %.not394, label %1133, label %1134

1133:                                             ; preds = %1129, %1123
  br label %1134

1134:                                             ; preds = %1129, %1133
  %.str.5.sink836 = phi ptr [ @.str.5, %1133 ], [ @.str.2, %1129 ]
  store i32 %1124, ptr %240, 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 %186, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror(i32 noundef %1137, ptr noundef nonnull @.str.4) #12
  %1139 = load i32, ptr %186, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef nonnull @.str.4) #12
  %1141 = load i32, ptr %240, align 4, !tbaa !5
  %1142 = call ptr @strerror(i32 noundef %1141) #12
  %1143 = load i32, ptr %240, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef nonnull %.str.5.sink836, i32 noundef %1136, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %1138, ptr noundef %1140, ptr noundef %1142, i32 noundef %1143) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1145:                                             ; preds = %1117, %1087
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %12) #12
  %1146 = trunc nuw nsw i32 %indvars.iv463 to i8
  store i8 %1146, ptr %12, align 4, !tbaa !18
  store i32 0, ptr %487, align 4, !tbaa !22
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %486, i8 0, i64 5, i1 false)
  %1147 = load i32, ptr @test_count, align 4, !tbaa !5
  %1148 = add nsw i32 %1147, 1
  store i32 %1148, ptr @test_count, align 4, !tbaa !5
  %1149 = load ptr, ptr %11, align 8, !tbaa !9
  %1150 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %1149, ptr noundef nonnull @s2n_overwrite_client_hello_cb, ptr noundef nonnull %12) #12
  %1151 = icmp eq i32 %1150, -1
  br i1 %1151, label %1152, label %1174

1152:                                             ; preds = %1145
  %1153 = load i32, ptr %240, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = call i32 @s2n_print_stacktrace(ptr noundef %1154) #12
  %1156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1157 = trunc nuw i8 %1156 to i1
  br i1 %1157, label %1158, label %1162

1158:                                             ; preds = %1152
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @fileno(ptr noundef %1159) #12
  %1161 = call i32 @isatty(i32 noundef %1160) #12
  %.not409 = icmp eq i32 %1161, 0
  br i1 %.not409, label %1162, label %1163

1162:                                             ; preds = %1158, %1152
  br label %1163

1163:                                             ; preds = %1158, %1162
  %.str.5.sink845 = phi ptr [ @.str.5, %1162 ], [ @.str.2, %1158 ]
  store i32 %1153, ptr %240, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = load i32, ptr %186, align 4, !tbaa !5
  %1167 = call ptr @s2n_strerror(i32 noundef %1166, ptr noundef nonnull @.str.4) #12
  %1168 = load i32, ptr %186, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror_debug(i32 noundef %1168, ptr noundef nonnull @.str.4) #12
  %1170 = load i32, ptr %240, align 4, !tbaa !5
  %1171 = call ptr @strerror(i32 noundef %1170) #12
  %1172 = load i32, ptr %240, align 4, !tbaa !5
  %1173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef nonnull %.str.5.sink845, i32 noundef %1165, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1167, ptr noundef %1169, ptr noundef %1171, i32 noundef %1172) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1174:                                             ; preds = %1145
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  %1175 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1175, ptr %13, align 8, !tbaa !9
  %1176 = load i32, ptr @test_count, align 4, !tbaa !5
  %1177 = add nsw i32 %1176, 1
  store i32 %1177, ptr @test_count, align 4, !tbaa !5
  %1178 = icmp eq ptr %1175, null
  br i1 %1178, label %1179, label %1201

1179:                                             ; preds = %1174
  %1180 = load i32, ptr %240, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = call i32 @s2n_print_stacktrace(ptr noundef %1181) #12
  %1183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1184 = trunc nuw i8 %1183 to i1
  br i1 %1184, label %1185, label %1189

1185:                                             ; preds = %1179
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = call i32 @fileno(ptr noundef %1186) #12
  %1188 = call i32 @isatty(i32 noundef %1187) #12
  %.not408 = icmp eq i32 %1188, 0
  br i1 %.not408, label %1189, label %1190

1189:                                             ; preds = %1185, %1179
  br label %1190

1190:                                             ; preds = %1185, %1189
  %.str.5.sink854 = phi ptr [ @.str.5, %1189 ], [ @.str.2, %1185 ]
  store i32 %1180, ptr %240, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = load i32, ptr %186, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror(i32 noundef %1193, ptr noundef nonnull @.str.4) #12
  %1195 = load i32, ptr %186, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror_debug(i32 noundef %1195, ptr noundef nonnull @.str.4) #12
  %1197 = load i32, ptr %240, align 4, !tbaa !5
  %1198 = call ptr @strerror(i32 noundef %1197) #12
  %1199 = load i32, ptr %240, align 4, !tbaa !5
  %1200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef nonnull %.str.5.sink854, i32 noundef %1192, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1194, ptr noundef %1196, ptr noundef %1198, i32 noundef %1199) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1201:                                             ; preds = %1174
  %1202 = add nsw i32 %1176, 2
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = load ptr, ptr %10, align 8, !tbaa !9
  %1204 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1175, ptr noundef %1203) #12
  %1205 = icmp eq i32 %1204, -1
  br i1 %1205, label %1206, label %1228

1206:                                             ; preds = %1201
  %1207 = load i32, ptr %240, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @s2n_print_stacktrace(ptr noundef %1208) #12
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1211 = trunc nuw i8 %1210 to i1
  br i1 %1211, label %1212, label %1216

1212:                                             ; preds = %1206
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @fileno(ptr noundef %1213) #12
  %1215 = call i32 @isatty(i32 noundef %1214) #12
  %.not407 = icmp eq i32 %1215, 0
  br i1 %.not407, label %1216, label %1217

1216:                                             ; preds = %1212, %1206
  br label %1217

1217:                                             ; preds = %1212, %1216
  %.str.5.sink863 = phi ptr [ @.str.5, %1216 ], [ @.str.2, %1212 ]
  store i32 %1207, ptr %240, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = load i32, ptr %186, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef nonnull @.str.4) #12
  %1222 = load i32, ptr %186, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror_debug(i32 noundef %1222, ptr noundef nonnull @.str.4) #12
  %1224 = load i32, ptr %240, align 4, !tbaa !5
  %1225 = call ptr @strerror(i32 noundef %1224) #12
  %1226 = load i32, ptr %240, align 4, !tbaa !5
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef nonnull %.str.5.sink863, i32 noundef %1219, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1221, ptr noundef %1223, ptr noundef %1225, i32 noundef %1226) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1228:                                             ; preds = %1201
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  %1229 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1229, ptr %14, align 8, !tbaa !9
  %1230 = load i32, ptr @test_count, align 4, !tbaa !5
  %1231 = add nsw i32 %1230, 1
  store i32 %1231, ptr @test_count, align 4, !tbaa !5
  %1232 = icmp eq ptr %1229, null
  br i1 %1232, label %1233, label %1255

1233:                                             ; preds = %1228
  %1234 = load i32, ptr %240, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = call i32 @s2n_print_stacktrace(ptr noundef %1235) #12
  %1237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1238 = trunc nuw i8 %1237 to i1
  br i1 %1238, label %1239, label %1243

1239:                                             ; preds = %1233
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @fileno(ptr noundef %1240) #12
  %1242 = call i32 @isatty(i32 noundef %1241) #12
  %.not406 = icmp eq i32 %1242, 0
  br i1 %.not406, label %1243, label %1244

1243:                                             ; preds = %1239, %1233
  br label %1244

1244:                                             ; preds = %1239, %1243
  %.str.5.sink872 = phi ptr [ @.str.5, %1243 ], [ @.str.2, %1239 ]
  store i32 %1234, ptr %240, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = load i32, ptr %186, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror(i32 noundef %1247, ptr noundef nonnull @.str.4) #12
  %1249 = load i32, ptr %186, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror_debug(i32 noundef %1249, ptr noundef nonnull @.str.4) #12
  %1251 = load i32, ptr %240, align 4, !tbaa !5
  %1252 = call ptr @strerror(i32 noundef %1251) #12
  %1253 = load i32, ptr %240, align 4, !tbaa !5
  %1254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef nonnull %.str.5.sink872, i32 noundef %1246, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1248, ptr noundef %1250, ptr noundef %1252, i32 noundef %1253) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1255:                                             ; preds = %1228
  %1256 = add nsw i32 %1230, 2
  store i32 %1256, ptr @test_count, align 4, !tbaa !5
  %1257 = load ptr, ptr %11, align 8, !tbaa !9
  %1258 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1229, ptr noundef %1257) #12
  %1259 = icmp eq i32 %1258, -1
  br i1 %1259, label %1260, label %1282

1260:                                             ; preds = %1255
  %1261 = load i32, ptr %240, align 4, !tbaa !5
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = call i32 @s2n_print_stacktrace(ptr noundef %1262) #12
  %1264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1265 = trunc nuw i8 %1264 to i1
  br i1 %1265, label %1266, label %1270

1266:                                             ; preds = %1260
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = call i32 @fileno(ptr noundef %1267) #12
  %1269 = call i32 @isatty(i32 noundef %1268) #12
  %.not405 = icmp eq i32 %1269, 0
  br i1 %.not405, label %1270, label %1271

1270:                                             ; preds = %1266, %1260
  br label %1271

1271:                                             ; preds = %1266, %1270
  %.str.5.sink881 = phi ptr [ @.str.5, %1270 ], [ @.str.2, %1266 ]
  store i32 %1261, ptr %240, align 4, !tbaa !5
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = load i32, ptr @test_count, align 4, !tbaa !5
  %1274 = load i32, ptr %186, align 4, !tbaa !5
  %1275 = call ptr @s2n_strerror(i32 noundef %1274, ptr noundef nonnull @.str.4) #12
  %1276 = load i32, ptr %186, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror_debug(i32 noundef %1276, ptr noundef nonnull @.str.4) #12
  %1278 = load i32, ptr %240, align 4, !tbaa !5
  %1279 = call ptr @strerror(i32 noundef %1278) #12
  %1280 = load i32, ptr %240, align 4, !tbaa !5
  %1281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1272, ptr noundef nonnull %.str.5.sink881, i32 noundef %1273, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %1275, ptr noundef %1277, ptr noundef %1279, i32 noundef %1280) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1282:                                             ; preds = %1255
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  store i64 0, ptr %15, align 8
  %1283 = load i32, ptr @test_count, align 4, !tbaa !5
  %1284 = add nsw i32 %1283, 1
  store i32 %1284, ptr @test_count, align 4, !tbaa !5
  %1285 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %15) #12
  %1286 = icmp eq i32 %1285, -1
  br i1 %1286, label %1287, label %1309

1287:                                             ; preds = %1282
  %1288 = load i32, ptr %240, align 4, !tbaa !5
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = call i32 @s2n_print_stacktrace(ptr noundef %1289) #12
  %1291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1292 = trunc nuw i8 %1291 to i1
  br i1 %1292, label %1293, label %1297

1293:                                             ; preds = %1287
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = call i32 @fileno(ptr noundef %1294) #12
  %1296 = call i32 @isatty(i32 noundef %1295) #12
  %.not404 = icmp eq i32 %1296, 0
  br i1 %.not404, label %1297, label %1298

1297:                                             ; preds = %1293, %1287
  br label %1298

1298:                                             ; preds = %1293, %1297
  %.str.5.sink890 = phi ptr [ @.str.5, %1297 ], [ @.str.2, %1293 ]
  store i32 %1288, ptr %240, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = load i32, ptr @test_count, align 4, !tbaa !5
  %1301 = load i32, ptr %186, align 4, !tbaa !5
  %1302 = call ptr @s2n_strerror(i32 noundef %1301, ptr noundef nonnull @.str.4) #12
  %1303 = load i32, ptr %186, align 4, !tbaa !5
  %1304 = call ptr @s2n_strerror_debug(i32 noundef %1303, ptr noundef nonnull @.str.4) #12
  %1305 = load i32, ptr %240, align 4, !tbaa !5
  %1306 = call ptr @strerror(i32 noundef %1305) #12
  %1307 = load i32, ptr %240, align 4, !tbaa !5
  %1308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1299, ptr noundef nonnull %.str.5.sink890, i32 noundef %1300, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %1302, ptr noundef %1304, ptr noundef %1306, i32 noundef %1307) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1309:                                             ; preds = %1282
  %1310 = load i32, ptr @test_count, align 4, !tbaa !5
  %1311 = add nsw i32 %1310, 1
  store i32 %1311, ptr @test_count, align 4, !tbaa !5
  %1312 = load ptr, ptr %13, align 8, !tbaa !9
  %1313 = load ptr, ptr %14, align 8, !tbaa !9
  %1314 = call i32 @s2n_connections_set_io_pair(ptr noundef %1312, ptr noundef %1313, ptr noundef nonnull %15) #12
  %1315 = icmp eq i32 %1314, -1
  br i1 %1315, label %1316, label %1338

1316:                                             ; preds = %1309
  %1317 = load i32, ptr %240, align 4, !tbaa !5
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = call i32 @s2n_print_stacktrace(ptr noundef %1318) #12
  %1320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1321 = trunc nuw i8 %1320 to i1
  br i1 %1321, label %1322, label %1326

1322:                                             ; preds = %1316
  %1323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1324 = call i32 @fileno(ptr noundef %1323) #12
  %1325 = call i32 @isatty(i32 noundef %1324) #12
  %.not403 = icmp eq i32 %1325, 0
  br i1 %.not403, label %1326, label %1327

1326:                                             ; preds = %1322, %1316
  br label %1327

1327:                                             ; preds = %1322, %1326
  %.str.5.sink899 = phi ptr [ @.str.5, %1326 ], [ @.str.2, %1322 ]
  store i32 %1317, ptr %240, align 4, !tbaa !5
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = load i32, ptr @test_count, align 4, !tbaa !5
  %1330 = load i32, ptr %186, align 4, !tbaa !5
  %1331 = call ptr @s2n_strerror(i32 noundef %1330, ptr noundef nonnull @.str.4) #12
  %1332 = load i32, ptr %186, align 4, !tbaa !5
  %1333 = call ptr @s2n_strerror_debug(i32 noundef %1332, ptr noundef nonnull @.str.4) #12
  %1334 = load i32, ptr %240, align 4, !tbaa !5
  %1335 = call ptr @strerror(i32 noundef %1334) #12
  %1336 = load i32, ptr %240, align 4, !tbaa !5
  %1337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1328, ptr noundef nonnull %.str.5.sink899, i32 noundef %1329, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %1331, ptr noundef %1333, ptr noundef %1335, i32 noundef %1336) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1338:                                             ; preds = %1309
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = add nsw i32 %1339, 1
  store i32 %1340, ptr @test_count, align 4, !tbaa !5
  %1341 = load ptr, ptr %14, align 8, !tbaa !9
  %1342 = load ptr, ptr %13, align 8, !tbaa !9
  %1343 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %1341, ptr noundef %1342, i32 noundef 1) #12
  %1344 = call zeroext i1 @s2n_result_is_ok(i32 %1343)
  br i1 %1344, label %1367, label %1345

1345:                                             ; preds = %1338
  %1346 = load i32, ptr %240, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = call i32 @s2n_print_stacktrace(ptr noundef %1347) #12
  %1349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1350 = trunc nuw i8 %1349 to i1
  br i1 %1350, label %1351, label %1355

1351:                                             ; preds = %1345
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = call i32 @fileno(ptr noundef %1352) #12
  %1354 = call i32 @isatty(i32 noundef %1353) #12
  %.not395 = icmp eq i32 %1354, 0
  br i1 %.not395, label %1355, label %1356

1355:                                             ; preds = %1351, %1345
  br label %1356

1356:                                             ; preds = %1351, %1355
  %.str.5.sink908 = phi ptr [ @.str.5, %1355 ], [ @.str.2, %1351 ]
  store i32 %1346, ptr %240, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = load i32, ptr %186, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror(i32 noundef %1359, ptr noundef nonnull @.str.4) #12
  %1361 = load i32, ptr %186, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror_debug(i32 noundef %1361, ptr noundef nonnull @.str.4) #12
  %1363 = load i32, ptr %240, align 4, !tbaa !5
  %1364 = call ptr @strerror(i32 noundef %1363) #12
  %1365 = load i32, ptr %240, align 4, !tbaa !5
  %1366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1357, ptr noundef nonnull %.str.5.sink908, i32 noundef %1358, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %1360, ptr noundef %1362, ptr noundef %1364, i32 noundef %1365) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1367:                                             ; preds = %1338
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = add nsw i32 %1368, 1
  store i32 %1369, ptr @test_count, align 4, !tbaa !5
  %1370 = load i32, ptr %487, align 4, !tbaa !22
  %1371 = icmp eq i32 %1370, 1
  br i1 %1371, label %1394, label %1372

1372:                                             ; preds = %1367
  %1373 = load i32, ptr %240, align 4, !tbaa !5
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = call i32 @s2n_print_stacktrace(ptr noundef %1374) #12
  %1376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1377 = trunc nuw i8 %1376 to i1
  br i1 %1377, label %1378, label %1382

1378:                                             ; preds = %1372
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = call i32 @fileno(ptr noundef %1379) #12
  %1381 = call i32 @isatty(i32 noundef %1380) #12
  %.not396 = icmp eq i32 %1381, 0
  br i1 %.not396, label %1382, label %1383

1382:                                             ; preds = %1378, %1372
  br label %1383

1383:                                             ; preds = %1378, %1382
  %.str.5.sink917 = phi ptr [ @.str.5, %1382 ], [ @.str.2, %1378 ]
  store i32 %1373, ptr %240, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = load i32, ptr @test_count, align 4, !tbaa !5
  %1386 = load i32, ptr %186, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror(i32 noundef %1386, ptr noundef nonnull @.str.4) #12
  %1388 = load i32, ptr %186, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror_debug(i32 noundef %1388, ptr noundef nonnull @.str.4) #12
  %1390 = load i32, ptr %240, align 4, !tbaa !5
  %1391 = call ptr @strerror(i32 noundef %1390) #12
  %1392 = load i32, ptr %240, align 4, !tbaa !5
  %1393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1384, ptr noundef nonnull %.str.5.sink917, i32 noundef %1385, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %1387, ptr noundef %1389, ptr noundef %1391, i32 noundef %1392) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1394:                                             ; preds = %1367
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #12
  store i8 0, ptr %16, align 1, !tbaa !11
  %1395 = add nsw i32 %1368, 2
  store i32 %1395, ptr @test_count, align 4, !tbaa !5
  %1396 = load ptr, ptr %14, align 8, !tbaa !9
  %1397 = getelementptr inbounds i8, ptr %1396, i64 2896
  %1398 = call i32 @s2n_client_hello_has_extension(ptr noundef nonnull %1397, i16 noundef zeroext 43, ptr noundef nonnull %16) #12
  %1399 = icmp eq i32 %1398, -1
  br i1 %1399, label %1400, label %1422

1400:                                             ; preds = %1394
  %1401 = load i32, ptr %240, align 4, !tbaa !5
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = call i32 @s2n_print_stacktrace(ptr noundef %1402) #12
  %1404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1405 = trunc nuw i8 %1404 to i1
  br i1 %1405, label %1406, label %1410

1406:                                             ; preds = %1400
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = call i32 @fileno(ptr noundef %1407) #12
  %1409 = call i32 @isatty(i32 noundef %1408) #12
  %.not402 = icmp eq i32 %1409, 0
  br i1 %.not402, label %1410, label %1411

1410:                                             ; preds = %1406, %1400
  br label %1411

1411:                                             ; preds = %1406, %1410
  %.str.5.sink926 = phi ptr [ @.str.5, %1410 ], [ @.str.2, %1406 ]
  store i32 %1401, ptr %240, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = load i32, ptr %186, align 4, !tbaa !5
  %1415 = call ptr @s2n_strerror(i32 noundef %1414, ptr noundef nonnull @.str.4) #12
  %1416 = load i32, ptr %186, align 4, !tbaa !5
  %1417 = call ptr @s2n_strerror_debug(i32 noundef %1416, ptr noundef nonnull @.str.4) #12
  %1418 = load i32, ptr %240, align 4, !tbaa !5
  %1419 = call ptr @strerror(i32 noundef %1418) #12
  %1420 = load i32, ptr %240, align 4, !tbaa !5
  %1421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1412, ptr noundef nonnull %.str.5.sink926, i32 noundef %1413, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %1415, ptr noundef %1417, ptr noundef %1419, i32 noundef %1420) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1422:                                             ; preds = %1394
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = add nsw i32 %1423, 1
  store i32 %1424, ptr @test_count, align 4, !tbaa !5
  %1425 = load i8, ptr %16, align 1, !tbaa !11, !range !13, !noundef !14
  %1426 = trunc nuw i8 %1425 to i1
  br i1 %1426, label %1427, label %1449

1427:                                             ; preds = %1422
  %1428 = load i32, ptr %240, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @s2n_print_stacktrace(ptr noundef %1429) #12
  %1431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1432 = trunc nuw i8 %1431 to i1
  br i1 %1432, label %1433, label %1437

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

1437:                                             ; preds = %1433, %1427
  br label %1438

1438:                                             ; preds = %1433, %1437
  %.str.5.sink935 = phi ptr [ @.str.5, %1437 ], [ @.str.2, %1433 ]
  store i32 %1428, ptr %240, align 4, !tbaa !5
  %1439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1440 = load i32, ptr @test_count, align 4, !tbaa !5
  %1441 = load i32, ptr %186, align 4, !tbaa !5
  %1442 = call ptr @s2n_strerror(i32 noundef %1441, ptr noundef nonnull @.str.4) #12
  %1443 = load i32, ptr %186, align 4, !tbaa !5
  %1444 = call ptr @s2n_strerror_debug(i32 noundef %1443, ptr noundef nonnull @.str.4) #12
  %1445 = load i32, ptr %240, align 4, !tbaa !5
  %1446 = call ptr @strerror(i32 noundef %1445) #12
  %1447 = load i32, ptr %240, align 4, !tbaa !5
  %1448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1439, ptr noundef nonnull %.str.5.sink935, i32 noundef %1440, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %1442, ptr noundef %1444, ptr noundef %1446, i32 noundef %1447) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1449:                                             ; preds = %1422
  %1450 = add nsw i32 %1423, 2
  store i32 %1450, ptr @test_count, align 4, !tbaa !5
  %1451 = load ptr, ptr %14, align 8, !tbaa !9
  %1452 = call i32 @s2n_connection_get_server_protocol_version(ptr noundef %1451) #12
  %1453 = icmp eq i32 %1452, %indvars.iv467
  br i1 %1453, label %1476, label %1454

1454:                                             ; preds = %1449
  %1455 = load i32, ptr %240, align 4, !tbaa !5
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = call i32 @s2n_print_stacktrace(ptr noundef %1456) #12
  %1458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1459 = trunc nuw i8 %1458 to i1
  br i1 %1459, label %1460, label %1464

1460:                                             ; preds = %1454
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = call i32 @fileno(ptr noundef %1461) #12
  %1463 = call i32 @isatty(i32 noundef %1462) #12
  %.not397 = icmp eq i32 %1463, 0
  br i1 %.not397, label %1464, label %1465

1464:                                             ; preds = %1460, %1454
  br label %1465

1465:                                             ; preds = %1460, %1464
  %.str.5.sink944 = phi ptr [ @.str.5, %1464 ], [ @.str.2, %1460 ]
  store i32 %1455, ptr %240, align 4, !tbaa !5
  %1466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1467 = load i32, ptr @test_count, align 4, !tbaa !5
  %1468 = load i32, ptr %186, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror(i32 noundef %1468, ptr noundef nonnull @.str.4) #12
  %1470 = load i32, ptr %186, align 4, !tbaa !5
  %1471 = call ptr @s2n_strerror_debug(i32 noundef %1470, ptr noundef nonnull @.str.4) #12
  %1472 = load i32, ptr %240, align 4, !tbaa !5
  %1473 = call ptr @strerror(i32 noundef %1472) #12
  %1474 = load i32, ptr %240, align 4, !tbaa !5
  %1475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1466, ptr noundef nonnull %.str.5.sink944, i32 noundef %1467, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %1469, ptr noundef %1471, ptr noundef %1473, i32 noundef %1474) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1476:                                             ; preds = %1449
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = add nsw i32 %1477, 1
  store i32 %1478, ptr @test_count, align 4, !tbaa !5
  %1479 = load ptr, ptr %14, align 8, !tbaa !9
  %1480 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %1479) #12
  %1481 = icmp eq i32 %1480, %indvars.iv463
  br i1 %1481, label %1504, label %1482

1482:                                             ; preds = %1476
  %1483 = load i32, ptr %240, align 4, !tbaa !5
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = call i32 @s2n_print_stacktrace(ptr noundef %1484) #12
  %1486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1487 = trunc nuw i8 %1486 to i1
  br i1 %1487, label %1488, label %1492

1488:                                             ; preds = %1482
  %1489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1490 = call i32 @fileno(ptr noundef %1489) #12
  %1491 = call i32 @isatty(i32 noundef %1490) #12
  %.not398 = icmp eq i32 %1491, 0
  br i1 %.not398, label %1492, label %1493

1492:                                             ; preds = %1488, %1482
  br label %1493

1493:                                             ; preds = %1488, %1492
  %.str.5.sink953 = phi ptr [ @.str.5, %1492 ], [ @.str.2, %1488 ]
  store i32 %1483, ptr %240, align 4, !tbaa !5
  %1494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1495 = load i32, ptr @test_count, align 4, !tbaa !5
  %1496 = load i32, ptr %186, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror(i32 noundef %1496, ptr noundef nonnull @.str.4) #12
  %1498 = load i32, ptr %186, align 4, !tbaa !5
  %1499 = call ptr @s2n_strerror_debug(i32 noundef %1498, ptr noundef nonnull @.str.4) #12
  %1500 = load i32, ptr %240, align 4, !tbaa !5
  %1501 = call ptr @strerror(i32 noundef %1500) #12
  %1502 = load i32, ptr %240, align 4, !tbaa !5
  %1503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1494, ptr noundef nonnull %.str.5.sink953, i32 noundef %1495, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1497, ptr noundef %1499, ptr noundef %1501, i32 noundef %1502) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1504:                                             ; preds = %1476
  %1505 = load i32, ptr @test_count, align 4, !tbaa !5
  %1506 = add nsw i32 %1505, 1
  store i32 %1506, ptr @test_count, align 4, !tbaa !5
  %1507 = load ptr, ptr %14, align 8, !tbaa !9
  %1508 = call i32 @s2n_connection_get_client_hello_version(ptr noundef %1507) #12
  %1509 = icmp eq i32 %1508, %indvars.iv463
  br i1 %1509, label %1532, label %1510

1510:                                             ; preds = %1504
  %1511 = load i32, ptr %240, align 4, !tbaa !5
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1513 = call i32 @s2n_print_stacktrace(ptr noundef %1512) #12
  %1514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1515 = trunc nuw i8 %1514 to i1
  br i1 %1515, label %1516, label %1520

1516:                                             ; preds = %1510
  %1517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1518 = call i32 @fileno(ptr noundef %1517) #12
  %1519 = call i32 @isatty(i32 noundef %1518) #12
  %.not399 = icmp eq i32 %1519, 0
  br i1 %.not399, label %1520, label %1521

1520:                                             ; preds = %1516, %1510
  br label %1521

1521:                                             ; preds = %1516, %1520
  %.str.5.sink962 = phi ptr [ @.str.5, %1520 ], [ @.str.2, %1516 ]
  store i32 %1511, ptr %240, align 4, !tbaa !5
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = load i32, ptr @test_count, align 4, !tbaa !5
  %1524 = load i32, ptr %186, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror(i32 noundef %1524, ptr noundef nonnull @.str.4) #12
  %1526 = load i32, ptr %186, align 4, !tbaa !5
  %1527 = call ptr @s2n_strerror_debug(i32 noundef %1526, ptr noundef nonnull @.str.4) #12
  %1528 = load i32, ptr %240, align 4, !tbaa !5
  %1529 = call ptr @strerror(i32 noundef %1528) #12
  %1530 = load i32, ptr %240, align 4, !tbaa !5
  %1531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1522, ptr noundef nonnull %.str.5.sink962, i32 noundef %1523, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1525, ptr noundef %1527, ptr noundef %1529, i32 noundef %1530) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1532:                                             ; preds = %1504
  %1533 = load i32, ptr @test_count, align 4, !tbaa !5
  %1534 = add nsw i32 %1533, 1
  store i32 %1534, ptr @test_count, align 4, !tbaa !5
  %1535 = load ptr, ptr %14, align 8, !tbaa !9
  %1536 = call i32 @s2n_connection_get_actual_protocol_version(ptr noundef %1535) #12
  %1537 = icmp eq i32 %1536, %indvars.iv463
  br i1 %1537, label %1560, label %1538

1538:                                             ; preds = %1532
  %1539 = load i32, ptr %240, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = call i32 @s2n_print_stacktrace(ptr noundef %1540) #12
  %1542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1543 = trunc nuw i8 %1542 to i1
  br i1 %1543, label %1544, label %1548

1544:                                             ; preds = %1538
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = call i32 @fileno(ptr noundef %1545) #12
  %1547 = call i32 @isatty(i32 noundef %1546) #12
  %.not400 = icmp eq i32 %1547, 0
  br i1 %.not400, label %1548, label %1549

1548:                                             ; preds = %1544, %1538
  br label %1549

1549:                                             ; preds = %1544, %1548
  %.str.5.sink971 = phi ptr [ @.str.5, %1548 ], [ @.str.2, %1544 ]
  store i32 %1539, ptr %240, align 4, !tbaa !5
  %1550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1551 = load i32, ptr @test_count, align 4, !tbaa !5
  %1552 = load i32, ptr %186, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror(i32 noundef %1552, ptr noundef nonnull @.str.4) #12
  %1554 = load i32, ptr %186, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror_debug(i32 noundef %1554, ptr noundef nonnull @.str.4) #12
  %1556 = load i32, ptr %240, align 4, !tbaa !5
  %1557 = call ptr @strerror(i32 noundef %1556) #12
  %1558 = load i32, ptr %240, align 4, !tbaa !5
  %1559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1550, ptr noundef nonnull %.str.5.sink971, i32 noundef %1551, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %1553, ptr noundef %1555, ptr noundef %1557, i32 noundef %1558) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1560:                                             ; preds = %1532
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #12
  %1561 = call i32 @s2n_io_pair_close(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  %1562 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  %1563 = 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 12, ptr nonnull %12) #12
  br label %1564

1564:                                             ; preds = %1115, %1560
  %1565 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  %1566 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  %indvars.iv.next464 = add nuw nsw i32 %indvars.iv463, 1
  %exitcond466.not = icmp eq i32 %indvars.iv.next464, 34
  br i1 %exitcond466.not, label %1028, label %1029, !llvm.loop !25

.preheader440:                                    ; preds = %1572, %1940
  %1567 = getelementptr inbounds i8, ptr %22, i64 1
  %1568 = getelementptr inbounds i8, ptr %22, i64 2
  %1569 = getelementptr inbounds i8, ptr %22, i64 3
  %1570 = getelementptr inbounds i8, ptr %22, i64 8
  br label %1949

.preheader441:                                    ; preds = %1028, %1940
  %indvars.iv471 = phi i32 [ %indvars.iv.next472, %1940 ], [ 30, %1028 ]
  %1571 = icmp eq i32 %indvars.iv471, 34
  br i1 %1571, label %1572, label %1574

1572:                                             ; preds = %.preheader441
  %1573 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #12
  br i1 %1573, label %1574, label %.preheader440

1574:                                             ; preds = %1572, %.preheader441
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %1575 = call ptr @s2n_config_new() #12
  store ptr %1575, ptr %17, align 8, !tbaa !9
  %1576 = load i32, ptr @test_count, align 4, !tbaa !5
  %1577 = add nsw i32 %1576, 1
  store i32 %1577, ptr @test_count, align 4, !tbaa !5
  %1578 = load ptr, ptr %3, align 8, !tbaa !9
  %1579 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1575, ptr noundef %1578) #12
  %1580 = icmp eq i32 %1579, -1
  br i1 %1580, label %1581, label %1603

1581:                                             ; preds = %1574
  %1582 = load i32, ptr %240, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = call i32 @s2n_print_stacktrace(ptr noundef %1583) #12
  %1585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1586 = trunc nuw i8 %1585 to i1
  br i1 %1586, label %1587, label %1591

1587:                                             ; preds = %1581
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @fileno(ptr noundef %1588) #12
  %1590 = call i32 @isatty(i32 noundef %1589) #12
  %.not393 = icmp eq i32 %1590, 0
  br i1 %.not393, label %1591, label %1592

1591:                                             ; preds = %1587, %1581
  br label %1592

1592:                                             ; preds = %1587, %1591
  %.str.5.sink980 = phi ptr [ @.str.5, %1591 ], [ @.str.2, %1587 ]
  store i32 %1582, ptr %240, align 4, !tbaa !5
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = load i32, ptr @test_count, align 4, !tbaa !5
  %1595 = load i32, ptr %186, align 4, !tbaa !5
  %1596 = call ptr @s2n_strerror(i32 noundef %1595, ptr noundef nonnull @.str.4) #12
  %1597 = load i32, ptr %186, align 4, !tbaa !5
  %1598 = call ptr @s2n_strerror_debug(i32 noundef %1597, ptr noundef nonnull @.str.4) #12
  %1599 = load i32, ptr %240, align 4, !tbaa !5
  %1600 = call ptr @strerror(i32 noundef %1599) #12
  %1601 = load i32, ptr %240, align 4, !tbaa !5
  %1602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1593, ptr noundef nonnull %.str.5.sink980, i32 noundef %1594, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %1596, ptr noundef %1598, ptr noundef %1600, i32 noundef %1601) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1603:                                             ; preds = %1574
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = add nsw i32 %1604, 1
  store i32 %1605, ptr @test_count, align 4, !tbaa !5
  %1606 = load ptr, ptr %17, align 8, !tbaa !9
  %1607 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1606, ptr noundef nonnull @.str.20) #12
  %1608 = icmp eq i32 %1607, -1
  br i1 %1608, label %1609, label %1631

1609:                                             ; preds = %1603
  %1610 = load i32, ptr %240, align 4, !tbaa !5
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = call i32 @s2n_print_stacktrace(ptr noundef %1611) #12
  %1613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1614 = trunc nuw i8 %1613 to i1
  br i1 %1614, label %1615, label %1619

1615:                                             ; preds = %1609
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = call i32 @fileno(ptr noundef %1616) #12
  %1618 = call i32 @isatty(i32 noundef %1617) #12
  %.not392 = icmp eq i32 %1618, 0
  br i1 %.not392, label %1619, label %1620

1619:                                             ; preds = %1615, %1609
  br label %1620

1620:                                             ; preds = %1615, %1619
  %.str.5.sink989 = phi ptr [ @.str.5, %1619 ], [ @.str.2, %1615 ]
  store i32 %1610, ptr %240, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = load i32, ptr %186, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror(i32 noundef %1623, ptr noundef nonnull @.str.4) #12
  %1625 = load i32, ptr %186, align 4, !tbaa !5
  %1626 = call ptr @s2n_strerror_debug(i32 noundef %1625, ptr noundef nonnull @.str.4) #12
  %1627 = load i32, ptr %240, align 4, !tbaa !5
  %1628 = call ptr @strerror(i32 noundef %1627) #12
  %1629 = load i32, ptr %240, align 4, !tbaa !5
  %1630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1621, ptr noundef nonnull %.str.5.sink989, i32 noundef %1622, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1624, ptr noundef %1626, ptr noundef %1628, i32 noundef %1629) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1631:                                             ; preds = %1603
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %1632 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1632, ptr %18, align 8, !tbaa !9
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = add nsw i32 %1633, 1
  store i32 %1634, ptr @test_count, align 4, !tbaa !5
  %1635 = icmp eq ptr %1632, null
  br i1 %1635, label %1636, label %1658

1636:                                             ; preds = %1631
  %1637 = load i32, ptr %240, align 4, !tbaa !5
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @s2n_print_stacktrace(ptr noundef %1638) #12
  %1640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1641 = trunc nuw i8 %1640 to i1
  br i1 %1641, label %1642, label %1646

1642:                                             ; preds = %1636
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = call i32 @fileno(ptr noundef %1643) #12
  %1645 = call i32 @isatty(i32 noundef %1644) #12
  %.not391 = icmp eq i32 %1645, 0
  br i1 %.not391, label %1646, label %1647

1646:                                             ; preds = %1642, %1636
  br label %1647

1647:                                             ; preds = %1642, %1646
  %.str.5.sink998 = phi ptr [ @.str.5, %1646 ], [ @.str.2, %1642 ]
  store i32 %1637, ptr %240, align 4, !tbaa !5
  %1648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1649 = load i32, ptr @test_count, align 4, !tbaa !5
  %1650 = load i32, ptr %186, align 4, !tbaa !5
  %1651 = call ptr @s2n_strerror(i32 noundef %1650, ptr noundef nonnull @.str.4) #12
  %1652 = load i32, ptr %186, align 4, !tbaa !5
  %1653 = call ptr @s2n_strerror_debug(i32 noundef %1652, ptr noundef nonnull @.str.4) #12
  %1654 = load i32, ptr %240, align 4, !tbaa !5
  %1655 = call ptr @strerror(i32 noundef %1654) #12
  %1656 = load i32, ptr %240, align 4, !tbaa !5
  %1657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1648, ptr noundef nonnull %.str.5.sink998, i32 noundef %1649, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %1651, ptr noundef %1653, ptr noundef %1655, i32 noundef %1656) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1658:                                             ; preds = %1631
  %1659 = add nsw i32 %1633, 2
  store i32 %1659, ptr @test_count, align 4, !tbaa !5
  %1660 = load ptr, ptr %17, align 8, !tbaa !9
  %1661 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1632, ptr noundef %1660) #12
  %1662 = icmp eq i32 %1661, -1
  br i1 %1662, label %1663, label %1685

1663:                                             ; preds = %1658
  %1664 = load i32, ptr %240, align 4, !tbaa !5
  %1665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1666 = call i32 @s2n_print_stacktrace(ptr noundef %1665) #12
  %1667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1668 = trunc nuw i8 %1667 to i1
  br i1 %1668, label %1669, label %1673

1669:                                             ; preds = %1663
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = call i32 @fileno(ptr noundef %1670) #12
  %1672 = call i32 @isatty(i32 noundef %1671) #12
  %.not390 = icmp eq i32 %1672, 0
  br i1 %.not390, label %1673, label %1674

1673:                                             ; preds = %1669, %1663
  br label %1674

1674:                                             ; preds = %1669, %1673
  %.str.5.sink1007 = phi ptr [ @.str.5, %1673 ], [ @.str.2, %1669 ]
  store i32 %1664, ptr %240, align 4, !tbaa !5
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = load i32, ptr @test_count, align 4, !tbaa !5
  %1677 = load i32, ptr %186, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror(i32 noundef %1677, ptr noundef nonnull @.str.4) #12
  %1679 = load i32, ptr %186, align 4, !tbaa !5
  %1680 = call ptr @s2n_strerror_debug(i32 noundef %1679, ptr noundef nonnull @.str.4) #12
  %1681 = load i32, ptr %240, align 4, !tbaa !5
  %1682 = call ptr @strerror(i32 noundef %1681) #12
  %1683 = load i32, ptr %240, align 4, !tbaa !5
  %1684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1675, ptr noundef nonnull %.str.5.sink1007, i32 noundef %1676, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %1678, ptr noundef %1680, ptr noundef %1682, i32 noundef %1683) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1685:                                             ; preds = %1658
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #12
  %1686 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1686, ptr %19, align 8, !tbaa !9
  %1687 = load i32, ptr @test_count, align 4, !tbaa !5
  %1688 = add nsw i32 %1687, 1
  store i32 %1688, ptr @test_count, align 4, !tbaa !5
  %1689 = icmp eq ptr %1686, null
  br i1 %1689, label %1690, label %1712

1690:                                             ; preds = %1685
  %1691 = load i32, ptr %240, align 4, !tbaa !5
  %1692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1693 = call i32 @s2n_print_stacktrace(ptr noundef %1692) #12
  %1694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1695 = trunc nuw i8 %1694 to i1
  br i1 %1695, label %1696, label %1700

1696:                                             ; preds = %1690
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = call i32 @fileno(ptr noundef %1697) #12
  %1699 = call i32 @isatty(i32 noundef %1698) #12
  %.not389 = icmp eq i32 %1699, 0
  br i1 %.not389, label %1700, label %1701

1700:                                             ; preds = %1696, %1690
  br label %1701

1701:                                             ; preds = %1696, %1700
  %.str.5.sink1016 = phi ptr [ @.str.5, %1700 ], [ @.str.2, %1696 ]
  store i32 %1691, ptr %240, align 4, !tbaa !5
  %1702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1703 = load i32, ptr @test_count, align 4, !tbaa !5
  %1704 = load i32, ptr %186, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror(i32 noundef %1704, ptr noundef nonnull @.str.4) #12
  %1706 = load i32, ptr %186, align 4, !tbaa !5
  %1707 = call ptr @s2n_strerror_debug(i32 noundef %1706, ptr noundef nonnull @.str.4) #12
  %1708 = load i32, ptr %240, align 4, !tbaa !5
  %1709 = call ptr @strerror(i32 noundef %1708) #12
  %1710 = load i32, ptr %240, align 4, !tbaa !5
  %1711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1702, ptr noundef nonnull %.str.5.sink1016, i32 noundef %1703, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %1705, ptr noundef %1707, ptr noundef %1709, i32 noundef %1710) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1712:                                             ; preds = %1685
  %1713 = add nsw i32 %1687, 2
  store i32 %1713, ptr @test_count, align 4, !tbaa !5
  %1714 = load ptr, ptr %17, align 8, !tbaa !9
  %1715 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1686, ptr noundef %1714) #12
  %1716 = icmp eq i32 %1715, -1
  br i1 %1716, label %1717, label %1739

1717:                                             ; preds = %1712
  %1718 = load i32, ptr %240, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @s2n_print_stacktrace(ptr noundef %1719) #12
  %1721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1722 = trunc nuw i8 %1721 to i1
  br i1 %1722, label %1723, label %1727

1723:                                             ; preds = %1717
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @fileno(ptr noundef %1724) #12
  %1726 = call i32 @isatty(i32 noundef %1725) #12
  %.not388 = icmp eq i32 %1726, 0
  br i1 %.not388, label %1727, label %1728

1727:                                             ; preds = %1723, %1717
  br label %1728

1728:                                             ; preds = %1723, %1727
  %.str.5.sink1025 = phi ptr [ @.str.5, %1727 ], [ @.str.2, %1723 ]
  store i32 %1718, ptr %240, align 4, !tbaa !5
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = load i32, ptr %186, align 4, !tbaa !5
  %1732 = call ptr @s2n_strerror(i32 noundef %1731, ptr noundef nonnull @.str.4) #12
  %1733 = load i32, ptr %186, align 4, !tbaa !5
  %1734 = call ptr @s2n_strerror_debug(i32 noundef %1733, ptr noundef nonnull @.str.4) #12
  %1735 = load i32, ptr %240, align 4, !tbaa !5
  %1736 = call ptr @strerror(i32 noundef %1735) #12
  %1737 = load i32, ptr %240, align 4, !tbaa !5
  %1738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1729, ptr noundef nonnull %.str.5.sink1025, i32 noundef %1730, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %1732, ptr noundef %1734, ptr noundef %1736, i32 noundef %1737) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1739:                                             ; preds = %1712
  %1740 = load ptr, ptr %19, align 8, !tbaa !9
  %1741 = getelementptr inbounds i8, ptr %1740, i64 219
  %1742 = trunc nuw nsw i32 %indvars.iv471 to i8
  store i8 %1742, ptr %1741, align 1, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #12
  store i64 0, ptr %20, align 8
  %1743 = load i32, ptr @test_count, align 4, !tbaa !5
  %1744 = add nsw i32 %1743, 1
  store i32 %1744, ptr @test_count, align 4, !tbaa !5
  %1745 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %20) #12
  %1746 = icmp eq i32 %1745, -1
  br i1 %1746, label %1747, label %1769

1747:                                             ; preds = %1739
  %1748 = load i32, ptr %240, align 4, !tbaa !5
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = call i32 @s2n_print_stacktrace(ptr noundef %1749) #12
  %1751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1752 = trunc nuw i8 %1751 to i1
  br i1 %1752, label %1753, label %1757

1753:                                             ; preds = %1747
  %1754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1755 = call i32 @fileno(ptr noundef %1754) #12
  %1756 = call i32 @isatty(i32 noundef %1755) #12
  %.not387 = icmp eq i32 %1756, 0
  br i1 %.not387, label %1757, label %1758

1757:                                             ; preds = %1753, %1747
  br label %1758

1758:                                             ; preds = %1753, %1757
  %.str.5.sink1034 = phi ptr [ @.str.5, %1757 ], [ @.str.2, %1753 ]
  store i32 %1748, ptr %240, align 4, !tbaa !5
  %1759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1760 = load i32, ptr @test_count, align 4, !tbaa !5
  %1761 = load i32, ptr %186, align 4, !tbaa !5
  %1762 = call ptr @s2n_strerror(i32 noundef %1761, ptr noundef nonnull @.str.4) #12
  %1763 = load i32, ptr %186, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror_debug(i32 noundef %1763, ptr noundef nonnull @.str.4) #12
  %1765 = load i32, ptr %240, align 4, !tbaa !5
  %1766 = call ptr @strerror(i32 noundef %1765) #12
  %1767 = load i32, ptr %240, align 4, !tbaa !5
  %1768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1759, ptr noundef nonnull %.str.5.sink1034, i32 noundef %1760, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 249, ptr noundef %1762, ptr noundef %1764, ptr noundef %1766, i32 noundef %1767) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1769:                                             ; preds = %1739
  %1770 = load i32, ptr @test_count, align 4, !tbaa !5
  %1771 = add nsw i32 %1770, 1
  store i32 %1771, ptr @test_count, align 4, !tbaa !5
  %1772 = load ptr, ptr %18, align 8, !tbaa !9
  %1773 = load ptr, ptr %19, align 8, !tbaa !9
  %1774 = call i32 @s2n_connections_set_io_pair(ptr noundef %1772, ptr noundef %1773, ptr noundef nonnull %20) #12
  %1775 = icmp eq i32 %1774, -1
  br i1 %1775, label %1776, label %1798

1776:                                             ; preds = %1769
  %1777 = load i32, ptr %240, align 4, !tbaa !5
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = call i32 @s2n_print_stacktrace(ptr noundef %1778) #12
  %1780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1781 = trunc nuw i8 %1780 to i1
  br i1 %1781, label %1782, label %1786

1782:                                             ; preds = %1776
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = call i32 @fileno(ptr noundef %1783) #12
  %1785 = call i32 @isatty(i32 noundef %1784) #12
  %.not386 = icmp eq i32 %1785, 0
  br i1 %.not386, label %1786, label %1787

1786:                                             ; preds = %1782, %1776
  br label %1787

1787:                                             ; preds = %1782, %1786
  %.str.5.sink1043 = phi ptr [ @.str.5, %1786 ], [ @.str.2, %1782 ]
  store i32 %1777, ptr %240, align 4, !tbaa !5
  %1788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1789 = load i32, ptr @test_count, align 4, !tbaa !5
  %1790 = load i32, ptr %186, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror(i32 noundef %1790, ptr noundef nonnull @.str.4) #12
  %1792 = load i32, ptr %186, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef nonnull @.str.4) #12
  %1794 = load i32, ptr %240, align 4, !tbaa !5
  %1795 = call ptr @strerror(i32 noundef %1794) #12
  %1796 = load i32, ptr %240, align 4, !tbaa !5
  %1797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1788, ptr noundef nonnull %.str.5.sink1043, i32 noundef %1789, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %1791, ptr noundef %1793, ptr noundef %1795, i32 noundef %1796) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1798:                                             ; preds = %1769
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %1800 = add nsw i32 %1799, 1
  store i32 %1800, ptr @test_count, align 4, !tbaa !5
  %1801 = load ptr, ptr %19, align 8, !tbaa !9
  %1802 = load ptr, ptr %18, align 8, !tbaa !9
  %1803 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %1801, ptr noundef %1802, i32 noundef 2) #12
  %1804 = call zeroext i1 @s2n_result_is_ok(i32 %1803)
  br i1 %1804, label %1827, label %1805

1805:                                             ; preds = %1798
  %1806 = load i32, ptr %240, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @s2n_print_stacktrace(ptr noundef %1807) #12
  %1809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1810 = trunc nuw i8 %1809 to i1
  br i1 %1810, label %1811, label %1815

1811:                                             ; preds = %1805
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = call i32 @fileno(ptr noundef %1812) #12
  %1814 = call i32 @isatty(i32 noundef %1813) #12
  %.not381 = icmp eq i32 %1814, 0
  br i1 %.not381, label %1815, label %1816

1815:                                             ; preds = %1811, %1805
  br label %1816

1816:                                             ; preds = %1811, %1815
  %.str.5.sink1052 = phi ptr [ @.str.5, %1815 ], [ @.str.2, %1811 ]
  store i32 %1806, ptr %240, align 4, !tbaa !5
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = load i32, ptr @test_count, align 4, !tbaa !5
  %1819 = load i32, ptr %186, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror(i32 noundef %1819, ptr noundef nonnull @.str.4) #12
  %1821 = load i32, ptr %186, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef nonnull @.str.4) #12
  %1823 = load i32, ptr %240, align 4, !tbaa !5
  %1824 = call ptr @strerror(i32 noundef %1823) #12
  %1825 = load i32, ptr %240, align 4, !tbaa !5
  %1826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1817, ptr noundef nonnull %.str.5.sink1052, i32 noundef %1818, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %1820, ptr noundef %1822, ptr noundef %1824, i32 noundef %1825) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1827:                                             ; preds = %1798
  %1828 = load i32, ptr @test_count, align 4, !tbaa !5
  %1829 = add nsw i32 %1828, 1
  store i32 %1829, ptr @test_count, align 4, !tbaa !5
  %1830 = load ptr, ptr %18, align 8, !tbaa !9
  %1831 = call i32 @s2n_connection_get_server_protocol_version(ptr noundef %1830) #12
  %1832 = icmp eq i32 %1831, %indvars.iv471
  br i1 %1832, label %1855, label %1833

1833:                                             ; preds = %1827
  %1834 = load i32, ptr %240, align 4, !tbaa !5
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = call i32 @s2n_print_stacktrace(ptr noundef %1835) #12
  %1837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1838 = trunc nuw i8 %1837 to i1
  br i1 %1838, label %1839, label %1843

1839:                                             ; preds = %1833
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = call i32 @fileno(ptr noundef %1840) #12
  %1842 = call i32 @isatty(i32 noundef %1841) #12
  %.not382 = icmp eq i32 %1842, 0
  br i1 %.not382, label %1843, label %1844

1843:                                             ; preds = %1839, %1833
  br label %1844

1844:                                             ; preds = %1839, %1843
  %.str.5.sink1061 = phi ptr [ @.str.5, %1843 ], [ @.str.2, %1839 ]
  store i32 %1834, ptr %240, align 4, !tbaa !5
  %1845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1846 = load i32, ptr @test_count, align 4, !tbaa !5
  %1847 = load i32, ptr %186, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror(i32 noundef %1847, ptr noundef nonnull @.str.4) #12
  %1849 = load i32, ptr %186, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror_debug(i32 noundef %1849, ptr noundef nonnull @.str.4) #12
  %1851 = load i32, ptr %240, align 4, !tbaa !5
  %1852 = call ptr @strerror(i32 noundef %1851) #12
  %1853 = load i32, ptr %240, align 4, !tbaa !5
  %1854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1845, ptr noundef nonnull %.str.5.sink1061, i32 noundef %1846, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %1848, ptr noundef %1850, ptr noundef %1852, i32 noundef %1853) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1855:                                             ; preds = %1827
  %1856 = load i32, ptr @test_count, align 4, !tbaa !5
  %1857 = add nsw i32 %1856, 1
  store i32 %1857, ptr @test_count, align 4, !tbaa !5
  %1858 = load ptr, ptr %18, align 8, !tbaa !9
  %1859 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %1858) #12
  %1860 = call i32 (...) @s2n_get_highest_fully_supported_tls_version() #12
  %1861 = icmp eq i32 %1859, %1860
  br i1 %1861, label %1884, label %1862

1862:                                             ; preds = %1855
  %1863 = load i32, ptr %240, align 4, !tbaa !5
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @s2n_print_stacktrace(ptr noundef %1864) #12
  %1866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1867 = trunc nuw i8 %1866 to i1
  br i1 %1867, label %1868, label %1872

1868:                                             ; preds = %1862
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = call i32 @fileno(ptr noundef %1869) #12
  %1871 = call i32 @isatty(i32 noundef %1870) #12
  %.not383 = icmp eq i32 %1871, 0
  br i1 %.not383, label %1872, label %1873

1872:                                             ; preds = %1868, %1862
  br label %1873

1873:                                             ; preds = %1868, %1872
  %.str.5.sink1070 = phi ptr [ @.str.5, %1872 ], [ @.str.2, %1868 ]
  store i32 %1863, ptr %240, align 4, !tbaa !5
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1875 = load i32, ptr @test_count, align 4, !tbaa !5
  %1876 = load i32, ptr %186, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror(i32 noundef %1876, ptr noundef nonnull @.str.4) #12
  %1878 = load i32, ptr %186, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror_debug(i32 noundef %1878, ptr noundef nonnull @.str.4) #12
  %1880 = load i32, ptr %240, align 4, !tbaa !5
  %1881 = call ptr @strerror(i32 noundef %1880) #12
  %1882 = load i32, ptr %240, align 4, !tbaa !5
  %1883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1874, ptr noundef nonnull %.str.5.sink1070, i32 noundef %1875, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %1877, ptr noundef %1879, ptr noundef %1881, i32 noundef %1882) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1884:                                             ; preds = %1855
  %1885 = load i32, ptr @test_count, align 4, !tbaa !5
  %1886 = add nsw i32 %1885, 1
  store i32 %1886, ptr @test_count, align 4, !tbaa !5
  %1887 = load ptr, ptr %18, align 8, !tbaa !9
  %1888 = call i32 @s2n_connection_get_client_hello_version(ptr noundef %1887) #12
  %1889 = icmp eq i32 %1888, 33
  br i1 %1889, label %1912, label %1890

1890:                                             ; preds = %1884
  %1891 = load i32, ptr %240, align 4, !tbaa !5
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = call i32 @s2n_print_stacktrace(ptr noundef %1892) #12
  %1894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1895 = trunc nuw i8 %1894 to i1
  br i1 %1895, label %1896, label %1900

1896:                                             ; preds = %1890
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = call i32 @fileno(ptr noundef %1897) #12
  %1899 = call i32 @isatty(i32 noundef %1898) #12
  %.not384 = icmp eq i32 %1899, 0
  br i1 %.not384, label %1900, label %1901

1900:                                             ; preds = %1896, %1890
  br label %1901

1901:                                             ; preds = %1896, %1900
  %.str.5.sink1079 = phi ptr [ @.str.5, %1900 ], [ @.str.2, %1896 ]
  store i32 %1891, ptr %240, align 4, !tbaa !5
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = load i32, ptr @test_count, align 4, !tbaa !5
  %1904 = load i32, ptr %186, align 4, !tbaa !5
  %1905 = call ptr @s2n_strerror(i32 noundef %1904, ptr noundef nonnull @.str.4) #12
  %1906 = load i32, ptr %186, align 4, !tbaa !5
  %1907 = call ptr @s2n_strerror_debug(i32 noundef %1906, ptr noundef nonnull @.str.4) #12
  %1908 = load i32, ptr %240, align 4, !tbaa !5
  %1909 = call ptr @strerror(i32 noundef %1908) #12
  %1910 = load i32, ptr %240, align 4, !tbaa !5
  %1911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1902, ptr noundef nonnull %.str.5.sink1079, i32 noundef %1903, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %1905, ptr noundef %1907, ptr noundef %1909, i32 noundef %1910) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1912:                                             ; preds = %1884
  %1913 = load i32, ptr @test_count, align 4, !tbaa !5
  %1914 = add nsw i32 %1913, 1
  store i32 %1914, ptr @test_count, align 4, !tbaa !5
  %1915 = load ptr, ptr %18, align 8, !tbaa !9
  %1916 = call i32 @s2n_connection_get_actual_protocol_version(ptr noundef %1915) #12
  %1917 = icmp eq i32 %1916, %indvars.iv471
  br i1 %1917, label %1940, label %1918

1918:                                             ; preds = %1912
  %1919 = load i32, ptr %240, align 4, !tbaa !5
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = call i32 @s2n_print_stacktrace(ptr noundef %1920) #12
  %1922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1923 = trunc nuw i8 %1922 to i1
  br i1 %1923, label %1924, label %1928

1924:                                             ; preds = %1918
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = call i32 @fileno(ptr noundef %1925) #12
  %1927 = call i32 @isatty(i32 noundef %1926) #12
  %.not385 = icmp eq i32 %1927, 0
  br i1 %.not385, label %1928, label %1929

1928:                                             ; preds = %1924, %1918
  br label %1929

1929:                                             ; preds = %1924, %1928
  %.str.5.sink1088 = phi ptr [ @.str.5, %1928 ], [ @.str.2, %1924 ]
  store i32 %1919, ptr %240, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = load i32, ptr @test_count, align 4, !tbaa !5
  %1932 = load i32, ptr %186, align 4, !tbaa !5
  %1933 = call ptr @s2n_strerror(i32 noundef %1932, ptr noundef nonnull @.str.4) #12
  %1934 = load i32, ptr %186, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror_debug(i32 noundef %1934, ptr noundef nonnull @.str.4) #12
  %1936 = load i32, ptr %240, align 4, !tbaa !5
  %1937 = call ptr @strerror(i32 noundef %1936) #12
  %1938 = load i32, ptr %240, align 4, !tbaa !5
  %1939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1930, ptr noundef nonnull %.str.5.sink1088, i32 noundef %1931, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %1933, ptr noundef %1935, ptr noundef %1937, i32 noundef %1938) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1940:                                             ; preds = %1912
  %1941 = call i32 @s2n_io_pair_close(ptr noundef nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  %1942 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  %1943 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  %1944 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  %indvars.iv.next472 = add nuw nsw i32 %indvars.iv471, 1
  %exitcond474.not = icmp eq i32 %indvars.iv.next472, 35
  br i1 %exitcond474.not, label %.preheader440, label %.preheader441, !llvm.loop !53

.preheader:                                       ; preds = %2337
  %1945 = getelementptr inbounds i8, ptr %28, i64 1
  %1946 = getelementptr inbounds i8, ptr %28, i64 2
  %1947 = getelementptr inbounds i8, ptr %28, i64 3
  %1948 = getelementptr inbounds i8, ptr %28, i64 8
  br label %2344

1949:                                             ; preds = %.preheader440, %2337
  %indvars.iv475 = phi i32 [ 30, %.preheader440 ], [ %indvars.iv.next476, %2337 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %1950 = call ptr @s2n_config_new() #12
  store ptr %1950, ptr %21, align 8, !tbaa !9
  %1951 = load i32, ptr @test_count, align 4, !tbaa !5
  %1952 = add nsw i32 %1951, 1
  store i32 %1952, ptr @test_count, align 4, !tbaa !5
  %1953 = load ptr, ptr %3, align 8, !tbaa !9
  %1954 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1950, ptr noundef %1953) #12
  %1955 = icmp eq i32 %1954, -1
  br i1 %1955, label %1956, label %1978

1956:                                             ; preds = %1949
  %1957 = load i32, ptr %240, 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 = %1956
  %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
  %.not380 = icmp eq i32 %1965, 0
  br i1 %.not380, label %1966, label %1967

1966:                                             ; preds = %1962, %1956
  br label %1967

1967:                                             ; preds = %1962, %1966
  %.str.5.sink1097 = phi ptr [ @.str.5, %1966 ], [ @.str.2, %1962 ]
  store i32 %1957, ptr %240, 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 %186, align 4, !tbaa !5
  %1971 = call ptr @s2n_strerror(i32 noundef %1970, ptr noundef nonnull @.str.4) #12
  %1972 = load i32, ptr %186, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror_debug(i32 noundef %1972, ptr noundef nonnull @.str.4) #12
  %1974 = load i32, ptr %240, align 4, !tbaa !5
  %1975 = call ptr @strerror(i32 noundef %1974) #12
  %1976 = load i32, ptr %240, align 4, !tbaa !5
  %1977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1968, ptr noundef nonnull %.str.5.sink1097, i32 noundef %1969, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %1971, ptr noundef %1973, ptr noundef %1975, i32 noundef %1976) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1978:                                             ; preds = %1949
  %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 = load ptr, ptr %21, align 8, !tbaa !9
  %1982 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1981, ptr noundef nonnull @.str.18) #12
  %1983 = icmp eq i32 %1982, -1
  br i1 %1983, label %1984, label %2006

1984:                                             ; preds = %1978
  %1985 = load i32, ptr %240, 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 = %1984
  %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
  %.not379 = icmp eq i32 %1993, 0
  br i1 %.not379, label %1994, label %1995

1994:                                             ; preds = %1990, %1984
  br label %1995

1995:                                             ; preds = %1990, %1994
  %.str.5.sink1106 = phi ptr [ @.str.5, %1994 ], [ @.str.2, %1990 ]
  store i32 %1985, ptr %240, 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 %186, align 4, !tbaa !5
  %1999 = call ptr @s2n_strerror(i32 noundef %1998, ptr noundef nonnull @.str.4) #12
  %2000 = load i32, ptr %186, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror_debug(i32 noundef %2000, ptr noundef nonnull @.str.4) #12
  %2002 = load i32, ptr %240, align 4, !tbaa !5
  %2003 = call ptr @strerror(i32 noundef %2002) #12
  %2004 = load i32, ptr %240, align 4, !tbaa !5
  %2005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1996, ptr noundef nonnull %.str.5.sink1106, i32 noundef %1997, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %1999, ptr noundef %2001, ptr noundef %2003, i32 noundef %2004) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2006:                                             ; preds = %1978
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %22) #12
  %2007 = trunc nuw nsw i32 %indvars.iv475 to i8
  store i8 %2007, ptr %22, align 4, !tbaa !18
  store i8 34, ptr %1567, align 1, !tbaa !20
  store i8 11, ptr %1568, align 2, !tbaa !21
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %1569, i8 0, i64 3, i1 false)
  store i32 0, ptr %1570, align 4, !tbaa !22
  %2008 = load i32, ptr @test_count, align 4, !tbaa !5
  %2009 = add nsw i32 %2008, 1
  store i32 %2009, ptr @test_count, align 4, !tbaa !5
  %2010 = load ptr, ptr %21, align 8, !tbaa !9
  %2011 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %2010, ptr noundef nonnull @s2n_overwrite_client_hello_cb, ptr noundef nonnull %22) #12
  %2012 = icmp eq i32 %2011, -1
  br i1 %2012, label %2013, label %2035

2013:                                             ; preds = %2006
  %2014 = load i32, ptr %240, align 4, !tbaa !5
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = call i32 @s2n_print_stacktrace(ptr noundef %2015) #12
  %2017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2018 = trunc nuw i8 %2017 to i1
  br i1 %2018, label %2019, label %2023

2019:                                             ; preds = %2013
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @fileno(ptr noundef %2020) #12
  %2022 = call i32 @isatty(i32 noundef %2021) #12
  %.not378 = icmp eq i32 %2022, 0
  br i1 %.not378, label %2023, label %2024

2023:                                             ; preds = %2019, %2013
  br label %2024

2024:                                             ; preds = %2019, %2023
  %.str.5.sink1115 = phi ptr [ @.str.5, %2023 ], [ @.str.2, %2019 ]
  store i32 %2014, ptr %240, align 4, !tbaa !5
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = load i32, ptr %186, align 4, !tbaa !5
  %2028 = call ptr @s2n_strerror(i32 noundef %2027, ptr noundef nonnull @.str.4) #12
  %2029 = load i32, ptr %186, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror_debug(i32 noundef %2029, ptr noundef nonnull @.str.4) #12
  %2031 = load i32, ptr %240, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #12
  %2033 = load i32, ptr %240, align 4, !tbaa !5
  %2034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2025, ptr noundef nonnull %.str.5.sink1115, i32 noundef %2026, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %2028, ptr noundef %2030, ptr noundef %2032, i32 noundef %2033) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2035:                                             ; preds = %2006
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  %2036 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2036, ptr %23, align 8, !tbaa !9
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = add nsw i32 %2037, 1
  store i32 %2038, ptr @test_count, align 4, !tbaa !5
  %2039 = icmp eq ptr %2036, null
  br i1 %2039, label %2040, label %2062

2040:                                             ; preds = %2035
  %2041 = load i32, ptr %240, align 4, !tbaa !5
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = call i32 @s2n_print_stacktrace(ptr noundef %2042) #12
  %2044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2045 = trunc nuw i8 %2044 to i1
  br i1 %2045, label %2046, label %2050

2046:                                             ; preds = %2040
  %2047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2048 = call i32 @fileno(ptr noundef %2047) #12
  %2049 = call i32 @isatty(i32 noundef %2048) #12
  %.not377 = icmp eq i32 %2049, 0
  br i1 %.not377, label %2050, label %2051

2050:                                             ; preds = %2046, %2040
  br label %2051

2051:                                             ; preds = %2046, %2050
  %.str.5.sink1124 = phi ptr [ @.str.5, %2050 ], [ @.str.2, %2046 ]
  store i32 %2041, ptr %240, align 4, !tbaa !5
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = load i32, ptr %186, align 4, !tbaa !5
  %2055 = call ptr @s2n_strerror(i32 noundef %2054, ptr noundef nonnull @.str.4) #12
  %2056 = load i32, ptr %186, align 4, !tbaa !5
  %2057 = call ptr @s2n_strerror_debug(i32 noundef %2056, ptr noundef nonnull @.str.4) #12
  %2058 = load i32, ptr %240, align 4, !tbaa !5
  %2059 = call ptr @strerror(i32 noundef %2058) #12
  %2060 = load i32, ptr %240, align 4, !tbaa !5
  %2061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2052, ptr noundef nonnull %.str.5.sink1124, i32 noundef %2053, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 278, ptr noundef %2055, ptr noundef %2057, ptr noundef %2059, i32 noundef %2060) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2062:                                             ; preds = %2035
  %2063 = add nsw i32 %2037, 2
  store i32 %2063, ptr @test_count, align 4, !tbaa !5
  %2064 = load ptr, ptr %21, align 8, !tbaa !9
  %2065 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2036, ptr noundef %2064) #12
  %2066 = icmp eq i32 %2065, -1
  br i1 %2066, label %2067, label %2089

2067:                                             ; preds = %2062
  %2068 = load i32, ptr %240, align 4, !tbaa !5
  %2069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2070 = call i32 @s2n_print_stacktrace(ptr noundef %2069) #12
  %2071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2072 = trunc nuw i8 %2071 to i1
  br i1 %2072, label %2073, label %2077

2073:                                             ; preds = %2067
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = call i32 @fileno(ptr noundef %2074) #12
  %2076 = call i32 @isatty(i32 noundef %2075) #12
  %.not376 = icmp eq i32 %2076, 0
  br i1 %.not376, label %2077, label %2078

2077:                                             ; preds = %2073, %2067
  br label %2078

2078:                                             ; preds = %2073, %2077
  %.str.5.sink1133 = phi ptr [ @.str.5, %2077 ], [ @.str.2, %2073 ]
  store i32 %2068, ptr %240, align 4, !tbaa !5
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = load i32, ptr @test_count, align 4, !tbaa !5
  %2081 = load i32, ptr %186, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror(i32 noundef %2081, ptr noundef nonnull @.str.4) #12
  %2083 = load i32, ptr %186, align 4, !tbaa !5
  %2084 = call ptr @s2n_strerror_debug(i32 noundef %2083, ptr noundef nonnull @.str.4) #12
  %2085 = load i32, ptr %240, align 4, !tbaa !5
  %2086 = call ptr @strerror(i32 noundef %2085) #12
  %2087 = load i32, ptr %240, align 4, !tbaa !5
  %2088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2079, ptr noundef nonnull %.str.5.sink1133, i32 noundef %2080, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %2082, ptr noundef %2084, ptr noundef %2086, i32 noundef %2087) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2089:                                             ; preds = %2062
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %2090 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2090, ptr %24, align 8, !tbaa !9
  %2091 = load i32, ptr @test_count, align 4, !tbaa !5
  %2092 = add nsw i32 %2091, 1
  store i32 %2092, ptr @test_count, align 4, !tbaa !5
  %2093 = icmp eq ptr %2090, null
  br i1 %2093, label %2094, label %2116

2094:                                             ; preds = %2089
  %2095 = load i32, ptr %240, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = call i32 @s2n_print_stacktrace(ptr noundef %2096) #12
  %2098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2099 = trunc nuw i8 %2098 to i1
  br i1 %2099, label %2100, label %2104

2100:                                             ; preds = %2094
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = call i32 @fileno(ptr noundef %2101) #12
  %2103 = call i32 @isatty(i32 noundef %2102) #12
  %.not375 = icmp eq i32 %2103, 0
  br i1 %.not375, label %2104, label %2105

2104:                                             ; preds = %2100, %2094
  br label %2105

2105:                                             ; preds = %2100, %2104
  %.str.5.sink1142 = phi ptr [ @.str.5, %2104 ], [ @.str.2, %2100 ]
  store i32 %2095, ptr %240, align 4, !tbaa !5
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = load i32, ptr @test_count, align 4, !tbaa !5
  %2108 = load i32, ptr %186, align 4, !tbaa !5
  %2109 = call ptr @s2n_strerror(i32 noundef %2108, ptr noundef nonnull @.str.4) #12
  %2110 = load i32, ptr %186, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror_debug(i32 noundef %2110, ptr noundef nonnull @.str.4) #12
  %2112 = load i32, ptr %240, align 4, !tbaa !5
  %2113 = call ptr @strerror(i32 noundef %2112) #12
  %2114 = load i32, ptr %240, align 4, !tbaa !5
  %2115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2106, ptr noundef nonnull %.str.5.sink1142, i32 noundef %2107, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %2109, ptr noundef %2111, ptr noundef %2113, i32 noundef %2114) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2116:                                             ; preds = %2089
  %2117 = add nsw i32 %2091, 2
  store i32 %2117, ptr @test_count, align 4, !tbaa !5
  %2118 = load ptr, ptr %21, align 8, !tbaa !9
  %2119 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2090, ptr noundef %2118) #12
  %2120 = icmp eq i32 %2119, -1
  br i1 %2120, label %2121, label %2143

2121:                                             ; preds = %2116
  %2122 = load i32, ptr %240, align 4, !tbaa !5
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = call i32 @s2n_print_stacktrace(ptr noundef %2123) #12
  %2125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2126 = trunc nuw i8 %2125 to i1
  br i1 %2126, label %2127, label %2131

2127:                                             ; preds = %2121
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = call i32 @fileno(ptr noundef %2128) #12
  %2130 = call i32 @isatty(i32 noundef %2129) #12
  %.not374 = icmp eq i32 %2130, 0
  br i1 %.not374, label %2131, label %2132

2131:                                             ; preds = %2127, %2121
  br label %2132

2132:                                             ; preds = %2127, %2131
  %.str.5.sink1151 = phi ptr [ @.str.5, %2131 ], [ @.str.2, %2127 ]
  store i32 %2122, ptr %240, align 4, !tbaa !5
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = load i32, ptr @test_count, align 4, !tbaa !5
  %2135 = load i32, ptr %186, align 4, !tbaa !5
  %2136 = call ptr @s2n_strerror(i32 noundef %2135, ptr noundef nonnull @.str.4) #12
  %2137 = load i32, ptr %186, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror_debug(i32 noundef %2137, ptr noundef nonnull @.str.4) #12
  %2139 = load i32, ptr %240, align 4, !tbaa !5
  %2140 = call ptr @strerror(i32 noundef %2139) #12
  %2141 = load i32, ptr %240, align 4, !tbaa !5
  %2142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2133, ptr noundef nonnull %.str.5.sink1151, i32 noundef %2134, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2136, ptr noundef %2138, ptr noundef %2140, i32 noundef %2141) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2143:                                             ; preds = %2116
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #12
  store i64 0, ptr %25, align 8
  %2144 = load i32, ptr @test_count, align 4, !tbaa !5
  %2145 = add nsw i32 %2144, 1
  store i32 %2145, ptr @test_count, align 4, !tbaa !5
  %2146 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %25) #12
  %2147 = icmp eq i32 %2146, -1
  br i1 %2147, label %2148, label %2170

2148:                                             ; preds = %2143
  %2149 = load i32, ptr %240, align 4, !tbaa !5
  %2150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2151 = call i32 @s2n_print_stacktrace(ptr noundef %2150) #12
  %2152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2153 = trunc nuw i8 %2152 to i1
  br i1 %2153, label %2154, label %2158

2154:                                             ; preds = %2148
  %2155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2156 = call i32 @fileno(ptr noundef %2155) #12
  %2157 = call i32 @isatty(i32 noundef %2156) #12
  %.not373 = icmp eq i32 %2157, 0
  br i1 %.not373, label %2158, label %2159

2158:                                             ; preds = %2154, %2148
  br label %2159

2159:                                             ; preds = %2154, %2158
  %.str.5.sink1160 = phi ptr [ @.str.5, %2158 ], [ @.str.2, %2154 ]
  store i32 %2149, ptr %240, align 4, !tbaa !5
  %2160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2161 = load i32, ptr @test_count, align 4, !tbaa !5
  %2162 = load i32, ptr %186, align 4, !tbaa !5
  %2163 = call ptr @s2n_strerror(i32 noundef %2162, ptr noundef nonnull @.str.4) #12
  %2164 = load i32, ptr %186, align 4, !tbaa !5
  %2165 = call ptr @s2n_strerror_debug(i32 noundef %2164, ptr noundef nonnull @.str.4) #12
  %2166 = load i32, ptr %240, align 4, !tbaa !5
  %2167 = call ptr @strerror(i32 noundef %2166) #12
  %2168 = load i32, ptr %240, align 4, !tbaa !5
  %2169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2160, ptr noundef nonnull %.str.5.sink1160, i32 noundef %2161, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %2163, ptr noundef %2165, ptr noundef %2167, i32 noundef %2168) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2170:                                             ; preds = %2143
  %2171 = load i32, ptr @test_count, align 4, !tbaa !5
  %2172 = add nsw i32 %2171, 1
  store i32 %2172, ptr @test_count, align 4, !tbaa !5
  %2173 = load ptr, ptr %23, align 8, !tbaa !9
  %2174 = load ptr, ptr %24, align 8, !tbaa !9
  %2175 = call i32 @s2n_connections_set_io_pair(ptr noundef %2173, ptr noundef %2174, ptr noundef nonnull %25) #12
  %2176 = icmp eq i32 %2175, -1
  br i1 %2176, label %2177, label %2199

2177:                                             ; preds = %2170
  %2178 = load i32, ptr %240, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = call i32 @s2n_print_stacktrace(ptr noundef %2179) #12
  %2181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2182 = trunc nuw i8 %2181 to i1
  br i1 %2182, label %2183, label %2187

2183:                                             ; preds = %2177
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @fileno(ptr noundef %2184) #12
  %2186 = call i32 @isatty(i32 noundef %2185) #12
  %.not372 = icmp eq i32 %2186, 0
  br i1 %.not372, label %2187, label %2188

2187:                                             ; preds = %2183, %2177
  br label %2188

2188:                                             ; preds = %2183, %2187
  %.str.5.sink1169 = phi ptr [ @.str.5, %2187 ], [ @.str.2, %2183 ]
  store i32 %2178, ptr %240, align 4, !tbaa !5
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = load i32, ptr @test_count, align 4, !tbaa !5
  %2191 = load i32, ptr %186, align 4, !tbaa !5
  %2192 = call ptr @s2n_strerror(i32 noundef %2191, ptr noundef nonnull @.str.4) #12
  %2193 = load i32, ptr %186, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror_debug(i32 noundef %2193, ptr noundef nonnull @.str.4) #12
  %2195 = load i32, ptr %240, align 4, !tbaa !5
  %2196 = call ptr @strerror(i32 noundef %2195) #12
  %2197 = load i32, ptr %240, align 4, !tbaa !5
  %2198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2189, ptr noundef nonnull %.str.5.sink1169, i32 noundef %2190, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2192, ptr noundef %2194, ptr noundef %2196, i32 noundef %2197) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2199:                                             ; preds = %2170
  %2200 = load i32, ptr @test_count, align 4, !tbaa !5
  %2201 = add nsw i32 %2200, 1
  store i32 %2201, ptr @test_count, align 4, !tbaa !5
  %2202 = load ptr, ptr %24, align 8, !tbaa !9
  %2203 = load ptr, ptr %23, align 8, !tbaa !9
  %2204 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %2202, ptr noundef %2203, i32 noundef 1) #12
  %2205 = call zeroext i1 @s2n_result_is_ok(i32 %2204)
  br i1 %2205, label %2228, label %2206

2206:                                             ; preds = %2199
  %2207 = load i32, ptr %240, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = call i32 @s2n_print_stacktrace(ptr noundef %2208) #12
  %2210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2211 = trunc nuw i8 %2210 to i1
  br i1 %2211, label %2212, label %2216

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

2216:                                             ; preds = %2212, %2206
  br label %2217

2217:                                             ; preds = %2212, %2216
  %.str.5.sink1178 = phi ptr [ @.str.5, %2216 ], [ @.str.2, %2212 ]
  store i32 %2207, ptr %240, align 4, !tbaa !5
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = load i32, ptr %186, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror(i32 noundef %2220, ptr noundef nonnull @.str.4) #12
  %2222 = load i32, ptr %186, align 4, !tbaa !5
  %2223 = call ptr @s2n_strerror_debug(i32 noundef %2222, ptr noundef nonnull @.str.4) #12
  %2224 = load i32, ptr %240, align 4, !tbaa !5
  %2225 = call ptr @strerror(i32 noundef %2224) #12
  %2226 = load i32, ptr %240, align 4, !tbaa !5
  %2227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2218, ptr noundef nonnull %.str.5.sink1178, i32 noundef %2219, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2221, ptr noundef %2223, ptr noundef %2225, i32 noundef %2226) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2228:                                             ; preds = %2199
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = add nsw i32 %2229, 1
  store i32 %2230, ptr @test_count, align 4, !tbaa !5
  %2231 = load i32, ptr %1570, align 4, !tbaa !22
  %2232 = icmp eq i32 %2231, 1
  br i1 %2232, label %2255, label %2233

2233:                                             ; preds = %2228
  %2234 = load i32, ptr %240, align 4, !tbaa !5
  %2235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2236 = call i32 @s2n_print_stacktrace(ptr noundef %2235) #12
  %2237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2238 = trunc nuw i8 %2237 to i1
  br i1 %2238, label %2239, label %2243

2239:                                             ; preds = %2233
  %2240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2241 = call i32 @fileno(ptr noundef %2240) #12
  %2242 = call i32 @isatty(i32 noundef %2241) #12
  %.not368 = icmp eq i32 %2242, 0
  br i1 %.not368, label %2243, label %2244

2243:                                             ; preds = %2239, %2233
  br label %2244

2244:                                             ; preds = %2239, %2243
  %.str.5.sink1187 = phi ptr [ @.str.5, %2243 ], [ @.str.2, %2239 ]
  store i32 %2234, ptr %240, align 4, !tbaa !5
  %2245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2246 = load i32, ptr @test_count, align 4, !tbaa !5
  %2247 = load i32, ptr %186, align 4, !tbaa !5
  %2248 = call ptr @s2n_strerror(i32 noundef %2247, ptr noundef nonnull @.str.4) #12
  %2249 = load i32, ptr %186, align 4, !tbaa !5
  %2250 = call ptr @s2n_strerror_debug(i32 noundef %2249, ptr noundef nonnull @.str.4) #12
  %2251 = load i32, ptr %240, align 4, !tbaa !5
  %2252 = call ptr @strerror(i32 noundef %2251) #12
  %2253 = load i32, ptr %240, align 4, !tbaa !5
  %2254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2245, ptr noundef nonnull %.str.5.sink1187, i32 noundef %2246, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2248, ptr noundef %2250, ptr noundef %2252, i32 noundef %2253) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2255:                                             ; preds = %2228
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #12
  store i8 0, ptr %26, align 1, !tbaa !11
  %2256 = add nsw i32 %2229, 2
  store i32 %2256, ptr @test_count, align 4, !tbaa !5
  %2257 = load ptr, ptr %24, align 8, !tbaa !9
  %2258 = getelementptr inbounds i8, ptr %2257, i64 2896
  %2259 = call i32 @s2n_client_hello_has_extension(ptr noundef nonnull %2258, i16 noundef zeroext 43, ptr noundef nonnull %26) #12
  %2260 = icmp eq i32 %2259, -1
  br i1 %2260, label %2261, label %2283

2261:                                             ; preds = %2255
  %2262 = load i32, ptr %240, align 4, !tbaa !5
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = call i32 @s2n_print_stacktrace(ptr noundef %2263) #12
  %2265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2266 = trunc nuw i8 %2265 to i1
  br i1 %2266, label %2267, label %2271

2267:                                             ; preds = %2261
  %2268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2269 = call i32 @fileno(ptr noundef %2268) #12
  %2270 = call i32 @isatty(i32 noundef %2269) #12
  %.not371 = icmp eq i32 %2270, 0
  br i1 %.not371, label %2271, label %2272

2271:                                             ; preds = %2267, %2261
  br label %2272

2272:                                             ; preds = %2267, %2271
  %.str.5.sink1196 = phi ptr [ @.str.5, %2271 ], [ @.str.2, %2267 ]
  store i32 %2262, ptr %240, align 4, !tbaa !5
  %2273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2274 = load i32, ptr @test_count, align 4, !tbaa !5
  %2275 = load i32, ptr %186, align 4, !tbaa !5
  %2276 = call ptr @s2n_strerror(i32 noundef %2275, ptr noundef nonnull @.str.4) #12
  %2277 = load i32, ptr %186, align 4, !tbaa !5
  %2278 = call ptr @s2n_strerror_debug(i32 noundef %2277, ptr noundef nonnull @.str.4) #12
  %2279 = load i32, ptr %240, align 4, !tbaa !5
  %2280 = call ptr @strerror(i32 noundef %2279) #12
  %2281 = load i32, ptr %240, align 4, !tbaa !5
  %2282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2273, ptr noundef nonnull %.str.5.sink1196, i32 noundef %2274, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %2276, ptr noundef %2278, ptr noundef %2280, i32 noundef %2281) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2283:                                             ; preds = %2255
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = add nsw i32 %2284, 1
  store i32 %2285, ptr @test_count, align 4, !tbaa !5
  %2286 = load i8, ptr %26, align 1, !tbaa !11, !range !13, !noundef !14
  %2287 = trunc nuw i8 %2286 to i1
  br i1 %2287, label %2310, label %2288

2288:                                             ; preds = %2283
  %2289 = load i32, ptr %240, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = call i32 @s2n_print_stacktrace(ptr noundef %2290) #12
  %2292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2293 = trunc nuw i8 %2292 to i1
  br i1 %2293, label %2294, label %2298

2294:                                             ; preds = %2288
  %2295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2296 = call i32 @fileno(ptr noundef %2295) #12
  %2297 = call i32 @isatty(i32 noundef %2296) #12
  %.not369 = icmp eq i32 %2297, 0
  br i1 %.not369, label %2298, label %2299

2298:                                             ; preds = %2294, %2288
  br label %2299

2299:                                             ; preds = %2294, %2298
  %.str.5.sink1205 = phi ptr [ @.str.5, %2298 ], [ @.str.2, %2294 ]
  store i32 %2289, ptr %240, align 4, !tbaa !5
  %2300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2301 = load i32, ptr @test_count, align 4, !tbaa !5
  %2302 = load i32, ptr %186, align 4, !tbaa !5
  %2303 = call ptr @s2n_strerror(i32 noundef %2302, ptr noundef nonnull @.str.4) #12
  %2304 = load i32, ptr %186, align 4, !tbaa !5
  %2305 = call ptr @s2n_strerror_debug(i32 noundef %2304, ptr noundef nonnull @.str.4) #12
  %2306 = load i32, ptr %240, align 4, !tbaa !5
  %2307 = call ptr @strerror(i32 noundef %2306) #12
  %2308 = load i32, ptr %240, align 4, !tbaa !5
  %2309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2300, ptr noundef nonnull %.str.5.sink1205, i32 noundef %2301, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %2303, ptr noundef %2305, ptr noundef %2307, i32 noundef %2308) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2310:                                             ; preds = %2283
  %2311 = add nsw i32 %2284, 2
  store i32 %2311, ptr @test_count, align 4, !tbaa !5
  %2312 = load ptr, ptr %24, align 8, !tbaa !9
  %2313 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %2312) #12
  %2314 = icmp eq i32 %2313, %indvars.iv475
  br i1 %2314, label %2337, label %2315

2315:                                             ; preds = %2310
  %2316 = load i32, ptr %240, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = call i32 @s2n_print_stacktrace(ptr noundef %2317) #12
  %2319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2320 = trunc nuw i8 %2319 to i1
  br i1 %2320, label %2321, label %2325

2321:                                             ; preds = %2315
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @fileno(ptr noundef %2322) #12
  %2324 = call i32 @isatty(i32 noundef %2323) #12
  %.not370 = icmp eq i32 %2324, 0
  br i1 %.not370, label %2325, label %2326

2325:                                             ; preds = %2321, %2315
  br label %2326

2326:                                             ; preds = %2321, %2325
  %.str.5.sink1214 = phi ptr [ @.str.5, %2325 ], [ @.str.2, %2321 ]
  store i32 %2316, ptr %240, align 4, !tbaa !5
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = load i32, ptr %186, align 4, !tbaa !5
  %2330 = call ptr @s2n_strerror(i32 noundef %2329, ptr noundef nonnull @.str.4) #12
  %2331 = load i32, ptr %186, align 4, !tbaa !5
  %2332 = call ptr @s2n_strerror_debug(i32 noundef %2331, ptr noundef nonnull @.str.4) #12
  %2333 = load i32, ptr %240, align 4, !tbaa !5
  %2334 = call ptr @strerror(i32 noundef %2333) #12
  %2335 = load i32, ptr %240, align 4, !tbaa !5
  %2336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2327, ptr noundef nonnull %.str.5.sink1214, i32 noundef %2328, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %2330, ptr noundef %2332, ptr noundef %2334, i32 noundef %2335) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2337:                                             ; preds = %2310
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #12
  %2338 = call i32 @s2n_io_pair_close(ptr noundef nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  %2339 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %2340 = 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 12, ptr nonnull %22) #12
  %2341 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  %indvars.iv.next476 = add nuw nsw i32 %indvars.iv475, 1
  %exitcond478.not = icmp eq i32 %indvars.iv.next476, 34
  br i1 %exitcond478.not, label %.preheader, label %1949, !llvm.loop !54

2342:                                             ; preds = %2732
  %2343 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #12
  br i1 %2343, label %2737, label %3258

2344:                                             ; preds = %.preheader, %2732
  %indvars.iv479 = phi i32 [ 30, %.preheader ], [ %indvars.iv.next480, %2732 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %2345 = call ptr @s2n_config_new() #12
  store ptr %2345, ptr %27, align 8, !tbaa !9
  %2346 = load i32, ptr @test_count, align 4, !tbaa !5
  %2347 = add nsw i32 %2346, 1
  store i32 %2347, ptr @test_count, align 4, !tbaa !5
  %2348 = load ptr, ptr %3, align 8, !tbaa !9
  %2349 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2345, ptr noundef %2348) #12
  %2350 = icmp eq i32 %2349, -1
  br i1 %2350, label %2351, label %2373

2351:                                             ; preds = %2344
  %2352 = load i32, ptr %240, align 4, !tbaa !5
  %2353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2354 = call i32 @s2n_print_stacktrace(ptr noundef %2353) #12
  %2355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2356 = trunc nuw i8 %2355 to i1
  br i1 %2356, label %2357, label %2361

2357:                                             ; preds = %2351
  %2358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2359 = call i32 @fileno(ptr noundef %2358) #12
  %2360 = call i32 @isatty(i32 noundef %2359) #12
  %.not366 = icmp eq i32 %2360, 0
  br i1 %.not366, label %2361, label %2362

2361:                                             ; preds = %2357, %2351
  br label %2362

2362:                                             ; preds = %2357, %2361
  %.str.5.sink1223 = phi ptr [ @.str.5, %2361 ], [ @.str.2, %2357 ]
  store i32 %2352, ptr %240, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = load i32, ptr %186, align 4, !tbaa !5
  %2366 = call ptr @s2n_strerror(i32 noundef %2365, ptr noundef nonnull @.str.4) #12
  %2367 = load i32, ptr %186, align 4, !tbaa !5
  %2368 = call ptr @s2n_strerror_debug(i32 noundef %2367, ptr noundef nonnull @.str.4) #12
  %2369 = load i32, ptr %240, align 4, !tbaa !5
  %2370 = call ptr @strerror(i32 noundef %2369) #12
  %2371 = load i32, ptr %240, align 4, !tbaa !5
  %2372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2363, ptr noundef nonnull %.str.5.sink1223, i32 noundef %2364, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %2366, ptr noundef %2368, ptr noundef %2370, i32 noundef %2371) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2373:                                             ; preds = %2344
  %2374 = load i32, ptr @test_count, align 4, !tbaa !5
  %2375 = add nsw i32 %2374, 1
  store i32 %2375, ptr @test_count, align 4, !tbaa !5
  %2376 = load ptr, ptr %27, align 8, !tbaa !9
  %2377 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2376, ptr noundef nonnull @.str.18) #12
  %2378 = icmp eq i32 %2377, -1
  br i1 %2378, label %2379, label %2401

2379:                                             ; preds = %2373
  %2380 = load i32, ptr %240, align 4, !tbaa !5
  %2381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2382 = call i32 @s2n_print_stacktrace(ptr noundef %2381) #12
  %2383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2384 = trunc nuw i8 %2383 to i1
  br i1 %2384, label %2385, label %2389

2385:                                             ; preds = %2379
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @fileno(ptr noundef %2386) #12
  %2388 = call i32 @isatty(i32 noundef %2387) #12
  %.not365 = icmp eq i32 %2388, 0
  br i1 %.not365, label %2389, label %2390

2389:                                             ; preds = %2385, %2379
  br label %2390

2390:                                             ; preds = %2385, %2389
  %.str.5.sink1232 = phi ptr [ @.str.5, %2389 ], [ @.str.2, %2385 ]
  store i32 %2380, ptr %240, align 4, !tbaa !5
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = load i32, ptr @test_count, align 4, !tbaa !5
  %2393 = load i32, ptr %186, align 4, !tbaa !5
  %2394 = call ptr @s2n_strerror(i32 noundef %2393, ptr noundef nonnull @.str.4) #12
  %2395 = load i32, ptr %186, align 4, !tbaa !5
  %2396 = call ptr @s2n_strerror_debug(i32 noundef %2395, ptr noundef nonnull @.str.4) #12
  %2397 = load i32, ptr %240, align 4, !tbaa !5
  %2398 = call ptr @strerror(i32 noundef %2397) #12
  %2399 = load i32, ptr %240, align 4, !tbaa !5
  %2400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2391, ptr noundef nonnull %.str.5.sink1232, i32 noundef %2392, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %2394, ptr noundef %2396, ptr noundef %2398, i32 noundef %2399) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2401:                                             ; preds = %2373
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %28) #12
  %2402 = trunc nuw nsw i32 %indvars.iv479 to i8
  store i8 %2402, ptr %28, align 4, !tbaa !18
  store i8 44, ptr %1945, align 1, !tbaa !20
  store i8 2, ptr %1946, align 2, !tbaa !21
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %1947, i8 0, i64 3, i1 false)
  store i32 0, ptr %1948, align 4, !tbaa !22
  %2403 = load i32, ptr @test_count, align 4, !tbaa !5
  %2404 = add nsw i32 %2403, 1
  store i32 %2404, ptr @test_count, align 4, !tbaa !5
  %2405 = load ptr, ptr %27, align 8, !tbaa !9
  %2406 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %2405, ptr noundef nonnull @s2n_overwrite_client_hello_cb, ptr noundef nonnull %28) #12
  %2407 = icmp eq i32 %2406, -1
  br i1 %2407, label %2408, label %2430

2408:                                             ; preds = %2401
  %2409 = load i32, ptr %240, align 4, !tbaa !5
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = call i32 @s2n_print_stacktrace(ptr noundef %2410) #12
  %2412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2413 = trunc nuw i8 %2412 to i1
  br i1 %2413, label %2414, label %2418

2414:                                             ; preds = %2408
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = call i32 @fileno(ptr noundef %2415) #12
  %2417 = call i32 @isatty(i32 noundef %2416) #12
  %.not364 = icmp eq i32 %2417, 0
  br i1 %.not364, label %2418, label %2419

2418:                                             ; preds = %2414, %2408
  br label %2419

2419:                                             ; preds = %2414, %2418
  %.str.5.sink1241 = phi ptr [ @.str.5, %2418 ], [ @.str.2, %2414 ]
  store i32 %2409, ptr %240, align 4, !tbaa !5
  %2420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2421 = load i32, ptr @test_count, align 4, !tbaa !5
  %2422 = load i32, ptr %186, align 4, !tbaa !5
  %2423 = call ptr @s2n_strerror(i32 noundef %2422, ptr noundef nonnull @.str.4) #12
  %2424 = load i32, ptr %186, align 4, !tbaa !5
  %2425 = call ptr @s2n_strerror_debug(i32 noundef %2424, ptr noundef nonnull @.str.4) #12
  %2426 = load i32, ptr %240, align 4, !tbaa !5
  %2427 = call ptr @strerror(i32 noundef %2426) #12
  %2428 = load i32, ptr %240, align 4, !tbaa !5
  %2429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2420, ptr noundef nonnull %.str.5.sink1241, i32 noundef %2421, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %2423, ptr noundef %2425, ptr noundef %2427, i32 noundef %2428) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2430:                                             ; preds = %2401
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  %2431 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2431, ptr %29, align 8, !tbaa !9
  %2432 = load i32, ptr @test_count, align 4, !tbaa !5
  %2433 = add nsw i32 %2432, 1
  store i32 %2433, ptr @test_count, align 4, !tbaa !5
  %2434 = icmp eq ptr %2431, null
  br i1 %2434, label %2435, label %2457

2435:                                             ; preds = %2430
  %2436 = load i32, ptr %240, align 4, !tbaa !5
  %2437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2438 = call i32 @s2n_print_stacktrace(ptr noundef %2437) #12
  %2439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2440 = trunc nuw i8 %2439 to i1
  br i1 %2440, label %2441, label %2445

2441:                                             ; preds = %2435
  %2442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2443 = call i32 @fileno(ptr noundef %2442) #12
  %2444 = call i32 @isatty(i32 noundef %2443) #12
  %.not363 = icmp eq i32 %2444, 0
  br i1 %.not363, label %2445, label %2446

2445:                                             ; preds = %2441, %2435
  br label %2446

2446:                                             ; preds = %2441, %2445
  %.str.5.sink1250 = phi ptr [ @.str.5, %2445 ], [ @.str.2, %2441 ]
  store i32 %2436, ptr %240, align 4, !tbaa !5
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = load i32, ptr @test_count, align 4, !tbaa !5
  %2449 = load i32, ptr %186, align 4, !tbaa !5
  %2450 = call ptr @s2n_strerror(i32 noundef %2449, ptr noundef nonnull @.str.4) #12
  %2451 = load i32, ptr %186, align 4, !tbaa !5
  %2452 = call ptr @s2n_strerror_debug(i32 noundef %2451, ptr noundef nonnull @.str.4) #12
  %2453 = load i32, ptr %240, align 4, !tbaa !5
  %2454 = call ptr @strerror(i32 noundef %2453) #12
  %2455 = load i32, ptr %240, align 4, !tbaa !5
  %2456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2447, ptr noundef nonnull %.str.5.sink1250, i32 noundef %2448, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %2450, ptr noundef %2452, ptr noundef %2454, i32 noundef %2455) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2457:                                             ; preds = %2430
  %2458 = add nsw i32 %2432, 2
  store i32 %2458, ptr @test_count, align 4, !tbaa !5
  %2459 = load ptr, ptr %27, align 8, !tbaa !9
  %2460 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2431, ptr noundef %2459) #12
  %2461 = icmp eq i32 %2460, -1
  br i1 %2461, label %2462, label %2484

2462:                                             ; preds = %2457
  %2463 = load i32, ptr %240, align 4, !tbaa !5
  %2464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2465 = call i32 @s2n_print_stacktrace(ptr noundef %2464) #12
  %2466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2467 = trunc nuw i8 %2466 to i1
  br i1 %2467, label %2468, label %2472

2468:                                             ; preds = %2462
  %2469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2470 = call i32 @fileno(ptr noundef %2469) #12
  %2471 = call i32 @isatty(i32 noundef %2470) #12
  %.not362 = icmp eq i32 %2471, 0
  br i1 %.not362, label %2472, label %2473

2472:                                             ; preds = %2468, %2462
  br label %2473

2473:                                             ; preds = %2468, %2472
  %.str.5.sink1259 = phi ptr [ @.str.5, %2472 ], [ @.str.2, %2468 ]
  store i32 %2463, ptr %240, align 4, !tbaa !5
  %2474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2475 = load i32, ptr @test_count, align 4, !tbaa !5
  %2476 = load i32, ptr %186, align 4, !tbaa !5
  %2477 = call ptr @s2n_strerror(i32 noundef %2476, ptr noundef nonnull @.str.4) #12
  %2478 = load i32, ptr %186, align 4, !tbaa !5
  %2479 = call ptr @s2n_strerror_debug(i32 noundef %2478, ptr noundef nonnull @.str.4) #12
  %2480 = load i32, ptr %240, align 4, !tbaa !5
  %2481 = call ptr @strerror(i32 noundef %2480) #12
  %2482 = load i32, ptr %240, align 4, !tbaa !5
  %2483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2474, ptr noundef nonnull %.str.5.sink1259, i32 noundef %2475, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2477, ptr noundef %2479, ptr noundef %2481, i32 noundef %2482) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2484:                                             ; preds = %2457
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %2485 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2485, ptr %30, align 8, !tbaa !9
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = add nsw i32 %2486, 1
  store i32 %2487, ptr @test_count, align 4, !tbaa !5
  %2488 = icmp eq ptr %2485, null
  br i1 %2488, label %2489, label %2511

2489:                                             ; preds = %2484
  %2490 = load i32, ptr %240, align 4, !tbaa !5
  %2491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2492 = call i32 @s2n_print_stacktrace(ptr noundef %2491) #12
  %2493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2494 = trunc nuw i8 %2493 to i1
  br i1 %2494, label %2495, label %2499

2495:                                             ; preds = %2489
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = call i32 @fileno(ptr noundef %2496) #12
  %2498 = call i32 @isatty(i32 noundef %2497) #12
  %.not361 = icmp eq i32 %2498, 0
  br i1 %.not361, label %2499, label %2500

2499:                                             ; preds = %2495, %2489
  br label %2500

2500:                                             ; preds = %2495, %2499
  %.str.5.sink1268 = phi ptr [ @.str.5, %2499 ], [ @.str.2, %2495 ]
  store i32 %2490, ptr %240, align 4, !tbaa !5
  %2501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2502 = load i32, ptr @test_count, align 4, !tbaa !5
  %2503 = load i32, ptr %186, align 4, !tbaa !5
  %2504 = call ptr @s2n_strerror(i32 noundef %2503, ptr noundef nonnull @.str.4) #12
  %2505 = load i32, ptr %186, align 4, !tbaa !5
  %2506 = call ptr @s2n_strerror_debug(i32 noundef %2505, ptr noundef nonnull @.str.4) #12
  %2507 = load i32, ptr %240, align 4, !tbaa !5
  %2508 = call ptr @strerror(i32 noundef %2507) #12
  %2509 = load i32, ptr %240, align 4, !tbaa !5
  %2510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2501, ptr noundef nonnull %.str.5.sink1268, i32 noundef %2502, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %2504, ptr noundef %2506, ptr noundef %2508, i32 noundef %2509) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2511:                                             ; preds = %2484
  %2512 = add nsw i32 %2486, 2
  store i32 %2512, ptr @test_count, align 4, !tbaa !5
  %2513 = load ptr, ptr %27, align 8, !tbaa !9
  %2514 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2485, ptr noundef %2513) #12
  %2515 = icmp eq i32 %2514, -1
  br i1 %2515, label %2516, label %2538

2516:                                             ; preds = %2511
  %2517 = load i32, ptr %240, align 4, !tbaa !5
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = call i32 @s2n_print_stacktrace(ptr noundef %2518) #12
  %2520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2521 = trunc nuw i8 %2520 to i1
  br i1 %2521, label %2522, label %2526

2522:                                             ; preds = %2516
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = call i32 @fileno(ptr noundef %2523) #12
  %2525 = call i32 @isatty(i32 noundef %2524) #12
  %.not360 = icmp eq i32 %2525, 0
  br i1 %.not360, label %2526, label %2527

2526:                                             ; preds = %2522, %2516
  br label %2527

2527:                                             ; preds = %2522, %2526
  %.str.5.sink1277 = phi ptr [ @.str.5, %2526 ], [ @.str.2, %2522 ]
  store i32 %2517, ptr %240, align 4, !tbaa !5
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = load i32, ptr @test_count, align 4, !tbaa !5
  %2530 = load i32, ptr %186, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror(i32 noundef %2530, ptr noundef nonnull @.str.4) #12
  %2532 = load i32, ptr %186, align 4, !tbaa !5
  %2533 = call ptr @s2n_strerror_debug(i32 noundef %2532, ptr noundef nonnull @.str.4) #12
  %2534 = load i32, ptr %240, align 4, !tbaa !5
  %2535 = call ptr @strerror(i32 noundef %2534) #12
  %2536 = load i32, ptr %240, align 4, !tbaa !5
  %2537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2528, ptr noundef nonnull %.str.5.sink1277, i32 noundef %2529, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %2531, ptr noundef %2533, ptr noundef %2535, i32 noundef %2536) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2538:                                             ; preds = %2511
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #12
  store i64 0, ptr %31, align 8
  %2539 = load i32, ptr @test_count, align 4, !tbaa !5
  %2540 = add nsw i32 %2539, 1
  store i32 %2540, ptr @test_count, align 4, !tbaa !5
  %2541 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %31) #12
  %2542 = icmp eq i32 %2541, -1
  br i1 %2542, label %2543, label %2565

2543:                                             ; preds = %2538
  %2544 = load i32, ptr %240, align 4, !tbaa !5
  %2545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2546 = call i32 @s2n_print_stacktrace(ptr noundef %2545) #12
  %2547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2548 = trunc nuw i8 %2547 to i1
  br i1 %2548, label %2549, label %2553

2549:                                             ; preds = %2543
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = call i32 @fileno(ptr noundef %2550) #12
  %2552 = call i32 @isatty(i32 noundef %2551) #12
  %.not359 = icmp eq i32 %2552, 0
  br i1 %.not359, label %2553, label %2554

2553:                                             ; preds = %2549, %2543
  br label %2554

2554:                                             ; preds = %2549, %2553
  %.str.5.sink1286 = phi ptr [ @.str.5, %2553 ], [ @.str.2, %2549 ]
  store i32 %2544, ptr %240, align 4, !tbaa !5
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = load i32, ptr %186, align 4, !tbaa !5
  %2558 = call ptr @s2n_strerror(i32 noundef %2557, ptr noundef nonnull @.str.4) #12
  %2559 = load i32, ptr %186, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror_debug(i32 noundef %2559, ptr noundef nonnull @.str.4) #12
  %2561 = load i32, ptr %240, align 4, !tbaa !5
  %2562 = call ptr @strerror(i32 noundef %2561) #12
  %2563 = load i32, ptr %240, align 4, !tbaa !5
  %2564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2555, ptr noundef nonnull %.str.5.sink1286, i32 noundef %2556, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %2558, ptr noundef %2560, ptr noundef %2562, i32 noundef %2563) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2565:                                             ; preds = %2538
  %2566 = load i32, ptr @test_count, align 4, !tbaa !5
  %2567 = add nsw i32 %2566, 1
  store i32 %2567, ptr @test_count, align 4, !tbaa !5
  %2568 = load ptr, ptr %29, align 8, !tbaa !9
  %2569 = load ptr, ptr %30, align 8, !tbaa !9
  %2570 = call i32 @s2n_connections_set_io_pair(ptr noundef %2568, ptr noundef %2569, ptr noundef nonnull %31) #12
  %2571 = icmp eq i32 %2570, -1
  br i1 %2571, label %2572, label %2594

2572:                                             ; preds = %2565
  %2573 = load i32, ptr %240, align 4, !tbaa !5
  %2574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2575 = call i32 @s2n_print_stacktrace(ptr noundef %2574) #12
  %2576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2577 = trunc nuw i8 %2576 to i1
  br i1 %2577, label %2578, label %2582

2578:                                             ; preds = %2572
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = call i32 @fileno(ptr noundef %2579) #12
  %2581 = call i32 @isatty(i32 noundef %2580) #12
  %.not358 = icmp eq i32 %2581, 0
  br i1 %.not358, label %2582, label %2583

2582:                                             ; preds = %2578, %2572
  br label %2583

2583:                                             ; preds = %2578, %2582
  %.str.5.sink1295 = phi ptr [ @.str.5, %2582 ], [ @.str.2, %2578 ]
  store i32 %2573, ptr %240, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = load i32, ptr %186, align 4, !tbaa !5
  %2587 = call ptr @s2n_strerror(i32 noundef %2586, ptr noundef nonnull @.str.4) #12
  %2588 = load i32, ptr %186, align 4, !tbaa !5
  %2589 = call ptr @s2n_strerror_debug(i32 noundef %2588, ptr noundef nonnull @.str.4) #12
  %2590 = load i32, ptr %240, align 4, !tbaa !5
  %2591 = call ptr @strerror(i32 noundef %2590) #12
  %2592 = load i32, ptr %240, align 4, !tbaa !5
  %2593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2584, ptr noundef nonnull %.str.5.sink1295, i32 noundef %2585, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %2587, ptr noundef %2589, ptr noundef %2591, i32 noundef %2592) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2594:                                             ; preds = %2565
  %2595 = load i32, ptr @test_count, align 4, !tbaa !5
  %2596 = add nsw i32 %2595, 1
  store i32 %2596, ptr @test_count, align 4, !tbaa !5
  %2597 = load ptr, ptr %30, align 8, !tbaa !9
  %2598 = load ptr, ptr %29, align 8, !tbaa !9
  %2599 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %2597, ptr noundef %2598, i32 noundef 1) #12
  %2600 = call zeroext i1 @s2n_result_is_ok(i32 %2599)
  br i1 %2600, label %2623, label %2601

2601:                                             ; preds = %2594
  %2602 = load i32, ptr %240, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @s2n_print_stacktrace(ptr noundef %2603) #12
  %2605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2606 = trunc nuw i8 %2605 to i1
  br i1 %2606, label %2607, label %2611

2607:                                             ; preds = %2601
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @fileno(ptr noundef %2608) #12
  %2610 = call i32 @isatty(i32 noundef %2609) #12
  %.not353 = icmp eq i32 %2610, 0
  br i1 %.not353, label %2611, label %2612

2611:                                             ; preds = %2607, %2601
  br label %2612

2612:                                             ; preds = %2607, %2611
  %.str.5.sink1304 = phi ptr [ @.str.5, %2611 ], [ @.str.2, %2607 ]
  store i32 %2602, ptr %240, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = load i32, ptr @test_count, align 4, !tbaa !5
  %2615 = load i32, ptr %186, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror(i32 noundef %2615, ptr noundef nonnull @.str.4) #12
  %2617 = load i32, ptr %186, align 4, !tbaa !5
  %2618 = call ptr @s2n_strerror_debug(i32 noundef %2617, ptr noundef nonnull @.str.4) #12
  %2619 = load i32, ptr %240, align 4, !tbaa !5
  %2620 = call ptr @strerror(i32 noundef %2619) #12
  %2621 = load i32, ptr %240, align 4, !tbaa !5
  %2622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef nonnull %.str.5.sink1304, i32 noundef %2614, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %2616, ptr noundef %2618, ptr noundef %2620, i32 noundef %2621) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2623:                                             ; preds = %2594
  %2624 = load i32, ptr @test_count, align 4, !tbaa !5
  %2625 = add nsw i32 %2624, 1
  store i32 %2625, ptr @test_count, align 4, !tbaa !5
  %2626 = load i32, ptr %1948, align 4, !tbaa !22
  %2627 = icmp eq i32 %2626, 1
  br i1 %2627, label %2650, label %2628

2628:                                             ; preds = %2623
  %2629 = load i32, ptr %240, align 4, !tbaa !5
  %2630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2631 = call i32 @s2n_print_stacktrace(ptr noundef %2630) #12
  %2632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2633 = trunc nuw i8 %2632 to i1
  br i1 %2633, label %2634, label %2638

2634:                                             ; preds = %2628
  %2635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2636 = call i32 @fileno(ptr noundef %2635) #12
  %2637 = call i32 @isatty(i32 noundef %2636) #12
  %.not354 = icmp eq i32 %2637, 0
  br i1 %.not354, label %2638, label %2639

2638:                                             ; preds = %2634, %2628
  br label %2639

2639:                                             ; preds = %2634, %2638
  %.str.5.sink1313 = phi ptr [ @.str.5, %2638 ], [ @.str.2, %2634 ]
  store i32 %2629, ptr %240, align 4, !tbaa !5
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = load i32, ptr %186, align 4, !tbaa !5
  %2643 = call ptr @s2n_strerror(i32 noundef %2642, ptr noundef nonnull @.str.4) #12
  %2644 = load i32, ptr %186, align 4, !tbaa !5
  %2645 = call ptr @s2n_strerror_debug(i32 noundef %2644, ptr noundef nonnull @.str.4) #12
  %2646 = load i32, ptr %240, align 4, !tbaa !5
  %2647 = call ptr @strerror(i32 noundef %2646) #12
  %2648 = load i32, ptr %240, align 4, !tbaa !5
  %2649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2640, ptr noundef nonnull %.str.5.sink1313, i32 noundef %2641, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %2643, ptr noundef %2645, ptr noundef %2647, i32 noundef %2648) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2650:                                             ; preds = %2623
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #12
  store i8 0, ptr %32, align 1, !tbaa !11
  %2651 = add nsw i32 %2624, 2
  store i32 %2651, ptr @test_count, align 4, !tbaa !5
  %2652 = load ptr, ptr %30, align 8, !tbaa !9
  %2653 = getelementptr inbounds i8, ptr %2652, i64 2896
  %2654 = call i32 @s2n_client_hello_has_extension(ptr noundef nonnull %2653, i16 noundef zeroext 43, ptr noundef nonnull %32) #12
  %2655 = icmp eq i32 %2654, -1
  br i1 %2655, label %2656, label %2678

2656:                                             ; preds = %2650
  %2657 = load i32, ptr %240, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = call i32 @s2n_print_stacktrace(ptr noundef %2658) #12
  %2660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2661 = trunc nuw i8 %2660 to i1
  br i1 %2661, label %2662, label %2666

2662:                                             ; preds = %2656
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = call i32 @fileno(ptr noundef %2663) #12
  %2665 = call i32 @isatty(i32 noundef %2664) #12
  %.not357 = icmp eq i32 %2665, 0
  br i1 %.not357, label %2666, label %2667

2666:                                             ; preds = %2662, %2656
  br label %2667

2667:                                             ; preds = %2662, %2666
  %.str.5.sink1322 = phi ptr [ @.str.5, %2666 ], [ @.str.2, %2662 ]
  store i32 %2657, ptr %240, align 4, !tbaa !5
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = load i32, ptr @test_count, align 4, !tbaa !5
  %2670 = load i32, ptr %186, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror(i32 noundef %2670, ptr noundef nonnull @.str.4) #12
  %2672 = load i32, ptr %186, align 4, !tbaa !5
  %2673 = call ptr @s2n_strerror_debug(i32 noundef %2672, ptr noundef nonnull @.str.4) #12
  %2674 = load i32, ptr %240, align 4, !tbaa !5
  %2675 = call ptr @strerror(i32 noundef %2674) #12
  %2676 = load i32, ptr %240, align 4, !tbaa !5
  %2677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2668, ptr noundef nonnull %.str.5.sink1322, i32 noundef %2669, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %2671, ptr noundef %2673, ptr noundef %2675, i32 noundef %2676) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2678:                                             ; preds = %2650
  %2679 = load i32, ptr @test_count, align 4, !tbaa !5
  %2680 = add nsw i32 %2679, 1
  store i32 %2680, ptr @test_count, align 4, !tbaa !5
  %2681 = load i8, ptr %32, align 1, !tbaa !11, !range !13, !noundef !14
  %2682 = trunc nuw i8 %2681 to i1
  br i1 %2682, label %2705, label %2683

2683:                                             ; preds = %2678
  %2684 = load i32, ptr %240, align 4, !tbaa !5
  %2685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2686 = call i32 @s2n_print_stacktrace(ptr noundef %2685) #12
  %2687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2688 = trunc nuw i8 %2687 to i1
  br i1 %2688, label %2689, label %2693

2689:                                             ; preds = %2683
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2691 = call i32 @fileno(ptr noundef %2690) #12
  %2692 = call i32 @isatty(i32 noundef %2691) #12
  %.not355 = icmp eq i32 %2692, 0
  br i1 %.not355, label %2693, label %2694

2693:                                             ; preds = %2689, %2683
  br label %2694

2694:                                             ; preds = %2689, %2693
  %.str.5.sink1331 = phi ptr [ @.str.5, %2693 ], [ @.str.2, %2689 ]
  store i32 %2684, ptr %240, align 4, !tbaa !5
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = load i32, ptr @test_count, align 4, !tbaa !5
  %2697 = load i32, ptr %186, align 4, !tbaa !5
  %2698 = call ptr @s2n_strerror(i32 noundef %2697, ptr noundef nonnull @.str.4) #12
  %2699 = load i32, ptr %186, align 4, !tbaa !5
  %2700 = call ptr @s2n_strerror_debug(i32 noundef %2699, ptr noundef nonnull @.str.4) #12
  %2701 = load i32, ptr %240, align 4, !tbaa !5
  %2702 = call ptr @strerror(i32 noundef %2701) #12
  %2703 = load i32, ptr %240, align 4, !tbaa !5
  %2704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2695, ptr noundef nonnull %.str.5.sink1331, i32 noundef %2696, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %2698, ptr noundef %2700, ptr noundef %2702, i32 noundef %2703) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2705:                                             ; preds = %2678
  %2706 = add nsw i32 %2679, 2
  store i32 %2706, ptr @test_count, align 4, !tbaa !5
  %2707 = load ptr, ptr %30, align 8, !tbaa !9
  %2708 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef %2707) #12
  %2709 = icmp eq i32 %2708, %indvars.iv479
  br i1 %2709, label %2732, label %2710

2710:                                             ; preds = %2705
  %2711 = load i32, ptr %240, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = call i32 @s2n_print_stacktrace(ptr noundef %2712) #12
  %2714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2715 = trunc nuw i8 %2714 to i1
  br i1 %2715, label %2716, label %2720

2716:                                             ; preds = %2710
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = call i32 @fileno(ptr noundef %2717) #12
  %2719 = call i32 @isatty(i32 noundef %2718) #12
  %.not356 = icmp eq i32 %2719, 0
  br i1 %.not356, label %2720, label %2721

2720:                                             ; preds = %2716, %2710
  br label %2721

2721:                                             ; preds = %2716, %2720
  %.str.5.sink1340 = phi ptr [ @.str.5, %2720 ], [ @.str.2, %2716 ]
  store i32 %2711, ptr %240, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = load i32, ptr %186, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror(i32 noundef %2724, ptr noundef nonnull @.str.4) #12
  %2726 = load i32, ptr %186, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror_debug(i32 noundef %2726, ptr noundef nonnull @.str.4) #12
  %2728 = load i32, ptr %240, align 4, !tbaa !5
  %2729 = call ptr @strerror(i32 noundef %2728) #12
  %2730 = load i32, ptr %240, align 4, !tbaa !5
  %2731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2722, ptr noundef nonnull %.str.5.sink1340, i32 noundef %2723, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2725, ptr noundef %2727, ptr noundef %2729, i32 noundef %2730) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2732:                                             ; preds = %2705
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #12
  %2733 = call i32 @s2n_io_pair_close(ptr noundef nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #12
  %2734 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  %2735 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %28) #12
  %2736 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  %indvars.iv.next480 = add nuw nsw i32 %indvars.iv479, 1
  %exitcond482.not = icmp eq i32 %indvars.iv.next480, 34
  br i1 %exitcond482.not, label %2342, label %2344, !llvm.loop !55

2737:                                             ; preds = %2342
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #12
  %2738 = call ptr @s2n_config_new() #12
  store ptr %2738, ptr %33, align 8, !tbaa !9
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = add nsw i32 %2739, 1
  store i32 %2740, ptr @test_count, align 4, !tbaa !5
  %2741 = load ptr, ptr %3, align 8, !tbaa !9
  %2742 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2738, ptr noundef %2741) #12
  %2743 = icmp eq i32 %2742, -1
  br i1 %2743, label %2744, label %2766

2744:                                             ; preds = %2737
  %2745 = load i32, ptr %240, align 4, !tbaa !5
  %2746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2747 = call i32 @s2n_print_stacktrace(ptr noundef %2746) #12
  %2748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2749 = trunc nuw i8 %2748 to i1
  br i1 %2749, label %2750, label %2754

2750:                                             ; preds = %2744
  %2751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2752 = call i32 @fileno(ptr noundef %2751) #12
  %2753 = call i32 @isatty(i32 noundef %2752) #12
  %.not352 = icmp eq i32 %2753, 0
  br i1 %.not352, label %2754, label %2755

2754:                                             ; preds = %2750, %2744
  br label %2755

2755:                                             ; preds = %2750, %2754
  %.str.5.sink1349 = phi ptr [ @.str.5, %2754 ], [ @.str.2, %2750 ]
  store i32 %2745, ptr %240, align 4, !tbaa !5
  %2756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2757 = load i32, ptr @test_count, align 4, !tbaa !5
  %2758 = load i32, ptr %186, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror(i32 noundef %2758, ptr noundef nonnull @.str.4) #12
  %2760 = load i32, ptr %186, align 4, !tbaa !5
  %2761 = call ptr @s2n_strerror_debug(i32 noundef %2760, ptr noundef nonnull @.str.4) #12
  %2762 = load i32, ptr %240, align 4, !tbaa !5
  %2763 = call ptr @strerror(i32 noundef %2762) #12
  %2764 = load i32, ptr %240, align 4, !tbaa !5
  %2765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2756, ptr noundef nonnull %.str.5.sink1349, i32 noundef %2757, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %2759, ptr noundef %2761, ptr noundef %2763, i32 noundef %2764) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2766:                                             ; preds = %2737
  %2767 = load i32, ptr @test_count, align 4, !tbaa !5
  %2768 = add nsw i32 %2767, 1
  store i32 %2768, ptr @test_count, align 4, !tbaa !5
  %2769 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2738, ptr noundef nonnull @.str.20) #12
  %2770 = icmp eq i32 %2769, -1
  br i1 %2770, label %2771, label %2793

2771:                                             ; preds = %2766
  %2772 = load i32, ptr %240, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = call i32 @s2n_print_stacktrace(ptr noundef %2773) #12
  %2775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2776 = trunc nuw i8 %2775 to i1
  br i1 %2776, label %2777, label %2781

2777:                                             ; preds = %2771
  %2778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2779 = call i32 @fileno(ptr noundef %2778) #12
  %2780 = call i32 @isatty(i32 noundef %2779) #12
  %.not351 = icmp eq i32 %2780, 0
  br i1 %.not351, label %2781, label %2782

2781:                                             ; preds = %2777, %2771
  br label %2782

2782:                                             ; preds = %2777, %2781
  %.str.5.sink1358 = phi ptr [ @.str.5, %2781 ], [ @.str.2, %2777 ]
  store i32 %2772, ptr %240, align 4, !tbaa !5
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = load i32, ptr %186, align 4, !tbaa !5
  %2786 = call ptr @s2n_strerror(i32 noundef %2785, ptr noundef nonnull @.str.4) #12
  %2787 = load i32, ptr %186, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror_debug(i32 noundef %2787, ptr noundef nonnull @.str.4) #12
  %2789 = load i32, ptr %240, align 4, !tbaa !5
  %2790 = call ptr @strerror(i32 noundef %2789) #12
  %2791 = load i32, ptr %240, align 4, !tbaa !5
  %2792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2783, ptr noundef nonnull %.str.5.sink1358, i32 noundef %2784, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 350, ptr noundef %2786, ptr noundef %2788, ptr noundef %2790, i32 noundef %2791) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2793:                                             ; preds = %2766
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %34) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %34, ptr noundef nonnull align 4 dereferenceable(12) @__const.main.context, i64 12, i1 false)
  %2794 = load i32, ptr @test_count, align 4, !tbaa !5
  %2795 = add nsw i32 %2794, 1
  store i32 %2795, ptr @test_count, align 4, !tbaa !5
  %2796 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %2738, ptr noundef nonnull @s2n_overwrite_client_hello_cb, ptr noundef nonnull %34) #12
  %2797 = icmp eq i32 %2796, -1
  br i1 %2797, label %2798, label %2820

2798:                                             ; preds = %2793
  %2799 = load i32, ptr %240, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = call i32 @s2n_print_stacktrace(ptr noundef %2800) #12
  %2802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2803 = trunc nuw i8 %2802 to i1
  br i1 %2803, label %2804, label %2808

2804:                                             ; preds = %2798
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = call i32 @fileno(ptr noundef %2805) #12
  %2807 = call i32 @isatty(i32 noundef %2806) #12
  %.not350 = icmp eq i32 %2807, 0
  br i1 %.not350, label %2808, label %2809

2808:                                             ; preds = %2804, %2798
  br label %2809

2809:                                             ; preds = %2804, %2808
  %.str.5.sink1367 = phi ptr [ @.str.5, %2808 ], [ @.str.2, %2804 ]
  store i32 %2799, ptr %240, align 4, !tbaa !5
  %2810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2811 = load i32, ptr @test_count, align 4, !tbaa !5
  %2812 = load i32, ptr %186, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror(i32 noundef %2812, ptr noundef nonnull @.str.4) #12
  %2814 = load i32, ptr %186, align 4, !tbaa !5
  %2815 = call ptr @s2n_strerror_debug(i32 noundef %2814, ptr noundef nonnull @.str.4) #12
  %2816 = load i32, ptr %240, align 4, !tbaa !5
  %2817 = call ptr @strerror(i32 noundef %2816) #12
  %2818 = load i32, ptr %240, align 4, !tbaa !5
  %2819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2810, ptr noundef nonnull %.str.5.sink1367, i32 noundef %2811, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2813, ptr noundef %2815, ptr noundef %2817, i32 noundef %2818) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2820:                                             ; preds = %2793
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #12
  %2821 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2821, ptr %35, align 8, !tbaa !9
  %2822 = load i32, ptr @test_count, align 4, !tbaa !5
  %2823 = add nsw i32 %2822, 1
  store i32 %2823, ptr @test_count, align 4, !tbaa !5
  %2824 = icmp eq ptr %2821, null
  br i1 %2824, label %2825, label %2847

2825:                                             ; preds = %2820
  %2826 = load i32, ptr %240, align 4, !tbaa !5
  %2827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2828 = call i32 @s2n_print_stacktrace(ptr noundef %2827) #12
  %2829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2830 = trunc nuw i8 %2829 to i1
  br i1 %2830, label %2831, label %2835

2831:                                             ; preds = %2825
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = call i32 @fileno(ptr noundef %2832) #12
  %2834 = call i32 @isatty(i32 noundef %2833) #12
  %.not349 = icmp eq i32 %2834, 0
  br i1 %.not349, label %2835, label %2836

2835:                                             ; preds = %2831, %2825
  br label %2836

2836:                                             ; preds = %2831, %2835
  %.str.5.sink1376 = phi ptr [ @.str.5, %2835 ], [ @.str.2, %2831 ]
  store i32 %2826, ptr %240, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = load i32, ptr @test_count, align 4, !tbaa !5
  %2839 = load i32, ptr %186, align 4, !tbaa !5
  %2840 = call ptr @s2n_strerror(i32 noundef %2839, ptr noundef nonnull @.str.4) #12
  %2841 = load i32, ptr %186, align 4, !tbaa !5
  %2842 = call ptr @s2n_strerror_debug(i32 noundef %2841, ptr noundef nonnull @.str.4) #12
  %2843 = load i32, ptr %240, align 4, !tbaa !5
  %2844 = call ptr @strerror(i32 noundef %2843) #12
  %2845 = load i32, ptr %240, align 4, !tbaa !5
  %2846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2837, ptr noundef nonnull %.str.5.sink1376, i32 noundef %2838, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %2840, ptr noundef %2842, ptr noundef %2844, i32 noundef %2845) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2847:                                             ; preds = %2820
  %2848 = add nsw i32 %2822, 2
  store i32 %2848, ptr @test_count, align 4, !tbaa !5
  %2849 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2821, ptr noundef %2738) #12
  %2850 = icmp eq i32 %2849, -1
  br i1 %2850, label %2851, label %2873

2851:                                             ; preds = %2847
  %2852 = load i32, ptr %240, align 4, !tbaa !5
  %2853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2854 = call i32 @s2n_print_stacktrace(ptr noundef %2853) #12
  %2855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2856 = trunc nuw i8 %2855 to i1
  br i1 %2856, label %2857, label %2861

2857:                                             ; preds = %2851
  %2858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2859 = call i32 @fileno(ptr noundef %2858) #12
  %2860 = call i32 @isatty(i32 noundef %2859) #12
  %.not348 = icmp eq i32 %2860, 0
  br i1 %.not348, label %2861, label %2862

2861:                                             ; preds = %2857, %2851
  br label %2862

2862:                                             ; preds = %2857, %2861
  %.str.5.sink1385 = phi ptr [ @.str.5, %2861 ], [ @.str.2, %2857 ]
  store i32 %2852, ptr %240, align 4, !tbaa !5
  %2863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2864 = load i32, ptr @test_count, align 4, !tbaa !5
  %2865 = load i32, ptr %186, align 4, !tbaa !5
  %2866 = call ptr @s2n_strerror(i32 noundef %2865, ptr noundef nonnull @.str.4) #12
  %2867 = load i32, ptr %186, align 4, !tbaa !5
  %2868 = call ptr @s2n_strerror_debug(i32 noundef %2867, ptr noundef nonnull @.str.4) #12
  %2869 = load i32, ptr %240, align 4, !tbaa !5
  %2870 = call ptr @strerror(i32 noundef %2869) #12
  %2871 = load i32, ptr %240, align 4, !tbaa !5
  %2872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2863, ptr noundef nonnull %.str.5.sink1385, i32 noundef %2864, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 362, ptr noundef %2866, ptr noundef %2868, ptr noundef %2870, i32 noundef %2871) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2873:                                             ; preds = %2847
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  %2874 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2874, ptr %36, align 8, !tbaa !9
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = add nsw i32 %2875, 1
  store i32 %2876, ptr @test_count, align 4, !tbaa !5
  %2877 = icmp eq ptr %2874, null
  br i1 %2877, label %2878, label %2900

2878:                                             ; preds = %2873
  %2879 = load i32, ptr %240, align 4, !tbaa !5
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = call i32 @s2n_print_stacktrace(ptr noundef %2880) #12
  %2882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2883 = trunc nuw i8 %2882 to i1
  br i1 %2883, label %2884, label %2888

2884:                                             ; preds = %2878
  %2885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2886 = call i32 @fileno(ptr noundef %2885) #12
  %2887 = call i32 @isatty(i32 noundef %2886) #12
  %.not347 = icmp eq i32 %2887, 0
  br i1 %.not347, label %2888, label %2889

2888:                                             ; preds = %2884, %2878
  br label %2889

2889:                                             ; preds = %2884, %2888
  %.str.5.sink1394 = phi ptr [ @.str.5, %2888 ], [ @.str.2, %2884 ]
  store i32 %2879, ptr %240, align 4, !tbaa !5
  %2890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2891 = load i32, ptr @test_count, align 4, !tbaa !5
  %2892 = load i32, ptr %186, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror(i32 noundef %2892, ptr noundef nonnull @.str.4) #12
  %2894 = load i32, ptr %186, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror_debug(i32 noundef %2894, ptr noundef nonnull @.str.4) #12
  %2896 = load i32, ptr %240, align 4, !tbaa !5
  %2897 = call ptr @strerror(i32 noundef %2896) #12
  %2898 = load i32, ptr %240, align 4, !tbaa !5
  %2899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2890, ptr noundef nonnull %.str.5.sink1394, i32 noundef %2891, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %2893, ptr noundef %2895, ptr noundef %2897, i32 noundef %2898) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2900:                                             ; preds = %2873
  %2901 = add nsw i32 %2875, 2
  store i32 %2901, ptr @test_count, align 4, !tbaa !5
  %2902 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2874, ptr noundef %2738) #12
  %2903 = icmp eq i32 %2902, -1
  br i1 %2903, label %2904, label %2926

2904:                                             ; preds = %2900
  %2905 = load i32, ptr %240, align 4, !tbaa !5
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2907 = call i32 @s2n_print_stacktrace(ptr noundef %2906) #12
  %2908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2909 = trunc nuw i8 %2908 to i1
  br i1 %2909, label %2910, label %2914

2910:                                             ; preds = %2904
  %2911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2912 = call i32 @fileno(ptr noundef %2911) #12
  %2913 = call i32 @isatty(i32 noundef %2912) #12
  %.not346 = icmp eq i32 %2913, 0
  br i1 %.not346, label %2914, label %2915

2914:                                             ; preds = %2910, %2904
  br label %2915

2915:                                             ; preds = %2910, %2914
  %.str.5.sink1403 = phi ptr [ @.str.5, %2914 ], [ @.str.2, %2910 ]
  store i32 %2905, ptr %240, align 4, !tbaa !5
  %2916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = load i32, ptr %186, align 4, !tbaa !5
  %2919 = call ptr @s2n_strerror(i32 noundef %2918, ptr noundef nonnull @.str.4) #12
  %2920 = load i32, ptr %186, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror_debug(i32 noundef %2920, ptr noundef nonnull @.str.4) #12
  %2922 = load i32, ptr %240, align 4, !tbaa !5
  %2923 = call ptr @strerror(i32 noundef %2922) #12
  %2924 = load i32, ptr %240, align 4, !tbaa !5
  %2925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2916, ptr noundef nonnull %.str.5.sink1403, i32 noundef %2917, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %2919, ptr noundef %2921, ptr noundef %2923, i32 noundef %2924) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2926:                                             ; preds = %2900
  %2927 = load i32, ptr @test_count, align 4, !tbaa !5
  %2928 = add nsw i32 %2927, 1
  store i32 %2928, ptr @test_count, align 4, !tbaa !5
  %2929 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %2874, i32 noundef 1) #12
  %2930 = icmp eq i32 %2929, -1
  br i1 %2930, label %2931, label %2953

2931:                                             ; preds = %2926
  %2932 = load i32, ptr %240, align 4, !tbaa !5
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = call i32 @s2n_print_stacktrace(ptr noundef %2933) #12
  %2935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2936 = trunc nuw i8 %2935 to i1
  br i1 %2936, label %2937, label %2941

2937:                                             ; preds = %2931
  %2938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2939 = call i32 @fileno(ptr noundef %2938) #12
  %2940 = call i32 @isatty(i32 noundef %2939) #12
  %.not345 = icmp eq i32 %2940, 0
  br i1 %.not345, label %2941, label %2942

2941:                                             ; preds = %2937, %2931
  br label %2942

2942:                                             ; preds = %2937, %2941
  %.str.5.sink1412 = phi ptr [ @.str.5, %2941 ], [ @.str.2, %2937 ]
  store i32 %2932, ptr %240, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = load i32, ptr %186, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror(i32 noundef %2945, ptr noundef nonnull @.str.4) #12
  %2947 = load i32, ptr %186, align 4, !tbaa !5
  %2948 = call ptr @s2n_strerror_debug(i32 noundef %2947, ptr noundef nonnull @.str.4) #12
  %2949 = load i32, ptr %240, align 4, !tbaa !5
  %2950 = call ptr @strerror(i32 noundef %2949) #12
  %2951 = load i32, ptr %240, align 4, !tbaa !5
  %2952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef nonnull %.str.5.sink1412, i32 noundef %2944, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %2946, ptr noundef %2948, ptr noundef %2950, i32 noundef %2951) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2953:                                             ; preds = %2926
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #12
  store i64 0, ptr %37, align 8
  %2954 = load i32, ptr @test_count, align 4, !tbaa !5
  %2955 = add nsw i32 %2954, 1
  store i32 %2955, ptr @test_count, align 4, !tbaa !5
  %2956 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %37) #12
  %2957 = icmp eq i32 %2956, -1
  br i1 %2957, label %2958, label %2980

2958:                                             ; preds = %2953
  %2959 = load i32, ptr %240, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = call i32 @s2n_print_stacktrace(ptr noundef %2960) #12
  %2962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2963 = trunc nuw i8 %2962 to i1
  br i1 %2963, label %2964, label %2968

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

2968:                                             ; preds = %2964, %2958
  br label %2969

2969:                                             ; preds = %2964, %2968
  %.str.5.sink1421 = phi ptr [ @.str.5, %2968 ], [ @.str.2, %2964 ]
  store i32 %2959, ptr %240, align 4, !tbaa !5
  %2970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2971 = load i32, ptr @test_count, align 4, !tbaa !5
  %2972 = load i32, ptr %186, align 4, !tbaa !5
  %2973 = call ptr @s2n_strerror(i32 noundef %2972, ptr noundef nonnull @.str.4) #12
  %2974 = load i32, ptr %186, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror_debug(i32 noundef %2974, ptr noundef nonnull @.str.4) #12
  %2976 = load i32, ptr %240, align 4, !tbaa !5
  %2977 = call ptr @strerror(i32 noundef %2976) #12
  %2978 = load i32, ptr %240, align 4, !tbaa !5
  %2979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2970, ptr noundef nonnull %.str.5.sink1421, i32 noundef %2971, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %2973, ptr noundef %2975, ptr noundef %2977, i32 noundef %2978) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2980:                                             ; preds = %2953
  %2981 = load i32, ptr @test_count, align 4, !tbaa !5
  %2982 = add nsw i32 %2981, 1
  store i32 %2982, ptr @test_count, align 4, !tbaa !5
  %2983 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %2821, ptr noundef nonnull %2874, ptr noundef nonnull %37) #12
  %2984 = icmp eq i32 %2983, -1
  br i1 %2984, label %2985, label %3007

2985:                                             ; preds = %2980
  %2986 = load i32, ptr %240, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = call i32 @s2n_print_stacktrace(ptr noundef %2987) #12
  %2989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2990 = trunc nuw i8 %2989 to i1
  br i1 %2990, label %2991, label %2995

2991:                                             ; preds = %2985
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = call i32 @fileno(ptr noundef %2992) #12
  %2994 = call i32 @isatty(i32 noundef %2993) #12
  %.not343 = icmp eq i32 %2994, 0
  br i1 %.not343, label %2995, label %2996

2995:                                             ; preds = %2991, %2985
  br label %2996

2996:                                             ; preds = %2991, %2995
  %.str.5.sink1430 = phi ptr [ @.str.5, %2995 ], [ @.str.2, %2991 ]
  store i32 %2986, ptr %240, align 4, !tbaa !5
  %2997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2998 = load i32, ptr @test_count, align 4, !tbaa !5
  %2999 = load i32, ptr %186, align 4, !tbaa !5
  %3000 = call ptr @s2n_strerror(i32 noundef %2999, ptr noundef nonnull @.str.4) #12
  %3001 = load i32, ptr %186, align 4, !tbaa !5
  %3002 = call ptr @s2n_strerror_debug(i32 noundef %3001, ptr noundef nonnull @.str.4) #12
  %3003 = load i32, ptr %240, align 4, !tbaa !5
  %3004 = call ptr @strerror(i32 noundef %3003) #12
  %3005 = load i32, ptr %240, align 4, !tbaa !5
  %3006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2997, ptr noundef nonnull %.str.5.sink1430, i32 noundef %2998, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 372, ptr noundef %3000, ptr noundef %3002, ptr noundef %3004, i32 noundef %3005) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3007:                                             ; preds = %2980
  %3008 = load i32, ptr @test_count, align 4, !tbaa !5
  %3009 = add nsw i32 %3008, 1
  store i32 %3009, ptr @test_count, align 4, !tbaa !5
  %3010 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef nonnull %2874, ptr noundef nonnull %2821, i32 noundef 1) #12
  %3011 = call zeroext i1 @s2n_result_is_error(i32 %3010)
  br i1 %3011, label %3034, label %3012

3012:                                             ; preds = %3007
  %3013 = load i32, ptr %240, align 4, !tbaa !5
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = call i32 @s2n_print_stacktrace(ptr noundef %3014) #12
  %3016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3017 = trunc nuw i8 %3016 to i1
  br i1 %3017, label %3018, label %3022

3018:                                             ; preds = %3012
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @fileno(ptr noundef %3019) #12
  %3021 = call i32 @isatty(i32 noundef %3020) #12
  %.not329 = icmp eq i32 %3021, 0
  br i1 %.not329, label %3022, label %3023

3022:                                             ; preds = %3018, %3012
  br label %3023

3023:                                             ; preds = %3018, %3022
  %.str.5.sink1439 = phi ptr [ @.str.5, %3022 ], [ @.str.2, %3018 ]
  store i32 %3013, ptr %240, align 4, !tbaa !5
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = load i32, ptr %186, align 4, !tbaa !5
  %3027 = call ptr @s2n_strerror(i32 noundef %3026, ptr noundef nonnull @.str.4) #12
  %3028 = load i32, ptr %186, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror_debug(i32 noundef %3028, ptr noundef nonnull @.str.4) #12
  %3030 = load i32, ptr %240, align 4, !tbaa !5
  %3031 = call ptr @strerror(i32 noundef %3030) #12
  %3032 = load i32, ptr %240, align 4, !tbaa !5
  %3033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3024, ptr noundef nonnull %.str.5.sink1439, i32 noundef %3025, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %3027, ptr noundef %3029, ptr noundef %3031, i32 noundef %3032) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3034:                                             ; preds = %3007
  %3035 = load i32, ptr @test_count, align 4, !tbaa !5
  %3036 = add nsw i32 %3035, 1
  store i32 %3036, ptr @test_count, align 4, !tbaa !5
  %3037 = load i32, ptr %186, align 4, !tbaa !5
  %3038 = icmp eq i32 %3037, 335544322
  br i1 %3038, label %3061, label %3039

3039:                                             ; preds = %3034
  %3040 = load i32, ptr %240, align 4, !tbaa !5
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @s2n_print_stacktrace(ptr noundef %3041) #12
  %3043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3044 = trunc nuw i8 %3043 to i1
  br i1 %3044, label %3045, label %3049

3045:                                             ; preds = %3039
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = call i32 @fileno(ptr noundef %3046) #12
  %3048 = call i32 @isatty(i32 noundef %3047) #12
  %.not330 = icmp eq i32 %3048, 0
  br i1 %.not330, label %3049, label %3050

3049:                                             ; preds = %3045, %3039
  br label %3050

3050:                                             ; preds = %3045, %3049
  %.str.5.sink1448 = phi ptr [ @.str.5, %3049 ], [ @.str.2, %3045 ]
  store i32 %3040, ptr %240, align 4, !tbaa !5
  %3051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = load i32, ptr %186, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror(i32 noundef %3053, ptr noundef nonnull @.str.4) #12
  %3055 = load i32, ptr %186, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror_debug(i32 noundef %3055, ptr noundef nonnull @.str.4) #12
  %3057 = load i32, ptr %240, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #12
  %3059 = load i32, ptr %240, align 4, !tbaa !5
  %3060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3051, ptr noundef nonnull %.str.5.sink1448, i32 noundef %3052, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %3054, ptr noundef %3056, ptr noundef %3058, i32 noundef %3059) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3061:                                             ; preds = %3034
  %3062 = add nsw i32 %3035, 2
  store i32 %3062, ptr @test_count, align 4, !tbaa !5
  %3063 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %3064 = icmp eq ptr %3063, null
  br i1 %3064, label %3065, label %3087

3065:                                             ; preds = %3061
  %3066 = load i32, ptr %240, align 4, !tbaa !5
  %3067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3068 = call i32 @s2n_print_stacktrace(ptr noundef %3067) #12
  %3069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3070 = trunc nuw i8 %3069 to i1
  br i1 %3070, label %3071, label %3075

3071:                                             ; preds = %3065
  %3072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3073 = call i32 @fileno(ptr noundef %3072) #12
  %3074 = call i32 @isatty(i32 noundef %3073) #12
  %.not342 = icmp eq i32 %3074, 0
  br i1 %.not342, label %3075, label %3076

3075:                                             ; preds = %3071, %3065
  br label %3076

3076:                                             ; preds = %3071, %3075
  %.str.5.sink1457 = phi ptr [ @.str.5, %3075 ], [ @.str.2, %3071 ]
  store i32 %3066, ptr %240, align 4, !tbaa !5
  %3077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3078 = load i32, ptr @test_count, align 4, !tbaa !5
  %3079 = load i32, ptr %186, align 4, !tbaa !5
  %3080 = call ptr @s2n_strerror(i32 noundef %3079, ptr noundef nonnull @.str.4) #12
  %3081 = load i32, ptr %186, align 4, !tbaa !5
  %3082 = call ptr @s2n_strerror_debug(i32 noundef %3081, ptr noundef nonnull @.str.4) #12
  %3083 = load i32, ptr %240, align 4, !tbaa !5
  %3084 = call ptr @strerror(i32 noundef %3083) #12
  %3085 = load i32, ptr %240, align 4, !tbaa !5
  %3086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3077, ptr noundef nonnull %.str.5.sink1457, i32 noundef %3078, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %3080, ptr noundef %3082, ptr noundef %3084, i32 noundef %3085) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3087:                                             ; preds = %3061
  store i32 0, ptr %186, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %240, align 4, !tbaa !5
  %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 = getelementptr inbounds i8, ptr %34, i64 8
  %3091 = load i32, ptr %3090, align 4, !tbaa !22
  %3092 = icmp eq i32 %3091, 1
  br i1 %3092, label %3115, label %3093

3093:                                             ; preds = %3087
  %3094 = load i32, ptr %240, align 4, !tbaa !5
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = call i32 @s2n_print_stacktrace(ptr noundef %3095) #12
  %3097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3098 = trunc nuw i8 %3097 to i1
  br i1 %3098, label %3099, label %3103

3099:                                             ; preds = %3093
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = call i32 @fileno(ptr noundef %3100) #12
  %3102 = call i32 @isatty(i32 noundef %3101) #12
  %.not331 = icmp eq i32 %3102, 0
  br i1 %.not331, label %3103, label %3104

3103:                                             ; preds = %3099, %3093
  br label %3104

3104:                                             ; preds = %3099, %3103
  %.str.5.sink1466 = phi ptr [ @.str.5, %3103 ], [ @.str.2, %3099 ]
  store i32 %3094, ptr %240, align 4, !tbaa !5
  %3105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3106 = load i32, ptr @test_count, align 4, !tbaa !5
  %3107 = load i32, ptr %186, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror(i32 noundef %3107, ptr noundef nonnull @.str.4) #12
  %3109 = load i32, ptr %186, align 4, !tbaa !5
  %3110 = call ptr @s2n_strerror_debug(i32 noundef %3109, ptr noundef nonnull @.str.4) #12
  %3111 = load i32, ptr %240, align 4, !tbaa !5
  %3112 = call ptr @strerror(i32 noundef %3111) #12
  %3113 = load i32, ptr %240, align 4, !tbaa !5
  %3114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3105, ptr noundef nonnull %.str.5.sink1466, i32 noundef %3106, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %3108, ptr noundef %3110, ptr noundef %3112, i32 noundef %3113) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3115:                                             ; preds = %3087
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #12
  store i8 0, ptr %38, align 1, !tbaa !11
  %3116 = add nsw i32 %3088, 2
  store i32 %3116, ptr @test_count, align 4, !tbaa !5
  %3117 = getelementptr inbounds i8, ptr %2874, i64 2896
  %3118 = call i32 @s2n_client_hello_has_extension(ptr noundef nonnull %3117, i16 noundef zeroext 43, ptr noundef nonnull %38) #12
  %3119 = icmp eq i32 %3118, -1
  br i1 %3119, label %3120, label %3142

3120:                                             ; preds = %3115
  %3121 = load i32, ptr %240, align 4, !tbaa !5
  %3122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3123 = call i32 @s2n_print_stacktrace(ptr noundef %3122) #12
  %3124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3125 = trunc nuw i8 %3124 to i1
  br i1 %3125, label %3126, label %3130

3126:                                             ; preds = %3120
  %3127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3128 = call i32 @fileno(ptr noundef %3127) #12
  %3129 = call i32 @isatty(i32 noundef %3128) #12
  %.not341 = icmp eq i32 %3129, 0
  br i1 %.not341, label %3130, label %3131

3130:                                             ; preds = %3126, %3120
  br label %3131

3131:                                             ; preds = %3126, %3130
  %.str.5.sink1475 = phi ptr [ @.str.5, %3130 ], [ @.str.2, %3126 ]
  store i32 %3121, ptr %240, align 4, !tbaa !5
  %3132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3133 = load i32, ptr @test_count, align 4, !tbaa !5
  %3134 = load i32, ptr %186, align 4, !tbaa !5
  %3135 = call ptr @s2n_strerror(i32 noundef %3134, ptr noundef nonnull @.str.4) #12
  %3136 = load i32, ptr %186, align 4, !tbaa !5
  %3137 = call ptr @s2n_strerror_debug(i32 noundef %3136, ptr noundef nonnull @.str.4) #12
  %3138 = load i32, ptr %240, align 4, !tbaa !5
  %3139 = call ptr @strerror(i32 noundef %3138) #12
  %3140 = load i32, ptr %240, align 4, !tbaa !5
  %3141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3132, ptr noundef nonnull %.str.5.sink1475, i32 noundef %3133, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 381, ptr noundef %3135, ptr noundef %3137, ptr noundef %3139, i32 noundef %3140) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3142:                                             ; preds = %3115
  %3143 = load i32, ptr @test_count, align 4, !tbaa !5
  %3144 = add nsw i32 %3143, 1
  store i32 %3144, ptr @test_count, align 4, !tbaa !5
  %3145 = load i8, ptr %38, align 1, !tbaa !11, !range !13, !noundef !14
  %3146 = trunc nuw i8 %3145 to i1
  br i1 %3146, label %3169, label %3147

3147:                                             ; preds = %3142
  %3148 = load i32, ptr %240, align 4, !tbaa !5
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = call i32 @s2n_print_stacktrace(ptr noundef %3149) #12
  %3151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3152 = trunc nuw i8 %3151 to i1
  br i1 %3152, label %3153, label %3157

3153:                                             ; preds = %3147
  %3154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3155 = call i32 @fileno(ptr noundef %3154) #12
  %3156 = call i32 @isatty(i32 noundef %3155) #12
  %.not332 = icmp eq i32 %3156, 0
  br i1 %.not332, label %3157, label %3158

3157:                                             ; preds = %3153, %3147
  br label %3158

3158:                                             ; preds = %3153, %3157
  %.str.5.sink1484 = phi ptr [ @.str.5, %3157 ], [ @.str.2, %3153 ]
  store i32 %3148, ptr %240, align 4, !tbaa !5
  %3159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3160 = load i32, ptr @test_count, align 4, !tbaa !5
  %3161 = load i32, ptr %186, align 4, !tbaa !5
  %3162 = call ptr @s2n_strerror(i32 noundef %3161, ptr noundef nonnull @.str.4) #12
  %3163 = load i32, ptr %186, align 4, !tbaa !5
  %3164 = call ptr @s2n_strerror_debug(i32 noundef %3163, ptr noundef nonnull @.str.4) #12
  %3165 = load i32, ptr %240, align 4, !tbaa !5
  %3166 = call ptr @strerror(i32 noundef %3165) #12
  %3167 = load i32, ptr %240, align 4, !tbaa !5
  %3168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3159, ptr noundef nonnull %.str.5.sink1484, i32 noundef %3160, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %3162, ptr noundef %3164, ptr noundef %3166, i32 noundef %3167) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3169:                                             ; preds = %3142
  %3170 = add nsw i32 %3143, 2
  store i32 %3170, ptr @test_count, align 4, !tbaa !5
  %3171 = call i32 @s2n_connection_get_server_protocol_version(ptr noundef nonnull %2874) #12
  %3172 = icmp eq i32 %3171, 34
  br i1 %3172, label %3195, label %3173

3173:                                             ; preds = %3169
  %3174 = load i32, ptr %240, align 4, !tbaa !5
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = call i32 @s2n_print_stacktrace(ptr noundef %3175) #12
  %3177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3178 = trunc nuw i8 %3177 to i1
  br i1 %3178, label %3179, label %3183

3179:                                             ; preds = %3173
  %3180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3181 = call i32 @fileno(ptr noundef %3180) #12
  %3182 = call i32 @isatty(i32 noundef %3181) #12
  %.not333 = icmp eq i32 %3182, 0
  br i1 %.not333, label %3183, label %3184

3183:                                             ; preds = %3179, %3173
  br label %3184

3184:                                             ; preds = %3179, %3183
  %.str.5.sink1493 = phi ptr [ @.str.5, %3183 ], [ @.str.2, %3179 ]
  store i32 %3174, ptr %240, align 4, !tbaa !5
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = load i32, ptr %186, align 4, !tbaa !5
  %3188 = call ptr @s2n_strerror(i32 noundef %3187, ptr noundef nonnull @.str.4) #12
  %3189 = load i32, ptr %186, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror_debug(i32 noundef %3189, ptr noundef nonnull @.str.4) #12
  %3191 = load i32, ptr %240, align 4, !tbaa !5
  %3192 = call ptr @strerror(i32 noundef %3191) #12
  %3193 = load i32, ptr %240, align 4, !tbaa !5
  %3194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3185, ptr noundef nonnull %.str.5.sink1493, i32 noundef %3186, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %3188, ptr noundef %3190, ptr noundef %3192, i32 noundef %3193) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3195:                                             ; preds = %3169
  %3196 = load i32, ptr @test_count, align 4, !tbaa !5
  %3197 = add nsw i32 %3196, 1
  store i32 %3197, ptr @test_count, align 4, !tbaa !5
  %3198 = call i32 @s2n_connection_get_client_protocol_version(ptr noundef nonnull %2874) #12
  %3199 = load i8, ptr @s2n_unknown_protocol_version, align 1, !tbaa !56
  %3200 = zext i8 %3199 to i32
  %3201 = icmp eq i32 %3198, %3200
  br i1 %3201, label %3224, label %3202

3202:                                             ; preds = %3195
  %3203 = load i32, ptr %240, align 4, !tbaa !5
  %3204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3205 = call i32 @s2n_print_stacktrace(ptr noundef %3204) #12
  %3206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3207 = trunc nuw i8 %3206 to i1
  br i1 %3207, label %3208, label %3212

3208:                                             ; preds = %3202
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3210 = call i32 @fileno(ptr noundef %3209) #12
  %3211 = call i32 @isatty(i32 noundef %3210) #12
  %.not334 = icmp eq i32 %3211, 0
  br i1 %.not334, label %3212, label %3213

3212:                                             ; preds = %3208, %3202
  br label %3213

3213:                                             ; preds = %3208, %3212
  %.str.5.sink1502 = phi ptr [ @.str.5, %3212 ], [ @.str.2, %3208 ]
  store i32 %3203, ptr %240, align 4, !tbaa !5
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = load i32, ptr @test_count, align 4, !tbaa !5
  %3216 = load i32, ptr %186, align 4, !tbaa !5
  %3217 = call ptr @s2n_strerror(i32 noundef %3216, ptr noundef nonnull @.str.4) #12
  %3218 = load i32, ptr %186, align 4, !tbaa !5
  %3219 = call ptr @s2n_strerror_debug(i32 noundef %3218, ptr noundef nonnull @.str.4) #12
  %3220 = load i32, ptr %240, align 4, !tbaa !5
  %3221 = call ptr @strerror(i32 noundef %3220) #12
  %3222 = load i32, ptr %240, align 4, !tbaa !5
  %3223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3214, ptr noundef nonnull %.str.5.sink1502, i32 noundef %3215, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %3217, ptr noundef %3219, ptr noundef %3221, i32 noundef %3222) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3224:                                             ; preds = %3195
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = add nsw i32 %3225, 1
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = call i32 @s2n_connection_get_actual_protocol_version(ptr noundef nonnull %2874) #12
  %3228 = load i8, ptr @s2n_unknown_protocol_version, align 1, !tbaa !56
  %3229 = zext i8 %3228 to i32
  %3230 = icmp eq i32 %3227, %3229
  br i1 %3230, label %3253, label %3231

3231:                                             ; preds = %3224
  %3232 = load i32, ptr %240, align 4, !tbaa !5
  %3233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3234 = call i32 @s2n_print_stacktrace(ptr noundef %3233) #12
  %3235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3236 = trunc nuw i8 %3235 to i1
  br i1 %3236, label %3237, label %3241

3237:                                             ; preds = %3231
  %3238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3239 = call i32 @fileno(ptr noundef %3238) #12
  %3240 = call i32 @isatty(i32 noundef %3239) #12
  %.not335 = icmp eq i32 %3240, 0
  br i1 %.not335, label %3241, label %3242

3241:                                             ; preds = %3237, %3231
  br label %3242

3242:                                             ; preds = %3237, %3241
  %.str.5.sink1511 = phi ptr [ @.str.5, %3241 ], [ @.str.2, %3237 ]
  store i32 %3232, ptr %240, align 4, !tbaa !5
  %3243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3244 = load i32, ptr @test_count, align 4, !tbaa !5
  %3245 = load i32, ptr %186, align 4, !tbaa !5
  %3246 = call ptr @s2n_strerror(i32 noundef %3245, ptr noundef nonnull @.str.4) #12
  %3247 = load i32, ptr %186, align 4, !tbaa !5
  %3248 = call ptr @s2n_strerror_debug(i32 noundef %3247, ptr noundef nonnull @.str.4) #12
  %3249 = load i32, ptr %240, align 4, !tbaa !5
  %3250 = call ptr @strerror(i32 noundef %3249) #12
  %3251 = load i32, ptr %240, align 4, !tbaa !5
  %3252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3243, ptr noundef nonnull %.str.5.sink1511, i32 noundef %3244, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %3246, ptr noundef %3248, ptr noundef %3250, i32 noundef %3251) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3253:                                             ; preds = %3224
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #12
  %3254 = call i32 @s2n_io_pair_close(ptr noundef nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #12
  %3255 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  %3256 = 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 12, ptr nonnull %34) #12
  %3257 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  br label %3258

3258:                                             ; preds = %3253, %2342
  %3259 = call i32 @s2n_cleanup() #12
  %3260 = icmp eq i32 %3259, -1
  br i1 %3260, label %3261, label %3283

3261:                                             ; preds = %3258
  %3262 = load i32, ptr %240, align 4, !tbaa !5
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @s2n_print_stacktrace(ptr noundef %3263) #12
  %3265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3266 = trunc nuw i8 %3265 to i1
  br i1 %3266, label %3267, label %3271

3267:                                             ; preds = %3261
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = call i32 @fileno(ptr noundef %3268) #12
  %3270 = call i32 @isatty(i32 noundef %3269) #12
  %.not340 = icmp eq i32 %3270, 0
  br i1 %.not340, label %3271, label %3272

3271:                                             ; preds = %3267, %3261
  br label %3272

3272:                                             ; preds = %3267, %3271
  %.str.5.sink1520 = phi ptr [ @.str.5, %3271 ], [ @.str.2, %3267 ]
  store i32 %3262, ptr %240, align 4, !tbaa !5
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = load i32, ptr @test_count, align 4, !tbaa !5
  %3275 = load i32, ptr %186, align 4, !tbaa !5
  %3276 = call ptr @s2n_strerror(i32 noundef %3275, ptr noundef nonnull @.str.4) #12
  %3277 = load i32, ptr %186, align 4, !tbaa !5
  %3278 = call ptr @s2n_strerror_debug(i32 noundef %3277, ptr noundef nonnull @.str.4) #12
  %3279 = load i32, ptr %240, align 4, !tbaa !5
  %3280 = call ptr @strerror(i32 noundef %3279) #12
  %3281 = load i32, ptr %240, align 4, !tbaa !5
  %3282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3273, ptr noundef nonnull %.str.5.sink1520, i32 noundef %3274, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 389, ptr noundef %3276, ptr noundef %3278, ptr noundef %3280, i32 noundef %3281) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3283:                                             ; preds = %3258
  %3284 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %3285 = icmp eq i32 %3284, -1
  br i1 %3285, label %3286, label %3308

3286:                                             ; preds = %3283
  %3287 = load i32, ptr %240, align 4, !tbaa !5
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = call i32 @s2n_print_stacktrace(ptr noundef %3288) #12
  %3290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3291 = trunc nuw i8 %3290 to i1
  br i1 %3291, label %3292, label %3296

3292:                                             ; preds = %3286
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = call i32 @fileno(ptr noundef %3293) #12
  %3295 = call i32 @isatty(i32 noundef %3294) #12
  %.not339 = icmp eq i32 %3295, 0
  br i1 %.not339, label %3296, label %3297

3296:                                             ; preds = %3292, %3286
  br label %3297

3297:                                             ; preds = %3292, %3296
  %.str.5.sink1529 = phi ptr [ @.str.5, %3296 ], [ @.str.2, %3292 ]
  store i32 %3287, ptr %240, align 4, !tbaa !5
  %3298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3299 = load i32, ptr @test_count, align 4, !tbaa !5
  %3300 = load i32, ptr %186, align 4, !tbaa !5
  %3301 = call ptr @s2n_strerror(i32 noundef %3300, ptr noundef nonnull @.str.4) #12
  %3302 = load i32, ptr %186, align 4, !tbaa !5
  %3303 = call ptr @s2n_strerror_debug(i32 noundef %3302, ptr noundef nonnull @.str.4) #12
  %3304 = load i32, ptr %240, align 4, !tbaa !5
  %3305 = call ptr @strerror(i32 noundef %3304) #12
  %3306 = load i32, ptr %240, align 4, !tbaa !5
  %3307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3298, ptr noundef nonnull %.str.5.sink1529, i32 noundef %3299, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 389, ptr noundef %3301, ptr noundef %3303, ptr noundef %3305, i32 noundef %3306) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3308:                                             ; preds = %3283
  %3309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3310 = trunc nuw i8 %3309 to i1
  br i1 %3310, label %3311, label %3322

3311:                                             ; preds = %3308
  %3312 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3313 = call i32 @fileno(ptr noundef %3312) #12
  %3314 = call i32 @isatty(i32 noundef %3313) #12
  %.not336 = icmp eq i32 %3314, 0
  br i1 %.not336, label %3322, label %3315

3315:                                             ; preds = %3311
  %3316 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not338 = icmp eq i32 %3316, 0
  %3317 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not338, label %3320, label %3318

3318:                                             ; preds = %3315
  %3319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3317, ptr noundef nonnull @.str.61, i32 noundef %3316) #12
  br label %3329

3320:                                             ; preds = %3315
  %3321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3317, ptr noundef nonnull @.str.62) #12
  br label %3329

3322:                                             ; preds = %3311, %3308
  %3323 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not337 = icmp eq i32 %3323, 0
  %3324 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not337, label %3327, label %3325

3325:                                             ; preds = %3322
  %3326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3324, ptr noundef nonnull @.str.63, i32 noundef %3323) #12
  br label %3329

3327:                                             ; preds = %3322
  %3328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3324, ptr noundef nonnull @.str.64) #12
  br label %3329

3329:                                             ; preds = %3325, %3327, %3318, %3320
  %3330 = 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
  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 i32 @s2n_connection_get_client_protocol_version(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_connection_get_client_hello_version(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_server_protocol_version(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_actual_protocol_version(ptr noundef) local_unnamed_addr #2

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_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

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

declare i32 @s2n_config_set_client_hello_cb(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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_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

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

declare i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_has_extension(ptr noundef, i16 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_get_highest_fully_supported_tls_version(...) 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) #10

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #9

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #11

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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { 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 #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #11 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { cold nounwind }
attributes #15 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = !{!19, !7, i64 0}
!19 = !{!"s2n_overwrite_client_hello_ctx", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !6, i64 8}
!20 = !{!19, !7, i64 1}
!21 = !{!19, !7, i64 2}
!22 = !{!19, !6, i64 8}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}
!26 = !{!27, !7, i64 219}
!27 = !{!"s2n_connection", !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, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !28, i64 160, !29, i64 168, !29, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !30, i64 240, !10, i64 632, !10, i64 640, !31, i64 648, !37, i64 1144, !40, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !43, i64 1776, !43, i64 1816, !43, i64 1856, !43, i64 1896, !6, i64 1936, !29, i64 1944, !7, i64 1952, !43, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !44, i64 2004, !44, i64 2008, !45, i64 2016, !42, i64 2208, !6, i64 2212, !42, i64 2216, !29, i64 2224, !7, i64 2232, !29, i64 2240, !29, i64 2248, !29, i64 2256, !44, i64 2264, !44, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !36, i64 2792, !6, i64 2816, !36, i64 2824, !36, i64 2848, !36, i64 2872, !47, i64 2896, !49, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !36, i64 3784, !6, i64 3808, !51, i64 3816, !7, i64 3848, !43, i64 3992, !36, i64 4032, !36, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !42, i64 4084, !42, i64 4086, !6, i64 4088, !6, i64 4092, !36, i64 4096, !6, i64 4120, !52, i64 4128, !44, i64 4176, !7, i64 4180, !7, i64 4181}
!28 = !{!"s2n_timer", !29, i64 0}
!29 = !{!"long", !7, i64 0}
!30 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!31 = !{!"s2n_kex_parameters", !32, i64 0, !33, i64 8, !7, i64 24, !33, i64 56, !34, i64 72, !34, i64 184, !7, i64 296, !35, i64 360, !36, i64 448, !36, i64 472}
!32 = !{!"s2n_dh_params", !10, i64 0}
!33 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!34 = !{!"s2n_kem_group_params", !10, i64 0, !35, i64 8, !33, i64 96}
!35 = !{!"s2n_kem_params", !10, i64 0, !36, i64 8, !36, i64 32, !36, i64 56, !12, i64 80}
!36 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!37 = !{!"s2n_handshake_parameters", !38, i64 0, !38, i64 48, !36, i64 96, !6, i64 120, !39, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!38 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!39 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!40 = !{!"s2n_psk_parameters", !6, i64 0, !41, i64 8, !42, i64 40, !42, i64 42, !10, i64 48, !6, i64 56}
!41 = !{!"s2n_array", !36, i64 0, !6, i64 24, !6, i64 28}
!42 = !{!"short", !7, i64 0}
!43 = !{!"s2n_stuffer", !36, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!44 = !{!"", !6, i64 0}
!45 = !{!"s2n_handshake", !43, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !46, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!46 = !{!"s2n_offered_early_data", !10, i64 0}
!47 = !{!"s2n_client_hello", !36, i64 0, !48, i64 24, !36, i64 728, !36, i64 752, !36, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!48 = !{!"", !7, i64 0, !36, i64 672, !42, i64 696}
!49 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !42, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !50, i64 48, !12, i64 52}
!50 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!51 = !{!"s2n_ticket_fields", !36, i64 0, !6, i64 24}
!52 = !{!"s2n_post_handshake", !43, i64 0, !7, i64 40}
!53 = distinct !{!53, !16}
!54 = distinct !{!54, !16}
!55 = distinct !{!55, !16}
!56 = !{!7, !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass