; LLVM IR from aws/s2n-tls :: tests/unit (s2n_server_early_data_indication_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_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%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_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }

@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 [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@s2n_server_early_data_indication_extension = external constant %struct.s2n_extension_type, align 8
@.str.14 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [67 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.22 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_ecc_curve_secp521r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.58 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [63 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 i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.s2n_stuffer, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.s2n_result, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca %struct.s2n_result, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca %struct.s2n_result, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca i32, align 4
  %58 = alloca %struct.s2n_result, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca %struct.s2n_result, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca i32, align 4
  %75 = alloca %struct.s2n_result, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca ptr, align 8
  %80 = alloca i32, align 4
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca %struct.s2n_result, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca ptr, align 8
  %97 = alloca i32, align 4
  %98 = alloca %struct.s2n_result, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca ptr, align 8
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_result, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca %struct.s2n_result, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca ptr, align 8
  %120 = alloca i32, align 4
  %121 = alloca %struct.s2n_result, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca ptr, align 8
  %126 = alloca i32, align 4
  %127 = alloca %struct.s2n_result, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  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 %151

151:                                              ; preds = %2
  br label %152

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

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

160:                                              ; preds = %157
  br label %161

161:                                              ; preds = %160
  br label %162

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

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

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

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

208:                                              ; preds = %191, %174
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %209

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

210:                                              ; No predecessors!
  br label %211

211:                                              ; preds = %210, %157
  br label %212

212:                                              ; preds = %211
  br label %213

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

218:                                              ; preds = %213
  br label %219

219:                                              ; preds = %218
  br label %220

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

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

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

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

266:                                              ; preds = %249, %232
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %267

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

268:                                              ; No predecessors!
  br label %269

269:                                              ; preds = %268, %213
  br label %270

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %270
  br label %272

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

275:                                              ; preds = %272
  br label %276

276:                                              ; preds = %275
  br label %277

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

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

289:                                              ; preds = %284
  %290 = load i32, ptr %8, align 4, !tbaa !5
  %291 = call ptr @__errno_location() #10
  store i32 %290, ptr %291, align 4, !tbaa !5
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror(i32 noundef %295, ptr noundef @.str.4)
  %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_debug(i32 noundef %298, ptr noundef @.str.4)
  %300 = call ptr @__errno_location() #10
  %301 = load i32, ptr %300, align 4, !tbaa !5
  %302 = call ptr @strerror(i32 noundef %301) #9
  %303 = call ptr @__errno_location() #10
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %292, ptr noundef @.str.2, i32 noundef %293, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 40, ptr noundef %296, ptr noundef %299, ptr noundef %302, i32 noundef %304) #9
  br label %323

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

323:                                              ; preds = %306, %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %324

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

325:                                              ; No predecessors!
  br label %326

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

327:                                              ; preds = %326
  br label %328

328:                                              ; preds = %327
  %329 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %329, label %477, label %330

330:                                              ; preds = %328
  br label %331

331:                                              ; preds = %330
  br label %332

332:                                              ; preds = %331
  %333 = call i32 @s2n_cleanup()
  %334 = icmp eq i32 %333, -1
  br i1 %334, label %335, label %386

335:                                              ; preds = %332
  br label %336

336:                                              ; preds = %335
  br label %337

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

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

349:                                              ; preds = %344
  %350 = load i32, ptr %9, align 4, !tbaa !5
  %351 = call ptr @__errno_location() #10
  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() #10
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @strerror(i32 noundef %361) #9
  %363 = call ptr @__errno_location() #10
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %352, ptr noundef @.str.2, i32 noundef %353, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 43, ptr noundef %356, ptr noundef %359, ptr noundef %362, i32 noundef %364) #9
  br label %383

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

383:                                              ; preds = %366, %349
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %384

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

385:                                              ; No predecessors!
  br label %386

386:                                              ; preds = %385, %332
  br label %387

387:                                              ; preds = %386
  br label %388

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388
  %390 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %391 = icmp eq i32 %390, -1
  br i1 %391, label %392, label %443

392:                                              ; preds = %389
  br label %393

393:                                              ; preds = %392
  br label %394

394:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %395 = call ptr @__errno_location() #10
  %396 = load i32, ptr %395, align 4, !tbaa !5
  store i32 %396, ptr %10, align 4, !tbaa !5
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = call i32 @s2n_print_stacktrace(ptr noundef %397)
  %399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %400 = trunc i8 %399 to i1
  br i1 %400, label %401, label %423

401:                                              ; preds = %394
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = call i32 @fileno(ptr noundef %402) #9
  %404 = call i32 @isatty(i32 noundef %403) #9
  %405 = icmp ne i32 %404, 0
  br i1 %405, label %406, label %423

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

423:                                              ; preds = %401, %394
  %424 = load i32, ptr %10, align 4, !tbaa !5
  %425 = call ptr @__errno_location() #10
  store i32 %424, ptr %425, align 4, !tbaa !5
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @s2n_strerror(i32 noundef %429, ptr noundef @.str.4)
  %431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror_debug(i32 noundef %432, ptr noundef @.str.4)
  %434 = call ptr @__errno_location() #10
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = call ptr @strerror(i32 noundef %435) #9
  %437 = call ptr @__errno_location() #10
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %426, ptr noundef @.str.5, i32 noundef %427, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 43, ptr noundef %430, ptr noundef %433, ptr noundef %436, i32 noundef %438) #9
  br label %440

440:                                              ; preds = %423, %406
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %441

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

442:                                              ; No predecessors!
  br label %443

443:                                              ; preds = %442, %389
  br label %444

444:                                              ; preds = %443
  %445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %446 = trunc i8 %445 to i1
  br i1 %446, label %447, label %463

447:                                              ; preds = %444
  %448 = load ptr, ptr @stdout, align 8, !tbaa !9
  %449 = call i32 @fileno(ptr noundef %448) #9
  %450 = call i32 @isatty(i32 noundef %449) #9
  %451 = icmp ne i32 %450, 0
  br i1 %451, label %452, label %463

452:                                              ; preds = %447
  %453 = load i32, ptr @test_count, align 4, !tbaa !5
  %454 = icmp ne i32 %453, 0
  br i1 %454, label %455, label %459

455:                                              ; preds = %452
  %456 = load ptr, ptr @stdout, align 8, !tbaa !9
  %457 = load i32, ptr @test_count, align 4, !tbaa !5
  %458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %456, ptr noundef @.str.10, i32 noundef %457) #9
  br label %462

459:                                              ; preds = %452
  %460 = load ptr, ptr @stdout, align 8, !tbaa !9
  %461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef @.str.11) #9
  br label %462

462:                                              ; preds = %459, %455
  br label %474

463:                                              ; preds = %447, %444
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = icmp ne i32 %464, 0
  br i1 %465, label %466, label %470

466:                                              ; preds = %463
  %467 = load ptr, ptr @stdout, align 8, !tbaa !9
  %468 = load i32, ptr @test_count, align 4, !tbaa !5
  %469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %467, ptr noundef @.str.12, i32 noundef %468) #9
  br label %473

470:                                              ; preds = %463
  %471 = load ptr, ptr @stdout, align 8, !tbaa !9
  %472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef @.str.13) #9
  br label %473

473:                                              ; preds = %470, %466
  br label %474

474:                                              ; preds = %473, %462
  store i32 0, ptr %3, align 4
  br label %7575

475:                                              ; No predecessors!
  br label %476

476:                                              ; preds = %475
  br label %477

477:                                              ; preds = %476, %328
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  store i32 10, ptr %11, align 4, !tbaa !5
  br label %478

478:                                              ; preds = %477
  %479 = load i32, ptr @test_count, align 4, !tbaa !5
  %480 = add nsw i32 %479, 1
  store i32 %480, ptr @test_count, align 4, !tbaa !5
  %481 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %482 = call zeroext i1 %481(ptr noundef null)
  br i1 %482, label %483, label %536

483:                                              ; preds = %478
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %486 = call ptr @__errno_location() #10
  %487 = load i32, ptr %486, align 4, !tbaa !5
  store i32 %487, ptr %12, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = call i32 @s2n_print_stacktrace(ptr noundef %488)
  %490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %491 = trunc i8 %490 to i1
  br i1 %491, label %492, label %514

492:                                              ; preds = %485
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = call i32 @fileno(ptr noundef %493) #9
  %495 = call i32 @isatty(i32 noundef %494) #9
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %497, label %514

497:                                              ; preds = %492
  %498 = load i32, ptr %12, align 4, !tbaa !5
  %499 = call ptr @__errno_location() #10
  store i32 %498, ptr %499, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror(i32 noundef %503, ptr noundef @.str.4)
  %505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror_debug(i32 noundef %506, ptr noundef @.str.4)
  %508 = call ptr @__errno_location() #10
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call ptr @strerror(i32 noundef %509) #9
  %511 = call ptr @__errno_location() #10
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef @.str.2, i32 noundef %501, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 51, ptr noundef %504, ptr noundef %507, ptr noundef %510, i32 noundef %512) #9
  br label %531

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

531:                                              ; preds = %514, %497
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %532

532:                                              ; preds = %531
  br label %533

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

534:                                              ; No predecessors!
  br label %535

535:                                              ; preds = %534
  br label %536

536:                                              ; preds = %535, %478
  br label %537

537:                                              ; preds = %536
  br label %538

538:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %539 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %539, ptr %13, align 8, !tbaa !9
  br label %540

540:                                              ; preds = %538
  %541 = load i32, ptr @test_count, align 4, !tbaa !5
  %542 = add nsw i32 %541, 1
  store i32 %542, ptr @test_count, align 4, !tbaa !5
  %543 = load ptr, ptr %13, align 8, !tbaa !9
  %544 = icmp eq ptr %543, null
  br i1 %544, label %545, label %598

545:                                              ; preds = %540
  br label %546

546:                                              ; preds = %545
  br label %547

547:                                              ; preds = %546
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %548 = call ptr @__errno_location() #10
  %549 = load i32, ptr %548, align 4, !tbaa !5
  store i32 %549, ptr %14, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = call i32 @s2n_print_stacktrace(ptr noundef %550)
  %552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %553 = trunc i8 %552 to i1
  br i1 %553, label %554, label %576

554:                                              ; preds = %547
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = call i32 @fileno(ptr noundef %555) #9
  %557 = call i32 @isatty(i32 noundef %556) #9
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %576

559:                                              ; preds = %554
  %560 = load i32, ptr %14, align 4, !tbaa !5
  %561 = call ptr @__errno_location() #10
  store i32 %560, ptr %561, align 4, !tbaa !5
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call ptr @s2n_strerror(i32 noundef %565, ptr noundef @.str.4)
  %567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %568 = load i32, ptr %567, align 4, !tbaa !5
  %569 = call ptr @s2n_strerror_debug(i32 noundef %568, ptr noundef @.str.4)
  %570 = call ptr @__errno_location() #10
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = call ptr @strerror(i32 noundef %571) #9
  %573 = call ptr @__errno_location() #10
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %562, ptr noundef @.str.2, i32 noundef %563, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 54, ptr noundef %566, ptr noundef %569, ptr noundef %572, i32 noundef %574) #9
  br label %593

576:                                              ; preds = %554, %547
  %577 = load i32, ptr %14, align 4, !tbaa !5
  %578 = call ptr @__errno_location() #10
  store i32 %577, ptr %578, align 4, !tbaa !5
  %579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %580 = load i32, ptr @test_count, align 4, !tbaa !5
  %581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror(i32 noundef %582, ptr noundef @.str.4)
  %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_debug(i32 noundef %585, ptr noundef @.str.4)
  %587 = call ptr @__errno_location() #10
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @strerror(i32 noundef %588) #9
  %590 = call ptr @__errno_location() #10
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %579, ptr noundef @.str.5, i32 noundef %580, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 54, ptr noundef %583, ptr noundef %586, ptr noundef %589, i32 noundef %591) #9
  br label %593

593:                                              ; preds = %576, %559
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %594

594:                                              ; preds = %593
  br label %595

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

596:                                              ; No predecessors!
  br label %597

597:                                              ; preds = %596
  br label %598

598:                                              ; preds = %597, %540
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599
  %601 = load ptr, ptr %13, align 8, !tbaa !9
  %602 = getelementptr inbounds %struct.s2n_connection, ptr %601, i32 0, i32 89
  store i32 2, ptr %602, align 8, !tbaa !18
  br label %603

603:                                              ; preds = %600
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = add nsw i32 %604, 1
  store i32 %605, ptr @test_count, align 4, !tbaa !5
  %606 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %607 = load ptr, ptr %13, align 8, !tbaa !9
  %608 = call zeroext i1 %606(ptr noundef %607)
  br i1 %608, label %609, label %662

609:                                              ; preds = %603
  br label %610

610:                                              ; preds = %609
  br label %611

611:                                              ; preds = %610
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %612 = call ptr @__errno_location() #10
  %613 = load i32, ptr %612, align 4, !tbaa !5
  store i32 %613, ptr %15, align 4, !tbaa !5
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = call i32 @s2n_print_stacktrace(ptr noundef %614)
  %616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %617 = trunc i8 %616 to i1
  br i1 %617, label %618, label %640

618:                                              ; preds = %611
  %619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = call i32 @fileno(ptr noundef %619) #9
  %621 = call i32 @isatty(i32 noundef %620) #9
  %622 = icmp ne i32 %621, 0
  br i1 %622, label %623, label %640

623:                                              ; preds = %618
  %624 = load i32, ptr %15, align 4, !tbaa !5
  %625 = call ptr @__errno_location() #10
  store i32 %624, ptr %625, align 4, !tbaa !5
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror(i32 noundef %629, ptr noundef @.str.4)
  %631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror_debug(i32 noundef %632, ptr noundef @.str.4)
  %634 = call ptr @__errno_location() #10
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #9
  %637 = call ptr @__errno_location() #10
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef @.str.2, i32 noundef %627, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 57, ptr noundef %630, ptr noundef %633, ptr noundef %636, i32 noundef %638) #9
  br label %657

640:                                              ; preds = %618, %611
  %641 = load i32, ptr %15, align 4, !tbaa !5
  %642 = call ptr @__errno_location() #10
  store i32 %641, ptr %642, align 4, !tbaa !5
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = load i32, ptr @test_count, align 4, !tbaa !5
  %645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = call ptr @s2n_strerror(i32 noundef %646, ptr noundef @.str.4)
  %648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror_debug(i32 noundef %649, ptr noundef @.str.4)
  %651 = call ptr @__errno_location() #10
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @strerror(i32 noundef %652) #9
  %654 = call ptr @__errno_location() #10
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %643, ptr noundef @.str.5, i32 noundef %644, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 57, ptr noundef %647, ptr noundef %650, ptr noundef %653, i32 noundef %655) #9
  br label %657

657:                                              ; preds = %640, %623
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %658

658:                                              ; preds = %657
  br label %659

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

660:                                              ; No predecessors!
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661, %603
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663
  %665 = load ptr, ptr %13, align 8, !tbaa !9
  %666 = getelementptr inbounds %struct.s2n_connection, ptr %665, i32 0, i32 89
  store i32 4, ptr %666, align 8, !tbaa !18
  br label %667

667:                                              ; preds = %664
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = add nsw i32 %668, 1
  store i32 %669, ptr @test_count, align 4, !tbaa !5
  %670 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %671 = load ptr, ptr %13, align 8, !tbaa !9
  %672 = call zeroext i1 %670(ptr noundef %671)
  br i1 %672, label %673, label %726

673:                                              ; preds = %667
  br label %674

674:                                              ; preds = %673
  br label %675

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

682:                                              ; preds = %675
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = call i32 @fileno(ptr noundef %683) #9
  %685 = call i32 @isatty(i32 noundef %684) #9
  %686 = icmp ne i32 %685, 0
  br i1 %686, label %687, label %704

687:                                              ; preds = %682
  %688 = load i32, ptr %16, align 4, !tbaa !5
  %689 = call ptr @__errno_location() #10
  store i32 %688, ptr %689, align 4, !tbaa !5
  %690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %691 = load i32, ptr @test_count, align 4, !tbaa !5
  %692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = call ptr @s2n_strerror(i32 noundef %693, ptr noundef @.str.4)
  %695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror_debug(i32 noundef %696, ptr noundef @.str.4)
  %698 = call ptr @__errno_location() #10
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = call ptr @strerror(i32 noundef %699) #9
  %701 = call ptr @__errno_location() #10
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %690, ptr noundef @.str.2, i32 noundef %691, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 60, ptr noundef %694, ptr noundef %697, ptr noundef %700, i32 noundef %702) #9
  br label %721

704:                                              ; preds = %682, %675
  %705 = load i32, ptr %16, align 4, !tbaa !5
  %706 = call ptr @__errno_location() #10
  store i32 %705, ptr %706, align 4, !tbaa !5
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror(i32 noundef %710, ptr noundef @.str.4)
  %712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror_debug(i32 noundef %713, ptr noundef @.str.4)
  %715 = call ptr @__errno_location() #10
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @strerror(i32 noundef %716) #9
  %718 = call ptr @__errno_location() #10
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %707, ptr noundef @.str.5, i32 noundef %708, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 60, ptr noundef %711, ptr noundef %714, ptr noundef %717, i32 noundef %719) #9
  br label %721

721:                                              ; preds = %704, %687
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %722

722:                                              ; preds = %721
  br label %723

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

724:                                              ; No predecessors!
  br label %725

725:                                              ; preds = %724
  br label %726

726:                                              ; preds = %725, %667
  br label %727

727:                                              ; preds = %726
  br label %728

728:                                              ; preds = %727
  %729 = load ptr, ptr %13, align 8, !tbaa !9
  %730 = getelementptr inbounds %struct.s2n_connection, ptr %729, i32 0, i32 89
  store i32 3, ptr %730, align 8, !tbaa !18
  br label %731

731:                                              ; preds = %728
  %732 = load i32, ptr @test_count, align 4, !tbaa !5
  %733 = add nsw i32 %732, 1
  store i32 %733, ptr @test_count, align 4, !tbaa !5
  %734 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %735 = load ptr, ptr %13, align 8, !tbaa !9
  %736 = call zeroext i1 %734(ptr noundef %735)
  br i1 %736, label %790, label %737

737:                                              ; preds = %731
  br label %738

738:                                              ; preds = %737
  br label %739

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

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

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

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

785:                                              ; preds = %768, %751
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %786

786:                                              ; preds = %785
  br label %787

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

788:                                              ; No predecessors!
  br label %789

789:                                              ; preds = %788
  br label %790

790:                                              ; preds = %789, %731
  br label %791

791:                                              ; preds = %790
  br label %792

792:                                              ; preds = %791
  br label %793

793:                                              ; preds = %792
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = add nsw i32 %794, 1
  store i32 %795, ptr @test_count, align 4, !tbaa !5
  %796 = load ptr, ptr %13, align 8, !tbaa !9
  %797 = call i32 @s2n_connection_free(ptr noundef %796)
  %798 = icmp eq i32 %797, -1
  br i1 %798, label %799, label %852

799:                                              ; preds = %793
  br label %800

800:                                              ; preds = %799
  br label %801

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

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

813:                                              ; preds = %808
  %814 = load i32, ptr %18, align 4, !tbaa !5
  %815 = call ptr @__errno_location() #10
  store i32 %814, ptr %815, align 4, !tbaa !5
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = load i32, ptr @test_count, align 4, !tbaa !5
  %818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror(i32 noundef %819, ptr noundef @.str.4)
  %821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %822 = load i32, ptr %821, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror_debug(i32 noundef %822, ptr noundef @.str.4)
  %824 = call ptr @__errno_location() #10
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = call ptr @strerror(i32 noundef %825) #9
  %827 = call ptr @__errno_location() #10
  %828 = load i32, ptr %827, align 4, !tbaa !5
  %829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %816, ptr noundef @.str.2, i32 noundef %817, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 65, ptr noundef %820, ptr noundef %823, ptr noundef %826, i32 noundef %828) #9
  br label %847

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

847:                                              ; preds = %830, %813
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %848

848:                                              ; preds = %847
  br label %849

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

850:                                              ; No predecessors!
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851, %793
  br label %853

853:                                              ; preds = %852
  br label %854

854:                                              ; preds = %853
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  %855 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %855, ptr %19, align 8, !tbaa !9
  br label %856

856:                                              ; preds = %854
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = load ptr, ptr %19, align 8, !tbaa !9
  %860 = icmp eq ptr %859, null
  br i1 %860, label %861, label %914

861:                                              ; preds = %856
  br label %862

862:                                              ; preds = %861
  br label %863

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

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

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

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

909:                                              ; preds = %892, %875
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %910

910:                                              ; preds = %909
  br label %911

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

912:                                              ; No predecessors!
  br label %913

913:                                              ; preds = %912
  br label %914

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

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915
  %917 = load ptr, ptr %19, align 8, !tbaa !9
  %918 = getelementptr inbounds %struct.s2n_connection, ptr %917, i32 0, i32 89
  store i32 2, ptr %918, align 8, !tbaa !18
  br label %919

919:                                              ; preds = %916
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr @test_count, align 4, !tbaa !5
  %922 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_early_data_indication_extension, i32 0, i32 6), align 8, !tbaa !44
  %923 = load ptr, ptr %19, align 8, !tbaa !9
  %924 = call i32 %922(ptr noundef %923)
  %925 = icmp eq i32 %924, -1
  br i1 %925, label %926, label %979

926:                                              ; preds = %919
  br label %927

927:                                              ; preds = %926
  br label %928

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

935:                                              ; preds = %928
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = call i32 @fileno(ptr noundef %936) #9
  %938 = call i32 @isatty(i32 noundef %937) #9
  %939 = icmp ne i32 %938, 0
  br i1 %939, label %940, label %957

940:                                              ; preds = %935
  %941 = load i32, ptr %21, align 4, !tbaa !5
  %942 = call ptr @__errno_location() #10
  store i32 %941, ptr %942, align 4, !tbaa !5
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = load i32, ptr @test_count, align 4, !tbaa !5
  %945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror(i32 noundef %946, ptr noundef @.str.4)
  %948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = call ptr @s2n_strerror_debug(i32 noundef %949, ptr noundef @.str.4)
  %951 = call ptr @__errno_location() #10
  %952 = load i32, ptr %951, align 4, !tbaa !5
  %953 = call ptr @strerror(i32 noundef %952) #9
  %954 = call ptr @__errno_location() #10
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %943, ptr noundef @.str.2, i32 noundef %944, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 76, ptr noundef %947, ptr noundef %950, ptr noundef %953, i32 noundef %955) #9
  br label %974

957:                                              ; preds = %935, %928
  %958 = load i32, ptr %21, align 4, !tbaa !5
  %959 = call ptr @__errno_location() #10
  store i32 %958, ptr %959, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = load i32, ptr @test_count, align 4, !tbaa !5
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror(i32 noundef %963, ptr noundef @.str.4)
  %965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror_debug(i32 noundef %966, ptr noundef @.str.4)
  %968 = call ptr @__errno_location() #10
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call ptr @strerror(i32 noundef %969) #9
  %971 = call ptr @__errno_location() #10
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %960, ptr noundef @.str.5, i32 noundef %961, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 76, ptr noundef %964, ptr noundef %967, ptr noundef %970, i32 noundef %972) #9
  br label %974

974:                                              ; preds = %957, %940
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %975

975:                                              ; preds = %974
  br label %976

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

977:                                              ; No predecessors!
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978, %919
  br label %980

980:                                              ; preds = %979
  br label %981

981:                                              ; preds = %980
  br label %982

982:                                              ; preds = %981
  %983 = load i32, ptr @test_count, align 4, !tbaa !5
  %984 = add nsw i32 %983, 1
  store i32 %984, ptr @test_count, align 4, !tbaa !5
  %985 = load ptr, ptr %19, align 8, !tbaa !9
  %986 = getelementptr inbounds %struct.s2n_connection, ptr %985, i32 0, i32 89
  %987 = load i32, ptr %986, align 8, !tbaa !18
  %988 = icmp eq i32 %987, 2
  br i1 %988, label %1042, label %989

989:                                              ; preds = %982
  br label %990

990:                                              ; preds = %989
  br label %991

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

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

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

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

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

1038:                                             ; preds = %1037
  br label %1039

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

1040:                                             ; No predecessors!
  br label %1041

1041:                                             ; preds = %1040
  br label %1042

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

1043:                                             ; preds = %1042
  br label %1044

1044:                                             ; preds = %1043
  %1045 = load ptr, ptr %19, align 8, !tbaa !9
  %1046 = getelementptr inbounds %struct.s2n_connection, ptr %1045, i32 0, i32 89
  store i32 1, ptr %1046, align 8, !tbaa !18
  br label %1047

1047:                                             ; preds = %1044
  %1048 = load i32, ptr @test_count, align 4, !tbaa !5
  %1049 = add nsw i32 %1048, 1
  store i32 %1049, ptr @test_count, align 4, !tbaa !5
  %1050 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_early_data_indication_extension, i32 0, i32 6), align 8, !tbaa !44
  %1051 = load ptr, ptr %19, align 8, !tbaa !9
  %1052 = call i32 %1050(ptr noundef %1051)
  %1053 = icmp eq i32 %1052, -1
  br i1 %1053, label %1054, label %1107

1054:                                             ; preds = %1047
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

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

1063:                                             ; preds = %1056
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = call i32 @fileno(ptr noundef %1064) #9
  %1066 = call i32 @isatty(i32 noundef %1065) #9
  %1067 = icmp ne i32 %1066, 0
  br i1 %1067, label %1068, label %1085

1068:                                             ; preds = %1063
  %1069 = load i32, ptr %23, align 4, !tbaa !5
  %1070 = call ptr @__errno_location() #10
  store i32 %1069, ptr %1070, align 4, !tbaa !5
  %1071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1072 = load i32, ptr @test_count, align 4, !tbaa !5
  %1073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call ptr @s2n_strerror(i32 noundef %1074, ptr noundef @.str.4)
  %1076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror_debug(i32 noundef %1077, ptr noundef @.str.4)
  %1079 = call ptr @__errno_location() #10
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call ptr @strerror(i32 noundef %1080) #9
  %1082 = call ptr @__errno_location() #10
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1071, ptr noundef @.str.2, i32 noundef %1072, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1075, ptr noundef %1078, ptr noundef %1081, i32 noundef %1083) #9
  br label %1102

1085:                                             ; preds = %1063, %1056
  %1086 = load i32, ptr %23, align 4, !tbaa !5
  %1087 = call ptr @__errno_location() #10
  store i32 %1086, ptr %1087, align 4, !tbaa !5
  %1088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1089 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %1091, ptr noundef @.str.4)
  %1093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef @.str.4)
  %1096 = call ptr @__errno_location() #10
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #9
  %1099 = call ptr @__errno_location() #10
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1088, ptr noundef @.str.5, i32 noundef %1089, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1092, ptr noundef %1095, ptr noundef %1098, i32 noundef %1100) #9
  br label %1102

1102:                                             ; preds = %1085, %1068
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %1103

1103:                                             ; preds = %1102
  br label %1104

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

1105:                                             ; No predecessors!
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106, %1047
  br label %1108

1108:                                             ; preds = %1107
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

1110:                                             ; preds = %1109
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = add nsw i32 %1111, 1
  store i32 %1112, ptr @test_count, align 4, !tbaa !5
  %1113 = load ptr, ptr %19, align 8, !tbaa !9
  %1114 = getelementptr inbounds %struct.s2n_connection, ptr %1113, i32 0, i32 89
  %1115 = load i32, ptr %1114, align 8, !tbaa !18
  %1116 = icmp eq i32 %1115, 4
  br i1 %1116, label %1170, label %1117

1117:                                             ; preds = %1110
  br label %1118

1118:                                             ; preds = %1117
  br label %1119

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

1126:                                             ; preds = %1119
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = call i32 @fileno(ptr noundef %1127) #9
  %1129 = call i32 @isatty(i32 noundef %1128) #9
  %1130 = icmp ne i32 %1129, 0
  br i1 %1130, label %1131, label %1148

1131:                                             ; preds = %1126
  %1132 = load i32, ptr %24, align 4, !tbaa !5
  %1133 = call ptr @__errno_location() #10
  store i32 %1132, ptr %1133, align 4, !tbaa !5
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %1136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror(i32 noundef %1137, ptr noundef @.str.4)
  %1139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror_debug(i32 noundef %1140, ptr noundef @.str.4)
  %1142 = call ptr @__errno_location() #10
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call ptr @strerror(i32 noundef %1143) #9
  %1145 = call ptr @__errno_location() #10
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1134, ptr noundef @.str.2, i32 noundef %1135, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1138, ptr noundef %1141, ptr noundef %1144, i32 noundef %1146) #9
  br label %1165

1148:                                             ; preds = %1126, %1119
  %1149 = load i32, ptr %24, align 4, !tbaa !5
  %1150 = call ptr @__errno_location() #10
  store i32 %1149, ptr %1150, align 4, !tbaa !5
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror(i32 noundef %1154, ptr noundef @.str.4)
  %1156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror_debug(i32 noundef %1157, ptr noundef @.str.4)
  %1159 = call ptr @__errno_location() #10
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @strerror(i32 noundef %1160) #9
  %1162 = call ptr @__errno_location() #10
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1151, ptr noundef @.str.5, i32 noundef %1152, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1155, ptr noundef %1158, ptr noundef %1161, i32 noundef %1163) #9
  br label %1165

1165:                                             ; preds = %1148, %1131
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %1166

1166:                                             ; preds = %1165
  br label %1167

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

1168:                                             ; No predecessors!
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169, %1110
  br label %1171

1171:                                             ; preds = %1170
  br label %1172

1172:                                             ; preds = %1171
  br label %1173

1173:                                             ; preds = %1172
  %1174 = load i32, ptr @test_count, align 4, !tbaa !5
  %1175 = add nsw i32 %1174, 1
  store i32 %1175, ptr @test_count, align 4, !tbaa !5
  %1176 = load ptr, ptr %19, align 8, !tbaa !9
  %1177 = call i32 @s2n_connection_free(ptr noundef %1176)
  %1178 = icmp eq i32 %1177, -1
  br i1 %1178, label %1179, label %1232

1179:                                             ; preds = %1173
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

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

1188:                                             ; preds = %1181
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @fileno(ptr noundef %1189) #9
  %1191 = call i32 @isatty(i32 noundef %1190) #9
  %1192 = icmp ne i32 %1191, 0
  br i1 %1192, label %1193, label %1210

1193:                                             ; preds = %1188
  %1194 = load i32, ptr %25, align 4, !tbaa !5
  %1195 = call ptr @__errno_location() #10
  store i32 %1194, ptr %1195, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror(i32 noundef %1199, ptr noundef @.str.4)
  %1201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror_debug(i32 noundef %1202, ptr noundef @.str.4)
  %1204 = call ptr @__errno_location() #10
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #9
  %1207 = call ptr @__errno_location() #10
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1196, ptr noundef @.str.2, i32 noundef %1197, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1200, ptr noundef %1203, ptr noundef %1206, i32 noundef %1208) #9
  br label %1227

1210:                                             ; preds = %1188, %1181
  %1211 = load i32, ptr %25, align 4, !tbaa !5
  %1212 = call ptr @__errno_location() #10
  store i32 %1211, ptr %1212, align 4, !tbaa !5
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = load i32, ptr @test_count, align 4, !tbaa !5
  %1215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror(i32 noundef %1216, ptr noundef @.str.4)
  %1218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror_debug(i32 noundef %1219, ptr noundef @.str.4)
  %1221 = call ptr @__errno_location() #10
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call ptr @strerror(i32 noundef %1222) #9
  %1224 = call ptr @__errno_location() #10
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  %1226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1213, ptr noundef @.str.5, i32 noundef %1214, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1217, ptr noundef %1220, ptr noundef %1223, i32 noundef %1225) #9
  br label %1227

1227:                                             ; preds = %1210, %1193
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

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

1230:                                             ; No predecessors!
  br label %1231

1231:                                             ; preds = %1230
  br label %1232

1232:                                             ; preds = %1231, %1173
  br label %1233

1233:                                             ; preds = %1232
  br label %1234

1234:                                             ; preds = %1233
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %26) #9
  call void @llvm.memset.p0.i64(ptr align 8 %26, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %1235 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1235, ptr %27, align 8, !tbaa !9
  br label %1236

1236:                                             ; preds = %1234
  %1237 = load i32, ptr @test_count, align 4, !tbaa !5
  %1238 = add nsw i32 %1237, 1
  store i32 %1238, ptr @test_count, align 4, !tbaa !5
  %1239 = load ptr, ptr %27, align 8, !tbaa !9
  %1240 = icmp eq ptr %1239, null
  br i1 %1240, label %1241, label %1294

1241:                                             ; preds = %1236
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

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

1250:                                             ; preds = %1243
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = call i32 @fileno(ptr noundef %1251) #9
  %1253 = call i32 @isatty(i32 noundef %1252) #9
  %1254 = icmp ne i32 %1253, 0
  br i1 %1254, label %1255, label %1272

1255:                                             ; preds = %1250
  %1256 = load i32, ptr %28, align 4, !tbaa !5
  %1257 = call ptr @__errno_location() #10
  store i32 %1256, ptr %1257, align 4, !tbaa !5
  %1258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1259 = load i32, ptr @test_count, align 4, !tbaa !5
  %1260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror(i32 noundef %1261, ptr noundef @.str.4)
  %1263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = call ptr @s2n_strerror_debug(i32 noundef %1264, ptr noundef @.str.4)
  %1266 = call ptr @__errno_location() #10
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call ptr @strerror(i32 noundef %1267) #9
  %1269 = call ptr @__errno_location() #10
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1258, ptr noundef @.str.2, i32 noundef %1259, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1262, ptr noundef %1265, ptr noundef %1268, i32 noundef %1270) #9
  br label %1289

1272:                                             ; preds = %1250, %1243
  %1273 = load i32, ptr %28, align 4, !tbaa !5
  %1274 = call ptr @__errno_location() #10
  store i32 %1273, ptr %1274, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror(i32 noundef %1278, ptr noundef @.str.4)
  %1280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = call ptr @s2n_strerror_debug(i32 noundef %1281, ptr noundef @.str.4)
  %1283 = call ptr @__errno_location() #10
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #9
  %1286 = call ptr @__errno_location() #10
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1275, ptr noundef @.str.5, i32 noundef %1276, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1279, ptr noundef %1282, ptr noundef %1285, i32 noundef %1287) #9
  br label %1289

1289:                                             ; preds = %1272, %1255
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

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

1292:                                             ; No predecessors!
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

1294:                                             ; preds = %1293, %1236
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

1296:                                             ; preds = %1295
  %1297 = load ptr, ptr %27, align 8, !tbaa !9
  %1298 = getelementptr inbounds %struct.s2n_connection, ptr %1297, i32 0, i32 27
  %1299 = load ptr, ptr %1298, align 8, !tbaa !45
  %1300 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1299, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1300, align 8, !tbaa !46
  %1301 = load ptr, ptr %27, align 8, !tbaa !9
  %1302 = getelementptr inbounds %struct.s2n_connection, ptr %1301, i32 0, i32 23
  store i8 34, ptr %1302, align 4, !tbaa !51
  %1303 = load ptr, ptr %27, align 8, !tbaa !9
  %1304 = getelementptr inbounds %struct.s2n_connection, ptr %1303, i32 0, i32 89
  store i32 1, ptr %1304, align 8, !tbaa !18
  br label %1305

1305:                                             ; preds = %1296
  br label %1306

1306:                                             ; preds = %1305
  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 getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_early_data_indication_extension, i32 0, i32 4), align 8, !tbaa !52
  %1311 = load ptr, ptr %27, align 8, !tbaa !9
  %1312 = call i32 %1310(ptr noundef %1311, ptr noundef %26)
  %1313 = icmp eq i32 %1312, -1
  br i1 %1313, label %1367, label %1314

1314:                                             ; preds = %1307
  br label %1315

1315:                                             ; preds = %1314
  br label %1316

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

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

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

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

1362:                                             ; preds = %1345, %1328
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1363

1363:                                             ; preds = %1362
  br label %1364

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

1365:                                             ; No predecessors!
  br label %1366

1366:                                             ; preds = %1365
  br label %1367

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

1368:                                             ; preds = %1367
  br label %1369

1369:                                             ; preds = %1368
  br label %1370

1370:                                             ; preds = %1369
  %1371 = load i32, ptr @test_count, align 4, !tbaa !5
  %1372 = add nsw i32 %1371, 1
  store i32 %1372, ptr @test_count, align 4, !tbaa !5
  %1373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = icmp eq i32 %1374, 469762113
  br i1 %1375, label %1429, label %1376

1376:                                             ; preds = %1370
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

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

1385:                                             ; preds = %1378
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = call i32 @fileno(ptr noundef %1386) #9
  %1388 = call i32 @isatty(i32 noundef %1387) #9
  %1389 = icmp ne i32 %1388, 0
  br i1 %1389, label %1390, label %1407

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

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

1424:                                             ; preds = %1407, %1390
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1425

1425:                                             ; preds = %1424
  br label %1426

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

1427:                                             ; No predecessors!
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428, %1370
  br label %1430

1430:                                             ; preds = %1429
  br label %1431

1431:                                             ; preds = %1430
  br label %1432

1432:                                             ; preds = %1431
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = add nsw i32 %1433, 1
  store i32 %1434, ptr @test_count, align 4, !tbaa !5
  %1435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror_debug(i32 noundef %1436, ptr noundef @.str.4)
  %1438 = icmp eq ptr %1437, null
  br i1 %1438, label %1439, label %1492

1439:                                             ; preds = %1432
  br label %1440

1440:                                             ; preds = %1439
  br label %1441

1441:                                             ; preds = %1440
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %1442 = call ptr @__errno_location() #10
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  store i32 %1443, ptr %31, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = call i32 @s2n_print_stacktrace(ptr noundef %1444)
  %1446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1447 = trunc i8 %1446 to i1
  br i1 %1447, label %1448, label %1470

1448:                                             ; preds = %1441
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @fileno(ptr noundef %1449) #9
  %1451 = call i32 @isatty(i32 noundef %1450) #9
  %1452 = icmp ne i32 %1451, 0
  br i1 %1452, label %1453, label %1470

1453:                                             ; preds = %1448
  %1454 = load i32, ptr %31, align 4, !tbaa !5
  %1455 = call ptr @__errno_location() #10
  store i32 %1454, ptr %1455, align 4, !tbaa !5
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = load i32, ptr @test_count, align 4, !tbaa !5
  %1458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror(i32 noundef %1459, ptr noundef @.str.4)
  %1461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror_debug(i32 noundef %1462, ptr noundef @.str.4)
  %1464 = call ptr @__errno_location() #10
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call ptr @strerror(i32 noundef %1465) #9
  %1467 = call ptr @__errno_location() #10
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1456, ptr noundef @.str.2, i32 noundef %1457, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1460, ptr noundef %1463, ptr noundef %1466, i32 noundef %1468) #9
  br label %1487

1470:                                             ; preds = %1448, %1441
  %1471 = load i32, ptr %31, align 4, !tbaa !5
  %1472 = call ptr @__errno_location() #10
  store i32 %1471, ptr %1472, align 4, !tbaa !5
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = load i32, ptr @test_count, align 4, !tbaa !5
  %1475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call ptr @s2n_strerror(i32 noundef %1476, ptr noundef @.str.4)
  %1478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call ptr @s2n_strerror_debug(i32 noundef %1479, ptr noundef @.str.4)
  %1481 = call ptr @__errno_location() #10
  %1482 = load i32, ptr %1481, align 4, !tbaa !5
  %1483 = call ptr @strerror(i32 noundef %1482) #9
  %1484 = call ptr @__errno_location() #10
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1473, ptr noundef @.str.5, i32 noundef %1474, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1477, ptr noundef %1480, ptr noundef %1483, i32 noundef %1485) #9
  br label %1487

1487:                                             ; preds = %1470, %1453
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

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

1490:                                             ; No predecessors!
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491, %1432
  br label %1493

1493:                                             ; preds = %1492
  br label %1494

1494:                                             ; preds = %1493
  br label %1495

1495:                                             ; preds = %1494
  br label %1496

1496:                                             ; preds = %1495
  br label %1497

1497:                                             ; preds = %1496
  %1498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1498, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1499 = call ptr @__errno_location() #10
  store i32 0, ptr %1499, align 4, !tbaa !5
  br label %1500

1500:                                             ; preds = %1497
  br label %1501

1501:                                             ; preds = %1500
  br label %1502

1502:                                             ; preds = %1501
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503
  %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 %27, align 8, !tbaa !9
  %1508 = getelementptr inbounds %struct.s2n_connection, ptr %1507, i32 0, i32 89
  %1509 = load i32, ptr %1508, align 8, !tbaa !18
  %1510 = icmp eq i32 %1509, 3
  br i1 %1510, label %1511, label %1564

1511:                                             ; preds = %1504
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

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

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

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

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

1559:                                             ; preds = %1542, %1525
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1560

1560:                                             ; preds = %1559
  br label %1561

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

1562:                                             ; No predecessors!
  br label %1563

1563:                                             ; preds = %1562
  br label %1564

1564:                                             ; preds = %1563, %1504
  br label %1565

1565:                                             ; preds = %1564
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

1567:                                             ; preds = %1566
  %1568 = load i32, ptr @test_count, align 4, !tbaa !5
  %1569 = add nsw i32 %1568, 1
  store i32 %1569, ptr @test_count, align 4, !tbaa !5
  %1570 = load ptr, ptr %27, align 8, !tbaa !9
  %1571 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef %1570, i32 noundef 10, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %1572 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  store i32 %1571, ptr %1572, align 4
  %1573 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  %1574 = load i32, ptr %1573, align 4
  %1575 = call zeroext i1 @s2n_result_is_ok(i32 %1574)
  br i1 %1575, label %1629, label %1576

1576:                                             ; preds = %1567
  br label %1577

1577:                                             ; preds = %1576
  br label %1578

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

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

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

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

1624:                                             ; preds = %1607, %1590
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1625

1625:                                             ; preds = %1624
  br label %1626

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

1627:                                             ; No predecessors!
  br label %1628

1628:                                             ; preds = %1627
  br label %1629

1629:                                             ; preds = %1628, %1567
  br label %1630

1630:                                             ; preds = %1629
  br label %1631

1631:                                             ; preds = %1630
  br label %1632

1632:                                             ; preds = %1631
  %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 getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_early_data_indication_extension, i32 0, i32 4), align 8, !tbaa !52
  %1636 = load ptr, ptr %27, align 8, !tbaa !9
  %1637 = call i32 %1635(ptr noundef %1636, ptr noundef %26)
  %1638 = icmp eq i32 %1637, -1
  br i1 %1638, label %1639, label %1692

1639:                                             ; preds = %1632
  br label %1640

1640:                                             ; preds = %1639
  br label %1641

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

1648:                                             ; preds = %1641
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = call i32 @fileno(ptr noundef %1649) #9
  %1651 = call i32 @isatty(i32 noundef %1650) #9
  %1652 = icmp ne i32 %1651, 0
  br i1 %1652, label %1653, label %1670

1653:                                             ; preds = %1648
  %1654 = load i32, ptr %35, align 4, !tbaa !5
  %1655 = call ptr @__errno_location() #10
  store i32 %1654, ptr %1655, align 4, !tbaa !5
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  %1660 = call ptr @s2n_strerror(i32 noundef %1659, ptr noundef @.str.4)
  %1661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call ptr @s2n_strerror_debug(i32 noundef %1662, ptr noundef @.str.4)
  %1664 = call ptr @__errno_location() #10
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call ptr @strerror(i32 noundef %1665) #9
  %1667 = call ptr @__errno_location() #10
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1656, ptr noundef @.str.2, i32 noundef %1657, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1660, ptr noundef %1663, ptr noundef %1666, i32 noundef %1668) #9
  br label %1687

1670:                                             ; preds = %1648, %1641
  %1671 = load i32, ptr %35, align 4, !tbaa !5
  %1672 = call ptr @__errno_location() #10
  store i32 %1671, ptr %1672, align 4, !tbaa !5
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = load i32, ptr @test_count, align 4, !tbaa !5
  %1675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1676 = load i32, ptr %1675, align 4, !tbaa !5
  %1677 = call ptr @s2n_strerror(i32 noundef %1676, ptr noundef @.str.4)
  %1678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = call ptr @s2n_strerror_debug(i32 noundef %1679, ptr noundef @.str.4)
  %1681 = call ptr @__errno_location() #10
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  %1683 = call ptr @strerror(i32 noundef %1682) #9
  %1684 = call ptr @__errno_location() #10
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  %1686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1673, ptr noundef @.str.5, i32 noundef %1674, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1677, ptr noundef %1680, ptr noundef %1683, i32 noundef %1685) #9
  br label %1687

1687:                                             ; preds = %1670, %1653
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1688

1688:                                             ; preds = %1687
  br label %1689

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

1690:                                             ; No predecessors!
  br label %1691

1691:                                             ; preds = %1690
  br label %1692

1692:                                             ; preds = %1691, %1632
  br label %1693

1693:                                             ; preds = %1692
  br label %1694

1694:                                             ; preds = %1693
  br label %1695

1695:                                             ; preds = %1694
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = add nsw i32 %1696, 1
  store i32 %1697, ptr @test_count, align 4, !tbaa !5
  %1698 = load ptr, ptr %27, align 8, !tbaa !9
  %1699 = getelementptr inbounds %struct.s2n_connection, ptr %1698, i32 0, i32 89
  %1700 = load i32, ptr %1699, align 8, !tbaa !18
  %1701 = icmp eq i32 %1700, 3
  br i1 %1701, label %1755, label %1702

1702:                                             ; preds = %1695
  br label %1703

1703:                                             ; preds = %1702
  br label %1704

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

1711:                                             ; preds = %1704
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = call i32 @fileno(ptr noundef %1712) #9
  %1714 = call i32 @isatty(i32 noundef %1713) #9
  %1715 = icmp ne i32 %1714, 0
  br i1 %1715, label %1716, label %1733

1716:                                             ; preds = %1711
  %1717 = load i32, ptr %36, align 4, !tbaa !5
  %1718 = call ptr @__errno_location() #10
  store i32 %1717, ptr %1718, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = load i32, ptr @test_count, align 4, !tbaa !5
  %1721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror(i32 noundef %1722, ptr noundef @.str.4)
  %1724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  %1726 = call ptr @s2n_strerror_debug(i32 noundef %1725, ptr noundef @.str.4)
  %1727 = call ptr @__errno_location() #10
  %1728 = load i32, ptr %1727, align 4, !tbaa !5
  %1729 = call ptr @strerror(i32 noundef %1728) #9
  %1730 = call ptr @__errno_location() #10
  %1731 = load i32, ptr %1730, align 4, !tbaa !5
  %1732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1719, ptr noundef @.str.2, i32 noundef %1720, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 108, ptr noundef %1723, ptr noundef %1726, ptr noundef %1729, i32 noundef %1731) #9
  br label %1750

1733:                                             ; preds = %1711, %1704
  %1734 = load i32, ptr %36, align 4, !tbaa !5
  %1735 = call ptr @__errno_location() #10
  store i32 %1734, ptr %1735, align 4, !tbaa !5
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = call ptr @s2n_strerror(i32 noundef %1739, ptr noundef @.str.4)
  %1741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror_debug(i32 noundef %1742, ptr noundef @.str.4)
  %1744 = call ptr @__errno_location() #10
  %1745 = load i32, ptr %1744, align 4, !tbaa !5
  %1746 = call ptr @strerror(i32 noundef %1745) #9
  %1747 = call ptr @__errno_location() #10
  %1748 = load i32, ptr %1747, align 4, !tbaa !5
  %1749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1736, ptr noundef @.str.5, i32 noundef %1737, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 108, ptr noundef %1740, ptr noundef %1743, ptr noundef %1746, i32 noundef %1748) #9
  br label %1750

1750:                                             ; preds = %1733, %1716
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

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

1753:                                             ; No predecessors!
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

1755:                                             ; preds = %1754, %1695
  br label %1756

1756:                                             ; preds = %1755
  br label %1757

1757:                                             ; preds = %1756
  br label %1758

1758:                                             ; preds = %1757
  %1759 = load i32, ptr @test_count, align 4, !tbaa !5
  %1760 = add nsw i32 %1759, 1
  store i32 %1760, ptr @test_count, align 4, !tbaa !5
  %1761 = load ptr, ptr %27, align 8, !tbaa !9
  %1762 = call i32 @s2n_connection_free(ptr noundef %1761)
  %1763 = icmp eq i32 %1762, -1
  br i1 %1763, label %1764, label %1817

1764:                                             ; preds = %1758
  br label %1765

1765:                                             ; preds = %1764
  br label %1766

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

1773:                                             ; preds = %1766
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = call i32 @fileno(ptr noundef %1774) #9
  %1776 = call i32 @isatty(i32 noundef %1775) #9
  %1777 = icmp ne i32 %1776, 0
  br i1 %1777, label %1778, label %1795

1778:                                             ; preds = %1773
  %1779 = load i32, ptr %37, align 4, !tbaa !5
  %1780 = call ptr @__errno_location() #10
  store i32 %1779, ptr %1780, align 4, !tbaa !5
  %1781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1782 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1784, ptr noundef @.str.4)
  %1786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror_debug(i32 noundef %1787, ptr noundef @.str.4)
  %1789 = call ptr @__errno_location() #10
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @strerror(i32 noundef %1790) #9
  %1792 = call ptr @__errno_location() #10
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1781, ptr noundef @.str.2, i32 noundef %1782, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1785, ptr noundef %1788, ptr noundef %1791, i32 noundef %1793) #9
  br label %1812

1795:                                             ; preds = %1773, %1766
  %1796 = load i32, ptr %37, align 4, !tbaa !5
  %1797 = call ptr @__errno_location() #10
  store i32 %1796, ptr %1797, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1801, ptr noundef @.str.4)
  %1803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror_debug(i32 noundef %1804, ptr noundef @.str.4)
  %1806 = call ptr @__errno_location() #10
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @strerror(i32 noundef %1807) #9
  %1809 = call ptr @__errno_location() #10
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1798, ptr noundef @.str.5, i32 noundef %1799, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1802, ptr noundef %1805, ptr noundef %1808, i32 noundef %1810) #9
  br label %1812

1812:                                             ; preds = %1795, %1778
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

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

1815:                                             ; No predecessors!
  br label %1816

1816:                                             ; preds = %1815
  br label %1817

1817:                                             ; preds = %1816, %1758
  br label %1818

1818:                                             ; preds = %1817
  br label %1819

1819:                                             ; preds = %1818
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %1820 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1820, ptr %38, align 8, !tbaa !9
  br label %1821

1821:                                             ; preds = %1819
  %1822 = load i32, ptr @test_count, align 4, !tbaa !5
  %1823 = add nsw i32 %1822, 1
  store i32 %1823, ptr @test_count, align 4, !tbaa !5
  %1824 = load ptr, ptr %38, align 8, !tbaa !9
  %1825 = icmp eq ptr %1824, null
  br i1 %1825, label %1826, label %1879

1826:                                             ; preds = %1821
  br label %1827

1827:                                             ; preds = %1826
  br label %1828

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

1835:                                             ; preds = %1828
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = call i32 @fileno(ptr noundef %1836) #9
  %1838 = call i32 @isatty(i32 noundef %1837) #9
  %1839 = icmp ne i32 %1838, 0
  br i1 %1839, label %1840, label %1857

1840:                                             ; preds = %1835
  %1841 = load i32, ptr %39, align 4, !tbaa !5
  %1842 = call ptr @__errno_location() #10
  store i32 %1841, ptr %1842, align 4, !tbaa !5
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror(i32 noundef %1846, ptr noundef @.str.4)
  %1848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror_debug(i32 noundef %1849, ptr noundef @.str.4)
  %1851 = call ptr @__errno_location() #10
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @strerror(i32 noundef %1852) #9
  %1854 = call ptr @__errno_location() #10
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1843, ptr noundef @.str.2, i32 noundef %1844, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 116, ptr noundef %1847, ptr noundef %1850, ptr noundef %1853, i32 noundef %1855) #9
  br label %1874

1857:                                             ; preds = %1835, %1828
  %1858 = load i32, ptr %39, align 4, !tbaa !5
  %1859 = call ptr @__errno_location() #10
  store i32 %1858, ptr %1859, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = load i32, ptr @test_count, align 4, !tbaa !5
  %1862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror(i32 noundef %1863, ptr noundef @.str.4)
  %1865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call ptr @s2n_strerror_debug(i32 noundef %1866, ptr noundef @.str.4)
  %1868 = call ptr @__errno_location() #10
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @strerror(i32 noundef %1869) #9
  %1871 = call ptr @__errno_location() #10
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1860, ptr noundef @.str.5, i32 noundef %1861, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 116, ptr noundef %1864, ptr noundef %1867, ptr noundef %1870, i32 noundef %1872) #9
  br label %1874

1874:                                             ; preds = %1857, %1840
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1875

1875:                                             ; preds = %1874
  br label %1876

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

1877:                                             ; No predecessors!
  br label %1878

1878:                                             ; preds = %1877
  br label %1879

1879:                                             ; preds = %1878, %1821
  br label %1880

1880:                                             ; preds = %1879
  br label %1881

1881:                                             ; preds = %1880
  %1882 = load ptr, ptr %38, align 8, !tbaa !9
  %1883 = getelementptr inbounds %struct.s2n_connection, ptr %1882, i32 0, i32 27
  %1884 = load ptr, ptr %1883, align 8, !tbaa !45
  %1885 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1884, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1885, align 8, !tbaa !46
  %1886 = load ptr, ptr %38, align 8, !tbaa !9
  %1887 = getelementptr inbounds %struct.s2n_connection, ptr %1886, i32 0, i32 23
  store i8 34, ptr %1887, align 4, !tbaa !51
  br label %1888

1888:                                             ; preds = %1881
  %1889 = load i32, ptr @test_count, align 4, !tbaa !5
  %1890 = add nsw i32 %1889, 1
  store i32 %1890, ptr @test_count, align 4, !tbaa !5
  %1891 = load ptr, ptr %38, align 8, !tbaa !9
  %1892 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef %1891, i32 noundef 10, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %1893 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1892, ptr %1893, align 4
  %1894 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  %1895 = load i32, ptr %1894, align 4
  %1896 = call zeroext i1 @s2n_result_is_ok(i32 %1895)
  br i1 %1896, label %1950, label %1897

1897:                                             ; preds = %1888
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

1899:                                             ; preds = %1898
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1900 = call ptr @__errno_location() #10
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  store i32 %1901, ptr %41, align 4, !tbaa !5
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = call i32 @s2n_print_stacktrace(ptr noundef %1902)
  %1904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1905 = trunc i8 %1904 to i1
  br i1 %1905, label %1906, label %1928

1906:                                             ; preds = %1899
  %1907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1908 = call i32 @fileno(ptr noundef %1907) #9
  %1909 = call i32 @isatty(i32 noundef %1908) #9
  %1910 = icmp ne i32 %1909, 0
  br i1 %1910, label %1911, label %1928

1911:                                             ; preds = %1906
  %1912 = load i32, ptr %41, align 4, !tbaa !5
  %1913 = call ptr @__errno_location() #10
  store i32 %1912, ptr %1913, align 4, !tbaa !5
  %1914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1915 = load i32, ptr @test_count, align 4, !tbaa !5
  %1916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = call ptr @s2n_strerror(i32 noundef %1917, ptr noundef @.str.4)
  %1919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  %1921 = call ptr @s2n_strerror_debug(i32 noundef %1920, ptr noundef @.str.4)
  %1922 = call ptr @__errno_location() #10
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = call ptr @strerror(i32 noundef %1923) #9
  %1925 = call ptr @__errno_location() #10
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1914, ptr noundef @.str.2, i32 noundef %1915, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1918, ptr noundef %1921, ptr noundef %1924, i32 noundef %1926) #9
  br label %1945

1928:                                             ; preds = %1906, %1899
  %1929 = load i32, ptr %41, align 4, !tbaa !5
  %1930 = call ptr @__errno_location() #10
  store i32 %1929, ptr %1930, align 4, !tbaa !5
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = load i32, ptr @test_count, align 4, !tbaa !5
  %1933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror(i32 noundef %1934, ptr noundef @.str.4)
  %1936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror_debug(i32 noundef %1937, ptr noundef @.str.4)
  %1939 = call ptr @__errno_location() #10
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call ptr @strerror(i32 noundef %1940) #9
  %1942 = call ptr @__errno_location() #10
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1931, ptr noundef @.str.5, i32 noundef %1932, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1935, ptr noundef %1938, ptr noundef %1941, i32 noundef %1943) #9
  br label %1945

1945:                                             ; preds = %1928, %1911
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1946

1946:                                             ; preds = %1945
  br label %1947

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

1948:                                             ; No predecessors!
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

1950:                                             ; preds = %1949, %1888
  br label %1951

1951:                                             ; preds = %1950
  br label %1952

1952:                                             ; preds = %1951
  %1953 = load ptr, ptr %38, align 8, !tbaa !9
  %1954 = getelementptr inbounds %struct.s2n_connection, ptr %1953, i32 0, i32 89
  store i32 2, ptr %1954, align 8, !tbaa !18
  br label %1955

1955:                                             ; preds = %1952
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

1957:                                             ; preds = %1956
  %1958 = load i32, ptr @test_count, align 4, !tbaa !5
  %1959 = add nsw i32 %1958, 1
  store i32 %1959, ptr @test_count, align 4, !tbaa !5
  %1960 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_early_data_indication_extension, i32 0, i32 4), align 8, !tbaa !52
  %1961 = load ptr, ptr %38, align 8, !tbaa !9
  %1962 = call i32 %1960(ptr noundef %1961, ptr noundef %26)
  %1963 = icmp eq i32 %1962, -1
  br i1 %1963, label %2017, label %1964

1964:                                             ; preds = %1957
  br label %1965

1965:                                             ; preds = %1964
  br label %1966

1966:                                             ; preds = %1965
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %1967 = call ptr @__errno_location() #10
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  store i32 %1968, ptr %42, align 4, !tbaa !5
  %1969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1970 = call i32 @s2n_print_stacktrace(ptr noundef %1969)
  %1971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1972 = trunc i8 %1971 to i1
  br i1 %1972, label %1973, label %1995

1973:                                             ; preds = %1966
  %1974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1975 = call i32 @fileno(ptr noundef %1974) #9
  %1976 = call i32 @isatty(i32 noundef %1975) #9
  %1977 = icmp ne i32 %1976, 0
  br i1 %1977, label %1978, label %1995

1978:                                             ; preds = %1973
  %1979 = load i32, ptr %42, align 4, !tbaa !5
  %1980 = call ptr @__errno_location() #10
  store i32 %1979, ptr %1980, align 4, !tbaa !5
  %1981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1982 = load i32, ptr @test_count, align 4, !tbaa !5
  %1983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1984 = load i32, ptr %1983, align 4, !tbaa !5
  %1985 = call ptr @s2n_strerror(i32 noundef %1984, ptr noundef @.str.4)
  %1986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1987 = load i32, ptr %1986, align 4, !tbaa !5
  %1988 = call ptr @s2n_strerror_debug(i32 noundef %1987, ptr noundef @.str.4)
  %1989 = call ptr @__errno_location() #10
  %1990 = load i32, ptr %1989, align 4, !tbaa !5
  %1991 = call ptr @strerror(i32 noundef %1990) #9
  %1992 = call ptr @__errno_location() #10
  %1993 = load i32, ptr %1992, align 4, !tbaa !5
  %1994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1981, ptr noundef @.str.2, i32 noundef %1982, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 125, ptr noundef %1985, ptr noundef %1988, ptr noundef %1991, i32 noundef %1993) #9
  br label %2012

1995:                                             ; preds = %1973, %1966
  %1996 = load i32, ptr %42, align 4, !tbaa !5
  %1997 = call ptr @__errno_location() #10
  store i32 %1996, ptr %1997, align 4, !tbaa !5
  %1998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1999 = load i32, ptr @test_count, align 4, !tbaa !5
  %2000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2001 = load i32, ptr %2000, align 4, !tbaa !5
  %2002 = call ptr @s2n_strerror(i32 noundef %2001, ptr noundef @.str.4)
  %2003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2004 = load i32, ptr %2003, align 4, !tbaa !5
  %2005 = call ptr @s2n_strerror_debug(i32 noundef %2004, ptr noundef @.str.4)
  %2006 = call ptr @__errno_location() #10
  %2007 = load i32, ptr %2006, align 4, !tbaa !5
  %2008 = call ptr @strerror(i32 noundef %2007) #9
  %2009 = call ptr @__errno_location() #10
  %2010 = load i32, ptr %2009, align 4, !tbaa !5
  %2011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1998, ptr noundef @.str.5, i32 noundef %1999, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2002, ptr noundef %2005, ptr noundef %2008, i32 noundef %2010) #9
  br label %2012

2012:                                             ; preds = %1995, %1978
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %2013

2013:                                             ; preds = %2012
  br label %2014

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

2015:                                             ; No predecessors!
  br label %2016

2016:                                             ; preds = %2015
  br label %2017

2017:                                             ; preds = %2016, %1957
  br label %2018

2018:                                             ; preds = %2017
  br label %2019

2019:                                             ; preds = %2018
  br label %2020

2020:                                             ; preds = %2019
  %2021 = load i32, ptr @test_count, align 4, !tbaa !5
  %2022 = add nsw i32 %2021, 1
  store i32 %2022, ptr @test_count, align 4, !tbaa !5
  %2023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  %2025 = icmp eq i32 %2024, 402653262
  br i1 %2025, label %2079, label %2026

2026:                                             ; preds = %2020
  br label %2027

2027:                                             ; preds = %2026
  br label %2028

2028:                                             ; preds = %2027
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %2029 = call ptr @__errno_location() #10
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  store i32 %2030, ptr %43, align 4, !tbaa !5
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = call i32 @s2n_print_stacktrace(ptr noundef %2031)
  %2033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2034 = trunc i8 %2033 to i1
  br i1 %2034, label %2035, label %2057

2035:                                             ; preds = %2028
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = call i32 @fileno(ptr noundef %2036) #9
  %2038 = call i32 @isatty(i32 noundef %2037) #9
  %2039 = icmp ne i32 %2038, 0
  br i1 %2039, label %2040, label %2057

2040:                                             ; preds = %2035
  %2041 = load i32, ptr %43, align 4, !tbaa !5
  %2042 = call ptr @__errno_location() #10
  store i32 %2041, ptr %2042, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = load i32, ptr @test_count, align 4, !tbaa !5
  %2045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2046 = load i32, ptr %2045, align 4, !tbaa !5
  %2047 = call ptr @s2n_strerror(i32 noundef %2046, ptr noundef @.str.4)
  %2048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = call ptr @s2n_strerror_debug(i32 noundef %2049, ptr noundef @.str.4)
  %2051 = call ptr @__errno_location() #10
  %2052 = load i32, ptr %2051, align 4, !tbaa !5
  %2053 = call ptr @strerror(i32 noundef %2052) #9
  %2054 = call ptr @__errno_location() #10
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2043, ptr noundef @.str.2, i32 noundef %2044, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2047, ptr noundef %2050, ptr noundef %2053, i32 noundef %2055) #9
  br label %2074

2057:                                             ; preds = %2035, %2028
  %2058 = load i32, ptr %43, align 4, !tbaa !5
  %2059 = call ptr @__errno_location() #10
  store i32 %2058, ptr %2059, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = load i32, ptr @test_count, align 4, !tbaa !5
  %2062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2063 = load i32, ptr %2062, align 4, !tbaa !5
  %2064 = call ptr @s2n_strerror(i32 noundef %2063, ptr noundef @.str.4)
  %2065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2066 = load i32, ptr %2065, align 4, !tbaa !5
  %2067 = call ptr @s2n_strerror_debug(i32 noundef %2066, ptr noundef @.str.4)
  %2068 = call ptr @__errno_location() #10
  %2069 = load i32, ptr %2068, align 4, !tbaa !5
  %2070 = call ptr @strerror(i32 noundef %2069) #9
  %2071 = call ptr @__errno_location() #10
  %2072 = load i32, ptr %2071, align 4, !tbaa !5
  %2073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2060, ptr noundef @.str.5, i32 noundef %2061, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2064, ptr noundef %2067, ptr noundef %2070, i32 noundef %2072) #9
  br label %2074

2074:                                             ; preds = %2057, %2040
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %2075

2075:                                             ; preds = %2074
  br label %2076

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

2077:                                             ; No predecessors!
  br label %2078

2078:                                             ; preds = %2077
  br label %2079

2079:                                             ; preds = %2078, %2020
  br label %2080

2080:                                             ; preds = %2079
  br label %2081

2081:                                             ; preds = %2080
  br label %2082

2082:                                             ; preds = %2081
  %2083 = load i32, ptr @test_count, align 4, !tbaa !5
  %2084 = add nsw i32 %2083, 1
  store i32 %2084, ptr @test_count, align 4, !tbaa !5
  %2085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2086 = load i32, ptr %2085, align 4, !tbaa !5
  %2087 = call ptr @s2n_strerror_debug(i32 noundef %2086, ptr noundef @.str.4)
  %2088 = icmp eq ptr %2087, null
  br i1 %2088, label %2089, label %2142

2089:                                             ; preds = %2082
  br label %2090

2090:                                             ; preds = %2089
  br label %2091

2091:                                             ; preds = %2090
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %2092 = call ptr @__errno_location() #10
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  store i32 %2093, ptr %44, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = call i32 @s2n_print_stacktrace(ptr noundef %2094)
  %2096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2097 = trunc i8 %2096 to i1
  br i1 %2097, label %2098, label %2120

2098:                                             ; preds = %2091
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = call i32 @fileno(ptr noundef %2099) #9
  %2101 = call i32 @isatty(i32 noundef %2100) #9
  %2102 = icmp ne i32 %2101, 0
  br i1 %2102, label %2103, label %2120

2103:                                             ; preds = %2098
  %2104 = load i32, ptr %44, align 4, !tbaa !5
  %2105 = call ptr @__errno_location() #10
  store i32 %2104, ptr %2105, align 4, !tbaa !5
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = load i32, ptr @test_count, align 4, !tbaa !5
  %2108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror(i32 noundef %2109, ptr noundef @.str.4)
  %2111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call ptr @s2n_strerror_debug(i32 noundef %2112, ptr noundef @.str.4)
  %2114 = call ptr @__errno_location() #10
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  %2116 = call ptr @strerror(i32 noundef %2115) #9
  %2117 = call ptr @__errno_location() #10
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  %2119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2106, ptr noundef @.str.2, i32 noundef %2107, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2110, ptr noundef %2113, ptr noundef %2116, i32 noundef %2118) #9
  br label %2137

2120:                                             ; preds = %2098, %2091
  %2121 = load i32, ptr %44, align 4, !tbaa !5
  %2122 = call ptr @__errno_location() #10
  store i32 %2121, ptr %2122, align 4, !tbaa !5
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = load i32, ptr @test_count, align 4, !tbaa !5
  %2125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror(i32 noundef %2126, ptr noundef @.str.4)
  %2128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = call ptr @s2n_strerror_debug(i32 noundef %2129, ptr noundef @.str.4)
  %2131 = call ptr @__errno_location() #10
  %2132 = load i32, ptr %2131, align 4, !tbaa !5
  %2133 = call ptr @strerror(i32 noundef %2132) #9
  %2134 = call ptr @__errno_location() #10
  %2135 = load i32, ptr %2134, align 4, !tbaa !5
  %2136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2123, ptr noundef @.str.5, i32 noundef %2124, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2127, ptr noundef %2130, ptr noundef %2133, i32 noundef %2135) #9
  br label %2137

2137:                                             ; preds = %2120, %2103
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %2138

2138:                                             ; preds = %2137
  br label %2139

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

2140:                                             ; No predecessors!
  br label %2141

2141:                                             ; preds = %2140
  br label %2142

2142:                                             ; preds = %2141, %2082
  br label %2143

2143:                                             ; preds = %2142
  br label %2144

2144:                                             ; preds = %2143
  br label %2145

2145:                                             ; preds = %2144
  br label %2146

2146:                                             ; preds = %2145
  br label %2147

2147:                                             ; preds = %2146
  %2148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2148, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2149 = call ptr @__errno_location() #10
  store i32 0, ptr %2149, align 4, !tbaa !5
  br label %2150

2150:                                             ; preds = %2147
  br label %2151

2151:                                             ; preds = %2150
  br label %2152

2152:                                             ; preds = %2151
  br label %2153

2153:                                             ; preds = %2152
  %2154 = load ptr, ptr %38, align 8, !tbaa !9
  %2155 = getelementptr inbounds %struct.s2n_connection, ptr %2154, i32 0, i32 89
  store i32 1, ptr %2155, align 8, !tbaa !18
  br label %2156

2156:                                             ; preds = %2153
  %2157 = load i32, ptr @test_count, align 4, !tbaa !5
  %2158 = add nsw i32 %2157, 1
  store i32 %2158, ptr @test_count, align 4, !tbaa !5
  %2159 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_early_data_indication_extension, i32 0, i32 4), align 8, !tbaa !52
  %2160 = load ptr, ptr %38, align 8, !tbaa !9
  %2161 = call i32 %2159(ptr noundef %2160, ptr noundef %26)
  %2162 = icmp eq i32 %2161, -1
  br i1 %2162, label %2163, label %2216

2163:                                             ; preds = %2156
  br label %2164

2164:                                             ; preds = %2163
  br label %2165

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

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

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

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

2211:                                             ; preds = %2194, %2177
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %2212

2212:                                             ; preds = %2211
  br label %2213

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

2214:                                             ; No predecessors!
  br label %2215

2215:                                             ; preds = %2214
  br label %2216

2216:                                             ; preds = %2215, %2156
  br label %2217

2217:                                             ; preds = %2216
  br label %2218

2218:                                             ; preds = %2217
  br label %2219

2219:                                             ; preds = %2218
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = add nsw i32 %2220, 1
  store i32 %2221, ptr @test_count, align 4, !tbaa !5
  %2222 = load ptr, ptr %38, align 8, !tbaa !9
  %2223 = getelementptr inbounds %struct.s2n_connection, ptr %2222, i32 0, i32 89
  %2224 = load i32, ptr %2223, align 8, !tbaa !18
  %2225 = icmp eq i32 %2224, 3
  br i1 %2225, label %2279, label %2226

2226:                                             ; preds = %2219
  br label %2227

2227:                                             ; preds = %2226
  br label %2228

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

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

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

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

2274:                                             ; preds = %2257, %2240
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2275

2275:                                             ; preds = %2274
  br label %2276

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

2277:                                             ; No predecessors!
  br label %2278

2278:                                             ; preds = %2277
  br label %2279

2279:                                             ; preds = %2278, %2219
  br label %2280

2280:                                             ; preds = %2279
  br label %2281

2281:                                             ; preds = %2280
  br label %2282

2282:                                             ; preds = %2281
  %2283 = load i32, ptr @test_count, align 4, !tbaa !5
  %2284 = add nsw i32 %2283, 1
  store i32 %2284, ptr @test_count, align 4, !tbaa !5
  %2285 = load ptr, ptr %38, align 8, !tbaa !9
  %2286 = call i32 @s2n_connection_free(ptr noundef %2285)
  %2287 = icmp eq i32 %2286, -1
  br i1 %2287, label %2288, label %2341

2288:                                             ; preds = %2282
  br label %2289

2289:                                             ; preds = %2288
  br label %2290

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

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

2302:                                             ; preds = %2297
  %2303 = load i32, ptr %47, align 4, !tbaa !5
  %2304 = call ptr @__errno_location() #10
  store i32 %2303, ptr %2304, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2308, ptr noundef @.str.4)
  %2310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call ptr @s2n_strerror_debug(i32 noundef %2311, ptr noundef @.str.4)
  %2313 = call ptr @__errno_location() #10
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  %2315 = call ptr @strerror(i32 noundef %2314) #9
  %2316 = call ptr @__errno_location() #10
  %2317 = load i32, ptr %2316, align 4, !tbaa !5
  %2318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2305, ptr noundef @.str.2, i32 noundef %2306, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2309, ptr noundef %2312, ptr noundef %2315, i32 noundef %2317) #9
  br label %2336

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

2336:                                             ; preds = %2319, %2302
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %2337

2337:                                             ; preds = %2336
  br label %2338

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

2339:                                             ; No predecessors!
  br label %2340

2340:                                             ; preds = %2339
  br label %2341

2341:                                             ; preds = %2340, %2282
  br label %2342

2342:                                             ; preds = %2341
  br label %2343

2343:                                             ; preds = %2342
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %26) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  store ptr @.str.30, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %2344 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2344, ptr %50, align 8, !tbaa !9
  br label %2345

2345:                                             ; preds = %2343
  %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 %50, align 8, !tbaa !9
  %2349 = icmp eq ptr %2348, null
  br i1 %2349, label %2350, label %2403

2350:                                             ; preds = %2345
  br label %2351

2351:                                             ; preds = %2350
  br label %2352

2352:                                             ; preds = %2351
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %2353 = call ptr @__errno_location() #10
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  store i32 %2354, ptr %51, 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) #9
  %2362 = call i32 @isatty(i32 noundef %2361) #9
  %2363 = icmp ne i32 %2362, 0
  br i1 %2363, label %2364, label %2381

2364:                                             ; preds = %2359
  %2365 = load i32, ptr %51, align 4, !tbaa !5
  %2366 = call ptr @__errno_location() #10
  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() #10
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call ptr @strerror(i32 noundef %2376) #9
  %2378 = call ptr @__errno_location() #10
  %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.31, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2371, ptr noundef %2374, ptr noundef %2377, i32 noundef %2379) #9
  br label %2398

2381:                                             ; preds = %2359, %2352
  %2382 = load i32, ptr %51, align 4, !tbaa !5
  %2383 = call ptr @__errno_location() #10
  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() #10
  %2393 = load i32, ptr %2392, align 4, !tbaa !5
  %2394 = call ptr @strerror(i32 noundef %2393) #9
  %2395 = call ptr @__errno_location() #10
  %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.31, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2388, ptr noundef %2391, ptr noundef %2394, i32 noundef %2396) #9
  br label %2398

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

2399:                                             ; preds = %2398
  br label %2400

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

2401:                                             ; No predecessors!
  br label %2402

2402:                                             ; preds = %2401
  br label %2403

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

2404:                                             ; preds = %2403
  br label %2405

2405:                                             ; preds = %2404
  br label %2406

2406:                                             ; preds = %2405
  %2407 = load i32, ptr @test_count, align 4, !tbaa !5
  %2408 = add nsw i32 %2407, 1
  store i32 %2408, ptr @test_count, align 4, !tbaa !5
  %2409 = load ptr, ptr %50, align 8, !tbaa !9
  %2410 = load ptr, ptr %49, align 8, !tbaa !9
  %2411 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef %2409, i32 noundef 0, ptr noundef %2410)
  %2412 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  store i32 %2411, ptr %2412, align 4
  %2413 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  %2414 = load i32, ptr %2413, align 4
  %2415 = call zeroext i1 @s2n_result_is_ok(i32 %2414)
  br i1 %2415, label %2469, label %2416

2416:                                             ; preds = %2406
  br label %2417

2417:                                             ; preds = %2416
  br label %2418

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

2425:                                             ; preds = %2418
  %2426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2427 = call i32 @fileno(ptr noundef %2426) #9
  %2428 = call i32 @isatty(i32 noundef %2427) #9
  %2429 = icmp ne i32 %2428, 0
  br i1 %2429, label %2430, label %2447

2430:                                             ; preds = %2425
  %2431 = load i32, ptr %53, align 4, !tbaa !5
  %2432 = call ptr @__errno_location() #10
  store i32 %2431, ptr %2432, align 4, !tbaa !5
  %2433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %2435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @s2n_strerror(i32 noundef %2436, ptr noundef @.str.4)
  %2438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call ptr @s2n_strerror_debug(i32 noundef %2439, ptr noundef @.str.4)
  %2441 = call ptr @__errno_location() #10
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call ptr @strerror(i32 noundef %2442) #9
  %2444 = call ptr @__errno_location() #10
  %2445 = load i32, ptr %2444, align 4, !tbaa !5
  %2446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2433, ptr noundef @.str.2, i32 noundef %2434, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2437, ptr noundef %2440, ptr noundef %2443, i32 noundef %2445) #9
  br label %2464

2447:                                             ; preds = %2425, %2418
  %2448 = load i32, ptr %53, align 4, !tbaa !5
  %2449 = call ptr @__errno_location() #10
  store i32 %2448, ptr %2449, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2453 = load i32, ptr %2452, align 4, !tbaa !5
  %2454 = call ptr @s2n_strerror(i32 noundef %2453, ptr noundef @.str.4)
  %2455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror_debug(i32 noundef %2456, ptr noundef @.str.4)
  %2458 = call ptr @__errno_location() #10
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call ptr @strerror(i32 noundef %2459) #9
  %2461 = call ptr @__errno_location() #10
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef @.str.5, i32 noundef %2451, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2454, ptr noundef %2457, ptr noundef %2460, i32 noundef %2462) #9
  br label %2464

2464:                                             ; preds = %2447, %2430
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2465

2465:                                             ; preds = %2464
  br label %2466

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

2467:                                             ; No predecessors!
  br label %2468

2468:                                             ; preds = %2467
  br label %2469

2469:                                             ; preds = %2468, %2406
  br label %2470

2470:                                             ; preds = %2469
  br label %2471

2471:                                             ; preds = %2470
  br label %2472

2472:                                             ; preds = %2471
  %2473 = load i32, ptr @test_count, align 4, !tbaa !5
  %2474 = add nsw i32 %2473, 1
  store i32 %2474, ptr @test_count, align 4, !tbaa !5
  %2475 = load ptr, ptr %50, align 8, !tbaa !9
  %2476 = load ptr, ptr %48, align 8, !tbaa !9
  %2477 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2475, ptr noundef %2476)
  %2478 = icmp eq i32 %2477, -1
  br i1 %2478, label %2479, label %2532

2479:                                             ; preds = %2472
  br label %2480

2480:                                             ; preds = %2479
  br label %2481

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

2488:                                             ; preds = %2481
  %2489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2490 = call i32 @fileno(ptr noundef %2489) #9
  %2491 = call i32 @isatty(i32 noundef %2490) #9
  %2492 = icmp ne i32 %2491, 0
  br i1 %2492, label %2493, label %2510

2493:                                             ; preds = %2488
  %2494 = load i32, ptr %54, align 4, !tbaa !5
  %2495 = call ptr @__errno_location() #10
  store i32 %2494, ptr %2495, align 4, !tbaa !5
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = load i32, ptr @test_count, align 4, !tbaa !5
  %2498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @s2n_strerror(i32 noundef %2499, ptr noundef @.str.4)
  %2501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call ptr @s2n_strerror_debug(i32 noundef %2502, ptr noundef @.str.4)
  %2504 = call ptr @__errno_location() #10
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call ptr @strerror(i32 noundef %2505) #9
  %2507 = call ptr @__errno_location() #10
  %2508 = load i32, ptr %2507, align 4, !tbaa !5
  %2509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2496, ptr noundef @.str.2, i32 noundef %2497, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2500, ptr noundef %2503, ptr noundef %2506, i32 noundef %2508) #9
  br label %2527

2510:                                             ; preds = %2488, %2481
  %2511 = load i32, ptr %54, align 4, !tbaa !5
  %2512 = call ptr @__errno_location() #10
  store i32 %2511, ptr %2512, align 4, !tbaa !5
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = load i32, ptr @test_count, align 4, !tbaa !5
  %2515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call ptr @s2n_strerror(i32 noundef %2516, ptr noundef @.str.4)
  %2518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror_debug(i32 noundef %2519, ptr noundef @.str.4)
  %2521 = call ptr @__errno_location() #10
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = call ptr @strerror(i32 noundef %2522) #9
  %2524 = call ptr @__errno_location() #10
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2513, ptr noundef @.str.5, i32 noundef %2514, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2517, ptr noundef %2520, ptr noundef %2523, i32 noundef %2525) #9
  br label %2527

2527:                                             ; preds = %2510, %2493
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2528

2528:                                             ; preds = %2527
  br label %2529

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

2530:                                             ; No predecessors!
  br label %2531

2531:                                             ; preds = %2530
  br label %2532

2532:                                             ; preds = %2531, %2472
  br label %2533

2533:                                             ; preds = %2532
  br label %2534

2534:                                             ; preds = %2533
  br label %2535

2535:                                             ; preds = %2534
  %2536 = load i32, ptr @test_count, align 4, !tbaa !5
  %2537 = add nsw i32 %2536, 1
  store i32 %2537, ptr @test_count, align 4, !tbaa !5
  %2538 = load ptr, ptr %50, align 8, !tbaa !9
  %2539 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %2538)
  %2540 = icmp eq i32 %2539, -1
  br i1 %2540, label %2541, label %2594

2541:                                             ; preds = %2535
  br label %2542

2542:                                             ; preds = %2541
  br label %2543

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

2550:                                             ; preds = %2543
  %2551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2552 = call i32 @fileno(ptr noundef %2551) #9
  %2553 = call i32 @isatty(i32 noundef %2552) #9
  %2554 = icmp ne i32 %2553, 0
  br i1 %2554, label %2555, label %2572

2555:                                             ; preds = %2550
  %2556 = load i32, ptr %55, align 4, !tbaa !5
  %2557 = call ptr @__errno_location() #10
  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() #10
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @strerror(i32 noundef %2567) #9
  %2569 = call ptr @__errno_location() #10
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2558, ptr noundef @.str.2, i32 noundef %2559, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2562, ptr noundef %2565, ptr noundef %2568, i32 noundef %2570) #9
  br label %2589

2572:                                             ; preds = %2550, %2543
  %2573 = load i32, ptr %55, align 4, !tbaa !5
  %2574 = call ptr @__errno_location() #10
  store i32 %2573, ptr %2574, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = load i32, ptr @test_count, align 4, !tbaa !5
  %2577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call ptr @s2n_strerror(i32 noundef %2578, ptr noundef @.str.4)
  %2580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call ptr @s2n_strerror_debug(i32 noundef %2581, ptr noundef @.str.4)
  %2583 = call ptr @__errno_location() #10
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call ptr @strerror(i32 noundef %2584) #9
  %2586 = call ptr @__errno_location() #10
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2575, ptr noundef @.str.5, i32 noundef %2576, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2579, ptr noundef %2582, ptr noundef %2585, i32 noundef %2587) #9
  br label %2589

2589:                                             ; preds = %2572, %2555
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2590

2590:                                             ; preds = %2589
  br label %2591

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

2592:                                             ; No predecessors!
  br label %2593

2593:                                             ; preds = %2592
  br label %2594

2594:                                             ; preds = %2593, %2535
  br label %2595

2595:                                             ; preds = %2594
  br label %2596

2596:                                             ; preds = %2595
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %2597 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2597, ptr %56, align 8, !tbaa !9
  br label %2598

2598:                                             ; preds = %2596
  %2599 = load i32, ptr @test_count, align 4, !tbaa !5
  %2600 = add nsw i32 %2599, 1
  store i32 %2600, ptr @test_count, align 4, !tbaa !5
  %2601 = load ptr, ptr %56, align 8, !tbaa !9
  %2602 = icmp eq ptr %2601, null
  br i1 %2602, label %2603, label %2656

2603:                                             ; preds = %2598
  br label %2604

2604:                                             ; preds = %2603
  br label %2605

2605:                                             ; preds = %2604
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2606 = call ptr @__errno_location() #10
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  store i32 %2607, ptr %57, align 4, !tbaa !5
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @s2n_print_stacktrace(ptr noundef %2608)
  %2610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2611 = trunc i8 %2610 to i1
  br i1 %2611, label %2612, label %2634

2612:                                             ; preds = %2605
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = call i32 @fileno(ptr noundef %2613) #9
  %2615 = call i32 @isatty(i32 noundef %2614) #9
  %2616 = icmp ne i32 %2615, 0
  br i1 %2616, label %2617, label %2634

2617:                                             ; preds = %2612
  %2618 = load i32, ptr %57, align 4, !tbaa !5
  %2619 = call ptr @__errno_location() #10
  store i32 %2618, ptr %2619, align 4, !tbaa !5
  %2620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2621 = load i32, ptr @test_count, align 4, !tbaa !5
  %2622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2623 = load i32, ptr %2622, align 4, !tbaa !5
  %2624 = call ptr @s2n_strerror(i32 noundef %2623, ptr noundef @.str.4)
  %2625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  %2627 = call ptr @s2n_strerror_debug(i32 noundef %2626, ptr noundef @.str.4)
  %2628 = call ptr @__errno_location() #10
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call ptr @strerror(i32 noundef %2629) #9
  %2631 = call ptr @__errno_location() #10
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  %2633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2620, ptr noundef @.str.2, i32 noundef %2621, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 150, ptr noundef %2624, ptr noundef %2627, ptr noundef %2630, i32 noundef %2632) #9
  br label %2651

2634:                                             ; preds = %2612, %2605
  %2635 = load i32, ptr %57, align 4, !tbaa !5
  %2636 = call ptr @__errno_location() #10
  store i32 %2635, ptr %2636, align 4, !tbaa !5
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = load i32, ptr @test_count, align 4, !tbaa !5
  %2639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2640 = load i32, ptr %2639, align 4, !tbaa !5
  %2641 = call ptr @s2n_strerror(i32 noundef %2640, ptr noundef @.str.4)
  %2642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror_debug(i32 noundef %2643, ptr noundef @.str.4)
  %2645 = call ptr @__errno_location() #10
  %2646 = load i32, ptr %2645, align 4, !tbaa !5
  %2647 = call ptr @strerror(i32 noundef %2646) #9
  %2648 = call ptr @__errno_location() #10
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2637, ptr noundef @.str.5, i32 noundef %2638, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 150, ptr noundef %2641, ptr noundef %2644, ptr noundef %2647, i32 noundef %2649) #9
  br label %2651

2651:                                             ; preds = %2634, %2617
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2652

2652:                                             ; preds = %2651
  br label %2653

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

2654:                                             ; No predecessors!
  br label %2655

2655:                                             ; preds = %2654
  br label %2656

2656:                                             ; preds = %2655, %2598
  br label %2657

2657:                                             ; preds = %2656
  br label %2658

2658:                                             ; preds = %2657
  br label %2659

2659:                                             ; preds = %2658
  %2660 = load i32, ptr @test_count, align 4, !tbaa !5
  %2661 = add nsw i32 %2660, 1
  store i32 %2661, ptr @test_count, align 4, !tbaa !5
  %2662 = load ptr, ptr %56, align 8, !tbaa !9
  %2663 = load ptr, ptr %49, align 8, !tbaa !9
  %2664 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef %2662, i32 noundef 0, ptr noundef %2663)
  %2665 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  store i32 %2664, ptr %2665, align 4
  %2666 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  %2667 = load i32, ptr %2666, align 4
  %2668 = call zeroext i1 @s2n_result_is_ok(i32 %2667)
  br i1 %2668, label %2722, label %2669

2669:                                             ; preds = %2659
  br label %2670

2670:                                             ; preds = %2669
  br label %2671

2671:                                             ; preds = %2670
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #9
  %2672 = call ptr @__errno_location() #10
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  store i32 %2673, ptr %59, align 4, !tbaa !5
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = call i32 @s2n_print_stacktrace(ptr noundef %2674)
  %2676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2677 = trunc i8 %2676 to i1
  br i1 %2677, label %2678, label %2700

2678:                                             ; preds = %2671
  %2679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2680 = call i32 @fileno(ptr noundef %2679) #9
  %2681 = call i32 @isatty(i32 noundef %2680) #9
  %2682 = icmp ne i32 %2681, 0
  br i1 %2682, label %2683, label %2700

2683:                                             ; preds = %2678
  %2684 = load i32, ptr %59, align 4, !tbaa !5
  %2685 = call ptr @__errno_location() #10
  store i32 %2684, ptr %2685, align 4, !tbaa !5
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = load i32, ptr @test_count, align 4, !tbaa !5
  %2688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @s2n_strerror(i32 noundef %2689, ptr noundef @.str.4)
  %2691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror_debug(i32 noundef %2692, ptr noundef @.str.4)
  %2694 = call ptr @__errno_location() #10
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call ptr @strerror(i32 noundef %2695) #9
  %2697 = call ptr @__errno_location() #10
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2686, ptr noundef @.str.2, i32 noundef %2687, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2690, ptr noundef %2693, ptr noundef %2696, i32 noundef %2698) #9
  br label %2717

2700:                                             ; preds = %2678, %2671
  %2701 = load i32, ptr %59, align 4, !tbaa !5
  %2702 = call ptr @__errno_location() #10
  store i32 %2701, ptr %2702, align 4, !tbaa !5
  %2703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2704 = load i32, ptr @test_count, align 4, !tbaa !5
  %2705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = call ptr @s2n_strerror(i32 noundef %2706, ptr noundef @.str.4)
  %2708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2709 = load i32, ptr %2708, align 4, !tbaa !5
  %2710 = call ptr @s2n_strerror_debug(i32 noundef %2709, ptr noundef @.str.4)
  %2711 = call ptr @__errno_location() #10
  %2712 = load i32, ptr %2711, align 4, !tbaa !5
  %2713 = call ptr @strerror(i32 noundef %2712) #9
  %2714 = call ptr @__errno_location() #10
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  %2716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2703, ptr noundef @.str.5, i32 noundef %2704, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2707, ptr noundef %2710, ptr noundef %2713, i32 noundef %2715) #9
  br label %2717

2717:                                             ; preds = %2700, %2683
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2718

2718:                                             ; preds = %2717
  br label %2719

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

2720:                                             ; No predecessors!
  br label %2721

2721:                                             ; preds = %2720
  br label %2722

2722:                                             ; preds = %2721, %2659
  br label %2723

2723:                                             ; preds = %2722
  br label %2724

2724:                                             ; preds = %2723
  br label %2725

2725:                                             ; preds = %2724
  %2726 = load i32, ptr @test_count, align 4, !tbaa !5
  %2727 = add nsw i32 %2726, 1
  store i32 %2727, ptr @test_count, align 4, !tbaa !5
  %2728 = load ptr, ptr %56, align 8, !tbaa !9
  %2729 = load ptr, ptr %48, align 8, !tbaa !9
  %2730 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2728, ptr noundef %2729)
  %2731 = icmp eq i32 %2730, -1
  br i1 %2731, label %2732, label %2785

2732:                                             ; preds = %2725
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

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

2741:                                             ; preds = %2734
  %2742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2743 = call i32 @fileno(ptr noundef %2742) #9
  %2744 = call i32 @isatty(i32 noundef %2743) #9
  %2745 = icmp ne i32 %2744, 0
  br i1 %2745, label %2746, label %2763

2746:                                             ; preds = %2741
  %2747 = load i32, ptr %60, align 4, !tbaa !5
  %2748 = call ptr @__errno_location() #10
  store i32 %2747, ptr %2748, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2752 = load i32, ptr %2751, align 4, !tbaa !5
  %2753 = call ptr @s2n_strerror(i32 noundef %2752, ptr noundef @.str.4)
  %2754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = call ptr @s2n_strerror_debug(i32 noundef %2755, ptr noundef @.str.4)
  %2757 = call ptr @__errno_location() #10
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @strerror(i32 noundef %2758) #9
  %2760 = call ptr @__errno_location() #10
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2749, ptr noundef @.str.2, i32 noundef %2750, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2753, ptr noundef %2756, ptr noundef %2759, i32 noundef %2761) #9
  br label %2780

2763:                                             ; preds = %2741, %2734
  %2764 = load i32, ptr %60, align 4, !tbaa !5
  %2765 = call ptr @__errno_location() #10
  store i32 %2764, ptr %2765, align 4, !tbaa !5
  %2766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2767 = load i32, ptr @test_count, align 4, !tbaa !5
  %2768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call ptr @s2n_strerror(i32 noundef %2769, ptr noundef @.str.4)
  %2771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror_debug(i32 noundef %2772, ptr noundef @.str.4)
  %2774 = call ptr @__errno_location() #10
  %2775 = load i32, ptr %2774, align 4, !tbaa !5
  %2776 = call ptr @strerror(i32 noundef %2775) #9
  %2777 = call ptr @__errno_location() #10
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2766, ptr noundef @.str.5, i32 noundef %2767, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2770, ptr noundef %2773, ptr noundef %2776, i32 noundef %2778) #9
  br label %2780

2780:                                             ; preds = %2763, %2746
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

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

2783:                                             ; No predecessors!
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

2785:                                             ; preds = %2784, %2725
  br label %2786

2786:                                             ; preds = %2785
  br label %2787

2787:                                             ; preds = %2786
  br label %2788

2788:                                             ; preds = %2787
  %2789 = load i32, ptr @test_count, align 4, !tbaa !5
  %2790 = add nsw i32 %2789, 1
  store i32 %2790, ptr @test_count, align 4, !tbaa !5
  %2791 = load ptr, ptr %56, align 8, !tbaa !9
  %2792 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %2791)
  %2793 = icmp eq i32 %2792, -1
  br i1 %2793, label %2794, label %2847

2794:                                             ; preds = %2788
  br label %2795

2795:                                             ; preds = %2794
  br label %2796

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

2803:                                             ; preds = %2796
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = call i32 @fileno(ptr noundef %2804) #9
  %2806 = call i32 @isatty(i32 noundef %2805) #9
  %2807 = icmp ne i32 %2806, 0
  br i1 %2807, label %2808, label %2825

2808:                                             ; preds = %2803
  %2809 = load i32, ptr %61, align 4, !tbaa !5
  %2810 = call ptr @__errno_location() #10
  store i32 %2809, ptr %2810, align 4, !tbaa !5
  %2811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2812 = load i32, ptr @test_count, align 4, !tbaa !5
  %2813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2814 = load i32, ptr %2813, align 4, !tbaa !5
  %2815 = call ptr @s2n_strerror(i32 noundef %2814, ptr noundef @.str.4)
  %2816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2817 = load i32, ptr %2816, align 4, !tbaa !5
  %2818 = call ptr @s2n_strerror_debug(i32 noundef %2817, ptr noundef @.str.4)
  %2819 = call ptr @__errno_location() #10
  %2820 = load i32, ptr %2819, align 4, !tbaa !5
  %2821 = call ptr @strerror(i32 noundef %2820) #9
  %2822 = call ptr @__errno_location() #10
  %2823 = load i32, ptr %2822, align 4, !tbaa !5
  %2824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2811, ptr noundef @.str.2, i32 noundef %2812, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2815, ptr noundef %2818, ptr noundef %2821, i32 noundef %2823) #9
  br label %2842

2825:                                             ; preds = %2803, %2796
  %2826 = load i32, ptr %61, align 4, !tbaa !5
  %2827 = call ptr @__errno_location() #10
  store i32 %2826, ptr %2827, align 4, !tbaa !5
  %2828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2829 = load i32, ptr @test_count, align 4, !tbaa !5
  %2830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call ptr @s2n_strerror(i32 noundef %2831, ptr noundef @.str.4)
  %2833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2834 = load i32, ptr %2833, align 4, !tbaa !5
  %2835 = call ptr @s2n_strerror_debug(i32 noundef %2834, ptr noundef @.str.4)
  %2836 = call ptr @__errno_location() #10
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call ptr @strerror(i32 noundef %2837) #9
  %2839 = call ptr @__errno_location() #10
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2828, ptr noundef @.str.5, i32 noundef %2829, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2832, ptr noundef %2835, ptr noundef %2838, i32 noundef %2840) #9
  br label %2842

2842:                                             ; preds = %2825, %2808
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2843

2843:                                             ; preds = %2842
  br label %2844

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

2845:                                             ; No predecessors!
  br label %2846

2846:                                             ; preds = %2845
  br label %2847

2847:                                             ; preds = %2846, %2788
  br label %2848

2848:                                             ; preds = %2847
  br label %2849

2849:                                             ; preds = %2848
  br label %2850

2850:                                             ; preds = %2849
  %2851 = load i32, ptr @test_count, align 4, !tbaa !5
  %2852 = add nsw i32 %2851, 1
  store i32 %2852, ptr @test_count, align 4, !tbaa !5
  %2853 = load ptr, ptr %50, align 8, !tbaa !9
  %2854 = load ptr, ptr %56, align 8, !tbaa !9
  %2855 = call i32 @s2n_exchange_hellos(ptr noundef %2853, ptr noundef %2854)
  %2856 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  store i32 %2855, ptr %2856, align 4
  %2857 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  %2858 = load i32, ptr %2857, align 4
  %2859 = call zeroext i1 @s2n_result_is_ok(i32 %2858)
  br i1 %2859, label %2913, label %2860

2860:                                             ; preds = %2850
  br label %2861

2861:                                             ; preds = %2860
  br label %2862

2862:                                             ; preds = %2861
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %2863 = call ptr @__errno_location() #10
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  store i32 %2864, ptr %63, align 4, !tbaa !5
  %2865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2866 = call i32 @s2n_print_stacktrace(ptr noundef %2865)
  %2867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2868 = trunc i8 %2867 to i1
  br i1 %2868, label %2869, label %2891

2869:                                             ; preds = %2862
  %2870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2871 = call i32 @fileno(ptr noundef %2870) #9
  %2872 = call i32 @isatty(i32 noundef %2871) #9
  %2873 = icmp ne i32 %2872, 0
  br i1 %2873, label %2874, label %2891

2874:                                             ; preds = %2869
  %2875 = load i32, ptr %63, align 4, !tbaa !5
  %2876 = call ptr @__errno_location() #10
  store i32 %2875, ptr %2876, align 4, !tbaa !5
  %2877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2878 = load i32, ptr @test_count, align 4, !tbaa !5
  %2879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2880 = load i32, ptr %2879, align 4, !tbaa !5
  %2881 = call ptr @s2n_strerror(i32 noundef %2880, ptr noundef @.str.4)
  %2882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  %2884 = call ptr @s2n_strerror_debug(i32 noundef %2883, ptr noundef @.str.4)
  %2885 = call ptr @__errno_location() #10
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call ptr @strerror(i32 noundef %2886) #9
  %2888 = call ptr @__errno_location() #10
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2877, ptr noundef @.str.2, i32 noundef %2878, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 155, ptr noundef %2881, ptr noundef %2884, ptr noundef %2887, i32 noundef %2889) #9
  br label %2908

2891:                                             ; preds = %2869, %2862
  %2892 = load i32, ptr %63, align 4, !tbaa !5
  %2893 = call ptr @__errno_location() #10
  store i32 %2892, ptr %2893, align 4, !tbaa !5
  %2894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2895 = load i32, ptr @test_count, align 4, !tbaa !5
  %2896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  %2898 = call ptr @s2n_strerror(i32 noundef %2897, ptr noundef @.str.4)
  %2899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  %2901 = call ptr @s2n_strerror_debug(i32 noundef %2900, ptr noundef @.str.4)
  %2902 = call ptr @__errno_location() #10
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @strerror(i32 noundef %2903) #9
  %2905 = call ptr @__errno_location() #10
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2894, ptr noundef @.str.5, i32 noundef %2895, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 155, ptr noundef %2898, ptr noundef %2901, ptr noundef %2904, i32 noundef %2906) #9
  br label %2908

2908:                                             ; preds = %2891, %2874
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %2909

2909:                                             ; preds = %2908
  br label %2910

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

2911:                                             ; No predecessors!
  br label %2912

2912:                                             ; preds = %2911
  br label %2913

2913:                                             ; preds = %2912, %2850
  br label %2914

2914:                                             ; preds = %2913
  br label %2915

2915:                                             ; preds = %2914
  br label %2916

2916:                                             ; preds = %2915
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = add nsw i32 %2917, 1
  store i32 %2918, ptr @test_count, align 4, !tbaa !5
  %2919 = load ptr, ptr %50, align 8, !tbaa !9
  %2920 = getelementptr inbounds %struct.s2n_connection, ptr %2919, i32 0, i32 89
  %2921 = load i32, ptr %2920, align 8, !tbaa !18
  %2922 = icmp eq i32 %2921, 2
  br i1 %2922, label %2976, label %2923

2923:                                             ; preds = %2916
  br label %2924

2924:                                             ; preds = %2923
  br label %2925

2925:                                             ; preds = %2924
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  %2926 = call ptr @__errno_location() #10
  %2927 = load i32, ptr %2926, align 4, !tbaa !5
  store i32 %2927, ptr %64, align 4, !tbaa !5
  %2928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2929 = call i32 @s2n_print_stacktrace(ptr noundef %2928)
  %2930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2931 = trunc i8 %2930 to i1
  br i1 %2931, label %2932, label %2954

2932:                                             ; preds = %2925
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = call i32 @fileno(ptr noundef %2933) #9
  %2935 = call i32 @isatty(i32 noundef %2934) #9
  %2936 = icmp ne i32 %2935, 0
  br i1 %2936, label %2937, label %2954

2937:                                             ; preds = %2932
  %2938 = load i32, ptr %64, align 4, !tbaa !5
  %2939 = call ptr @__errno_location() #10
  store i32 %2938, ptr %2939, align 4, !tbaa !5
  %2940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2941 = load i32, ptr @test_count, align 4, !tbaa !5
  %2942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call ptr @s2n_strerror(i32 noundef %2943, ptr noundef @.str.4)
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror_debug(i32 noundef %2946, ptr noundef @.str.4)
  %2948 = call ptr @__errno_location() #10
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call ptr @strerror(i32 noundef %2949) #9
  %2951 = call ptr @__errno_location() #10
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2940, ptr noundef @.str.2, i32 noundef %2941, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 156, ptr noundef %2944, ptr noundef %2947, ptr noundef %2950, i32 noundef %2952) #9
  br label %2971

2954:                                             ; preds = %2932, %2925
  %2955 = load i32, ptr %64, align 4, !tbaa !5
  %2956 = call ptr @__errno_location() #10
  store i32 %2955, ptr %2956, align 4, !tbaa !5
  %2957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2958 = load i32, ptr @test_count, align 4, !tbaa !5
  %2959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call ptr @s2n_strerror(i32 noundef %2960, ptr noundef @.str.4)
  %2962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror_debug(i32 noundef %2963, ptr noundef @.str.4)
  %2965 = call ptr @__errno_location() #10
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @strerror(i32 noundef %2966) #9
  %2968 = call ptr @__errno_location() #10
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2957, ptr noundef @.str.5, i32 noundef %2958, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 156, ptr noundef %2961, ptr noundef %2964, ptr noundef %2967, i32 noundef %2969) #9
  br label %2971

2971:                                             ; preds = %2954, %2937
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %2972

2972:                                             ; preds = %2971
  br label %2973

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

2974:                                             ; No predecessors!
  br label %2975

2975:                                             ; preds = %2974
  br label %2976

2976:                                             ; preds = %2975, %2916
  br label %2977

2977:                                             ; preds = %2976
  br label %2978

2978:                                             ; preds = %2977
  br label %2979

2979:                                             ; preds = %2978
  %2980 = load i32, ptr @test_count, align 4, !tbaa !5
  %2981 = add nsw i32 %2980, 1
  store i32 %2981, ptr @test_count, align 4, !tbaa !5
  %2982 = load ptr, ptr %56, align 8, !tbaa !9
  %2983 = getelementptr inbounds %struct.s2n_connection, ptr %2982, i32 0, i32 89
  %2984 = load i32, ptr %2983, align 8, !tbaa !18
  %2985 = icmp eq i32 %2984, 2
  br i1 %2985, label %3039, label %2986

2986:                                             ; preds = %2979
  br label %2987

2987:                                             ; preds = %2986
  br label %2988

2988:                                             ; preds = %2987
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %2989 = call ptr @__errno_location() #10
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  store i32 %2990, ptr %65, align 4, !tbaa !5
  %2991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2992 = call i32 @s2n_print_stacktrace(ptr noundef %2991)
  %2993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2994 = trunc i8 %2993 to i1
  br i1 %2994, label %2995, label %3017

2995:                                             ; preds = %2988
  %2996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2997 = call i32 @fileno(ptr noundef %2996) #9
  %2998 = call i32 @isatty(i32 noundef %2997) #9
  %2999 = icmp ne i32 %2998, 0
  br i1 %2999, label %3000, label %3017

3000:                                             ; preds = %2995
  %3001 = load i32, ptr %65, align 4, !tbaa !5
  %3002 = call ptr @__errno_location() #10
  store i32 %3001, ptr %3002, align 4, !tbaa !5
  %3003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3004 = load i32, ptr @test_count, align 4, !tbaa !5
  %3005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3006 = load i32, ptr %3005, align 4, !tbaa !5
  %3007 = call ptr @s2n_strerror(i32 noundef %3006, ptr noundef @.str.4)
  %3008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3009 = load i32, ptr %3008, align 4, !tbaa !5
  %3010 = call ptr @s2n_strerror_debug(i32 noundef %3009, ptr noundef @.str.4)
  %3011 = call ptr @__errno_location() #10
  %3012 = load i32, ptr %3011, align 4, !tbaa !5
  %3013 = call ptr @strerror(i32 noundef %3012) #9
  %3014 = call ptr @__errno_location() #10
  %3015 = load i32, ptr %3014, align 4, !tbaa !5
  %3016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3003, ptr noundef @.str.2, i32 noundef %3004, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3007, ptr noundef %3010, ptr noundef %3013, i32 noundef %3015) #9
  br label %3034

3017:                                             ; preds = %2995, %2988
  %3018 = load i32, ptr %65, align 4, !tbaa !5
  %3019 = call ptr @__errno_location() #10
  store i32 %3018, ptr %3019, align 4, !tbaa !5
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = load i32, ptr @test_count, align 4, !tbaa !5
  %3022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3023 = load i32, ptr %3022, align 4, !tbaa !5
  %3024 = call ptr @s2n_strerror(i32 noundef %3023, ptr noundef @.str.4)
  %3025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3026 = load i32, ptr %3025, align 4, !tbaa !5
  %3027 = call ptr @s2n_strerror_debug(i32 noundef %3026, ptr noundef @.str.4)
  %3028 = call ptr @__errno_location() #10
  %3029 = load i32, ptr %3028, align 4, !tbaa !5
  %3030 = call ptr @strerror(i32 noundef %3029) #9
  %3031 = call ptr @__errno_location() #10
  %3032 = load i32, ptr %3031, align 4, !tbaa !5
  %3033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3020, ptr noundef @.str.5, i32 noundef %3021, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3024, ptr noundef %3027, ptr noundef %3030, i32 noundef %3032) #9
  br label %3034

3034:                                             ; preds = %3017, %3000
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %3035

3035:                                             ; preds = %3034
  br label %3036

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

3037:                                             ; No predecessors!
  br label %3038

3038:                                             ; preds = %3037
  br label %3039

3039:                                             ; preds = %3038, %2979
  br label %3040

3040:                                             ; preds = %3039
  br label %3041

3041:                                             ; preds = %3040
  br label %3042

3042:                                             ; preds = %3041
  %3043 = load i32, ptr @test_count, align 4, !tbaa !5
  %3044 = add nsw i32 %3043, 1
  store i32 %3044, ptr @test_count, align 4, !tbaa !5
  %3045 = load ptr, ptr %56, align 8, !tbaa !9
  %3046 = call i32 @s2n_encrypted_extensions_send(ptr noundef %3045)
  %3047 = icmp eq i32 %3046, -1
  br i1 %3047, label %3048, label %3101

3048:                                             ; preds = %3042
  br label %3049

3049:                                             ; preds = %3048
  br label %3050

3050:                                             ; preds = %3049
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %3051 = call ptr @__errno_location() #10
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  store i32 %3052, ptr %66, align 4, !tbaa !5
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = call i32 @s2n_print_stacktrace(ptr noundef %3053)
  %3055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3056 = trunc i8 %3055 to i1
  br i1 %3056, label %3057, label %3079

3057:                                             ; preds = %3050
  %3058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3059 = call i32 @fileno(ptr noundef %3058) #9
  %3060 = call i32 @isatty(i32 noundef %3059) #9
  %3061 = icmp ne i32 %3060, 0
  br i1 %3061, label %3062, label %3079

3062:                                             ; preds = %3057
  %3063 = load i32, ptr %66, align 4, !tbaa !5
  %3064 = call ptr @__errno_location() #10
  store i32 %3063, ptr %3064, align 4, !tbaa !5
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = load i32, ptr @test_count, align 4, !tbaa !5
  %3067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3068 = load i32, ptr %3067, align 4, !tbaa !5
  %3069 = call ptr @s2n_strerror(i32 noundef %3068, ptr noundef @.str.4)
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror_debug(i32 noundef %3071, ptr noundef @.str.4)
  %3073 = call ptr @__errno_location() #10
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call ptr @strerror(i32 noundef %3074) #9
  %3076 = call ptr @__errno_location() #10
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3065, ptr noundef @.str.2, i32 noundef %3066, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 159, ptr noundef %3069, ptr noundef %3072, ptr noundef %3075, i32 noundef %3077) #9
  br label %3096

3079:                                             ; preds = %3057, %3050
  %3080 = load i32, ptr %66, align 4, !tbaa !5
  %3081 = call ptr @__errno_location() #10
  store i32 %3080, ptr %3081, align 4, !tbaa !5
  %3082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3083 = load i32, ptr @test_count, align 4, !tbaa !5
  %3084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3085 = load i32, ptr %3084, align 4, !tbaa !5
  %3086 = call ptr @s2n_strerror(i32 noundef %3085, ptr noundef @.str.4)
  %3087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror_debug(i32 noundef %3088, ptr noundef @.str.4)
  %3090 = call ptr @__errno_location() #10
  %3091 = load i32, ptr %3090, align 4, !tbaa !5
  %3092 = call ptr @strerror(i32 noundef %3091) #9
  %3093 = call ptr @__errno_location() #10
  %3094 = load i32, ptr %3093, align 4, !tbaa !5
  %3095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3082, ptr noundef @.str.5, i32 noundef %3083, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 159, ptr noundef %3086, ptr noundef %3089, ptr noundef %3092, i32 noundef %3094) #9
  br label %3096

3096:                                             ; preds = %3079, %3062
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %3097

3097:                                             ; preds = %3096
  br label %3098

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

3099:                                             ; No predecessors!
  br label %3100

3100:                                             ; preds = %3099
  br label %3101

3101:                                             ; preds = %3100, %3042
  br label %3102

3102:                                             ; preds = %3101
  br label %3103

3103:                                             ; preds = %3102
  br label %3104

3104:                                             ; preds = %3103
  %3105 = load i32, ptr @test_count, align 4, !tbaa !5
  %3106 = add nsw i32 %3105, 1
  store i32 %3106, ptr @test_count, align 4, !tbaa !5
  %3107 = load ptr, ptr %56, align 8, !tbaa !9
  %3108 = getelementptr inbounds %struct.s2n_connection, ptr %3107, i32 0, i32 52
  %3109 = getelementptr inbounds %struct.s2n_handshake, ptr %3108, i32 0, i32 0
  %3110 = load ptr, ptr %50, align 8, !tbaa !9
  %3111 = getelementptr inbounds %struct.s2n_connection, ptr %3110, i32 0, i32 52
  %3112 = getelementptr inbounds %struct.s2n_handshake, ptr %3111, i32 0, i32 0
  %3113 = load ptr, ptr %56, align 8, !tbaa !9
  %3114 = getelementptr inbounds %struct.s2n_connection, ptr %3113, i32 0, i32 52
  %3115 = getelementptr inbounds %struct.s2n_handshake, ptr %3114, i32 0, i32 0
  %3116 = getelementptr inbounds %struct.s2n_stuffer, ptr %3115, i32 0, i32 2
  %3117 = load i32, ptr %3116, align 4, !tbaa !53
  %3118 = load ptr, ptr %56, align 8, !tbaa !9
  %3119 = getelementptr inbounds %struct.s2n_connection, ptr %3118, i32 0, i32 52
  %3120 = getelementptr inbounds %struct.s2n_handshake, ptr %3119, i32 0, i32 0
  %3121 = getelementptr inbounds %struct.s2n_stuffer, ptr %3120, i32 0, i32 1
  %3122 = load i32, ptr %3121, align 8, !tbaa !54
  %3123 = sub i32 %3117, %3122
  %3124 = call i32 @s2n_stuffer_copy(ptr noundef %3109, ptr noundef %3112, i32 noundef %3123)
  %3125 = icmp eq i32 %3124, -1
  br i1 %3125, label %3126, label %3179

3126:                                             ; preds = %3104
  br label %3127

3127:                                             ; preds = %3126
  br label %3128

3128:                                             ; preds = %3127
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %3129 = call ptr @__errno_location() #10
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  store i32 %3130, ptr %67, align 4, !tbaa !5
  %3131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3132 = call i32 @s2n_print_stacktrace(ptr noundef %3131)
  %3133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3134 = trunc i8 %3133 to i1
  br i1 %3134, label %3135, label %3157

3135:                                             ; preds = %3128
  %3136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3137 = call i32 @fileno(ptr noundef %3136) #9
  %3138 = call i32 @isatty(i32 noundef %3137) #9
  %3139 = icmp ne i32 %3138, 0
  br i1 %3139, label %3140, label %3157

3140:                                             ; preds = %3135
  %3141 = load i32, ptr %67, align 4, !tbaa !5
  %3142 = call ptr @__errno_location() #10
  store i32 %3141, ptr %3142, align 4, !tbaa !5
  %3143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3144 = load i32, ptr @test_count, align 4, !tbaa !5
  %3145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3146 = load i32, ptr %3145, align 4, !tbaa !5
  %3147 = call ptr @s2n_strerror(i32 noundef %3146, ptr noundef @.str.4)
  %3148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3149 = load i32, ptr %3148, align 4, !tbaa !5
  %3150 = call ptr @s2n_strerror_debug(i32 noundef %3149, ptr noundef @.str.4)
  %3151 = call ptr @__errno_location() #10
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  %3153 = call ptr @strerror(i32 noundef %3152) #9
  %3154 = call ptr @__errno_location() #10
  %3155 = load i32, ptr %3154, align 4, !tbaa !5
  %3156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3143, ptr noundef @.str.2, i32 noundef %3144, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3147, ptr noundef %3150, ptr noundef %3153, i32 noundef %3155) #9
  br label %3174

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

3174:                                             ; preds = %3157, %3140
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %3175

3175:                                             ; preds = %3174
  br label %3176

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

3177:                                             ; No predecessors!
  br label %3178

3178:                                             ; preds = %3177
  br label %3179

3179:                                             ; preds = %3178, %3104
  br label %3180

3180:                                             ; preds = %3179
  br label %3181

3181:                                             ; preds = %3180
  br label %3182

3182:                                             ; preds = %3181
  %3183 = load i32, ptr @test_count, align 4, !tbaa !5
  %3184 = add nsw i32 %3183, 1
  store i32 %3184, ptr @test_count, align 4, !tbaa !5
  %3185 = load ptr, ptr %50, align 8, !tbaa !9
  %3186 = call i32 @s2n_encrypted_extensions_recv(ptr noundef %3185)
  %3187 = icmp eq i32 %3186, -1
  br i1 %3187, label %3188, label %3241

3188:                                             ; preds = %3182
  br label %3189

3189:                                             ; preds = %3188
  br label %3190

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

3197:                                             ; preds = %3190
  %3198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3199 = call i32 @fileno(ptr noundef %3198) #9
  %3200 = call i32 @isatty(i32 noundef %3199) #9
  %3201 = icmp ne i32 %3200, 0
  br i1 %3201, label %3202, label %3219

3202:                                             ; preds = %3197
  %3203 = load i32, ptr %68, align 4, !tbaa !5
  %3204 = call ptr @__errno_location() #10
  store i32 %3203, ptr %3204, align 4, !tbaa !5
  %3205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3206 = load i32, ptr @test_count, align 4, !tbaa !5
  %3207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  %3209 = call ptr @s2n_strerror(i32 noundef %3208, ptr noundef @.str.4)
  %3210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @s2n_strerror_debug(i32 noundef %3211, ptr noundef @.str.4)
  %3213 = call ptr @__errno_location() #10
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call ptr @strerror(i32 noundef %3214) #9
  %3216 = call ptr @__errno_location() #10
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3205, ptr noundef @.str.2, i32 noundef %3206, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3209, ptr noundef %3212, ptr noundef %3215, i32 noundef %3217) #9
  br label %3236

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

3236:                                             ; preds = %3219, %3202
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %3237

3237:                                             ; preds = %3236
  br label %3238

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

3239:                                             ; No predecessors!
  br label %3240

3240:                                             ; preds = %3239
  br label %3241

3241:                                             ; preds = %3240, %3182
  br label %3242

3242:                                             ; preds = %3241
  br label %3243

3243:                                             ; preds = %3242
  br label %3244

3244:                                             ; preds = %3243
  %3245 = load i32, ptr @test_count, align 4, !tbaa !5
  %3246 = add nsw i32 %3245, 1
  store i32 %3246, ptr @test_count, align 4, !tbaa !5
  %3247 = load ptr, ptr %50, align 8, !tbaa !9
  %3248 = getelementptr inbounds %struct.s2n_connection, ptr %3247, i32 0, i32 89
  %3249 = load i32, ptr %3248, align 8, !tbaa !18
  %3250 = icmp eq i32 %3249, 2
  br i1 %3250, label %3304, label %3251

3251:                                             ; preds = %3244
  br label %3252

3252:                                             ; preds = %3251
  br label %3253

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

3260:                                             ; preds = %3253
  %3261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3262 = call i32 @fileno(ptr noundef %3261) #9
  %3263 = call i32 @isatty(i32 noundef %3262) #9
  %3264 = icmp ne i32 %3263, 0
  br i1 %3264, label %3265, label %3282

3265:                                             ; preds = %3260
  %3266 = load i32, ptr %69, align 4, !tbaa !5
  %3267 = call ptr @__errno_location() #10
  store i32 %3266, ptr %3267, align 4, !tbaa !5
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = load i32, ptr @test_count, align 4, !tbaa !5
  %3270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3271 = load i32, ptr %3270, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror(i32 noundef %3271, ptr noundef @.str.4)
  %3273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3274 = load i32, ptr %3273, align 4, !tbaa !5
  %3275 = call ptr @s2n_strerror_debug(i32 noundef %3274, ptr noundef @.str.4)
  %3276 = call ptr @__errno_location() #10
  %3277 = load i32, ptr %3276, align 4, !tbaa !5
  %3278 = call ptr @strerror(i32 noundef %3277) #9
  %3279 = call ptr @__errno_location() #10
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  %3281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3268, ptr noundef @.str.2, i32 noundef %3269, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3272, ptr noundef %3275, ptr noundef %3278, i32 noundef %3280) #9
  br label %3299

3282:                                             ; preds = %3260, %3253
  %3283 = load i32, ptr %69, align 4, !tbaa !5
  %3284 = call ptr @__errno_location() #10
  store i32 %3283, ptr %3284, align 4, !tbaa !5
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = load i32, ptr @test_count, align 4, !tbaa !5
  %3287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3288 = load i32, ptr %3287, align 4, !tbaa !5
  %3289 = call ptr @s2n_strerror(i32 noundef %3288, ptr noundef @.str.4)
  %3290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3291 = load i32, ptr %3290, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror_debug(i32 noundef %3291, ptr noundef @.str.4)
  %3293 = call ptr @__errno_location() #10
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @strerror(i32 noundef %3294) #9
  %3296 = call ptr @__errno_location() #10
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3285, ptr noundef @.str.5, i32 noundef %3286, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3289, ptr noundef %3292, ptr noundef %3295, i32 noundef %3297) #9
  br label %3299

3299:                                             ; preds = %3282, %3265
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3300

3300:                                             ; preds = %3299
  br label %3301

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

3302:                                             ; No predecessors!
  br label %3303

3303:                                             ; preds = %3302
  br label %3304

3304:                                             ; preds = %3303, %3244
  br label %3305

3305:                                             ; preds = %3304
  br label %3306

3306:                                             ; preds = %3305
  br label %3307

3307:                                             ; preds = %3306
  %3308 = load i32, ptr @test_count, align 4, !tbaa !5
  %3309 = add nsw i32 %3308, 1
  store i32 %3309, ptr @test_count, align 4, !tbaa !5
  %3310 = load ptr, ptr %56, align 8, !tbaa !9
  %3311 = getelementptr inbounds %struct.s2n_connection, ptr %3310, i32 0, i32 89
  %3312 = load i32, ptr %3311, align 8, !tbaa !18
  %3313 = icmp eq i32 %3312, 2
  br i1 %3313, label %3367, label %3314

3314:                                             ; preds = %3307
  br label %3315

3315:                                             ; preds = %3314
  br label %3316

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

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

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

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

3362:                                             ; preds = %3345, %3328
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %3363

3363:                                             ; preds = %3362
  br label %3364

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

3365:                                             ; No predecessors!
  br label %3366

3366:                                             ; preds = %3365
  br label %3367

3367:                                             ; preds = %3366, %3307
  br label %3368

3368:                                             ; preds = %3367
  br label %3369

3369:                                             ; preds = %3368
  br label %3370

3370:                                             ; preds = %3369
  %3371 = load i32, ptr @test_count, align 4, !tbaa !5
  %3372 = add nsw i32 %3371, 1
  store i32 %3372, ptr @test_count, align 4, !tbaa !5
  %3373 = load ptr, ptr %50, align 8, !tbaa !9
  %3374 = call i32 @s2n_connection_free(ptr noundef %3373)
  %3375 = icmp eq i32 %3374, -1
  br i1 %3375, label %3376, label %3429

3376:                                             ; preds = %3370
  br label %3377

3377:                                             ; preds = %3376
  br label %3378

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

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

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

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

3424:                                             ; preds = %3407, %3390
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3425

3425:                                             ; preds = %3424
  br label %3426

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

3427:                                             ; No predecessors!
  br label %3428

3428:                                             ; preds = %3427
  br label %3429

3429:                                             ; preds = %3428, %3370
  br label %3430

3430:                                             ; preds = %3429
  br label %3431

3431:                                             ; preds = %3430
  br label %3432

3432:                                             ; preds = %3431
  %3433 = load i32, ptr @test_count, align 4, !tbaa !5
  %3434 = add nsw i32 %3433, 1
  store i32 %3434, ptr @test_count, align 4, !tbaa !5
  %3435 = load ptr, ptr %56, align 8, !tbaa !9
  %3436 = call i32 @s2n_connection_free(ptr noundef %3435)
  %3437 = icmp eq i32 %3436, -1
  br i1 %3437, label %3438, label %3491

3438:                                             ; preds = %3432
  br label %3439

3439:                                             ; preds = %3438
  br label %3440

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

3447:                                             ; preds = %3440
  %3448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3449 = call i32 @fileno(ptr noundef %3448) #9
  %3450 = call i32 @isatty(i32 noundef %3449) #9
  %3451 = icmp ne i32 %3450, 0
  br i1 %3451, label %3452, label %3469

3452:                                             ; preds = %3447
  %3453 = load i32, ptr %72, align 4, !tbaa !5
  %3454 = call ptr @__errno_location() #10
  store i32 %3453, ptr %3454, align 4, !tbaa !5
  %3455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3456 = load i32, ptr @test_count, align 4, !tbaa !5
  %3457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3458 = load i32, ptr %3457, align 4, !tbaa !5
  %3459 = call ptr @s2n_strerror(i32 noundef %3458, ptr noundef @.str.4)
  %3460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3461 = load i32, ptr %3460, align 4, !tbaa !5
  %3462 = call ptr @s2n_strerror_debug(i32 noundef %3461, ptr noundef @.str.4)
  %3463 = call ptr @__errno_location() #10
  %3464 = load i32, ptr %3463, align 4, !tbaa !5
  %3465 = call ptr @strerror(i32 noundef %3464) #9
  %3466 = call ptr @__errno_location() #10
  %3467 = load i32, ptr %3466, align 4, !tbaa !5
  %3468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3455, ptr noundef @.str.2, i32 noundef %3456, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 167, ptr noundef %3459, ptr noundef %3462, ptr noundef %3465, i32 noundef %3467) #9
  br label %3486

3469:                                             ; preds = %3447, %3440
  %3470 = load i32, ptr %72, align 4, !tbaa !5
  %3471 = call ptr @__errno_location() #10
  store i32 %3470, ptr %3471, align 4, !tbaa !5
  %3472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3473 = load i32, ptr @test_count, align 4, !tbaa !5
  %3474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3475 = load i32, ptr %3474, align 4, !tbaa !5
  %3476 = call ptr @s2n_strerror(i32 noundef %3475, ptr noundef @.str.4)
  %3477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3478 = load i32, ptr %3477, align 4, !tbaa !5
  %3479 = call ptr @s2n_strerror_debug(i32 noundef %3478, ptr noundef @.str.4)
  %3480 = call ptr @__errno_location() #10
  %3481 = load i32, ptr %3480, align 4, !tbaa !5
  %3482 = call ptr @strerror(i32 noundef %3481) #9
  %3483 = call ptr @__errno_location() #10
  %3484 = load i32, ptr %3483, align 4, !tbaa !5
  %3485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3472, ptr noundef @.str.5, i32 noundef %3473, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 167, ptr noundef %3476, ptr noundef %3479, ptr noundef %3482, i32 noundef %3484) #9
  br label %3486

3486:                                             ; preds = %3469, %3452
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3487

3487:                                             ; preds = %3486
  br label %3488

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

3489:                                             ; No predecessors!
  br label %3490

3490:                                             ; preds = %3489
  br label %3491

3491:                                             ; preds = %3490, %3432
  br label %3492

3492:                                             ; preds = %3491
  br label %3493

3493:                                             ; preds = %3492
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #9
  %3494 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3494, ptr %73, align 8, !tbaa !9
  br label %3495

3495:                                             ; preds = %3493
  %3496 = load i32, ptr @test_count, align 4, !tbaa !5
  %3497 = add nsw i32 %3496, 1
  store i32 %3497, ptr @test_count, align 4, !tbaa !5
  %3498 = load ptr, ptr %73, align 8, !tbaa !9
  %3499 = icmp eq ptr %3498, null
  br i1 %3499, label %3500, label %3553

3500:                                             ; preds = %3495
  br label %3501

3501:                                             ; preds = %3500
  br label %3502

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

3509:                                             ; preds = %3502
  %3510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3511 = call i32 @fileno(ptr noundef %3510) #9
  %3512 = call i32 @isatty(i32 noundef %3511) #9
  %3513 = icmp ne i32 %3512, 0
  br i1 %3513, label %3514, label %3531

3514:                                             ; preds = %3509
  %3515 = load i32, ptr %74, align 4, !tbaa !5
  %3516 = call ptr @__errno_location() #10
  store i32 %3515, ptr %3516, align 4, !tbaa !5
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3520, ptr noundef @.str.4)
  %3522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  %3524 = call ptr @s2n_strerror_debug(i32 noundef %3523, ptr noundef @.str.4)
  %3525 = call ptr @__errno_location() #10
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  %3527 = call ptr @strerror(i32 noundef %3526) #9
  %3528 = call ptr @__errno_location() #10
  %3529 = load i32, ptr %3528, align 4, !tbaa !5
  %3530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3517, ptr noundef @.str.2, i32 noundef %3518, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3521, ptr noundef %3524, ptr noundef %3527, i32 noundef %3529) #9
  br label %3548

3531:                                             ; preds = %3509, %3502
  %3532 = load i32, ptr %74, align 4, !tbaa !5
  %3533 = call ptr @__errno_location() #10
  store i32 %3532, ptr %3533, align 4, !tbaa !5
  %3534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3535 = load i32, ptr @test_count, align 4, !tbaa !5
  %3536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3537 = load i32, ptr %3536, align 4, !tbaa !5
  %3538 = call ptr @s2n_strerror(i32 noundef %3537, ptr noundef @.str.4)
  %3539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3540 = load i32, ptr %3539, align 4, !tbaa !5
  %3541 = call ptr @s2n_strerror_debug(i32 noundef %3540, ptr noundef @.str.4)
  %3542 = call ptr @__errno_location() #10
  %3543 = load i32, ptr %3542, align 4, !tbaa !5
  %3544 = call ptr @strerror(i32 noundef %3543) #9
  %3545 = call ptr @__errno_location() #10
  %3546 = load i32, ptr %3545, align 4, !tbaa !5
  %3547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3534, ptr noundef @.str.5, i32 noundef %3535, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3538, ptr noundef %3541, ptr noundef %3544, i32 noundef %3546) #9
  br label %3548

3548:                                             ; preds = %3531, %3514
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3549

3549:                                             ; preds = %3548
  br label %3550

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

3551:                                             ; No predecessors!
  br label %3552

3552:                                             ; preds = %3551
  br label %3553

3553:                                             ; preds = %3552, %3495
  br label %3554

3554:                                             ; preds = %3553
  br label %3555

3555:                                             ; preds = %3554
  br label %3556

3556:                                             ; preds = %3555
  %3557 = load i32, ptr @test_count, align 4, !tbaa !5
  %3558 = add nsw i32 %3557, 1
  store i32 %3558, ptr @test_count, align 4, !tbaa !5
  %3559 = load ptr, ptr %73, align 8, !tbaa !9
  %3560 = load ptr, ptr %49, align 8, !tbaa !9
  %3561 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef %3559, i32 noundef 10, ptr noundef %3560)
  %3562 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  store i32 %3561, ptr %3562, align 4
  %3563 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  %3564 = load i32, ptr %3563, align 4
  %3565 = call zeroext i1 @s2n_result_is_ok(i32 %3564)
  br i1 %3565, label %3619, label %3566

3566:                                             ; preds = %3556
  br label %3567

3567:                                             ; preds = %3566
  br label %3568

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

3575:                                             ; preds = %3568
  %3576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3577 = call i32 @fileno(ptr noundef %3576) #9
  %3578 = call i32 @isatty(i32 noundef %3577) #9
  %3579 = icmp ne i32 %3578, 0
  br i1 %3579, label %3580, label %3597

3580:                                             ; preds = %3575
  %3581 = load i32, ptr %76, align 4, !tbaa !5
  %3582 = call ptr @__errno_location() #10
  store i32 %3581, ptr %3582, align 4, !tbaa !5
  %3583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3584 = load i32, ptr @test_count, align 4, !tbaa !5
  %3585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = call ptr @s2n_strerror(i32 noundef %3586, ptr noundef @.str.4)
  %3588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3589 = load i32, ptr %3588, align 4, !tbaa !5
  %3590 = call ptr @s2n_strerror_debug(i32 noundef %3589, ptr noundef @.str.4)
  %3591 = call ptr @__errno_location() #10
  %3592 = load i32, ptr %3591, align 4, !tbaa !5
  %3593 = call ptr @strerror(i32 noundef %3592) #9
  %3594 = call ptr @__errno_location() #10
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3583, ptr noundef @.str.2, i32 noundef %3584, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3587, ptr noundef %3590, ptr noundef %3593, i32 noundef %3595) #9
  br label %3614

3597:                                             ; preds = %3575, %3568
  %3598 = load i32, ptr %76, align 4, !tbaa !5
  %3599 = call ptr @__errno_location() #10
  store i32 %3598, ptr %3599, align 4, !tbaa !5
  %3600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3601 = load i32, ptr @test_count, align 4, !tbaa !5
  %3602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  %3604 = call ptr @s2n_strerror(i32 noundef %3603, ptr noundef @.str.4)
  %3605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  %3607 = call ptr @s2n_strerror_debug(i32 noundef %3606, ptr noundef @.str.4)
  %3608 = call ptr @__errno_location() #10
  %3609 = load i32, ptr %3608, align 4, !tbaa !5
  %3610 = call ptr @strerror(i32 noundef %3609) #9
  %3611 = call ptr @__errno_location() #10
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  %3613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3600, ptr noundef @.str.5, i32 noundef %3601, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3604, ptr noundef %3607, ptr noundef %3610, i32 noundef %3612) #9
  br label %3614

3614:                                             ; preds = %3597, %3580
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3615

3615:                                             ; preds = %3614
  br label %3616

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

3617:                                             ; No predecessors!
  br label %3618

3618:                                             ; preds = %3617
  br label %3619

3619:                                             ; preds = %3618, %3556
  br label %3620

3620:                                             ; preds = %3619
  br label %3621

3621:                                             ; preds = %3620
  br label %3622

3622:                                             ; preds = %3621
  %3623 = load i32, ptr @test_count, align 4, !tbaa !5
  %3624 = add nsw i32 %3623, 1
  store i32 %3624, ptr @test_count, align 4, !tbaa !5
  %3625 = load ptr, ptr %73, align 8, !tbaa !9
  %3626 = load ptr, ptr %48, align 8, !tbaa !9
  %3627 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %3625, ptr noundef %3626)
  %3628 = icmp eq i32 %3627, -1
  br i1 %3628, label %3629, label %3682

3629:                                             ; preds = %3622
  br label %3630

3630:                                             ; preds = %3629
  br label %3631

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

3638:                                             ; preds = %3631
  %3639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3640 = call i32 @fileno(ptr noundef %3639) #9
  %3641 = call i32 @isatty(i32 noundef %3640) #9
  %3642 = icmp ne i32 %3641, 0
  br i1 %3642, label %3643, label %3660

3643:                                             ; preds = %3638
  %3644 = load i32, ptr %77, align 4, !tbaa !5
  %3645 = call ptr @__errno_location() #10
  store i32 %3644, ptr %3645, align 4, !tbaa !5
  %3646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3647 = load i32, ptr @test_count, align 4, !tbaa !5
  %3648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3649 = load i32, ptr %3648, align 4, !tbaa !5
  %3650 = call ptr @s2n_strerror(i32 noundef %3649, ptr noundef @.str.4)
  %3651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3652 = load i32, ptr %3651, align 4, !tbaa !5
  %3653 = call ptr @s2n_strerror_debug(i32 noundef %3652, ptr noundef @.str.4)
  %3654 = call ptr @__errno_location() #10
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call ptr @strerror(i32 noundef %3655) #9
  %3657 = call ptr @__errno_location() #10
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3646, ptr noundef @.str.2, i32 noundef %3647, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3650, ptr noundef %3653, ptr noundef %3656, i32 noundef %3658) #9
  br label %3677

3660:                                             ; preds = %3638, %3631
  %3661 = load i32, ptr %77, align 4, !tbaa !5
  %3662 = call ptr @__errno_location() #10
  store i32 %3661, ptr %3662, align 4, !tbaa !5
  %3663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3664 = load i32, ptr @test_count, align 4, !tbaa !5
  %3665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call ptr @s2n_strerror(i32 noundef %3666, ptr noundef @.str.4)
  %3668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3669 = load i32, ptr %3668, align 4, !tbaa !5
  %3670 = call ptr @s2n_strerror_debug(i32 noundef %3669, ptr noundef @.str.4)
  %3671 = call ptr @__errno_location() #10
  %3672 = load i32, ptr %3671, align 4, !tbaa !5
  %3673 = call ptr @strerror(i32 noundef %3672) #9
  %3674 = call ptr @__errno_location() #10
  %3675 = load i32, ptr %3674, align 4, !tbaa !5
  %3676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3663, ptr noundef @.str.5, i32 noundef %3664, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3667, ptr noundef %3670, ptr noundef %3673, i32 noundef %3675) #9
  br label %3677

3677:                                             ; preds = %3660, %3643
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %3678

3678:                                             ; preds = %3677
  br label %3679

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

3680:                                             ; No predecessors!
  br label %3681

3681:                                             ; preds = %3680
  br label %3682

3682:                                             ; preds = %3681, %3622
  br label %3683

3683:                                             ; preds = %3682
  br label %3684

3684:                                             ; preds = %3683
  br label %3685

3685:                                             ; preds = %3684
  %3686 = load i32, ptr @test_count, align 4, !tbaa !5
  %3687 = add nsw i32 %3686, 1
  store i32 %3687, ptr @test_count, align 4, !tbaa !5
  %3688 = load ptr, ptr %73, align 8, !tbaa !9
  %3689 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %3688)
  %3690 = icmp eq i32 %3689, -1
  br i1 %3690, label %3691, label %3744

3691:                                             ; preds = %3685
  br label %3692

3692:                                             ; preds = %3691
  br label %3693

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

3700:                                             ; preds = %3693
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = call i32 @fileno(ptr noundef %3701) #9
  %3703 = call i32 @isatty(i32 noundef %3702) #9
  %3704 = icmp ne i32 %3703, 0
  br i1 %3704, label %3705, label %3722

3705:                                             ; preds = %3700
  %3706 = load i32, ptr %78, align 4, !tbaa !5
  %3707 = call ptr @__errno_location() #10
  store i32 %3706, ptr %3707, align 4, !tbaa !5
  %3708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3709 = load i32, ptr @test_count, align 4, !tbaa !5
  %3710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3711 = load i32, ptr %3710, align 4, !tbaa !5
  %3712 = call ptr @s2n_strerror(i32 noundef %3711, ptr noundef @.str.4)
  %3713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3714 = load i32, ptr %3713, align 4, !tbaa !5
  %3715 = call ptr @s2n_strerror_debug(i32 noundef %3714, ptr noundef @.str.4)
  %3716 = call ptr @__errno_location() #10
  %3717 = load i32, ptr %3716, align 4, !tbaa !5
  %3718 = call ptr @strerror(i32 noundef %3717) #9
  %3719 = call ptr @__errno_location() #10
  %3720 = load i32, ptr %3719, align 4, !tbaa !5
  %3721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3708, ptr noundef @.str.2, i32 noundef %3709, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3712, ptr noundef %3715, ptr noundef %3718, i32 noundef %3720) #9
  br label %3739

3722:                                             ; preds = %3700, %3693
  %3723 = load i32, ptr %78, align 4, !tbaa !5
  %3724 = call ptr @__errno_location() #10
  store i32 %3723, ptr %3724, align 4, !tbaa !5
  %3725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3726 = load i32, ptr @test_count, align 4, !tbaa !5
  %3727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3728 = load i32, ptr %3727, align 4, !tbaa !5
  %3729 = call ptr @s2n_strerror(i32 noundef %3728, ptr noundef @.str.4)
  %3730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3731 = load i32, ptr %3730, align 4, !tbaa !5
  %3732 = call ptr @s2n_strerror_debug(i32 noundef %3731, ptr noundef @.str.4)
  %3733 = call ptr @__errno_location() #10
  %3734 = load i32, ptr %3733, align 4, !tbaa !5
  %3735 = call ptr @strerror(i32 noundef %3734) #9
  %3736 = call ptr @__errno_location() #10
  %3737 = load i32, ptr %3736, align 4, !tbaa !5
  %3738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3725, ptr noundef @.str.5, i32 noundef %3726, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3729, ptr noundef %3732, ptr noundef %3735, i32 noundef %3737) #9
  br label %3739

3739:                                             ; preds = %3722, %3705
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3740

3740:                                             ; preds = %3739
  br label %3741

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

3742:                                             ; No predecessors!
  br label %3743

3743:                                             ; preds = %3742
  br label %3744

3744:                                             ; preds = %3743, %3685
  br label %3745

3745:                                             ; preds = %3744
  br label %3746

3746:                                             ; preds = %3745
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  %3747 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3747, ptr %79, align 8, !tbaa !9
  br label %3748

3748:                                             ; preds = %3746
  %3749 = load i32, ptr @test_count, align 4, !tbaa !5
  %3750 = add nsw i32 %3749, 1
  store i32 %3750, ptr @test_count, align 4, !tbaa !5
  %3751 = load ptr, ptr %79, align 8, !tbaa !9
  %3752 = icmp eq ptr %3751, null
  br i1 %3752, label %3753, label %3806

3753:                                             ; preds = %3748
  br label %3754

3754:                                             ; preds = %3753
  br label %3755

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

3762:                                             ; preds = %3755
  %3763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3764 = call i32 @fileno(ptr noundef %3763) #9
  %3765 = call i32 @isatty(i32 noundef %3764) #9
  %3766 = icmp ne i32 %3765, 0
  br i1 %3766, label %3767, label %3784

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

3784:                                             ; preds = %3762, %3755
  %3785 = load i32, ptr %80, align 4, !tbaa !5
  %3786 = call ptr @__errno_location() #10
  store i32 %3785, ptr %3786, align 4, !tbaa !5
  %3787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3788 = load i32, ptr @test_count, align 4, !tbaa !5
  %3789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3790 = load i32, ptr %3789, align 4, !tbaa !5
  %3791 = call ptr @s2n_strerror(i32 noundef %3790, ptr noundef @.str.4)
  %3792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3793 = load i32, ptr %3792, align 4, !tbaa !5
  %3794 = call ptr @s2n_strerror_debug(i32 noundef %3793, ptr noundef @.str.4)
  %3795 = call ptr @__errno_location() #10
  %3796 = load i32, ptr %3795, align 4, !tbaa !5
  %3797 = call ptr @strerror(i32 noundef %3796) #9
  %3798 = call ptr @__errno_location() #10
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  %3800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3787, ptr noundef @.str.5, i32 noundef %3788, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3791, ptr noundef %3794, ptr noundef %3797, i32 noundef %3799) #9
  br label %3801

3801:                                             ; preds = %3784, %3767
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3802

3802:                                             ; preds = %3801
  br label %3803

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

3804:                                             ; No predecessors!
  br label %3805

3805:                                             ; preds = %3804
  br label %3806

3806:                                             ; preds = %3805, %3748
  br label %3807

3807:                                             ; preds = %3806
  br label %3808

3808:                                             ; preds = %3807
  br label %3809

3809:                                             ; preds = %3808
  %3810 = load i32, ptr @test_count, align 4, !tbaa !5
  %3811 = add nsw i32 %3810, 1
  store i32 %3811, ptr @test_count, align 4, !tbaa !5
  %3812 = load ptr, ptr %79, align 8, !tbaa !9
  %3813 = load ptr, ptr %49, align 8, !tbaa !9
  %3814 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef %3812, i32 noundef 10, ptr noundef %3813)
  %3815 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %3814, ptr %3815, align 4
  %3816 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  %3817 = load i32, ptr %3816, align 4
  %3818 = call zeroext i1 @s2n_result_is_ok(i32 %3817)
  br i1 %3818, label %3872, label %3819

3819:                                             ; preds = %3809
  br label %3820

3820:                                             ; preds = %3819
  br label %3821

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

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

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

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

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

3868:                                             ; preds = %3867
  br label %3869

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

3870:                                             ; No predecessors!
  br label %3871

3871:                                             ; preds = %3870
  br label %3872

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

3873:                                             ; preds = %3872
  br label %3874

3874:                                             ; preds = %3873
  br label %3875

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

3882:                                             ; preds = %3875
  br label %3883

3883:                                             ; preds = %3882
  br label %3884

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

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

3896:                                             ; preds = %3891
  %3897 = load i32, ptr %83, align 4, !tbaa !5
  %3898 = call ptr @__errno_location() #10
  store i32 %3897, ptr %3898, align 4, !tbaa !5
  %3899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3900 = load i32, ptr @test_count, align 4, !tbaa !5
  %3901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call ptr @s2n_strerror(i32 noundef %3902, ptr noundef @.str.4)
  %3904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @s2n_strerror_debug(i32 noundef %3905, ptr noundef @.str.4)
  %3907 = call ptr @__errno_location() #10
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call ptr @strerror(i32 noundef %3908) #9
  %3910 = call ptr @__errno_location() #10
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  %3912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3899, ptr noundef @.str.2, i32 noundef %3900, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 192, ptr noundef %3903, ptr noundef %3906, ptr noundef %3909, i32 noundef %3911) #9
  br label %3930

3913:                                             ; preds = %3891, %3884
  %3914 = load i32, ptr %83, align 4, !tbaa !5
  %3915 = call ptr @__errno_location() #10
  store i32 %3914, ptr %3915, align 4, !tbaa !5
  %3916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3917 = load i32, ptr @test_count, align 4, !tbaa !5
  %3918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror(i32 noundef %3919, ptr noundef @.str.4)
  %3921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call ptr @s2n_strerror_debug(i32 noundef %3922, ptr noundef @.str.4)
  %3924 = call ptr @__errno_location() #10
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  %3926 = call ptr @strerror(i32 noundef %3925) #9
  %3927 = call ptr @__errno_location() #10
  %3928 = load i32, ptr %3927, align 4, !tbaa !5
  %3929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3916, ptr noundef @.str.5, i32 noundef %3917, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 192, ptr noundef %3920, ptr noundef %3923, ptr noundef %3926, i32 noundef %3928) #9
  br label %3930

3930:                                             ; preds = %3913, %3896
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %3931

3931:                                             ; preds = %3930
  br label %3932

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

3933:                                             ; No predecessors!
  br label %3934

3934:                                             ; preds = %3933
  br label %3935

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

3936:                                             ; preds = %3935
  br label %3937

3937:                                             ; preds = %3936
  br label %3938

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

3944:                                             ; preds = %3938
  br label %3945

3945:                                             ; preds = %3944
  br label %3946

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

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

3958:                                             ; preds = %3953
  %3959 = load i32, ptr %84, align 4, !tbaa !5
  %3960 = call ptr @__errno_location() #10
  store i32 %3959, ptr %3960, align 4, !tbaa !5
  %3961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3962 = load i32, ptr @test_count, align 4, !tbaa !5
  %3963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  %3965 = call ptr @s2n_strerror(i32 noundef %3964, ptr noundef @.str.4)
  %3966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3967 = load i32, ptr %3966, align 4, !tbaa !5
  %3968 = call ptr @s2n_strerror_debug(i32 noundef %3967, ptr noundef @.str.4)
  %3969 = call ptr @__errno_location() #10
  %3970 = load i32, ptr %3969, align 4, !tbaa !5
  %3971 = call ptr @strerror(i32 noundef %3970) #9
  %3972 = call ptr @__errno_location() #10
  %3973 = load i32, ptr %3972, align 4, !tbaa !5
  %3974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3961, ptr noundef @.str.2, i32 noundef %3962, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 193, ptr noundef %3965, ptr noundef %3968, ptr noundef %3971, i32 noundef %3973) #9
  br label %3992

3975:                                             ; preds = %3953, %3946
  %3976 = load i32, ptr %84, align 4, !tbaa !5
  %3977 = call ptr @__errno_location() #10
  store i32 %3976, ptr %3977, align 4, !tbaa !5
  %3978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3979 = load i32, ptr @test_count, align 4, !tbaa !5
  %3980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3981 = load i32, ptr %3980, align 4, !tbaa !5
  %3982 = call ptr @s2n_strerror(i32 noundef %3981, ptr noundef @.str.4)
  %3983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3984 = load i32, ptr %3983, align 4, !tbaa !5
  %3985 = call ptr @s2n_strerror_debug(i32 noundef %3984, ptr noundef @.str.4)
  %3986 = call ptr @__errno_location() #10
  %3987 = load i32, ptr %3986, align 4, !tbaa !5
  %3988 = call ptr @strerror(i32 noundef %3987) #9
  %3989 = call ptr @__errno_location() #10
  %3990 = load i32, ptr %3989, align 4, !tbaa !5
  %3991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3978, ptr noundef @.str.5, i32 noundef %3979, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 193, ptr noundef %3982, ptr noundef %3985, ptr noundef %3988, i32 noundef %3990) #9
  br label %3992

3992:                                             ; preds = %3975, %3958
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %3993

3993:                                             ; preds = %3992
  br label %3994

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

3995:                                             ; No predecessors!
  br label %3996

3996:                                             ; preds = %3995
  br label %3997

3997:                                             ; preds = %3996, %3938
  br label %3998

3998:                                             ; preds = %3997
  br label %3999

3999:                                             ; preds = %3998
  br label %4000

4000:                                             ; preds = %3999
  %4001 = load i32, ptr @test_count, align 4, !tbaa !5
  %4002 = add nsw i32 %4001, 1
  store i32 %4002, ptr @test_count, align 4, !tbaa !5
  %4003 = load ptr, ptr %73, align 8, !tbaa !9
  %4004 = load ptr, ptr %79, align 8, !tbaa !9
  %4005 = call i32 @s2n_exchange_hellos(ptr noundef %4003, ptr noundef %4004)
  %4006 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  store i32 %4005, ptr %4006, align 4
  %4007 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  %4008 = load i32, ptr %4007, align 4
  %4009 = call zeroext i1 @s2n_result_is_ok(i32 %4008)
  br i1 %4009, label %4063, label %4010

4010:                                             ; preds = %4000
  br label %4011

4011:                                             ; preds = %4010
  br label %4012

4012:                                             ; preds = %4011
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %4013 = call ptr @__errno_location() #10
  %4014 = load i32, ptr %4013, align 4, !tbaa !5
  store i32 %4014, ptr %86, align 4, !tbaa !5
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = call i32 @s2n_print_stacktrace(ptr noundef %4015)
  %4017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4018 = trunc i8 %4017 to i1
  br i1 %4018, label %4019, label %4041

4019:                                             ; preds = %4012
  %4020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4021 = call i32 @fileno(ptr noundef %4020) #9
  %4022 = call i32 @isatty(i32 noundef %4021) #9
  %4023 = icmp ne i32 %4022, 0
  br i1 %4023, label %4024, label %4041

4024:                                             ; preds = %4019
  %4025 = load i32, ptr %86, align 4, !tbaa !5
  %4026 = call ptr @__errno_location() #10
  store i32 %4025, ptr %4026, align 4, !tbaa !5
  %4027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4028 = load i32, ptr @test_count, align 4, !tbaa !5
  %4029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call ptr @s2n_strerror(i32 noundef %4030, ptr noundef @.str.4)
  %4032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call ptr @s2n_strerror_debug(i32 noundef %4033, ptr noundef @.str.4)
  %4035 = call ptr @__errno_location() #10
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  %4037 = call ptr @strerror(i32 noundef %4036) #9
  %4038 = call ptr @__errno_location() #10
  %4039 = load i32, ptr %4038, align 4, !tbaa !5
  %4040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4027, ptr noundef @.str.2, i32 noundef %4028, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 195, ptr noundef %4031, ptr noundef %4034, ptr noundef %4037, i32 noundef %4039) #9
  br label %4058

4041:                                             ; preds = %4019, %4012
  %4042 = load i32, ptr %86, align 4, !tbaa !5
  %4043 = call ptr @__errno_location() #10
  store i32 %4042, ptr %4043, align 4, !tbaa !5
  %4044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4045 = load i32, ptr @test_count, align 4, !tbaa !5
  %4046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call ptr @s2n_strerror(i32 noundef %4047, ptr noundef @.str.4)
  %4049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror_debug(i32 noundef %4050, ptr noundef @.str.4)
  %4052 = call ptr @__errno_location() #10
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call ptr @strerror(i32 noundef %4053) #9
  %4055 = call ptr @__errno_location() #10
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4044, ptr noundef @.str.5, i32 noundef %4045, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 195, ptr noundef %4048, ptr noundef %4051, ptr noundef %4054, i32 noundef %4056) #9
  br label %4058

4058:                                             ; preds = %4041, %4024
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

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

4061:                                             ; No predecessors!
  br label %4062

4062:                                             ; preds = %4061
  br label %4063

4063:                                             ; preds = %4062, %4000
  br label %4064

4064:                                             ; preds = %4063
  br label %4065

4065:                                             ; preds = %4064
  br label %4066

4066:                                             ; preds = %4065
  %4067 = load i32, ptr @test_count, align 4, !tbaa !5
  %4068 = add nsw i32 %4067, 1
  store i32 %4068, ptr @test_count, align 4, !tbaa !5
  %4069 = load ptr, ptr %73, align 8, !tbaa !9
  %4070 = getelementptr inbounds %struct.s2n_connection, ptr %4069, i32 0, i32 89
  %4071 = load i32, ptr %4070, align 8, !tbaa !18
  %4072 = icmp eq i32 %4071, 1
  br i1 %4072, label %4126, label %4073

4073:                                             ; preds = %4066
  br label %4074

4074:                                             ; preds = %4073
  br label %4075

4075:                                             ; preds = %4074
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  %4076 = call ptr @__errno_location() #10
  %4077 = load i32, ptr %4076, align 4, !tbaa !5
  store i32 %4077, ptr %87, align 4, !tbaa !5
  %4078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4079 = call i32 @s2n_print_stacktrace(ptr noundef %4078)
  %4080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4081 = trunc i8 %4080 to i1
  br i1 %4081, label %4082, label %4104

4082:                                             ; preds = %4075
  %4083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4084 = call i32 @fileno(ptr noundef %4083) #9
  %4085 = call i32 @isatty(i32 noundef %4084) #9
  %4086 = icmp ne i32 %4085, 0
  br i1 %4086, label %4087, label %4104

4087:                                             ; preds = %4082
  %4088 = load i32, ptr %87, align 4, !tbaa !5
  %4089 = call ptr @__errno_location() #10
  store i32 %4088, ptr %4089, align 4, !tbaa !5
  %4090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4091 = load i32, ptr @test_count, align 4, !tbaa !5
  %4092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call ptr @s2n_strerror(i32 noundef %4093, ptr noundef @.str.4)
  %4095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call ptr @s2n_strerror_debug(i32 noundef %4096, ptr noundef @.str.4)
  %4098 = call ptr @__errno_location() #10
  %4099 = load i32, ptr %4098, align 4, !tbaa !5
  %4100 = call ptr @strerror(i32 noundef %4099) #9
  %4101 = call ptr @__errno_location() #10
  %4102 = load i32, ptr %4101, align 4, !tbaa !5
  %4103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4090, ptr noundef @.str.2, i32 noundef %4091, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 196, ptr noundef %4094, ptr noundef %4097, ptr noundef %4100, i32 noundef %4102) #9
  br label %4121

4104:                                             ; preds = %4082, %4075
  %4105 = load i32, ptr %87, align 4, !tbaa !5
  %4106 = call ptr @__errno_location() #10
  store i32 %4105, ptr %4106, align 4, !tbaa !5
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4108 = load i32, ptr @test_count, align 4, !tbaa !5
  %4109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @s2n_strerror(i32 noundef %4110, ptr noundef @.str.4)
  %4112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call ptr @s2n_strerror_debug(i32 noundef %4113, ptr noundef @.str.4)
  %4115 = call ptr @__errno_location() #10
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call ptr @strerror(i32 noundef %4116) #9
  %4118 = call ptr @__errno_location() #10
  %4119 = load i32, ptr %4118, align 4, !tbaa !5
  %4120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4107, ptr noundef @.str.5, i32 noundef %4108, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 196, ptr noundef %4111, ptr noundef %4114, ptr noundef %4117, i32 noundef %4119) #9
  br label %4121

4121:                                             ; preds = %4104, %4087
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %4122

4122:                                             ; preds = %4121
  br label %4123

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

4124:                                             ; No predecessors!
  br label %4125

4125:                                             ; preds = %4124
  br label %4126

4126:                                             ; preds = %4125, %4066
  br label %4127

4127:                                             ; preds = %4126
  br label %4128

4128:                                             ; preds = %4127
  br label %4129

4129:                                             ; preds = %4128
  %4130 = load i32, ptr @test_count, align 4, !tbaa !5
  %4131 = add nsw i32 %4130, 1
  store i32 %4131, ptr @test_count, align 4, !tbaa !5
  %4132 = load ptr, ptr %79, align 8, !tbaa !9
  %4133 = getelementptr inbounds %struct.s2n_connection, ptr %4132, i32 0, i32 89
  %4134 = load i32, ptr %4133, align 8, !tbaa !18
  %4135 = icmp eq i32 %4134, 3
  br i1 %4135, label %4189, label %4136

4136:                                             ; preds = %4129
  br label %4137

4137:                                             ; preds = %4136
  br label %4138

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

4145:                                             ; preds = %4138
  %4146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4147 = call i32 @fileno(ptr noundef %4146) #9
  %4148 = call i32 @isatty(i32 noundef %4147) #9
  %4149 = icmp ne i32 %4148, 0
  br i1 %4149, label %4150, label %4167

4150:                                             ; preds = %4145
  %4151 = load i32, ptr %88, align 4, !tbaa !5
  %4152 = call ptr @__errno_location() #10
  store i32 %4151, ptr %4152, align 4, !tbaa !5
  %4153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4154 = load i32, ptr @test_count, align 4, !tbaa !5
  %4155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4156 = load i32, ptr %4155, align 4, !tbaa !5
  %4157 = call ptr @s2n_strerror(i32 noundef %4156, ptr noundef @.str.4)
  %4158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4159 = load i32, ptr %4158, align 4, !tbaa !5
  %4160 = call ptr @s2n_strerror_debug(i32 noundef %4159, ptr noundef @.str.4)
  %4161 = call ptr @__errno_location() #10
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  %4163 = call ptr @strerror(i32 noundef %4162) #9
  %4164 = call ptr @__errno_location() #10
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4153, ptr noundef @.str.2, i32 noundef %4154, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 197, ptr noundef %4157, ptr noundef %4160, ptr noundef %4163, i32 noundef %4165) #9
  br label %4184

4167:                                             ; preds = %4145, %4138
  %4168 = load i32, ptr %88, align 4, !tbaa !5
  %4169 = call ptr @__errno_location() #10
  store i32 %4168, ptr %4169, align 4, !tbaa !5
  %4170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4171 = load i32, ptr @test_count, align 4, !tbaa !5
  %4172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  %4174 = call ptr @s2n_strerror(i32 noundef %4173, ptr noundef @.str.4)
  %4175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4176 = load i32, ptr %4175, align 4, !tbaa !5
  %4177 = call ptr @s2n_strerror_debug(i32 noundef %4176, ptr noundef @.str.4)
  %4178 = call ptr @__errno_location() #10
  %4179 = load i32, ptr %4178, align 4, !tbaa !5
  %4180 = call ptr @strerror(i32 noundef %4179) #9
  %4181 = call ptr @__errno_location() #10
  %4182 = load i32, ptr %4181, align 4, !tbaa !5
  %4183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4170, ptr noundef @.str.5, i32 noundef %4171, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 197, ptr noundef %4174, ptr noundef %4177, ptr noundef %4180, i32 noundef %4182) #9
  br label %4184

4184:                                             ; preds = %4167, %4150
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %4185

4185:                                             ; preds = %4184
  br label %4186

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

4187:                                             ; No predecessors!
  br label %4188

4188:                                             ; preds = %4187
  br label %4189

4189:                                             ; preds = %4188, %4129
  br label %4190

4190:                                             ; preds = %4189
  br label %4191

4191:                                             ; preds = %4190
  br label %4192

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

4198:                                             ; preds = %4192
  br label %4199

4199:                                             ; preds = %4198
  br label %4200

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

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

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

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

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

4247:                                             ; preds = %4246
  br label %4248

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

4249:                                             ; No predecessors!
  br label %4250

4250:                                             ; preds = %4249
  br label %4251

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

4252:                                             ; preds = %4251
  br label %4253

4253:                                             ; preds = %4252
  br label %4254

4254:                                             ; preds = %4253
  %4255 = load i32, ptr @test_count, align 4, !tbaa !5
  %4256 = add nsw i32 %4255, 1
  store i32 %4256, ptr @test_count, align 4, !tbaa !5
  %4257 = load ptr, ptr %79, align 8, !tbaa !9
  %4258 = getelementptr inbounds %struct.s2n_connection, ptr %4257, i32 0, i32 52
  %4259 = getelementptr inbounds %struct.s2n_handshake, ptr %4258, i32 0, i32 0
  %4260 = load ptr, ptr %73, align 8, !tbaa !9
  %4261 = getelementptr inbounds %struct.s2n_connection, ptr %4260, i32 0, i32 52
  %4262 = getelementptr inbounds %struct.s2n_handshake, ptr %4261, i32 0, i32 0
  %4263 = load ptr, ptr %79, align 8, !tbaa !9
  %4264 = getelementptr inbounds %struct.s2n_connection, ptr %4263, i32 0, i32 52
  %4265 = getelementptr inbounds %struct.s2n_handshake, ptr %4264, i32 0, i32 0
  %4266 = getelementptr inbounds %struct.s2n_stuffer, ptr %4265, i32 0, i32 2
  %4267 = load i32, ptr %4266, align 4, !tbaa !53
  %4268 = load ptr, ptr %79, align 8, !tbaa !9
  %4269 = getelementptr inbounds %struct.s2n_connection, ptr %4268, i32 0, i32 52
  %4270 = getelementptr inbounds %struct.s2n_handshake, ptr %4269, i32 0, i32 0
  %4271 = getelementptr inbounds %struct.s2n_stuffer, ptr %4270, i32 0, i32 1
  %4272 = load i32, ptr %4271, align 8, !tbaa !54
  %4273 = sub i32 %4267, %4272
  %4274 = call i32 @s2n_stuffer_copy(ptr noundef %4259, ptr noundef %4262, i32 noundef %4273)
  %4275 = icmp eq i32 %4274, -1
  br i1 %4275, label %4276, label %4329

4276:                                             ; preds = %4254
  br label %4277

4277:                                             ; preds = %4276
  br label %4278

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

4285:                                             ; preds = %4278
  %4286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4287 = call i32 @fileno(ptr noundef %4286) #9
  %4288 = call i32 @isatty(i32 noundef %4287) #9
  %4289 = icmp ne i32 %4288, 0
  br i1 %4289, label %4290, label %4307

4290:                                             ; preds = %4285
  %4291 = load i32, ptr %90, align 4, !tbaa !5
  %4292 = call ptr @__errno_location() #10
  store i32 %4291, ptr %4292, align 4, !tbaa !5
  %4293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4294 = load i32, ptr @test_count, align 4, !tbaa !5
  %4295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror(i32 noundef %4296, ptr noundef @.str.4)
  %4298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call ptr @s2n_strerror_debug(i32 noundef %4299, ptr noundef @.str.4)
  %4301 = call ptr @__errno_location() #10
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call ptr @strerror(i32 noundef %4302) #9
  %4304 = call ptr @__errno_location() #10
  %4305 = load i32, ptr %4304, align 4, !tbaa !5
  %4306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4293, ptr noundef @.str.2, i32 noundef %4294, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4297, ptr noundef %4300, ptr noundef %4303, i32 noundef %4305) #9
  br label %4324

4307:                                             ; preds = %4285, %4278
  %4308 = load i32, ptr %90, align 4, !tbaa !5
  %4309 = call ptr @__errno_location() #10
  store i32 %4308, ptr %4309, align 4, !tbaa !5
  %4310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4311 = load i32, ptr @test_count, align 4, !tbaa !5
  %4312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4313 = load i32, ptr %4312, align 4, !tbaa !5
  %4314 = call ptr @s2n_strerror(i32 noundef %4313, ptr noundef @.str.4)
  %4315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call ptr @s2n_strerror_debug(i32 noundef %4316, ptr noundef @.str.4)
  %4318 = call ptr @__errno_location() #10
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call ptr @strerror(i32 noundef %4319) #9
  %4321 = call ptr @__errno_location() #10
  %4322 = load i32, ptr %4321, align 4, !tbaa !5
  %4323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4310, ptr noundef @.str.5, i32 noundef %4311, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4314, ptr noundef %4317, ptr noundef %4320, i32 noundef %4322) #9
  br label %4324

4324:                                             ; preds = %4307, %4290
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %4325

4325:                                             ; preds = %4324
  br label %4326

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

4327:                                             ; No predecessors!
  br label %4328

4328:                                             ; preds = %4327
  br label %4329

4329:                                             ; preds = %4328, %4254
  br label %4330

4330:                                             ; preds = %4329
  br label %4331

4331:                                             ; preds = %4330
  br label %4332

4332:                                             ; preds = %4331
  %4333 = load i32, ptr @test_count, align 4, !tbaa !5
  %4334 = add nsw i32 %4333, 1
  store i32 %4334, ptr @test_count, align 4, !tbaa !5
  %4335 = load ptr, ptr %73, align 8, !tbaa !9
  %4336 = call i32 @s2n_encrypted_extensions_recv(ptr noundef %4335)
  %4337 = icmp eq i32 %4336, -1
  br i1 %4337, label %4338, label %4391

4338:                                             ; preds = %4332
  br label %4339

4339:                                             ; preds = %4338
  br label %4340

4340:                                             ; preds = %4339
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %4341 = call ptr @__errno_location() #10
  %4342 = load i32, ptr %4341, align 4, !tbaa !5
  store i32 %4342, ptr %91, 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) #9
  %4350 = call i32 @isatty(i32 noundef %4349) #9
  %4351 = icmp ne i32 %4350, 0
  br i1 %4351, label %4352, label %4369

4352:                                             ; preds = %4347
  %4353 = load i32, ptr %91, align 4, !tbaa !5
  %4354 = call ptr @__errno_location() #10
  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() #10
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  %4365 = call ptr @strerror(i32 noundef %4364) #9
  %4366 = call ptr @__errno_location() #10
  %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.44, ptr noundef @.str.1, i32 noundef 202, ptr noundef %4359, ptr noundef %4362, ptr noundef %4365, i32 noundef %4367) #9
  br label %4386

4369:                                             ; preds = %4347, %4340
  %4370 = load i32, ptr %91, align 4, !tbaa !5
  %4371 = call ptr @__errno_location() #10
  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() #10
  %4381 = load i32, ptr %4380, align 4, !tbaa !5
  %4382 = call ptr @strerror(i32 noundef %4381) #9
  %4383 = call ptr @__errno_location() #10
  %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.44, ptr noundef @.str.1, i32 noundef 202, ptr noundef %4376, ptr noundef %4379, ptr noundef %4382, i32 noundef %4384) #9
  br label %4386

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

4387:                                             ; preds = %4386
  br label %4388

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

4389:                                             ; No predecessors!
  br label %4390

4390:                                             ; preds = %4389
  br label %4391

4391:                                             ; preds = %4390, %4332
  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 %73, align 8, !tbaa !9
  %4398 = getelementptr inbounds %struct.s2n_connection, ptr %4397, i32 0, i32 89
  %4399 = load i32, ptr %4398, align 8, !tbaa !18
  %4400 = icmp eq i32 %4399, 3
  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 %92) #9
  %4404 = call ptr @__errno_location() #10
  %4405 = load i32, ptr %4404, align 4, !tbaa !5
  store i32 %4405, ptr %92, 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) #9
  %4413 = call i32 @isatty(i32 noundef %4412) #9
  %4414 = icmp ne i32 %4413, 0
  br i1 %4414, label %4415, label %4432

4415:                                             ; preds = %4410
  %4416 = load i32, ptr %92, align 4, !tbaa !5
  %4417 = call ptr @__errno_location() #10
  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() #10
  %4427 = load i32, ptr %4426, align 4, !tbaa !5
  %4428 = call ptr @strerror(i32 noundef %4427) #9
  %4429 = call ptr @__errno_location() #10
  %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.51, ptr noundef @.str.1, i32 noundef 203, ptr noundef %4422, ptr noundef %4425, ptr noundef %4428, i32 noundef %4430) #9
  br label %4449

4432:                                             ; preds = %4410, %4403
  %4433 = load i32, ptr %92, align 4, !tbaa !5
  %4434 = call ptr @__errno_location() #10
  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() #10
  %4444 = load i32, ptr %4443, align 4, !tbaa !5
  %4445 = call ptr @strerror(i32 noundef %4444) #9
  %4446 = call ptr @__errno_location() #10
  %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.51, ptr noundef @.str.1, i32 noundef 203, ptr noundef %4439, ptr noundef %4442, ptr noundef %4445, i32 noundef %4447) #9
  br label %4449

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

4450:                                             ; preds = %4449
  br label %4451

4451:                                             ; preds = %4450
  call void @exit(i32 noundef 1) #11
  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 %79, align 8, !tbaa !9
  %4461 = getelementptr inbounds %struct.s2n_connection, ptr %4460, i32 0, i32 89
  %4462 = load i32, ptr %4461, align 8, !tbaa !18
  %4463 = icmp eq i32 %4462, 3
  br i1 %4463, label %4517, label %4464

4464:                                             ; preds = %4457
  br label %4465

4465:                                             ; preds = %4464
  br label %4466

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

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

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

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

4512:                                             ; preds = %4495, %4478
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

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

4515:                                             ; No predecessors!
  br label %4516

4516:                                             ; preds = %4515
  br label %4517

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

4518:                                             ; preds = %4517
  br label %4519

4519:                                             ; preds = %4518
  br label %4520

4520:                                             ; preds = %4519
  %4521 = load i32, ptr @test_count, align 4, !tbaa !5
  %4522 = add nsw i32 %4521, 1
  store i32 %4522, ptr @test_count, align 4, !tbaa !5
  %4523 = load ptr, ptr %73, align 8, !tbaa !9
  %4524 = call i32 @s2n_connection_free(ptr noundef %4523)
  %4525 = icmp eq i32 %4524, -1
  br i1 %4525, label %4526, label %4579

4526:                                             ; preds = %4520
  br label %4527

4527:                                             ; preds = %4526
  br label %4528

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

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

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

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

4574:                                             ; preds = %4557, %4540
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %4575

4575:                                             ; preds = %4574
  br label %4576

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

4577:                                             ; No predecessors!
  br label %4578

4578:                                             ; preds = %4577
  br label %4579

4579:                                             ; preds = %4578, %4520
  br label %4580

4580:                                             ; preds = %4579
  br label %4581

4581:                                             ; preds = %4580
  br label %4582

4582:                                             ; preds = %4581
  %4583 = load i32, ptr @test_count, align 4, !tbaa !5
  %4584 = add nsw i32 %4583, 1
  store i32 %4584, ptr @test_count, align 4, !tbaa !5
  %4585 = load ptr, ptr %79, align 8, !tbaa !9
  %4586 = call i32 @s2n_connection_free(ptr noundef %4585)
  %4587 = icmp eq i32 %4586, -1
  br i1 %4587, label %4588, label %4641

4588:                                             ; preds = %4582
  br label %4589

4589:                                             ; preds = %4588
  br label %4590

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

4597:                                             ; preds = %4590
  %4598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4599 = call i32 @fileno(ptr noundef %4598) #9
  %4600 = call i32 @isatty(i32 noundef %4599) #9
  %4601 = icmp ne i32 %4600, 0
  br i1 %4601, label %4602, label %4619

4602:                                             ; preds = %4597
  %4603 = load i32, ptr %95, align 4, !tbaa !5
  %4604 = call ptr @__errno_location() #10
  store i32 %4603, ptr %4604, align 4, !tbaa !5
  %4605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4606 = load i32, ptr @test_count, align 4, !tbaa !5
  %4607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4608 = load i32, ptr %4607, align 4, !tbaa !5
  %4609 = call ptr @s2n_strerror(i32 noundef %4608, ptr noundef @.str.4)
  %4610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4611 = load i32, ptr %4610, align 4, !tbaa !5
  %4612 = call ptr @s2n_strerror_debug(i32 noundef %4611, ptr noundef @.str.4)
  %4613 = call ptr @__errno_location() #10
  %4614 = load i32, ptr %4613, align 4, !tbaa !5
  %4615 = call ptr @strerror(i32 noundef %4614) #9
  %4616 = call ptr @__errno_location() #10
  %4617 = load i32, ptr %4616, align 4, !tbaa !5
  %4618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4605, ptr noundef @.str.2, i32 noundef %4606, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 207, ptr noundef %4609, ptr noundef %4612, ptr noundef %4615, i32 noundef %4617) #9
  br label %4636

4619:                                             ; preds = %4597, %4590
  %4620 = load i32, ptr %95, align 4, !tbaa !5
  %4621 = call ptr @__errno_location() #10
  store i32 %4620, ptr %4621, align 4, !tbaa !5
  %4622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4623 = load i32, ptr @test_count, align 4, !tbaa !5
  %4624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = call ptr @s2n_strerror(i32 noundef %4625, ptr noundef @.str.4)
  %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_debug(i32 noundef %4628, ptr noundef @.str.4)
  %4630 = call ptr @__errno_location() #10
  %4631 = load i32, ptr %4630, align 4, !tbaa !5
  %4632 = call ptr @strerror(i32 noundef %4631) #9
  %4633 = call ptr @__errno_location() #10
  %4634 = load i32, ptr %4633, align 4, !tbaa !5
  %4635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4622, ptr noundef @.str.5, i32 noundef %4623, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 207, ptr noundef %4626, ptr noundef %4629, ptr noundef %4632, i32 noundef %4634) #9
  br label %4636

4636:                                             ; preds = %4619, %4602
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %4637

4637:                                             ; preds = %4636
  br label %4638

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

4639:                                             ; No predecessors!
  br label %4640

4640:                                             ; preds = %4639
  br label %4641

4641:                                             ; preds = %4640, %4582
  br label %4642

4642:                                             ; preds = %4641
  br label %4643

4643:                                             ; preds = %4642
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #9
  %4644 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4644, ptr %96, align 8, !tbaa !9
  br label %4645

4645:                                             ; preds = %4643
  %4646 = load i32, ptr @test_count, align 4, !tbaa !5
  %4647 = add nsw i32 %4646, 1
  store i32 %4647, ptr @test_count, align 4, !tbaa !5
  %4648 = load ptr, ptr %96, align 8, !tbaa !9
  %4649 = icmp eq ptr %4648, null
  br i1 %4649, label %4650, label %4703

4650:                                             ; preds = %4645
  br label %4651

4651:                                             ; preds = %4650
  br label %4652

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

4659:                                             ; preds = %4652
  %4660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4661 = call i32 @fileno(ptr noundef %4660) #9
  %4662 = call i32 @isatty(i32 noundef %4661) #9
  %4663 = icmp ne i32 %4662, 0
  br i1 %4663, label %4664, label %4681

4664:                                             ; preds = %4659
  %4665 = load i32, ptr %97, align 4, !tbaa !5
  %4666 = call ptr @__errno_location() #10
  store i32 %4665, ptr %4666, align 4, !tbaa !5
  %4667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4668 = load i32, ptr @test_count, align 4, !tbaa !5
  %4669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4670 = load i32, ptr %4669, align 4, !tbaa !5
  %4671 = call ptr @s2n_strerror(i32 noundef %4670, ptr noundef @.str.4)
  %4672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4673 = load i32, ptr %4672, align 4, !tbaa !5
  %4674 = call ptr @s2n_strerror_debug(i32 noundef %4673, ptr noundef @.str.4)
  %4675 = call ptr @__errno_location() #10
  %4676 = load i32, ptr %4675, align 4, !tbaa !5
  %4677 = call ptr @strerror(i32 noundef %4676) #9
  %4678 = call ptr @__errno_location() #10
  %4679 = load i32, ptr %4678, align 4, !tbaa !5
  %4680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4667, ptr noundef @.str.2, i32 noundef %4668, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4671, ptr noundef %4674, ptr noundef %4677, i32 noundef %4679) #9
  br label %4698

4681:                                             ; preds = %4659, %4652
  %4682 = load i32, ptr %97, align 4, !tbaa !5
  %4683 = call ptr @__errno_location() #10
  store i32 %4682, ptr %4683, align 4, !tbaa !5
  %4684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4685 = load i32, ptr @test_count, align 4, !tbaa !5
  %4686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4687 = load i32, ptr %4686, align 4, !tbaa !5
  %4688 = call ptr @s2n_strerror(i32 noundef %4687, ptr noundef @.str.4)
  %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_debug(i32 noundef %4690, ptr noundef @.str.4)
  %4692 = call ptr @__errno_location() #10
  %4693 = load i32, ptr %4692, align 4, !tbaa !5
  %4694 = call ptr @strerror(i32 noundef %4693) #9
  %4695 = call ptr @__errno_location() #10
  %4696 = load i32, ptr %4695, align 4, !tbaa !5
  %4697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4684, ptr noundef @.str.5, i32 noundef %4685, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4688, ptr noundef %4691, ptr noundef %4694, i32 noundef %4696) #9
  br label %4698

4698:                                             ; preds = %4681, %4664
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4699

4699:                                             ; preds = %4698
  br label %4700

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

4701:                                             ; No predecessors!
  br label %4702

4702:                                             ; preds = %4701
  br label %4703

4703:                                             ; preds = %4702, %4645
  br label %4704

4704:                                             ; preds = %4703
  br label %4705

4705:                                             ; preds = %4704
  br label %4706

4706:                                             ; preds = %4705
  %4707 = load i32, ptr @test_count, align 4, !tbaa !5
  %4708 = add nsw i32 %4707, 1
  store i32 %4708, ptr @test_count, align 4, !tbaa !5
  %4709 = load ptr, ptr %96, align 8, !tbaa !9
  %4710 = load ptr, ptr %49, align 8, !tbaa !9
  %4711 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef %4709, i32 noundef 10, ptr noundef %4710)
  %4712 = getelementptr inbounds %struct.s2n_result, ptr %98, i32 0, i32 0
  store i32 %4711, ptr %4712, align 4
  %4713 = getelementptr inbounds %struct.s2n_result, ptr %98, i32 0, i32 0
  %4714 = load i32, ptr %4713, align 4
  %4715 = call zeroext i1 @s2n_result_is_ok(i32 %4714)
  br i1 %4715, label %4769, label %4716

4716:                                             ; preds = %4706
  br label %4717

4717:                                             ; preds = %4716
  br label %4718

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

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

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

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

4764:                                             ; preds = %4747, %4730
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %4765

4765:                                             ; preds = %4764
  br label %4766

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

4767:                                             ; No predecessors!
  br label %4768

4768:                                             ; preds = %4767
  br label %4769

4769:                                             ; preds = %4768, %4706
  br label %4770

4770:                                             ; preds = %4769
  br label %4771

4771:                                             ; preds = %4770
  br label %4772

4772:                                             ; preds = %4771
  %4773 = load i32, ptr @test_count, align 4, !tbaa !5
  %4774 = add nsw i32 %4773, 1
  store i32 %4774, ptr @test_count, align 4, !tbaa !5
  %4775 = load ptr, ptr %96, align 8, !tbaa !9
  %4776 = load ptr, ptr %48, align 8, !tbaa !9
  %4777 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4775, ptr noundef %4776)
  %4778 = icmp eq i32 %4777, -1
  br i1 %4778, label %4779, label %4832

4779:                                             ; preds = %4772
  br label %4780

4780:                                             ; preds = %4779
  br label %4781

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

4788:                                             ; preds = %4781
  %4789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4790 = call i32 @fileno(ptr noundef %4789) #9
  %4791 = call i32 @isatty(i32 noundef %4790) #9
  %4792 = icmp ne i32 %4791, 0
  br i1 %4792, label %4793, label %4810

4793:                                             ; preds = %4788
  %4794 = load i32, ptr %100, align 4, !tbaa !5
  %4795 = call ptr @__errno_location() #10
  store i32 %4794, ptr %4795, align 4, !tbaa !5
  %4796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4797 = load i32, ptr @test_count, align 4, !tbaa !5
  %4798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4799 = load i32, ptr %4798, align 4, !tbaa !5
  %4800 = call ptr @s2n_strerror(i32 noundef %4799, ptr noundef @.str.4)
  %4801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4802 = load i32, ptr %4801, align 4, !tbaa !5
  %4803 = call ptr @s2n_strerror_debug(i32 noundef %4802, ptr noundef @.str.4)
  %4804 = call ptr @__errno_location() #10
  %4805 = load i32, ptr %4804, align 4, !tbaa !5
  %4806 = call ptr @strerror(i32 noundef %4805) #9
  %4807 = call ptr @__errno_location() #10
  %4808 = load i32, ptr %4807, align 4, !tbaa !5
  %4809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4796, ptr noundef @.str.2, i32 noundef %4797, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 222, ptr noundef %4800, ptr noundef %4803, ptr noundef %4806, i32 noundef %4808) #9
  br label %4827

4810:                                             ; preds = %4788, %4781
  %4811 = load i32, ptr %100, align 4, !tbaa !5
  %4812 = call ptr @__errno_location() #10
  store i32 %4811, ptr %4812, align 4, !tbaa !5
  %4813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4814 = load i32, ptr @test_count, align 4, !tbaa !5
  %4815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4816 = load i32, ptr %4815, align 4, !tbaa !5
  %4817 = call ptr @s2n_strerror(i32 noundef %4816, ptr noundef @.str.4)
  %4818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4819 = load i32, ptr %4818, align 4, !tbaa !5
  %4820 = call ptr @s2n_strerror_debug(i32 noundef %4819, ptr noundef @.str.4)
  %4821 = call ptr @__errno_location() #10
  %4822 = load i32, ptr %4821, align 4, !tbaa !5
  %4823 = call ptr @strerror(i32 noundef %4822) #9
  %4824 = call ptr @__errno_location() #10
  %4825 = load i32, ptr %4824, align 4, !tbaa !5
  %4826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4813, ptr noundef @.str.5, i32 noundef %4814, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 222, ptr noundef %4817, ptr noundef %4820, ptr noundef %4823, i32 noundef %4825) #9
  br label %4827

4827:                                             ; preds = %4810, %4793
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %4828

4828:                                             ; preds = %4827
  br label %4829

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

4830:                                             ; No predecessors!
  br label %4831

4831:                                             ; preds = %4830
  br label %4832

4832:                                             ; preds = %4831, %4772
  br label %4833

4833:                                             ; preds = %4832
  br label %4834

4834:                                             ; preds = %4833
  br label %4835

4835:                                             ; preds = %4834
  %4836 = load i32, ptr @test_count, align 4, !tbaa !5
  %4837 = add nsw i32 %4836, 1
  store i32 %4837, ptr @test_count, align 4, !tbaa !5
  %4838 = load ptr, ptr %96, align 8, !tbaa !9
  %4839 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %4838)
  %4840 = icmp eq i32 %4839, -1
  br i1 %4840, label %4841, label %4894

4841:                                             ; preds = %4835
  br label %4842

4842:                                             ; preds = %4841
  br label %4843

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

4850:                                             ; preds = %4843
  %4851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4852 = call i32 @fileno(ptr noundef %4851) #9
  %4853 = call i32 @isatty(i32 noundef %4852) #9
  %4854 = icmp ne i32 %4853, 0
  br i1 %4854, label %4855, label %4872

4855:                                             ; preds = %4850
  %4856 = load i32, ptr %101, align 4, !tbaa !5
  %4857 = call ptr @__errno_location() #10
  store i32 %4856, ptr %4857, align 4, !tbaa !5
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = load i32, ptr @test_count, align 4, !tbaa !5
  %4860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4861 = load i32, ptr %4860, align 4, !tbaa !5
  %4862 = call ptr @s2n_strerror(i32 noundef %4861, ptr noundef @.str.4)
  %4863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4864 = load i32, ptr %4863, align 4, !tbaa !5
  %4865 = call ptr @s2n_strerror_debug(i32 noundef %4864, ptr noundef @.str.4)
  %4866 = call ptr @__errno_location() #10
  %4867 = load i32, ptr %4866, align 4, !tbaa !5
  %4868 = call ptr @strerror(i32 noundef %4867) #9
  %4869 = call ptr @__errno_location() #10
  %4870 = load i32, ptr %4869, align 4, !tbaa !5
  %4871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4858, ptr noundef @.str.2, i32 noundef %4859, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4862, ptr noundef %4865, ptr noundef %4868, i32 noundef %4870) #9
  br label %4889

4872:                                             ; preds = %4850, %4843
  %4873 = load i32, ptr %101, align 4, !tbaa !5
  %4874 = call ptr @__errno_location() #10
  store i32 %4873, ptr %4874, align 4, !tbaa !5
  %4875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4876 = load i32, ptr @test_count, align 4, !tbaa !5
  %4877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4878 = load i32, ptr %4877, align 4, !tbaa !5
  %4879 = call ptr @s2n_strerror(i32 noundef %4878, ptr noundef @.str.4)
  %4880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4881 = load i32, ptr %4880, align 4, !tbaa !5
  %4882 = call ptr @s2n_strerror_debug(i32 noundef %4881, ptr noundef @.str.4)
  %4883 = call ptr @__errno_location() #10
  %4884 = load i32, ptr %4883, align 4, !tbaa !5
  %4885 = call ptr @strerror(i32 noundef %4884) #9
  %4886 = call ptr @__errno_location() #10
  %4887 = load i32, ptr %4886, align 4, !tbaa !5
  %4888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4875, ptr noundef @.str.5, i32 noundef %4876, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4879, ptr noundef %4882, ptr noundef %4885, i32 noundef %4887) #9
  br label %4889

4889:                                             ; preds = %4872, %4855
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  br label %4890

4890:                                             ; preds = %4889
  br label %4891

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

4892:                                             ; No predecessors!
  br label %4893

4893:                                             ; preds = %4892
  br label %4894

4894:                                             ; preds = %4893, %4835
  br label %4895

4895:                                             ; preds = %4894
  br label %4896

4896:                                             ; preds = %4895
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  %4897 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4897, ptr %102, align 8, !tbaa !9
  br label %4898

4898:                                             ; preds = %4896
  %4899 = load i32, ptr @test_count, align 4, !tbaa !5
  %4900 = add nsw i32 %4899, 1
  store i32 %4900, ptr @test_count, align 4, !tbaa !5
  %4901 = load ptr, ptr %102, align 8, !tbaa !9
  %4902 = icmp eq ptr %4901, null
  br i1 %4902, label %4903, label %4956

4903:                                             ; preds = %4898
  br label %4904

4904:                                             ; preds = %4903
  br label %4905

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

4912:                                             ; preds = %4905
  %4913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4914 = call i32 @fileno(ptr noundef %4913) #9
  %4915 = call i32 @isatty(i32 noundef %4914) #9
  %4916 = icmp ne i32 %4915, 0
  br i1 %4916, label %4917, label %4934

4917:                                             ; preds = %4912
  %4918 = load i32, ptr %103, align 4, !tbaa !5
  %4919 = call ptr @__errno_location() #10
  store i32 %4918, ptr %4919, align 4, !tbaa !5
  %4920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4921 = load i32, ptr @test_count, align 4, !tbaa !5
  %4922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4923 = load i32, ptr %4922, align 4, !tbaa !5
  %4924 = call ptr @s2n_strerror(i32 noundef %4923, ptr noundef @.str.4)
  %4925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4926 = load i32, ptr %4925, align 4, !tbaa !5
  %4927 = call ptr @s2n_strerror_debug(i32 noundef %4926, ptr noundef @.str.4)
  %4928 = call ptr @__errno_location() #10
  %4929 = load i32, ptr %4928, align 4, !tbaa !5
  %4930 = call ptr @strerror(i32 noundef %4929) #9
  %4931 = call ptr @__errno_location() #10
  %4932 = load i32, ptr %4931, align 4, !tbaa !5
  %4933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4920, ptr noundef @.str.2, i32 noundef %4921, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 226, ptr noundef %4924, ptr noundef %4927, ptr noundef %4930, i32 noundef %4932) #9
  br label %4951

4934:                                             ; preds = %4912, %4905
  %4935 = load i32, ptr %103, align 4, !tbaa !5
  %4936 = call ptr @__errno_location() #10
  store i32 %4935, ptr %4936, align 4, !tbaa !5
  %4937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4938 = load i32, ptr @test_count, align 4, !tbaa !5
  %4939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  %4941 = call ptr @s2n_strerror(i32 noundef %4940, ptr noundef @.str.4)
  %4942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4943 = load i32, ptr %4942, align 4, !tbaa !5
  %4944 = call ptr @s2n_strerror_debug(i32 noundef %4943, ptr noundef @.str.4)
  %4945 = call ptr @__errno_location() #10
  %4946 = load i32, ptr %4945, align 4, !tbaa !5
  %4947 = call ptr @strerror(i32 noundef %4946) #9
  %4948 = call ptr @__errno_location() #10
  %4949 = load i32, ptr %4948, align 4, !tbaa !5
  %4950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4937, ptr noundef @.str.5, i32 noundef %4938, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 226, ptr noundef %4941, ptr noundef %4944, ptr noundef %4947, i32 noundef %4949) #9
  br label %4951

4951:                                             ; preds = %4934, %4917
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %4952

4952:                                             ; preds = %4951
  br label %4953

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

4954:                                             ; No predecessors!
  br label %4955

4955:                                             ; preds = %4954
  br label %4956

4956:                                             ; preds = %4955, %4898
  br label %4957

4957:                                             ; preds = %4956
  br label %4958

4958:                                             ; preds = %4957
  br label %4959

4959:                                             ; preds = %4958
  %4960 = load i32, ptr @test_count, align 4, !tbaa !5
  %4961 = add nsw i32 %4960, 1
  store i32 %4961, ptr @test_count, align 4, !tbaa !5
  %4962 = load ptr, ptr %102, align 8, !tbaa !9
  %4963 = load ptr, ptr %49, align 8, !tbaa !9
  %4964 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef %4962, i32 noundef 0, ptr noundef %4963)
  %4965 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %4964, ptr %4965, align 4
  %4966 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  %4967 = load i32, ptr %4966, align 4
  %4968 = call zeroext i1 @s2n_result_is_ok(i32 %4967)
  br i1 %4968, label %5022, label %4969

4969:                                             ; preds = %4959
  br label %4970

4970:                                             ; preds = %4969
  br label %4971

4971:                                             ; preds = %4970
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #9
  %4972 = call ptr @__errno_location() #10
  %4973 = load i32, ptr %4972, align 4, !tbaa !5
  store i32 %4973, ptr %105, align 4, !tbaa !5
  %4974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4975 = call i32 @s2n_print_stacktrace(ptr noundef %4974)
  %4976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4977 = trunc i8 %4976 to i1
  br i1 %4977, label %4978, label %5000

4978:                                             ; preds = %4971
  %4979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4980 = call i32 @fileno(ptr noundef %4979) #9
  %4981 = call i32 @isatty(i32 noundef %4980) #9
  %4982 = icmp ne i32 %4981, 0
  br i1 %4982, label %4983, label %5000

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

5000:                                             ; preds = %4978, %4971
  %5001 = load i32, ptr %105, align 4, !tbaa !5
  %5002 = call ptr @__errno_location() #10
  store i32 %5001, ptr %5002, align 4, !tbaa !5
  %5003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5004 = load i32, ptr @test_count, align 4, !tbaa !5
  %5005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5006 = load i32, ptr %5005, align 4, !tbaa !5
  %5007 = call ptr @s2n_strerror(i32 noundef %5006, ptr noundef @.str.4)
  %5008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call ptr @s2n_strerror_debug(i32 noundef %5009, ptr noundef @.str.4)
  %5011 = call ptr @__errno_location() #10
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  %5013 = call ptr @strerror(i32 noundef %5012) #9
  %5014 = call ptr @__errno_location() #10
  %5015 = load i32, ptr %5014, align 4, !tbaa !5
  %5016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5003, ptr noundef @.str.5, i32 noundef %5004, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 227, ptr noundef %5007, ptr noundef %5010, ptr noundef %5013, i32 noundef %5015) #9
  br label %5017

5017:                                             ; preds = %5000, %4983
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %5018

5018:                                             ; preds = %5017
  br label %5019

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

5020:                                             ; No predecessors!
  br label %5021

5021:                                             ; preds = %5020
  br label %5022

5022:                                             ; preds = %5021, %4959
  br label %5023

5023:                                             ; preds = %5022
  br label %5024

5024:                                             ; preds = %5023
  br label %5025

5025:                                             ; preds = %5024
  %5026 = load i32, ptr @test_count, align 4, !tbaa !5
  %5027 = add nsw i32 %5026, 1
  store i32 %5027, ptr @test_count, align 4, !tbaa !5
  %5028 = load ptr, ptr %102, align 8, !tbaa !9
  %5029 = load ptr, ptr %48, align 8, !tbaa !9
  %5030 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %5028, ptr noundef %5029)
  %5031 = icmp eq i32 %5030, -1
  br i1 %5031, label %5032, label %5085

5032:                                             ; preds = %5025
  br label %5033

5033:                                             ; preds = %5032
  br label %5034

5034:                                             ; preds = %5033
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  %5035 = call ptr @__errno_location() #10
  %5036 = load i32, ptr %5035, align 4, !tbaa !5
  store i32 %5036, ptr %106, align 4, !tbaa !5
  %5037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5038 = call i32 @s2n_print_stacktrace(ptr noundef %5037)
  %5039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5040 = trunc i8 %5039 to i1
  br i1 %5040, label %5041, label %5063

5041:                                             ; preds = %5034
  %5042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5043 = call i32 @fileno(ptr noundef %5042) #9
  %5044 = call i32 @isatty(i32 noundef %5043) #9
  %5045 = icmp ne i32 %5044, 0
  br i1 %5045, label %5046, label %5063

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

5063:                                             ; preds = %5041, %5034
  %5064 = load i32, ptr %106, align 4, !tbaa !5
  %5065 = call ptr @__errno_location() #10
  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() #10
  %5075 = load i32, ptr %5074, align 4, !tbaa !5
  %5076 = call ptr @strerror(i32 noundef %5075) #9
  %5077 = call ptr @__errno_location() #10
  %5078 = load i32, ptr %5077, align 4, !tbaa !5
  %5079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5066, ptr noundef @.str.5, i32 noundef %5067, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 228, ptr noundef %5070, ptr noundef %5073, ptr noundef %5076, i32 noundef %5078) #9
  br label %5080

5080:                                             ; preds = %5063, %5046
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  br label %5081

5081:                                             ; preds = %5080
  br label %5082

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

5083:                                             ; No predecessors!
  br label %5084

5084:                                             ; preds = %5083
  br label %5085

5085:                                             ; preds = %5084, %5025
  br label %5086

5086:                                             ; preds = %5085
  br label %5087

5087:                                             ; preds = %5086
  br label %5088

5088:                                             ; preds = %5087
  %5089 = load i32, ptr @test_count, align 4, !tbaa !5
  %5090 = add nsw i32 %5089, 1
  store i32 %5090, ptr @test_count, align 4, !tbaa !5
  %5091 = load ptr, ptr %102, align 8, !tbaa !9
  %5092 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %5091)
  %5093 = icmp eq i32 %5092, -1
  br i1 %5093, label %5094, label %5147

5094:                                             ; preds = %5088
  br label %5095

5095:                                             ; preds = %5094
  br label %5096

5096:                                             ; preds = %5095
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #9
  %5097 = call ptr @__errno_location() #10
  %5098 = load i32, ptr %5097, align 4, !tbaa !5
  store i32 %5098, ptr %107, align 4, !tbaa !5
  %5099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5100 = call i32 @s2n_print_stacktrace(ptr noundef %5099)
  %5101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5102 = trunc i8 %5101 to i1
  br i1 %5102, label %5103, label %5125

5103:                                             ; preds = %5096
  %5104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5105 = call i32 @fileno(ptr noundef %5104) #9
  %5106 = call i32 @isatty(i32 noundef %5105) #9
  %5107 = icmp ne i32 %5106, 0
  br i1 %5107, label %5108, label %5125

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

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

5142:                                             ; preds = %5125, %5108
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  br label %5143

5143:                                             ; preds = %5142
  br label %5144

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

5145:                                             ; No predecessors!
  br label %5146

5146:                                             ; preds = %5145
  br label %5147

5147:                                             ; preds = %5146, %5088
  br label %5148

5148:                                             ; preds = %5147
  br label %5149

5149:                                             ; preds = %5148
  br label %5150

5150:                                             ; preds = %5149
  %5151 = load i32, ptr @test_count, align 4, !tbaa !5
  %5152 = add nsw i32 %5151, 1
  store i32 %5152, ptr @test_count, align 4, !tbaa !5
  %5153 = load ptr, ptr %96, align 8, !tbaa !9
  %5154 = load ptr, ptr %102, align 8, !tbaa !9
  %5155 = call i32 @s2n_exchange_hellos(ptr noundef %5153, ptr noundef %5154)
  %5156 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  store i32 %5155, ptr %5156, align 4
  %5157 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  %5158 = load i32, ptr %5157, align 4
  %5159 = call zeroext i1 @s2n_result_is_ok(i32 %5158)
  br i1 %5159, label %5213, label %5160

5160:                                             ; preds = %5150
  br label %5161

5161:                                             ; preds = %5160
  br label %5162

5162:                                             ; preds = %5161
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #9
  %5163 = call ptr @__errno_location() #10
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  store i32 %5164, ptr %109, align 4, !tbaa !5
  %5165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5166 = call i32 @s2n_print_stacktrace(ptr noundef %5165)
  %5167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5168 = trunc i8 %5167 to i1
  br i1 %5168, label %5169, label %5191

5169:                                             ; preds = %5162
  %5170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5171 = call i32 @fileno(ptr noundef %5170) #9
  %5172 = call i32 @isatty(i32 noundef %5171) #9
  %5173 = icmp ne i32 %5172, 0
  br i1 %5173, label %5174, label %5191

5174:                                             ; preds = %5169
  %5175 = load i32, ptr %109, align 4, !tbaa !5
  %5176 = call ptr @__errno_location() #10
  store i32 %5175, ptr %5176, align 4, !tbaa !5
  %5177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5178 = load i32, ptr @test_count, align 4, !tbaa !5
  %5179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5180 = load i32, ptr %5179, align 4, !tbaa !5
  %5181 = call ptr @s2n_strerror(i32 noundef %5180, ptr noundef @.str.4)
  %5182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5183 = load i32, ptr %5182, align 4, !tbaa !5
  %5184 = call ptr @s2n_strerror_debug(i32 noundef %5183, ptr noundef @.str.4)
  %5185 = call ptr @__errno_location() #10
  %5186 = load i32, ptr %5185, align 4, !tbaa !5
  %5187 = call ptr @strerror(i32 noundef %5186) #9
  %5188 = call ptr @__errno_location() #10
  %5189 = load i32, ptr %5188, align 4, !tbaa !5
  %5190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5177, ptr noundef @.str.2, i32 noundef %5178, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 231, ptr noundef %5181, ptr noundef %5184, ptr noundef %5187, i32 noundef %5189) #9
  br label %5208

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

5208:                                             ; preds = %5191, %5174
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %5209

5209:                                             ; preds = %5208
  br label %5210

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

5211:                                             ; No predecessors!
  br label %5212

5212:                                             ; preds = %5211
  br label %5213

5213:                                             ; preds = %5212, %5150
  br label %5214

5214:                                             ; preds = %5213
  br label %5215

5215:                                             ; preds = %5214
  br label %5216

5216:                                             ; preds = %5215
  %5217 = load i32, ptr @test_count, align 4, !tbaa !5
  %5218 = add nsw i32 %5217, 1
  store i32 %5218, ptr @test_count, align 4, !tbaa !5
  %5219 = load ptr, ptr %96, align 8, !tbaa !9
  %5220 = getelementptr inbounds %struct.s2n_connection, ptr %5219, i32 0, i32 89
  %5221 = load i32, ptr %5220, align 8, !tbaa !18
  %5222 = icmp eq i32 %5221, 1
  br i1 %5222, label %5276, label %5223

5223:                                             ; preds = %5216
  br label %5224

5224:                                             ; preds = %5223
  br label %5225

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

5232:                                             ; preds = %5225
  %5233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5234 = call i32 @fileno(ptr noundef %5233) #9
  %5235 = call i32 @isatty(i32 noundef %5234) #9
  %5236 = icmp ne i32 %5235, 0
  br i1 %5236, label %5237, label %5254

5237:                                             ; preds = %5232
  %5238 = load i32, ptr %110, align 4, !tbaa !5
  %5239 = call ptr @__errno_location() #10
  store i32 %5238, ptr %5239, align 4, !tbaa !5
  %5240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5241 = load i32, ptr @test_count, align 4, !tbaa !5
  %5242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5243 = load i32, ptr %5242, align 4, !tbaa !5
  %5244 = call ptr @s2n_strerror(i32 noundef %5243, ptr noundef @.str.4)
  %5245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5246 = load i32, ptr %5245, align 4, !tbaa !5
  %5247 = call ptr @s2n_strerror_debug(i32 noundef %5246, ptr noundef @.str.4)
  %5248 = call ptr @__errno_location() #10
  %5249 = load i32, ptr %5248, align 4, !tbaa !5
  %5250 = call ptr @strerror(i32 noundef %5249) #9
  %5251 = call ptr @__errno_location() #10
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  %5253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5240, ptr noundef @.str.2, i32 noundef %5241, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 232, ptr noundef %5244, ptr noundef %5247, ptr noundef %5250, i32 noundef %5252) #9
  br label %5271

5254:                                             ; preds = %5232, %5225
  %5255 = load i32, ptr %110, align 4, !tbaa !5
  %5256 = call ptr @__errno_location() #10
  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() #10
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @strerror(i32 noundef %5266) #9
  %5268 = call ptr @__errno_location() #10
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5257, ptr noundef @.str.5, i32 noundef %5258, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 232, ptr noundef %5261, ptr noundef %5264, ptr noundef %5267, i32 noundef %5269) #9
  br label %5271

5271:                                             ; preds = %5254, %5237
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #9
  br label %5272

5272:                                             ; preds = %5271
  br label %5273

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

5274:                                             ; No predecessors!
  br label %5275

5275:                                             ; preds = %5274
  br label %5276

5276:                                             ; preds = %5275, %5216
  br label %5277

5277:                                             ; preds = %5276
  br label %5278

5278:                                             ; preds = %5277
  br label %5279

5279:                                             ; preds = %5278
  %5280 = load i32, ptr @test_count, align 4, !tbaa !5
  %5281 = add nsw i32 %5280, 1
  store i32 %5281, ptr @test_count, align 4, !tbaa !5
  %5282 = load ptr, ptr %102, align 8, !tbaa !9
  %5283 = getelementptr inbounds %struct.s2n_connection, ptr %5282, i32 0, i32 89
  %5284 = load i32, ptr %5283, align 8, !tbaa !18
  %5285 = icmp eq i32 %5284, 4
  br i1 %5285, label %5339, label %5286

5286:                                             ; preds = %5279
  br label %5287

5287:                                             ; preds = %5286
  br label %5288

5288:                                             ; preds = %5287
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #9
  %5289 = call ptr @__errno_location() #10
  %5290 = load i32, ptr %5289, align 4, !tbaa !5
  store i32 %5290, ptr %111, align 4, !tbaa !5
  %5291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5292 = call i32 @s2n_print_stacktrace(ptr noundef %5291)
  %5293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5294 = trunc i8 %5293 to i1
  br i1 %5294, label %5295, label %5317

5295:                                             ; preds = %5288
  %5296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5297 = call i32 @fileno(ptr noundef %5296) #9
  %5298 = call i32 @isatty(i32 noundef %5297) #9
  %5299 = icmp ne i32 %5298, 0
  br i1 %5299, label %5300, label %5317

5300:                                             ; preds = %5295
  %5301 = load i32, ptr %111, align 4, !tbaa !5
  %5302 = call ptr @__errno_location() #10
  store i32 %5301, ptr %5302, align 4, !tbaa !5
  %5303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5304 = load i32, ptr @test_count, align 4, !tbaa !5
  %5305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5306 = load i32, ptr %5305, align 4, !tbaa !5
  %5307 = call ptr @s2n_strerror(i32 noundef %5306, ptr noundef @.str.4)
  %5308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5309 = load i32, ptr %5308, align 4, !tbaa !5
  %5310 = call ptr @s2n_strerror_debug(i32 noundef %5309, ptr noundef @.str.4)
  %5311 = call ptr @__errno_location() #10
  %5312 = load i32, ptr %5311, align 4, !tbaa !5
  %5313 = call ptr @strerror(i32 noundef %5312) #9
  %5314 = call ptr @__errno_location() #10
  %5315 = load i32, ptr %5314, align 4, !tbaa !5
  %5316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5303, ptr noundef @.str.2, i32 noundef %5304, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 233, ptr noundef %5307, ptr noundef %5310, ptr noundef %5313, i32 noundef %5315) #9
  br label %5334

5317:                                             ; preds = %5295, %5288
  %5318 = load i32, ptr %111, align 4, !tbaa !5
  %5319 = call ptr @__errno_location() #10
  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() #10
  %5329 = load i32, ptr %5328, align 4, !tbaa !5
  %5330 = call ptr @strerror(i32 noundef %5329) #9
  %5331 = call ptr @__errno_location() #10
  %5332 = load i32, ptr %5331, align 4, !tbaa !5
  %5333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5320, ptr noundef @.str.5, i32 noundef %5321, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 233, ptr noundef %5324, ptr noundef %5327, ptr noundef %5330, i32 noundef %5332) #9
  br label %5334

5334:                                             ; preds = %5317, %5300
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  br label %5335

5335:                                             ; preds = %5334
  br label %5336

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

5337:                                             ; No predecessors!
  br label %5338

5338:                                             ; preds = %5337
  br label %5339

5339:                                             ; preds = %5338, %5279
  br label %5340

5340:                                             ; preds = %5339
  br label %5341

5341:                                             ; preds = %5340
  br label %5342

5342:                                             ; preds = %5341
  %5343 = load i32, ptr @test_count, align 4, !tbaa !5
  %5344 = add nsw i32 %5343, 1
  store i32 %5344, ptr @test_count, align 4, !tbaa !5
  %5345 = load ptr, ptr %102, align 8, !tbaa !9
  %5346 = call i32 @s2n_encrypted_extensions_send(ptr noundef %5345)
  %5347 = icmp eq i32 %5346, -1
  br i1 %5347, label %5348, label %5401

5348:                                             ; preds = %5342
  br label %5349

5349:                                             ; preds = %5348
  br label %5350

5350:                                             ; preds = %5349
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #9
  %5351 = call ptr @__errno_location() #10
  %5352 = load i32, ptr %5351, align 4, !tbaa !5
  store i32 %5352, ptr %112, align 4, !tbaa !5
  %5353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5354 = call i32 @s2n_print_stacktrace(ptr noundef %5353)
  %5355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5356 = trunc i8 %5355 to i1
  br i1 %5356, label %5357, label %5379

5357:                                             ; preds = %5350
  %5358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5359 = call i32 @fileno(ptr noundef %5358) #9
  %5360 = call i32 @isatty(i32 noundef %5359) #9
  %5361 = icmp ne i32 %5360, 0
  br i1 %5361, label %5362, label %5379

5362:                                             ; preds = %5357
  %5363 = load i32, ptr %112, align 4, !tbaa !5
  %5364 = call ptr @__errno_location() #10
  store i32 %5363, ptr %5364, align 4, !tbaa !5
  %5365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5366 = load i32, ptr @test_count, align 4, !tbaa !5
  %5367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5368 = load i32, ptr %5367, align 4, !tbaa !5
  %5369 = call ptr @s2n_strerror(i32 noundef %5368, ptr noundef @.str.4)
  %5370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5371 = load i32, ptr %5370, align 4, !tbaa !5
  %5372 = call ptr @s2n_strerror_debug(i32 noundef %5371, ptr noundef @.str.4)
  %5373 = call ptr @__errno_location() #10
  %5374 = load i32, ptr %5373, align 4, !tbaa !5
  %5375 = call ptr @strerror(i32 noundef %5374) #9
  %5376 = call ptr @__errno_location() #10
  %5377 = load i32, ptr %5376, align 4, !tbaa !5
  %5378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5365, ptr noundef @.str.2, i32 noundef %5366, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 235, ptr noundef %5369, ptr noundef %5372, ptr noundef %5375, i32 noundef %5377) #9
  br label %5396

5379:                                             ; preds = %5357, %5350
  %5380 = load i32, ptr %112, align 4, !tbaa !5
  %5381 = call ptr @__errno_location() #10
  store i32 %5380, ptr %5381, align 4, !tbaa !5
  %5382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5383 = load i32, ptr @test_count, align 4, !tbaa !5
  %5384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5385 = load i32, ptr %5384, align 4, !tbaa !5
  %5386 = call ptr @s2n_strerror(i32 noundef %5385, ptr noundef @.str.4)
  %5387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5388 = load i32, ptr %5387, align 4, !tbaa !5
  %5389 = call ptr @s2n_strerror_debug(i32 noundef %5388, ptr noundef @.str.4)
  %5390 = call ptr @__errno_location() #10
  %5391 = load i32, ptr %5390, align 4, !tbaa !5
  %5392 = call ptr @strerror(i32 noundef %5391) #9
  %5393 = call ptr @__errno_location() #10
  %5394 = load i32, ptr %5393, align 4, !tbaa !5
  %5395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5382, ptr noundef @.str.5, i32 noundef %5383, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 235, ptr noundef %5386, ptr noundef %5389, ptr noundef %5392, i32 noundef %5394) #9
  br label %5396

5396:                                             ; preds = %5379, %5362
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #9
  br label %5397

5397:                                             ; preds = %5396
  br label %5398

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

5399:                                             ; No predecessors!
  br label %5400

5400:                                             ; preds = %5399
  br label %5401

5401:                                             ; preds = %5400, %5342
  br label %5402

5402:                                             ; preds = %5401
  br label %5403

5403:                                             ; preds = %5402
  br label %5404

5404:                                             ; preds = %5403
  %5405 = load i32, ptr @test_count, align 4, !tbaa !5
  %5406 = add nsw i32 %5405, 1
  store i32 %5406, ptr @test_count, align 4, !tbaa !5
  %5407 = load ptr, ptr %102, align 8, !tbaa !9
  %5408 = getelementptr inbounds %struct.s2n_connection, ptr %5407, i32 0, i32 52
  %5409 = getelementptr inbounds %struct.s2n_handshake, ptr %5408, i32 0, i32 0
  %5410 = load ptr, ptr %96, align 8, !tbaa !9
  %5411 = getelementptr inbounds %struct.s2n_connection, ptr %5410, i32 0, i32 52
  %5412 = getelementptr inbounds %struct.s2n_handshake, ptr %5411, i32 0, i32 0
  %5413 = load ptr, ptr %102, align 8, !tbaa !9
  %5414 = getelementptr inbounds %struct.s2n_connection, ptr %5413, i32 0, i32 52
  %5415 = getelementptr inbounds %struct.s2n_handshake, ptr %5414, i32 0, i32 0
  %5416 = getelementptr inbounds %struct.s2n_stuffer, ptr %5415, i32 0, i32 2
  %5417 = load i32, ptr %5416, align 4, !tbaa !53
  %5418 = load ptr, ptr %102, align 8, !tbaa !9
  %5419 = getelementptr inbounds %struct.s2n_connection, ptr %5418, i32 0, i32 52
  %5420 = getelementptr inbounds %struct.s2n_handshake, ptr %5419, i32 0, i32 0
  %5421 = getelementptr inbounds %struct.s2n_stuffer, ptr %5420, i32 0, i32 1
  %5422 = load i32, ptr %5421, align 8, !tbaa !54
  %5423 = sub i32 %5417, %5422
  %5424 = call i32 @s2n_stuffer_copy(ptr noundef %5409, ptr noundef %5412, i32 noundef %5423)
  %5425 = icmp eq i32 %5424, -1
  br i1 %5425, label %5426, label %5479

5426:                                             ; preds = %5404
  br label %5427

5427:                                             ; preds = %5426
  br label %5428

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

5435:                                             ; preds = %5428
  %5436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5437 = call i32 @fileno(ptr noundef %5436) #9
  %5438 = call i32 @isatty(i32 noundef %5437) #9
  %5439 = icmp ne i32 %5438, 0
  br i1 %5439, label %5440, label %5457

5440:                                             ; preds = %5435
  %5441 = load i32, ptr %113, align 4, !tbaa !5
  %5442 = call ptr @__errno_location() #10
  store i32 %5441, ptr %5442, align 4, !tbaa !5
  %5443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5444 = load i32, ptr @test_count, align 4, !tbaa !5
  %5445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5446 = load i32, ptr %5445, align 4, !tbaa !5
  %5447 = call ptr @s2n_strerror(i32 noundef %5446, ptr noundef @.str.4)
  %5448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5449 = load i32, ptr %5448, align 4, !tbaa !5
  %5450 = call ptr @s2n_strerror_debug(i32 noundef %5449, ptr noundef @.str.4)
  %5451 = call ptr @__errno_location() #10
  %5452 = load i32, ptr %5451, align 4, !tbaa !5
  %5453 = call ptr @strerror(i32 noundef %5452) #9
  %5454 = call ptr @__errno_location() #10
  %5455 = load i32, ptr %5454, align 4, !tbaa !5
  %5456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5443, ptr noundef @.str.2, i32 noundef %5444, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 237, ptr noundef %5447, ptr noundef %5450, ptr noundef %5453, i32 noundef %5455) #9
  br label %5474

5457:                                             ; preds = %5435, %5428
  %5458 = load i32, ptr %113, align 4, !tbaa !5
  %5459 = call ptr @__errno_location() #10
  store i32 %5458, ptr %5459, align 4, !tbaa !5
  %5460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5461 = load i32, ptr @test_count, align 4, !tbaa !5
  %5462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5463 = load i32, ptr %5462, align 4, !tbaa !5
  %5464 = call ptr @s2n_strerror(i32 noundef %5463, ptr noundef @.str.4)
  %5465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5466 = load i32, ptr %5465, align 4, !tbaa !5
  %5467 = call ptr @s2n_strerror_debug(i32 noundef %5466, ptr noundef @.str.4)
  %5468 = call ptr @__errno_location() #10
  %5469 = load i32, ptr %5468, align 4, !tbaa !5
  %5470 = call ptr @strerror(i32 noundef %5469) #9
  %5471 = call ptr @__errno_location() #10
  %5472 = load i32, ptr %5471, align 4, !tbaa !5
  %5473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5460, ptr noundef @.str.5, i32 noundef %5461, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 237, ptr noundef %5464, ptr noundef %5467, ptr noundef %5470, i32 noundef %5472) #9
  br label %5474

5474:                                             ; preds = %5457, %5440
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #9
  br label %5475

5475:                                             ; preds = %5474
  br label %5476

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

5477:                                             ; No predecessors!
  br label %5478

5478:                                             ; preds = %5477
  br label %5479

5479:                                             ; preds = %5478, %5404
  br label %5480

5480:                                             ; preds = %5479
  br label %5481

5481:                                             ; preds = %5480
  br label %5482

5482:                                             ; preds = %5481
  %5483 = load i32, ptr @test_count, align 4, !tbaa !5
  %5484 = add nsw i32 %5483, 1
  store i32 %5484, ptr @test_count, align 4, !tbaa !5
  %5485 = load ptr, ptr %96, align 8, !tbaa !9
  %5486 = call i32 @s2n_encrypted_extensions_recv(ptr noundef %5485)
  %5487 = icmp eq i32 %5486, -1
  br i1 %5487, label %5488, label %5541

5488:                                             ; preds = %5482
  br label %5489

5489:                                             ; preds = %5488
  br label %5490

5490:                                             ; preds = %5489
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #9
  %5491 = call ptr @__errno_location() #10
  %5492 = load i32, ptr %5491, align 4, !tbaa !5
  store i32 %5492, ptr %114, align 4, !tbaa !5
  %5493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5494 = call i32 @s2n_print_stacktrace(ptr noundef %5493)
  %5495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5496 = trunc i8 %5495 to i1
  br i1 %5496, label %5497, label %5519

5497:                                             ; preds = %5490
  %5498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5499 = call i32 @fileno(ptr noundef %5498) #9
  %5500 = call i32 @isatty(i32 noundef %5499) #9
  %5501 = icmp ne i32 %5500, 0
  br i1 %5501, label %5502, label %5519

5502:                                             ; preds = %5497
  %5503 = load i32, ptr %114, align 4, !tbaa !5
  %5504 = call ptr @__errno_location() #10
  store i32 %5503, ptr %5504, align 4, !tbaa !5
  %5505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5506 = load i32, ptr @test_count, align 4, !tbaa !5
  %5507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5508 = load i32, ptr %5507, align 4, !tbaa !5
  %5509 = call ptr @s2n_strerror(i32 noundef %5508, ptr noundef @.str.4)
  %5510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5511 = load i32, ptr %5510, align 4, !tbaa !5
  %5512 = call ptr @s2n_strerror_debug(i32 noundef %5511, ptr noundef @.str.4)
  %5513 = call ptr @__errno_location() #10
  %5514 = load i32, ptr %5513, align 4, !tbaa !5
  %5515 = call ptr @strerror(i32 noundef %5514) #9
  %5516 = call ptr @__errno_location() #10
  %5517 = load i32, ptr %5516, align 4, !tbaa !5
  %5518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5505, ptr noundef @.str.2, i32 noundef %5506, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 238, ptr noundef %5509, ptr noundef %5512, ptr noundef %5515, i32 noundef %5517) #9
  br label %5536

5519:                                             ; preds = %5497, %5490
  %5520 = load i32, ptr %114, align 4, !tbaa !5
  %5521 = call ptr @__errno_location() #10
  store i32 %5520, ptr %5521, align 4, !tbaa !5
  %5522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5523 = load i32, ptr @test_count, align 4, !tbaa !5
  %5524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5525 = load i32, ptr %5524, align 4, !tbaa !5
  %5526 = call ptr @s2n_strerror(i32 noundef %5525, ptr noundef @.str.4)
  %5527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5528 = load i32, ptr %5527, align 4, !tbaa !5
  %5529 = call ptr @s2n_strerror_debug(i32 noundef %5528, ptr noundef @.str.4)
  %5530 = call ptr @__errno_location() #10
  %5531 = load i32, ptr %5530, align 4, !tbaa !5
  %5532 = call ptr @strerror(i32 noundef %5531) #9
  %5533 = call ptr @__errno_location() #10
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  %5535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5522, ptr noundef @.str.5, i32 noundef %5523, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 238, ptr noundef %5526, ptr noundef %5529, ptr noundef %5532, i32 noundef %5534) #9
  br label %5536

5536:                                             ; preds = %5519, %5502
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #9
  br label %5537

5537:                                             ; preds = %5536
  br label %5538

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

5539:                                             ; No predecessors!
  br label %5540

5540:                                             ; preds = %5539
  br label %5541

5541:                                             ; preds = %5540, %5482
  br label %5542

5542:                                             ; preds = %5541
  br label %5543

5543:                                             ; preds = %5542
  br label %5544

5544:                                             ; preds = %5543
  %5545 = load i32, ptr @test_count, align 4, !tbaa !5
  %5546 = add nsw i32 %5545, 1
  store i32 %5546, ptr @test_count, align 4, !tbaa !5
  %5547 = load ptr, ptr %96, align 8, !tbaa !9
  %5548 = getelementptr inbounds %struct.s2n_connection, ptr %5547, i32 0, i32 89
  %5549 = load i32, ptr %5548, align 8, !tbaa !18
  %5550 = icmp eq i32 %5549, 4
  br i1 %5550, label %5604, label %5551

5551:                                             ; preds = %5544
  br label %5552

5552:                                             ; preds = %5551
  br label %5553

5553:                                             ; preds = %5552
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #9
  %5554 = call ptr @__errno_location() #10
  %5555 = load i32, ptr %5554, align 4, !tbaa !5
  store i32 %5555, ptr %115, align 4, !tbaa !5
  %5556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5557 = call i32 @s2n_print_stacktrace(ptr noundef %5556)
  %5558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5559 = trunc i8 %5558 to i1
  br i1 %5559, label %5560, label %5582

5560:                                             ; preds = %5553
  %5561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5562 = call i32 @fileno(ptr noundef %5561) #9
  %5563 = call i32 @isatty(i32 noundef %5562) #9
  %5564 = icmp ne i32 %5563, 0
  br i1 %5564, label %5565, label %5582

5565:                                             ; preds = %5560
  %5566 = load i32, ptr %115, align 4, !tbaa !5
  %5567 = call ptr @__errno_location() #10
  store i32 %5566, ptr %5567, align 4, !tbaa !5
  %5568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5569 = load i32, ptr @test_count, align 4, !tbaa !5
  %5570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5571 = load i32, ptr %5570, align 4, !tbaa !5
  %5572 = call ptr @s2n_strerror(i32 noundef %5571, ptr noundef @.str.4)
  %5573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5574 = load i32, ptr %5573, align 4, !tbaa !5
  %5575 = call ptr @s2n_strerror_debug(i32 noundef %5574, ptr noundef @.str.4)
  %5576 = call ptr @__errno_location() #10
  %5577 = load i32, ptr %5576, align 4, !tbaa !5
  %5578 = call ptr @strerror(i32 noundef %5577) #9
  %5579 = call ptr @__errno_location() #10
  %5580 = load i32, ptr %5579, align 4, !tbaa !5
  %5581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5568, ptr noundef @.str.2, i32 noundef %5569, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 239, ptr noundef %5572, ptr noundef %5575, ptr noundef %5578, i32 noundef %5580) #9
  br label %5599

5582:                                             ; preds = %5560, %5553
  %5583 = load i32, ptr %115, align 4, !tbaa !5
  %5584 = call ptr @__errno_location() #10
  store i32 %5583, ptr %5584, align 4, !tbaa !5
  %5585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5586 = load i32, ptr @test_count, align 4, !tbaa !5
  %5587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5588 = load i32, ptr %5587, align 4, !tbaa !5
  %5589 = call ptr @s2n_strerror(i32 noundef %5588, ptr noundef @.str.4)
  %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_debug(i32 noundef %5591, ptr noundef @.str.4)
  %5593 = call ptr @__errno_location() #10
  %5594 = load i32, ptr %5593, align 4, !tbaa !5
  %5595 = call ptr @strerror(i32 noundef %5594) #9
  %5596 = call ptr @__errno_location() #10
  %5597 = load i32, ptr %5596, align 4, !tbaa !5
  %5598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5585, ptr noundef @.str.5, i32 noundef %5586, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 239, ptr noundef %5589, ptr noundef %5592, ptr noundef %5595, i32 noundef %5597) #9
  br label %5599

5599:                                             ; preds = %5582, %5565
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #9
  br label %5600

5600:                                             ; preds = %5599
  br label %5601

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

5602:                                             ; No predecessors!
  br label %5603

5603:                                             ; preds = %5602
  br label %5604

5604:                                             ; preds = %5603, %5544
  br label %5605

5605:                                             ; preds = %5604
  br label %5606

5606:                                             ; preds = %5605
  br label %5607

5607:                                             ; preds = %5606
  %5608 = load i32, ptr @test_count, align 4, !tbaa !5
  %5609 = add nsw i32 %5608, 1
  store i32 %5609, ptr @test_count, align 4, !tbaa !5
  %5610 = load ptr, ptr %102, align 8, !tbaa !9
  %5611 = getelementptr inbounds %struct.s2n_connection, ptr %5610, i32 0, i32 89
  %5612 = load i32, ptr %5611, align 8, !tbaa !18
  %5613 = icmp eq i32 %5612, 4
  br i1 %5613, label %5667, label %5614

5614:                                             ; preds = %5607
  br label %5615

5615:                                             ; preds = %5614
  br label %5616

5616:                                             ; preds = %5615
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #9
  %5617 = call ptr @__errno_location() #10
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  store i32 %5618, ptr %116, align 4, !tbaa !5
  %5619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5620 = call i32 @s2n_print_stacktrace(ptr noundef %5619)
  %5621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5622 = trunc i8 %5621 to i1
  br i1 %5622, label %5623, label %5645

5623:                                             ; preds = %5616
  %5624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5625 = call i32 @fileno(ptr noundef %5624) #9
  %5626 = call i32 @isatty(i32 noundef %5625) #9
  %5627 = icmp ne i32 %5626, 0
  br i1 %5627, label %5628, label %5645

5628:                                             ; preds = %5623
  %5629 = load i32, ptr %116, align 4, !tbaa !5
  %5630 = call ptr @__errno_location() #10
  store i32 %5629, ptr %5630, align 4, !tbaa !5
  %5631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5632 = load i32, ptr @test_count, align 4, !tbaa !5
  %5633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  %5635 = call ptr @s2n_strerror(i32 noundef %5634, ptr noundef @.str.4)
  %5636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5637 = load i32, ptr %5636, align 4, !tbaa !5
  %5638 = call ptr @s2n_strerror_debug(i32 noundef %5637, ptr noundef @.str.4)
  %5639 = call ptr @__errno_location() #10
  %5640 = load i32, ptr %5639, align 4, !tbaa !5
  %5641 = call ptr @strerror(i32 noundef %5640) #9
  %5642 = call ptr @__errno_location() #10
  %5643 = load i32, ptr %5642, align 4, !tbaa !5
  %5644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5631, ptr noundef @.str.2, i32 noundef %5632, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 240, ptr noundef %5635, ptr noundef %5638, ptr noundef %5641, i32 noundef %5643) #9
  br label %5662

5645:                                             ; preds = %5623, %5616
  %5646 = load i32, ptr %116, align 4, !tbaa !5
  %5647 = call ptr @__errno_location() #10
  store i32 %5646, ptr %5647, align 4, !tbaa !5
  %5648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5649 = load i32, ptr @test_count, align 4, !tbaa !5
  %5650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call ptr @s2n_strerror(i32 noundef %5651, ptr noundef @.str.4)
  %5653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5654 = load i32, ptr %5653, align 4, !tbaa !5
  %5655 = call ptr @s2n_strerror_debug(i32 noundef %5654, ptr noundef @.str.4)
  %5656 = call ptr @__errno_location() #10
  %5657 = load i32, ptr %5656, align 4, !tbaa !5
  %5658 = call ptr @strerror(i32 noundef %5657) #9
  %5659 = call ptr @__errno_location() #10
  %5660 = load i32, ptr %5659, align 4, !tbaa !5
  %5661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5648, ptr noundef @.str.5, i32 noundef %5649, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 240, ptr noundef %5652, ptr noundef %5655, ptr noundef %5658, i32 noundef %5660) #9
  br label %5662

5662:                                             ; preds = %5645, %5628
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #9
  br label %5663

5663:                                             ; preds = %5662
  br label %5664

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

5665:                                             ; No predecessors!
  br label %5666

5666:                                             ; preds = %5665
  br label %5667

5667:                                             ; preds = %5666, %5607
  br label %5668

5668:                                             ; preds = %5667
  br label %5669

5669:                                             ; preds = %5668
  br label %5670

5670:                                             ; preds = %5669
  %5671 = load i32, ptr @test_count, align 4, !tbaa !5
  %5672 = add nsw i32 %5671, 1
  store i32 %5672, ptr @test_count, align 4, !tbaa !5
  %5673 = load ptr, ptr %96, align 8, !tbaa !9
  %5674 = call i32 @s2n_connection_free(ptr noundef %5673)
  %5675 = icmp eq i32 %5674, -1
  br i1 %5675, label %5676, label %5729

5676:                                             ; preds = %5670
  br label %5677

5677:                                             ; preds = %5676
  br label %5678

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

5685:                                             ; preds = %5678
  %5686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5687 = call i32 @fileno(ptr noundef %5686) #9
  %5688 = call i32 @isatty(i32 noundef %5687) #9
  %5689 = icmp ne i32 %5688, 0
  br i1 %5689, label %5690, label %5707

5690:                                             ; preds = %5685
  %5691 = load i32, ptr %117, align 4, !tbaa !5
  %5692 = call ptr @__errno_location() #10
  store i32 %5691, ptr %5692, align 4, !tbaa !5
  %5693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5694 = load i32, ptr @test_count, align 4, !tbaa !5
  %5695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5696 = load i32, ptr %5695, align 4, !tbaa !5
  %5697 = call ptr @s2n_strerror(i32 noundef %5696, ptr noundef @.str.4)
  %5698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5699 = load i32, ptr %5698, align 4, !tbaa !5
  %5700 = call ptr @s2n_strerror_debug(i32 noundef %5699, ptr noundef @.str.4)
  %5701 = call ptr @__errno_location() #10
  %5702 = load i32, ptr %5701, align 4, !tbaa !5
  %5703 = call ptr @strerror(i32 noundef %5702) #9
  %5704 = call ptr @__errno_location() #10
  %5705 = load i32, ptr %5704, align 4, !tbaa !5
  %5706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5693, ptr noundef @.str.2, i32 noundef %5694, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 242, ptr noundef %5697, ptr noundef %5700, ptr noundef %5703, i32 noundef %5705) #9
  br label %5724

5707:                                             ; preds = %5685, %5678
  %5708 = load i32, ptr %117, align 4, !tbaa !5
  %5709 = call ptr @__errno_location() #10
  store i32 %5708, ptr %5709, align 4, !tbaa !5
  %5710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5711 = load i32, ptr @test_count, align 4, !tbaa !5
  %5712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5713 = load i32, ptr %5712, align 4, !tbaa !5
  %5714 = call ptr @s2n_strerror(i32 noundef %5713, ptr noundef @.str.4)
  %5715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5716 = load i32, ptr %5715, align 4, !tbaa !5
  %5717 = call ptr @s2n_strerror_debug(i32 noundef %5716, ptr noundef @.str.4)
  %5718 = call ptr @__errno_location() #10
  %5719 = load i32, ptr %5718, align 4, !tbaa !5
  %5720 = call ptr @strerror(i32 noundef %5719) #9
  %5721 = call ptr @__errno_location() #10
  %5722 = load i32, ptr %5721, align 4, !tbaa !5
  %5723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5710, ptr noundef @.str.5, i32 noundef %5711, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 242, ptr noundef %5714, ptr noundef %5717, ptr noundef %5720, i32 noundef %5722) #9
  br label %5724

5724:                                             ; preds = %5707, %5690
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #9
  br label %5725

5725:                                             ; preds = %5724
  br label %5726

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

5727:                                             ; No predecessors!
  br label %5728

5728:                                             ; preds = %5727
  br label %5729

5729:                                             ; preds = %5728, %5670
  br label %5730

5730:                                             ; preds = %5729
  br label %5731

5731:                                             ; preds = %5730
  br label %5732

5732:                                             ; preds = %5731
  %5733 = load i32, ptr @test_count, align 4, !tbaa !5
  %5734 = add nsw i32 %5733, 1
  store i32 %5734, ptr @test_count, align 4, !tbaa !5
  %5735 = load ptr, ptr %102, align 8, !tbaa !9
  %5736 = call i32 @s2n_connection_free(ptr noundef %5735)
  %5737 = icmp eq i32 %5736, -1
  br i1 %5737, label %5738, label %5791

5738:                                             ; preds = %5732
  br label %5739

5739:                                             ; preds = %5738
  br label %5740

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

5747:                                             ; preds = %5740
  %5748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5749 = call i32 @fileno(ptr noundef %5748) #9
  %5750 = call i32 @isatty(i32 noundef %5749) #9
  %5751 = icmp ne i32 %5750, 0
  br i1 %5751, label %5752, label %5769

5752:                                             ; preds = %5747
  %5753 = load i32, ptr %118, align 4, !tbaa !5
  %5754 = call ptr @__errno_location() #10
  store i32 %5753, ptr %5754, align 4, !tbaa !5
  %5755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5756 = load i32, ptr @test_count, align 4, !tbaa !5
  %5757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5758 = load i32, ptr %5757, align 4, !tbaa !5
  %5759 = call ptr @s2n_strerror(i32 noundef %5758, ptr noundef @.str.4)
  %5760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5761 = load i32, ptr %5760, align 4, !tbaa !5
  %5762 = call ptr @s2n_strerror_debug(i32 noundef %5761, ptr noundef @.str.4)
  %5763 = call ptr @__errno_location() #10
  %5764 = load i32, ptr %5763, align 4, !tbaa !5
  %5765 = call ptr @strerror(i32 noundef %5764) #9
  %5766 = call ptr @__errno_location() #10
  %5767 = load i32, ptr %5766, align 4, !tbaa !5
  %5768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5755, ptr noundef @.str.2, i32 noundef %5756, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5759, ptr noundef %5762, ptr noundef %5765, i32 noundef %5767) #9
  br label %5786

5769:                                             ; preds = %5747, %5740
  %5770 = load i32, ptr %118, align 4, !tbaa !5
  %5771 = call ptr @__errno_location() #10
  store i32 %5770, ptr %5771, align 4, !tbaa !5
  %5772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5773 = load i32, ptr @test_count, align 4, !tbaa !5
  %5774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5775 = load i32, ptr %5774, align 4, !tbaa !5
  %5776 = call ptr @s2n_strerror(i32 noundef %5775, ptr noundef @.str.4)
  %5777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5778 = load i32, ptr %5777, align 4, !tbaa !5
  %5779 = call ptr @s2n_strerror_debug(i32 noundef %5778, ptr noundef @.str.4)
  %5780 = call ptr @__errno_location() #10
  %5781 = load i32, ptr %5780, align 4, !tbaa !5
  %5782 = call ptr @strerror(i32 noundef %5781) #9
  %5783 = call ptr @__errno_location() #10
  %5784 = load i32, ptr %5783, align 4, !tbaa !5
  %5785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5772, ptr noundef @.str.5, i32 noundef %5773, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5776, ptr noundef %5779, ptr noundef %5782, i32 noundef %5784) #9
  br label %5786

5786:                                             ; preds = %5769, %5752
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #9
  br label %5787

5787:                                             ; preds = %5786
  br label %5788

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

5789:                                             ; No predecessors!
  br label %5790

5790:                                             ; preds = %5789
  br label %5791

5791:                                             ; preds = %5790, %5732
  br label %5792

5792:                                             ; preds = %5791
  br label %5793

5793:                                             ; preds = %5792
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #9
  %5794 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5794, ptr %119, align 8, !tbaa !9
  br label %5795

5795:                                             ; preds = %5793
  %5796 = load i32, ptr @test_count, align 4, !tbaa !5
  %5797 = add nsw i32 %5796, 1
  store i32 %5797, ptr @test_count, align 4, !tbaa !5
  %5798 = load ptr, ptr %119, align 8, !tbaa !9
  %5799 = icmp eq ptr %5798, null
  br i1 %5799, label %5800, label %5853

5800:                                             ; preds = %5795
  br label %5801

5801:                                             ; preds = %5800
  br label %5802

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

5809:                                             ; preds = %5802
  %5810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5811 = call i32 @fileno(ptr noundef %5810) #9
  %5812 = call i32 @isatty(i32 noundef %5811) #9
  %5813 = icmp ne i32 %5812, 0
  br i1 %5813, label %5814, label %5831

5814:                                             ; preds = %5809
  %5815 = load i32, ptr %120, align 4, !tbaa !5
  %5816 = call ptr @__errno_location() #10
  store i32 %5815, ptr %5816, align 4, !tbaa !5
  %5817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5818 = load i32, ptr @test_count, align 4, !tbaa !5
  %5819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5820 = load i32, ptr %5819, align 4, !tbaa !5
  %5821 = call ptr @s2n_strerror(i32 noundef %5820, ptr noundef @.str.4)
  %5822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5823 = load i32, ptr %5822, align 4, !tbaa !5
  %5824 = call ptr @s2n_strerror_debug(i32 noundef %5823, ptr noundef @.str.4)
  %5825 = call ptr @__errno_location() #10
  %5826 = load i32, ptr %5825, align 4, !tbaa !5
  %5827 = call ptr @strerror(i32 noundef %5826) #9
  %5828 = call ptr @__errno_location() #10
  %5829 = load i32, ptr %5828, align 4, !tbaa !5
  %5830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5817, ptr noundef @.str.2, i32 noundef %5818, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 259, ptr noundef %5821, ptr noundef %5824, ptr noundef %5827, i32 noundef %5829) #9
  br label %5848

5831:                                             ; preds = %5809, %5802
  %5832 = load i32, ptr %120, align 4, !tbaa !5
  %5833 = call ptr @__errno_location() #10
  store i32 %5832, ptr %5833, align 4, !tbaa !5
  %5834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5835 = load i32, ptr @test_count, align 4, !tbaa !5
  %5836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5837 = load i32, ptr %5836, align 4, !tbaa !5
  %5838 = call ptr @s2n_strerror(i32 noundef %5837, ptr noundef @.str.4)
  %5839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5840 = load i32, ptr %5839, align 4, !tbaa !5
  %5841 = call ptr @s2n_strerror_debug(i32 noundef %5840, ptr noundef @.str.4)
  %5842 = call ptr @__errno_location() #10
  %5843 = load i32, ptr %5842, align 4, !tbaa !5
  %5844 = call ptr @strerror(i32 noundef %5843) #9
  %5845 = call ptr @__errno_location() #10
  %5846 = load i32, ptr %5845, align 4, !tbaa !5
  %5847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5834, ptr noundef @.str.5, i32 noundef %5835, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 259, ptr noundef %5838, ptr noundef %5841, ptr noundef %5844, i32 noundef %5846) #9
  br label %5848

5848:                                             ; preds = %5831, %5814
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #9
  br label %5849

5849:                                             ; preds = %5848
  br label %5850

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

5851:                                             ; No predecessors!
  br label %5852

5852:                                             ; preds = %5851
  br label %5853

5853:                                             ; preds = %5852, %5795
  br label %5854

5854:                                             ; preds = %5853
  br label %5855

5855:                                             ; preds = %5854
  br label %5856

5856:                                             ; preds = %5855
  %5857 = load i32, ptr @test_count, align 4, !tbaa !5
  %5858 = add nsw i32 %5857, 1
  store i32 %5858, ptr @test_count, align 4, !tbaa !5
  %5859 = load ptr, ptr %119, align 8, !tbaa !9
  %5860 = load ptr, ptr %49, align 8, !tbaa !9
  %5861 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef %5859, i32 noundef 10, ptr noundef %5860)
  %5862 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %5861, ptr %5862, align 4
  %5863 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  %5864 = load i32, ptr %5863, align 4
  %5865 = call zeroext i1 @s2n_result_is_ok(i32 %5864)
  br i1 %5865, label %5919, label %5866

5866:                                             ; preds = %5856
  br label %5867

5867:                                             ; preds = %5866
  br label %5868

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

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

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

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

5914:                                             ; preds = %5897, %5880
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #9
  br label %5915

5915:                                             ; preds = %5914
  br label %5916

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

5917:                                             ; No predecessors!
  br label %5918

5918:                                             ; preds = %5917
  br label %5919

5919:                                             ; preds = %5918, %5856
  br label %5920

5920:                                             ; preds = %5919
  br label %5921

5921:                                             ; preds = %5920
  br label %5922

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

5929:                                             ; preds = %5922
  br label %5930

5930:                                             ; preds = %5929
  br label %5931

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

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

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

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

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

5978:                                             ; preds = %5977
  br label %5979

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

5980:                                             ; No predecessors!
  br label %5981

5981:                                             ; preds = %5980
  br label %5982

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

5983:                                             ; preds = %5982
  br label %5984

5984:                                             ; preds = %5983
  br label %5985

5985:                                             ; preds = %5984
  %5986 = load i32, ptr @test_count, align 4, !tbaa !5
  %5987 = add nsw i32 %5986, 1
  store i32 %5987, ptr @test_count, align 4, !tbaa !5
  %5988 = load ptr, ptr %119, align 8, !tbaa !9
  %5989 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %5988)
  %5990 = icmp eq i32 %5989, -1
  br i1 %5990, label %5991, label %6044

5991:                                             ; preds = %5985
  br label %5992

5992:                                             ; preds = %5991
  br label %5993

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

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

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

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

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

6040:                                             ; preds = %6039
  br label %6041

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

6042:                                             ; No predecessors!
  br label %6043

6043:                                             ; preds = %6042
  br label %6044

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

6045:                                             ; preds = %6044
  br label %6046

6046:                                             ; preds = %6045
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #9
  %6047 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6047, ptr %125, align 8, !tbaa !9
  br label %6048

6048:                                             ; preds = %6046
  %6049 = load i32, ptr @test_count, align 4, !tbaa !5
  %6050 = add nsw i32 %6049, 1
  store i32 %6050, ptr @test_count, align 4, !tbaa !5
  %6051 = load ptr, ptr %125, align 8, !tbaa !9
  %6052 = icmp eq ptr %6051, null
  br i1 %6052, label %6053, label %6106

6053:                                             ; preds = %6048
  br label %6054

6054:                                             ; preds = %6053
  br label %6055

6055:                                             ; preds = %6054
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #9
  %6056 = call ptr @__errno_location() #10
  %6057 = load i32, ptr %6056, align 4, !tbaa !5
  store i32 %6057, ptr %126, align 4, !tbaa !5
  %6058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6059 = call i32 @s2n_print_stacktrace(ptr noundef %6058)
  %6060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6061 = trunc i8 %6060 to i1
  br i1 %6061, label %6062, label %6084

6062:                                             ; preds = %6055
  %6063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6064 = call i32 @fileno(ptr noundef %6063) #9
  %6065 = call i32 @isatty(i32 noundef %6064) #9
  %6066 = icmp ne i32 %6065, 0
  br i1 %6066, label %6067, label %6084

6067:                                             ; preds = %6062
  %6068 = load i32, ptr %126, align 4, !tbaa !5
  %6069 = call ptr @__errno_location() #10
  store i32 %6068, ptr %6069, align 4, !tbaa !5
  %6070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6071 = load i32, ptr @test_count, align 4, !tbaa !5
  %6072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6073 = load i32, ptr %6072, align 4, !tbaa !5
  %6074 = call ptr @s2n_strerror(i32 noundef %6073, ptr noundef @.str.4)
  %6075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6076 = load i32, ptr %6075, align 4, !tbaa !5
  %6077 = call ptr @s2n_strerror_debug(i32 noundef %6076, ptr noundef @.str.4)
  %6078 = call ptr @__errno_location() #10
  %6079 = load i32, ptr %6078, align 4, !tbaa !5
  %6080 = call ptr @strerror(i32 noundef %6079) #9
  %6081 = call ptr @__errno_location() #10
  %6082 = load i32, ptr %6081, align 4, !tbaa !5
  %6083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6070, ptr noundef @.str.2, i32 noundef %6071, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 265, ptr noundef %6074, ptr noundef %6077, ptr noundef %6080, i32 noundef %6082) #9
  br label %6101

6084:                                             ; preds = %6062, %6055
  %6085 = load i32, ptr %126, align 4, !tbaa !5
  %6086 = call ptr @__errno_location() #10
  store i32 %6085, ptr %6086, align 4, !tbaa !5
  %6087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6088 = load i32, ptr @test_count, align 4, !tbaa !5
  %6089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6090 = load i32, ptr %6089, align 4, !tbaa !5
  %6091 = call ptr @s2n_strerror(i32 noundef %6090, ptr noundef @.str.4)
  %6092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6093 = load i32, ptr %6092, align 4, !tbaa !5
  %6094 = call ptr @s2n_strerror_debug(i32 noundef %6093, ptr noundef @.str.4)
  %6095 = call ptr @__errno_location() #10
  %6096 = load i32, ptr %6095, align 4, !tbaa !5
  %6097 = call ptr @strerror(i32 noundef %6096) #9
  %6098 = call ptr @__errno_location() #10
  %6099 = load i32, ptr %6098, align 4, !tbaa !5
  %6100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6087, ptr noundef @.str.5, i32 noundef %6088, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 265, ptr noundef %6091, ptr noundef %6094, ptr noundef %6097, i32 noundef %6099) #9
  br label %6101

6101:                                             ; preds = %6084, %6067
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #9
  br label %6102

6102:                                             ; preds = %6101
  br label %6103

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

6104:                                             ; No predecessors!
  br label %6105

6105:                                             ; preds = %6104
  br label %6106

6106:                                             ; preds = %6105, %6048
  br label %6107

6107:                                             ; preds = %6106
  br label %6108

6108:                                             ; preds = %6107
  br label %6109

6109:                                             ; preds = %6108
  %6110 = load i32, ptr @test_count, align 4, !tbaa !5
  %6111 = add nsw i32 %6110, 1
  store i32 %6111, ptr @test_count, align 4, !tbaa !5
  %6112 = load ptr, ptr %125, align 8, !tbaa !9
  %6113 = load ptr, ptr %49, align 8, !tbaa !9
  %6114 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef %6112, i32 noundef 10, ptr noundef %6113)
  %6115 = getelementptr inbounds %struct.s2n_result, ptr %127, i32 0, i32 0
  store i32 %6114, ptr %6115, align 4
  %6116 = getelementptr inbounds %struct.s2n_result, ptr %127, i32 0, i32 0
  %6117 = load i32, ptr %6116, align 4
  %6118 = call zeroext i1 @s2n_result_is_ok(i32 %6117)
  br i1 %6118, label %6172, label %6119

6119:                                             ; preds = %6109
  br label %6120

6120:                                             ; preds = %6119
  br label %6121

6121:                                             ; preds = %6120
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #9
  %6122 = call ptr @__errno_location() #10
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  store i32 %6123, ptr %128, align 4, !tbaa !5
  %6124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6125 = call i32 @s2n_print_stacktrace(ptr noundef %6124)
  %6126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6127 = trunc i8 %6126 to i1
  br i1 %6127, label %6128, label %6150

6128:                                             ; preds = %6121
  %6129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6130 = call i32 @fileno(ptr noundef %6129) #9
  %6131 = call i32 @isatty(i32 noundef %6130) #9
  %6132 = icmp ne i32 %6131, 0
  br i1 %6132, label %6133, label %6150

6133:                                             ; preds = %6128
  %6134 = load i32, ptr %128, align 4, !tbaa !5
  %6135 = call ptr @__errno_location() #10
  store i32 %6134, ptr %6135, align 4, !tbaa !5
  %6136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6137 = load i32, ptr @test_count, align 4, !tbaa !5
  %6138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6139 = load i32, ptr %6138, align 4, !tbaa !5
  %6140 = call ptr @s2n_strerror(i32 noundef %6139, ptr noundef @.str.4)
  %6141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6142 = load i32, ptr %6141, align 4, !tbaa !5
  %6143 = call ptr @s2n_strerror_debug(i32 noundef %6142, ptr noundef @.str.4)
  %6144 = call ptr @__errno_location() #10
  %6145 = load i32, ptr %6144, align 4, !tbaa !5
  %6146 = call ptr @strerror(i32 noundef %6145) #9
  %6147 = call ptr @__errno_location() #10
  %6148 = load i32, ptr %6147, align 4, !tbaa !5
  %6149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6136, ptr noundef @.str.2, i32 noundef %6137, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 266, ptr noundef %6140, ptr noundef %6143, ptr noundef %6146, i32 noundef %6148) #9
  br label %6167

6150:                                             ; preds = %6128, %6121
  %6151 = load i32, ptr %128, align 4, !tbaa !5
  %6152 = call ptr @__errno_location() #10
  store i32 %6151, ptr %6152, align 4, !tbaa !5
  %6153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6154 = load i32, ptr @test_count, align 4, !tbaa !5
  %6155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6156 = load i32, ptr %6155, align 4, !tbaa !5
  %6157 = call ptr @s2n_strerror(i32 noundef %6156, ptr noundef @.str.4)
  %6158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6159 = load i32, ptr %6158, align 4, !tbaa !5
  %6160 = call ptr @s2n_strerror_debug(i32 noundef %6159, ptr noundef @.str.4)
  %6161 = call ptr @__errno_location() #10
  %6162 = load i32, ptr %6161, align 4, !tbaa !5
  %6163 = call ptr @strerror(i32 noundef %6162) #9
  %6164 = call ptr @__errno_location() #10
  %6165 = load i32, ptr %6164, align 4, !tbaa !5
  %6166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6153, ptr noundef @.str.5, i32 noundef %6154, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 266, ptr noundef %6157, ptr noundef %6160, ptr noundef %6163, i32 noundef %6165) #9
  br label %6167

6167:                                             ; preds = %6150, %6133
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #9
  br label %6168

6168:                                             ; preds = %6167
  br label %6169

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

6170:                                             ; No predecessors!
  br label %6171

6171:                                             ; preds = %6170
  br label %6172

6172:                                             ; preds = %6171, %6109
  br label %6173

6173:                                             ; preds = %6172
  br label %6174

6174:                                             ; preds = %6173
  br label %6175

6175:                                             ; preds = %6174
  %6176 = load i32, ptr @test_count, align 4, !tbaa !5
  %6177 = add nsw i32 %6176, 1
  store i32 %6177, ptr @test_count, align 4, !tbaa !5
  %6178 = load ptr, ptr %125, align 8, !tbaa !9
  %6179 = load ptr, ptr %48, align 8, !tbaa !9
  %6180 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %6178, ptr noundef %6179)
  %6181 = icmp eq i32 %6180, -1
  br i1 %6181, label %6182, label %6235

6182:                                             ; preds = %6175
  br label %6183

6183:                                             ; preds = %6182
  br label %6184

6184:                                             ; preds = %6183
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #9
  %6185 = call ptr @__errno_location() #10
  %6186 = load i32, ptr %6185, align 4, !tbaa !5
  store i32 %6186, ptr %129, align 4, !tbaa !5
  %6187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6188 = call i32 @s2n_print_stacktrace(ptr noundef %6187)
  %6189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6190 = trunc i8 %6189 to i1
  br i1 %6190, label %6191, label %6213

6191:                                             ; preds = %6184
  %6192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6193 = call i32 @fileno(ptr noundef %6192) #9
  %6194 = call i32 @isatty(i32 noundef %6193) #9
  %6195 = icmp ne i32 %6194, 0
  br i1 %6195, label %6196, label %6213

6196:                                             ; preds = %6191
  %6197 = load i32, ptr %129, align 4, !tbaa !5
  %6198 = call ptr @__errno_location() #10
  store i32 %6197, ptr %6198, align 4, !tbaa !5
  %6199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6200 = load i32, ptr @test_count, align 4, !tbaa !5
  %6201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6202 = load i32, ptr %6201, align 4, !tbaa !5
  %6203 = call ptr @s2n_strerror(i32 noundef %6202, ptr noundef @.str.4)
  %6204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6205 = load i32, ptr %6204, align 4, !tbaa !5
  %6206 = call ptr @s2n_strerror_debug(i32 noundef %6205, ptr noundef @.str.4)
  %6207 = call ptr @__errno_location() #10
  %6208 = load i32, ptr %6207, align 4, !tbaa !5
  %6209 = call ptr @strerror(i32 noundef %6208) #9
  %6210 = call ptr @__errno_location() #10
  %6211 = load i32, ptr %6210, align 4, !tbaa !5
  %6212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6199, ptr noundef @.str.2, i32 noundef %6200, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 267, ptr noundef %6203, ptr noundef %6206, ptr noundef %6209, i32 noundef %6211) #9
  br label %6230

6213:                                             ; preds = %6191, %6184
  %6214 = load i32, ptr %129, align 4, !tbaa !5
  %6215 = call ptr @__errno_location() #10
  store i32 %6214, ptr %6215, align 4, !tbaa !5
  %6216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6217 = load i32, ptr @test_count, align 4, !tbaa !5
  %6218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6219 = load i32, ptr %6218, align 4, !tbaa !5
  %6220 = call ptr @s2n_strerror(i32 noundef %6219, ptr noundef @.str.4)
  %6221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6222 = load i32, ptr %6221, align 4, !tbaa !5
  %6223 = call ptr @s2n_strerror_debug(i32 noundef %6222, ptr noundef @.str.4)
  %6224 = call ptr @__errno_location() #10
  %6225 = load i32, ptr %6224, align 4, !tbaa !5
  %6226 = call ptr @strerror(i32 noundef %6225) #9
  %6227 = call ptr @__errno_location() #10
  %6228 = load i32, ptr %6227, align 4, !tbaa !5
  %6229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6216, ptr noundef @.str.5, i32 noundef %6217, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 267, ptr noundef %6220, ptr noundef %6223, ptr noundef %6226, i32 noundef %6228) #9
  br label %6230

6230:                                             ; preds = %6213, %6196
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #9
  br label %6231

6231:                                             ; preds = %6230
  br label %6232

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

6233:                                             ; No predecessors!
  br label %6234

6234:                                             ; preds = %6233
  br label %6235

6235:                                             ; preds = %6234, %6175
  br label %6236

6236:                                             ; preds = %6235
  br label %6237

6237:                                             ; preds = %6236
  br label %6238

6238:                                             ; preds = %6237
  %6239 = load i32, ptr @test_count, align 4, !tbaa !5
  %6240 = add nsw i32 %6239, 1
  store i32 %6240, ptr @test_count, align 4, !tbaa !5
  %6241 = load ptr, ptr %125, align 8, !tbaa !9
  %6242 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %6241)
  %6243 = icmp eq i32 %6242, -1
  br i1 %6243, label %6244, label %6297

6244:                                             ; preds = %6238
  br label %6245

6245:                                             ; preds = %6244
  br label %6246

6246:                                             ; preds = %6245
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #9
  %6247 = call ptr @__errno_location() #10
  %6248 = load i32, ptr %6247, align 4, !tbaa !5
  store i32 %6248, ptr %130, align 4, !tbaa !5
  %6249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6250 = call i32 @s2n_print_stacktrace(ptr noundef %6249)
  %6251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6252 = trunc i8 %6251 to i1
  br i1 %6252, label %6253, label %6275

6253:                                             ; preds = %6246
  %6254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6255 = call i32 @fileno(ptr noundef %6254) #9
  %6256 = call i32 @isatty(i32 noundef %6255) #9
  %6257 = icmp ne i32 %6256, 0
  br i1 %6257, label %6258, label %6275

6258:                                             ; preds = %6253
  %6259 = load i32, ptr %130, align 4, !tbaa !5
  %6260 = call ptr @__errno_location() #10
  store i32 %6259, ptr %6260, align 4, !tbaa !5
  %6261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6262 = load i32, ptr @test_count, align 4, !tbaa !5
  %6263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6264 = load i32, ptr %6263, align 4, !tbaa !5
  %6265 = call ptr @s2n_strerror(i32 noundef %6264, ptr noundef @.str.4)
  %6266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6267 = load i32, ptr %6266, align 4, !tbaa !5
  %6268 = call ptr @s2n_strerror_debug(i32 noundef %6267, ptr noundef @.str.4)
  %6269 = call ptr @__errno_location() #10
  %6270 = load i32, ptr %6269, align 4, !tbaa !5
  %6271 = call ptr @strerror(i32 noundef %6270) #9
  %6272 = call ptr @__errno_location() #10
  %6273 = load i32, ptr %6272, align 4, !tbaa !5
  %6274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6261, ptr noundef @.str.2, i32 noundef %6262, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 268, ptr noundef %6265, ptr noundef %6268, ptr noundef %6271, i32 noundef %6273) #9
  br label %6292

6275:                                             ; preds = %6253, %6246
  %6276 = load i32, ptr %130, align 4, !tbaa !5
  %6277 = call ptr @__errno_location() #10
  store i32 %6276, ptr %6277, align 4, !tbaa !5
  %6278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6279 = load i32, ptr @test_count, align 4, !tbaa !5
  %6280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6281 = load i32, ptr %6280, align 4, !tbaa !5
  %6282 = call ptr @s2n_strerror(i32 noundef %6281, ptr noundef @.str.4)
  %6283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6284 = load i32, ptr %6283, align 4, !tbaa !5
  %6285 = call ptr @s2n_strerror_debug(i32 noundef %6284, ptr noundef @.str.4)
  %6286 = call ptr @__errno_location() #10
  %6287 = load i32, ptr %6286, align 4, !tbaa !5
  %6288 = call ptr @strerror(i32 noundef %6287) #9
  %6289 = call ptr @__errno_location() #10
  %6290 = load i32, ptr %6289, align 4, !tbaa !5
  %6291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6278, ptr noundef @.str.5, i32 noundef %6279, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 268, ptr noundef %6282, ptr noundef %6285, ptr noundef %6288, i32 noundef %6290) #9
  br label %6292

6292:                                             ; preds = %6275, %6258
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #9
  br label %6293

6293:                                             ; preds = %6292
  br label %6294

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

6295:                                             ; No predecessors!
  br label %6296

6296:                                             ; preds = %6295
  br label %6297

6297:                                             ; preds = %6296, %6238
  br label %6298

6298:                                             ; preds = %6297
  br label %6299

6299:                                             ; preds = %6298
  br label %6300

6300:                                             ; preds = %6299
  %6301 = load i32, ptr @test_count, align 4, !tbaa !5
  %6302 = add nsw i32 %6301, 1
  store i32 %6302, ptr @test_count, align 4, !tbaa !5
  %6303 = load ptr, ptr %119, align 8, !tbaa !9
  %6304 = call i32 @s2n_client_hello_send(ptr noundef %6303)
  %6305 = icmp eq i32 %6304, -1
  br i1 %6305, label %6306, label %6359

6306:                                             ; preds = %6300
  br label %6307

6307:                                             ; preds = %6306
  br label %6308

6308:                                             ; preds = %6307
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #9
  %6309 = call ptr @__errno_location() #10
  %6310 = load i32, ptr %6309, align 4, !tbaa !5
  store i32 %6310, ptr %131, align 4, !tbaa !5
  %6311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6312 = call i32 @s2n_print_stacktrace(ptr noundef %6311)
  %6313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6314 = trunc i8 %6313 to i1
  br i1 %6314, label %6315, label %6337

6315:                                             ; preds = %6308
  %6316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6317 = call i32 @fileno(ptr noundef %6316) #9
  %6318 = call i32 @isatty(i32 noundef %6317) #9
  %6319 = icmp ne i32 %6318, 0
  br i1 %6319, label %6320, label %6337

6320:                                             ; preds = %6315
  %6321 = load i32, ptr %131, align 4, !tbaa !5
  %6322 = call ptr @__errno_location() #10
  store i32 %6321, ptr %6322, align 4, !tbaa !5
  %6323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6324 = load i32, ptr @test_count, align 4, !tbaa !5
  %6325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6326 = load i32, ptr %6325, align 4, !tbaa !5
  %6327 = call ptr @s2n_strerror(i32 noundef %6326, ptr noundef @.str.4)
  %6328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6329 = load i32, ptr %6328, align 4, !tbaa !5
  %6330 = call ptr @s2n_strerror_debug(i32 noundef %6329, ptr noundef @.str.4)
  %6331 = call ptr @__errno_location() #10
  %6332 = load i32, ptr %6331, align 4, !tbaa !5
  %6333 = call ptr @strerror(i32 noundef %6332) #9
  %6334 = call ptr @__errno_location() #10
  %6335 = load i32, ptr %6334, align 4, !tbaa !5
  %6336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6323, ptr noundef @.str.2, i32 noundef %6324, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 270, ptr noundef %6327, ptr noundef %6330, ptr noundef %6333, i32 noundef %6335) #9
  br label %6354

6337:                                             ; preds = %6315, %6308
  %6338 = load i32, ptr %131, align 4, !tbaa !5
  %6339 = call ptr @__errno_location() #10
  store i32 %6338, ptr %6339, align 4, !tbaa !5
  %6340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6341 = load i32, ptr @test_count, align 4, !tbaa !5
  %6342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6343 = load i32, ptr %6342, align 4, !tbaa !5
  %6344 = call ptr @s2n_strerror(i32 noundef %6343, ptr noundef @.str.4)
  %6345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6346 = load i32, ptr %6345, align 4, !tbaa !5
  %6347 = call ptr @s2n_strerror_debug(i32 noundef %6346, ptr noundef @.str.4)
  %6348 = call ptr @__errno_location() #10
  %6349 = load i32, ptr %6348, align 4, !tbaa !5
  %6350 = call ptr @strerror(i32 noundef %6349) #9
  %6351 = call ptr @__errno_location() #10
  %6352 = load i32, ptr %6351, align 4, !tbaa !5
  %6353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6340, ptr noundef @.str.5, i32 noundef %6341, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 270, ptr noundef %6344, ptr noundef %6347, ptr noundef %6350, i32 noundef %6352) #9
  br label %6354

6354:                                             ; preds = %6337, %6320
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #9
  br label %6355

6355:                                             ; preds = %6354
  br label %6356

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

6357:                                             ; No predecessors!
  br label %6358

6358:                                             ; preds = %6357
  br label %6359

6359:                                             ; preds = %6358, %6300
  br label %6360

6360:                                             ; preds = %6359
  br label %6361

6361:                                             ; preds = %6360
  br label %6362

6362:                                             ; preds = %6361
  %6363 = load i32, ptr @test_count, align 4, !tbaa !5
  %6364 = add nsw i32 %6363, 1
  store i32 %6364, ptr @test_count, align 4, !tbaa !5
  %6365 = load ptr, ptr %119, align 8, !tbaa !9
  %6366 = getelementptr inbounds %struct.s2n_connection, ptr %6365, i32 0, i32 52
  %6367 = getelementptr inbounds %struct.s2n_handshake, ptr %6366, i32 0, i32 0
  %6368 = load ptr, ptr %125, align 8, !tbaa !9
  %6369 = getelementptr inbounds %struct.s2n_connection, ptr %6368, i32 0, i32 52
  %6370 = getelementptr inbounds %struct.s2n_handshake, ptr %6369, i32 0, i32 0
  %6371 = load ptr, ptr %119, align 8, !tbaa !9
  %6372 = getelementptr inbounds %struct.s2n_connection, ptr %6371, i32 0, i32 52
  %6373 = getelementptr inbounds %struct.s2n_handshake, ptr %6372, i32 0, i32 0
  %6374 = getelementptr inbounds %struct.s2n_stuffer, ptr %6373, i32 0, i32 2
  %6375 = load i32, ptr %6374, align 4, !tbaa !53
  %6376 = load ptr, ptr %119, align 8, !tbaa !9
  %6377 = getelementptr inbounds %struct.s2n_connection, ptr %6376, i32 0, i32 52
  %6378 = getelementptr inbounds %struct.s2n_handshake, ptr %6377, i32 0, i32 0
  %6379 = getelementptr inbounds %struct.s2n_stuffer, ptr %6378, i32 0, i32 1
  %6380 = load i32, ptr %6379, align 8, !tbaa !54
  %6381 = sub i32 %6375, %6380
  %6382 = call i32 @s2n_stuffer_copy(ptr noundef %6367, ptr noundef %6370, i32 noundef %6381)
  %6383 = icmp eq i32 %6382, -1
  br i1 %6383, label %6384, label %6437

6384:                                             ; preds = %6362
  br label %6385

6385:                                             ; preds = %6384
  br label %6386

6386:                                             ; preds = %6385
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #9
  %6387 = call ptr @__errno_location() #10
  %6388 = load i32, ptr %6387, align 4, !tbaa !5
  store i32 %6388, ptr %132, align 4, !tbaa !5
  %6389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6390 = call i32 @s2n_print_stacktrace(ptr noundef %6389)
  %6391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6392 = trunc i8 %6391 to i1
  br i1 %6392, label %6393, label %6415

6393:                                             ; preds = %6386
  %6394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6395 = call i32 @fileno(ptr noundef %6394) #9
  %6396 = call i32 @isatty(i32 noundef %6395) #9
  %6397 = icmp ne i32 %6396, 0
  br i1 %6397, label %6398, label %6415

6398:                                             ; preds = %6393
  %6399 = load i32, ptr %132, align 4, !tbaa !5
  %6400 = call ptr @__errno_location() #10
  store i32 %6399, ptr %6400, align 4, !tbaa !5
  %6401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6402 = load i32, ptr @test_count, align 4, !tbaa !5
  %6403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6404 = load i32, ptr %6403, align 4, !tbaa !5
  %6405 = call ptr @s2n_strerror(i32 noundef %6404, ptr noundef @.str.4)
  %6406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6407 = load i32, ptr %6406, align 4, !tbaa !5
  %6408 = call ptr @s2n_strerror_debug(i32 noundef %6407, ptr noundef @.str.4)
  %6409 = call ptr @__errno_location() #10
  %6410 = load i32, ptr %6409, align 4, !tbaa !5
  %6411 = call ptr @strerror(i32 noundef %6410) #9
  %6412 = call ptr @__errno_location() #10
  %6413 = load i32, ptr %6412, align 4, !tbaa !5
  %6414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6401, ptr noundef @.str.2, i32 noundef %6402, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 272, ptr noundef %6405, ptr noundef %6408, ptr noundef %6411, i32 noundef %6413) #9
  br label %6432

6415:                                             ; preds = %6393, %6386
  %6416 = load i32, ptr %132, align 4, !tbaa !5
  %6417 = call ptr @__errno_location() #10
  store i32 %6416, ptr %6417, align 4, !tbaa !5
  %6418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6419 = load i32, ptr @test_count, align 4, !tbaa !5
  %6420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6421 = load i32, ptr %6420, align 4, !tbaa !5
  %6422 = call ptr @s2n_strerror(i32 noundef %6421, ptr noundef @.str.4)
  %6423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6424 = load i32, ptr %6423, align 4, !tbaa !5
  %6425 = call ptr @s2n_strerror_debug(i32 noundef %6424, ptr noundef @.str.4)
  %6426 = call ptr @__errno_location() #10
  %6427 = load i32, ptr %6426, align 4, !tbaa !5
  %6428 = call ptr @strerror(i32 noundef %6427) #9
  %6429 = call ptr @__errno_location() #10
  %6430 = load i32, ptr %6429, align 4, !tbaa !5
  %6431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6418, ptr noundef @.str.5, i32 noundef %6419, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 272, ptr noundef %6422, ptr noundef %6425, ptr noundef %6428, i32 noundef %6430) #9
  br label %6432

6432:                                             ; preds = %6415, %6398
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #9
  br label %6433

6433:                                             ; preds = %6432
  br label %6434

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

6435:                                             ; No predecessors!
  br label %6436

6436:                                             ; preds = %6435
  br label %6437

6437:                                             ; preds = %6436, %6362
  br label %6438

6438:                                             ; preds = %6437
  br label %6439

6439:                                             ; preds = %6438
  br label %6440

6440:                                             ; preds = %6439
  %6441 = load i32, ptr @test_count, align 4, !tbaa !5
  %6442 = add nsw i32 %6441, 1
  store i32 %6442, ptr @test_count, align 4, !tbaa !5
  %6443 = load ptr, ptr %125, align 8, !tbaa !9
  %6444 = call i32 @s2n_client_hello_recv(ptr noundef %6443)
  %6445 = icmp eq i32 %6444, -1
  br i1 %6445, label %6446, label %6499

6446:                                             ; preds = %6440
  br label %6447

6447:                                             ; preds = %6446
  br label %6448

6448:                                             ; preds = %6447
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #9
  %6449 = call ptr @__errno_location() #10
  %6450 = load i32, ptr %6449, align 4, !tbaa !5
  store i32 %6450, ptr %133, align 4, !tbaa !5
  %6451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6452 = call i32 @s2n_print_stacktrace(ptr noundef %6451)
  %6453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6454 = trunc i8 %6453 to i1
  br i1 %6454, label %6455, label %6477

6455:                                             ; preds = %6448
  %6456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6457 = call i32 @fileno(ptr noundef %6456) #9
  %6458 = call i32 @isatty(i32 noundef %6457) #9
  %6459 = icmp ne i32 %6458, 0
  br i1 %6459, label %6460, label %6477

6460:                                             ; preds = %6455
  %6461 = load i32, ptr %133, align 4, !tbaa !5
  %6462 = call ptr @__errno_location() #10
  store i32 %6461, ptr %6462, align 4, !tbaa !5
  %6463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6464 = load i32, ptr @test_count, align 4, !tbaa !5
  %6465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6466 = load i32, ptr %6465, align 4, !tbaa !5
  %6467 = call ptr @s2n_strerror(i32 noundef %6466, ptr noundef @.str.4)
  %6468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6469 = load i32, ptr %6468, align 4, !tbaa !5
  %6470 = call ptr @s2n_strerror_debug(i32 noundef %6469, ptr noundef @.str.4)
  %6471 = call ptr @__errno_location() #10
  %6472 = load i32, ptr %6471, align 4, !tbaa !5
  %6473 = call ptr @strerror(i32 noundef %6472) #9
  %6474 = call ptr @__errno_location() #10
  %6475 = load i32, ptr %6474, align 4, !tbaa !5
  %6476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6463, ptr noundef @.str.2, i32 noundef %6464, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 273, ptr noundef %6467, ptr noundef %6470, ptr noundef %6473, i32 noundef %6475) #9
  br label %6494

6477:                                             ; preds = %6455, %6448
  %6478 = load i32, ptr %133, align 4, !tbaa !5
  %6479 = call ptr @__errno_location() #10
  store i32 %6478, ptr %6479, align 4, !tbaa !5
  %6480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6481 = load i32, ptr @test_count, align 4, !tbaa !5
  %6482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6483 = load i32, ptr %6482, align 4, !tbaa !5
  %6484 = call ptr @s2n_strerror(i32 noundef %6483, ptr noundef @.str.4)
  %6485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6486 = load i32, ptr %6485, align 4, !tbaa !5
  %6487 = call ptr @s2n_strerror_debug(i32 noundef %6486, ptr noundef @.str.4)
  %6488 = call ptr @__errno_location() #10
  %6489 = load i32, ptr %6488, align 4, !tbaa !5
  %6490 = call ptr @strerror(i32 noundef %6489) #9
  %6491 = call ptr @__errno_location() #10
  %6492 = load i32, ptr %6491, align 4, !tbaa !5
  %6493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6480, ptr noundef @.str.5, i32 noundef %6481, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 273, ptr noundef %6484, ptr noundef %6487, ptr noundef %6490, i32 noundef %6492) #9
  br label %6494

6494:                                             ; preds = %6477, %6460
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #9
  br label %6495

6495:                                             ; preds = %6494
  br label %6496

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

6497:                                             ; No predecessors!
  br label %6498

6498:                                             ; preds = %6497
  br label %6499

6499:                                             ; preds = %6498, %6440
  br label %6500

6500:                                             ; preds = %6499
  br label %6501

6501:                                             ; preds = %6500
  br label %6502

6502:                                             ; preds = %6501
  %6503 = load i32, ptr @test_count, align 4, !tbaa !5
  %6504 = add nsw i32 %6503, 1
  store i32 %6504, ptr @test_count, align 4, !tbaa !5
  %6505 = load ptr, ptr %119, align 8, !tbaa !9
  %6506 = getelementptr inbounds %struct.s2n_connection, ptr %6505, i32 0, i32 89
  %6507 = load i32, ptr %6506, align 8, !tbaa !18
  %6508 = icmp eq i32 %6507, 1
  br i1 %6508, label %6562, label %6509

6509:                                             ; preds = %6502
  br label %6510

6510:                                             ; preds = %6509
  br label %6511

6511:                                             ; preds = %6510
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #9
  %6512 = call ptr @__errno_location() #10
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  store i32 %6513, ptr %134, align 4, !tbaa !5
  %6514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6515 = call i32 @s2n_print_stacktrace(ptr noundef %6514)
  %6516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6517 = trunc i8 %6516 to i1
  br i1 %6517, label %6518, label %6540

6518:                                             ; preds = %6511
  %6519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6520 = call i32 @fileno(ptr noundef %6519) #9
  %6521 = call i32 @isatty(i32 noundef %6520) #9
  %6522 = icmp ne i32 %6521, 0
  br i1 %6522, label %6523, label %6540

6523:                                             ; preds = %6518
  %6524 = load i32, ptr %134, align 4, !tbaa !5
  %6525 = call ptr @__errno_location() #10
  store i32 %6524, ptr %6525, align 4, !tbaa !5
  %6526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6527 = load i32, ptr @test_count, align 4, !tbaa !5
  %6528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6529 = load i32, ptr %6528, align 4, !tbaa !5
  %6530 = call ptr @s2n_strerror(i32 noundef %6529, ptr noundef @.str.4)
  %6531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6532 = load i32, ptr %6531, align 4, !tbaa !5
  %6533 = call ptr @s2n_strerror_debug(i32 noundef %6532, ptr noundef @.str.4)
  %6534 = call ptr @__errno_location() #10
  %6535 = load i32, ptr %6534, align 4, !tbaa !5
  %6536 = call ptr @strerror(i32 noundef %6535) #9
  %6537 = call ptr @__errno_location() #10
  %6538 = load i32, ptr %6537, align 4, !tbaa !5
  %6539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6526, ptr noundef @.str.2, i32 noundef %6527, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 274, ptr noundef %6530, ptr noundef %6533, ptr noundef %6536, i32 noundef %6538) #9
  br label %6557

6540:                                             ; preds = %6518, %6511
  %6541 = load i32, ptr %134, align 4, !tbaa !5
  %6542 = call ptr @__errno_location() #10
  store i32 %6541, ptr %6542, align 4, !tbaa !5
  %6543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6544 = load i32, ptr @test_count, align 4, !tbaa !5
  %6545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6546 = load i32, ptr %6545, align 4, !tbaa !5
  %6547 = call ptr @s2n_strerror(i32 noundef %6546, ptr noundef @.str.4)
  %6548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6549 = load i32, ptr %6548, align 4, !tbaa !5
  %6550 = call ptr @s2n_strerror_debug(i32 noundef %6549, ptr noundef @.str.4)
  %6551 = call ptr @__errno_location() #10
  %6552 = load i32, ptr %6551, align 4, !tbaa !5
  %6553 = call ptr @strerror(i32 noundef %6552) #9
  %6554 = call ptr @__errno_location() #10
  %6555 = load i32, ptr %6554, align 4, !tbaa !5
  %6556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6543, ptr noundef @.str.5, i32 noundef %6544, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 274, ptr noundef %6547, ptr noundef %6550, ptr noundef %6553, i32 noundef %6555) #9
  br label %6557

6557:                                             ; preds = %6540, %6523
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #9
  br label %6558

6558:                                             ; preds = %6557
  br label %6559

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

6560:                                             ; No predecessors!
  br label %6561

6561:                                             ; preds = %6560
  br label %6562

6562:                                             ; preds = %6561, %6502
  br label %6563

6563:                                             ; preds = %6562
  br label %6564

6564:                                             ; preds = %6563
  %6565 = load ptr, ptr %125, align 8, !tbaa !9
  %6566 = getelementptr inbounds %struct.s2n_connection, ptr %6565, i32 0, i32 89
  store i32 4, ptr %6566, align 8, !tbaa !18
  br label %6567

6567:                                             ; preds = %6564
  %6568 = load i32, ptr @test_count, align 4, !tbaa !5
  %6569 = add nsw i32 %6568, 1
  store i32 %6569, ptr @test_count, align 4, !tbaa !5
  %6570 = load ptr, ptr %125, align 8, !tbaa !9
  %6571 = call i32 @s2n_set_hello_retry_required(ptr noundef %6570)
  %6572 = icmp eq i32 %6571, -1
  br i1 %6572, label %6573, label %6626

6573:                                             ; preds = %6567
  br label %6574

6574:                                             ; preds = %6573
  br label %6575

6575:                                             ; preds = %6574
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #9
  %6576 = call ptr @__errno_location() #10
  %6577 = load i32, ptr %6576, align 4, !tbaa !5
  store i32 %6577, ptr %135, align 4, !tbaa !5
  %6578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6579 = call i32 @s2n_print_stacktrace(ptr noundef %6578)
  %6580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6581 = trunc i8 %6580 to i1
  br i1 %6581, label %6582, label %6604

6582:                                             ; preds = %6575
  %6583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6584 = call i32 @fileno(ptr noundef %6583) #9
  %6585 = call i32 @isatty(i32 noundef %6584) #9
  %6586 = icmp ne i32 %6585, 0
  br i1 %6586, label %6587, label %6604

6587:                                             ; preds = %6582
  %6588 = load i32, ptr %135, align 4, !tbaa !5
  %6589 = call ptr @__errno_location() #10
  store i32 %6588, ptr %6589, align 4, !tbaa !5
  %6590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6591 = load i32, ptr @test_count, align 4, !tbaa !5
  %6592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6593 = load i32, ptr %6592, align 4, !tbaa !5
  %6594 = call ptr @s2n_strerror(i32 noundef %6593, ptr noundef @.str.4)
  %6595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6596 = load i32, ptr %6595, align 4, !tbaa !5
  %6597 = call ptr @s2n_strerror_debug(i32 noundef %6596, ptr noundef @.str.4)
  %6598 = call ptr @__errno_location() #10
  %6599 = load i32, ptr %6598, align 4, !tbaa !5
  %6600 = call ptr @strerror(i32 noundef %6599) #9
  %6601 = call ptr @__errno_location() #10
  %6602 = load i32, ptr %6601, align 4, !tbaa !5
  %6603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6590, ptr noundef @.str.2, i32 noundef %6591, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 279, ptr noundef %6594, ptr noundef %6597, ptr noundef %6600, i32 noundef %6602) #9
  br label %6621

6604:                                             ; preds = %6582, %6575
  %6605 = load i32, ptr %135, align 4, !tbaa !5
  %6606 = call ptr @__errno_location() #10
  store i32 %6605, ptr %6606, align 4, !tbaa !5
  %6607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6608 = load i32, ptr @test_count, align 4, !tbaa !5
  %6609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6610 = load i32, ptr %6609, align 4, !tbaa !5
  %6611 = call ptr @s2n_strerror(i32 noundef %6610, ptr noundef @.str.4)
  %6612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6613 = load i32, ptr %6612, align 4, !tbaa !5
  %6614 = call ptr @s2n_strerror_debug(i32 noundef %6613, ptr noundef @.str.4)
  %6615 = call ptr @__errno_location() #10
  %6616 = load i32, ptr %6615, align 4, !tbaa !5
  %6617 = call ptr @strerror(i32 noundef %6616) #9
  %6618 = call ptr @__errno_location() #10
  %6619 = load i32, ptr %6618, align 4, !tbaa !5
  %6620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6607, ptr noundef @.str.5, i32 noundef %6608, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 279, ptr noundef %6611, ptr noundef %6614, ptr noundef %6617, i32 noundef %6619) #9
  br label %6621

6621:                                             ; preds = %6604, %6587
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #9
  br label %6622

6622:                                             ; preds = %6621
  br label %6623

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

6624:                                             ; No predecessors!
  br label %6625

6625:                                             ; preds = %6624
  br label %6626

6626:                                             ; preds = %6625, %6567
  br label %6627

6627:                                             ; preds = %6626
  br label %6628

6628:                                             ; preds = %6627
  %6629 = load ptr, ptr %125, align 8, !tbaa !9
  %6630 = getelementptr inbounds %struct.s2n_connection, ptr %6629, i32 0, i32 52
  %6631 = getelementptr inbounds %struct.s2n_handshake, ptr %6630, i32 0, i32 7
  store i32 2, ptr %6631, align 8, !tbaa !55
  %6632 = load ptr, ptr %119, align 8, !tbaa !9
  %6633 = getelementptr inbounds %struct.s2n_connection, ptr %6632, i32 0, i32 52
  %6634 = getelementptr inbounds %struct.s2n_handshake, ptr %6633, i32 0, i32 7
  store i32 2, ptr %6634, align 8, !tbaa !55
  %6635 = load ptr, ptr %119, align 8, !tbaa !9
  %6636 = getelementptr inbounds %struct.s2n_connection, ptr %6635, i32 0, i32 31
  %6637 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6636, i32 0, i32 3
  %6638 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6637, i32 0, i32 0
  store ptr @s2n_ecc_curve_secp521r1, ptr %6638, align 8, !tbaa !56
  br label %6639

6639:                                             ; preds = %6628
  %6640 = load i32, ptr @test_count, align 4, !tbaa !5
  %6641 = add nsw i32 %6640, 1
  store i32 %6641, ptr @test_count, align 4, !tbaa !5
  %6642 = load ptr, ptr %125, align 8, !tbaa !9
  %6643 = call i32 @s2n_server_hello_retry_send(ptr noundef %6642)
  %6644 = icmp eq i32 %6643, -1
  br i1 %6644, label %6645, label %6698

6645:                                             ; preds = %6639
  br label %6646

6646:                                             ; preds = %6645
  br label %6647

6647:                                             ; preds = %6646
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #9
  %6648 = call ptr @__errno_location() #10
  %6649 = load i32, ptr %6648, align 4, !tbaa !5
  store i32 %6649, ptr %136, align 4, !tbaa !5
  %6650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6651 = call i32 @s2n_print_stacktrace(ptr noundef %6650)
  %6652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6653 = trunc i8 %6652 to i1
  br i1 %6653, label %6654, label %6676

6654:                                             ; preds = %6647
  %6655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6656 = call i32 @fileno(ptr noundef %6655) #9
  %6657 = call i32 @isatty(i32 noundef %6656) #9
  %6658 = icmp ne i32 %6657, 0
  br i1 %6658, label %6659, label %6676

6659:                                             ; preds = %6654
  %6660 = load i32, ptr %136, align 4, !tbaa !5
  %6661 = call ptr @__errno_location() #10
  store i32 %6660, ptr %6661, align 4, !tbaa !5
  %6662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6663 = load i32, ptr @test_count, align 4, !tbaa !5
  %6664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6665 = load i32, ptr %6664, align 4, !tbaa !5
  %6666 = call ptr @s2n_strerror(i32 noundef %6665, ptr noundef @.str.4)
  %6667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6668 = load i32, ptr %6667, align 4, !tbaa !5
  %6669 = call ptr @s2n_strerror_debug(i32 noundef %6668, ptr noundef @.str.4)
  %6670 = call ptr @__errno_location() #10
  %6671 = load i32, ptr %6670, align 4, !tbaa !5
  %6672 = call ptr @strerror(i32 noundef %6671) #9
  %6673 = call ptr @__errno_location() #10
  %6674 = load i32, ptr %6673, align 4, !tbaa !5
  %6675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6662, ptr noundef @.str.2, i32 noundef %6663, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 286, ptr noundef %6666, ptr noundef %6669, ptr noundef %6672, i32 noundef %6674) #9
  br label %6693

6676:                                             ; preds = %6654, %6647
  %6677 = load i32, ptr %136, align 4, !tbaa !5
  %6678 = call ptr @__errno_location() #10
  store i32 %6677, ptr %6678, align 4, !tbaa !5
  %6679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6680 = load i32, ptr @test_count, align 4, !tbaa !5
  %6681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  %6683 = call ptr @s2n_strerror(i32 noundef %6682, ptr noundef @.str.4)
  %6684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6685 = load i32, ptr %6684, align 4, !tbaa !5
  %6686 = call ptr @s2n_strerror_debug(i32 noundef %6685, ptr noundef @.str.4)
  %6687 = call ptr @__errno_location() #10
  %6688 = load i32, ptr %6687, align 4, !tbaa !5
  %6689 = call ptr @strerror(i32 noundef %6688) #9
  %6690 = call ptr @__errno_location() #10
  %6691 = load i32, ptr %6690, align 4, !tbaa !5
  %6692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6679, ptr noundef @.str.5, i32 noundef %6680, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 286, ptr noundef %6683, ptr noundef %6686, ptr noundef %6689, i32 noundef %6691) #9
  br label %6693

6693:                                             ; preds = %6676, %6659
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #9
  br label %6694

6694:                                             ; preds = %6693
  br label %6695

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

6696:                                             ; No predecessors!
  br label %6697

6697:                                             ; preds = %6696
  br label %6698

6698:                                             ; preds = %6697, %6639
  br label %6699

6699:                                             ; preds = %6698
  br label %6700

6700:                                             ; preds = %6699
  br label %6701

6701:                                             ; preds = %6700
  %6702 = load i32, ptr @test_count, align 4, !tbaa !5
  %6703 = add nsw i32 %6702, 1
  store i32 %6703, ptr @test_count, align 4, !tbaa !5
  %6704 = load ptr, ptr %125, align 8, !tbaa !9
  %6705 = getelementptr inbounds %struct.s2n_connection, ptr %6704, i32 0, i32 52
  %6706 = getelementptr inbounds %struct.s2n_handshake, ptr %6705, i32 0, i32 0
  %6707 = load ptr, ptr %119, align 8, !tbaa !9
  %6708 = getelementptr inbounds %struct.s2n_connection, ptr %6707, i32 0, i32 52
  %6709 = getelementptr inbounds %struct.s2n_handshake, ptr %6708, i32 0, i32 0
  %6710 = load ptr, ptr %125, align 8, !tbaa !9
  %6711 = getelementptr inbounds %struct.s2n_connection, ptr %6710, i32 0, i32 52
  %6712 = getelementptr inbounds %struct.s2n_handshake, ptr %6711, i32 0, i32 0
  %6713 = getelementptr inbounds %struct.s2n_stuffer, ptr %6712, i32 0, i32 2
  %6714 = load i32, ptr %6713, align 4, !tbaa !53
  %6715 = load ptr, ptr %125, align 8, !tbaa !9
  %6716 = getelementptr inbounds %struct.s2n_connection, ptr %6715, i32 0, i32 52
  %6717 = getelementptr inbounds %struct.s2n_handshake, ptr %6716, i32 0, i32 0
  %6718 = getelementptr inbounds %struct.s2n_stuffer, ptr %6717, i32 0, i32 1
  %6719 = load i32, ptr %6718, align 8, !tbaa !54
  %6720 = sub i32 %6714, %6719
  %6721 = call i32 @s2n_stuffer_copy(ptr noundef %6706, ptr noundef %6709, i32 noundef %6720)
  %6722 = icmp eq i32 %6721, -1
  br i1 %6722, label %6723, label %6776

6723:                                             ; preds = %6701
  br label %6724

6724:                                             ; preds = %6723
  br label %6725

6725:                                             ; preds = %6724
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #9
  %6726 = call ptr @__errno_location() #10
  %6727 = load i32, ptr %6726, align 4, !tbaa !5
  store i32 %6727, ptr %137, align 4, !tbaa !5
  %6728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6729 = call i32 @s2n_print_stacktrace(ptr noundef %6728)
  %6730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6731 = trunc i8 %6730 to i1
  br i1 %6731, label %6732, label %6754

6732:                                             ; preds = %6725
  %6733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6734 = call i32 @fileno(ptr noundef %6733) #9
  %6735 = call i32 @isatty(i32 noundef %6734) #9
  %6736 = icmp ne i32 %6735, 0
  br i1 %6736, label %6737, label %6754

6737:                                             ; preds = %6732
  %6738 = load i32, ptr %137, align 4, !tbaa !5
  %6739 = call ptr @__errno_location() #10
  store i32 %6738, ptr %6739, align 4, !tbaa !5
  %6740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6741 = load i32, ptr @test_count, align 4, !tbaa !5
  %6742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6743 = load i32, ptr %6742, align 4, !tbaa !5
  %6744 = call ptr @s2n_strerror(i32 noundef %6743, ptr noundef @.str.4)
  %6745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6746 = load i32, ptr %6745, align 4, !tbaa !5
  %6747 = call ptr @s2n_strerror_debug(i32 noundef %6746, ptr noundef @.str.4)
  %6748 = call ptr @__errno_location() #10
  %6749 = load i32, ptr %6748, align 4, !tbaa !5
  %6750 = call ptr @strerror(i32 noundef %6749) #9
  %6751 = call ptr @__errno_location() #10
  %6752 = load i32, ptr %6751, align 4, !tbaa !5
  %6753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6740, ptr noundef @.str.2, i32 noundef %6741, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 288, ptr noundef %6744, ptr noundef %6747, ptr noundef %6750, i32 noundef %6752) #9
  br label %6771

6754:                                             ; preds = %6732, %6725
  %6755 = load i32, ptr %137, align 4, !tbaa !5
  %6756 = call ptr @__errno_location() #10
  store i32 %6755, ptr %6756, align 4, !tbaa !5
  %6757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6758 = load i32, ptr @test_count, align 4, !tbaa !5
  %6759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  %6761 = call ptr @s2n_strerror(i32 noundef %6760, ptr noundef @.str.4)
  %6762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6763 = load i32, ptr %6762, align 4, !tbaa !5
  %6764 = call ptr @s2n_strerror_debug(i32 noundef %6763, ptr noundef @.str.4)
  %6765 = call ptr @__errno_location() #10
  %6766 = load i32, ptr %6765, align 4, !tbaa !5
  %6767 = call ptr @strerror(i32 noundef %6766) #9
  %6768 = call ptr @__errno_location() #10
  %6769 = load i32, ptr %6768, align 4, !tbaa !5
  %6770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6757, ptr noundef @.str.5, i32 noundef %6758, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 288, ptr noundef %6761, ptr noundef %6764, ptr noundef %6767, i32 noundef %6769) #9
  br label %6771

6771:                                             ; preds = %6754, %6737
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #9
  br label %6772

6772:                                             ; preds = %6771
  br label %6773

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

6774:                                             ; No predecessors!
  br label %6775

6775:                                             ; preds = %6774
  br label %6776

6776:                                             ; preds = %6775, %6701
  br label %6777

6777:                                             ; preds = %6776
  br label %6778

6778:                                             ; preds = %6777
  br label %6779

6779:                                             ; preds = %6778
  %6780 = load i32, ptr @test_count, align 4, !tbaa !5
  %6781 = add nsw i32 %6780, 1
  store i32 %6781, ptr @test_count, align 4, !tbaa !5
  %6782 = load ptr, ptr %119, align 8, !tbaa !9
  %6783 = call i32 @s2n_server_hello_recv(ptr noundef %6782)
  %6784 = icmp eq i32 %6783, -1
  br i1 %6784, label %6785, label %6838

6785:                                             ; preds = %6779
  br label %6786

6786:                                             ; preds = %6785
  br label %6787

6787:                                             ; preds = %6786
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #9
  %6788 = call ptr @__errno_location() #10
  %6789 = load i32, ptr %6788, align 4, !tbaa !5
  store i32 %6789, ptr %138, align 4, !tbaa !5
  %6790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6791 = call i32 @s2n_print_stacktrace(ptr noundef %6790)
  %6792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6793 = trunc i8 %6792 to i1
  br i1 %6793, label %6794, label %6816

6794:                                             ; preds = %6787
  %6795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6796 = call i32 @fileno(ptr noundef %6795) #9
  %6797 = call i32 @isatty(i32 noundef %6796) #9
  %6798 = icmp ne i32 %6797, 0
  br i1 %6798, label %6799, label %6816

6799:                                             ; preds = %6794
  %6800 = load i32, ptr %138, align 4, !tbaa !5
  %6801 = call ptr @__errno_location() #10
  store i32 %6800, ptr %6801, align 4, !tbaa !5
  %6802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6803 = load i32, ptr @test_count, align 4, !tbaa !5
  %6804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6805 = load i32, ptr %6804, align 4, !tbaa !5
  %6806 = call ptr @s2n_strerror(i32 noundef %6805, ptr noundef @.str.4)
  %6807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6808 = load i32, ptr %6807, align 4, !tbaa !5
  %6809 = call ptr @s2n_strerror_debug(i32 noundef %6808, ptr noundef @.str.4)
  %6810 = call ptr @__errno_location() #10
  %6811 = load i32, ptr %6810, align 4, !tbaa !5
  %6812 = call ptr @strerror(i32 noundef %6811) #9
  %6813 = call ptr @__errno_location() #10
  %6814 = load i32, ptr %6813, align 4, !tbaa !5
  %6815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6802, ptr noundef @.str.2, i32 noundef %6803, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 289, ptr noundef %6806, ptr noundef %6809, ptr noundef %6812, i32 noundef %6814) #9
  br label %6833

6816:                                             ; preds = %6794, %6787
  %6817 = load i32, ptr %138, align 4, !tbaa !5
  %6818 = call ptr @__errno_location() #10
  store i32 %6817, ptr %6818, align 4, !tbaa !5
  %6819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6820 = load i32, ptr @test_count, align 4, !tbaa !5
  %6821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6822 = load i32, ptr %6821, align 4, !tbaa !5
  %6823 = call ptr @s2n_strerror(i32 noundef %6822, ptr noundef @.str.4)
  %6824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6825 = load i32, ptr %6824, align 4, !tbaa !5
  %6826 = call ptr @s2n_strerror_debug(i32 noundef %6825, ptr noundef @.str.4)
  %6827 = call ptr @__errno_location() #10
  %6828 = load i32, ptr %6827, align 4, !tbaa !5
  %6829 = call ptr @strerror(i32 noundef %6828) #9
  %6830 = call ptr @__errno_location() #10
  %6831 = load i32, ptr %6830, align 4, !tbaa !5
  %6832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6819, ptr noundef @.str.5, i32 noundef %6820, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 289, ptr noundef %6823, ptr noundef %6826, ptr noundef %6829, i32 noundef %6831) #9
  br label %6833

6833:                                             ; preds = %6816, %6799
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #9
  br label %6834

6834:                                             ; preds = %6833
  br label %6835

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

6836:                                             ; No predecessors!
  br label %6837

6837:                                             ; preds = %6836
  br label %6838

6838:                                             ; preds = %6837, %6779
  br label %6839

6839:                                             ; preds = %6838
  br label %6840

6840:                                             ; preds = %6839
  br label %6841

6841:                                             ; preds = %6840
  %6842 = load i32, ptr @test_count, align 4, !tbaa !5
  %6843 = add nsw i32 %6842, 1
  store i32 %6843, ptr @test_count, align 4, !tbaa !5
  %6844 = load ptr, ptr %119, align 8, !tbaa !9
  %6845 = getelementptr inbounds %struct.s2n_connection, ptr %6844, i32 0, i32 89
  %6846 = load i32, ptr %6845, align 8, !tbaa !18
  %6847 = icmp eq i32 %6846, 4
  br i1 %6847, label %6901, label %6848

6848:                                             ; preds = %6841
  br label %6849

6849:                                             ; preds = %6848
  br label %6850

6850:                                             ; preds = %6849
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #9
  %6851 = call ptr @__errno_location() #10
  %6852 = load i32, ptr %6851, align 4, !tbaa !5
  store i32 %6852, ptr %139, align 4, !tbaa !5
  %6853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6854 = call i32 @s2n_print_stacktrace(ptr noundef %6853)
  %6855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6856 = trunc i8 %6855 to i1
  br i1 %6856, label %6857, label %6879

6857:                                             ; preds = %6850
  %6858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6859 = call i32 @fileno(ptr noundef %6858) #9
  %6860 = call i32 @isatty(i32 noundef %6859) #9
  %6861 = icmp ne i32 %6860, 0
  br i1 %6861, label %6862, label %6879

6862:                                             ; preds = %6857
  %6863 = load i32, ptr %139, align 4, !tbaa !5
  %6864 = call ptr @__errno_location() #10
  store i32 %6863, ptr %6864, align 4, !tbaa !5
  %6865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6866 = load i32, ptr @test_count, align 4, !tbaa !5
  %6867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6868 = load i32, ptr %6867, align 4, !tbaa !5
  %6869 = call ptr @s2n_strerror(i32 noundef %6868, ptr noundef @.str.4)
  %6870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6871 = load i32, ptr %6870, align 4, !tbaa !5
  %6872 = call ptr @s2n_strerror_debug(i32 noundef %6871, ptr noundef @.str.4)
  %6873 = call ptr @__errno_location() #10
  %6874 = load i32, ptr %6873, align 4, !tbaa !5
  %6875 = call ptr @strerror(i32 noundef %6874) #9
  %6876 = call ptr @__errno_location() #10
  %6877 = load i32, ptr %6876, align 4, !tbaa !5
  %6878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6865, ptr noundef @.str.2, i32 noundef %6866, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6869, ptr noundef %6872, ptr noundef %6875, i32 noundef %6877) #9
  br label %6896

6879:                                             ; preds = %6857, %6850
  %6880 = load i32, ptr %139, align 4, !tbaa !5
  %6881 = call ptr @__errno_location() #10
  store i32 %6880, ptr %6881, align 4, !tbaa !5
  %6882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6883 = load i32, ptr @test_count, align 4, !tbaa !5
  %6884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call ptr @s2n_strerror(i32 noundef %6885, ptr noundef @.str.4)
  %6887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6888 = load i32, ptr %6887, align 4, !tbaa !5
  %6889 = call ptr @s2n_strerror_debug(i32 noundef %6888, ptr noundef @.str.4)
  %6890 = call ptr @__errno_location() #10
  %6891 = load i32, ptr %6890, align 4, !tbaa !5
  %6892 = call ptr @strerror(i32 noundef %6891) #9
  %6893 = call ptr @__errno_location() #10
  %6894 = load i32, ptr %6893, align 4, !tbaa !5
  %6895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6882, ptr noundef @.str.5, i32 noundef %6883, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6886, ptr noundef %6889, ptr noundef %6892, i32 noundef %6894) #9
  br label %6896

6896:                                             ; preds = %6879, %6862
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #9
  br label %6897

6897:                                             ; preds = %6896
  br label %6898

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

6899:                                             ; No predecessors!
  br label %6900

6900:                                             ; preds = %6899
  br label %6901

6901:                                             ; preds = %6900, %6841
  br label %6902

6902:                                             ; preds = %6901
  br label %6903

6903:                                             ; preds = %6902
  br label %6904

6904:                                             ; preds = %6903
  %6905 = load i32, ptr @test_count, align 4, !tbaa !5
  %6906 = add nsw i32 %6905, 1
  store i32 %6906, ptr @test_count, align 4, !tbaa !5
  %6907 = load ptr, ptr %125, align 8, !tbaa !9
  %6908 = getelementptr inbounds %struct.s2n_connection, ptr %6907, i32 0, i32 89
  %6909 = load i32, ptr %6908, align 8, !tbaa !18
  %6910 = icmp eq i32 %6909, 4
  br i1 %6910, label %6964, label %6911

6911:                                             ; preds = %6904
  br label %6912

6912:                                             ; preds = %6911
  br label %6913

6913:                                             ; preds = %6912
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #9
  %6914 = call ptr @__errno_location() #10
  %6915 = load i32, ptr %6914, align 4, !tbaa !5
  store i32 %6915, ptr %140, align 4, !tbaa !5
  %6916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6917 = call i32 @s2n_print_stacktrace(ptr noundef %6916)
  %6918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6919 = trunc i8 %6918 to i1
  br i1 %6919, label %6920, label %6942

6920:                                             ; preds = %6913
  %6921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6922 = call i32 @fileno(ptr noundef %6921) #9
  %6923 = call i32 @isatty(i32 noundef %6922) #9
  %6924 = icmp ne i32 %6923, 0
  br i1 %6924, label %6925, label %6942

6925:                                             ; preds = %6920
  %6926 = load i32, ptr %140, align 4, !tbaa !5
  %6927 = call ptr @__errno_location() #10
  store i32 %6926, ptr %6927, align 4, !tbaa !5
  %6928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6929 = load i32, ptr @test_count, align 4, !tbaa !5
  %6930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6931 = load i32, ptr %6930, align 4, !tbaa !5
  %6932 = call ptr @s2n_strerror(i32 noundef %6931, ptr noundef @.str.4)
  %6933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6934 = load i32, ptr %6933, align 4, !tbaa !5
  %6935 = call ptr @s2n_strerror_debug(i32 noundef %6934, ptr noundef @.str.4)
  %6936 = call ptr @__errno_location() #10
  %6937 = load i32, ptr %6936, align 4, !tbaa !5
  %6938 = call ptr @strerror(i32 noundef %6937) #9
  %6939 = call ptr @__errno_location() #10
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6928, ptr noundef @.str.2, i32 noundef %6929, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 291, ptr noundef %6932, ptr noundef %6935, ptr noundef %6938, i32 noundef %6940) #9
  br label %6959

6942:                                             ; preds = %6920, %6913
  %6943 = load i32, ptr %140, align 4, !tbaa !5
  %6944 = call ptr @__errno_location() #10
  store i32 %6943, ptr %6944, align 4, !tbaa !5
  %6945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6946 = load i32, ptr @test_count, align 4, !tbaa !5
  %6947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6948 = load i32, ptr %6947, align 4, !tbaa !5
  %6949 = call ptr @s2n_strerror(i32 noundef %6948, ptr noundef @.str.4)
  %6950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6951 = load i32, ptr %6950, align 4, !tbaa !5
  %6952 = call ptr @s2n_strerror_debug(i32 noundef %6951, ptr noundef @.str.4)
  %6953 = call ptr @__errno_location() #10
  %6954 = load i32, ptr %6953, align 4, !tbaa !5
  %6955 = call ptr @strerror(i32 noundef %6954) #9
  %6956 = call ptr @__errno_location() #10
  %6957 = load i32, ptr %6956, align 4, !tbaa !5
  %6958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6945, ptr noundef @.str.5, i32 noundef %6946, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 291, ptr noundef %6949, ptr noundef %6952, ptr noundef %6955, i32 noundef %6957) #9
  br label %6959

6959:                                             ; preds = %6942, %6925
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #9
  br label %6960

6960:                                             ; preds = %6959
  br label %6961

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

6962:                                             ; No predecessors!
  br label %6963

6963:                                             ; preds = %6962
  br label %6964

6964:                                             ; preds = %6963, %6904
  br label %6965

6965:                                             ; preds = %6964
  br label %6966

6966:                                             ; preds = %6965
  br label %6967

6967:                                             ; preds = %6966
  %6968 = load i32, ptr @test_count, align 4, !tbaa !5
  %6969 = add nsw i32 %6968, 1
  store i32 %6969, ptr @test_count, align 4, !tbaa !5
  %6970 = load ptr, ptr %125, align 8, !tbaa !9
  %6971 = call i32 @s2n_encrypted_extensions_send(ptr noundef %6970)
  %6972 = icmp eq i32 %6971, -1
  br i1 %6972, label %6973, label %7026

6973:                                             ; preds = %6967
  br label %6974

6974:                                             ; preds = %6973
  br label %6975

6975:                                             ; preds = %6974
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #9
  %6976 = call ptr @__errno_location() #10
  %6977 = load i32, ptr %6976, align 4, !tbaa !5
  store i32 %6977, ptr %141, align 4, !tbaa !5
  %6978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6979 = call i32 @s2n_print_stacktrace(ptr noundef %6978)
  %6980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6981 = trunc i8 %6980 to i1
  br i1 %6981, label %6982, label %7004

6982:                                             ; preds = %6975
  %6983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6984 = call i32 @fileno(ptr noundef %6983) #9
  %6985 = call i32 @isatty(i32 noundef %6984) #9
  %6986 = icmp ne i32 %6985, 0
  br i1 %6986, label %6987, label %7004

6987:                                             ; preds = %6982
  %6988 = load i32, ptr %141, align 4, !tbaa !5
  %6989 = call ptr @__errno_location() #10
  store i32 %6988, ptr %6989, align 4, !tbaa !5
  %6990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6991 = load i32, ptr @test_count, align 4, !tbaa !5
  %6992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6993 = load i32, ptr %6992, align 4, !tbaa !5
  %6994 = call ptr @s2n_strerror(i32 noundef %6993, ptr noundef @.str.4)
  %6995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6996 = load i32, ptr %6995, align 4, !tbaa !5
  %6997 = call ptr @s2n_strerror_debug(i32 noundef %6996, ptr noundef @.str.4)
  %6998 = call ptr @__errno_location() #10
  %6999 = load i32, ptr %6998, align 4, !tbaa !5
  %7000 = call ptr @strerror(i32 noundef %6999) #9
  %7001 = call ptr @__errno_location() #10
  %7002 = load i32, ptr %7001, align 4, !tbaa !5
  %7003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6990, ptr noundef @.str.2, i32 noundef %6991, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6994, ptr noundef %6997, ptr noundef %7000, i32 noundef %7002) #9
  br label %7021

7004:                                             ; preds = %6982, %6975
  %7005 = load i32, ptr %141, align 4, !tbaa !5
  %7006 = call ptr @__errno_location() #10
  store i32 %7005, ptr %7006, align 4, !tbaa !5
  %7007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7008 = load i32, ptr @test_count, align 4, !tbaa !5
  %7009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7010 = load i32, ptr %7009, align 4, !tbaa !5
  %7011 = call ptr @s2n_strerror(i32 noundef %7010, ptr noundef @.str.4)
  %7012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7013 = load i32, ptr %7012, align 4, !tbaa !5
  %7014 = call ptr @s2n_strerror_debug(i32 noundef %7013, ptr noundef @.str.4)
  %7015 = call ptr @__errno_location() #10
  %7016 = load i32, ptr %7015, align 4, !tbaa !5
  %7017 = call ptr @strerror(i32 noundef %7016) #9
  %7018 = call ptr @__errno_location() #10
  %7019 = load i32, ptr %7018, align 4, !tbaa !5
  %7020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7007, ptr noundef @.str.5, i32 noundef %7008, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 293, ptr noundef %7011, ptr noundef %7014, ptr noundef %7017, i32 noundef %7019) #9
  br label %7021

7021:                                             ; preds = %7004, %6987
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #9
  br label %7022

7022:                                             ; preds = %7021
  br label %7023

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

7024:                                             ; No predecessors!
  br label %7025

7025:                                             ; preds = %7024
  br label %7026

7026:                                             ; preds = %7025, %6967
  br label %7027

7027:                                             ; preds = %7026
  br label %7028

7028:                                             ; preds = %7027
  br label %7029

7029:                                             ; preds = %7028
  %7030 = load i32, ptr @test_count, align 4, !tbaa !5
  %7031 = add nsw i32 %7030, 1
  store i32 %7031, ptr @test_count, align 4, !tbaa !5
  %7032 = load ptr, ptr %125, align 8, !tbaa !9
  %7033 = getelementptr inbounds %struct.s2n_connection, ptr %7032, i32 0, i32 52
  %7034 = getelementptr inbounds %struct.s2n_handshake, ptr %7033, i32 0, i32 0
  %7035 = load ptr, ptr %119, align 8, !tbaa !9
  %7036 = getelementptr inbounds %struct.s2n_connection, ptr %7035, i32 0, i32 52
  %7037 = getelementptr inbounds %struct.s2n_handshake, ptr %7036, i32 0, i32 0
  %7038 = load ptr, ptr %125, align 8, !tbaa !9
  %7039 = getelementptr inbounds %struct.s2n_connection, ptr %7038, i32 0, i32 52
  %7040 = getelementptr inbounds %struct.s2n_handshake, ptr %7039, i32 0, i32 0
  %7041 = getelementptr inbounds %struct.s2n_stuffer, ptr %7040, i32 0, i32 2
  %7042 = load i32, ptr %7041, align 4, !tbaa !53
  %7043 = load ptr, ptr %125, align 8, !tbaa !9
  %7044 = getelementptr inbounds %struct.s2n_connection, ptr %7043, i32 0, i32 52
  %7045 = getelementptr inbounds %struct.s2n_handshake, ptr %7044, i32 0, i32 0
  %7046 = getelementptr inbounds %struct.s2n_stuffer, ptr %7045, i32 0, i32 1
  %7047 = load i32, ptr %7046, align 8, !tbaa !54
  %7048 = sub i32 %7042, %7047
  %7049 = call i32 @s2n_stuffer_copy(ptr noundef %7034, ptr noundef %7037, i32 noundef %7048)
  %7050 = icmp eq i32 %7049, -1
  br i1 %7050, label %7051, label %7104

7051:                                             ; preds = %7029
  br label %7052

7052:                                             ; preds = %7051
  br label %7053

7053:                                             ; preds = %7052
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #9
  %7054 = call ptr @__errno_location() #10
  %7055 = load i32, ptr %7054, align 4, !tbaa !5
  store i32 %7055, ptr %142, align 4, !tbaa !5
  %7056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7057 = call i32 @s2n_print_stacktrace(ptr noundef %7056)
  %7058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7059 = trunc i8 %7058 to i1
  br i1 %7059, label %7060, label %7082

7060:                                             ; preds = %7053
  %7061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7062 = call i32 @fileno(ptr noundef %7061) #9
  %7063 = call i32 @isatty(i32 noundef %7062) #9
  %7064 = icmp ne i32 %7063, 0
  br i1 %7064, label %7065, label %7082

7065:                                             ; preds = %7060
  %7066 = load i32, ptr %142, align 4, !tbaa !5
  %7067 = call ptr @__errno_location() #10
  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() #10
  %7077 = load i32, ptr %7076, align 4, !tbaa !5
  %7078 = call ptr @strerror(i32 noundef %7077) #9
  %7079 = call ptr @__errno_location() #10
  %7080 = load i32, ptr %7079, align 4, !tbaa !5
  %7081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7068, ptr noundef @.str.2, i32 noundef %7069, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 295, ptr noundef %7072, ptr noundef %7075, ptr noundef %7078, i32 noundef %7080) #9
  br label %7099

7082:                                             ; preds = %7060, %7053
  %7083 = load i32, ptr %142, align 4, !tbaa !5
  %7084 = call ptr @__errno_location() #10
  store i32 %7083, ptr %7084, align 4, !tbaa !5
  %7085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7086 = load i32, ptr @test_count, align 4, !tbaa !5
  %7087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7088 = load i32, ptr %7087, align 4, !tbaa !5
  %7089 = call ptr @s2n_strerror(i32 noundef %7088, ptr noundef @.str.4)
  %7090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7091 = load i32, ptr %7090, align 4, !tbaa !5
  %7092 = call ptr @s2n_strerror_debug(i32 noundef %7091, ptr noundef @.str.4)
  %7093 = call ptr @__errno_location() #10
  %7094 = load i32, ptr %7093, align 4, !tbaa !5
  %7095 = call ptr @strerror(i32 noundef %7094) #9
  %7096 = call ptr @__errno_location() #10
  %7097 = load i32, ptr %7096, align 4, !tbaa !5
  %7098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7085, ptr noundef @.str.5, i32 noundef %7086, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 295, ptr noundef %7089, ptr noundef %7092, ptr noundef %7095, i32 noundef %7097) #9
  br label %7099

7099:                                             ; preds = %7082, %7065
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #9
  br label %7100

7100:                                             ; preds = %7099
  br label %7101

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

7102:                                             ; No predecessors!
  br label %7103

7103:                                             ; preds = %7102
  br label %7104

7104:                                             ; preds = %7103, %7029
  br label %7105

7105:                                             ; preds = %7104
  br label %7106

7106:                                             ; preds = %7105
  br label %7107

7107:                                             ; preds = %7106
  %7108 = load i32, ptr @test_count, align 4, !tbaa !5
  %7109 = add nsw i32 %7108, 1
  store i32 %7109, ptr @test_count, align 4, !tbaa !5
  %7110 = load ptr, ptr %119, align 8, !tbaa !9
  %7111 = call i32 @s2n_encrypted_extensions_recv(ptr noundef %7110)
  %7112 = icmp eq i32 %7111, -1
  br i1 %7112, label %7113, label %7166

7113:                                             ; preds = %7107
  br label %7114

7114:                                             ; preds = %7113
  br label %7115

7115:                                             ; preds = %7114
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #9
  %7116 = call ptr @__errno_location() #10
  %7117 = load i32, ptr %7116, align 4, !tbaa !5
  store i32 %7117, ptr %143, align 4, !tbaa !5
  %7118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7119 = call i32 @s2n_print_stacktrace(ptr noundef %7118)
  %7120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7121 = trunc i8 %7120 to i1
  br i1 %7121, label %7122, label %7144

7122:                                             ; preds = %7115
  %7123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7124 = call i32 @fileno(ptr noundef %7123) #9
  %7125 = call i32 @isatty(i32 noundef %7124) #9
  %7126 = icmp ne i32 %7125, 0
  br i1 %7126, label %7127, label %7144

7127:                                             ; preds = %7122
  %7128 = load i32, ptr %143, align 4, !tbaa !5
  %7129 = call ptr @__errno_location() #10
  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() #10
  %7139 = load i32, ptr %7138, align 4, !tbaa !5
  %7140 = call ptr @strerror(i32 noundef %7139) #9
  %7141 = call ptr @__errno_location() #10
  %7142 = load i32, ptr %7141, align 4, !tbaa !5
  %7143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7130, ptr noundef @.str.2, i32 noundef %7131, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 296, ptr noundef %7134, ptr noundef %7137, ptr noundef %7140, i32 noundef %7142) #9
  br label %7161

7144:                                             ; preds = %7122, %7115
  %7145 = load i32, ptr %143, align 4, !tbaa !5
  %7146 = call ptr @__errno_location() #10
  store i32 %7145, ptr %7146, align 4, !tbaa !5
  %7147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7148 = load i32, ptr @test_count, align 4, !tbaa !5
  %7149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7150 = load i32, ptr %7149, align 4, !tbaa !5
  %7151 = call ptr @s2n_strerror(i32 noundef %7150, ptr noundef @.str.4)
  %7152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7153 = load i32, ptr %7152, align 4, !tbaa !5
  %7154 = call ptr @s2n_strerror_debug(i32 noundef %7153, ptr noundef @.str.4)
  %7155 = call ptr @__errno_location() #10
  %7156 = load i32, ptr %7155, align 4, !tbaa !5
  %7157 = call ptr @strerror(i32 noundef %7156) #9
  %7158 = call ptr @__errno_location() #10
  %7159 = load i32, ptr %7158, align 4, !tbaa !5
  %7160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7147, ptr noundef @.str.5, i32 noundef %7148, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 296, ptr noundef %7151, ptr noundef %7154, ptr noundef %7157, i32 noundef %7159) #9
  br label %7161

7161:                                             ; preds = %7144, %7127
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #9
  br label %7162

7162:                                             ; preds = %7161
  br label %7163

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

7164:                                             ; No predecessors!
  br label %7165

7165:                                             ; preds = %7164
  br label %7166

7166:                                             ; preds = %7165, %7107
  br label %7167

7167:                                             ; preds = %7166
  br label %7168

7168:                                             ; preds = %7167
  br label %7169

7169:                                             ; preds = %7168
  %7170 = load i32, ptr @test_count, align 4, !tbaa !5
  %7171 = add nsw i32 %7170, 1
  store i32 %7171, ptr @test_count, align 4, !tbaa !5
  %7172 = load ptr, ptr %119, align 8, !tbaa !9
  %7173 = getelementptr inbounds %struct.s2n_connection, ptr %7172, i32 0, i32 89
  %7174 = load i32, ptr %7173, align 8, !tbaa !18
  %7175 = icmp eq i32 %7174, 4
  br i1 %7175, label %7229, label %7176

7176:                                             ; preds = %7169
  br label %7177

7177:                                             ; preds = %7176
  br label %7178

7178:                                             ; preds = %7177
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #9
  %7179 = call ptr @__errno_location() #10
  %7180 = load i32, ptr %7179, align 4, !tbaa !5
  store i32 %7180, ptr %144, align 4, !tbaa !5
  %7181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7182 = call i32 @s2n_print_stacktrace(ptr noundef %7181)
  %7183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7184 = trunc i8 %7183 to i1
  br i1 %7184, label %7185, label %7207

7185:                                             ; preds = %7178
  %7186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7187 = call i32 @fileno(ptr noundef %7186) #9
  %7188 = call i32 @isatty(i32 noundef %7187) #9
  %7189 = icmp ne i32 %7188, 0
  br i1 %7189, label %7190, label %7207

7190:                                             ; preds = %7185
  %7191 = load i32, ptr %144, align 4, !tbaa !5
  %7192 = call ptr @__errno_location() #10
  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() #10
  %7202 = load i32, ptr %7201, align 4, !tbaa !5
  %7203 = call ptr @strerror(i32 noundef %7202) #9
  %7204 = call ptr @__errno_location() #10
  %7205 = load i32, ptr %7204, align 4, !tbaa !5
  %7206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7193, ptr noundef @.str.2, i32 noundef %7194, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 297, ptr noundef %7197, ptr noundef %7200, ptr noundef %7203, i32 noundef %7205) #9
  br label %7224

7207:                                             ; preds = %7185, %7178
  %7208 = load i32, ptr %144, align 4, !tbaa !5
  %7209 = call ptr @__errno_location() #10
  store i32 %7208, ptr %7209, align 4, !tbaa !5
  %7210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7211 = load i32, ptr @test_count, align 4, !tbaa !5
  %7212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7213 = load i32, ptr %7212, align 4, !tbaa !5
  %7214 = call ptr @s2n_strerror(i32 noundef %7213, ptr noundef @.str.4)
  %7215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7216 = load i32, ptr %7215, align 4, !tbaa !5
  %7217 = call ptr @s2n_strerror_debug(i32 noundef %7216, ptr noundef @.str.4)
  %7218 = call ptr @__errno_location() #10
  %7219 = load i32, ptr %7218, align 4, !tbaa !5
  %7220 = call ptr @strerror(i32 noundef %7219) #9
  %7221 = call ptr @__errno_location() #10
  %7222 = load i32, ptr %7221, align 4, !tbaa !5
  %7223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7210, ptr noundef @.str.5, i32 noundef %7211, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 297, ptr noundef %7214, ptr noundef %7217, ptr noundef %7220, i32 noundef %7222) #9
  br label %7224

7224:                                             ; preds = %7207, %7190
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #9
  br label %7225

7225:                                             ; preds = %7224
  br label %7226

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

7227:                                             ; No predecessors!
  br label %7228

7228:                                             ; preds = %7227
  br label %7229

7229:                                             ; preds = %7228, %7169
  br label %7230

7230:                                             ; preds = %7229
  br label %7231

7231:                                             ; preds = %7230
  br label %7232

7232:                                             ; preds = %7231
  %7233 = load i32, ptr @test_count, align 4, !tbaa !5
  %7234 = add nsw i32 %7233, 1
  store i32 %7234, ptr @test_count, align 4, !tbaa !5
  %7235 = load ptr, ptr %125, align 8, !tbaa !9
  %7236 = getelementptr inbounds %struct.s2n_connection, ptr %7235, i32 0, i32 89
  %7237 = load i32, ptr %7236, align 8, !tbaa !18
  %7238 = icmp eq i32 %7237, 4
  br i1 %7238, label %7292, label %7239

7239:                                             ; preds = %7232
  br label %7240

7240:                                             ; preds = %7239
  br label %7241

7241:                                             ; preds = %7240
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #9
  %7242 = call ptr @__errno_location() #10
  %7243 = load i32, ptr %7242, align 4, !tbaa !5
  store i32 %7243, ptr %145, align 4, !tbaa !5
  %7244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7245 = call i32 @s2n_print_stacktrace(ptr noundef %7244)
  %7246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7247 = trunc i8 %7246 to i1
  br i1 %7247, label %7248, label %7270

7248:                                             ; preds = %7241
  %7249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7250 = call i32 @fileno(ptr noundef %7249) #9
  %7251 = call i32 @isatty(i32 noundef %7250) #9
  %7252 = icmp ne i32 %7251, 0
  br i1 %7252, label %7253, label %7270

7253:                                             ; preds = %7248
  %7254 = load i32, ptr %145, align 4, !tbaa !5
  %7255 = call ptr @__errno_location() #10
  store i32 %7254, ptr %7255, align 4, !tbaa !5
  %7256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7257 = load i32, ptr @test_count, align 4, !tbaa !5
  %7258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7259 = load i32, ptr %7258, align 4, !tbaa !5
  %7260 = call ptr @s2n_strerror(i32 noundef %7259, ptr noundef @.str.4)
  %7261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7262 = load i32, ptr %7261, align 4, !tbaa !5
  %7263 = call ptr @s2n_strerror_debug(i32 noundef %7262, ptr noundef @.str.4)
  %7264 = call ptr @__errno_location() #10
  %7265 = load i32, ptr %7264, align 4, !tbaa !5
  %7266 = call ptr @strerror(i32 noundef %7265) #9
  %7267 = call ptr @__errno_location() #10
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  %7269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7256, ptr noundef @.str.2, i32 noundef %7257, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 298, ptr noundef %7260, ptr noundef %7263, ptr noundef %7266, i32 noundef %7268) #9
  br label %7287

7270:                                             ; preds = %7248, %7241
  %7271 = load i32, ptr %145, align 4, !tbaa !5
  %7272 = call ptr @__errno_location() #10
  store i32 %7271, ptr %7272, align 4, !tbaa !5
  %7273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7274 = load i32, ptr @test_count, align 4, !tbaa !5
  %7275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7276 = load i32, ptr %7275, align 4, !tbaa !5
  %7277 = call ptr @s2n_strerror(i32 noundef %7276, ptr noundef @.str.4)
  %7278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7279 = load i32, ptr %7278, align 4, !tbaa !5
  %7280 = call ptr @s2n_strerror_debug(i32 noundef %7279, ptr noundef @.str.4)
  %7281 = call ptr @__errno_location() #10
  %7282 = load i32, ptr %7281, align 4, !tbaa !5
  %7283 = call ptr @strerror(i32 noundef %7282) #9
  %7284 = call ptr @__errno_location() #10
  %7285 = load i32, ptr %7284, align 4, !tbaa !5
  %7286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7273, ptr noundef @.str.5, i32 noundef %7274, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 298, ptr noundef %7277, ptr noundef %7280, ptr noundef %7283, i32 noundef %7285) #9
  br label %7287

7287:                                             ; preds = %7270, %7253
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #9
  br label %7288

7288:                                             ; preds = %7287
  br label %7289

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

7290:                                             ; No predecessors!
  br label %7291

7291:                                             ; preds = %7290
  br label %7292

7292:                                             ; preds = %7291, %7232
  br label %7293

7293:                                             ; preds = %7292
  br label %7294

7294:                                             ; preds = %7293
  br label %7295

7295:                                             ; preds = %7294
  %7296 = load i32, ptr @test_count, align 4, !tbaa !5
  %7297 = add nsw i32 %7296, 1
  store i32 %7297, ptr @test_count, align 4, !tbaa !5
  %7298 = load ptr, ptr %119, align 8, !tbaa !9
  %7299 = call i32 @s2n_connection_free(ptr noundef %7298)
  %7300 = icmp eq i32 %7299, -1
  br i1 %7300, label %7301, label %7354

7301:                                             ; preds = %7295
  br label %7302

7302:                                             ; preds = %7301
  br label %7303

7303:                                             ; preds = %7302
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #9
  %7304 = call ptr @__errno_location() #10
  %7305 = load i32, ptr %7304, align 4, !tbaa !5
  store i32 %7305, ptr %146, align 4, !tbaa !5
  %7306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7307 = call i32 @s2n_print_stacktrace(ptr noundef %7306)
  %7308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7309 = trunc i8 %7308 to i1
  br i1 %7309, label %7310, label %7332

7310:                                             ; preds = %7303
  %7311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7312 = call i32 @fileno(ptr noundef %7311) #9
  %7313 = call i32 @isatty(i32 noundef %7312) #9
  %7314 = icmp ne i32 %7313, 0
  br i1 %7314, label %7315, label %7332

7315:                                             ; preds = %7310
  %7316 = load i32, ptr %146, align 4, !tbaa !5
  %7317 = call ptr @__errno_location() #10
  store i32 %7316, ptr %7317, align 4, !tbaa !5
  %7318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7319 = load i32, ptr @test_count, align 4, !tbaa !5
  %7320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7321 = load i32, ptr %7320, align 4, !tbaa !5
  %7322 = call ptr @s2n_strerror(i32 noundef %7321, ptr noundef @.str.4)
  %7323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7324 = load i32, ptr %7323, align 4, !tbaa !5
  %7325 = call ptr @s2n_strerror_debug(i32 noundef %7324, ptr noundef @.str.4)
  %7326 = call ptr @__errno_location() #10
  %7327 = load i32, ptr %7326, align 4, !tbaa !5
  %7328 = call ptr @strerror(i32 noundef %7327) #9
  %7329 = call ptr @__errno_location() #10
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7318, ptr noundef @.str.2, i32 noundef %7319, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 300, ptr noundef %7322, ptr noundef %7325, ptr noundef %7328, i32 noundef %7330) #9
  br label %7349

7332:                                             ; preds = %7310, %7303
  %7333 = load i32, ptr %146, align 4, !tbaa !5
  %7334 = call ptr @__errno_location() #10
  store i32 %7333, ptr %7334, align 4, !tbaa !5
  %7335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7336 = load i32, ptr @test_count, align 4, !tbaa !5
  %7337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7338 = load i32, ptr %7337, align 4, !tbaa !5
  %7339 = call ptr @s2n_strerror(i32 noundef %7338, ptr noundef @.str.4)
  %7340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7341 = load i32, ptr %7340, align 4, !tbaa !5
  %7342 = call ptr @s2n_strerror_debug(i32 noundef %7341, ptr noundef @.str.4)
  %7343 = call ptr @__errno_location() #10
  %7344 = load i32, ptr %7343, align 4, !tbaa !5
  %7345 = call ptr @strerror(i32 noundef %7344) #9
  %7346 = call ptr @__errno_location() #10
  %7347 = load i32, ptr %7346, align 4, !tbaa !5
  %7348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7335, ptr noundef @.str.5, i32 noundef %7336, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 300, ptr noundef %7339, ptr noundef %7342, ptr noundef %7345, i32 noundef %7347) #9
  br label %7349

7349:                                             ; preds = %7332, %7315
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #9
  br label %7350

7350:                                             ; preds = %7349
  br label %7351

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

7352:                                             ; No predecessors!
  br label %7353

7353:                                             ; preds = %7352
  br label %7354

7354:                                             ; preds = %7353, %7295
  br label %7355

7355:                                             ; preds = %7354
  br label %7356

7356:                                             ; preds = %7355
  br label %7357

7357:                                             ; preds = %7356
  %7358 = load i32, ptr @test_count, align 4, !tbaa !5
  %7359 = add nsw i32 %7358, 1
  store i32 %7359, ptr @test_count, align 4, !tbaa !5
  %7360 = load ptr, ptr %125, align 8, !tbaa !9
  %7361 = call i32 @s2n_connection_free(ptr noundef %7360)
  %7362 = icmp eq i32 %7361, -1
  br i1 %7362, label %7363, label %7416

7363:                                             ; preds = %7357
  br label %7364

7364:                                             ; preds = %7363
  br label %7365

7365:                                             ; preds = %7364
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #9
  %7366 = call ptr @__errno_location() #10
  %7367 = load i32, ptr %7366, align 4, !tbaa !5
  store i32 %7367, ptr %147, align 4, !tbaa !5
  %7368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7369 = call i32 @s2n_print_stacktrace(ptr noundef %7368)
  %7370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7371 = trunc i8 %7370 to i1
  br i1 %7371, label %7372, label %7394

7372:                                             ; preds = %7365
  %7373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7374 = call i32 @fileno(ptr noundef %7373) #9
  %7375 = call i32 @isatty(i32 noundef %7374) #9
  %7376 = icmp ne i32 %7375, 0
  br i1 %7376, label %7377, label %7394

7377:                                             ; preds = %7372
  %7378 = load i32, ptr %147, align 4, !tbaa !5
  %7379 = call ptr @__errno_location() #10
  store i32 %7378, ptr %7379, align 4, !tbaa !5
  %7380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7381 = load i32, ptr @test_count, align 4, !tbaa !5
  %7382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7383 = load i32, ptr %7382, align 4, !tbaa !5
  %7384 = call ptr @s2n_strerror(i32 noundef %7383, ptr noundef @.str.4)
  %7385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7386 = load i32, ptr %7385, align 4, !tbaa !5
  %7387 = call ptr @s2n_strerror_debug(i32 noundef %7386, ptr noundef @.str.4)
  %7388 = call ptr @__errno_location() #10
  %7389 = load i32, ptr %7388, align 4, !tbaa !5
  %7390 = call ptr @strerror(i32 noundef %7389) #9
  %7391 = call ptr @__errno_location() #10
  %7392 = load i32, ptr %7391, align 4, !tbaa !5
  %7393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7380, ptr noundef @.str.2, i32 noundef %7381, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 301, ptr noundef %7384, ptr noundef %7387, ptr noundef %7390, i32 noundef %7392) #9
  br label %7411

7394:                                             ; preds = %7372, %7365
  %7395 = load i32, ptr %147, align 4, !tbaa !5
  %7396 = call ptr @__errno_location() #10
  store i32 %7395, ptr %7396, align 4, !tbaa !5
  %7397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7398 = load i32, ptr @test_count, align 4, !tbaa !5
  %7399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7400 = load i32, ptr %7399, align 4, !tbaa !5
  %7401 = call ptr @s2n_strerror(i32 noundef %7400, ptr noundef @.str.4)
  %7402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7403 = load i32, ptr %7402, align 4, !tbaa !5
  %7404 = call ptr @s2n_strerror_debug(i32 noundef %7403, ptr noundef @.str.4)
  %7405 = call ptr @__errno_location() #10
  %7406 = load i32, ptr %7405, align 4, !tbaa !5
  %7407 = call ptr @strerror(i32 noundef %7406) #9
  %7408 = call ptr @__errno_location() #10
  %7409 = load i32, ptr %7408, align 4, !tbaa !5
  %7410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7397, ptr noundef @.str.5, i32 noundef %7398, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 301, ptr noundef %7401, ptr noundef %7404, ptr noundef %7407, i32 noundef %7409) #9
  br label %7411

7411:                                             ; preds = %7394, %7377
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #9
  br label %7412

7412:                                             ; preds = %7411
  br label %7413

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

7414:                                             ; No predecessors!
  br label %7415

7415:                                             ; preds = %7414
  br label %7416

7416:                                             ; preds = %7415, %7357
  br label %7417

7417:                                             ; preds = %7416
  br label %7418

7418:                                             ; preds = %7417
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  br label %7419

7419:                                             ; preds = %7418
  br label %7420

7420:                                             ; preds = %7419
  %7421 = call i32 @s2n_cleanup()
  %7422 = icmp eq i32 %7421, -1
  br i1 %7422, label %7423, label %7476

7423:                                             ; preds = %7420
  br label %7424

7424:                                             ; preds = %7423
  br label %7425

7425:                                             ; preds = %7424
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #9
  %7426 = call ptr @__errno_location() #10
  %7427 = load i32, ptr %7426, align 4, !tbaa !5
  store i32 %7427, ptr %148, align 4, !tbaa !5
  %7428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7429 = call i32 @s2n_print_stacktrace(ptr noundef %7428)
  %7430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7431 = trunc i8 %7430 to i1
  br i1 %7431, label %7432, label %7454

7432:                                             ; preds = %7425
  %7433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7434 = call i32 @fileno(ptr noundef %7433) #9
  %7435 = call i32 @isatty(i32 noundef %7434) #9
  %7436 = icmp ne i32 %7435, 0
  br i1 %7436, label %7437, label %7454

7437:                                             ; preds = %7432
  %7438 = load i32, ptr %148, align 4, !tbaa !5
  %7439 = call ptr @__errno_location() #10
  store i32 %7438, ptr %7439, align 4, !tbaa !5
  %7440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7441 = load i32, ptr @test_count, align 4, !tbaa !5
  %7442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7443 = load i32, ptr %7442, align 4, !tbaa !5
  %7444 = call ptr @s2n_strerror(i32 noundef %7443, ptr noundef @.str.4)
  %7445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7446 = load i32, ptr %7445, align 4, !tbaa !5
  %7447 = call ptr @s2n_strerror_debug(i32 noundef %7446, ptr noundef @.str.4)
  %7448 = call ptr @__errno_location() #10
  %7449 = load i32, ptr %7448, align 4, !tbaa !5
  %7450 = call ptr @strerror(i32 noundef %7449) #9
  %7451 = call ptr @__errno_location() #10
  %7452 = load i32, ptr %7451, align 4, !tbaa !5
  %7453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7440, ptr noundef @.str.2, i32 noundef %7441, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 305, ptr noundef %7444, ptr noundef %7447, ptr noundef %7450, i32 noundef %7452) #9
  br label %7471

7454:                                             ; preds = %7432, %7425
  %7455 = load i32, ptr %148, align 4, !tbaa !5
  %7456 = call ptr @__errno_location() #10
  store i32 %7455, ptr %7456, align 4, !tbaa !5
  %7457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7458 = load i32, ptr @test_count, align 4, !tbaa !5
  %7459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7460 = load i32, ptr %7459, align 4, !tbaa !5
  %7461 = call ptr @s2n_strerror(i32 noundef %7460, ptr noundef @.str.4)
  %7462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7463 = load i32, ptr %7462, align 4, !tbaa !5
  %7464 = call ptr @s2n_strerror_debug(i32 noundef %7463, ptr noundef @.str.4)
  %7465 = call ptr @__errno_location() #10
  %7466 = load i32, ptr %7465, align 4, !tbaa !5
  %7467 = call ptr @strerror(i32 noundef %7466) #9
  %7468 = call ptr @__errno_location() #10
  %7469 = load i32, ptr %7468, align 4, !tbaa !5
  %7470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7457, ptr noundef @.str.5, i32 noundef %7458, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 305, ptr noundef %7461, ptr noundef %7464, ptr noundef %7467, i32 noundef %7469) #9
  br label %7471

7471:                                             ; preds = %7454, %7437
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #9
  br label %7472

7472:                                             ; preds = %7471
  br label %7473

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

7474:                                             ; No predecessors!
  br label %7475

7475:                                             ; preds = %7474
  br label %7476

7476:                                             ; preds = %7475, %7420
  br label %7477

7477:                                             ; preds = %7476
  br label %7478

7478:                                             ; preds = %7477
  br label %7479

7479:                                             ; preds = %7478
  br label %7480

7480:                                             ; preds = %7479
  %7481 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %7482 = icmp eq i32 %7481, -1
  br i1 %7482, label %7483, label %7536

7483:                                             ; preds = %7480
  br label %7484

7484:                                             ; preds = %7483
  br label %7485

7485:                                             ; preds = %7484
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #9
  %7486 = call ptr @__errno_location() #10
  %7487 = load i32, ptr %7486, align 4, !tbaa !5
  store i32 %7487, ptr %149, align 4, !tbaa !5
  %7488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7489 = call i32 @s2n_print_stacktrace(ptr noundef %7488)
  %7490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7491 = trunc i8 %7490 to i1
  br i1 %7491, label %7492, label %7514

7492:                                             ; preds = %7485
  %7493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7494 = call i32 @fileno(ptr noundef %7493) #9
  %7495 = call i32 @isatty(i32 noundef %7494) #9
  %7496 = icmp ne i32 %7495, 0
  br i1 %7496, label %7497, label %7514

7497:                                             ; preds = %7492
  %7498 = load i32, ptr %149, align 4, !tbaa !5
  %7499 = call ptr @__errno_location() #10
  store i32 %7498, ptr %7499, align 4, !tbaa !5
  %7500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7501 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7503, ptr noundef @.str.4)
  %7505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7506 = load i32, ptr %7505, align 4, !tbaa !5
  %7507 = call ptr @s2n_strerror_debug(i32 noundef %7506, ptr noundef @.str.4)
  %7508 = call ptr @__errno_location() #10
  %7509 = load i32, ptr %7508, align 4, !tbaa !5
  %7510 = call ptr @strerror(i32 noundef %7509) #9
  %7511 = call ptr @__errno_location() #10
  %7512 = load i32, ptr %7511, align 4, !tbaa !5
  %7513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7500, ptr noundef @.str.2, i32 noundef %7501, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 305, ptr noundef %7504, ptr noundef %7507, ptr noundef %7510, i32 noundef %7512) #9
  br label %7531

7514:                                             ; preds = %7492, %7485
  %7515 = load i32, ptr %149, align 4, !tbaa !5
  %7516 = call ptr @__errno_location() #10
  store i32 %7515, ptr %7516, align 4, !tbaa !5
  %7517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7518 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7520, ptr noundef @.str.4)
  %7522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7523 = load i32, ptr %7522, align 4, !tbaa !5
  %7524 = call ptr @s2n_strerror_debug(i32 noundef %7523, ptr noundef @.str.4)
  %7525 = call ptr @__errno_location() #10
  %7526 = load i32, ptr %7525, align 4, !tbaa !5
  %7527 = call ptr @strerror(i32 noundef %7526) #9
  %7528 = call ptr @__errno_location() #10
  %7529 = load i32, ptr %7528, align 4, !tbaa !5
  %7530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7517, ptr noundef @.str.5, i32 noundef %7518, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 305, ptr noundef %7521, ptr noundef %7524, ptr noundef %7527, i32 noundef %7529) #9
  br label %7531

7531:                                             ; preds = %7514, %7497
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #9
  br label %7532

7532:                                             ; preds = %7531
  br label %7533

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

7534:                                             ; No predecessors!
  br label %7535

7535:                                             ; preds = %7534
  br label %7536

7536:                                             ; preds = %7535, %7480
  br label %7537

7537:                                             ; preds = %7536
  br label %7538

7538:                                             ; preds = %7537
  %7539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7540 = trunc i8 %7539 to i1
  br i1 %7540, label %7541, label %7557

7541:                                             ; preds = %7538
  %7542 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7543 = call i32 @fileno(ptr noundef %7542) #9
  %7544 = call i32 @isatty(i32 noundef %7543) #9
  %7545 = icmp ne i32 %7544, 0
  br i1 %7545, label %7546, label %7557

7546:                                             ; preds = %7541
  %7547 = load i32, ptr @test_count, align 4, !tbaa !5
  %7548 = icmp ne i32 %7547, 0
  br i1 %7548, label %7549, label %7553

7549:                                             ; preds = %7546
  %7550 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7551 = load i32, ptr @test_count, align 4, !tbaa !5
  %7552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7550, ptr noundef @.str.10, i32 noundef %7551) #9
  br label %7556

7553:                                             ; preds = %7546
  %7554 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7554, ptr noundef @.str.11) #9
  br label %7556

7556:                                             ; preds = %7553, %7549
  br label %7568

7557:                                             ; preds = %7541, %7538
  %7558 = load i32, ptr @test_count, align 4, !tbaa !5
  %7559 = icmp ne i32 %7558, 0
  br i1 %7559, label %7560, label %7564

7560:                                             ; preds = %7557
  %7561 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7562 = load i32, ptr @test_count, align 4, !tbaa !5
  %7563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7561, ptr noundef @.str.12, i32 noundef %7562) #9
  br label %7567

7564:                                             ; preds = %7557
  %7565 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7565, ptr noundef @.str.13) #9
  br label %7567

7567:                                             ; preds = %7564, %7560
  br label %7568

7568:                                             ; preds = %7567, %7556
  store i32 0, ptr %3, align 4
  store i32 1, ptr %150, align 4
  br label %7573

7569:                                             ; No predecessors!
  br label %7570

7570:                                             ; preds = %7569
  br label %7571

7571:                                             ; preds = %7570
  br label %7572

7572:                                             ; preds = %7571
  store i32 0, ptr %150, align 4
  br label %7573

7573:                                             ; preds = %7572, %7568
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  %7574 = load i32, ptr %150, align 4
  switch i32 %7574, label %7577 [
    i32 0, label %7575
    i32 1, label %7575
  ]

7575:                                             ; preds = %7573, %7573, %474
  %7576 = load i32, ptr %3, align 4
  ret i32 %7576

7577:                                             ; preds = %7573
  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 zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_cleanup() #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #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 void @s2n_debug_info_reset() #2

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

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

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

declare i32 @s2n_connection_set_early_data_expected(ptr noundef) #2

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

declare i32 @s2n_encrypted_extensions_send(ptr noundef) #2

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

declare i32 @s2n_encrypted_extensions_recv(ptr noundef) #2

declare i32 @s2n_client_hello_send(ptr noundef) #2

declare i32 @s2n_client_hello_recv(ptr noundef) #2

declare i32 @s2n_set_hello_retry_required(ptr noundef) #2

declare i32 @s2n_server_hello_retry_send(ptr noundef) #2

declare i32 @s2n_server_hello_recv(ptr noundef) #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 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { 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 = !{!16, !10, i64 24}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!19, !6, i64 4088}
!19 = !{!"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, !20, i64 160, !21, i64 168, !21, 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, !22, i64 240, !10, i64 632, !10, i64 640, !23, i64 648, !29, i64 1144, !32, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !34, i64 1776, !34, i64 1816, !34, i64 1856, !34, i64 1896, !6, i64 1936, !21, i64 1944, !7, i64 1952, !34, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !21, i64 2224, !7, i64 2232, !21, i64 2240, !21, i64 2248, !21, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !28, i64 2792, !6, i64 2816, !28, i64 2824, !28, i64 2848, !28, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !28, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !28, i64 4032, !28, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !28, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!20 = !{!"s2n_timer", !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!23 = !{!"s2n_kex_parameters", !24, i64 0, !25, i64 8, !7, i64 24, !25, i64 56, !26, i64 72, !26, i64 184, !7, i64 296, !27, i64 360, !28, i64 448, !28, i64 472}
!24 = !{!"s2n_dh_params", !10, i64 0}
!25 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!26 = !{!"s2n_kem_group_params", !10, i64 0, !27, i64 8, !25, i64 96}
!27 = !{!"s2n_kem_params", !10, i64 0, !28, i64 8, !28, i64 32, !28, i64 56, !12, i64 80}
!28 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!29 = !{!"s2n_handshake_parameters", !30, i64 0, !30, i64 48, !28, i64 96, !6, i64 120, !31, 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}
!30 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!31 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!32 = !{!"s2n_psk_parameters", !6, i64 0, !33, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!33 = !{!"s2n_array", !28, i64 0, !6, i64 24, !6, i64 28}
!34 = !{!"s2n_stuffer", !28, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !34, 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, !37, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!37 = !{!"s2n_offered_early_data", !10, i64 0}
!38 = !{!"s2n_client_hello", !28, i64 0, !39, i64 24, !28, i64 728, !28, i64 752, !28, 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}
!39 = !{!"", !7, i64 0, !28, i64 672, !17, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !41, i64 48, !12, i64 52}
!41 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!42 = !{!"s2n_ticket_fields", !28, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!16, !10, i64 32}
!45 = !{!19, !10, i64 232}
!46 = !{!47, !10, i64 0}
!47 = !{!"s2n_crypto_parameters", !10, i64 0, !48, i64 8, !48, i64 16, !49, i64 24, !49, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!48 = !{!"s2n_session_key", !10, i64 0}
!49 = !{!"s2n_hmac_state", !6, i64 0, !17, i64 4, !6, i64 8, !17, i64 12, !7, i64 14, !50, i64 16, !50, i64 72, !50, i64 128, !50, i64 184, !7, i64 240, !7, i64 368}
!50 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !21, i64 16, !7, i64 24}
!51 = !{!19, !7, i64 220}
!52 = !{!16, !10, i64 16}
!53 = !{!19, !6, i64 2044}
!54 = !{!19, !6, i64 2040}
!55 = !{!19, !6, i64 2176}
!56 = !{!19, !10, i64 704}


; 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_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@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 [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@s2n_server_early_data_indication_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.14 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [67 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.22 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_ecc_curve_secp521r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.58 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [63 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %4 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #10
  %6 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7 = tail call i32 @fflush(ptr noundef %6)
  %8 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #10
  %9 = icmp eq i32 %8, -1
  br i1 %9, label %10, label %34

10:                                               ; preds = %2
  %11 = tail call ptr @__errno_location() #11
  %12 = load i32, ptr %11, align 4, !tbaa !5
  %13 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14 = tail call i32 @s2n_print_stacktrace(ptr noundef %13) #10
  %15 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16 = trunc nuw i8 %15 to i1
  br i1 %16, label %17, label %21

17:                                               ; preds = %10
  %18 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19 = tail call i32 @fileno(ptr noundef %18) #10
  %20 = tail call i32 @isatty(i32 noundef %19) #10
  %.not532 = icmp eq i32 %20, 0
  br i1 %.not532, label %21, label %22

21:                                               ; preds = %17, %10
  br label %22

22:                                               ; preds = %17, %21
  %.str.5.sink = phi ptr [ @.str.5, %21 ], [ @.str.2, %17 ]
  store i32 %12, ptr %11, align 4, !tbaa !5
  %23 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24 = load i32, ptr @test_count, align 4, !tbaa !5
  %25 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26 = load i32, ptr %25, align 4, !tbaa !5
  %27 = tail call ptr @s2n_strerror(i32 noundef %26, ptr noundef nonnull @.str.4) #10
  %28 = load i32, ptr %25, align 4, !tbaa !5
  %29 = tail call ptr @s2n_strerror_debug(i32 noundef %28, ptr noundef nonnull @.str.4) #10
  %30 = load i32, ptr %11, align 4, !tbaa !5
  %31 = tail call ptr @strerror(i32 noundef %30) #10
  %32 = load i32, ptr %11, align 4, !tbaa !5
  %33 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23, ptr noundef nonnull %.str.5.sink, i32 noundef %24, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %27, ptr noundef %29, ptr noundef %31, i32 noundef %32) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

34:                                               ; preds = %2
  %35 = load i32, ptr @test_count, align 4, !tbaa !5
  %36 = add nsw i32 %35, 1
  store i32 %36, ptr @test_count, align 4, !tbaa !5
  %37 = tail call i32 @s2n_enable_atexit() #10
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

39:                                               ; preds = %34
  %40 = tail call ptr @__errno_location() #11
  %41 = load i32, ptr %40, align 4, !tbaa !5
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = tail call i32 @s2n_print_stacktrace(ptr noundef %42) #10
  %44 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %45 = trunc nuw i8 %44 to i1
  br i1 %45, label %46, label %50

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #10
  %49 = tail call i32 @isatty(i32 noundef %48) #10
  %.not531 = icmp eq i32 %49, 0
  br i1 %.not531, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink543 = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #10
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #10
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #10
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink543, i32 noundef %53, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

63:                                               ; preds = %34
  %64 = tail call i32 @s2n_init() #10
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %66, label %90

66:                                               ; preds = %63
  %67 = tail call ptr @__errno_location() #11
  %68 = load i32, ptr %67, align 4, !tbaa !5
  %69 = load ptr, ptr @stderr, align 8, !tbaa !9
  %70 = tail call i32 @s2n_print_stacktrace(ptr noundef %69) #10
  %71 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %72 = trunc nuw i8 %71 to i1
  br i1 %72, label %73, label %77

73:                                               ; preds = %66
  %74 = load ptr, ptr @stderr, align 8, !tbaa !9
  %75 = tail call i32 @fileno(ptr noundef %74) #10
  %76 = tail call i32 @isatty(i32 noundef %75) #10
  %.not530 = icmp eq i32 %76, 0
  br i1 %.not530, label %77, label %78

77:                                               ; preds = %73, %66
  br label %78

78:                                               ; preds = %73, %77
  %.str.5.sink554 = phi ptr [ @.str.5, %77 ], [ @.str.2, %73 ]
  store i32 %68, ptr %67, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = load i32, ptr @test_count, align 4, !tbaa !5
  %81 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = tail call ptr @s2n_strerror(i32 noundef %82, ptr noundef nonnull @.str.4) #10
  %84 = load i32, ptr %81, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror_debug(i32 noundef %84, ptr noundef nonnull @.str.4) #10
  %86 = load i32, ptr %67, align 4, !tbaa !5
  %87 = tail call ptr @strerror(i32 noundef %86) #10
  %88 = load i32, ptr %67, align 4, !tbaa !5
  %89 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %79, ptr noundef nonnull %.str.5.sink554, i32 noundef %80, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %83, ptr noundef %85, ptr noundef %87, i32 noundef %88) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

90:                                               ; preds = %63
  %91 = tail call zeroext i1 (...) @s2n_is_tls13_fully_supported() #10
  br i1 %91, label %167, label %92

92:                                               ; preds = %90
  %93 = tail call i32 @s2n_cleanup() #10
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

95:                                               ; preds = %92
  %96 = tail call ptr @__errno_location() #11
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @s2n_print_stacktrace(ptr noundef %98) #10
  %100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %101 = trunc nuw i8 %100 to i1
  br i1 %101, label %102, label %106

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #10
  %105 = tail call i32 @isatty(i32 noundef %104) #10
  %.not416 = icmp eq i32 %105, 0
  br i1 %.not416, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink565 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #10
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #10
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #10
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink565, i32 noundef %109, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

119:                                              ; preds = %92
  %120 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %121 = icmp eq i32 %120, -1
  br i1 %121, label %122, label %146

122:                                              ; preds = %119
  %123 = tail call ptr @__errno_location() #11
  %124 = load i32, ptr %123, align 4, !tbaa !5
  %125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %126 = tail call i32 @s2n_print_stacktrace(ptr noundef %125) #10
  %127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %128 = trunc nuw i8 %127 to i1
  br i1 %128, label %129, label %133

129:                                              ; preds = %122
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = tail call i32 @fileno(ptr noundef %130) #10
  %132 = tail call i32 @isatty(i32 noundef %131) #10
  %.not415 = icmp eq i32 %132, 0
  br i1 %.not415, label %133, label %134

133:                                              ; preds = %129, %122
  br label %134

134:                                              ; preds = %129, %133
  %.str.5.sink576 = phi ptr [ @.str.5, %133 ], [ @.str.2, %129 ]
  store i32 %124, ptr %123, align 4, !tbaa !5
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = load i32, ptr @test_count, align 4, !tbaa !5
  %137 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %138 = load i32, ptr %137, align 4, !tbaa !5
  %139 = tail call ptr @s2n_strerror(i32 noundef %138, ptr noundef nonnull @.str.4) #10
  %140 = load i32, ptr %137, align 4, !tbaa !5
  %141 = tail call ptr @s2n_strerror_debug(i32 noundef %140, ptr noundef nonnull @.str.4) #10
  %142 = load i32, ptr %123, align 4, !tbaa !5
  %143 = tail call ptr @strerror(i32 noundef %142) #10
  %144 = load i32, ptr %123, align 4, !tbaa !5
  %145 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %135, ptr noundef nonnull %.str.5.sink576, i32 noundef %136, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %139, ptr noundef %141, ptr noundef %143, i32 noundef %144) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

146:                                              ; preds = %119
  %147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %148 = trunc nuw i8 %147 to i1
  br i1 %148, label %149, label %160

149:                                              ; preds = %146
  %150 = load ptr, ptr @stdout, align 8, !tbaa !9
  %151 = tail call i32 @fileno(ptr noundef %150) #10
  %152 = tail call i32 @isatty(i32 noundef %151) #10
  %.not = icmp eq i32 %152, 0
  br i1 %.not, label %160, label %153

153:                                              ; preds = %149
  %154 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not414 = icmp eq i32 %154, 0
  %155 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not414, label %158, label %156

156:                                              ; preds = %153
  %157 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef nonnull @.str.10, i32 noundef %154) #10
  br label %3206

158:                                              ; preds = %153
  %159 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef nonnull @.str.11) #10
  br label %3206

160:                                              ; preds = %149, %146
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not413 = icmp eq i32 %161, 0
  %162 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not413, label %165, label %163

163:                                              ; preds = %160
  %164 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %162, ptr noundef nonnull @.str.12, i32 noundef %161) #10
  br label %3206

165:                                              ; preds = %160
  %166 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %162, ptr noundef nonnull @.str.13) #10
  br label %3206

167:                                              ; preds = %90
  %168 = load i32, ptr @test_count, align 4, !tbaa !5
  %169 = add nsw i32 %168, 1
  store i32 %169, ptr @test_count, align 4, !tbaa !5
  %170 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_early_data_indication_extension, i64 24), align 8, !tbaa !15
  %171 = tail call zeroext i1 %170(ptr noundef null) #10
  br i1 %171, label %172, label %196

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

179:                                              ; preds = %172
  %180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %181 = tail call i32 @fileno(ptr noundef %180) #10
  %182 = tail call i32 @isatty(i32 noundef %181) #10
  %.not529 = icmp eq i32 %182, 0
  br i1 %.not529, label %183, label %184

183:                                              ; preds = %179, %172
  br label %184

184:                                              ; preds = %179, %183
  %.str.5.sink587 = phi ptr [ @.str.5, %183 ], [ @.str.2, %179 ]
  store i32 %174, ptr %173, align 4, !tbaa !5
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = load i32, ptr @test_count, align 4, !tbaa !5
  %187 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %188 = load i32, ptr %187, align 4, !tbaa !5
  %189 = tail call ptr @s2n_strerror(i32 noundef %188, ptr noundef nonnull @.str.4) #10
  %190 = load i32, ptr %187, align 4, !tbaa !5
  %191 = tail call ptr @s2n_strerror_debug(i32 noundef %190, ptr noundef nonnull @.str.4) #10
  %192 = load i32, ptr %173, align 4, !tbaa !5
  %193 = tail call ptr @strerror(i32 noundef %192) #10
  %194 = load i32, ptr %173, align 4, !tbaa !5
  %195 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %185, ptr noundef nonnull %.str.5.sink587, i32 noundef %186, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %189, ptr noundef %191, ptr noundef %193, i32 noundef %194) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

196:                                              ; preds = %167
  %197 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %198 = load i32, ptr @test_count, align 4, !tbaa !5
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr @test_count, align 4, !tbaa !5
  %200 = icmp eq ptr %197, null
  br i1 %200, label %201, label %225

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

208:                                              ; preds = %201
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = tail call i32 @fileno(ptr noundef %209) #10
  %211 = tail call i32 @isatty(i32 noundef %210) #10
  %.not528 = icmp eq i32 %211, 0
  br i1 %.not528, label %212, label %213

212:                                              ; preds = %208, %201
  br label %213

213:                                              ; preds = %208, %212
  %.str.5.sink598 = phi ptr [ @.str.5, %212 ], [ @.str.2, %208 ]
  store i32 %203, ptr %202, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %216 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = tail call ptr @s2n_strerror(i32 noundef %217, ptr noundef nonnull @.str.4) #10
  %219 = load i32, ptr %216, align 4, !tbaa !5
  %220 = tail call ptr @s2n_strerror_debug(i32 noundef %219, ptr noundef nonnull @.str.4) #10
  %221 = load i32, ptr %202, align 4, !tbaa !5
  %222 = tail call ptr @strerror(i32 noundef %221) #10
  %223 = load i32, ptr %202, align 4, !tbaa !5
  %224 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %214, ptr noundef nonnull %.str.5.sink598, i32 noundef %215, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %218, ptr noundef %220, ptr noundef %222, i32 noundef %223) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

225:                                              ; preds = %196
  %226 = getelementptr inbounds i8, ptr %197, i64 4088
  store i32 2, ptr %226, align 8, !tbaa !18
  %227 = add nsw i32 %198, 2
  store i32 %227, ptr @test_count, align 4, !tbaa !5
  %228 = tail call zeroext i1 %170(ptr noundef nonnull %197) #10
  br i1 %228, label %229, label %253

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

236:                                              ; preds = %229
  %237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %238 = tail call i32 @fileno(ptr noundef %237) #10
  %239 = tail call i32 @isatty(i32 noundef %238) #10
  %.not527 = icmp eq i32 %239, 0
  br i1 %.not527, label %240, label %241

240:                                              ; preds = %236, %229
  br label %241

241:                                              ; preds = %236, %240
  %.str.5.sink609 = phi ptr [ @.str.5, %240 ], [ @.str.2, %236 ]
  store i32 %231, ptr %230, align 4, !tbaa !5
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = load i32, ptr @test_count, align 4, !tbaa !5
  %244 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = tail call ptr @s2n_strerror(i32 noundef %245, ptr noundef nonnull @.str.4) #10
  %247 = load i32, ptr %244, align 4, !tbaa !5
  %248 = tail call ptr @s2n_strerror_debug(i32 noundef %247, ptr noundef nonnull @.str.4) #10
  %249 = load i32, ptr %230, align 4, !tbaa !5
  %250 = tail call ptr @strerror(i32 noundef %249) #10
  %251 = load i32, ptr %230, align 4, !tbaa !5
  %252 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %242, ptr noundef nonnull %.str.5.sink609, i32 noundef %243, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %246, ptr noundef %248, ptr noundef %250, i32 noundef %251) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

253:                                              ; preds = %225
  store i32 4, ptr %226, align 8, !tbaa !18
  %254 = load i32, ptr @test_count, align 4, !tbaa !5
  %255 = add nsw i32 %254, 1
  store i32 %255, ptr @test_count, align 4, !tbaa !5
  %256 = tail call zeroext i1 %170(ptr noundef nonnull %197) #10
  br i1 %256, label %257, label %281

257:                                              ; preds = %253
  %258 = tail call ptr @__errno_location() #11
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = tail call i32 @s2n_print_stacktrace(ptr noundef %260) #10
  %262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %263 = trunc nuw i8 %262 to i1
  br i1 %263, label %264, label %268

264:                                              ; preds = %257
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = tail call i32 @fileno(ptr noundef %265) #10
  %267 = tail call i32 @isatty(i32 noundef %266) #10
  %.not526 = icmp eq i32 %267, 0
  br i1 %.not526, label %268, label %269

268:                                              ; preds = %264, %257
  br label %269

269:                                              ; preds = %264, %268
  %.str.5.sink620 = phi ptr [ @.str.5, %268 ], [ @.str.2, %264 ]
  store i32 %259, ptr %258, align 4, !tbaa !5
  %270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %271 = load i32, ptr @test_count, align 4, !tbaa !5
  %272 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %273 = load i32, ptr %272, align 4, !tbaa !5
  %274 = tail call ptr @s2n_strerror(i32 noundef %273, ptr noundef nonnull @.str.4) #10
  %275 = load i32, ptr %272, align 4, !tbaa !5
  %276 = tail call ptr @s2n_strerror_debug(i32 noundef %275, ptr noundef nonnull @.str.4) #10
  %277 = load i32, ptr %258, align 4, !tbaa !5
  %278 = tail call ptr @strerror(i32 noundef %277) #10
  %279 = load i32, ptr %258, align 4, !tbaa !5
  %280 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %270, ptr noundef nonnull %.str.5.sink620, i32 noundef %271, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %274, ptr noundef %276, ptr noundef %278, i32 noundef %279) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

281:                                              ; preds = %253
  store i32 3, ptr %226, align 8, !tbaa !18
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = add nsw i32 %282, 1
  store i32 %283, ptr @test_count, align 4, !tbaa !5
  %284 = tail call zeroext i1 %170(ptr noundef nonnull %197) #10
  br i1 %284, label %309, label %285

285:                                              ; preds = %281
  %286 = tail call ptr @__errno_location() #11
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %289 = tail call i32 @s2n_print_stacktrace(ptr noundef %288) #10
  %290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %291 = trunc nuw i8 %290 to i1
  br i1 %291, label %292, label %296

292:                                              ; preds = %285
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = tail call i32 @fileno(ptr noundef %293) #10
  %295 = tail call i32 @isatty(i32 noundef %294) #10
  %.not417 = icmp eq i32 %295, 0
  br i1 %.not417, label %296, label %297

296:                                              ; preds = %292, %285
  br label %297

297:                                              ; preds = %292, %296
  %.str.5.sink631 = phi ptr [ @.str.5, %296 ], [ @.str.2, %292 ]
  store i32 %287, ptr %286, align 4, !tbaa !5
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = load i32, ptr @test_count, align 4, !tbaa !5
  %300 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %301 = load i32, ptr %300, align 4, !tbaa !5
  %302 = tail call ptr @s2n_strerror(i32 noundef %301, ptr noundef nonnull @.str.4) #10
  %303 = load i32, ptr %300, align 4, !tbaa !5
  %304 = tail call ptr @s2n_strerror_debug(i32 noundef %303, ptr noundef nonnull @.str.4) #10
  %305 = load i32, ptr %286, align 4, !tbaa !5
  %306 = tail call ptr @strerror(i32 noundef %305) #10
  %307 = load i32, ptr %286, align 4, !tbaa !5
  %308 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %298, ptr noundef nonnull %.str.5.sink631, i32 noundef %299, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %302, ptr noundef %304, ptr noundef %306, i32 noundef %307) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

309:                                              ; preds = %281
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = add nsw i32 %310, 1
  store i32 %311, ptr @test_count, align 4, !tbaa !5
  %312 = tail call i32 @s2n_connection_free(ptr noundef nonnull %197) #10
  %313 = icmp eq i32 %312, -1
  br i1 %313, label %314, label %338

314:                                              ; preds = %309
  %315 = tail call ptr @__errno_location() #11
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = tail call i32 @s2n_print_stacktrace(ptr noundef %317) #10
  %319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %320 = trunc nuw i8 %319 to i1
  br i1 %320, label %321, label %325

321:                                              ; preds = %314
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = tail call i32 @fileno(ptr noundef %322) #10
  %324 = tail call i32 @isatty(i32 noundef %323) #10
  %.not525 = icmp eq i32 %324, 0
  br i1 %.not525, label %325, label %326

325:                                              ; preds = %321, %314
  br label %326

326:                                              ; preds = %321, %325
  %.str.5.sink642 = phi ptr [ @.str.5, %325 ], [ @.str.2, %321 ]
  store i32 %316, ptr %315, align 4, !tbaa !5
  %327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %328 = load i32, ptr @test_count, align 4, !tbaa !5
  %329 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = tail call ptr @s2n_strerror(i32 noundef %330, ptr noundef nonnull @.str.4) #10
  %332 = load i32, ptr %329, align 4, !tbaa !5
  %333 = tail call ptr @s2n_strerror_debug(i32 noundef %332, ptr noundef nonnull @.str.4) #10
  %334 = load i32, ptr %315, align 4, !tbaa !5
  %335 = tail call ptr @strerror(i32 noundef %334) #10
  %336 = load i32, ptr %315, align 4, !tbaa !5
  %337 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %327, ptr noundef nonnull %.str.5.sink642, i32 noundef %328, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %331, ptr noundef %333, ptr noundef %335, i32 noundef %336) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

338:                                              ; preds = %309
  %339 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %340 = load i32, ptr @test_count, align 4, !tbaa !5
  %341 = add nsw i32 %340, 1
  store i32 %341, ptr @test_count, align 4, !tbaa !5
  %342 = icmp eq ptr %339, null
  br i1 %342, label %343, label %367

343:                                              ; preds = %338
  %344 = tail call ptr @__errno_location() #11
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = tail call i32 @s2n_print_stacktrace(ptr noundef %346) #10
  %348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %349 = trunc nuw i8 %348 to i1
  br i1 %349, label %350, label %354

350:                                              ; preds = %343
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = tail call i32 @fileno(ptr noundef %351) #10
  %353 = tail call i32 @isatty(i32 noundef %352) #10
  %.not524 = icmp eq i32 %353, 0
  br i1 %.not524, label %354, label %355

354:                                              ; preds = %350, %343
  br label %355

355:                                              ; preds = %350, %354
  %.str.5.sink653 = phi ptr [ @.str.5, %354 ], [ @.str.2, %350 ]
  store i32 %345, ptr %344, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = load i32, ptr @test_count, align 4, !tbaa !5
  %358 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = tail call ptr @s2n_strerror(i32 noundef %359, ptr noundef nonnull @.str.4) #10
  %361 = load i32, ptr %358, align 4, !tbaa !5
  %362 = tail call ptr @s2n_strerror_debug(i32 noundef %361, ptr noundef nonnull @.str.4) #10
  %363 = load i32, ptr %344, align 4, !tbaa !5
  %364 = tail call ptr @strerror(i32 noundef %363) #10
  %365 = load i32, ptr %344, align 4, !tbaa !5
  %366 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %356, ptr noundef nonnull %.str.5.sink653, i32 noundef %357, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %360, ptr noundef %362, ptr noundef %364, i32 noundef %365) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

367:                                              ; preds = %338
  %368 = getelementptr inbounds i8, ptr %339, i64 4088
  store i32 2, ptr %368, align 8, !tbaa !18
  %369 = add nsw i32 %340, 2
  store i32 %369, ptr @test_count, align 4, !tbaa !5
  %370 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_early_data_indication_extension, i64 32), align 8, !tbaa !44
  %371 = tail call i32 %370(ptr noundef nonnull %339) #10
  %372 = icmp eq i32 %371, -1
  br i1 %372, label %373, label %397

373:                                              ; preds = %367
  %374 = tail call ptr @__errno_location() #11
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = tail call i32 @s2n_print_stacktrace(ptr noundef %376) #10
  %378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %379 = trunc nuw i8 %378 to i1
  br i1 %379, label %380, label %384

380:                                              ; preds = %373
  %381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %382 = tail call i32 @fileno(ptr noundef %381) #10
  %383 = tail call i32 @isatty(i32 noundef %382) #10
  %.not523 = icmp eq i32 %383, 0
  br i1 %.not523, label %384, label %385

384:                                              ; preds = %380, %373
  br label %385

385:                                              ; preds = %380, %384
  %.str.5.sink664 = phi ptr [ @.str.5, %384 ], [ @.str.2, %380 ]
  store i32 %375, ptr %374, align 4, !tbaa !5
  %386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %387 = load i32, ptr @test_count, align 4, !tbaa !5
  %388 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = tail call ptr @s2n_strerror(i32 noundef %389, ptr noundef nonnull @.str.4) #10
  %391 = load i32, ptr %388, align 4, !tbaa !5
  %392 = tail call ptr @s2n_strerror_debug(i32 noundef %391, ptr noundef nonnull @.str.4) #10
  %393 = load i32, ptr %374, align 4, !tbaa !5
  %394 = tail call ptr @strerror(i32 noundef %393) #10
  %395 = load i32, ptr %374, align 4, !tbaa !5
  %396 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %386, ptr noundef nonnull %.str.5.sink664, i32 noundef %387, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %390, ptr noundef %392, ptr noundef %394, i32 noundef %395) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

397:                                              ; preds = %367
  %398 = load i32, ptr @test_count, align 4, !tbaa !5
  %399 = add nsw i32 %398, 1
  store i32 %399, ptr @test_count, align 4, !tbaa !5
  %400 = load i32, ptr %368, align 8, !tbaa !18
  %401 = icmp eq i32 %400, 2
  br i1 %401, label %426, label %402

402:                                              ; preds = %397
  %403 = tail call ptr @__errno_location() #11
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = tail call i32 @s2n_print_stacktrace(ptr noundef %405) #10
  %407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %408 = trunc nuw i8 %407 to i1
  br i1 %408, label %409, label %413

409:                                              ; preds = %402
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = tail call i32 @fileno(ptr noundef %410) #10
  %412 = tail call i32 @isatty(i32 noundef %411) #10
  %.not418 = icmp eq i32 %412, 0
  br i1 %.not418, label %413, label %414

413:                                              ; preds = %409, %402
  br label %414

414:                                              ; preds = %409, %413
  %.str.5.sink675 = phi ptr [ @.str.5, %413 ], [ @.str.2, %409 ]
  store i32 %404, ptr %403, align 4, !tbaa !5
  %415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = tail call ptr @s2n_strerror(i32 noundef %418, ptr noundef nonnull @.str.4) #10
  %420 = load i32, ptr %417, align 4, !tbaa !5
  %421 = tail call ptr @s2n_strerror_debug(i32 noundef %420, ptr noundef nonnull @.str.4) #10
  %422 = load i32, ptr %403, align 4, !tbaa !5
  %423 = tail call ptr @strerror(i32 noundef %422) #10
  %424 = load i32, ptr %403, align 4, !tbaa !5
  %425 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %415, ptr noundef nonnull %.str.5.sink675, i32 noundef %416, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %419, ptr noundef %421, ptr noundef %423, i32 noundef %424) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

426:                                              ; preds = %397
  store i32 1, ptr %368, align 8, !tbaa !18
  %427 = add nsw i32 %398, 2
  store i32 %427, ptr @test_count, align 4, !tbaa !5
  %428 = tail call i32 %370(ptr noundef nonnull %339) #10
  %429 = icmp eq i32 %428, -1
  br i1 %429, label %430, label %454

430:                                              ; preds = %426
  %431 = tail call ptr @__errno_location() #11
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %434 = tail call i32 @s2n_print_stacktrace(ptr noundef %433) #10
  %435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %436 = trunc nuw i8 %435 to i1
  br i1 %436, label %437, label %441

437:                                              ; preds = %430
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = tail call i32 @fileno(ptr noundef %438) #10
  %440 = tail call i32 @isatty(i32 noundef %439) #10
  %.not522 = icmp eq i32 %440, 0
  br i1 %.not522, label %441, label %442

441:                                              ; preds = %437, %430
  br label %442

442:                                              ; preds = %437, %441
  %.str.5.sink686 = phi ptr [ @.str.5, %441 ], [ @.str.2, %437 ]
  store i32 %432, ptr %431, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = tail call ptr @s2n_strerror(i32 noundef %446, ptr noundef nonnull @.str.4) #10
  %448 = load i32, ptr %445, align 4, !tbaa !5
  %449 = tail call ptr @s2n_strerror_debug(i32 noundef %448, ptr noundef nonnull @.str.4) #10
  %450 = load i32, ptr %431, align 4, !tbaa !5
  %451 = tail call ptr @strerror(i32 noundef %450) #10
  %452 = load i32, ptr %431, align 4, !tbaa !5
  %453 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %443, ptr noundef nonnull %.str.5.sink686, i32 noundef %444, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %447, ptr noundef %449, ptr noundef %451, i32 noundef %452) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

454:                                              ; preds = %426
  %455 = load i32, ptr @test_count, align 4, !tbaa !5
  %456 = add nsw i32 %455, 1
  store i32 %456, ptr @test_count, align 4, !tbaa !5
  %457 = load i32, ptr %368, align 8, !tbaa !18
  %458 = icmp eq i32 %457, 4
  br i1 %458, label %483, label %459

459:                                              ; preds = %454
  %460 = tail call ptr @__errno_location() #11
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %463 = tail call i32 @s2n_print_stacktrace(ptr noundef %462) #10
  %464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %465 = trunc nuw i8 %464 to i1
  br i1 %465, label %466, label %470

466:                                              ; preds = %459
  %467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %468 = tail call i32 @fileno(ptr noundef %467) #10
  %469 = tail call i32 @isatty(i32 noundef %468) #10
  %.not419 = icmp eq i32 %469, 0
  br i1 %.not419, label %470, label %471

470:                                              ; preds = %466, %459
  br label %471

471:                                              ; preds = %466, %470
  %.str.5.sink697 = phi ptr [ @.str.5, %470 ], [ @.str.2, %466 ]
  store i32 %461, ptr %460, align 4, !tbaa !5
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = tail call ptr @s2n_strerror(i32 noundef %475, ptr noundef nonnull @.str.4) #10
  %477 = load i32, ptr %474, align 4, !tbaa !5
  %478 = tail call ptr @s2n_strerror_debug(i32 noundef %477, ptr noundef nonnull @.str.4) #10
  %479 = load i32, ptr %460, align 4, !tbaa !5
  %480 = tail call ptr @strerror(i32 noundef %479) #10
  %481 = load i32, ptr %460, align 4, !tbaa !5
  %482 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %472, ptr noundef nonnull %.str.5.sink697, i32 noundef %473, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %476, ptr noundef %478, ptr noundef %480, i32 noundef %481) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

483:                                              ; preds = %454
  %484 = add nsw i32 %455, 2
  store i32 %484, ptr @test_count, align 4, !tbaa !5
  %485 = tail call i32 @s2n_connection_free(ptr noundef nonnull %339) #10
  %486 = icmp eq i32 %485, -1
  br i1 %486, label %487, label %511

487:                                              ; preds = %483
  %488 = tail call ptr @__errno_location() #11
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = tail call i32 @s2n_print_stacktrace(ptr noundef %490) #10
  %492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %493 = trunc nuw i8 %492 to i1
  br i1 %493, label %494, label %498

494:                                              ; preds = %487
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = tail call i32 @fileno(ptr noundef %495) #10
  %497 = tail call i32 @isatty(i32 noundef %496) #10
  %.not521 = icmp eq i32 %497, 0
  br i1 %.not521, label %498, label %499

498:                                              ; preds = %494, %487
  br label %499

499:                                              ; preds = %494, %498
  %.str.5.sink708 = phi ptr [ @.str.5, %498 ], [ @.str.2, %494 ]
  store i32 %489, ptr %488, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = tail call ptr @s2n_strerror(i32 noundef %503, ptr noundef nonnull @.str.4) #10
  %505 = load i32, ptr %502, align 4, !tbaa !5
  %506 = tail call ptr @s2n_strerror_debug(i32 noundef %505, ptr noundef nonnull @.str.4) #10
  %507 = load i32, ptr %488, align 4, !tbaa !5
  %508 = tail call ptr @strerror(i32 noundef %507) #10
  %509 = load i32, ptr %488, align 4, !tbaa !5
  %510 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef nonnull %.str.5.sink708, i32 noundef %501, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %504, ptr noundef %506, ptr noundef %508, i32 noundef %509) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

511:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, i8 0, i64 40, i1 false)
  %512 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = add nsw i32 %513, 1
  store i32 %514, ptr @test_count, align 4, !tbaa !5
  %515 = icmp eq ptr %512, null
  br i1 %515, label %516, label %540

516:                                              ; preds = %511
  %517 = tail call ptr @__errno_location() #11
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = tail call i32 @s2n_print_stacktrace(ptr noundef %519) #10
  %521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %522 = trunc nuw i8 %521 to i1
  br i1 %522, label %523, label %527

523:                                              ; preds = %516
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = tail call i32 @fileno(ptr noundef %524) #10
  %526 = tail call i32 @isatty(i32 noundef %525) #10
  %.not520 = icmp eq i32 %526, 0
  br i1 %.not520, label %527, label %528

527:                                              ; preds = %523, %516
  br label %528

528:                                              ; preds = %523, %527
  %.str.5.sink719 = phi ptr [ @.str.5, %527 ], [ @.str.2, %523 ]
  store i32 %518, ptr %517, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = load i32, ptr @test_count, align 4, !tbaa !5
  %531 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = tail call ptr @s2n_strerror(i32 noundef %532, ptr noundef nonnull @.str.4) #10
  %534 = load i32, ptr %531, align 4, !tbaa !5
  %535 = tail call ptr @s2n_strerror_debug(i32 noundef %534, ptr noundef nonnull @.str.4) #10
  %536 = load i32, ptr %517, align 4, !tbaa !5
  %537 = tail call ptr @strerror(i32 noundef %536) #10
  %538 = load i32, ptr %517, align 4, !tbaa !5
  %539 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %529, ptr noundef nonnull %.str.5.sink719, i32 noundef %530, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %533, ptr noundef %535, ptr noundef %537, i32 noundef %538) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

540:                                              ; preds = %511
  %541 = getelementptr inbounds i8, ptr %512, i64 232
  %542 = load ptr, ptr %541, align 8, !tbaa !45
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %542, align 8, !tbaa !46
  %543 = getelementptr inbounds i8, ptr %512, i64 220
  store i8 34, ptr %543, align 4, !tbaa !51
  %544 = getelementptr inbounds i8, ptr %512, i64 4088
  store i32 1, ptr %544, align 8, !tbaa !18
  %545 = add nsw i32 %513, 2
  store i32 %545, ptr @test_count, align 4, !tbaa !5
  %546 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_early_data_indication_extension, i64 16), align 8, !tbaa !52
  %547 = call i32 %546(ptr noundef nonnull %512, ptr noundef nonnull %3) #10
  %548 = icmp eq i32 %547, -1
  br i1 %548, label %573, label %549

549:                                              ; preds = %540
  %550 = tail call ptr @__errno_location() #11
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @s2n_print_stacktrace(ptr noundef %552) #10
  %554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %555 = trunc nuw i8 %554 to i1
  br i1 %555, label %556, label %560

556:                                              ; preds = %549
  %557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %558 = call i32 @fileno(ptr noundef %557) #10
  %559 = call i32 @isatty(i32 noundef %558) #10
  %.not420 = icmp eq i32 %559, 0
  br i1 %.not420, label %560, label %561

560:                                              ; preds = %556, %549
  br label %561

561:                                              ; preds = %556, %560
  %.str.5.sink730 = phi ptr [ @.str.5, %560 ], [ @.str.2, %556 ]
  store i32 %551, ptr %550, align 4, !tbaa !5
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call ptr @s2n_strerror(i32 noundef %565, ptr noundef nonnull @.str.4) #10
  %567 = load i32, ptr %564, align 4, !tbaa !5
  %568 = call ptr @s2n_strerror_debug(i32 noundef %567, ptr noundef nonnull @.str.4) #10
  %569 = load i32, ptr %550, align 4, !tbaa !5
  %570 = call ptr @strerror(i32 noundef %569) #10
  %571 = load i32, ptr %550, align 4, !tbaa !5
  %572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %562, ptr noundef nonnull %.str.5.sink730, i32 noundef %563, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %566, ptr noundef %568, ptr noundef %570, i32 noundef %571) #12
  call void @exit(i32 noundef 1) #13
  unreachable

573:                                              ; preds = %540
  %574 = load i32, ptr @test_count, align 4, !tbaa !5
  %575 = add nsw i32 %574, 1
  store i32 %575, ptr @test_count, align 4, !tbaa !5
  %576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = icmp eq i32 %577, 469762113
  br i1 %578, label %602, label %579

579:                                              ; preds = %573
  %580 = tail call ptr @__errno_location() #11
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = call i32 @s2n_print_stacktrace(ptr noundef %582) #10
  %584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %585 = trunc nuw i8 %584 to i1
  br i1 %585, label %586, label %590

586:                                              ; preds = %579
  %587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %588 = call i32 @fileno(ptr noundef %587) #10
  %589 = call i32 @isatty(i32 noundef %588) #10
  %.not421 = icmp eq i32 %589, 0
  br i1 %.not421, label %590, label %591

590:                                              ; preds = %586, %579
  br label %591

591:                                              ; preds = %586, %590
  %.str.5.sink741 = phi ptr [ @.str.5, %590 ], [ @.str.2, %586 ]
  store i32 %581, ptr %580, align 4, !tbaa !5
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = load i32, ptr @test_count, align 4, !tbaa !5
  %594 = load i32, ptr %576, align 4, !tbaa !5
  %595 = call ptr @s2n_strerror(i32 noundef %594, ptr noundef nonnull @.str.4) #10
  %596 = load i32, ptr %576, align 4, !tbaa !5
  %597 = call ptr @s2n_strerror_debug(i32 noundef %596, ptr noundef nonnull @.str.4) #10
  %598 = load i32, ptr %580, align 4, !tbaa !5
  %599 = call ptr @strerror(i32 noundef %598) #10
  %600 = load i32, ptr %580, align 4, !tbaa !5
  %601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %592, ptr noundef nonnull %.str.5.sink741, i32 noundef %593, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %595, ptr noundef %597, ptr noundef %599, i32 noundef %600) #12
  call void @exit(i32 noundef 1) #13
  unreachable

602:                                              ; preds = %573
  %603 = add nsw i32 %574, 2
  store i32 %603, ptr @test_count, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror_debug(i32 noundef 469762113, ptr noundef nonnull @.str.4) #10
  %605 = icmp eq ptr %604, null
  br i1 %605, label %606, label %629

606:                                              ; preds = %602
  %607 = tail call ptr @__errno_location() #11
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = call i32 @s2n_print_stacktrace(ptr noundef %609) #10
  %611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %612 = trunc nuw i8 %611 to i1
  br i1 %612, label %613, label %617

613:                                              ; preds = %606
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = call i32 @fileno(ptr noundef %614) #10
  %616 = call i32 @isatty(i32 noundef %615) #10
  %.not519 = icmp eq i32 %616, 0
  br i1 %.not519, label %617, label %618

617:                                              ; preds = %613, %606
  br label %618

618:                                              ; preds = %613, %617
  %.str.5.sink750 = phi ptr [ @.str.5, %617 ], [ @.str.2, %613 ]
  store i32 %608, ptr %607, align 4, !tbaa !5
  %619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = load i32, ptr @test_count, align 4, !tbaa !5
  %621 = load i32, ptr %576, align 4, !tbaa !5
  %622 = call ptr @s2n_strerror(i32 noundef %621, ptr noundef nonnull @.str.4) #10
  %623 = load i32, ptr %576, align 4, !tbaa !5
  %624 = call ptr @s2n_strerror_debug(i32 noundef %623, ptr noundef nonnull @.str.4) #10
  %625 = load i32, ptr %607, align 4, !tbaa !5
  %626 = call ptr @strerror(i32 noundef %625) #10
  %627 = load i32, ptr %607, align 4, !tbaa !5
  %628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %619, ptr noundef nonnull %.str.5.sink750, i32 noundef %620, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %622, ptr noundef %624, ptr noundef %626, i32 noundef %627) #12
  call void @exit(i32 noundef 1) #13
  unreachable

629:                                              ; preds = %602
  store i32 0, ptr %576, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  %630 = tail call ptr @__errno_location() #11
  store i32 0, ptr %630, align 4, !tbaa !5
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr @test_count, align 4, !tbaa !5
  %633 = load i32, ptr %544, align 8, !tbaa !18
  %634 = icmp eq i32 %633, 3
  br i1 %634, label %635, label %657

635:                                              ; preds = %629
  %636 = load i32, ptr %630, align 4, !tbaa !5
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = call i32 @s2n_print_stacktrace(ptr noundef %637) #10
  %639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %640 = trunc nuw i8 %639 to i1
  br i1 %640, label %641, label %645

641:                                              ; preds = %635
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = call i32 @fileno(ptr noundef %642) #10
  %644 = call i32 @isatty(i32 noundef %643) #10
  %.not518 = icmp eq i32 %644, 0
  br i1 %.not518, label %645, label %646

645:                                              ; preds = %641, %635
  br label %646

646:                                              ; preds = %641, %645
  %.str.5.sink759 = phi ptr [ @.str.5, %645 ], [ @.str.2, %641 ]
  store i32 %636, ptr %630, align 4, !tbaa !5
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = load i32, ptr @test_count, align 4, !tbaa !5
  %649 = load i32, ptr %576, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror(i32 noundef %649, ptr noundef nonnull @.str.4) #10
  %651 = load i32, ptr %576, align 4, !tbaa !5
  %652 = call ptr @s2n_strerror_debug(i32 noundef %651, ptr noundef nonnull @.str.4) #10
  %653 = load i32, ptr %630, align 4, !tbaa !5
  %654 = call ptr @strerror(i32 noundef %653) #10
  %655 = load i32, ptr %630, align 4, !tbaa !5
  %656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %647, ptr noundef nonnull %.str.5.sink759, i32 noundef %648, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %650, ptr noundef %652, ptr noundef %654, i32 noundef %655) #12
  call void @exit(i32 noundef 1) #13
  unreachable

657:                                              ; preds = %629
  %658 = add nsw i32 %631, 2
  store i32 %658, ptr @test_count, align 4, !tbaa !5
  %659 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef nonnull %512, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #10
  %660 = call zeroext i1 @s2n_result_is_ok(i32 %659)
  br i1 %660, label %683, label %661

661:                                              ; preds = %657
  %662 = load i32, ptr %630, align 4, !tbaa !5
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = call i32 @s2n_print_stacktrace(ptr noundef %663) #10
  %665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %666 = trunc nuw i8 %665 to i1
  br i1 %666, label %667, label %671

667:                                              ; preds = %661
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = call i32 @fileno(ptr noundef %668) #10
  %670 = call i32 @isatty(i32 noundef %669) #10
  %.not422 = icmp eq i32 %670, 0
  br i1 %.not422, label %671, label %672

671:                                              ; preds = %667, %661
  br label %672

672:                                              ; preds = %667, %671
  %.str.5.sink768 = phi ptr [ @.str.5, %671 ], [ @.str.2, %667 ]
  store i32 %662, ptr %630, align 4, !tbaa !5
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = load i32, ptr @test_count, align 4, !tbaa !5
  %675 = load i32, ptr %576, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror(i32 noundef %675, ptr noundef nonnull @.str.4) #10
  %677 = load i32, ptr %576, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror_debug(i32 noundef %677, ptr noundef nonnull @.str.4) #10
  %679 = load i32, ptr %630, align 4, !tbaa !5
  %680 = call ptr @strerror(i32 noundef %679) #10
  %681 = load i32, ptr %630, align 4, !tbaa !5
  %682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %673, ptr noundef nonnull %.str.5.sink768, i32 noundef %674, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %676, ptr noundef %678, ptr noundef %680, i32 noundef %681) #12
  call void @exit(i32 noundef 1) #13
  unreachable

683:                                              ; preds = %657
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = add nsw i32 %684, 1
  store i32 %685, ptr @test_count, align 4, !tbaa !5
  %686 = call i32 %546(ptr noundef nonnull %512, ptr noundef nonnull %3) #10
  %687 = icmp eq i32 %686, -1
  br i1 %687, label %688, label %710

688:                                              ; preds = %683
  %689 = load i32, ptr %630, align 4, !tbaa !5
  %690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %691 = call i32 @s2n_print_stacktrace(ptr noundef %690) #10
  %692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %693 = trunc nuw i8 %692 to i1
  br i1 %693, label %694, label %698

694:                                              ; preds = %688
  %695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %696 = call i32 @fileno(ptr noundef %695) #10
  %697 = call i32 @isatty(i32 noundef %696) #10
  %.not517 = icmp eq i32 %697, 0
  br i1 %.not517, label %698, label %699

698:                                              ; preds = %694, %688
  br label %699

699:                                              ; preds = %694, %698
  %.str.5.sink777 = phi ptr [ @.str.5, %698 ], [ @.str.2, %694 ]
  store i32 %689, ptr %630, align 4, !tbaa !5
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = load i32, ptr @test_count, align 4, !tbaa !5
  %702 = load i32, ptr %576, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror(i32 noundef %702, ptr noundef nonnull @.str.4) #10
  %704 = load i32, ptr %576, align 4, !tbaa !5
  %705 = call ptr @s2n_strerror_debug(i32 noundef %704, ptr noundef nonnull @.str.4) #10
  %706 = load i32, ptr %630, align 4, !tbaa !5
  %707 = call ptr @strerror(i32 noundef %706) #10
  %708 = load i32, ptr %630, align 4, !tbaa !5
  %709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %700, ptr noundef nonnull %.str.5.sink777, i32 noundef %701, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %703, ptr noundef %705, ptr noundef %707, i32 noundef %708) #12
  call void @exit(i32 noundef 1) #13
  unreachable

710:                                              ; preds = %683
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = add nsw i32 %711, 1
  store i32 %712, ptr @test_count, align 4, !tbaa !5
  %713 = load i32, ptr %544, align 8, !tbaa !18
  %714 = icmp eq i32 %713, 3
  br i1 %714, label %737, label %715

715:                                              ; preds = %710
  %716 = load i32, ptr %630, align 4, !tbaa !5
  %717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %718 = call i32 @s2n_print_stacktrace(ptr noundef %717) #10
  %719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %720 = trunc nuw i8 %719 to i1
  br i1 %720, label %721, label %725

721:                                              ; preds = %715
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = call i32 @fileno(ptr noundef %722) #10
  %724 = call i32 @isatty(i32 noundef %723) #10
  %.not423 = icmp eq i32 %724, 0
  br i1 %.not423, label %725, label %726

725:                                              ; preds = %721, %715
  br label %726

726:                                              ; preds = %721, %725
  %.str.5.sink786 = phi ptr [ @.str.5, %725 ], [ @.str.2, %721 ]
  store i32 %716, ptr %630, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = load i32, ptr %576, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror(i32 noundef %729, ptr noundef nonnull @.str.4) #10
  %731 = load i32, ptr %576, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror_debug(i32 noundef %731, ptr noundef nonnull @.str.4) #10
  %733 = load i32, ptr %630, align 4, !tbaa !5
  %734 = call ptr @strerror(i32 noundef %733) #10
  %735 = load i32, ptr %630, align 4, !tbaa !5
  %736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %727, ptr noundef nonnull %.str.5.sink786, i32 noundef %728, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %730, ptr noundef %732, ptr noundef %734, i32 noundef %735) #12
  call void @exit(i32 noundef 1) #13
  unreachable

737:                                              ; preds = %710
  %738 = add nsw i32 %711, 2
  store i32 %738, ptr @test_count, align 4, !tbaa !5
  %739 = call i32 @s2n_connection_free(ptr noundef nonnull %512) #10
  %740 = icmp eq i32 %739, -1
  br i1 %740, label %741, label %763

741:                                              ; preds = %737
  %742 = load i32, ptr %630, align 4, !tbaa !5
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = call i32 @s2n_print_stacktrace(ptr noundef %743) #10
  %745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %746 = trunc nuw i8 %745 to i1
  br i1 %746, label %747, label %751

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

751:                                              ; preds = %747, %741
  br label %752

752:                                              ; preds = %747, %751
  %.str.5.sink795 = phi ptr [ @.str.5, %751 ], [ @.str.2, %747 ]
  store i32 %742, ptr %630, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = load i32, ptr @test_count, align 4, !tbaa !5
  %755 = load i32, ptr %576, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror(i32 noundef %755, ptr noundef nonnull @.str.4) #10
  %757 = load i32, ptr %576, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror_debug(i32 noundef %757, ptr noundef nonnull @.str.4) #10
  %759 = load i32, ptr %630, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #10
  %761 = load i32, ptr %630, align 4, !tbaa !5
  %762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %753, ptr noundef nonnull %.str.5.sink795, i32 noundef %754, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %756, ptr noundef %758, ptr noundef %760, i32 noundef %761) #12
  call void @exit(i32 noundef 1) #13
  unreachable

763:                                              ; preds = %737
  %764 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = add nsw i32 %765, 1
  store i32 %766, ptr @test_count, align 4, !tbaa !5
  %767 = icmp eq ptr %764, null
  br i1 %767, label %768, label %790

768:                                              ; preds = %763
  %769 = load i32, ptr %630, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = call i32 @s2n_print_stacktrace(ptr noundef %770) #10
  %772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %773 = trunc nuw i8 %772 to i1
  br i1 %773, label %774, label %778

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

778:                                              ; preds = %774, %768
  br label %779

779:                                              ; preds = %774, %778
  %.str.5.sink804 = phi ptr [ @.str.5, %778 ], [ @.str.2, %774 ]
  store i32 %769, ptr %630, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = load i32, ptr %576, align 4, !tbaa !5
  %783 = call ptr @s2n_strerror(i32 noundef %782, ptr noundef nonnull @.str.4) #10
  %784 = load i32, ptr %576, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror_debug(i32 noundef %784, ptr noundef nonnull @.str.4) #10
  %786 = load i32, ptr %630, align 4, !tbaa !5
  %787 = call ptr @strerror(i32 noundef %786) #10
  %788 = load i32, ptr %630, align 4, !tbaa !5
  %789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef nonnull %.str.5.sink804, i32 noundef %781, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %783, ptr noundef %785, ptr noundef %787, i32 noundef %788) #12
  call void @exit(i32 noundef 1) #13
  unreachable

790:                                              ; preds = %763
  %791 = getelementptr inbounds i8, ptr %764, i64 232
  %792 = load ptr, ptr %791, align 8, !tbaa !45
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %792, align 8, !tbaa !46
  %793 = getelementptr inbounds i8, ptr %764, i64 220
  store i8 34, ptr %793, align 4, !tbaa !51
  %794 = add nsw i32 %765, 2
  store i32 %794, ptr @test_count, align 4, !tbaa !5
  %795 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef nonnull %764, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #10
  %796 = call zeroext i1 @s2n_result_is_ok(i32 %795)
  br i1 %796, label %819, label %797

797:                                              ; preds = %790
  %798 = load i32, ptr %630, align 4, !tbaa !5
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = call i32 @s2n_print_stacktrace(ptr noundef %799) #10
  %801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %802 = trunc nuw i8 %801 to i1
  br i1 %802, label %803, label %807

803:                                              ; preds = %797
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = call i32 @fileno(ptr noundef %804) #10
  %806 = call i32 @isatty(i32 noundef %805) #10
  %.not424 = icmp eq i32 %806, 0
  br i1 %.not424, label %807, label %808

807:                                              ; preds = %803, %797
  br label %808

808:                                              ; preds = %803, %807
  %.str.5.sink813 = phi ptr [ @.str.5, %807 ], [ @.str.2, %803 ]
  store i32 %798, ptr %630, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = load i32, ptr %576, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror(i32 noundef %811, ptr noundef nonnull @.str.4) #10
  %813 = load i32, ptr %576, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror_debug(i32 noundef %813, ptr noundef nonnull @.str.4) #10
  %815 = load i32, ptr %630, align 4, !tbaa !5
  %816 = call ptr @strerror(i32 noundef %815) #10
  %817 = load i32, ptr %630, align 4, !tbaa !5
  %818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %809, ptr noundef nonnull %.str.5.sink813, i32 noundef %810, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %812, ptr noundef %814, ptr noundef %816, i32 noundef %817) #12
  call void @exit(i32 noundef 1) #13
  unreachable

819:                                              ; preds = %790
  %820 = getelementptr inbounds i8, ptr %764, i64 4088
  store i32 2, ptr %820, align 8, !tbaa !18
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = add nsw i32 %821, 1
  store i32 %822, ptr @test_count, align 4, !tbaa !5
  %823 = call i32 %546(ptr noundef nonnull %764, ptr noundef nonnull %3) #10
  %824 = icmp eq i32 %823, -1
  br i1 %824, label %847, label %825

825:                                              ; preds = %819
  %826 = load i32, ptr %630, align 4, !tbaa !5
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = call i32 @s2n_print_stacktrace(ptr noundef %827) #10
  %829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %830 = trunc nuw i8 %829 to i1
  br i1 %830, label %831, label %835

831:                                              ; preds = %825
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @fileno(ptr noundef %832) #10
  %834 = call i32 @isatty(i32 noundef %833) #10
  %.not425 = icmp eq i32 %834, 0
  br i1 %.not425, label %835, label %836

835:                                              ; preds = %831, %825
  br label %836

836:                                              ; preds = %831, %835
  %.str.5.sink822 = phi ptr [ @.str.5, %835 ], [ @.str.2, %831 ]
  store i32 %826, ptr %630, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = load i32, ptr %576, align 4, !tbaa !5
  %840 = call ptr @s2n_strerror(i32 noundef %839, ptr noundef nonnull @.str.4) #10
  %841 = load i32, ptr %576, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror_debug(i32 noundef %841, ptr noundef nonnull @.str.4) #10
  %843 = load i32, ptr %630, align 4, !tbaa !5
  %844 = call ptr @strerror(i32 noundef %843) #10
  %845 = load i32, ptr %630, align 4, !tbaa !5
  %846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %837, ptr noundef nonnull %.str.5.sink822, i32 noundef %838, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %840, ptr noundef %842, ptr noundef %844, i32 noundef %845) #12
  call void @exit(i32 noundef 1) #13
  unreachable

847:                                              ; preds = %819
  %848 = load i32, ptr @test_count, align 4, !tbaa !5
  %849 = add nsw i32 %848, 1
  store i32 %849, ptr @test_count, align 4, !tbaa !5
  %850 = load i32, ptr %576, align 4, !tbaa !5
  %851 = icmp eq i32 %850, 402653262
  br i1 %851, label %874, label %852

852:                                              ; preds = %847
  %853 = load i32, ptr %630, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = call i32 @s2n_print_stacktrace(ptr noundef %854) #10
  %856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %857 = trunc nuw i8 %856 to i1
  br i1 %857, label %858, label %862

858:                                              ; preds = %852
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = call i32 @fileno(ptr noundef %859) #10
  %861 = call i32 @isatty(i32 noundef %860) #10
  %.not426 = icmp eq i32 %861, 0
  br i1 %.not426, label %862, label %863

862:                                              ; preds = %858, %852
  br label %863

863:                                              ; preds = %858, %862
  %.str.5.sink831 = phi ptr [ @.str.5, %862 ], [ @.str.2, %858 ]
  store i32 %853, ptr %630, align 4, !tbaa !5
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = load i32, ptr @test_count, align 4, !tbaa !5
  %866 = load i32, ptr %576, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror(i32 noundef %866, ptr noundef nonnull @.str.4) #10
  %868 = load i32, ptr %576, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror_debug(i32 noundef %868, ptr noundef nonnull @.str.4) #10
  %870 = load i32, ptr %630, align 4, !tbaa !5
  %871 = call ptr @strerror(i32 noundef %870) #10
  %872 = load i32, ptr %630, align 4, !tbaa !5
  %873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %864, ptr noundef nonnull %.str.5.sink831, i32 noundef %865, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %867, ptr noundef %869, ptr noundef %871, i32 noundef %872) #12
  call void @exit(i32 noundef 1) #13
  unreachable

874:                                              ; preds = %847
  %875 = add nsw i32 %848, 2
  store i32 %875, ptr @test_count, align 4, !tbaa !5
  %876 = call ptr @s2n_strerror_debug(i32 noundef 402653262, ptr noundef nonnull @.str.4) #10
  %877 = icmp eq ptr %876, null
  br i1 %877, label %878, label %900

878:                                              ; preds = %874
  %879 = load i32, ptr %630, align 4, !tbaa !5
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = call i32 @s2n_print_stacktrace(ptr noundef %880) #10
  %882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %883 = trunc nuw i8 %882 to i1
  br i1 %883, label %884, label %888

884:                                              ; preds = %878
  %885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %886 = call i32 @fileno(ptr noundef %885) #10
  %887 = call i32 @isatty(i32 noundef %886) #10
  %.not514 = icmp eq i32 %887, 0
  br i1 %.not514, label %888, label %889

888:                                              ; preds = %884, %878
  br label %889

889:                                              ; preds = %884, %888
  %.str.5.sink840 = phi ptr [ @.str.5, %888 ], [ @.str.2, %884 ]
  store i32 %879, ptr %630, align 4, !tbaa !5
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = load i32, ptr %576, align 4, !tbaa !5
  %893 = call ptr @s2n_strerror(i32 noundef %892, ptr noundef nonnull @.str.4) #10
  %894 = load i32, ptr %576, align 4, !tbaa !5
  %895 = call ptr @s2n_strerror_debug(i32 noundef %894, ptr noundef nonnull @.str.4) #10
  %896 = load i32, ptr %630, align 4, !tbaa !5
  %897 = call ptr @strerror(i32 noundef %896) #10
  %898 = load i32, ptr %630, align 4, !tbaa !5
  %899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %890, ptr noundef nonnull %.str.5.sink840, i32 noundef %891, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %893, ptr noundef %895, ptr noundef %897, i32 noundef %898) #12
  call void @exit(i32 noundef 1) #13
  unreachable

900:                                              ; preds = %874
  store i32 0, ptr %576, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %630, align 4, !tbaa !5
  store i32 1, ptr %820, align 8, !tbaa !18
  %901 = load i32, ptr @test_count, align 4, !tbaa !5
  %902 = add nsw i32 %901, 1
  store i32 %902, ptr @test_count, align 4, !tbaa !5
  %903 = call i32 %546(ptr noundef nonnull %764, ptr noundef nonnull %3) #10
  %904 = icmp eq i32 %903, -1
  br i1 %904, label %905, label %927

905:                                              ; preds = %900
  %906 = load i32, ptr %630, align 4, !tbaa !5
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = call i32 @s2n_print_stacktrace(ptr noundef %907) #10
  %909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %910 = trunc nuw i8 %909 to i1
  br i1 %910, label %911, label %915

911:                                              ; preds = %905
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = call i32 @fileno(ptr noundef %912) #10
  %914 = call i32 @isatty(i32 noundef %913) #10
  %.not513 = icmp eq i32 %914, 0
  br i1 %.not513, label %915, label %916

915:                                              ; preds = %911, %905
  br label %916

916:                                              ; preds = %911, %915
  %.str.5.sink849 = phi ptr [ @.str.5, %915 ], [ @.str.2, %911 ]
  store i32 %906, ptr %630, align 4, !tbaa !5
  %917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %918 = load i32, ptr @test_count, align 4, !tbaa !5
  %919 = load i32, ptr %576, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror(i32 noundef %919, ptr noundef nonnull @.str.4) #10
  %921 = load i32, ptr %576, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror_debug(i32 noundef %921, ptr noundef nonnull @.str.4) #10
  %923 = load i32, ptr %630, align 4, !tbaa !5
  %924 = call ptr @strerror(i32 noundef %923) #10
  %925 = load i32, ptr %630, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %917, ptr noundef nonnull %.str.5.sink849, i32 noundef %918, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %920, ptr noundef %922, ptr noundef %924, i32 noundef %925) #12
  call void @exit(i32 noundef 1) #13
  unreachable

927:                                              ; preds = %900
  %928 = load i32, ptr @test_count, align 4, !tbaa !5
  %929 = add nsw i32 %928, 1
  store i32 %929, ptr @test_count, align 4, !tbaa !5
  %930 = load i32, ptr %820, align 8, !tbaa !18
  %931 = icmp eq i32 %930, 3
  br i1 %931, label %954, label %932

932:                                              ; preds = %927
  %933 = load i32, ptr %630, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = call i32 @s2n_print_stacktrace(ptr noundef %934) #10
  %936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %937 = trunc nuw i8 %936 to i1
  br i1 %937, label %938, label %942

938:                                              ; preds = %932
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = call i32 @fileno(ptr noundef %939) #10
  %941 = call i32 @isatty(i32 noundef %940) #10
  %.not427 = icmp eq i32 %941, 0
  br i1 %.not427, label %942, label %943

942:                                              ; preds = %938, %932
  br label %943

943:                                              ; preds = %938, %942
  %.str.5.sink858 = phi ptr [ @.str.5, %942 ], [ @.str.2, %938 ]
  store i32 %933, ptr %630, align 4, !tbaa !5
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = load i32, ptr %576, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror(i32 noundef %946, ptr noundef nonnull @.str.4) #10
  %948 = load i32, ptr %576, align 4, !tbaa !5
  %949 = call ptr @s2n_strerror_debug(i32 noundef %948, ptr noundef nonnull @.str.4) #10
  %950 = load i32, ptr %630, align 4, !tbaa !5
  %951 = call ptr @strerror(i32 noundef %950) #10
  %952 = load i32, ptr %630, align 4, !tbaa !5
  %953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %944, ptr noundef nonnull %.str.5.sink858, i32 noundef %945, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %947, ptr noundef %949, ptr noundef %951, i32 noundef %952) #12
  call void @exit(i32 noundef 1) #13
  unreachable

954:                                              ; preds = %927
  %955 = add nsw i32 %928, 2
  store i32 %955, ptr @test_count, align 4, !tbaa !5
  %956 = call i32 @s2n_connection_free(ptr noundef nonnull %764) #10
  %957 = icmp eq i32 %956, -1
  br i1 %957, label %958, label %980

958:                                              ; preds = %954
  %959 = load i32, ptr %630, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @s2n_print_stacktrace(ptr noundef %960) #10
  %962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %963 = trunc nuw i8 %962 to i1
  br i1 %963, label %964, label %968

964:                                              ; preds = %958
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @fileno(ptr noundef %965) #10
  %967 = call i32 @isatty(i32 noundef %966) #10
  %.not512 = icmp eq i32 %967, 0
  br i1 %.not512, label %968, label %969

968:                                              ; preds = %964, %958
  br label %969

969:                                              ; preds = %964, %968
  %.str.5.sink867 = phi ptr [ @.str.5, %968 ], [ @.str.2, %964 ]
  store i32 %959, ptr %630, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = load i32, ptr %576, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror(i32 noundef %972, ptr noundef nonnull @.str.4) #10
  %974 = load i32, ptr %576, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef nonnull @.str.4) #10
  %976 = load i32, ptr %630, align 4, !tbaa !5
  %977 = call ptr @strerror(i32 noundef %976) #10
  %978 = load i32, ptr %630, align 4, !tbaa !5
  %979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %970, ptr noundef nonnull %.str.5.sink867, i32 noundef %971, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %973, ptr noundef %975, ptr noundef %977, i32 noundef %978) #12
  call void @exit(i32 noundef 1) #13
  unreachable

980:                                              ; preds = %954
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #10
  %981 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = add nsw i32 %982, 1
  store i32 %983, ptr @test_count, align 4, !tbaa !5
  %984 = icmp eq ptr %981, null
  br i1 %984, label %985, label %1007

985:                                              ; preds = %980
  %986 = load i32, ptr %630, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @s2n_print_stacktrace(ptr noundef %987) #10
  %989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %990 = trunc nuw i8 %989 to i1
  br i1 %990, label %991, label %995

991:                                              ; preds = %985
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = call i32 @fileno(ptr noundef %992) #10
  %994 = call i32 @isatty(i32 noundef %993) #10
  %.not511 = icmp eq i32 %994, 0
  br i1 %.not511, label %995, label %996

995:                                              ; preds = %991, %985
  br label %996

996:                                              ; preds = %991, %995
  %.str.5.sink876 = phi ptr [ @.str.5, %995 ], [ @.str.2, %991 ]
  store i32 %986, ptr %630, align 4, !tbaa !5
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = load i32, ptr @test_count, align 4, !tbaa !5
  %999 = load i32, ptr %576, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror(i32 noundef %999, ptr noundef nonnull @.str.4) #10
  %1001 = load i32, ptr %576, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror_debug(i32 noundef %1001, ptr noundef nonnull @.str.4) #10
  %1003 = load i32, ptr %630, align 4, !tbaa !5
  %1004 = call ptr @strerror(i32 noundef %1003) #10
  %1005 = load i32, ptr %630, align 4, !tbaa !5
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %997, ptr noundef nonnull %.str.5.sink876, i32 noundef %998, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %1000, ptr noundef %1002, ptr noundef %1004, i32 noundef %1005) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1007:                                             ; preds = %980
  %1008 = add nsw i32 %982, 2
  store i32 %1008, ptr @test_count, align 4, !tbaa !5
  %1009 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef nonnull %981, i32 noundef 0, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #10
  %1010 = call zeroext i1 @s2n_result_is_ok(i32 %1009)
  br i1 %1010, label %1033, label %1011

1011:                                             ; preds = %1007
  %1012 = load i32, ptr %630, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @s2n_print_stacktrace(ptr noundef %1013) #10
  %1015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1016 = trunc nuw i8 %1015 to i1
  br i1 %1016, label %1017, label %1021

1017:                                             ; preds = %1011
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @fileno(ptr noundef %1018) #10
  %1020 = call i32 @isatty(i32 noundef %1019) #10
  %.not428 = icmp eq i32 %1020, 0
  br i1 %.not428, label %1021, label %1022

1021:                                             ; preds = %1017, %1011
  br label %1022

1022:                                             ; preds = %1017, %1021
  %.str.5.sink885 = phi ptr [ @.str.5, %1021 ], [ @.str.2, %1017 ]
  store i32 %1012, ptr %630, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = load i32, ptr %576, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror(i32 noundef %1025, ptr noundef nonnull @.str.4) #10
  %1027 = load i32, ptr %576, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror_debug(i32 noundef %1027, ptr noundef nonnull @.str.4) #10
  %1029 = load i32, ptr %630, align 4, !tbaa !5
  %1030 = call ptr @strerror(i32 noundef %1029) #10
  %1031 = load i32, ptr %630, align 4, !tbaa !5
  %1032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef nonnull %.str.5.sink885, i32 noundef %1024, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %1026, ptr noundef %1028, ptr noundef %1030, i32 noundef %1031) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1033:                                             ; preds = %1007
  %1034 = load i32, ptr @test_count, align 4, !tbaa !5
  %1035 = add nsw i32 %1034, 1
  store i32 %1035, ptr @test_count, align 4, !tbaa !5
  %1036 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %981, ptr noundef nonnull @.str.30) #10
  %1037 = icmp eq i32 %1036, -1
  br i1 %1037, label %1038, label %1060

1038:                                             ; preds = %1033
  %1039 = load i32, ptr %630, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = call i32 @s2n_print_stacktrace(ptr noundef %1040) #10
  %1042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1043 = trunc nuw i8 %1042 to i1
  br i1 %1043, label %1044, label %1048

1044:                                             ; preds = %1038
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @fileno(ptr noundef %1045) #10
  %1047 = call i32 @isatty(i32 noundef %1046) #10
  %.not510 = icmp eq i32 %1047, 0
  br i1 %.not510, label %1048, label %1049

1048:                                             ; preds = %1044, %1038
  br label %1049

1049:                                             ; preds = %1044, %1048
  %.str.5.sink894 = phi ptr [ @.str.5, %1048 ], [ @.str.2, %1044 ]
  store i32 %1039, ptr %630, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = load i32, ptr %576, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror(i32 noundef %1052, ptr noundef nonnull @.str.4) #10
  %1054 = load i32, ptr %576, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror_debug(i32 noundef %1054, ptr noundef nonnull @.str.4) #10
  %1056 = load i32, ptr %630, align 4, !tbaa !5
  %1057 = call ptr @strerror(i32 noundef %1056) #10
  %1058 = load i32, ptr %630, align 4, !tbaa !5
  %1059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef nonnull %.str.5.sink894, i32 noundef %1051, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %1053, ptr noundef %1055, ptr noundef %1057, i32 noundef %1058) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1060:                                             ; preds = %1033
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = add nsw i32 %1061, 1
  store i32 %1062, ptr @test_count, align 4, !tbaa !5
  %1063 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %981) #10
  %1064 = icmp eq i32 %1063, -1
  br i1 %1064, label %1065, label %1087

1065:                                             ; preds = %1060
  %1066 = load i32, ptr %630, align 4, !tbaa !5
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = call i32 @s2n_print_stacktrace(ptr noundef %1067) #10
  %1069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1070 = trunc nuw i8 %1069 to i1
  br i1 %1070, label %1071, label %1075

1071:                                             ; preds = %1065
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = call i32 @fileno(ptr noundef %1072) #10
  %1074 = call i32 @isatty(i32 noundef %1073) #10
  %.not509 = icmp eq i32 %1074, 0
  br i1 %.not509, label %1075, label %1076

1075:                                             ; preds = %1071, %1065
  br label %1076

1076:                                             ; preds = %1071, %1075
  %.str.5.sink903 = phi ptr [ @.str.5, %1075 ], [ @.str.2, %1071 ]
  store i32 %1066, ptr %630, align 4, !tbaa !5
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = load i32, ptr %576, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror(i32 noundef %1079, ptr noundef nonnull @.str.4) #10
  %1081 = load i32, ptr %576, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror_debug(i32 noundef %1081, ptr noundef nonnull @.str.4) #10
  %1083 = load i32, ptr %630, align 4, !tbaa !5
  %1084 = call ptr @strerror(i32 noundef %1083) #10
  %1085 = load i32, ptr %630, align 4, !tbaa !5
  %1086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1077, ptr noundef nonnull %.str.5.sink903, i32 noundef %1078, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1080, ptr noundef %1082, ptr noundef %1084, i32 noundef %1085) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1087:                                             ; preds = %1060
  %1088 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = icmp eq ptr %1088, null
  br i1 %1091, label %1092, label %1114

1092:                                             ; preds = %1087
  %1093 = load i32, ptr %630, align 4, !tbaa !5
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = call i32 @s2n_print_stacktrace(ptr noundef %1094) #10
  %1096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1097 = trunc nuw i8 %1096 to i1
  br i1 %1097, label %1098, label %1102

1098:                                             ; preds = %1092
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = call i32 @fileno(ptr noundef %1099) #10
  %1101 = call i32 @isatty(i32 noundef %1100) #10
  %.not508 = icmp eq i32 %1101, 0
  br i1 %.not508, label %1102, label %1103

1102:                                             ; preds = %1098, %1092
  br label %1103

1103:                                             ; preds = %1098, %1102
  %.str.5.sink912 = phi ptr [ @.str.5, %1102 ], [ @.str.2, %1098 ]
  store i32 %1093, ptr %630, align 4, !tbaa !5
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = load i32, ptr @test_count, align 4, !tbaa !5
  %1106 = load i32, ptr %576, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror(i32 noundef %1106, ptr noundef nonnull @.str.4) #10
  %1108 = load i32, ptr %576, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror_debug(i32 noundef %1108, ptr noundef nonnull @.str.4) #10
  %1110 = load i32, ptr %630, align 4, !tbaa !5
  %1111 = call ptr @strerror(i32 noundef %1110) #10
  %1112 = load i32, ptr %630, align 4, !tbaa !5
  %1113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1104, ptr noundef nonnull %.str.5.sink912, i32 noundef %1105, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1107, ptr noundef %1109, ptr noundef %1111, i32 noundef %1112) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1114:                                             ; preds = %1087
  %1115 = add nsw i32 %1089, 2
  store i32 %1115, ptr @test_count, align 4, !tbaa !5
  %1116 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef nonnull %1088, i32 noundef 0, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #10
  %1117 = call zeroext i1 @s2n_result_is_ok(i32 %1116)
  br i1 %1117, label %1140, label %1118

1118:                                             ; preds = %1114
  %1119 = load i32, ptr %630, align 4, !tbaa !5
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = call i32 @s2n_print_stacktrace(ptr noundef %1120) #10
  %1122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1123 = trunc nuw i8 %1122 to i1
  br i1 %1123, label %1124, label %1128

1124:                                             ; preds = %1118
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @fileno(ptr noundef %1125) #10
  %1127 = call i32 @isatty(i32 noundef %1126) #10
  %.not429 = icmp eq i32 %1127, 0
  br i1 %.not429, label %1128, label %1129

1128:                                             ; preds = %1124, %1118
  br label %1129

1129:                                             ; preds = %1124, %1128
  %.str.5.sink921 = phi ptr [ @.str.5, %1128 ], [ @.str.2, %1124 ]
  store i32 %1119, ptr %630, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = load i32, ptr @test_count, align 4, !tbaa !5
  %1132 = load i32, ptr %576, align 4, !tbaa !5
  %1133 = call ptr @s2n_strerror(i32 noundef %1132, ptr noundef nonnull @.str.4) #10
  %1134 = load i32, ptr %576, align 4, !tbaa !5
  %1135 = call ptr @s2n_strerror_debug(i32 noundef %1134, ptr noundef nonnull @.str.4) #10
  %1136 = load i32, ptr %630, align 4, !tbaa !5
  %1137 = call ptr @strerror(i32 noundef %1136) #10
  %1138 = load i32, ptr %630, align 4, !tbaa !5
  %1139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1130, ptr noundef nonnull %.str.5.sink921, i32 noundef %1131, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %1133, ptr noundef %1135, ptr noundef %1137, i32 noundef %1138) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1140:                                             ; preds = %1114
  %1141 = load i32, ptr @test_count, align 4, !tbaa !5
  %1142 = add nsw i32 %1141, 1
  store i32 %1142, ptr @test_count, align 4, !tbaa !5
  %1143 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1088, ptr noundef nonnull @.str.30) #10
  %1144 = icmp eq i32 %1143, -1
  br i1 %1144, label %1145, label %1167

1145:                                             ; preds = %1140
  %1146 = load i32, ptr %630, align 4, !tbaa !5
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = call i32 @s2n_print_stacktrace(ptr noundef %1147) #10
  %1149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1150 = trunc nuw i8 %1149 to i1
  br i1 %1150, label %1151, label %1155

1151:                                             ; preds = %1145
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @fileno(ptr noundef %1152) #10
  %1154 = call i32 @isatty(i32 noundef %1153) #10
  %.not507 = icmp eq i32 %1154, 0
  br i1 %.not507, label %1155, label %1156

1155:                                             ; preds = %1151, %1145
  br label %1156

1156:                                             ; preds = %1151, %1155
  %.str.5.sink930 = phi ptr [ @.str.5, %1155 ], [ @.str.2, %1151 ]
  store i32 %1146, ptr %630, align 4, !tbaa !5
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = load i32, ptr @test_count, align 4, !tbaa !5
  %1159 = load i32, ptr %576, align 4, !tbaa !5
  %1160 = call ptr @s2n_strerror(i32 noundef %1159, ptr noundef nonnull @.str.4) #10
  %1161 = load i32, ptr %576, align 4, !tbaa !5
  %1162 = call ptr @s2n_strerror_debug(i32 noundef %1161, ptr noundef nonnull @.str.4) #10
  %1163 = load i32, ptr %630, align 4, !tbaa !5
  %1164 = call ptr @strerror(i32 noundef %1163) #10
  %1165 = load i32, ptr %630, align 4, !tbaa !5
  %1166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1157, ptr noundef nonnull %.str.5.sink930, i32 noundef %1158, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1160, ptr noundef %1162, ptr noundef %1164, i32 noundef %1165) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1167:                                             ; preds = %1140
  %1168 = load i32, ptr @test_count, align 4, !tbaa !5
  %1169 = add nsw i32 %1168, 1
  store i32 %1169, ptr @test_count, align 4, !tbaa !5
  %1170 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %1088) #10
  %1171 = icmp eq i32 %1170, -1
  br i1 %1171, label %1172, label %1194

1172:                                             ; preds = %1167
  %1173 = load i32, ptr %630, align 4, !tbaa !5
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @s2n_print_stacktrace(ptr noundef %1174) #10
  %1176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1177 = trunc nuw i8 %1176 to i1
  br i1 %1177, label %1178, label %1182

1178:                                             ; preds = %1172
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = call i32 @fileno(ptr noundef %1179) #10
  %1181 = call i32 @isatty(i32 noundef %1180) #10
  %.not506 = icmp eq i32 %1181, 0
  br i1 %.not506, label %1182, label %1183

1182:                                             ; preds = %1178, %1172
  br label %1183

1183:                                             ; preds = %1178, %1182
  %.str.5.sink939 = phi ptr [ @.str.5, %1182 ], [ @.str.2, %1178 ]
  store i32 %1173, ptr %630, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = load i32, ptr @test_count, align 4, !tbaa !5
  %1186 = load i32, ptr %576, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror(i32 noundef %1186, ptr noundef nonnull @.str.4) #10
  %1188 = load i32, ptr %576, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror_debug(i32 noundef %1188, ptr noundef nonnull @.str.4) #10
  %1190 = load i32, ptr %630, align 4, !tbaa !5
  %1191 = call ptr @strerror(i32 noundef %1190) #10
  %1192 = load i32, ptr %630, align 4, !tbaa !5
  %1193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1184, ptr noundef nonnull %.str.5.sink939, i32 noundef %1185, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1187, ptr noundef %1189, ptr noundef %1191, i32 noundef %1192) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1194:                                             ; preds = %1167
  %1195 = load i32, ptr @test_count, align 4, !tbaa !5
  %1196 = add nsw i32 %1195, 1
  store i32 %1196, ptr @test_count, align 4, !tbaa !5
  %1197 = call i32 @s2n_exchange_hellos(ptr noundef nonnull %981, ptr noundef nonnull %1088)
  %1198 = call zeroext i1 @s2n_result_is_ok(i32 %1197)
  br i1 %1198, label %1221, label %1199

1199:                                             ; preds = %1194
  %1200 = load i32, ptr %630, align 4, !tbaa !5
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = call i32 @s2n_print_stacktrace(ptr noundef %1201) #10
  %1203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1204 = trunc nuw i8 %1203 to i1
  br i1 %1204, label %1205, label %1209

1205:                                             ; preds = %1199
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = call i32 @fileno(ptr noundef %1206) #10
  %1208 = call i32 @isatty(i32 noundef %1207) #10
  %.not430 = icmp eq i32 %1208, 0
  br i1 %.not430, label %1209, label %1210

1209:                                             ; preds = %1205, %1199
  br label %1210

1210:                                             ; preds = %1205, %1209
  %.str.5.sink948 = phi ptr [ @.str.5, %1209 ], [ @.str.2, %1205 ]
  store i32 %1200, ptr %630, align 4, !tbaa !5
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = load i32, ptr @test_count, align 4, !tbaa !5
  %1213 = load i32, ptr %576, align 4, !tbaa !5
  %1214 = call ptr @s2n_strerror(i32 noundef %1213, ptr noundef nonnull @.str.4) #10
  %1215 = load i32, ptr %576, align 4, !tbaa !5
  %1216 = call ptr @s2n_strerror_debug(i32 noundef %1215, ptr noundef nonnull @.str.4) #10
  %1217 = load i32, ptr %630, align 4, !tbaa !5
  %1218 = call ptr @strerror(i32 noundef %1217) #10
  %1219 = load i32, ptr %630, align 4, !tbaa !5
  %1220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1211, ptr noundef nonnull %.str.5.sink948, i32 noundef %1212, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %1214, ptr noundef %1216, ptr noundef %1218, i32 noundef %1219) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1221:                                             ; preds = %1194
  %1222 = load i32, ptr @test_count, align 4, !tbaa !5
  %1223 = add nsw i32 %1222, 1
  store i32 %1223, ptr @test_count, align 4, !tbaa !5
  %1224 = getelementptr inbounds i8, ptr %981, i64 4088
  %1225 = load i32, ptr %1224, align 8, !tbaa !18
  %1226 = icmp eq i32 %1225, 2
  br i1 %1226, label %1249, label %1227

1227:                                             ; preds = %1221
  %1228 = load i32, ptr %630, align 4, !tbaa !5
  %1229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1230 = call i32 @s2n_print_stacktrace(ptr noundef %1229) #10
  %1231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1232 = trunc nuw i8 %1231 to i1
  br i1 %1232, label %1233, label %1237

1233:                                             ; preds = %1227
  %1234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1235 = call i32 @fileno(ptr noundef %1234) #10
  %1236 = call i32 @isatty(i32 noundef %1235) #10
  %.not431 = icmp eq i32 %1236, 0
  br i1 %.not431, label %1237, label %1238

1237:                                             ; preds = %1233, %1227
  br label %1238

1238:                                             ; preds = %1233, %1237
  %.str.5.sink957 = phi ptr [ @.str.5, %1237 ], [ @.str.2, %1233 ]
  store i32 %1228, ptr %630, align 4, !tbaa !5
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = load i32, ptr %576, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror(i32 noundef %1241, ptr noundef nonnull @.str.4) #10
  %1243 = load i32, ptr %576, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef nonnull @.str.4) #10
  %1245 = load i32, ptr %630, align 4, !tbaa !5
  %1246 = call ptr @strerror(i32 noundef %1245) #10
  %1247 = load i32, ptr %630, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1239, ptr noundef nonnull %.str.5.sink957, i32 noundef %1240, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1242, ptr noundef %1244, ptr noundef %1246, i32 noundef %1247) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1249:                                             ; preds = %1221
  %1250 = add nsw i32 %1222, 2
  store i32 %1250, ptr @test_count, align 4, !tbaa !5
  %1251 = getelementptr inbounds i8, ptr %1088, i64 4088
  %1252 = load i32, ptr %1251, align 8, !tbaa !18
  %1253 = icmp eq i32 %1252, 2
  br i1 %1253, label %1276, label %1254

1254:                                             ; preds = %1249
  %1255 = load i32, ptr %630, align 4, !tbaa !5
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = call i32 @s2n_print_stacktrace(ptr noundef %1256) #10
  %1258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1259 = trunc nuw i8 %1258 to i1
  br i1 %1259, label %1260, label %1264

1260:                                             ; preds = %1254
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = call i32 @fileno(ptr noundef %1261) #10
  %1263 = call i32 @isatty(i32 noundef %1262) #10
  %.not432 = icmp eq i32 %1263, 0
  br i1 %.not432, label %1264, label %1265

1264:                                             ; preds = %1260, %1254
  br label %1265

1265:                                             ; preds = %1260, %1264
  %.str.5.sink966 = phi ptr [ @.str.5, %1264 ], [ @.str.2, %1260 ]
  store i32 %1255, ptr %630, align 4, !tbaa !5
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = load i32, ptr @test_count, align 4, !tbaa !5
  %1268 = load i32, ptr %576, align 4, !tbaa !5
  %1269 = call ptr @s2n_strerror(i32 noundef %1268, ptr noundef nonnull @.str.4) #10
  %1270 = load i32, ptr %576, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef nonnull @.str.4) #10
  %1272 = load i32, ptr %630, align 4, !tbaa !5
  %1273 = call ptr @strerror(i32 noundef %1272) #10
  %1274 = load i32, ptr %630, align 4, !tbaa !5
  %1275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1266, ptr noundef nonnull %.str.5.sink966, i32 noundef %1267, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1269, ptr noundef %1271, ptr noundef %1273, i32 noundef %1274) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1276:                                             ; preds = %1249
  %1277 = add nsw i32 %1222, 3
  store i32 %1277, ptr @test_count, align 4, !tbaa !5
  %1278 = call i32 @s2n_encrypted_extensions_send(ptr noundef nonnull %1088) #10
  %1279 = icmp eq i32 %1278, -1
  br i1 %1279, label %1280, label %1302

1280:                                             ; preds = %1276
  %1281 = load i32, ptr %630, align 4, !tbaa !5
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = call i32 @s2n_print_stacktrace(ptr noundef %1282) #10
  %1284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1285 = trunc nuw i8 %1284 to i1
  br i1 %1285, label %1286, label %1290

1286:                                             ; preds = %1280
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @fileno(ptr noundef %1287) #10
  %1289 = call i32 @isatty(i32 noundef %1288) #10
  %.not505 = icmp eq i32 %1289, 0
  br i1 %.not505, label %1290, label %1291

1290:                                             ; preds = %1286, %1280
  br label %1291

1291:                                             ; preds = %1286, %1290
  %.str.5.sink975 = phi ptr [ @.str.5, %1290 ], [ @.str.2, %1286 ]
  store i32 %1281, ptr %630, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = load i32, ptr %576, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror(i32 noundef %1294, ptr noundef nonnull @.str.4) #10
  %1296 = load i32, ptr %576, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror_debug(i32 noundef %1296, ptr noundef nonnull @.str.4) #10
  %1298 = load i32, ptr %630, align 4, !tbaa !5
  %1299 = call ptr @strerror(i32 noundef %1298) #10
  %1300 = load i32, ptr %630, align 4, !tbaa !5
  %1301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1292, ptr noundef nonnull %.str.5.sink975, i32 noundef %1293, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1295, ptr noundef %1297, ptr noundef %1299, i32 noundef %1300) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1302:                                             ; preds = %1276
  %1303 = load i32, ptr @test_count, align 4, !tbaa !5
  %1304 = add nsw i32 %1303, 1
  store i32 %1304, ptr @test_count, align 4, !tbaa !5
  %1305 = getelementptr inbounds i8, ptr %1088, i64 2016
  %1306 = getelementptr inbounds i8, ptr %981, i64 2016
  %1307 = getelementptr inbounds i8, ptr %1088, i64 2044
  %1308 = load i32, ptr %1307, align 4, !tbaa !53
  %1309 = getelementptr inbounds i8, ptr %1088, i64 2040
  %1310 = load i32, ptr %1309, align 8, !tbaa !54
  %1311 = sub i32 %1308, %1310
  %1312 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1305, ptr noundef nonnull %1306, i32 noundef %1311) #10
  %1313 = icmp eq i32 %1312, -1
  br i1 %1313, label %1314, label %1336

1314:                                             ; preds = %1302
  %1315 = load i32, ptr %630, align 4, !tbaa !5
  %1316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1317 = call i32 @s2n_print_stacktrace(ptr noundef %1316) #10
  %1318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1319 = trunc nuw i8 %1318 to i1
  br i1 %1319, label %1320, label %1324

1320:                                             ; preds = %1314
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = call i32 @fileno(ptr noundef %1321) #10
  %1323 = call i32 @isatty(i32 noundef %1322) #10
  %.not504 = icmp eq i32 %1323, 0
  br i1 %.not504, label %1324, label %1325

1324:                                             ; preds = %1320, %1314
  br label %1325

1325:                                             ; preds = %1320, %1324
  %.str.5.sink984 = phi ptr [ @.str.5, %1324 ], [ @.str.2, %1320 ]
  store i32 %1315, ptr %630, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = load i32, ptr @test_count, align 4, !tbaa !5
  %1328 = load i32, ptr %576, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror(i32 noundef %1328, ptr noundef nonnull @.str.4) #10
  %1330 = load i32, ptr %576, align 4, !tbaa !5
  %1331 = call ptr @s2n_strerror_debug(i32 noundef %1330, ptr noundef nonnull @.str.4) #10
  %1332 = load i32, ptr %630, align 4, !tbaa !5
  %1333 = call ptr @strerror(i32 noundef %1332) #10
  %1334 = load i32, ptr %630, align 4, !tbaa !5
  %1335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1326, ptr noundef nonnull %.str.5.sink984, i32 noundef %1327, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1329, ptr noundef %1331, ptr noundef %1333, i32 noundef %1334) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1336:                                             ; preds = %1302
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = add nsw i32 %1337, 1
  store i32 %1338, ptr @test_count, align 4, !tbaa !5
  %1339 = call i32 @s2n_encrypted_extensions_recv(ptr noundef nonnull %981) #10
  %1340 = icmp eq i32 %1339, -1
  br i1 %1340, label %1341, label %1363

1341:                                             ; preds = %1336
  %1342 = load i32, ptr %630, align 4, !tbaa !5
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = call i32 @s2n_print_stacktrace(ptr noundef %1343) #10
  %1345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1346 = trunc nuw i8 %1345 to i1
  br i1 %1346, label %1347, label %1351

1347:                                             ; preds = %1341
  %1348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1349 = call i32 @fileno(ptr noundef %1348) #10
  %1350 = call i32 @isatty(i32 noundef %1349) #10
  %.not503 = icmp eq i32 %1350, 0
  br i1 %.not503, label %1351, label %1352

1351:                                             ; preds = %1347, %1341
  br label %1352

1352:                                             ; preds = %1347, %1351
  %.str.5.sink993 = phi ptr [ @.str.5, %1351 ], [ @.str.2, %1347 ]
  store i32 %1342, ptr %630, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = load i32, ptr %576, align 4, !tbaa !5
  %1356 = call ptr @s2n_strerror(i32 noundef %1355, ptr noundef nonnull @.str.4) #10
  %1357 = load i32, ptr %576, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror_debug(i32 noundef %1357, ptr noundef nonnull @.str.4) #10
  %1359 = load i32, ptr %630, align 4, !tbaa !5
  %1360 = call ptr @strerror(i32 noundef %1359) #10
  %1361 = load i32, ptr %630, align 4, !tbaa !5
  %1362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1353, ptr noundef nonnull %.str.5.sink993, i32 noundef %1354, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1356, ptr noundef %1358, ptr noundef %1360, i32 noundef %1361) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1363:                                             ; preds = %1336
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = add nsw i32 %1364, 1
  store i32 %1365, ptr @test_count, align 4, !tbaa !5
  %1366 = load i32, ptr %1224, align 8, !tbaa !18
  %1367 = icmp eq i32 %1366, 2
  br i1 %1367, label %1390, label %1368

1368:                                             ; preds = %1363
  %1369 = load i32, ptr %630, align 4, !tbaa !5
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = call i32 @s2n_print_stacktrace(ptr noundef %1370) #10
  %1372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1373 = trunc nuw i8 %1372 to i1
  br i1 %1373, label %1374, label %1378

1374:                                             ; preds = %1368
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = call i32 @fileno(ptr noundef %1375) #10
  %1377 = call i32 @isatty(i32 noundef %1376) #10
  %.not433 = icmp eq i32 %1377, 0
  br i1 %.not433, label %1378, label %1379

1378:                                             ; preds = %1374, %1368
  br label %1379

1379:                                             ; preds = %1374, %1378
  %.str.5.sink1002 = phi ptr [ @.str.5, %1378 ], [ @.str.2, %1374 ]
  store i32 %1369, ptr %630, align 4, !tbaa !5
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = load i32, ptr %576, align 4, !tbaa !5
  %1383 = call ptr @s2n_strerror(i32 noundef %1382, ptr noundef nonnull @.str.4) #10
  %1384 = load i32, ptr %576, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror_debug(i32 noundef %1384, ptr noundef nonnull @.str.4) #10
  %1386 = load i32, ptr %630, align 4, !tbaa !5
  %1387 = call ptr @strerror(i32 noundef %1386) #10
  %1388 = load i32, ptr %630, align 4, !tbaa !5
  %1389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef nonnull %.str.5.sink1002, i32 noundef %1381, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %1383, ptr noundef %1385, ptr noundef %1387, i32 noundef %1388) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1390:                                             ; preds = %1363
  %1391 = add nsw i32 %1364, 2
  store i32 %1391, ptr @test_count, align 4, !tbaa !5
  %1392 = load i32, ptr %1251, align 8, !tbaa !18
  %1393 = icmp eq i32 %1392, 2
  br i1 %1393, label %1416, label %1394

1394:                                             ; preds = %1390
  %1395 = load i32, ptr %630, align 4, !tbaa !5
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = call i32 @s2n_print_stacktrace(ptr noundef %1396) #10
  %1398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1399 = trunc nuw i8 %1398 to i1
  br i1 %1399, label %1400, label %1404

1400:                                             ; preds = %1394
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = call i32 @fileno(ptr noundef %1401) #10
  %1403 = call i32 @isatty(i32 noundef %1402) #10
  %.not434 = icmp eq i32 %1403, 0
  br i1 %.not434, label %1404, label %1405

1404:                                             ; preds = %1400, %1394
  br label %1405

1405:                                             ; preds = %1400, %1404
  %.str.5.sink1011 = phi ptr [ @.str.5, %1404 ], [ @.str.2, %1400 ]
  store i32 %1395, ptr %630, align 4, !tbaa !5
  %1406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1407 = load i32, ptr @test_count, align 4, !tbaa !5
  %1408 = load i32, ptr %576, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror(i32 noundef %1408, ptr noundef nonnull @.str.4) #10
  %1410 = load i32, ptr %576, align 4, !tbaa !5
  %1411 = call ptr @s2n_strerror_debug(i32 noundef %1410, ptr noundef nonnull @.str.4) #10
  %1412 = load i32, ptr %630, align 4, !tbaa !5
  %1413 = call ptr @strerror(i32 noundef %1412) #10
  %1414 = load i32, ptr %630, align 4, !tbaa !5
  %1415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1406, ptr noundef nonnull %.str.5.sink1011, i32 noundef %1407, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 164, ptr noundef %1409, ptr noundef %1411, ptr noundef %1413, i32 noundef %1414) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1416:                                             ; preds = %1390
  %1417 = add nsw i32 %1364, 3
  store i32 %1417, ptr @test_count, align 4, !tbaa !5
  %1418 = call i32 @s2n_connection_free(ptr noundef nonnull %981) #10
  %1419 = icmp eq i32 %1418, -1
  br i1 %1419, label %1420, label %1442

1420:                                             ; preds = %1416
  %1421 = load i32, ptr %630, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @s2n_print_stacktrace(ptr noundef %1422) #10
  %1424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1425 = trunc nuw i8 %1424 to i1
  br i1 %1425, label %1426, label %1430

1426:                                             ; preds = %1420
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = call i32 @fileno(ptr noundef %1427) #10
  %1429 = call i32 @isatty(i32 noundef %1428) #10
  %.not502 = icmp eq i32 %1429, 0
  br i1 %.not502, label %1430, label %1431

1430:                                             ; preds = %1426, %1420
  br label %1431

1431:                                             ; preds = %1426, %1430
  %.str.5.sink1020 = phi ptr [ @.str.5, %1430 ], [ @.str.2, %1426 ]
  store i32 %1421, ptr %630, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = load i32, ptr %576, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror(i32 noundef %1434, ptr noundef nonnull @.str.4) #10
  %1436 = load i32, ptr %576, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror_debug(i32 noundef %1436, ptr noundef nonnull @.str.4) #10
  %1438 = load i32, ptr %630, align 4, !tbaa !5
  %1439 = call ptr @strerror(i32 noundef %1438) #10
  %1440 = load i32, ptr %630, align 4, !tbaa !5
  %1441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1432, ptr noundef nonnull %.str.5.sink1020, i32 noundef %1433, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1435, ptr noundef %1437, ptr noundef %1439, i32 noundef %1440) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1442:                                             ; preds = %1416
  %1443 = load i32, ptr @test_count, align 4, !tbaa !5
  %1444 = add nsw i32 %1443, 1
  store i32 %1444, ptr @test_count, align 4, !tbaa !5
  %1445 = call i32 @s2n_connection_free(ptr noundef nonnull %1088) #10
  %1446 = icmp eq i32 %1445, -1
  br i1 %1446, label %1447, label %1469

1447:                                             ; preds = %1442
  %1448 = load i32, ptr %630, align 4, !tbaa !5
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @s2n_print_stacktrace(ptr noundef %1449) #10
  %1451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1452 = trunc nuw i8 %1451 to i1
  br i1 %1452, label %1453, label %1457

1453:                                             ; preds = %1447
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = call i32 @fileno(ptr noundef %1454) #10
  %1456 = call i32 @isatty(i32 noundef %1455) #10
  %.not501 = icmp eq i32 %1456, 0
  br i1 %.not501, label %1457, label %1458

1457:                                             ; preds = %1453, %1447
  br label %1458

1458:                                             ; preds = %1453, %1457
  %.str.5.sink1029 = phi ptr [ @.str.5, %1457 ], [ @.str.2, %1453 ]
  store i32 %1448, ptr %630, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = load i32, ptr %576, align 4, !tbaa !5
  %1462 = call ptr @s2n_strerror(i32 noundef %1461, ptr noundef nonnull @.str.4) #10
  %1463 = load i32, ptr %576, align 4, !tbaa !5
  %1464 = call ptr @s2n_strerror_debug(i32 noundef %1463, ptr noundef nonnull @.str.4) #10
  %1465 = load i32, ptr %630, align 4, !tbaa !5
  %1466 = call ptr @strerror(i32 noundef %1465) #10
  %1467 = load i32, ptr %630, align 4, !tbaa !5
  %1468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1459, ptr noundef nonnull %.str.5.sink1029, i32 noundef %1460, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1462, ptr noundef %1464, ptr noundef %1466, i32 noundef %1467) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1469:                                             ; preds = %1442
  %1470 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1471 = load i32, ptr @test_count, align 4, !tbaa !5
  %1472 = add nsw i32 %1471, 1
  store i32 %1472, ptr @test_count, align 4, !tbaa !5
  %1473 = icmp eq ptr %1470, null
  br i1 %1473, label %1474, label %1496

1474:                                             ; preds = %1469
  %1475 = load i32, ptr %630, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @s2n_print_stacktrace(ptr noundef %1476) #10
  %1478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1479 = trunc nuw i8 %1478 to i1
  br i1 %1479, label %1480, label %1484

1480:                                             ; preds = %1474
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = call i32 @fileno(ptr noundef %1481) #10
  %1483 = call i32 @isatty(i32 noundef %1482) #10
  %.not500 = icmp eq i32 %1483, 0
  br i1 %.not500, label %1484, label %1485

1484:                                             ; preds = %1480, %1474
  br label %1485

1485:                                             ; preds = %1480, %1484
  %.str.5.sink1038 = phi ptr [ @.str.5, %1484 ], [ @.str.2, %1480 ]
  store i32 %1475, ptr %630, align 4, !tbaa !5
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = load i32, ptr %576, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror(i32 noundef %1488, ptr noundef nonnull @.str.4) #10
  %1490 = load i32, ptr %576, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef nonnull @.str.4) #10
  %1492 = load i32, ptr %630, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #10
  %1494 = load i32, ptr %630, align 4, !tbaa !5
  %1495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1486, ptr noundef nonnull %.str.5.sink1038, i32 noundef %1487, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %1489, ptr noundef %1491, ptr noundef %1493, i32 noundef %1494) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1496:                                             ; preds = %1469
  %1497 = add nsw i32 %1471, 2
  store i32 %1497, ptr @test_count, align 4, !tbaa !5
  %1498 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef nonnull %1470, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #10
  %1499 = call zeroext i1 @s2n_result_is_ok(i32 %1498)
  br i1 %1499, label %1522, label %1500

1500:                                             ; preds = %1496
  %1501 = load i32, ptr %630, align 4, !tbaa !5
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = call i32 @s2n_print_stacktrace(ptr noundef %1502) #10
  %1504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1505 = trunc nuw i8 %1504 to i1
  br i1 %1505, label %1506, label %1510

1506:                                             ; preds = %1500
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = call i32 @fileno(ptr noundef %1507) #10
  %1509 = call i32 @isatty(i32 noundef %1508) #10
  %.not435 = icmp eq i32 %1509, 0
  br i1 %.not435, label %1510, label %1511

1510:                                             ; preds = %1506, %1500
  br label %1511

1511:                                             ; preds = %1506, %1510
  %.str.5.sink1047 = phi ptr [ @.str.5, %1510 ], [ @.str.2, %1506 ]
  store i32 %1501, ptr %630, align 4, !tbaa !5
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1513 = load i32, ptr @test_count, align 4, !tbaa !5
  %1514 = load i32, ptr %576, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror(i32 noundef %1514, ptr noundef nonnull @.str.4) #10
  %1516 = load i32, ptr %576, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror_debug(i32 noundef %1516, ptr noundef nonnull @.str.4) #10
  %1518 = load i32, ptr %630, align 4, !tbaa !5
  %1519 = call ptr @strerror(i32 noundef %1518) #10
  %1520 = load i32, ptr %630, align 4, !tbaa !5
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1512, ptr noundef nonnull %.str.5.sink1047, i32 noundef %1513, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1515, ptr noundef %1517, ptr noundef %1519, i32 noundef %1520) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1522:                                             ; preds = %1496
  %1523 = load i32, ptr @test_count, align 4, !tbaa !5
  %1524 = add nsw i32 %1523, 1
  store i32 %1524, ptr @test_count, align 4, !tbaa !5
  %1525 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1470, ptr noundef nonnull @.str.30) #10
  %1526 = icmp eq i32 %1525, -1
  br i1 %1526, label %1527, label %1549

1527:                                             ; preds = %1522
  %1528 = load i32, ptr %630, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = call i32 @s2n_print_stacktrace(ptr noundef %1529) #10
  %1531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1532 = trunc nuw i8 %1531 to i1
  br i1 %1532, label %1533, label %1537

1533:                                             ; preds = %1527
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @fileno(ptr noundef %1534) #10
  %1536 = call i32 @isatty(i32 noundef %1535) #10
  %.not499 = icmp eq i32 %1536, 0
  br i1 %.not499, label %1537, label %1538

1537:                                             ; preds = %1533, %1527
  br label %1538

1538:                                             ; preds = %1533, %1537
  %.str.5.sink1056 = phi ptr [ @.str.5, %1537 ], [ @.str.2, %1533 ]
  store i32 %1528, ptr %630, align 4, !tbaa !5
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = load i32, ptr @test_count, align 4, !tbaa !5
  %1541 = load i32, ptr %576, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror(i32 noundef %1541, ptr noundef nonnull @.str.4) #10
  %1543 = load i32, ptr %576, align 4, !tbaa !5
  %1544 = call ptr @s2n_strerror_debug(i32 noundef %1543, ptr noundef nonnull @.str.4) #10
  %1545 = load i32, ptr %630, align 4, !tbaa !5
  %1546 = call ptr @strerror(i32 noundef %1545) #10
  %1547 = load i32, ptr %630, align 4, !tbaa !5
  %1548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1539, ptr noundef nonnull %.str.5.sink1056, i32 noundef %1540, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1542, ptr noundef %1544, ptr noundef %1546, i32 noundef %1547) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1549:                                             ; preds = %1522
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = add nsw i32 %1550, 1
  store i32 %1551, ptr @test_count, align 4, !tbaa !5
  %1552 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %1470) #10
  %1553 = icmp eq i32 %1552, -1
  br i1 %1553, label %1554, label %1576

1554:                                             ; preds = %1549
  %1555 = load i32, ptr %630, align 4, !tbaa !5
  %1556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1557 = call i32 @s2n_print_stacktrace(ptr noundef %1556) #10
  %1558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1559 = trunc nuw i8 %1558 to i1
  br i1 %1559, label %1560, label %1564

1560:                                             ; preds = %1554
  %1561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1562 = call i32 @fileno(ptr noundef %1561) #10
  %1563 = call i32 @isatty(i32 noundef %1562) #10
  %.not498 = icmp eq i32 %1563, 0
  br i1 %.not498, label %1564, label %1565

1564:                                             ; preds = %1560, %1554
  br label %1565

1565:                                             ; preds = %1560, %1564
  %.str.5.sink1065 = phi ptr [ @.str.5, %1564 ], [ @.str.2, %1560 ]
  store i32 %1555, ptr %630, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = load i32, ptr @test_count, align 4, !tbaa !5
  %1568 = load i32, ptr %576, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror(i32 noundef %1568, ptr noundef nonnull @.str.4) #10
  %1570 = load i32, ptr %576, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror_debug(i32 noundef %1570, ptr noundef nonnull @.str.4) #10
  %1572 = load i32, ptr %630, align 4, !tbaa !5
  %1573 = call ptr @strerror(i32 noundef %1572) #10
  %1574 = load i32, ptr %630, align 4, !tbaa !5
  %1575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1566, ptr noundef nonnull %.str.5.sink1065, i32 noundef %1567, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1569, ptr noundef %1571, ptr noundef %1573, i32 noundef %1574) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1576:                                             ; preds = %1549
  %1577 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %1578 = load i32, ptr @test_count, align 4, !tbaa !5
  %1579 = add nsw i32 %1578, 1
  store i32 %1579, ptr @test_count, align 4, !tbaa !5
  %1580 = icmp eq ptr %1577, null
  br i1 %1580, label %1581, label %1603

1581:                                             ; preds = %1576
  %1582 = load i32, ptr %630, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = call i32 @s2n_print_stacktrace(ptr noundef %1583) #10
  %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) #10
  %1590 = call i32 @isatty(i32 noundef %1589) #10
  %.not497 = icmp eq i32 %1590, 0
  br i1 %.not497, label %1591, label %1592

1591:                                             ; preds = %1587, %1581
  br label %1592

1592:                                             ; preds = %1587, %1591
  %.str.5.sink1074 = phi ptr [ @.str.5, %1591 ], [ @.str.2, %1587 ]
  store i32 %1582, ptr %630, 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 %576, align 4, !tbaa !5
  %1596 = call ptr @s2n_strerror(i32 noundef %1595, ptr noundef nonnull @.str.4) #10
  %1597 = load i32, ptr %576, align 4, !tbaa !5
  %1598 = call ptr @s2n_strerror_debug(i32 noundef %1597, ptr noundef nonnull @.str.4) #10
  %1599 = load i32, ptr %630, align 4, !tbaa !5
  %1600 = call ptr @strerror(i32 noundef %1599) #10
  %1601 = load i32, ptr %630, align 4, !tbaa !5
  %1602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1593, ptr noundef nonnull %.str.5.sink1074, i32 noundef %1594, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %1596, ptr noundef %1598, ptr noundef %1600, i32 noundef %1601) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1603:                                             ; preds = %1576
  %1604 = add nsw i32 %1578, 2
  store i32 %1604, ptr @test_count, align 4, !tbaa !5
  %1605 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef nonnull %1577, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #10
  %1606 = call zeroext i1 @s2n_result_is_ok(i32 %1605)
  br i1 %1606, label %1629, label %1607

1607:                                             ; preds = %1603
  %1608 = load i32, ptr %630, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @s2n_print_stacktrace(ptr noundef %1609) #10
  %1611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1612 = trunc nuw i8 %1611 to i1
  br i1 %1612, label %1613, label %1617

1613:                                             ; preds = %1607
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = call i32 @fileno(ptr noundef %1614) #10
  %1616 = call i32 @isatty(i32 noundef %1615) #10
  %.not436 = icmp eq i32 %1616, 0
  br i1 %.not436, label %1617, label %1618

1617:                                             ; preds = %1613, %1607
  br label %1618

1618:                                             ; preds = %1613, %1617
  %.str.5.sink1083 = phi ptr [ @.str.5, %1617 ], [ @.str.2, %1613 ]
  store i32 %1608, ptr %630, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = load i32, ptr %576, align 4, !tbaa !5
  %1622 = call ptr @s2n_strerror(i32 noundef %1621, ptr noundef nonnull @.str.4) #10
  %1623 = load i32, ptr %576, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror_debug(i32 noundef %1623, ptr noundef nonnull @.str.4) #10
  %1625 = load i32, ptr %630, align 4, !tbaa !5
  %1626 = call ptr @strerror(i32 noundef %1625) #10
  %1627 = load i32, ptr %630, align 4, !tbaa !5
  %1628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1619, ptr noundef nonnull %.str.5.sink1083, i32 noundef %1620, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %1622, ptr noundef %1624, ptr noundef %1626, i32 noundef %1627) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1629:                                             ; preds = %1603
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = add nsw i32 %1630, 1
  store i32 %1631, ptr @test_count, align 4, !tbaa !5
  %1632 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1577, ptr noundef nonnull @.str.30) #10
  %1633 = icmp eq i32 %1632, -1
  br i1 %1633, label %1634, label %1656

1634:                                             ; preds = %1629
  %1635 = load i32, ptr %630, align 4, !tbaa !5
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = call i32 @s2n_print_stacktrace(ptr noundef %1636) #10
  %1638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1639 = trunc nuw i8 %1638 to i1
  br i1 %1639, label %1640, label %1644

1640:                                             ; preds = %1634
  %1641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1642 = call i32 @fileno(ptr noundef %1641) #10
  %1643 = call i32 @isatty(i32 noundef %1642) #10
  %.not496 = icmp eq i32 %1643, 0
  br i1 %.not496, label %1644, label %1645

1644:                                             ; preds = %1640, %1634
  br label %1645

1645:                                             ; preds = %1640, %1644
  %.str.5.sink1092 = phi ptr [ @.str.5, %1644 ], [ @.str.2, %1640 ]
  store i32 %1635, ptr %630, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = load i32, ptr %576, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef nonnull @.str.4) #10
  %1650 = load i32, ptr %576, align 4, !tbaa !5
  %1651 = call ptr @s2n_strerror_debug(i32 noundef %1650, ptr noundef nonnull @.str.4) #10
  %1652 = load i32, ptr %630, align 4, !tbaa !5
  %1653 = call ptr @strerror(i32 noundef %1652) #10
  %1654 = load i32, ptr %630, align 4, !tbaa !5
  %1655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1646, ptr noundef nonnull %.str.5.sink1092, i32 noundef %1647, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %1649, ptr noundef %1651, ptr noundef %1653, i32 noundef %1654) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1656:                                             ; preds = %1629
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = add nsw i32 %1657, 1
  store i32 %1658, ptr @test_count, align 4, !tbaa !5
  %1659 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %1577) #10
  %1660 = icmp eq i32 %1659, -1
  br i1 %1660, label %1661, label %1683

1661:                                             ; preds = %1656
  %1662 = load i32, ptr %630, align 4, !tbaa !5
  %1663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1664 = call i32 @s2n_print_stacktrace(ptr noundef %1663) #10
  %1665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1666 = trunc nuw i8 %1665 to i1
  br i1 %1666, label %1667, label %1671

1667:                                             ; preds = %1661
  %1668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1669 = call i32 @fileno(ptr noundef %1668) #10
  %1670 = call i32 @isatty(i32 noundef %1669) #10
  %.not495 = icmp eq i32 %1670, 0
  br i1 %.not495, label %1671, label %1672

1671:                                             ; preds = %1667, %1661
  br label %1672

1672:                                             ; preds = %1667, %1671
  %.str.5.sink1101 = phi ptr [ @.str.5, %1671 ], [ @.str.2, %1667 ]
  store i32 %1662, ptr %630, align 4, !tbaa !5
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = load i32, ptr @test_count, align 4, !tbaa !5
  %1675 = load i32, ptr %576, align 4, !tbaa !5
  %1676 = call ptr @s2n_strerror(i32 noundef %1675, ptr noundef nonnull @.str.4) #10
  %1677 = load i32, ptr %576, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror_debug(i32 noundef %1677, ptr noundef nonnull @.str.4) #10
  %1679 = load i32, ptr %630, align 4, !tbaa !5
  %1680 = call ptr @strerror(i32 noundef %1679) #10
  %1681 = load i32, ptr %630, align 4, !tbaa !5
  %1682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1673, ptr noundef nonnull %.str.5.sink1101, i32 noundef %1674, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1676, ptr noundef %1678, ptr noundef %1680, i32 noundef %1681) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1683:                                             ; preds = %1656
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = add nsw i32 %1684, 1
  store i32 %1685, ptr @test_count, align 4, !tbaa !5
  %1686 = call i32 @s2n_exchange_hellos(ptr noundef nonnull %1470, ptr noundef nonnull %1577)
  %1687 = call zeroext i1 @s2n_result_is_ok(i32 %1686)
  br i1 %1687, label %1710, label %1688

1688:                                             ; preds = %1683
  %1689 = load i32, ptr %630, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @s2n_print_stacktrace(ptr noundef %1690) #10
  %1692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1693 = trunc nuw i8 %1692 to i1
  br i1 %1693, label %1694, label %1698

1694:                                             ; preds = %1688
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = call i32 @fileno(ptr noundef %1695) #10
  %1697 = call i32 @isatty(i32 noundef %1696) #10
  %.not437 = icmp eq i32 %1697, 0
  br i1 %.not437, label %1698, label %1699

1698:                                             ; preds = %1694, %1688
  br label %1699

1699:                                             ; preds = %1694, %1698
  %.str.5.sink1110 = phi ptr [ @.str.5, %1698 ], [ @.str.2, %1694 ]
  store i32 %1689, ptr %630, align 4, !tbaa !5
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = load i32, ptr %576, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror(i32 noundef %1702, ptr noundef nonnull @.str.4) #10
  %1704 = load i32, ptr %576, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror_debug(i32 noundef %1704, ptr noundef nonnull @.str.4) #10
  %1706 = load i32, ptr %630, align 4, !tbaa !5
  %1707 = call ptr @strerror(i32 noundef %1706) #10
  %1708 = load i32, ptr %630, align 4, !tbaa !5
  %1709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1700, ptr noundef nonnull %.str.5.sink1110, i32 noundef %1701, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1703, ptr noundef %1705, ptr noundef %1707, i32 noundef %1708) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1710:                                             ; preds = %1683
  %1711 = load i32, ptr @test_count, align 4, !tbaa !5
  %1712 = add nsw i32 %1711, 1
  store i32 %1712, ptr @test_count, align 4, !tbaa !5
  %1713 = getelementptr inbounds i8, ptr %1470, i64 4088
  %1714 = load i32, ptr %1713, align 8, !tbaa !18
  %1715 = icmp eq i32 %1714, 1
  br i1 %1715, label %1738, label %1716

1716:                                             ; preds = %1710
  %1717 = load i32, ptr %630, align 4, !tbaa !5
  %1718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1719 = call i32 @s2n_print_stacktrace(ptr noundef %1718) #10
  %1720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1721 = trunc nuw i8 %1720 to i1
  br i1 %1721, label %1722, label %1726

1722:                                             ; preds = %1716
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = call i32 @fileno(ptr noundef %1723) #10
  %1725 = call i32 @isatty(i32 noundef %1724) #10
  %.not438 = icmp eq i32 %1725, 0
  br i1 %.not438, label %1726, label %1727

1726:                                             ; preds = %1722, %1716
  br label %1727

1727:                                             ; preds = %1722, %1726
  %.str.5.sink1119 = phi ptr [ @.str.5, %1726 ], [ @.str.2, %1722 ]
  store i32 %1717, ptr %630, align 4, !tbaa !5
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = load i32, ptr @test_count, align 4, !tbaa !5
  %1730 = load i32, ptr %576, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror(i32 noundef %1730, ptr noundef nonnull @.str.4) #10
  %1732 = load i32, ptr %576, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror_debug(i32 noundef %1732, ptr noundef nonnull @.str.4) #10
  %1734 = load i32, ptr %630, align 4, !tbaa !5
  %1735 = call ptr @strerror(i32 noundef %1734) #10
  %1736 = load i32, ptr %630, align 4, !tbaa !5
  %1737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1728, ptr noundef nonnull %.str.5.sink1119, i32 noundef %1729, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1731, ptr noundef %1733, ptr noundef %1735, i32 noundef %1736) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1738:                                             ; preds = %1710
  %1739 = add nsw i32 %1711, 2
  store i32 %1739, ptr @test_count, align 4, !tbaa !5
  %1740 = getelementptr inbounds i8, ptr %1577, i64 4088
  %1741 = load i32, ptr %1740, align 8, !tbaa !18
  %1742 = icmp eq i32 %1741, 3
  br i1 %1742, label %1765, label %1743

1743:                                             ; preds = %1738
  %1744 = load i32, ptr %630, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @s2n_print_stacktrace(ptr noundef %1745) #10
  %1747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1748 = trunc nuw i8 %1747 to i1
  br i1 %1748, label %1749, label %1753

1749:                                             ; preds = %1743
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @fileno(ptr noundef %1750) #10
  %1752 = call i32 @isatty(i32 noundef %1751) #10
  %.not439 = icmp eq i32 %1752, 0
  br i1 %.not439, label %1753, label %1754

1753:                                             ; preds = %1749, %1743
  br label %1754

1754:                                             ; preds = %1749, %1753
  %.str.5.sink1128 = phi ptr [ @.str.5, %1753 ], [ @.str.2, %1749 ]
  store i32 %1744, ptr %630, align 4, !tbaa !5
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = load i32, ptr %576, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror(i32 noundef %1757, ptr noundef nonnull @.str.4) #10
  %1759 = load i32, ptr %576, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror_debug(i32 noundef %1759, ptr noundef nonnull @.str.4) #10
  %1761 = load i32, ptr %630, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #10
  %1763 = load i32, ptr %630, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1755, ptr noundef nonnull %.str.5.sink1128, i32 noundef %1756, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1758, ptr noundef %1760, ptr noundef %1762, i32 noundef %1763) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1765:                                             ; preds = %1738
  %1766 = add nsw i32 %1711, 3
  store i32 %1766, ptr @test_count, align 4, !tbaa !5
  %1767 = call i32 @s2n_encrypted_extensions_send(ptr noundef nonnull %1577) #10
  %1768 = icmp eq i32 %1767, -1
  br i1 %1768, label %1769, label %1791

1769:                                             ; preds = %1765
  %1770 = load i32, ptr %630, align 4, !tbaa !5
  %1771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1772 = call i32 @s2n_print_stacktrace(ptr noundef %1771) #10
  %1773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1774 = trunc nuw i8 %1773 to i1
  br i1 %1774, label %1775, label %1779

1775:                                             ; preds = %1769
  %1776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1777 = call i32 @fileno(ptr noundef %1776) #10
  %1778 = call i32 @isatty(i32 noundef %1777) #10
  %.not494 = icmp eq i32 %1778, 0
  br i1 %.not494, label %1779, label %1780

1779:                                             ; preds = %1775, %1769
  br label %1780

1780:                                             ; preds = %1775, %1779
  %.str.5.sink1137 = phi ptr [ @.str.5, %1779 ], [ @.str.2, %1775 ]
  store i32 %1770, ptr %630, align 4, !tbaa !5
  %1781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1782 = load i32, ptr @test_count, align 4, !tbaa !5
  %1783 = load i32, ptr %576, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror(i32 noundef %1783, ptr noundef nonnull @.str.4) #10
  %1785 = load i32, ptr %576, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror_debug(i32 noundef %1785, ptr noundef nonnull @.str.4) #10
  %1787 = load i32, ptr %630, align 4, !tbaa !5
  %1788 = call ptr @strerror(i32 noundef %1787) #10
  %1789 = load i32, ptr %630, align 4, !tbaa !5
  %1790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1781, ptr noundef nonnull %.str.5.sink1137, i32 noundef %1782, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1784, ptr noundef %1786, ptr noundef %1788, i32 noundef %1789) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1791:                                             ; preds = %1765
  %1792 = load i32, ptr @test_count, align 4, !tbaa !5
  %1793 = add nsw i32 %1792, 1
  store i32 %1793, ptr @test_count, align 4, !tbaa !5
  %1794 = getelementptr inbounds i8, ptr %1577, i64 2016
  %1795 = getelementptr inbounds i8, ptr %1470, i64 2016
  %1796 = getelementptr inbounds i8, ptr %1577, i64 2044
  %1797 = load i32, ptr %1796, align 4, !tbaa !53
  %1798 = getelementptr inbounds i8, ptr %1577, i64 2040
  %1799 = load i32, ptr %1798, align 8, !tbaa !54
  %1800 = sub i32 %1797, %1799
  %1801 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1794, ptr noundef nonnull %1795, i32 noundef %1800) #10
  %1802 = icmp eq i32 %1801, -1
  br i1 %1802, label %1803, label %1825

1803:                                             ; preds = %1791
  %1804 = load i32, ptr %630, align 4, !tbaa !5
  %1805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1806 = call i32 @s2n_print_stacktrace(ptr noundef %1805) #10
  %1807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1808 = trunc nuw i8 %1807 to i1
  br i1 %1808, label %1809, label %1813

1809:                                             ; preds = %1803
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = call i32 @fileno(ptr noundef %1810) #10
  %1812 = call i32 @isatty(i32 noundef %1811) #10
  %.not493 = icmp eq i32 %1812, 0
  br i1 %.not493, label %1813, label %1814

1813:                                             ; preds = %1809, %1803
  br label %1814

1814:                                             ; preds = %1809, %1813
  %.str.5.sink1146 = phi ptr [ @.str.5, %1813 ], [ @.str.2, %1809 ]
  store i32 %1804, ptr %630, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = load i32, ptr %576, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef nonnull @.str.4) #10
  %1819 = load i32, ptr %576, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror_debug(i32 noundef %1819, ptr noundef nonnull @.str.4) #10
  %1821 = load i32, ptr %630, align 4, !tbaa !5
  %1822 = call ptr @strerror(i32 noundef %1821) #10
  %1823 = load i32, ptr %630, align 4, !tbaa !5
  %1824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1815, ptr noundef nonnull %.str.5.sink1146, i32 noundef %1816, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1818, ptr noundef %1820, ptr noundef %1822, i32 noundef %1823) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1825:                                             ; preds = %1791
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = add nsw i32 %1826, 1
  store i32 %1827, ptr @test_count, align 4, !tbaa !5
  %1828 = call i32 @s2n_encrypted_extensions_recv(ptr noundef nonnull %1470) #10
  %1829 = icmp eq i32 %1828, -1
  br i1 %1829, label %1830, label %1852

1830:                                             ; preds = %1825
  %1831 = load i32, ptr %630, align 4, !tbaa !5
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1833 = call i32 @s2n_print_stacktrace(ptr noundef %1832) #10
  %1834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1835 = trunc nuw i8 %1834 to i1
  br i1 %1835, label %1836, label %1840

1836:                                             ; preds = %1830
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = call i32 @fileno(ptr noundef %1837) #10
  %1839 = call i32 @isatty(i32 noundef %1838) #10
  %.not492 = icmp eq i32 %1839, 0
  br i1 %.not492, label %1840, label %1841

1840:                                             ; preds = %1836, %1830
  br label %1841

1841:                                             ; preds = %1836, %1840
  %.str.5.sink1155 = phi ptr [ @.str.5, %1840 ], [ @.str.2, %1836 ]
  store i32 %1831, ptr %630, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = load i32, ptr @test_count, align 4, !tbaa !5
  %1844 = load i32, ptr %576, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror(i32 noundef %1844, ptr noundef nonnull @.str.4) #10
  %1846 = load i32, ptr %576, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror_debug(i32 noundef %1846, ptr noundef nonnull @.str.4) #10
  %1848 = load i32, ptr %630, align 4, !tbaa !5
  %1849 = call ptr @strerror(i32 noundef %1848) #10
  %1850 = load i32, ptr %630, align 4, !tbaa !5
  %1851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1842, ptr noundef nonnull %.str.5.sink1155, i32 noundef %1843, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1845, ptr noundef %1847, ptr noundef %1849, i32 noundef %1850) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1852:                                             ; preds = %1825
  %1853 = load i32, ptr @test_count, align 4, !tbaa !5
  %1854 = add nsw i32 %1853, 1
  store i32 %1854, ptr @test_count, align 4, !tbaa !5
  %1855 = load i32, ptr %1713, align 8, !tbaa !18
  %1856 = icmp eq i32 %1855, 3
  br i1 %1856, label %1879, label %1857

1857:                                             ; preds = %1852
  %1858 = load i32, ptr %630, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = call i32 @s2n_print_stacktrace(ptr noundef %1859) #10
  %1861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1862 = trunc nuw i8 %1861 to i1
  br i1 %1862, label %1863, label %1867

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

1867:                                             ; preds = %1863, %1857
  br label %1868

1868:                                             ; preds = %1863, %1867
  %.str.5.sink1164 = phi ptr [ @.str.5, %1867 ], [ @.str.2, %1863 ]
  store i32 %1858, ptr %630, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = load i32, ptr %576, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror(i32 noundef %1871, ptr noundef nonnull @.str.4) #10
  %1873 = load i32, ptr %576, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror_debug(i32 noundef %1873, ptr noundef nonnull @.str.4) #10
  %1875 = load i32, ptr %630, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #10
  %1877 = load i32, ptr %630, align 4, !tbaa !5
  %1878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1869, ptr noundef nonnull %.str.5.sink1164, i32 noundef %1870, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1872, ptr noundef %1874, ptr noundef %1876, i32 noundef %1877) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1879:                                             ; preds = %1852
  %1880 = add nsw i32 %1853, 2
  store i32 %1880, ptr @test_count, align 4, !tbaa !5
  %1881 = load i32, ptr %1740, align 8, !tbaa !18
  %1882 = icmp eq i32 %1881, 3
  br i1 %1882, label %1905, label %1883

1883:                                             ; preds = %1879
  %1884 = load i32, ptr %630, align 4, !tbaa !5
  %1885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1886 = call i32 @s2n_print_stacktrace(ptr noundef %1885) #10
  %1887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1888 = trunc nuw i8 %1887 to i1
  br i1 %1888, label %1889, label %1893

1889:                                             ; preds = %1883
  %1890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1891 = call i32 @fileno(ptr noundef %1890) #10
  %1892 = call i32 @isatty(i32 noundef %1891) #10
  %.not441 = icmp eq i32 %1892, 0
  br i1 %.not441, label %1893, label %1894

1893:                                             ; preds = %1889, %1883
  br label %1894

1894:                                             ; preds = %1889, %1893
  %.str.5.sink1173 = phi ptr [ @.str.5, %1893 ], [ @.str.2, %1889 ]
  store i32 %1884, ptr %630, align 4, !tbaa !5
  %1895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1896 = load i32, ptr @test_count, align 4, !tbaa !5
  %1897 = load i32, ptr %576, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror(i32 noundef %1897, ptr noundef nonnull @.str.4) #10
  %1899 = load i32, ptr %576, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror_debug(i32 noundef %1899, ptr noundef nonnull @.str.4) #10
  %1901 = load i32, ptr %630, align 4, !tbaa !5
  %1902 = call ptr @strerror(i32 noundef %1901) #10
  %1903 = load i32, ptr %630, align 4, !tbaa !5
  %1904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1895, ptr noundef nonnull %.str.5.sink1173, i32 noundef %1896, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1898, ptr noundef %1900, ptr noundef %1902, i32 noundef %1903) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1905:                                             ; preds = %1879
  %1906 = add nsw i32 %1853, 3
  store i32 %1906, ptr @test_count, align 4, !tbaa !5
  %1907 = call i32 @s2n_connection_free(ptr noundef nonnull %1470) #10
  %1908 = icmp eq i32 %1907, -1
  br i1 %1908, label %1909, label %1931

1909:                                             ; preds = %1905
  %1910 = load i32, ptr %630, align 4, !tbaa !5
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = call i32 @s2n_print_stacktrace(ptr noundef %1911) #10
  %1913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1914 = trunc nuw i8 %1913 to i1
  br i1 %1914, label %1915, label %1919

1915:                                             ; preds = %1909
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = call i32 @fileno(ptr noundef %1916) #10
  %1918 = call i32 @isatty(i32 noundef %1917) #10
  %.not491 = icmp eq i32 %1918, 0
  br i1 %.not491, label %1919, label %1920

1919:                                             ; preds = %1915, %1909
  br label %1920

1920:                                             ; preds = %1915, %1919
  %.str.5.sink1182 = phi ptr [ @.str.5, %1919 ], [ @.str.2, %1915 ]
  store i32 %1910, ptr %630, align 4, !tbaa !5
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = load i32, ptr @test_count, align 4, !tbaa !5
  %1923 = load i32, ptr %576, align 4, !tbaa !5
  %1924 = call ptr @s2n_strerror(i32 noundef %1923, ptr noundef nonnull @.str.4) #10
  %1925 = load i32, ptr %576, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror_debug(i32 noundef %1925, ptr noundef nonnull @.str.4) #10
  %1927 = load i32, ptr %630, align 4, !tbaa !5
  %1928 = call ptr @strerror(i32 noundef %1927) #10
  %1929 = load i32, ptr %630, align 4, !tbaa !5
  %1930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1921, ptr noundef nonnull %.str.5.sink1182, i32 noundef %1922, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1924, ptr noundef %1926, ptr noundef %1928, i32 noundef %1929) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1931:                                             ; preds = %1905
  %1932 = load i32, ptr @test_count, align 4, !tbaa !5
  %1933 = add nsw i32 %1932, 1
  store i32 %1933, ptr @test_count, align 4, !tbaa !5
  %1934 = call i32 @s2n_connection_free(ptr noundef nonnull %1577) #10
  %1935 = icmp eq i32 %1934, -1
  br i1 %1935, label %1936, label %1958

1936:                                             ; preds = %1931
  %1937 = load i32, ptr %630, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = call i32 @s2n_print_stacktrace(ptr noundef %1938) #10
  %1940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1941 = trunc nuw i8 %1940 to i1
  br i1 %1941, label %1942, label %1946

1942:                                             ; preds = %1936
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = call i32 @fileno(ptr noundef %1943) #10
  %1945 = call i32 @isatty(i32 noundef %1944) #10
  %.not490 = icmp eq i32 %1945, 0
  br i1 %.not490, label %1946, label %1947

1946:                                             ; preds = %1942, %1936
  br label %1947

1947:                                             ; preds = %1942, %1946
  %.str.5.sink1191 = phi ptr [ @.str.5, %1946 ], [ @.str.2, %1942 ]
  store i32 %1937, ptr %630, align 4, !tbaa !5
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = load i32, ptr @test_count, align 4, !tbaa !5
  %1950 = load i32, ptr %576, align 4, !tbaa !5
  %1951 = call ptr @s2n_strerror(i32 noundef %1950, ptr noundef nonnull @.str.4) #10
  %1952 = load i32, ptr %576, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror_debug(i32 noundef %1952, ptr noundef nonnull @.str.4) #10
  %1954 = load i32, ptr %630, align 4, !tbaa !5
  %1955 = call ptr @strerror(i32 noundef %1954) #10
  %1956 = load i32, ptr %630, align 4, !tbaa !5
  %1957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1948, ptr noundef nonnull %.str.5.sink1191, i32 noundef %1949, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %1951, ptr noundef %1953, ptr noundef %1955, i32 noundef %1956) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1958:                                             ; preds = %1931
  %1959 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1960 = load i32, ptr @test_count, align 4, !tbaa !5
  %1961 = add nsw i32 %1960, 1
  store i32 %1961, ptr @test_count, align 4, !tbaa !5
  %1962 = icmp eq ptr %1959, null
  br i1 %1962, label %1963, label %1985

1963:                                             ; preds = %1958
  %1964 = load i32, ptr %630, align 4, !tbaa !5
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = call i32 @s2n_print_stacktrace(ptr noundef %1965) #10
  %1967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1968 = trunc nuw i8 %1967 to i1
  br i1 %1968, label %1969, label %1973

1969:                                             ; preds = %1963
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = call i32 @fileno(ptr noundef %1970) #10
  %1972 = call i32 @isatty(i32 noundef %1971) #10
  %.not489 = icmp eq i32 %1972, 0
  br i1 %.not489, label %1973, label %1974

1973:                                             ; preds = %1969, %1963
  br label %1974

1974:                                             ; preds = %1969, %1973
  %.str.5.sink1200 = phi ptr [ @.str.5, %1973 ], [ @.str.2, %1969 ]
  store i32 %1964, ptr %630, align 4, !tbaa !5
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = load i32, ptr @test_count, align 4, !tbaa !5
  %1977 = load i32, ptr %576, align 4, !tbaa !5
  %1978 = call ptr @s2n_strerror(i32 noundef %1977, ptr noundef nonnull @.str.4) #10
  %1979 = load i32, ptr %576, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror_debug(i32 noundef %1979, ptr noundef nonnull @.str.4) #10
  %1981 = load i32, ptr %630, align 4, !tbaa !5
  %1982 = call ptr @strerror(i32 noundef %1981) #10
  %1983 = load i32, ptr %630, align 4, !tbaa !5
  %1984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1975, ptr noundef nonnull %.str.5.sink1200, i32 noundef %1976, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %1978, ptr noundef %1980, ptr noundef %1982, i32 noundef %1983) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1985:                                             ; preds = %1958
  %1986 = add nsw i32 %1960, 2
  store i32 %1986, ptr @test_count, align 4, !tbaa !5
  %1987 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef nonnull %1959, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #10
  %1988 = call zeroext i1 @s2n_result_is_ok(i32 %1987)
  br i1 %1988, label %2011, label %1989

1989:                                             ; preds = %1985
  %1990 = load i32, ptr %630, align 4, !tbaa !5
  %1991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1992 = call i32 @s2n_print_stacktrace(ptr noundef %1991) #10
  %1993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1994 = trunc nuw i8 %1993 to i1
  br i1 %1994, label %1995, label %1999

1995:                                             ; preds = %1989
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = call i32 @fileno(ptr noundef %1996) #10
  %1998 = call i32 @isatty(i32 noundef %1997) #10
  %.not442 = icmp eq i32 %1998, 0
  br i1 %.not442, label %1999, label %2000

1999:                                             ; preds = %1995, %1989
  br label %2000

2000:                                             ; preds = %1995, %1999
  %.str.5.sink1209 = phi ptr [ @.str.5, %1999 ], [ @.str.2, %1995 ]
  store i32 %1990, ptr %630, align 4, !tbaa !5
  %2001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2002 = load i32, ptr @test_count, align 4, !tbaa !5
  %2003 = load i32, ptr %576, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror(i32 noundef %2003, ptr noundef nonnull @.str.4) #10
  %2005 = load i32, ptr %576, align 4, !tbaa !5
  %2006 = call ptr @s2n_strerror_debug(i32 noundef %2005, ptr noundef nonnull @.str.4) #10
  %2007 = load i32, ptr %630, align 4, !tbaa !5
  %2008 = call ptr @strerror(i32 noundef %2007) #10
  %2009 = load i32, ptr %630, align 4, !tbaa !5
  %2010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2001, ptr noundef nonnull %.str.5.sink1209, i32 noundef %2002, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %2004, ptr noundef %2006, ptr noundef %2008, i32 noundef %2009) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2011:                                             ; preds = %1985
  %2012 = load i32, ptr @test_count, align 4, !tbaa !5
  %2013 = add nsw i32 %2012, 1
  store i32 %2013, ptr @test_count, align 4, !tbaa !5
  %2014 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1959, ptr noundef nonnull @.str.30) #10
  %2015 = icmp eq i32 %2014, -1
  br i1 %2015, label %2016, label %2038

2016:                                             ; preds = %2011
  %2017 = load i32, ptr %630, align 4, !tbaa !5
  %2018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2019 = call i32 @s2n_print_stacktrace(ptr noundef %2018) #10
  %2020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2021 = trunc nuw i8 %2020 to i1
  br i1 %2021, label %2022, label %2026

2022:                                             ; preds = %2016
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = call i32 @fileno(ptr noundef %2023) #10
  %2025 = call i32 @isatty(i32 noundef %2024) #10
  %.not488 = icmp eq i32 %2025, 0
  br i1 %.not488, label %2026, label %2027

2026:                                             ; preds = %2022, %2016
  br label %2027

2027:                                             ; preds = %2022, %2026
  %.str.5.sink1218 = phi ptr [ @.str.5, %2026 ], [ @.str.2, %2022 ]
  store i32 %2017, ptr %630, align 4, !tbaa !5
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = load i32, ptr @test_count, align 4, !tbaa !5
  %2030 = load i32, ptr %576, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror(i32 noundef %2030, ptr noundef nonnull @.str.4) #10
  %2032 = load i32, ptr %576, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror_debug(i32 noundef %2032, ptr noundef nonnull @.str.4) #10
  %2034 = load i32, ptr %630, align 4, !tbaa !5
  %2035 = call ptr @strerror(i32 noundef %2034) #10
  %2036 = load i32, ptr %630, align 4, !tbaa !5
  %2037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2028, ptr noundef nonnull %.str.5.sink1218, i32 noundef %2029, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %2031, ptr noundef %2033, ptr noundef %2035, i32 noundef %2036) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2038:                                             ; preds = %2011
  %2039 = load i32, ptr @test_count, align 4, !tbaa !5
  %2040 = add nsw i32 %2039, 1
  store i32 %2040, ptr @test_count, align 4, !tbaa !5
  %2041 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %1959) #10
  %2042 = icmp eq i32 %2041, -1
  br i1 %2042, label %2043, label %2065

2043:                                             ; preds = %2038
  %2044 = load i32, ptr %630, align 4, !tbaa !5
  %2045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2046 = call i32 @s2n_print_stacktrace(ptr noundef %2045) #10
  %2047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2048 = trunc nuw i8 %2047 to i1
  br i1 %2048, label %2049, label %2053

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

2053:                                             ; preds = %2049, %2043
  br label %2054

2054:                                             ; preds = %2049, %2053
  %.str.5.sink1227 = phi ptr [ @.str.5, %2053 ], [ @.str.2, %2049 ]
  store i32 %2044, ptr %630, align 4, !tbaa !5
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = load i32, ptr @test_count, align 4, !tbaa !5
  %2057 = load i32, ptr %576, align 4, !tbaa !5
  %2058 = call ptr @s2n_strerror(i32 noundef %2057, ptr noundef nonnull @.str.4) #10
  %2059 = load i32, ptr %576, align 4, !tbaa !5
  %2060 = call ptr @s2n_strerror_debug(i32 noundef %2059, ptr noundef nonnull @.str.4) #10
  %2061 = load i32, ptr %630, align 4, !tbaa !5
  %2062 = call ptr @strerror(i32 noundef %2061) #10
  %2063 = load i32, ptr %630, align 4, !tbaa !5
  %2064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2055, ptr noundef nonnull %.str.5.sink1227, i32 noundef %2056, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %2058, ptr noundef %2060, ptr noundef %2062, i32 noundef %2063) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2065:                                             ; preds = %2038
  %2066 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %2067 = load i32, ptr @test_count, align 4, !tbaa !5
  %2068 = add nsw i32 %2067, 1
  store i32 %2068, ptr @test_count, align 4, !tbaa !5
  %2069 = icmp eq ptr %2066, null
  br i1 %2069, label %2070, label %2092

2070:                                             ; preds = %2065
  %2071 = load i32, ptr %630, align 4, !tbaa !5
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = call i32 @s2n_print_stacktrace(ptr noundef %2072) #10
  %2074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2075 = trunc nuw i8 %2074 to i1
  br i1 %2075, label %2076, label %2080

2076:                                             ; preds = %2070
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @fileno(ptr noundef %2077) #10
  %2079 = call i32 @isatty(i32 noundef %2078) #10
  %.not486 = icmp eq i32 %2079, 0
  br i1 %.not486, label %2080, label %2081

2080:                                             ; preds = %2076, %2070
  br label %2081

2081:                                             ; preds = %2076, %2080
  %.str.5.sink1236 = phi ptr [ @.str.5, %2080 ], [ @.str.2, %2076 ]
  store i32 %2071, ptr %630, align 4, !tbaa !5
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = load i32, ptr @test_count, align 4, !tbaa !5
  %2084 = load i32, ptr %576, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror(i32 noundef %2084, ptr noundef nonnull @.str.4) #10
  %2086 = load i32, ptr %576, align 4, !tbaa !5
  %2087 = call ptr @s2n_strerror_debug(i32 noundef %2086, ptr noundef nonnull @.str.4) #10
  %2088 = load i32, ptr %630, align 4, !tbaa !5
  %2089 = call ptr @strerror(i32 noundef %2088) #10
  %2090 = load i32, ptr %630, align 4, !tbaa !5
  %2091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2082, ptr noundef nonnull %.str.5.sink1236, i32 noundef %2083, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %2085, ptr noundef %2087, ptr noundef %2089, i32 noundef %2090) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2092:                                             ; preds = %2065
  %2093 = add nsw i32 %2067, 2
  store i32 %2093, ptr @test_count, align 4, !tbaa !5
  %2094 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef nonnull %2066, i32 noundef 0, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #10
  %2095 = call zeroext i1 @s2n_result_is_ok(i32 %2094)
  br i1 %2095, label %2118, label %2096

2096:                                             ; preds = %2092
  %2097 = load i32, ptr %630, align 4, !tbaa !5
  %2098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2099 = call i32 @s2n_print_stacktrace(ptr noundef %2098) #10
  %2100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2101 = trunc nuw i8 %2100 to i1
  br i1 %2101, label %2102, label %2106

2102:                                             ; preds = %2096
  %2103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2104 = call i32 @fileno(ptr noundef %2103) #10
  %2105 = call i32 @isatty(i32 noundef %2104) #10
  %.not443 = icmp eq i32 %2105, 0
  br i1 %.not443, label %2106, label %2107

2106:                                             ; preds = %2102, %2096
  br label %2107

2107:                                             ; preds = %2102, %2106
  %.str.5.sink1245 = phi ptr [ @.str.5, %2106 ], [ @.str.2, %2102 ]
  store i32 %2097, ptr %630, align 4, !tbaa !5
  %2108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2109 = load i32, ptr @test_count, align 4, !tbaa !5
  %2110 = load i32, ptr %576, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror(i32 noundef %2110, ptr noundef nonnull @.str.4) #10
  %2112 = load i32, ptr %576, align 4, !tbaa !5
  %2113 = call ptr @s2n_strerror_debug(i32 noundef %2112, ptr noundef nonnull @.str.4) #10
  %2114 = load i32, ptr %630, align 4, !tbaa !5
  %2115 = call ptr @strerror(i32 noundef %2114) #10
  %2116 = load i32, ptr %630, align 4, !tbaa !5
  %2117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2108, ptr noundef nonnull %.str.5.sink1245, i32 noundef %2109, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %2111, ptr noundef %2113, ptr noundef %2115, i32 noundef %2116) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2118:                                             ; preds = %2092
  %2119 = load i32, ptr @test_count, align 4, !tbaa !5
  %2120 = add nsw i32 %2119, 1
  store i32 %2120, ptr @test_count, align 4, !tbaa !5
  %2121 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2066, ptr noundef nonnull @.str.30) #10
  %2122 = icmp eq i32 %2121, -1
  br i1 %2122, label %2123, label %2145

2123:                                             ; preds = %2118
  %2124 = load i32, ptr %630, align 4, !tbaa !5
  %2125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2126 = call i32 @s2n_print_stacktrace(ptr noundef %2125) #10
  %2127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2128 = trunc nuw i8 %2127 to i1
  br i1 %2128, label %2129, label %2133

2129:                                             ; preds = %2123
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = call i32 @fileno(ptr noundef %2130) #10
  %2132 = call i32 @isatty(i32 noundef %2131) #10
  %.not485 = icmp eq i32 %2132, 0
  br i1 %.not485, label %2133, label %2134

2133:                                             ; preds = %2129, %2123
  br label %2134

2134:                                             ; preds = %2129, %2133
  %.str.5.sink1254 = phi ptr [ @.str.5, %2133 ], [ @.str.2, %2129 ]
  store i32 %2124, ptr %630, align 4, !tbaa !5
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = load i32, ptr @test_count, align 4, !tbaa !5
  %2137 = load i32, ptr %576, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror(i32 noundef %2137, ptr noundef nonnull @.str.4) #10
  %2139 = load i32, ptr %576, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror_debug(i32 noundef %2139, ptr noundef nonnull @.str.4) #10
  %2141 = load i32, ptr %630, align 4, !tbaa !5
  %2142 = call ptr @strerror(i32 noundef %2141) #10
  %2143 = load i32, ptr %630, align 4, !tbaa !5
  %2144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2135, ptr noundef nonnull %.str.5.sink1254, i32 noundef %2136, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %2138, ptr noundef %2140, ptr noundef %2142, i32 noundef %2143) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2145:                                             ; preds = %2118
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = add nsw i32 %2146, 1
  store i32 %2147, ptr @test_count, align 4, !tbaa !5
  %2148 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %2066) #10
  %2149 = icmp eq i32 %2148, -1
  br i1 %2149, label %2150, label %2172

2150:                                             ; preds = %2145
  %2151 = load i32, ptr %630, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = call i32 @s2n_print_stacktrace(ptr noundef %2152) #10
  %2154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2155 = trunc nuw i8 %2154 to i1
  br i1 %2155, label %2156, label %2160

2156:                                             ; preds = %2150
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = call i32 @fileno(ptr noundef %2157) #10
  %2159 = call i32 @isatty(i32 noundef %2158) #10
  %.not484 = icmp eq i32 %2159, 0
  br i1 %.not484, label %2160, label %2161

2160:                                             ; preds = %2156, %2150
  br label %2161

2161:                                             ; preds = %2156, %2160
  %.str.5.sink1263 = phi ptr [ @.str.5, %2160 ], [ @.str.2, %2156 ]
  store i32 %2151, ptr %630, align 4, !tbaa !5
  %2162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2163 = load i32, ptr @test_count, align 4, !tbaa !5
  %2164 = load i32, ptr %576, align 4, !tbaa !5
  %2165 = call ptr @s2n_strerror(i32 noundef %2164, ptr noundef nonnull @.str.4) #10
  %2166 = load i32, ptr %576, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror_debug(i32 noundef %2166, ptr noundef nonnull @.str.4) #10
  %2168 = load i32, ptr %630, align 4, !tbaa !5
  %2169 = call ptr @strerror(i32 noundef %2168) #10
  %2170 = load i32, ptr %630, align 4, !tbaa !5
  %2171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2162, ptr noundef nonnull %.str.5.sink1263, i32 noundef %2163, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %2165, ptr noundef %2167, ptr noundef %2169, i32 noundef %2170) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2172:                                             ; preds = %2145
  %2173 = load i32, ptr @test_count, align 4, !tbaa !5
  %2174 = add nsw i32 %2173, 1
  store i32 %2174, ptr @test_count, align 4, !tbaa !5
  %2175 = call i32 @s2n_exchange_hellos(ptr noundef nonnull %1959, ptr noundef nonnull %2066)
  %2176 = call zeroext i1 @s2n_result_is_ok(i32 %2175)
  br i1 %2176, label %2199, label %2177

2177:                                             ; preds = %2172
  %2178 = load i32, ptr %630, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = call i32 @s2n_print_stacktrace(ptr noundef %2179) #10
  %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) #10
  %2186 = call i32 @isatty(i32 noundef %2185) #10
  %.not444 = icmp eq i32 %2186, 0
  br i1 %.not444, label %2187, label %2188

2187:                                             ; preds = %2183, %2177
  br label %2188

2188:                                             ; preds = %2183, %2187
  %.str.5.sink1272 = phi ptr [ @.str.5, %2187 ], [ @.str.2, %2183 ]
  store i32 %2178, ptr %630, 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 %576, align 4, !tbaa !5
  %2192 = call ptr @s2n_strerror(i32 noundef %2191, ptr noundef nonnull @.str.4) #10
  %2193 = load i32, ptr %576, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror_debug(i32 noundef %2193, ptr noundef nonnull @.str.4) #10
  %2195 = load i32, ptr %630, align 4, !tbaa !5
  %2196 = call ptr @strerror(i32 noundef %2195) #10
  %2197 = load i32, ptr %630, align 4, !tbaa !5
  %2198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2189, ptr noundef nonnull %.str.5.sink1272, i32 noundef %2190, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 231, ptr noundef %2192, ptr noundef %2194, ptr noundef %2196, i32 noundef %2197) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2199:                                             ; preds = %2172
  %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 = getelementptr inbounds i8, ptr %1959, i64 4088
  %2203 = load i32, ptr %2202, align 8, !tbaa !18
  %2204 = icmp eq i32 %2203, 1
  br i1 %2204, label %2227, label %2205

2205:                                             ; preds = %2199
  %2206 = load i32, ptr %630, align 4, !tbaa !5
  %2207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2208 = call i32 @s2n_print_stacktrace(ptr noundef %2207) #10
  %2209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2210 = trunc nuw i8 %2209 to i1
  br i1 %2210, label %2211, label %2215

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

2215:                                             ; preds = %2211, %2205
  br label %2216

2216:                                             ; preds = %2211, %2215
  %.str.5.sink1281 = phi ptr [ @.str.5, %2215 ], [ @.str.2, %2211 ]
  store i32 %2206, ptr %630, align 4, !tbaa !5
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = load i32, ptr @test_count, align 4, !tbaa !5
  %2219 = load i32, ptr %576, align 4, !tbaa !5
  %2220 = call ptr @s2n_strerror(i32 noundef %2219, ptr noundef nonnull @.str.4) #10
  %2221 = load i32, ptr %576, align 4, !tbaa !5
  %2222 = call ptr @s2n_strerror_debug(i32 noundef %2221, ptr noundef nonnull @.str.4) #10
  %2223 = load i32, ptr %630, align 4, !tbaa !5
  %2224 = call ptr @strerror(i32 noundef %2223) #10
  %2225 = load i32, ptr %630, align 4, !tbaa !5
  %2226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2217, ptr noundef nonnull %.str.5.sink1281, i32 noundef %2218, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %2220, ptr noundef %2222, ptr noundef %2224, i32 noundef %2225) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2227:                                             ; preds = %2199
  %2228 = add nsw i32 %2200, 2
  store i32 %2228, ptr @test_count, align 4, !tbaa !5
  %2229 = getelementptr inbounds i8, ptr %2066, i64 4088
  %2230 = load i32, ptr %2229, align 8, !tbaa !18
  %2231 = icmp eq i32 %2230, 4
  br i1 %2231, label %2254, label %2232

2232:                                             ; preds = %2227
  %2233 = load i32, ptr %630, align 4, !tbaa !5
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = call i32 @s2n_print_stacktrace(ptr noundef %2234) #10
  %2236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2237 = trunc nuw i8 %2236 to i1
  br i1 %2237, label %2238, label %2242

2238:                                             ; preds = %2232
  %2239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2240 = call i32 @fileno(ptr noundef %2239) #10
  %2241 = call i32 @isatty(i32 noundef %2240) #10
  %.not446 = icmp eq i32 %2241, 0
  br i1 %.not446, label %2242, label %2243

2242:                                             ; preds = %2238, %2232
  br label %2243

2243:                                             ; preds = %2238, %2242
  %.str.5.sink1290 = phi ptr [ @.str.5, %2242 ], [ @.str.2, %2238 ]
  store i32 %2233, ptr %630, align 4, !tbaa !5
  %2244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2245 = load i32, ptr @test_count, align 4, !tbaa !5
  %2246 = load i32, ptr %576, align 4, !tbaa !5
  %2247 = call ptr @s2n_strerror(i32 noundef %2246, ptr noundef nonnull @.str.4) #10
  %2248 = load i32, ptr %576, align 4, !tbaa !5
  %2249 = call ptr @s2n_strerror_debug(i32 noundef %2248, ptr noundef nonnull @.str.4) #10
  %2250 = load i32, ptr %630, align 4, !tbaa !5
  %2251 = call ptr @strerror(i32 noundef %2250) #10
  %2252 = load i32, ptr %630, align 4, !tbaa !5
  %2253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2244, ptr noundef nonnull %.str.5.sink1290, i32 noundef %2245, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %2247, ptr noundef %2249, ptr noundef %2251, i32 noundef %2252) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2254:                                             ; preds = %2227
  %2255 = add nsw i32 %2200, 3
  store i32 %2255, ptr @test_count, align 4, !tbaa !5
  %2256 = call i32 @s2n_encrypted_extensions_send(ptr noundef nonnull %2066) #10
  %2257 = icmp eq i32 %2256, -1
  br i1 %2257, label %2258, label %2280

2258:                                             ; preds = %2254
  %2259 = load i32, ptr %630, align 4, !tbaa !5
  %2260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2261 = call i32 @s2n_print_stacktrace(ptr noundef %2260) #10
  %2262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2263 = trunc nuw i8 %2262 to i1
  br i1 %2263, label %2264, label %2268

2264:                                             ; preds = %2258
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = call i32 @fileno(ptr noundef %2265) #10
  %2267 = call i32 @isatty(i32 noundef %2266) #10
  %.not483 = icmp eq i32 %2267, 0
  br i1 %.not483, label %2268, label %2269

2268:                                             ; preds = %2264, %2258
  br label %2269

2269:                                             ; preds = %2264, %2268
  %.str.5.sink1299 = phi ptr [ @.str.5, %2268 ], [ @.str.2, %2264 ]
  store i32 %2259, ptr %630, align 4, !tbaa !5
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = load i32, ptr %576, align 4, !tbaa !5
  %2273 = call ptr @s2n_strerror(i32 noundef %2272, ptr noundef nonnull @.str.4) #10
  %2274 = load i32, ptr %576, align 4, !tbaa !5
  %2275 = call ptr @s2n_strerror_debug(i32 noundef %2274, ptr noundef nonnull @.str.4) #10
  %2276 = load i32, ptr %630, align 4, !tbaa !5
  %2277 = call ptr @strerror(i32 noundef %2276) #10
  %2278 = load i32, ptr %630, align 4, !tbaa !5
  %2279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2270, ptr noundef nonnull %.str.5.sink1299, i32 noundef %2271, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %2273, ptr noundef %2275, ptr noundef %2277, i32 noundef %2278) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2280:                                             ; preds = %2254
  %2281 = load i32, ptr @test_count, align 4, !tbaa !5
  %2282 = add nsw i32 %2281, 1
  store i32 %2282, ptr @test_count, align 4, !tbaa !5
  %2283 = getelementptr inbounds i8, ptr %2066, i64 2016
  %2284 = getelementptr inbounds i8, ptr %1959, i64 2016
  %2285 = getelementptr inbounds i8, ptr %2066, i64 2044
  %2286 = load i32, ptr %2285, align 4, !tbaa !53
  %2287 = getelementptr inbounds i8, ptr %2066, i64 2040
  %2288 = load i32, ptr %2287, align 8, !tbaa !54
  %2289 = sub i32 %2286, %2288
  %2290 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %2283, ptr noundef nonnull %2284, i32 noundef %2289) #10
  %2291 = icmp eq i32 %2290, -1
  br i1 %2291, label %2292, label %2314

2292:                                             ; preds = %2280
  %2293 = load i32, ptr %630, align 4, !tbaa !5
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = call i32 @s2n_print_stacktrace(ptr noundef %2294) #10
  %2296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2297 = trunc nuw i8 %2296 to i1
  br i1 %2297, label %2298, label %2302

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

2302:                                             ; preds = %2298, %2292
  br label %2303

2303:                                             ; preds = %2298, %2302
  %.str.5.sink1308 = phi ptr [ @.str.5, %2302 ], [ @.str.2, %2298 ]
  store i32 %2293, ptr %630, align 4, !tbaa !5
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = load i32, ptr @test_count, align 4, !tbaa !5
  %2306 = load i32, ptr %576, align 4, !tbaa !5
  %2307 = call ptr @s2n_strerror(i32 noundef %2306, ptr noundef nonnull @.str.4) #10
  %2308 = load i32, ptr %576, align 4, !tbaa !5
  %2309 = call ptr @s2n_strerror_debug(i32 noundef %2308, ptr noundef nonnull @.str.4) #10
  %2310 = load i32, ptr %630, align 4, !tbaa !5
  %2311 = call ptr @strerror(i32 noundef %2310) #10
  %2312 = load i32, ptr %630, align 4, !tbaa !5
  %2313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2304, ptr noundef nonnull %.str.5.sink1308, i32 noundef %2305, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %2307, ptr noundef %2309, ptr noundef %2311, i32 noundef %2312) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2314:                                             ; preds = %2280
  %2315 = load i32, ptr @test_count, align 4, !tbaa !5
  %2316 = add nsw i32 %2315, 1
  store i32 %2316, ptr @test_count, align 4, !tbaa !5
  %2317 = call i32 @s2n_encrypted_extensions_recv(ptr noundef nonnull %1959) #10
  %2318 = icmp eq i32 %2317, -1
  br i1 %2318, label %2319, label %2341

2319:                                             ; preds = %2314
  %2320 = load i32, ptr %630, align 4, !tbaa !5
  %2321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2322 = call i32 @s2n_print_stacktrace(ptr noundef %2321) #10
  %2323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2324 = trunc nuw i8 %2323 to i1
  br i1 %2324, label %2325, label %2329

2325:                                             ; preds = %2319
  %2326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2327 = call i32 @fileno(ptr noundef %2326) #10
  %2328 = call i32 @isatty(i32 noundef %2327) #10
  %.not481 = icmp eq i32 %2328, 0
  br i1 %.not481, label %2329, label %2330

2329:                                             ; preds = %2325, %2319
  br label %2330

2330:                                             ; preds = %2325, %2329
  %.str.5.sink1317 = phi ptr [ @.str.5, %2329 ], [ @.str.2, %2325 ]
  store i32 %2320, ptr %630, align 4, !tbaa !5
  %2331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2332 = load i32, ptr @test_count, align 4, !tbaa !5
  %2333 = load i32, ptr %576, align 4, !tbaa !5
  %2334 = call ptr @s2n_strerror(i32 noundef %2333, ptr noundef nonnull @.str.4) #10
  %2335 = load i32, ptr %576, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror_debug(i32 noundef %2335, ptr noundef nonnull @.str.4) #10
  %2337 = load i32, ptr %630, align 4, !tbaa !5
  %2338 = call ptr @strerror(i32 noundef %2337) #10
  %2339 = load i32, ptr %630, align 4, !tbaa !5
  %2340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2331, ptr noundef nonnull %.str.5.sink1317, i32 noundef %2332, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 238, ptr noundef %2334, ptr noundef %2336, ptr noundef %2338, i32 noundef %2339) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2341:                                             ; preds = %2314
  %2342 = load i32, ptr @test_count, align 4, !tbaa !5
  %2343 = add nsw i32 %2342, 1
  store i32 %2343, ptr @test_count, align 4, !tbaa !5
  %2344 = load i32, ptr %2202, align 8, !tbaa !18
  %2345 = icmp eq i32 %2344, 4
  br i1 %2345, label %2368, label %2346

2346:                                             ; preds = %2341
  %2347 = load i32, ptr %630, align 4, !tbaa !5
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2349 = call i32 @s2n_print_stacktrace(ptr noundef %2348) #10
  %2350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2351 = trunc nuw i8 %2350 to i1
  br i1 %2351, label %2352, label %2356

2352:                                             ; preds = %2346
  %2353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2354 = call i32 @fileno(ptr noundef %2353) #10
  %2355 = call i32 @isatty(i32 noundef %2354) #10
  %.not447 = icmp eq i32 %2355, 0
  br i1 %.not447, label %2356, label %2357

2356:                                             ; preds = %2352, %2346
  br label %2357

2357:                                             ; preds = %2352, %2356
  %.str.5.sink1326 = phi ptr [ @.str.5, %2356 ], [ @.str.2, %2352 ]
  store i32 %2347, ptr %630, align 4, !tbaa !5
  %2358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2359 = load i32, ptr @test_count, align 4, !tbaa !5
  %2360 = load i32, ptr %576, align 4, !tbaa !5
  %2361 = call ptr @s2n_strerror(i32 noundef %2360, ptr noundef nonnull @.str.4) #10
  %2362 = load i32, ptr %576, align 4, !tbaa !5
  %2363 = call ptr @s2n_strerror_debug(i32 noundef %2362, ptr noundef nonnull @.str.4) #10
  %2364 = load i32, ptr %630, align 4, !tbaa !5
  %2365 = call ptr @strerror(i32 noundef %2364) #10
  %2366 = load i32, ptr %630, align 4, !tbaa !5
  %2367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2358, ptr noundef nonnull %.str.5.sink1326, i32 noundef %2359, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %2361, ptr noundef %2363, ptr noundef %2365, i32 noundef %2366) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2368:                                             ; preds = %2341
  %2369 = add nsw i32 %2342, 2
  store i32 %2369, ptr @test_count, align 4, !tbaa !5
  %2370 = load i32, ptr %2229, align 8, !tbaa !18
  %2371 = icmp eq i32 %2370, 4
  br i1 %2371, label %2394, label %2372

2372:                                             ; preds = %2368
  %2373 = load i32, ptr %630, align 4, !tbaa !5
  %2374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2375 = call i32 @s2n_print_stacktrace(ptr noundef %2374) #10
  %2376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2377 = trunc nuw i8 %2376 to i1
  br i1 %2377, label %2378, label %2382

2378:                                             ; preds = %2372
  %2379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2380 = call i32 @fileno(ptr noundef %2379) #10
  %2381 = call i32 @isatty(i32 noundef %2380) #10
  %.not448 = icmp eq i32 %2381, 0
  br i1 %.not448, label %2382, label %2383

2382:                                             ; preds = %2378, %2372
  br label %2383

2383:                                             ; preds = %2378, %2382
  %.str.5.sink1335 = phi ptr [ @.str.5, %2382 ], [ @.str.2, %2378 ]
  store i32 %2373, ptr %630, align 4, !tbaa !5
  %2384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2385 = load i32, ptr @test_count, align 4, !tbaa !5
  %2386 = load i32, ptr %576, align 4, !tbaa !5
  %2387 = call ptr @s2n_strerror(i32 noundef %2386, ptr noundef nonnull @.str.4) #10
  %2388 = load i32, ptr %576, align 4, !tbaa !5
  %2389 = call ptr @s2n_strerror_debug(i32 noundef %2388, ptr noundef nonnull @.str.4) #10
  %2390 = load i32, ptr %630, align 4, !tbaa !5
  %2391 = call ptr @strerror(i32 noundef %2390) #10
  %2392 = load i32, ptr %630, align 4, !tbaa !5
  %2393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2384, ptr noundef nonnull %.str.5.sink1335, i32 noundef %2385, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %2387, ptr noundef %2389, ptr noundef %2391, i32 noundef %2392) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2394:                                             ; preds = %2368
  %2395 = add nsw i32 %2342, 3
  store i32 %2395, ptr @test_count, align 4, !tbaa !5
  %2396 = call i32 @s2n_connection_free(ptr noundef nonnull %1959) #10
  %2397 = icmp eq i32 %2396, -1
  br i1 %2397, label %2398, label %2420

2398:                                             ; preds = %2394
  %2399 = load i32, ptr %630, align 4, !tbaa !5
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = call i32 @s2n_print_stacktrace(ptr noundef %2400) #10
  %2402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2403 = trunc nuw i8 %2402 to i1
  br i1 %2403, label %2404, label %2408

2404:                                             ; preds = %2398
  %2405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2406 = call i32 @fileno(ptr noundef %2405) #10
  %2407 = call i32 @isatty(i32 noundef %2406) #10
  %.not480 = icmp eq i32 %2407, 0
  br i1 %.not480, label %2408, label %2409

2408:                                             ; preds = %2404, %2398
  br label %2409

2409:                                             ; preds = %2404, %2408
  %.str.5.sink1344 = phi ptr [ @.str.5, %2408 ], [ @.str.2, %2404 ]
  store i32 %2399, ptr %630, align 4, !tbaa !5
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = load i32, ptr @test_count, align 4, !tbaa !5
  %2412 = load i32, ptr %576, align 4, !tbaa !5
  %2413 = call ptr @s2n_strerror(i32 noundef %2412, ptr noundef nonnull @.str.4) #10
  %2414 = load i32, ptr %576, align 4, !tbaa !5
  %2415 = call ptr @s2n_strerror_debug(i32 noundef %2414, ptr noundef nonnull @.str.4) #10
  %2416 = load i32, ptr %630, align 4, !tbaa !5
  %2417 = call ptr @strerror(i32 noundef %2416) #10
  %2418 = load i32, ptr %630, align 4, !tbaa !5
  %2419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2410, ptr noundef nonnull %.str.5.sink1344, i32 noundef %2411, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %2413, ptr noundef %2415, ptr noundef %2417, i32 noundef %2418) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2420:                                             ; preds = %2394
  %2421 = load i32, ptr @test_count, align 4, !tbaa !5
  %2422 = add nsw i32 %2421, 1
  store i32 %2422, ptr @test_count, align 4, !tbaa !5
  %2423 = call i32 @s2n_connection_free(ptr noundef nonnull %2066) #10
  %2424 = icmp eq i32 %2423, -1
  br i1 %2424, label %2425, label %2447

2425:                                             ; preds = %2420
  %2426 = load i32, ptr %630, align 4, !tbaa !5
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = call i32 @s2n_print_stacktrace(ptr noundef %2427) #10
  %2429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2430 = trunc nuw i8 %2429 to i1
  br i1 %2430, label %2431, label %2435

2431:                                             ; preds = %2425
  %2432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2433 = call i32 @fileno(ptr noundef %2432) #10
  %2434 = call i32 @isatty(i32 noundef %2433) #10
  %.not479 = icmp eq i32 %2434, 0
  br i1 %.not479, label %2435, label %2436

2435:                                             ; preds = %2431, %2425
  br label %2436

2436:                                             ; preds = %2431, %2435
  %.str.5.sink1353 = phi ptr [ @.str.5, %2435 ], [ @.str.2, %2431 ]
  store i32 %2426, ptr %630, align 4, !tbaa !5
  %2437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2438 = load i32, ptr @test_count, align 4, !tbaa !5
  %2439 = load i32, ptr %576, align 4, !tbaa !5
  %2440 = call ptr @s2n_strerror(i32 noundef %2439, ptr noundef nonnull @.str.4) #10
  %2441 = load i32, ptr %576, align 4, !tbaa !5
  %2442 = call ptr @s2n_strerror_debug(i32 noundef %2441, ptr noundef nonnull @.str.4) #10
  %2443 = load i32, ptr %630, align 4, !tbaa !5
  %2444 = call ptr @strerror(i32 noundef %2443) #10
  %2445 = load i32, ptr %630, align 4, !tbaa !5
  %2446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2437, ptr noundef nonnull %.str.5.sink1353, i32 noundef %2438, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %2440, ptr noundef %2442, ptr noundef %2444, i32 noundef %2445) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2447:                                             ; preds = %2420
  %2448 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %2449 = load i32, ptr @test_count, align 4, !tbaa !5
  %2450 = add nsw i32 %2449, 1
  store i32 %2450, ptr @test_count, align 4, !tbaa !5
  %2451 = icmp eq ptr %2448, null
  br i1 %2451, label %2452, label %2474

2452:                                             ; preds = %2447
  %2453 = load i32, ptr %630, align 4, !tbaa !5
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = call i32 @s2n_print_stacktrace(ptr noundef %2454) #10
  %2456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2457 = trunc nuw i8 %2456 to i1
  br i1 %2457, label %2458, label %2462

2458:                                             ; preds = %2452
  %2459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2460 = call i32 @fileno(ptr noundef %2459) #10
  %2461 = call i32 @isatty(i32 noundef %2460) #10
  %.not478 = icmp eq i32 %2461, 0
  br i1 %.not478, label %2462, label %2463

2462:                                             ; preds = %2458, %2452
  br label %2463

2463:                                             ; preds = %2458, %2462
  %.str.5.sink1362 = phi ptr [ @.str.5, %2462 ], [ @.str.2, %2458 ]
  store i32 %2453, ptr %630, align 4, !tbaa !5
  %2464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2465 = load i32, ptr @test_count, align 4, !tbaa !5
  %2466 = load i32, ptr %576, align 4, !tbaa !5
  %2467 = call ptr @s2n_strerror(i32 noundef %2466, ptr noundef nonnull @.str.4) #10
  %2468 = load i32, ptr %576, align 4, !tbaa !5
  %2469 = call ptr @s2n_strerror_debug(i32 noundef %2468, ptr noundef nonnull @.str.4) #10
  %2470 = load i32, ptr %630, align 4, !tbaa !5
  %2471 = call ptr @strerror(i32 noundef %2470) #10
  %2472 = load i32, ptr %630, align 4, !tbaa !5
  %2473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2464, ptr noundef nonnull %.str.5.sink1362, i32 noundef %2465, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %2467, ptr noundef %2469, ptr noundef %2471, i32 noundef %2472) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2474:                                             ; preds = %2447
  %2475 = add nsw i32 %2449, 2
  store i32 %2475, ptr @test_count, align 4, !tbaa !5
  %2476 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef nonnull %2448, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #10
  %2477 = call zeroext i1 @s2n_result_is_ok(i32 %2476)
  br i1 %2477, label %2500, label %2478

2478:                                             ; preds = %2474
  %2479 = load i32, ptr %630, align 4, !tbaa !5
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = call i32 @s2n_print_stacktrace(ptr noundef %2480) #10
  %2482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2483 = trunc nuw i8 %2482 to i1
  br i1 %2483, label %2484, label %2488

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

2488:                                             ; preds = %2484, %2478
  br label %2489

2489:                                             ; preds = %2484, %2488
  %.str.5.sink1371 = phi ptr [ @.str.5, %2488 ], [ @.str.2, %2484 ]
  store i32 %2479, ptr %630, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = load i32, ptr %576, align 4, !tbaa !5
  %2493 = call ptr @s2n_strerror(i32 noundef %2492, ptr noundef nonnull @.str.4) #10
  %2494 = load i32, ptr %576, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror_debug(i32 noundef %2494, ptr noundef nonnull @.str.4) #10
  %2496 = load i32, ptr %630, align 4, !tbaa !5
  %2497 = call ptr @strerror(i32 noundef %2496) #10
  %2498 = load i32, ptr %630, align 4, !tbaa !5
  %2499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2490, ptr noundef nonnull %.str.5.sink1371, i32 noundef %2491, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %2493, ptr noundef %2495, ptr noundef %2497, i32 noundef %2498) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2500:                                             ; preds = %2474
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = add nsw i32 %2501, 1
  store i32 %2502, ptr @test_count, align 4, !tbaa !5
  %2503 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2448, ptr noundef nonnull @.str.30) #10
  %2504 = icmp eq i32 %2503, -1
  br i1 %2504, label %2505, label %2527

2505:                                             ; preds = %2500
  %2506 = load i32, ptr %630, align 4, !tbaa !5
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = call i32 @s2n_print_stacktrace(ptr noundef %2507) #10
  %2509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2510 = trunc nuw i8 %2509 to i1
  br i1 %2510, label %2511, label %2515

2511:                                             ; preds = %2505
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @fileno(ptr noundef %2512) #10
  %2514 = call i32 @isatty(i32 noundef %2513) #10
  %.not477 = icmp eq i32 %2514, 0
  br i1 %.not477, label %2515, label %2516

2515:                                             ; preds = %2511, %2505
  br label %2516

2516:                                             ; preds = %2511, %2515
  %.str.5.sink1380 = phi ptr [ @.str.5, %2515 ], [ @.str.2, %2511 ]
  store i32 %2506, ptr %630, align 4, !tbaa !5
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = load i32, ptr %576, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror(i32 noundef %2519, ptr noundef nonnull @.str.4) #10
  %2521 = load i32, ptr %576, align 4, !tbaa !5
  %2522 = call ptr @s2n_strerror_debug(i32 noundef %2521, ptr noundef nonnull @.str.4) #10
  %2523 = load i32, ptr %630, align 4, !tbaa !5
  %2524 = call ptr @strerror(i32 noundef %2523) #10
  %2525 = load i32, ptr %630, align 4, !tbaa !5
  %2526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2517, ptr noundef nonnull %.str.5.sink1380, i32 noundef %2518, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %2520, ptr noundef %2522, ptr noundef %2524, i32 noundef %2525) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2527:                                             ; preds = %2500
  %2528 = load i32, ptr @test_count, align 4, !tbaa !5
  %2529 = add nsw i32 %2528, 1
  store i32 %2529, ptr @test_count, align 4, !tbaa !5
  %2530 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %2448) #10
  %2531 = icmp eq i32 %2530, -1
  br i1 %2531, label %2532, label %2554

2532:                                             ; preds = %2527
  %2533 = load i32, ptr %630, align 4, !tbaa !5
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = call i32 @s2n_print_stacktrace(ptr noundef %2534) #10
  %2536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2537 = trunc nuw i8 %2536 to i1
  br i1 %2537, label %2538, label %2542

2538:                                             ; preds = %2532
  %2539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2540 = call i32 @fileno(ptr noundef %2539) #10
  %2541 = call i32 @isatty(i32 noundef %2540) #10
  %.not476 = icmp eq i32 %2541, 0
  br i1 %.not476, label %2542, label %2543

2542:                                             ; preds = %2538, %2532
  br label %2543

2543:                                             ; preds = %2538, %2542
  %.str.5.sink1389 = phi ptr [ @.str.5, %2542 ], [ @.str.2, %2538 ]
  store i32 %2533, ptr %630, align 4, !tbaa !5
  %2544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2545 = load i32, ptr @test_count, align 4, !tbaa !5
  %2546 = load i32, ptr %576, align 4, !tbaa !5
  %2547 = call ptr @s2n_strerror(i32 noundef %2546, ptr noundef nonnull @.str.4) #10
  %2548 = load i32, ptr %576, align 4, !tbaa !5
  %2549 = call ptr @s2n_strerror_debug(i32 noundef %2548, ptr noundef nonnull @.str.4) #10
  %2550 = load i32, ptr %630, align 4, !tbaa !5
  %2551 = call ptr @strerror(i32 noundef %2550) #10
  %2552 = load i32, ptr %630, align 4, !tbaa !5
  %2553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2544, ptr noundef nonnull %.str.5.sink1389, i32 noundef %2545, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %2547, ptr noundef %2549, ptr noundef %2551, i32 noundef %2552) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2554:                                             ; preds = %2527
  %2555 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = add nsw i32 %2556, 1
  store i32 %2557, ptr @test_count, align 4, !tbaa !5
  %2558 = icmp eq ptr %2555, null
  br i1 %2558, label %2559, label %2581

2559:                                             ; preds = %2554
  %2560 = load i32, ptr %630, align 4, !tbaa !5
  %2561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2562 = call i32 @s2n_print_stacktrace(ptr noundef %2561) #10
  %2563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2564 = trunc nuw i8 %2563 to i1
  br i1 %2564, label %2565, label %2569

2565:                                             ; preds = %2559
  %2566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2567 = call i32 @fileno(ptr noundef %2566) #10
  %2568 = call i32 @isatty(i32 noundef %2567) #10
  %.not475 = icmp eq i32 %2568, 0
  br i1 %.not475, label %2569, label %2570

2569:                                             ; preds = %2565, %2559
  br label %2570

2570:                                             ; preds = %2565, %2569
  %.str.5.sink1398 = phi ptr [ @.str.5, %2569 ], [ @.str.2, %2565 ]
  store i32 %2560, ptr %630, align 4, !tbaa !5
  %2571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2572 = load i32, ptr @test_count, align 4, !tbaa !5
  %2573 = load i32, ptr %576, align 4, !tbaa !5
  %2574 = call ptr @s2n_strerror(i32 noundef %2573, ptr noundef nonnull @.str.4) #10
  %2575 = load i32, ptr %576, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror_debug(i32 noundef %2575, ptr noundef nonnull @.str.4) #10
  %2577 = load i32, ptr %630, align 4, !tbaa !5
  %2578 = call ptr @strerror(i32 noundef %2577) #10
  %2579 = load i32, ptr %630, align 4, !tbaa !5
  %2580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2571, ptr noundef nonnull %.str.5.sink1398, i32 noundef %2572, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %2574, ptr noundef %2576, ptr noundef %2578, i32 noundef %2579) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2581:                                             ; preds = %2554
  %2582 = add nsw i32 %2556, 2
  store i32 %2582, ptr @test_count, align 4, !tbaa !5
  %2583 = call i32 @s2n_append_test_chosen_psk_with_early_data(ptr noundef nonnull %2555, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #10
  %2584 = call zeroext i1 @s2n_result_is_ok(i32 %2583)
  br i1 %2584, label %2607, label %2585

2585:                                             ; preds = %2581
  %2586 = load i32, ptr %630, align 4, !tbaa !5
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = call i32 @s2n_print_stacktrace(ptr noundef %2587) #10
  %2589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2590 = trunc nuw i8 %2589 to i1
  br i1 %2590, label %2591, label %2595

2591:                                             ; preds = %2585
  %2592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2593 = call i32 @fileno(ptr noundef %2592) #10
  %2594 = call i32 @isatty(i32 noundef %2593) #10
  %.not450 = icmp eq i32 %2594, 0
  br i1 %.not450, label %2595, label %2596

2595:                                             ; preds = %2591, %2585
  br label %2596

2596:                                             ; preds = %2591, %2595
  %.str.5.sink1407 = phi ptr [ @.str.5, %2595 ], [ @.str.2, %2591 ]
  store i32 %2586, ptr %630, align 4, !tbaa !5
  %2597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2598 = load i32, ptr @test_count, align 4, !tbaa !5
  %2599 = load i32, ptr %576, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror(i32 noundef %2599, ptr noundef nonnull @.str.4) #10
  %2601 = load i32, ptr %576, align 4, !tbaa !5
  %2602 = call ptr @s2n_strerror_debug(i32 noundef %2601, ptr noundef nonnull @.str.4) #10
  %2603 = load i32, ptr %630, align 4, !tbaa !5
  %2604 = call ptr @strerror(i32 noundef %2603) #10
  %2605 = load i32, ptr %630, align 4, !tbaa !5
  %2606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2597, ptr noundef nonnull %.str.5.sink1407, i32 noundef %2598, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %2600, ptr noundef %2602, ptr noundef %2604, i32 noundef %2605) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2607:                                             ; preds = %2581
  %2608 = load i32, ptr @test_count, align 4, !tbaa !5
  %2609 = add nsw i32 %2608, 1
  store i32 %2609, ptr @test_count, align 4, !tbaa !5
  %2610 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2555, ptr noundef nonnull @.str.30) #10
  %2611 = icmp eq i32 %2610, -1
  br i1 %2611, label %2612, label %2634

2612:                                             ; preds = %2607
  %2613 = load i32, ptr %630, align 4, !tbaa !5
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = call i32 @s2n_print_stacktrace(ptr noundef %2614) #10
  %2616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2617 = trunc nuw i8 %2616 to i1
  br i1 %2617, label %2618, label %2622

2618:                                             ; preds = %2612
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = call i32 @fileno(ptr noundef %2619) #10
  %2621 = call i32 @isatty(i32 noundef %2620) #10
  %.not474 = icmp eq i32 %2621, 0
  br i1 %.not474, label %2622, label %2623

2622:                                             ; preds = %2618, %2612
  br label %2623

2623:                                             ; preds = %2618, %2622
  %.str.5.sink1416 = phi ptr [ @.str.5, %2622 ], [ @.str.2, %2618 ]
  store i32 %2613, ptr %630, align 4, !tbaa !5
  %2624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2625 = load i32, ptr @test_count, align 4, !tbaa !5
  %2626 = load i32, ptr %576, align 4, !tbaa !5
  %2627 = call ptr @s2n_strerror(i32 noundef %2626, ptr noundef nonnull @.str.4) #10
  %2628 = load i32, ptr %576, align 4, !tbaa !5
  %2629 = call ptr @s2n_strerror_debug(i32 noundef %2628, ptr noundef nonnull @.str.4) #10
  %2630 = load i32, ptr %630, align 4, !tbaa !5
  %2631 = call ptr @strerror(i32 noundef %2630) #10
  %2632 = load i32, ptr %630, align 4, !tbaa !5
  %2633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2624, ptr noundef nonnull %.str.5.sink1416, i32 noundef %2625, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %2627, ptr noundef %2629, ptr noundef %2631, i32 noundef %2632) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2634:                                             ; preds = %2607
  %2635 = load i32, ptr @test_count, align 4, !tbaa !5
  %2636 = add nsw i32 %2635, 1
  store i32 %2636, ptr @test_count, align 4, !tbaa !5
  %2637 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %2555) #10
  %2638 = icmp eq i32 %2637, -1
  br i1 %2638, label %2639, label %2661

2639:                                             ; preds = %2634
  %2640 = load i32, ptr %630, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @s2n_print_stacktrace(ptr noundef %2641) #10
  %2643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2644 = trunc nuw i8 %2643 to i1
  br i1 %2644, label %2645, label %2649

2645:                                             ; preds = %2639
  %2646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2647 = call i32 @fileno(ptr noundef %2646) #10
  %2648 = call i32 @isatty(i32 noundef %2647) #10
  %.not473 = icmp eq i32 %2648, 0
  br i1 %.not473, label %2649, label %2650

2649:                                             ; preds = %2645, %2639
  br label %2650

2650:                                             ; preds = %2645, %2649
  %.str.5.sink1425 = phi ptr [ @.str.5, %2649 ], [ @.str.2, %2645 ]
  store i32 %2640, ptr %630, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = load i32, ptr %576, align 4, !tbaa !5
  %2654 = call ptr @s2n_strerror(i32 noundef %2653, ptr noundef nonnull @.str.4) #10
  %2655 = load i32, ptr %576, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror_debug(i32 noundef %2655, ptr noundef nonnull @.str.4) #10
  %2657 = load i32, ptr %630, align 4, !tbaa !5
  %2658 = call ptr @strerror(i32 noundef %2657) #10
  %2659 = load i32, ptr %630, align 4, !tbaa !5
  %2660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2651, ptr noundef nonnull %.str.5.sink1425, i32 noundef %2652, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %2654, ptr noundef %2656, ptr noundef %2658, i32 noundef %2659) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2661:                                             ; preds = %2634
  %2662 = load i32, ptr @test_count, align 4, !tbaa !5
  %2663 = add nsw i32 %2662, 1
  store i32 %2663, ptr @test_count, align 4, !tbaa !5
  %2664 = call i32 @s2n_client_hello_send(ptr noundef nonnull %2448) #10
  %2665 = icmp eq i32 %2664, -1
  br i1 %2665, label %2666, label %2688

2666:                                             ; preds = %2661
  %2667 = load i32, ptr %630, align 4, !tbaa !5
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = call i32 @s2n_print_stacktrace(ptr noundef %2668) #10
  %2670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2671 = trunc nuw i8 %2670 to i1
  br i1 %2671, label %2672, label %2676

2672:                                             ; preds = %2666
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = call i32 @fileno(ptr noundef %2673) #10
  %2675 = call i32 @isatty(i32 noundef %2674) #10
  %.not472 = icmp eq i32 %2675, 0
  br i1 %.not472, label %2676, label %2677

2676:                                             ; preds = %2672, %2666
  br label %2677

2677:                                             ; preds = %2672, %2676
  %.str.5.sink1434 = phi ptr [ @.str.5, %2676 ], [ @.str.2, %2672 ]
  store i32 %2667, ptr %630, align 4, !tbaa !5
  %2678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2679 = load i32, ptr @test_count, align 4, !tbaa !5
  %2680 = load i32, ptr %576, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror(i32 noundef %2680, ptr noundef nonnull @.str.4) #10
  %2682 = load i32, ptr %576, align 4, !tbaa !5
  %2683 = call ptr @s2n_strerror_debug(i32 noundef %2682, ptr noundef nonnull @.str.4) #10
  %2684 = load i32, ptr %630, align 4, !tbaa !5
  %2685 = call ptr @strerror(i32 noundef %2684) #10
  %2686 = load i32, ptr %630, align 4, !tbaa !5
  %2687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2678, ptr noundef nonnull %.str.5.sink1434, i32 noundef %2679, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %2681, ptr noundef %2683, ptr noundef %2685, i32 noundef %2686) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2688:                                             ; preds = %2661
  %2689 = load i32, ptr @test_count, align 4, !tbaa !5
  %2690 = add nsw i32 %2689, 1
  store i32 %2690, ptr @test_count, align 4, !tbaa !5
  %2691 = getelementptr inbounds i8, ptr %2448, i64 2016
  %2692 = getelementptr inbounds i8, ptr %2555, i64 2016
  %2693 = getelementptr inbounds i8, ptr %2448, i64 2044
  %2694 = load i32, ptr %2693, align 4, !tbaa !53
  %2695 = getelementptr inbounds i8, ptr %2448, i64 2040
  %2696 = load i32, ptr %2695, align 8, !tbaa !54
  %2697 = sub i32 %2694, %2696
  %2698 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %2691, ptr noundef nonnull %2692, i32 noundef %2697) #10
  %2699 = icmp eq i32 %2698, -1
  br i1 %2699, label %2700, label %2722

2700:                                             ; preds = %2688
  %2701 = load i32, ptr %630, align 4, !tbaa !5
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = call i32 @s2n_print_stacktrace(ptr noundef %2702) #10
  %2704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2705 = trunc nuw i8 %2704 to i1
  br i1 %2705, label %2706, label %2710

2706:                                             ; preds = %2700
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = call i32 @fileno(ptr noundef %2707) #10
  %2709 = call i32 @isatty(i32 noundef %2708) #10
  %.not471 = icmp eq i32 %2709, 0
  br i1 %.not471, label %2710, label %2711

2710:                                             ; preds = %2706, %2700
  br label %2711

2711:                                             ; preds = %2706, %2710
  %.str.5.sink1443 = phi ptr [ @.str.5, %2710 ], [ @.str.2, %2706 ]
  store i32 %2701, ptr %630, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = load i32, ptr %576, align 4, !tbaa !5
  %2715 = call ptr @s2n_strerror(i32 noundef %2714, ptr noundef nonnull @.str.4) #10
  %2716 = load i32, ptr %576, align 4, !tbaa !5
  %2717 = call ptr @s2n_strerror_debug(i32 noundef %2716, ptr noundef nonnull @.str.4) #10
  %2718 = load i32, ptr %630, align 4, !tbaa !5
  %2719 = call ptr @strerror(i32 noundef %2718) #10
  %2720 = load i32, ptr %630, align 4, !tbaa !5
  %2721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2712, ptr noundef nonnull %.str.5.sink1443, i32 noundef %2713, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2715, ptr noundef %2717, ptr noundef %2719, i32 noundef %2720) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2722:                                             ; preds = %2688
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = add nsw i32 %2723, 1
  store i32 %2724, ptr @test_count, align 4, !tbaa !5
  %2725 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %2555) #10
  %2726 = icmp eq i32 %2725, -1
  br i1 %2726, label %2727, label %2749

2727:                                             ; preds = %2722
  %2728 = load i32, ptr %630, align 4, !tbaa !5
  %2729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2730 = call i32 @s2n_print_stacktrace(ptr noundef %2729) #10
  %2731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2732 = trunc nuw i8 %2731 to i1
  br i1 %2732, label %2733, label %2737

2733:                                             ; preds = %2727
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = call i32 @fileno(ptr noundef %2734) #10
  %2736 = call i32 @isatty(i32 noundef %2735) #10
  %.not470 = icmp eq i32 %2736, 0
  br i1 %.not470, label %2737, label %2738

2737:                                             ; preds = %2733, %2727
  br label %2738

2738:                                             ; preds = %2733, %2737
  %.str.5.sink1452 = phi ptr [ @.str.5, %2737 ], [ @.str.2, %2733 ]
  store i32 %2728, ptr %630, align 4, !tbaa !5
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = load i32, ptr @test_count, align 4, !tbaa !5
  %2741 = load i32, ptr %576, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror(i32 noundef %2741, ptr noundef nonnull @.str.4) #10
  %2743 = load i32, ptr %576, align 4, !tbaa !5
  %2744 = call ptr @s2n_strerror_debug(i32 noundef %2743, ptr noundef nonnull @.str.4) #10
  %2745 = load i32, ptr %630, align 4, !tbaa !5
  %2746 = call ptr @strerror(i32 noundef %2745) #10
  %2747 = load i32, ptr %630, align 4, !tbaa !5
  %2748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2739, ptr noundef nonnull %.str.5.sink1452, i32 noundef %2740, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2742, ptr noundef %2744, ptr noundef %2746, i32 noundef %2747) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2749:                                             ; preds = %2722
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = add nsw i32 %2750, 1
  store i32 %2751, ptr @test_count, align 4, !tbaa !5
  %2752 = getelementptr inbounds i8, ptr %2448, i64 4088
  %2753 = load i32, ptr %2752, align 8, !tbaa !18
  %2754 = icmp eq i32 %2753, 1
  br i1 %2754, label %2777, label %2755

2755:                                             ; preds = %2749
  %2756 = load i32, ptr %630, align 4, !tbaa !5
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = call i32 @s2n_print_stacktrace(ptr noundef %2757) #10
  %2759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2760 = trunc nuw i8 %2759 to i1
  br i1 %2760, label %2761, label %2765

2761:                                             ; preds = %2755
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @fileno(ptr noundef %2762) #10
  %2764 = call i32 @isatty(i32 noundef %2763) #10
  %.not451 = icmp eq i32 %2764, 0
  br i1 %.not451, label %2765, label %2766

2765:                                             ; preds = %2761, %2755
  br label %2766

2766:                                             ; preds = %2761, %2765
  %.str.5.sink1461 = phi ptr [ @.str.5, %2765 ], [ @.str.2, %2761 ]
  store i32 %2756, ptr %630, align 4, !tbaa !5
  %2767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2768 = load i32, ptr @test_count, align 4, !tbaa !5
  %2769 = load i32, ptr %576, align 4, !tbaa !5
  %2770 = call ptr @s2n_strerror(i32 noundef %2769, ptr noundef nonnull @.str.4) #10
  %2771 = load i32, ptr %576, align 4, !tbaa !5
  %2772 = call ptr @s2n_strerror_debug(i32 noundef %2771, ptr noundef nonnull @.str.4) #10
  %2773 = load i32, ptr %630, align 4, !tbaa !5
  %2774 = call ptr @strerror(i32 noundef %2773) #10
  %2775 = load i32, ptr %630, align 4, !tbaa !5
  %2776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2767, ptr noundef nonnull %.str.5.sink1461, i32 noundef %2768, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %2770, ptr noundef %2772, ptr noundef %2774, i32 noundef %2775) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2777:                                             ; preds = %2749
  %2778 = getelementptr inbounds i8, ptr %2555, i64 4088
  store i32 4, ptr %2778, align 8, !tbaa !18
  %2779 = add nsw i32 %2750, 2
  store i32 %2779, ptr @test_count, align 4, !tbaa !5
  %2780 = call i32 @s2n_set_hello_retry_required(ptr noundef nonnull %2555) #10
  %2781 = icmp eq i32 %2780, -1
  br i1 %2781, label %2782, label %2804

2782:                                             ; preds = %2777
  %2783 = load i32, ptr %630, align 4, !tbaa !5
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = call i32 @s2n_print_stacktrace(ptr noundef %2784) #10
  %2786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2787 = trunc nuw i8 %2786 to i1
  br i1 %2787, label %2788, label %2792

2788:                                             ; preds = %2782
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = call i32 @fileno(ptr noundef %2789) #10
  %2791 = call i32 @isatty(i32 noundef %2790) #10
  %.not469 = icmp eq i32 %2791, 0
  br i1 %.not469, label %2792, label %2793

2792:                                             ; preds = %2788, %2782
  br label %2793

2793:                                             ; preds = %2788, %2792
  %.str.5.sink1470 = phi ptr [ @.str.5, %2792 ], [ @.str.2, %2788 ]
  store i32 %2783, ptr %630, align 4, !tbaa !5
  %2794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2795 = load i32, ptr @test_count, align 4, !tbaa !5
  %2796 = load i32, ptr %576, align 4, !tbaa !5
  %2797 = call ptr @s2n_strerror(i32 noundef %2796, ptr noundef nonnull @.str.4) #10
  %2798 = load i32, ptr %576, align 4, !tbaa !5
  %2799 = call ptr @s2n_strerror_debug(i32 noundef %2798, ptr noundef nonnull @.str.4) #10
  %2800 = load i32, ptr %630, align 4, !tbaa !5
  %2801 = call ptr @strerror(i32 noundef %2800) #10
  %2802 = load i32, ptr %630, align 4, !tbaa !5
  %2803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2794, ptr noundef nonnull %.str.5.sink1470, i32 noundef %2795, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %2797, ptr noundef %2799, ptr noundef %2801, i32 noundef %2802) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2804:                                             ; preds = %2777
  %2805 = getelementptr inbounds i8, ptr %2555, i64 2176
  store i32 2, ptr %2805, align 8, !tbaa !55
  %2806 = getelementptr inbounds i8, ptr %2448, i64 2176
  store i32 2, ptr %2806, align 8, !tbaa !55
  %2807 = getelementptr inbounds i8, ptr %2448, i64 704
  store ptr @s2n_ecc_curve_secp521r1, ptr %2807, align 8, !tbaa !56
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = add nsw i32 %2808, 1
  store i32 %2809, ptr @test_count, align 4, !tbaa !5
  %2810 = call i32 @s2n_server_hello_retry_send(ptr noundef nonnull %2555) #10
  %2811 = icmp eq i32 %2810, -1
  br i1 %2811, label %2812, label %2834

2812:                                             ; preds = %2804
  %2813 = load i32, ptr %630, align 4, !tbaa !5
  %2814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2815 = call i32 @s2n_print_stacktrace(ptr noundef %2814) #10
  %2816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2817 = trunc nuw i8 %2816 to i1
  br i1 %2817, label %2818, label %2822

2818:                                             ; preds = %2812
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = call i32 @fileno(ptr noundef %2819) #10
  %2821 = call i32 @isatty(i32 noundef %2820) #10
  %.not468 = icmp eq i32 %2821, 0
  br i1 %.not468, label %2822, label %2823

2822:                                             ; preds = %2818, %2812
  br label %2823

2823:                                             ; preds = %2818, %2822
  %.str.5.sink1479 = phi ptr [ @.str.5, %2822 ], [ @.str.2, %2818 ]
  store i32 %2813, ptr %630, align 4, !tbaa !5
  %2824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = load i32, ptr %576, align 4, !tbaa !5
  %2827 = call ptr @s2n_strerror(i32 noundef %2826, ptr noundef nonnull @.str.4) #10
  %2828 = load i32, ptr %576, align 4, !tbaa !5
  %2829 = call ptr @s2n_strerror_debug(i32 noundef %2828, ptr noundef nonnull @.str.4) #10
  %2830 = load i32, ptr %630, align 4, !tbaa !5
  %2831 = call ptr @strerror(i32 noundef %2830) #10
  %2832 = load i32, ptr %630, align 4, !tbaa !5
  %2833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2824, ptr noundef nonnull %.str.5.sink1479, i32 noundef %2825, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %2827, ptr noundef %2829, ptr noundef %2831, i32 noundef %2832) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2834:                                             ; preds = %2804
  %2835 = load i32, ptr @test_count, align 4, !tbaa !5
  %2836 = add nsw i32 %2835, 1
  store i32 %2836, ptr @test_count, align 4, !tbaa !5
  %2837 = getelementptr inbounds i8, ptr %2555, i64 2044
  %2838 = load i32, ptr %2837, align 4, !tbaa !53
  %2839 = getelementptr inbounds i8, ptr %2555, i64 2040
  %2840 = load i32, ptr %2839, align 8, !tbaa !54
  %2841 = sub i32 %2838, %2840
  %2842 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %2692, ptr noundef nonnull %2691, i32 noundef %2841) #10
  %2843 = icmp eq i32 %2842, -1
  br i1 %2843, label %2844, label %2866

2844:                                             ; preds = %2834
  %2845 = load i32, ptr %630, align 4, !tbaa !5
  %2846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2847 = call i32 @s2n_print_stacktrace(ptr noundef %2846) #10
  %2848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2849 = trunc nuw i8 %2848 to i1
  br i1 %2849, label %2850, label %2854

2850:                                             ; preds = %2844
  %2851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2852 = call i32 @fileno(ptr noundef %2851) #10
  %2853 = call i32 @isatty(i32 noundef %2852) #10
  %.not467 = icmp eq i32 %2853, 0
  br i1 %.not467, label %2854, label %2855

2854:                                             ; preds = %2850, %2844
  br label %2855

2855:                                             ; preds = %2850, %2854
  %.str.5.sink1488 = phi ptr [ @.str.5, %2854 ], [ @.str.2, %2850 ]
  store i32 %2845, ptr %630, align 4, !tbaa !5
  %2856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2857 = load i32, ptr @test_count, align 4, !tbaa !5
  %2858 = load i32, ptr %576, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror(i32 noundef %2858, ptr noundef nonnull @.str.4) #10
  %2860 = load i32, ptr %576, align 4, !tbaa !5
  %2861 = call ptr @s2n_strerror_debug(i32 noundef %2860, ptr noundef nonnull @.str.4) #10
  %2862 = load i32, ptr %630, align 4, !tbaa !5
  %2863 = call ptr @strerror(i32 noundef %2862) #10
  %2864 = load i32, ptr %630, align 4, !tbaa !5
  %2865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2856, ptr noundef nonnull %.str.5.sink1488, i32 noundef %2857, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2859, ptr noundef %2861, ptr noundef %2863, i32 noundef %2864) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2866:                                             ; preds = %2834
  %2867 = load i32, ptr @test_count, align 4, !tbaa !5
  %2868 = add nsw i32 %2867, 1
  store i32 %2868, ptr @test_count, align 4, !tbaa !5
  %2869 = call i32 @s2n_server_hello_recv(ptr noundef nonnull %2448) #10
  %2870 = icmp eq i32 %2869, -1
  br i1 %2870, label %2871, label %2893

2871:                                             ; preds = %2866
  %2872 = load i32, ptr %630, align 4, !tbaa !5
  %2873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2874 = call i32 @s2n_print_stacktrace(ptr noundef %2873) #10
  %2875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2876 = trunc nuw i8 %2875 to i1
  br i1 %2876, label %2877, label %2881

2877:                                             ; preds = %2871
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = call i32 @fileno(ptr noundef %2878) #10
  %2880 = call i32 @isatty(i32 noundef %2879) #10
  %.not466 = icmp eq i32 %2880, 0
  br i1 %.not466, label %2881, label %2882

2881:                                             ; preds = %2877, %2871
  br label %2882

2882:                                             ; preds = %2877, %2881
  %.str.5.sink1497 = phi ptr [ @.str.5, %2881 ], [ @.str.2, %2877 ]
  store i32 %2872, ptr %630, align 4, !tbaa !5
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = load i32, ptr @test_count, align 4, !tbaa !5
  %2885 = load i32, ptr %576, align 4, !tbaa !5
  %2886 = call ptr @s2n_strerror(i32 noundef %2885, ptr noundef nonnull @.str.4) #10
  %2887 = load i32, ptr %576, align 4, !tbaa !5
  %2888 = call ptr @s2n_strerror_debug(i32 noundef %2887, ptr noundef nonnull @.str.4) #10
  %2889 = load i32, ptr %630, align 4, !tbaa !5
  %2890 = call ptr @strerror(i32 noundef %2889) #10
  %2891 = load i32, ptr %630, align 4, !tbaa !5
  %2892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2883, ptr noundef nonnull %.str.5.sink1497, i32 noundef %2884, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 289, ptr noundef %2886, ptr noundef %2888, ptr noundef %2890, i32 noundef %2891) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2893:                                             ; preds = %2866
  %2894 = load i32, ptr @test_count, align 4, !tbaa !5
  %2895 = add nsw i32 %2894, 1
  store i32 %2895, ptr @test_count, align 4, !tbaa !5
  %2896 = load i32, ptr %2752, align 8, !tbaa !18
  %2897 = icmp eq i32 %2896, 4
  br i1 %2897, label %2920, label %2898

2898:                                             ; preds = %2893
  %2899 = load i32, ptr %630, align 4, !tbaa !5
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = call i32 @s2n_print_stacktrace(ptr noundef %2900) #10
  %2902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2903 = trunc nuw i8 %2902 to i1
  br i1 %2903, label %2904, label %2908

2904:                                             ; preds = %2898
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = call i32 @fileno(ptr noundef %2905) #10
  %2907 = call i32 @isatty(i32 noundef %2906) #10
  %.not452 = icmp eq i32 %2907, 0
  br i1 %.not452, label %2908, label %2909

2908:                                             ; preds = %2904, %2898
  br label %2909

2909:                                             ; preds = %2904, %2908
  %.str.5.sink1506 = phi ptr [ @.str.5, %2908 ], [ @.str.2, %2904 ]
  store i32 %2899, ptr %630, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = load i32, ptr @test_count, align 4, !tbaa !5
  %2912 = load i32, ptr %576, align 4, !tbaa !5
  %2913 = call ptr @s2n_strerror(i32 noundef %2912, ptr noundef nonnull @.str.4) #10
  %2914 = load i32, ptr %576, align 4, !tbaa !5
  %2915 = call ptr @s2n_strerror_debug(i32 noundef %2914, ptr noundef nonnull @.str.4) #10
  %2916 = load i32, ptr %630, align 4, !tbaa !5
  %2917 = call ptr @strerror(i32 noundef %2916) #10
  %2918 = load i32, ptr %630, align 4, !tbaa !5
  %2919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2910, ptr noundef nonnull %.str.5.sink1506, i32 noundef %2911, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2913, ptr noundef %2915, ptr noundef %2917, i32 noundef %2918) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2920:                                             ; preds = %2893
  %2921 = add nsw i32 %2894, 2
  store i32 %2921, ptr @test_count, align 4, !tbaa !5
  %2922 = load i32, ptr %2778, align 8, !tbaa !18
  %2923 = icmp eq i32 %2922, 4
  br i1 %2923, label %2946, label %2924

2924:                                             ; preds = %2920
  %2925 = load i32, ptr %630, align 4, !tbaa !5
  %2926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2927 = call i32 @s2n_print_stacktrace(ptr noundef %2926) #10
  %2928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2929 = trunc nuw i8 %2928 to i1
  br i1 %2929, label %2930, label %2934

2930:                                             ; preds = %2924
  %2931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2932 = call i32 @fileno(ptr noundef %2931) #10
  %2933 = call i32 @isatty(i32 noundef %2932) #10
  %.not453 = icmp eq i32 %2933, 0
  br i1 %.not453, label %2934, label %2935

2934:                                             ; preds = %2930, %2924
  br label %2935

2935:                                             ; preds = %2930, %2934
  %.str.5.sink1515 = phi ptr [ @.str.5, %2934 ], [ @.str.2, %2930 ]
  store i32 %2925, ptr %630, align 4, !tbaa !5
  %2936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2937 = load i32, ptr @test_count, align 4, !tbaa !5
  %2938 = load i32, ptr %576, align 4, !tbaa !5
  %2939 = call ptr @s2n_strerror(i32 noundef %2938, ptr noundef nonnull @.str.4) #10
  %2940 = load i32, ptr %576, align 4, !tbaa !5
  %2941 = call ptr @s2n_strerror_debug(i32 noundef %2940, ptr noundef nonnull @.str.4) #10
  %2942 = load i32, ptr %630, align 4, !tbaa !5
  %2943 = call ptr @strerror(i32 noundef %2942) #10
  %2944 = load i32, ptr %630, align 4, !tbaa !5
  %2945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2936, ptr noundef nonnull %.str.5.sink1515, i32 noundef %2937, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2939, ptr noundef %2941, ptr noundef %2943, i32 noundef %2944) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2946:                                             ; preds = %2920
  %2947 = add nsw i32 %2894, 3
  store i32 %2947, ptr @test_count, align 4, !tbaa !5
  %2948 = call i32 @s2n_encrypted_extensions_send(ptr noundef nonnull %2555) #10
  %2949 = icmp eq i32 %2948, -1
  br i1 %2949, label %2950, label %2972

2950:                                             ; preds = %2946
  %2951 = load i32, ptr %630, align 4, !tbaa !5
  %2952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2953 = call i32 @s2n_print_stacktrace(ptr noundef %2952) #10
  %2954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2955 = trunc nuw i8 %2954 to i1
  br i1 %2955, label %2956, label %2960

2956:                                             ; preds = %2950
  %2957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2958 = call i32 @fileno(ptr noundef %2957) #10
  %2959 = call i32 @isatty(i32 noundef %2958) #10
  %.not465 = icmp eq i32 %2959, 0
  br i1 %.not465, label %2960, label %2961

2960:                                             ; preds = %2956, %2950
  br label %2961

2961:                                             ; preds = %2956, %2960
  %.str.5.sink1524 = phi ptr [ @.str.5, %2960 ], [ @.str.2, %2956 ]
  store i32 %2951, ptr %630, align 4, !tbaa !5
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = load i32, ptr @test_count, align 4, !tbaa !5
  %2964 = load i32, ptr %576, align 4, !tbaa !5
  %2965 = call ptr @s2n_strerror(i32 noundef %2964, ptr noundef nonnull @.str.4) #10
  %2966 = load i32, ptr %576, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror_debug(i32 noundef %2966, ptr noundef nonnull @.str.4) #10
  %2968 = load i32, ptr %630, align 4, !tbaa !5
  %2969 = call ptr @strerror(i32 noundef %2968) #10
  %2970 = load i32, ptr %630, align 4, !tbaa !5
  %2971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2962, ptr noundef nonnull %.str.5.sink1524, i32 noundef %2963, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2965, ptr noundef %2967, ptr noundef %2969, i32 noundef %2970) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2972:                                             ; preds = %2946
  %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 i32, ptr %2837, align 4, !tbaa !53
  %2976 = load i32, ptr %2839, align 8, !tbaa !54
  %2977 = sub i32 %2975, %2976
  %2978 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %2692, ptr noundef nonnull %2691, i32 noundef %2977) #10
  %2979 = icmp eq i32 %2978, -1
  br i1 %2979, label %2980, label %3002

2980:                                             ; preds = %2972
  %2981 = load i32, ptr %630, align 4, !tbaa !5
  %2982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2983 = call i32 @s2n_print_stacktrace(ptr noundef %2982) #10
  %2984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2985 = trunc nuw i8 %2984 to i1
  br i1 %2985, label %2986, label %2990

2986:                                             ; preds = %2980
  %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
  %.not464 = icmp eq i32 %2989, 0
  br i1 %.not464, label %2990, label %2991

2990:                                             ; preds = %2986, %2980
  br label %2991

2991:                                             ; preds = %2986, %2990
  %.str.5.sink1533 = phi ptr [ @.str.5, %2990 ], [ @.str.2, %2986 ]
  store i32 %2981, ptr %630, align 4, !tbaa !5
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = load i32, ptr @test_count, align 4, !tbaa !5
  %2994 = load i32, ptr %576, align 4, !tbaa !5
  %2995 = call ptr @s2n_strerror(i32 noundef %2994, ptr noundef nonnull @.str.4) #10
  %2996 = load i32, ptr %576, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror_debug(i32 noundef %2996, ptr noundef nonnull @.str.4) #10
  %2998 = load i32, ptr %630, align 4, !tbaa !5
  %2999 = call ptr @strerror(i32 noundef %2998) #10
  %3000 = load i32, ptr %630, align 4, !tbaa !5
  %3001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2992, ptr noundef nonnull %.str.5.sink1533, i32 noundef %2993, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %2995, ptr noundef %2997, ptr noundef %2999, i32 noundef %3000) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3002:                                             ; preds = %2972
  %3003 = load i32, ptr @test_count, align 4, !tbaa !5
  %3004 = add nsw i32 %3003, 1
  store i32 %3004, ptr @test_count, align 4, !tbaa !5
  %3005 = call i32 @s2n_encrypted_extensions_recv(ptr noundef nonnull %2448) #10
  %3006 = icmp eq i32 %3005, -1
  br i1 %3006, label %3007, label %3029

3007:                                             ; preds = %3002
  %3008 = load i32, ptr %630, align 4, !tbaa !5
  %3009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3010 = call i32 @s2n_print_stacktrace(ptr noundef %3009) #10
  %3011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3012 = trunc nuw i8 %3011 to i1
  br i1 %3012, label %3013, label %3017

3013:                                             ; preds = %3007
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = call i32 @fileno(ptr noundef %3014) #10
  %3016 = call i32 @isatty(i32 noundef %3015) #10
  %.not463 = icmp eq i32 %3016, 0
  br i1 %.not463, label %3017, label %3018

3017:                                             ; preds = %3013, %3007
  br label %3018

3018:                                             ; preds = %3013, %3017
  %.str.5.sink1542 = phi ptr [ @.str.5, %3017 ], [ @.str.2, %3013 ]
  store i32 %3008, ptr %630, align 4, !tbaa !5
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = load i32, ptr @test_count, align 4, !tbaa !5
  %3021 = load i32, ptr %576, align 4, !tbaa !5
  %3022 = call ptr @s2n_strerror(i32 noundef %3021, ptr noundef nonnull @.str.4) #10
  %3023 = load i32, ptr %576, align 4, !tbaa !5
  %3024 = call ptr @s2n_strerror_debug(i32 noundef %3023, ptr noundef nonnull @.str.4) #10
  %3025 = load i32, ptr %630, align 4, !tbaa !5
  %3026 = call ptr @strerror(i32 noundef %3025) #10
  %3027 = load i32, ptr %630, align 4, !tbaa !5
  %3028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3019, ptr noundef nonnull %.str.5.sink1542, i32 noundef %3020, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %3022, ptr noundef %3024, ptr noundef %3026, i32 noundef %3027) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3029:                                             ; preds = %3002
  %3030 = load i32, ptr @test_count, align 4, !tbaa !5
  %3031 = add nsw i32 %3030, 1
  store i32 %3031, ptr @test_count, align 4, !tbaa !5
  %3032 = load i32, ptr %2752, align 8, !tbaa !18
  %3033 = icmp eq i32 %3032, 4
  br i1 %3033, label %3056, label %3034

3034:                                             ; preds = %3029
  %3035 = load i32, ptr %630, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = call i32 @s2n_print_stacktrace(ptr noundef %3036) #10
  %3038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3039 = trunc nuw i8 %3038 to i1
  br i1 %3039, label %3040, label %3044

3040:                                             ; preds = %3034
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @fileno(ptr noundef %3041) #10
  %3043 = call i32 @isatty(i32 noundef %3042) #10
  %.not454 = icmp eq i32 %3043, 0
  br i1 %.not454, label %3044, label %3045

3044:                                             ; preds = %3040, %3034
  br label %3045

3045:                                             ; preds = %3040, %3044
  %.str.5.sink1551 = phi ptr [ @.str.5, %3044 ], [ @.str.2, %3040 ]
  store i32 %3035, ptr %630, align 4, !tbaa !5
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = load i32, ptr @test_count, align 4, !tbaa !5
  %3048 = load i32, ptr %576, align 4, !tbaa !5
  %3049 = call ptr @s2n_strerror(i32 noundef %3048, ptr noundef nonnull @.str.4) #10
  %3050 = load i32, ptr %576, align 4, !tbaa !5
  %3051 = call ptr @s2n_strerror_debug(i32 noundef %3050, ptr noundef nonnull @.str.4) #10
  %3052 = load i32, ptr %630, align 4, !tbaa !5
  %3053 = call ptr @strerror(i32 noundef %3052) #10
  %3054 = load i32, ptr %630, align 4, !tbaa !5
  %3055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3046, ptr noundef nonnull %.str.5.sink1551, i32 noundef %3047, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %3049, ptr noundef %3051, ptr noundef %3053, i32 noundef %3054) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3056:                                             ; preds = %3029
  %3057 = add nsw i32 %3030, 2
  store i32 %3057, ptr @test_count, align 4, !tbaa !5
  %3058 = load i32, ptr %2778, align 8, !tbaa !18
  %3059 = icmp eq i32 %3058, 4
  br i1 %3059, label %3082, label %3060

3060:                                             ; preds = %3056
  %3061 = load i32, ptr %630, align 4, !tbaa !5
  %3062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3063 = call i32 @s2n_print_stacktrace(ptr noundef %3062) #10
  %3064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3065 = trunc nuw i8 %3064 to i1
  br i1 %3065, label %3066, label %3070

3066:                                             ; preds = %3060
  %3067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3068 = call i32 @fileno(ptr noundef %3067) #10
  %3069 = call i32 @isatty(i32 noundef %3068) #10
  %.not455 = icmp eq i32 %3069, 0
  br i1 %.not455, label %3070, label %3071

3070:                                             ; preds = %3066, %3060
  br label %3071

3071:                                             ; preds = %3066, %3070
  %.str.5.sink1560 = phi ptr [ @.str.5, %3070 ], [ @.str.2, %3066 ]
  store i32 %3061, ptr %630, align 4, !tbaa !5
  %3072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3073 = load i32, ptr @test_count, align 4, !tbaa !5
  %3074 = load i32, ptr %576, align 4, !tbaa !5
  %3075 = call ptr @s2n_strerror(i32 noundef %3074, ptr noundef nonnull @.str.4) #10
  %3076 = load i32, ptr %576, align 4, !tbaa !5
  %3077 = call ptr @s2n_strerror_debug(i32 noundef %3076, ptr noundef nonnull @.str.4) #10
  %3078 = load i32, ptr %630, align 4, !tbaa !5
  %3079 = call ptr @strerror(i32 noundef %3078) #10
  %3080 = load i32, ptr %630, align 4, !tbaa !5
  %3081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3072, ptr noundef nonnull %.str.5.sink1560, i32 noundef %3073, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 298, ptr noundef %3075, ptr noundef %3077, ptr noundef %3079, i32 noundef %3080) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3082:                                             ; preds = %3056
  %3083 = add nsw i32 %3030, 3
  store i32 %3083, ptr @test_count, align 4, !tbaa !5
  %3084 = call i32 @s2n_connection_free(ptr noundef nonnull %2448) #10
  %3085 = icmp eq i32 %3084, -1
  br i1 %3085, label %3086, label %3108

3086:                                             ; preds = %3082
  %3087 = load i32, ptr %630, align 4, !tbaa !5
  %3088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3089 = call i32 @s2n_print_stacktrace(ptr noundef %3088) #10
  %3090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3091 = trunc nuw i8 %3090 to i1
  br i1 %3091, label %3092, label %3096

3092:                                             ; preds = %3086
  %3093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3094 = call i32 @fileno(ptr noundef %3093) #10
  %3095 = call i32 @isatty(i32 noundef %3094) #10
  %.not462 = icmp eq i32 %3095, 0
  br i1 %.not462, label %3096, label %3097

3096:                                             ; preds = %3092, %3086
  br label %3097

3097:                                             ; preds = %3092, %3096
  %.str.5.sink1569 = phi ptr [ @.str.5, %3096 ], [ @.str.2, %3092 ]
  store i32 %3087, ptr %630, align 4, !tbaa !5
  %3098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3099 = load i32, ptr @test_count, align 4, !tbaa !5
  %3100 = load i32, ptr %576, align 4, !tbaa !5
  %3101 = call ptr @s2n_strerror(i32 noundef %3100, ptr noundef nonnull @.str.4) #10
  %3102 = load i32, ptr %576, align 4, !tbaa !5
  %3103 = call ptr @s2n_strerror_debug(i32 noundef %3102, ptr noundef nonnull @.str.4) #10
  %3104 = load i32, ptr %630, align 4, !tbaa !5
  %3105 = call ptr @strerror(i32 noundef %3104) #10
  %3106 = load i32, ptr %630, align 4, !tbaa !5
  %3107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3098, ptr noundef nonnull %.str.5.sink1569, i32 noundef %3099, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %3101, ptr noundef %3103, ptr noundef %3105, i32 noundef %3106) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3108:                                             ; preds = %3082
  %3109 = load i32, ptr @test_count, align 4, !tbaa !5
  %3110 = add nsw i32 %3109, 1
  store i32 %3110, ptr @test_count, align 4, !tbaa !5
  %3111 = call i32 @s2n_connection_free(ptr noundef nonnull %2555) #10
  %3112 = icmp eq i32 %3111, -1
  br i1 %3112, label %3113, label %3135

3113:                                             ; preds = %3108
  %3114 = load i32, ptr %630, align 4, !tbaa !5
  %3115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3116 = call i32 @s2n_print_stacktrace(ptr noundef %3115) #10
  %3117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3118 = trunc nuw i8 %3117 to i1
  br i1 %3118, label %3119, label %3123

3119:                                             ; preds = %3113
  %3120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3121 = call i32 @fileno(ptr noundef %3120) #10
  %3122 = call i32 @isatty(i32 noundef %3121) #10
  %.not461 = icmp eq i32 %3122, 0
  br i1 %.not461, label %3123, label %3124

3123:                                             ; preds = %3119, %3113
  br label %3124

3124:                                             ; preds = %3119, %3123
  %.str.5.sink1578 = phi ptr [ @.str.5, %3123 ], [ @.str.2, %3119 ]
  store i32 %3114, ptr %630, align 4, !tbaa !5
  %3125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3126 = load i32, ptr @test_count, align 4, !tbaa !5
  %3127 = load i32, ptr %576, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror(i32 noundef %3127, ptr noundef nonnull @.str.4) #10
  %3129 = load i32, ptr %576, align 4, !tbaa !5
  %3130 = call ptr @s2n_strerror_debug(i32 noundef %3129, ptr noundef nonnull @.str.4) #10
  %3131 = load i32, ptr %630, align 4, !tbaa !5
  %3132 = call ptr @strerror(i32 noundef %3131) #10
  %3133 = load i32, ptr %630, align 4, !tbaa !5
  %3134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3125, ptr noundef nonnull %.str.5.sink1578, i32 noundef %3126, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %3128, ptr noundef %3130, ptr noundef %3132, i32 noundef %3133) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3135:                                             ; preds = %3108
  %3136 = call i32 @s2n_cleanup() #10
  %3137 = icmp eq i32 %3136, -1
  br i1 %3137, label %3138, label %3160

3138:                                             ; preds = %3135
  %3139 = load i32, ptr %630, align 4, !tbaa !5
  %3140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3141 = call i32 @s2n_print_stacktrace(ptr noundef %3140) #10
  %3142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3143 = trunc nuw i8 %3142 to i1
  br i1 %3143, label %3144, label %3148

3144:                                             ; preds = %3138
  %3145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3146 = call i32 @fileno(ptr noundef %3145) #10
  %3147 = call i32 @isatty(i32 noundef %3146) #10
  %.not460 = icmp eq i32 %3147, 0
  br i1 %.not460, label %3148, label %3149

3148:                                             ; preds = %3144, %3138
  br label %3149

3149:                                             ; preds = %3144, %3148
  %.str.5.sink1587 = phi ptr [ @.str.5, %3148 ], [ @.str.2, %3144 ]
  store i32 %3139, ptr %630, align 4, !tbaa !5
  %3150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3151 = load i32, ptr @test_count, align 4, !tbaa !5
  %3152 = load i32, ptr %576, align 4, !tbaa !5
  %3153 = call ptr @s2n_strerror(i32 noundef %3152, ptr noundef nonnull @.str.4) #10
  %3154 = load i32, ptr %576, align 4, !tbaa !5
  %3155 = call ptr @s2n_strerror_debug(i32 noundef %3154, ptr noundef nonnull @.str.4) #10
  %3156 = load i32, ptr %630, align 4, !tbaa !5
  %3157 = call ptr @strerror(i32 noundef %3156) #10
  %3158 = load i32, ptr %630, align 4, !tbaa !5
  %3159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3150, ptr noundef nonnull %.str.5.sink1587, i32 noundef %3151, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %3153, ptr noundef %3155, ptr noundef %3157, i32 noundef %3158) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3160:                                             ; preds = %3135
  %3161 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %3162 = icmp eq i32 %3161, -1
  br i1 %3162, label %3163, label %3185

3163:                                             ; preds = %3160
  %3164 = load i32, ptr %630, align 4, !tbaa !5
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = call i32 @s2n_print_stacktrace(ptr noundef %3165) #10
  %3167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3168 = trunc nuw i8 %3167 to i1
  br i1 %3168, label %3169, label %3173

3169:                                             ; preds = %3163
  %3170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3171 = call i32 @fileno(ptr noundef %3170) #10
  %3172 = call i32 @isatty(i32 noundef %3171) #10
  %.not459 = icmp eq i32 %3172, 0
  br i1 %.not459, label %3173, label %3174

3173:                                             ; preds = %3169, %3163
  br label %3174

3174:                                             ; preds = %3169, %3173
  %.str.5.sink1596 = phi ptr [ @.str.5, %3173 ], [ @.str.2, %3169 ]
  store i32 %3164, ptr %630, align 4, !tbaa !5
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = load i32, ptr @test_count, align 4, !tbaa !5
  %3177 = load i32, ptr %576, align 4, !tbaa !5
  %3178 = call ptr @s2n_strerror(i32 noundef %3177, ptr noundef nonnull @.str.4) #10
  %3179 = load i32, ptr %576, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror_debug(i32 noundef %3179, ptr noundef nonnull @.str.4) #10
  %3181 = load i32, ptr %630, align 4, !tbaa !5
  %3182 = call ptr @strerror(i32 noundef %3181) #10
  %3183 = load i32, ptr %630, align 4, !tbaa !5
  %3184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3175, ptr noundef nonnull %.str.5.sink1596, i32 noundef %3176, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %3178, ptr noundef %3180, ptr noundef %3182, i32 noundef %3183) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3185:                                             ; preds = %3160
  %3186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3187 = trunc nuw i8 %3186 to i1
  br i1 %3187, label %3188, label %3199

3188:                                             ; preds = %3185
  %3189 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3190 = call i32 @fileno(ptr noundef %3189) #10
  %3191 = call i32 @isatty(i32 noundef %3190) #10
  %.not456 = icmp eq i32 %3191, 0
  br i1 %.not456, label %3199, label %3192

3192:                                             ; preds = %3188
  %3193 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not458 = icmp eq i32 %3193, 0
  %3194 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not458, label %3197, label %3195

3195:                                             ; preds = %3192
  %3196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3194, ptr noundef nonnull @.str.10, i32 noundef %3193) #10
  br label %3206

3197:                                             ; preds = %3192
  %3198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3194, ptr noundef nonnull @.str.11) #10
  br label %3206

3199:                                             ; preds = %3188, %3185
  %3200 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not457 = icmp eq i32 %3200, 0
  %3201 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not457, label %3204, label %3202

3202:                                             ; preds = %3199
  %3203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3201, ptr noundef nonnull @.str.12, i32 noundef %3200) #10
  br label %3206

3204:                                             ; preds = %3199
  %3205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3201, ptr noundef nonnull @.str.13) #10
  br label %3206

3206:                                             ; preds = %3197, %3195, %3204, %3202, %158, %156, %165, %163
  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 zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) 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 void @s2n_debug_info_reset() 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_append_test_chosen_psk_with_early_data(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_early_data_expected(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_encrypted_extensions_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_encrypted_extensions_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_set_hello_retry_required(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_hello_retry_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_hello_recv(ptr noundef) local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { cold nounwind }
attributes #13 = { 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 = !{!16, !10, i64 24}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!19, !6, i64 4088}
!19 = !{!"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, !20, i64 160, !21, i64 168, !21, 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, !22, i64 240, !10, i64 632, !10, i64 640, !23, i64 648, !29, i64 1144, !32, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !34, i64 1776, !34, i64 1816, !34, i64 1856, !34, i64 1896, !6, i64 1936, !21, i64 1944, !7, i64 1952, !34, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !21, i64 2224, !7, i64 2232, !21, i64 2240, !21, i64 2248, !21, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !28, i64 2792, !6, i64 2816, !28, i64 2824, !28, i64 2848, !28, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !28, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !28, i64 4032, !28, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !28, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!20 = !{!"s2n_timer", !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!23 = !{!"s2n_kex_parameters", !24, i64 0, !25, i64 8, !7, i64 24, !25, i64 56, !26, i64 72, !26, i64 184, !7, i64 296, !27, i64 360, !28, i64 448, !28, i64 472}
!24 = !{!"s2n_dh_params", !10, i64 0}
!25 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!26 = !{!"s2n_kem_group_params", !10, i64 0, !27, i64 8, !25, i64 96}
!27 = !{!"s2n_kem_params", !10, i64 0, !28, i64 8, !28, i64 32, !28, i64 56, !12, i64 80}
!28 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!29 = !{!"s2n_handshake_parameters", !30, i64 0, !30, i64 48, !28, i64 96, !6, i64 120, !31, 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}
!30 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!31 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!32 = !{!"s2n_psk_parameters", !6, i64 0, !33, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!33 = !{!"s2n_array", !28, i64 0, !6, i64 24, !6, i64 28}
!34 = !{!"s2n_stuffer", !28, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !34, 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, !37, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!37 = !{!"s2n_offered_early_data", !10, i64 0}
!38 = !{!"s2n_client_hello", !28, i64 0, !39, i64 24, !28, i64 728, !28, i64 752, !28, 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}
!39 = !{!"", !7, i64 0, !28, i64 672, !17, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !41, i64 48, !12, i64 52}
!41 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!42 = !{!"s2n_ticket_fields", !28, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!16, !10, i64 32}
!45 = !{!19, !10, i64 232}
!46 = !{!47, !10, i64 0}
!47 = !{!"s2n_crypto_parameters", !10, i64 0, !48, i64 8, !48, i64 16, !49, i64 24, !49, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!48 = !{!"s2n_session_key", !10, i64 0}
!49 = !{!"s2n_hmac_state", !6, i64 0, !17, i64 4, !6, i64 8, !17, i64 12, !7, i64 14, !50, i64 16, !50, i64 72, !50, i64 128, !50, i64 184, !7, i64 240, !7, i64 368}
!50 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !21, i64 16, !7, i64 24}
!51 = !{!19, !7, i64 220}
!52 = !{!16, !10, i64 16}
!53 = !{!19, !6, i64 2044}
!54 = !{!19, !6, i64 2040}
!55 = !{!19, !6, i64 2176}
!56 = !{!19, !10, i64 704}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass