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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, 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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%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 [86 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [51 x i8], align 1
@s2n_ecdhe_rsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.22 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [39 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.31 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca [12 x i8], align 1
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i8, align 1
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca %struct.s2n_result, align 4
  %68 = alloca ptr, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca ptr, align 8
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca %struct.s2n_result, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = 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 %99

99:                                               ; preds = %2
  br label %100

100:                                              ; preds = %99
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %101 = load ptr, ptr @stdout, align 8, !tbaa !9
  %102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %101, ptr noundef @.str, ptr noundef @.str.1) #9
  %103 = load ptr, ptr @stdout, align 8, !tbaa !9
  %104 = call i32 @fflush(ptr noundef %103)
  br label %105

105:                                              ; preds = %100
  %106 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %107 = icmp eq i32 %106, -1
  br i1 %107, label %108, label %159

108:                                              ; preds = %105
  br label %109

109:                                              ; preds = %108
  br label %110

110:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %111 = call ptr @__errno_location() #10
  %112 = load i32, ptr %111, align 4, !tbaa !5
  store i32 %112, ptr %6, align 4, !tbaa !5
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = call i32 @s2n_print_stacktrace(ptr noundef %113)
  %115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %116 = trunc i8 %115 to i1
  br i1 %116, label %117, label %139

117:                                              ; preds = %110
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = call i32 @fileno(ptr noundef %118) #9
  %120 = call i32 @isatty(i32 noundef %119) #9
  %121 = icmp ne i32 %120, 0
  br i1 %121, label %122, label %139

122:                                              ; preds = %117
  %123 = load i32, ptr %6, align 4, !tbaa !5
  %124 = call ptr @__errno_location() #10
  store i32 %123, ptr %124, align 4, !tbaa !5
  %125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = call ptr @s2n_strerror(i32 noundef %128, ptr noundef @.str.4)
  %130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = call ptr @s2n_strerror_debug(i32 noundef %131, ptr noundef @.str.4)
  %133 = call ptr @__errno_location() #10
  %134 = load i32, ptr %133, align 4, !tbaa !5
  %135 = call ptr @strerror(i32 noundef %134) #9
  %136 = call ptr @__errno_location() #10
  %137 = load i32, ptr %136, align 4, !tbaa !5
  %138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %125, ptr noundef @.str.2, i32 noundef %126, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 24, ptr noundef %129, ptr noundef %132, ptr noundef %135, i32 noundef %137) #9
  br label %156

139:                                              ; preds = %117, %110
  %140 = load i32, ptr %6, align 4, !tbaa !5
  %141 = call ptr @__errno_location() #10
  store i32 %140, ptr %141, align 4, !tbaa !5
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = load i32, ptr @test_count, align 4, !tbaa !5
  %144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = call ptr @s2n_strerror(i32 noundef %145, ptr noundef @.str.4)
  %147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %148 = load i32, ptr %147, align 4, !tbaa !5
  %149 = call ptr @s2n_strerror_debug(i32 noundef %148, ptr noundef @.str.4)
  %150 = call ptr @__errno_location() #10
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %152 = call ptr @strerror(i32 noundef %151) #9
  %153 = call ptr @__errno_location() #10
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %142, ptr noundef @.str.5, i32 noundef %143, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 24, ptr noundef %146, ptr noundef %149, ptr noundef %152, i32 noundef %154) #9
  br label %156

156:                                              ; preds = %139, %122
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %157

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

158:                                              ; No predecessors!
  br label %159

159:                                              ; preds = %158, %105
  br label %160

160:                                              ; preds = %159
  br label %161

161:                                              ; preds = %160
  %162 = load i32, ptr @test_count, align 4, !tbaa !5
  %163 = add nsw i32 %162, 1
  store i32 %163, ptr @test_count, align 4, !tbaa !5
  %164 = call i32 @s2n_enable_atexit()
  %165 = icmp eq i32 %164, -1
  br i1 %165, label %166, label %217

166:                                              ; preds = %161
  br label %167

167:                                              ; preds = %166
  br label %168

168:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  %169 = call ptr @__errno_location() #10
  %170 = load i32, ptr %169, align 4, !tbaa !5
  store i32 %170, ptr %7, align 4, !tbaa !5
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = call i32 @s2n_print_stacktrace(ptr noundef %171)
  %173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %174 = trunc i8 %173 to i1
  br i1 %174, label %175, label %197

175:                                              ; preds = %168
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = call i32 @fileno(ptr noundef %176) #9
  %178 = call i32 @isatty(i32 noundef %177) #9
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %180, label %197

180:                                              ; preds = %175
  %181 = load i32, ptr %7, align 4, !tbaa !5
  %182 = call ptr @__errno_location() #10
  store i32 %181, ptr %182, align 4, !tbaa !5
  %183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %184 = load i32, ptr @test_count, align 4, !tbaa !5
  %185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %186 = load i32, ptr %185, align 4, !tbaa !5
  %187 = call ptr @s2n_strerror(i32 noundef %186, ptr noundef @.str.4)
  %188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = call ptr @s2n_strerror_debug(i32 noundef %189, ptr noundef @.str.4)
  %191 = call ptr @__errno_location() #10
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = call ptr @strerror(i32 noundef %192) #9
  %194 = call ptr @__errno_location() #10
  %195 = load i32, ptr %194, align 4, !tbaa !5
  %196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %183, ptr noundef @.str.2, i32 noundef %184, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 24, ptr noundef %187, ptr noundef %190, ptr noundef %193, i32 noundef %195) #9
  br label %214

197:                                              ; preds = %175, %168
  %198 = load i32, ptr %7, align 4, !tbaa !5
  %199 = call ptr @__errno_location() #10
  store i32 %198, ptr %199, align 4, !tbaa !5
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = load i32, ptr @test_count, align 4, !tbaa !5
  %202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = call ptr @s2n_strerror(i32 noundef %203, ptr noundef @.str.4)
  %205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = call ptr @s2n_strerror_debug(i32 noundef %206, ptr noundef @.str.4)
  %208 = call ptr @__errno_location() #10
  %209 = load i32, ptr %208, align 4, !tbaa !5
  %210 = call ptr @strerror(i32 noundef %209) #9
  %211 = call ptr @__errno_location() #10
  %212 = load i32, ptr %211, align 4, !tbaa !5
  %213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %200, ptr noundef @.str.5, i32 noundef %201, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 24, ptr noundef %204, ptr noundef %207, ptr noundef %210, i32 noundef %212) #9
  br label %214

214:                                              ; preds = %197, %180
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %215

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

216:                                              ; No predecessors!
  br label %217

217:                                              ; preds = %216, %161
  br label %218

218:                                              ; preds = %217
  br label %219

219:                                              ; preds = %218
  br label %220

220:                                              ; preds = %219
  %221 = call i32 @s2n_init()
  %222 = icmp eq i32 %221, -1
  br i1 %222, label %223, label %274

223:                                              ; preds = %220
  br label %224

224:                                              ; preds = %223
  br label %225

225:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %226 = call ptr @__errno_location() #10
  %227 = load i32, ptr %226, align 4, !tbaa !5
  store i32 %227, ptr %8, align 4, !tbaa !5
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = call i32 @s2n_print_stacktrace(ptr noundef %228)
  %230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %231 = trunc i8 %230 to i1
  br i1 %231, label %232, label %254

232:                                              ; preds = %225
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = call i32 @fileno(ptr noundef %233) #9
  %235 = call i32 @isatty(i32 noundef %234) #9
  %236 = icmp ne i32 %235, 0
  br i1 %236, label %237, label %254

237:                                              ; preds = %232
  %238 = load i32, ptr %8, align 4, !tbaa !5
  %239 = call ptr @__errno_location() #10
  store i32 %238, ptr %239, align 4, !tbaa !5
  %240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %241 = load i32, ptr @test_count, align 4, !tbaa !5
  %242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = call ptr @s2n_strerror(i32 noundef %243, ptr noundef @.str.4)
  %245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror_debug(i32 noundef %246, ptr noundef @.str.4)
  %248 = call ptr @__errno_location() #10
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = call ptr @strerror(i32 noundef %249) #9
  %251 = call ptr @__errno_location() #10
  %252 = load i32, ptr %251, align 4, !tbaa !5
  %253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %240, ptr noundef @.str.2, i32 noundef %241, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 24, ptr noundef %244, ptr noundef %247, ptr noundef %250, i32 noundef %252) #9
  br label %271

254:                                              ; preds = %232, %225
  %255 = load i32, ptr %8, align 4, !tbaa !5
  %256 = call ptr @__errno_location() #10
  store i32 %255, ptr %256, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = load i32, ptr @test_count, align 4, !tbaa !5
  %259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call ptr @s2n_strerror(i32 noundef %260, ptr noundef @.str.4)
  %262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %263 = load i32, ptr %262, align 4, !tbaa !5
  %264 = call ptr @s2n_strerror_debug(i32 noundef %263, ptr noundef @.str.4)
  %265 = call ptr @__errno_location() #10
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = call ptr @strerror(i32 noundef %266) #9
  %268 = call ptr @__errno_location() #10
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %257, ptr noundef @.str.5, i32 noundef %258, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 24, ptr noundef %261, ptr noundef %264, ptr noundef %267, i32 noundef %269) #9
  br label %271

271:                                              ; preds = %254, %237
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %272

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

273:                                              ; No predecessors!
  br label %274

274:                                              ; preds = %273, %220
  br label %275

275:                                              ; preds = %274
  br label %276

276:                                              ; preds = %275
  br label %277

277:                                              ; preds = %276
  %278 = load i32, ptr @test_count, align 4, !tbaa !5
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr @test_count, align 4, !tbaa !5
  %280 = call i32 (...) @s2n_disable_tls13_in_test()
  %281 = icmp eq i32 %280, -1
  br i1 %281, label %282, label %333

282:                                              ; preds = %277
  br label %283

283:                                              ; preds = %282
  br label %284

284:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  %285 = call ptr @__errno_location() #10
  %286 = load i32, ptr %285, align 4, !tbaa !5
  store i32 %286, ptr %9, align 4, !tbaa !5
  %287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %288 = call i32 @s2n_print_stacktrace(ptr noundef %287)
  %289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %290 = trunc i8 %289 to i1
  br i1 %290, label %291, label %313

291:                                              ; preds = %284
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = call i32 @fileno(ptr noundef %292) #9
  %294 = call i32 @isatty(i32 noundef %293) #9
  %295 = icmp ne i32 %294, 0
  br i1 %295, label %296, label %313

296:                                              ; preds = %291
  %297 = load i32, ptr %9, align 4, !tbaa !5
  %298 = call ptr @__errno_location() #10
  store i32 %297, ptr %298, align 4, !tbaa !5
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = load i32, ptr @test_count, align 4, !tbaa !5
  %301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @s2n_strerror(i32 noundef %302, ptr noundef @.str.4)
  %304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call ptr @s2n_strerror_debug(i32 noundef %305, ptr noundef @.str.4)
  %307 = call ptr @__errno_location() #10
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call ptr @strerror(i32 noundef %308) #9
  %310 = call ptr @__errno_location() #10
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %299, ptr noundef @.str.2, i32 noundef %300, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 25, ptr noundef %303, ptr noundef %306, ptr noundef %309, i32 noundef %311) #9
  br label %330

313:                                              ; preds = %291, %284
  %314 = load i32, ptr %9, align 4, !tbaa !5
  %315 = call ptr @__errno_location() #10
  store i32 %314, ptr %315, align 4, !tbaa !5
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = load i32, ptr @test_count, align 4, !tbaa !5
  %318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call ptr @s2n_strerror(i32 noundef %319, ptr noundef @.str.4)
  %321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %323 = call ptr @s2n_strerror_debug(i32 noundef %322, ptr noundef @.str.4)
  %324 = call ptr @__errno_location() #10
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @strerror(i32 noundef %325) #9
  %327 = call ptr @__errno_location() #10
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %316, ptr noundef @.str.5, i32 noundef %317, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 25, ptr noundef %320, ptr noundef %323, ptr noundef %326, i32 noundef %328) #9
  br label %330

330:                                              ; preds = %313, %296
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %331

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

332:                                              ; No predecessors!
  br label %333

333:                                              ; preds = %332, %277
  br label %334

334:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 12, ptr %10) #9
  call void @llvm.memset.p0.i64(ptr align 1 %10, i8 0, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %335

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

340:                                              ; preds = %335
  br label %341

341:                                              ; preds = %340
  br label %342

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

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

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

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

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

389:                                              ; preds = %388
  br label %390

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

391:                                              ; No predecessors!
  br label %392

392:                                              ; preds = %391
  br label %393

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

394:                                              ; preds = %393
  br label %395

395:                                              ; preds = %394
  br label %396

396:                                              ; preds = %395
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = add nsw i32 %397, 1
  store i32 %398, ptr @test_count, align 4, !tbaa !5
  %399 = load ptr, ptr %11, align 8, !tbaa !9
  %400 = call i32 @s2n_ccs_send(ptr noundef %399)
  %401 = icmp eq i32 %400, -1
  br i1 %401, label %402, label %455

402:                                              ; preds = %396
  br label %403

403:                                              ; preds = %402
  br label %404

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

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

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

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

450:                                              ; preds = %433, %416
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %451

451:                                              ; preds = %450
  br label %452

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

453:                                              ; No predecessors!
  br label %454

454:                                              ; preds = %453
  br label %455

455:                                              ; preds = %454, %396
  br label %456

456:                                              ; preds = %455
  br label %457

457:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #9
  store i8 0, ptr %14, align 1, !tbaa !15
  br label %458

458:                                              ; preds = %457
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = add nsw i32 %459, 1
  store i32 %460, ptr @test_count, align 4, !tbaa !5
  %461 = load ptr, ptr %11, align 8, !tbaa !9
  %462 = getelementptr inbounds %struct.s2n_connection, ptr %461, i32 0, i32 52
  %463 = getelementptr inbounds %struct.s2n_handshake, ptr %462, i32 0, i32 0
  %464 = call i32 @s2n_stuffer_read_uint8(ptr noundef %463, ptr noundef %14)
  %465 = icmp eq i32 %464, -1
  br i1 %465, label %466, label %519

466:                                              ; preds = %458
  br label %467

467:                                              ; preds = %466
  br label %468

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

475:                                              ; preds = %468
  %476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %477 = call i32 @fileno(ptr noundef %476) #9
  %478 = call i32 @isatty(i32 noundef %477) #9
  %479 = icmp ne i32 %478, 0
  br i1 %479, label %480, label %497

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

497:                                              ; preds = %475, %468
  %498 = load i32, ptr %15, 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.5, i32 noundef %501, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 37, ptr noundef %504, ptr noundef %507, ptr noundef %510, i32 noundef %512) #9
  br label %514

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

515:                                              ; preds = %514
  br label %516

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

517:                                              ; No predecessors!
  br label %518

518:                                              ; preds = %517
  br label %519

519:                                              ; preds = %518, %458
  br label %520

520:                                              ; preds = %519
  br label %521

521:                                              ; preds = %520
  br label %522

522:                                              ; preds = %521
  %523 = load i32, ptr @test_count, align 4, !tbaa !5
  %524 = add nsw i32 %523, 1
  store i32 %524, ptr @test_count, align 4, !tbaa !5
  %525 = load i8, ptr %14, align 1, !tbaa !15
  %526 = zext i8 %525 to i32
  %527 = icmp eq i32 %526, 1
  br i1 %527, label %581, label %528

528:                                              ; preds = %522
  br label %529

529:                                              ; preds = %528
  br label %530

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

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

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

559:                                              ; preds = %537, %530
  %560 = load i32, ptr %16, 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.5, i32 noundef %563, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 39, ptr noundef %566, ptr noundef %569, ptr noundef %572, i32 noundef %574) #9
  br label %576

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

577:                                              ; preds = %576
  br label %578

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

579:                                              ; No predecessors!
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580, %522
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582
  br label %584

584:                                              ; preds = %583
  %585 = load i32, ptr @test_count, align 4, !tbaa !5
  %586 = add nsw i32 %585, 1
  store i32 %586, ptr @test_count, align 4, !tbaa !5
  %587 = load ptr, ptr %11, align 8, !tbaa !9
  %588 = call i32 @s2n_connection_free(ptr noundef %587)
  %589 = icmp eq i32 %588, -1
  br i1 %589, label %590, label %643

590:                                              ; preds = %584
  br label %591

591:                                              ; preds = %590
  br label %592

592:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %593 = call ptr @__errno_location() #10
  %594 = load i32, ptr %593, align 4, !tbaa !5
  store i32 %594, ptr %17, align 4, !tbaa !5
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = call i32 @s2n_print_stacktrace(ptr noundef %595)
  %597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %598 = trunc i8 %597 to i1
  br i1 %598, label %599, label %621

599:                                              ; preds = %592
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = call i32 @fileno(ptr noundef %600) #9
  %602 = call i32 @isatty(i32 noundef %601) #9
  %603 = icmp ne i32 %602, 0
  br i1 %603, label %604, label %621

604:                                              ; preds = %599
  %605 = load i32, ptr %17, align 4, !tbaa !5
  %606 = call ptr @__errno_location() #10
  store i32 %605, ptr %606, align 4, !tbaa !5
  %607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %608 = load i32, ptr @test_count, align 4, !tbaa !5
  %609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror(i32 noundef %610, ptr noundef @.str.4)
  %612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror_debug(i32 noundef %613, ptr noundef @.str.4)
  %615 = call ptr @__errno_location() #10
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call ptr @strerror(i32 noundef %616) #9
  %618 = call ptr @__errno_location() #10
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %607, ptr noundef @.str.2, i32 noundef %608, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 41, ptr noundef %611, ptr noundef %614, ptr noundef %617, i32 noundef %619) #9
  br label %638

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

638:                                              ; preds = %621, %604
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %639

639:                                              ; preds = %638
  br label %640

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

641:                                              ; No predecessors!
  br label %642

642:                                              ; preds = %641
  br label %643

643:                                              ; preds = %642, %584
  br label %644

644:                                              ; preds = %643
  br label %645

645:                                              ; preds = %644
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  store ptr null, ptr %18, align 8, !tbaa !9
  br label %646

646:                                              ; preds = %645
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr @test_count, align 4, !tbaa !5
  %649 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %649, ptr %18, align 8, !tbaa !9
  %650 = icmp eq ptr %649, null
  br i1 %650, label %651, label %704

651:                                              ; preds = %646
  br label %652

652:                                              ; preds = %651
  br label %653

653:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %654 = call ptr @__errno_location() #10
  %655 = load i32, ptr %654, align 4, !tbaa !5
  store i32 %655, ptr %19, align 4, !tbaa !5
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = call i32 @s2n_print_stacktrace(ptr noundef %656)
  %658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %659 = trunc i8 %658 to i1
  br i1 %659, label %660, label %682

660:                                              ; preds = %653
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = call i32 @fileno(ptr noundef %661) #9
  %663 = call i32 @isatty(i32 noundef %662) #9
  %664 = icmp ne i32 %663, 0
  br i1 %664, label %665, label %682

665:                                              ; preds = %660
  %666 = load i32, ptr %19, align 4, !tbaa !5
  %667 = call ptr @__errno_location() #10
  store i32 %666, ptr %667, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef @.str.4)
  %673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror_debug(i32 noundef %674, ptr noundef @.str.4)
  %676 = call ptr @__errno_location() #10
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @strerror(i32 noundef %677) #9
  %679 = call ptr @__errno_location() #10
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %668, ptr noundef @.str.2, i32 noundef %669, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 47, ptr noundef %672, ptr noundef %675, ptr noundef %678, i32 noundef %680) #9
  br label %699

682:                                              ; preds = %660, %653
  %683 = load i32, ptr %19, align 4, !tbaa !5
  %684 = call ptr @__errno_location() #10
  store i32 %683, ptr %684, align 4, !tbaa !5
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call ptr @s2n_strerror(i32 noundef %688, ptr noundef @.str.4)
  %690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror_debug(i32 noundef %691, ptr noundef @.str.4)
  %693 = call ptr @__errno_location() #10
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @strerror(i32 noundef %694) #9
  %696 = call ptr @__errno_location() #10
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef @.str.5, i32 noundef %686, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 47, ptr noundef %689, ptr noundef %692, ptr noundef %695, i32 noundef %697) #9
  br label %699

699:                                              ; preds = %682, %665
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %700

700:                                              ; preds = %699
  br label %701

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

702:                                              ; No predecessors!
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703, %646
  br label %705

705:                                              ; preds = %704
  br label %706

706:                                              ; preds = %705
  br label %707

707:                                              ; preds = %706
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = load ptr, ptr %18, align 8, !tbaa !9
  %711 = call i32 @s2n_ccs_send(ptr noundef %710)
  %712 = icmp eq i32 %711, -1
  br i1 %712, label %713, label %766

713:                                              ; preds = %707
  br label %714

714:                                              ; preds = %713
  br label %715

715:                                              ; preds = %714
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %716 = call ptr @__errno_location() #10
  %717 = load i32, ptr %716, align 4, !tbaa !5
  store i32 %717, ptr %20, align 4, !tbaa !5
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = call i32 @s2n_print_stacktrace(ptr noundef %718)
  %720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %721 = trunc i8 %720 to i1
  br i1 %721, label %722, label %744

722:                                              ; preds = %715
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @fileno(ptr noundef %723) #9
  %725 = call i32 @isatty(i32 noundef %724) #9
  %726 = icmp ne i32 %725, 0
  br i1 %726, label %727, label %744

727:                                              ; preds = %722
  %728 = load i32, ptr %20, align 4, !tbaa !5
  %729 = call ptr @__errno_location() #10
  store i32 %728, ptr %729, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror(i32 noundef %733, ptr noundef @.str.4)
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror_debug(i32 noundef %736, ptr noundef @.str.4)
  %738 = call ptr @__errno_location() #10
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #9
  %741 = call ptr @__errno_location() #10
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef @.str.2, i32 noundef %731, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 49, ptr noundef %734, ptr noundef %737, ptr noundef %740, i32 noundef %742) #9
  br label %761

744:                                              ; preds = %722, %715
  %745 = load i32, ptr %20, align 4, !tbaa !5
  %746 = call ptr @__errno_location() #10
  store i32 %745, ptr %746, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror(i32 noundef %750, ptr noundef @.str.4)
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror_debug(i32 noundef %753, ptr noundef @.str.4)
  %755 = call ptr @__errno_location() #10
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @strerror(i32 noundef %756) #9
  %758 = call ptr @__errno_location() #10
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef @.str.5, i32 noundef %748, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 49, ptr noundef %751, ptr noundef %754, ptr noundef %757, i32 noundef %759) #9
  br label %761

761:                                              ; preds = %744, %727
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %762

762:                                              ; preds = %761
  br label %763

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

764:                                              ; No predecessors!
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765, %707
  br label %767

767:                                              ; preds = %766
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr @test_count, align 4, !tbaa !5
  %772 = load ptr, ptr %18, align 8, !tbaa !9
  %773 = call i32 @s2n_basic_ccs_recv(ptr noundef %772)
  %774 = icmp eq i32 %773, -1
  br i1 %774, label %775, label %828

775:                                              ; preds = %769
  br label %776

776:                                              ; preds = %775
  br label %777

777:                                              ; preds = %776
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %778 = call ptr @__errno_location() #10
  %779 = load i32, ptr %778, align 4, !tbaa !5
  store i32 %779, ptr %21, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = call i32 @s2n_print_stacktrace(ptr noundef %780)
  %782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %783 = trunc i8 %782 to i1
  br i1 %783, label %784, label %806

784:                                              ; preds = %777
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = call i32 @fileno(ptr noundef %785) #9
  %787 = call i32 @isatty(i32 noundef %786) #9
  %788 = icmp ne i32 %787, 0
  br i1 %788, label %789, label %806

789:                                              ; preds = %784
  %790 = load i32, ptr %21, align 4, !tbaa !5
  %791 = call ptr @__errno_location() #10
  store i32 %790, ptr %791, align 4, !tbaa !5
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = load i32, ptr @test_count, align 4, !tbaa !5
  %794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @s2n_strerror(i32 noundef %795, ptr noundef @.str.4)
  %797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call ptr @s2n_strerror_debug(i32 noundef %798, ptr noundef @.str.4)
  %800 = call ptr @__errno_location() #10
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @strerror(i32 noundef %801) #9
  %803 = call ptr @__errno_location() #10
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef @.str.2, i32 noundef %793, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 50, ptr noundef %796, ptr noundef %799, ptr noundef %802, i32 noundef %804) #9
  br label %823

806:                                              ; preds = %784, %777
  %807 = load i32, ptr %21, align 4, !tbaa !5
  %808 = call ptr @__errno_location() #10
  store i32 %807, ptr %808, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror(i32 noundef %812, ptr noundef @.str.4)
  %814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = call ptr @s2n_strerror_debug(i32 noundef %815, ptr noundef @.str.4)
  %817 = call ptr @__errno_location() #10
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @strerror(i32 noundef %818) #9
  %820 = call ptr @__errno_location() #10
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %809, ptr noundef @.str.5, i32 noundef %810, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 50, ptr noundef %813, ptr noundef %816, ptr noundef %819, i32 noundef %821) #9
  br label %823

823:                                              ; preds = %806, %789
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %824

824:                                              ; preds = %823
  br label %825

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

826:                                              ; No predecessors!
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827, %769
  br label %829

829:                                              ; preds = %828
  br label %830

830:                                              ; preds = %829
  br label %831

831:                                              ; preds = %830
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr @test_count, align 4, !tbaa !5
  %834 = load ptr, ptr %18, align 8, !tbaa !9
  %835 = call i32 @s2n_connection_free(ptr noundef %834)
  %836 = icmp eq i32 %835, -1
  br i1 %836, label %837, label %890

837:                                              ; preds = %831
  br label %838

838:                                              ; preds = %837
  br label %839

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

846:                                              ; preds = %839
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = call i32 @fileno(ptr noundef %847) #9
  %849 = call i32 @isatty(i32 noundef %848) #9
  %850 = icmp ne i32 %849, 0
  br i1 %850, label %851, label %868

851:                                              ; preds = %846
  %852 = load i32, ptr %22, align 4, !tbaa !5
  %853 = call ptr @__errno_location() #10
  store i32 %852, ptr %853, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = load i32, ptr @test_count, align 4, !tbaa !5
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror(i32 noundef %857, ptr noundef @.str.4)
  %859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @s2n_strerror_debug(i32 noundef %860, ptr noundef @.str.4)
  %862 = call ptr @__errno_location() #10
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call ptr @strerror(i32 noundef %863) #9
  %865 = call ptr @__errno_location() #10
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %854, ptr noundef @.str.2, i32 noundef %855, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 52, ptr noundef %858, ptr noundef %861, ptr noundef %864, i32 noundef %866) #9
  br label %885

868:                                              ; preds = %846, %839
  %869 = load i32, ptr %22, align 4, !tbaa !5
  %870 = call ptr @__errno_location() #10
  store i32 %869, ptr %870, align 4, !tbaa !5
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = load i32, ptr @test_count, align 4, !tbaa !5
  %873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror(i32 noundef %874, ptr noundef @.str.4)
  %876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror_debug(i32 noundef %877, ptr noundef @.str.4)
  %879 = call ptr @__errno_location() #10
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call ptr @strerror(i32 noundef %880) #9
  %882 = call ptr @__errno_location() #10
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %871, ptr noundef @.str.5, i32 noundef %872, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 52, ptr noundef %875, ptr noundef %878, ptr noundef %881, i32 noundef %883) #9
  br label %885

885:                                              ; preds = %868, %851
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %886

886:                                              ; preds = %885
  br label %887

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

888:                                              ; No predecessors!
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889, %831
  br label %891

891:                                              ; preds = %890
  br label %892

892:                                              ; preds = %891
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  store ptr null, ptr %23, align 8, !tbaa !9
  br label %893

893:                                              ; preds = %892
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = add nsw i32 %894, 1
  store i32 %895, ptr @test_count, align 4, !tbaa !5
  %896 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %896, ptr %23, align 8, !tbaa !9
  %897 = icmp eq ptr %896, null
  br i1 %897, label %898, label %951

898:                                              ; preds = %893
  br label %899

899:                                              ; preds = %898
  br label %900

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

907:                                              ; preds = %900
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = call i32 @fileno(ptr noundef %908) #9
  %910 = call i32 @isatty(i32 noundef %909) #9
  %911 = icmp ne i32 %910, 0
  br i1 %911, label %912, label %929

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

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

946:                                              ; preds = %929, %912
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %947

947:                                              ; preds = %946
  br label %948

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

949:                                              ; No predecessors!
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950, %893
  br label %952

952:                                              ; preds = %951
  br label %953

953:                                              ; preds = %952
  br label %954

954:                                              ; preds = %953
  %955 = load i32, ptr @test_count, align 4, !tbaa !5
  %956 = add nsw i32 %955, 1
  store i32 %956, ptr @test_count, align 4, !tbaa !5
  %957 = load ptr, ptr %23, align 8, !tbaa !9
  %958 = getelementptr inbounds %struct.s2n_connection, ptr %957, i32 0, i32 52
  %959 = getelementptr inbounds %struct.s2n_handshake, ptr %958, i32 0, i32 0
  %960 = call i32 @s2n_stuffer_write_uint8(ptr noundef %959, i8 noundef zeroext 0)
  %961 = icmp eq i32 %960, -1
  br i1 %961, label %962, label %1015

962:                                              ; preds = %954
  br label %963

963:                                              ; preds = %962
  br label %964

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

971:                                              ; preds = %964
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = call i32 @fileno(ptr noundef %972) #9
  %974 = call i32 @isatty(i32 noundef %973) #9
  %975 = icmp ne i32 %974, 0
  br i1 %975, label %976, label %993

976:                                              ; preds = %971
  %977 = load i32, ptr %25, align 4, !tbaa !5
  %978 = call ptr @__errno_location() #10
  store i32 %977, ptr %978, align 4, !tbaa !5
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = load i32, ptr @test_count, align 4, !tbaa !5
  %981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @s2n_strerror(i32 noundef %982, ptr noundef @.str.4)
  %984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror_debug(i32 noundef %985, ptr noundef @.str.4)
  %987 = call ptr @__errno_location() #10
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call ptr @strerror(i32 noundef %988) #9
  %990 = call ptr @__errno_location() #10
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %979, ptr noundef @.str.2, i32 noundef %980, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 60, ptr noundef %983, ptr noundef %986, ptr noundef %989, i32 noundef %991) #9
  br label %1010

993:                                              ; preds = %971, %964
  %994 = load i32, ptr %25, align 4, !tbaa !5
  %995 = call ptr @__errno_location() #10
  store i32 %994, ptr %995, align 4, !tbaa !5
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = load i32, ptr @test_count, align 4, !tbaa !5
  %998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror(i32 noundef %999, ptr noundef @.str.4)
  %1001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror_debug(i32 noundef %1002, ptr noundef @.str.4)
  %1004 = call ptr @__errno_location() #10
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call ptr @strerror(i32 noundef %1005) #9
  %1007 = call ptr @__errno_location() #10
  %1008 = load i32, ptr %1007, align 4, !tbaa !5
  %1009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %996, ptr noundef @.str.5, i32 noundef %997, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1000, ptr noundef %1003, ptr noundef %1006, i32 noundef %1008) #9
  br label %1010

1010:                                             ; preds = %993, %976
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

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

1013:                                             ; No predecessors!
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014, %954
  br label %1016

1016:                                             ; preds = %1015
  br label %1017

1017:                                             ; preds = %1016
  br label %1018

1018:                                             ; preds = %1017
  br label %1019

1019:                                             ; preds = %1018
  br label %1020

1020:                                             ; preds = %1019
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %1022 = add nsw i32 %1021, 1
  store i32 %1022, ptr @test_count, align 4, !tbaa !5
  %1023 = load ptr, ptr %23, align 8, !tbaa !9
  %1024 = call i32 @s2n_basic_ccs_recv(ptr noundef %1023)
  %1025 = icmp eq i32 %1024, -1
  br i1 %1025, label %1079, label %1026

1026:                                             ; preds = %1020
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %1029 = call ptr @__errno_location() #10
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  store i32 %1030, ptr %26, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = call i32 @s2n_print_stacktrace(ptr noundef %1031)
  %1033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1034 = trunc i8 %1033 to i1
  br i1 %1034, label %1035, label %1057

1035:                                             ; preds = %1028
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = call i32 @fileno(ptr noundef %1036) #9
  %1038 = call i32 @isatty(i32 noundef %1037) #9
  %1039 = icmp ne i32 %1038, 0
  br i1 %1039, label %1040, label %1057

1040:                                             ; preds = %1035
  %1041 = load i32, ptr %26, align 4, !tbaa !5
  %1042 = call ptr @__errno_location() #10
  store i32 %1041, ptr %1042, align 4, !tbaa !5
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = load i32, ptr @test_count, align 4, !tbaa !5
  %1045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror(i32 noundef %1046, ptr noundef @.str.4)
  %1048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror_debug(i32 noundef %1049, ptr noundef @.str.4)
  %1051 = call ptr @__errno_location() #10
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call ptr @strerror(i32 noundef %1052) #9
  %1054 = call ptr @__errno_location() #10
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1043, ptr noundef @.str.2, i32 noundef %1044, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1047, ptr noundef %1050, ptr noundef %1053, i32 noundef %1055) #9
  br label %1074

1057:                                             ; preds = %1035, %1028
  %1058 = load i32, ptr %26, align 4, !tbaa !5
  %1059 = call ptr @__errno_location() #10
  store i32 %1058, ptr %1059, align 4, !tbaa !5
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror(i32 noundef %1063, ptr noundef @.str.4)
  %1065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1066 = load i32, ptr %1065, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror_debug(i32 noundef %1066, ptr noundef @.str.4)
  %1068 = call ptr @__errno_location() #10
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = call ptr @strerror(i32 noundef %1069) #9
  %1071 = call ptr @__errno_location() #10
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1060, ptr noundef @.str.5, i32 noundef %1061, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1064, ptr noundef %1067, ptr noundef %1070, i32 noundef %1072) #9
  br label %1074

1074:                                             ; preds = %1057, %1040
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1075

1075:                                             ; preds = %1074
  br label %1076

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

1077:                                             ; No predecessors!
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

1079:                                             ; preds = %1078, %1020
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

1082:                                             ; preds = %1081
  %1083 = load i32, ptr @test_count, align 4, !tbaa !5
  %1084 = add nsw i32 %1083, 1
  store i32 %1084, ptr @test_count, align 4, !tbaa !5
  %1085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = icmp eq i32 %1086, 335544322
  br i1 %1087, label %1141, label %1088

1088:                                             ; preds = %1082
  br label %1089

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %1091 = call ptr @__errno_location() #10
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  store i32 %1092, ptr %27, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = call i32 @s2n_print_stacktrace(ptr noundef %1093)
  %1095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1096 = trunc i8 %1095 to i1
  br i1 %1096, label %1097, label %1119

1097:                                             ; preds = %1090
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = call i32 @fileno(ptr noundef %1098) #9
  %1100 = call i32 @isatty(i32 noundef %1099) #9
  %1101 = icmp ne i32 %1100, 0
  br i1 %1101, label %1102, label %1119

1102:                                             ; preds = %1097
  %1103 = load i32, ptr %27, align 4, !tbaa !5
  %1104 = call ptr @__errno_location() #10
  store i32 %1103, ptr %1104, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror(i32 noundef %1108, ptr noundef @.str.4)
  %1110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef @.str.4)
  %1113 = call ptr @__errno_location() #10
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #9
  %1116 = call ptr @__errno_location() #10
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef @.str.2, i32 noundef %1106, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1109, ptr noundef %1112, ptr noundef %1115, i32 noundef %1117) #9
  br label %1136

1119:                                             ; preds = %1097, %1090
  %1120 = load i32, ptr %27, align 4, !tbaa !5
  %1121 = call ptr @__errno_location() #10
  store i32 %1120, ptr %1121, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef @.str.4)
  %1127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror_debug(i32 noundef %1128, ptr noundef @.str.4)
  %1130 = call ptr @__errno_location() #10
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @strerror(i32 noundef %1131) #9
  %1133 = call ptr @__errno_location() #10
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1122, ptr noundef @.str.5, i32 noundef %1123, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1126, ptr noundef %1129, ptr noundef %1132, i32 noundef %1134) #9
  br label %1136

1136:                                             ; preds = %1119, %1102
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

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

1139:                                             ; No predecessors!
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

1141:                                             ; preds = %1140, %1082
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142
  br label %1144

1144:                                             ; preds = %1143
  %1145 = load i32, ptr @test_count, align 4, !tbaa !5
  %1146 = add nsw i32 %1145, 1
  store i32 %1146, ptr @test_count, align 4, !tbaa !5
  %1147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror_debug(i32 noundef %1148, ptr noundef @.str.4)
  %1150 = icmp eq ptr %1149, null
  br i1 %1150, label %1151, label %1204

1151:                                             ; preds = %1144
  br label %1152

1152:                                             ; preds = %1151
  br label %1153

1153:                                             ; preds = %1152
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %1154 = call ptr @__errno_location() #10
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  store i32 %1155, ptr %28, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = call i32 @s2n_print_stacktrace(ptr noundef %1156)
  %1158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1159 = trunc i8 %1158 to i1
  br i1 %1159, label %1160, label %1182

1160:                                             ; preds = %1153
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @fileno(ptr noundef %1161) #9
  %1163 = call i32 @isatty(i32 noundef %1162) #9
  %1164 = icmp ne i32 %1163, 0
  br i1 %1164, label %1165, label %1182

1165:                                             ; preds = %1160
  %1166 = load i32, ptr %28, align 4, !tbaa !5
  %1167 = call ptr @__errno_location() #10
  store i32 %1166, ptr %1167, align 4, !tbaa !5
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = load i32, ptr @test_count, align 4, !tbaa !5
  %1170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  %1172 = call ptr @s2n_strerror(i32 noundef %1171, ptr noundef @.str.4)
  %1173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror_debug(i32 noundef %1174, ptr noundef @.str.4)
  %1176 = call ptr @__errno_location() #10
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @strerror(i32 noundef %1177) #9
  %1179 = call ptr @__errno_location() #10
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1168, ptr noundef @.str.2, i32 noundef %1169, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1172, ptr noundef %1175, ptr noundef %1178, i32 noundef %1180) #9
  br label %1199

1182:                                             ; preds = %1160, %1153
  %1183 = load i32, ptr %28, align 4, !tbaa !5
  %1184 = call ptr @__errno_location() #10
  store i32 %1183, ptr %1184, align 4, !tbaa !5
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = load i32, ptr @test_count, align 4, !tbaa !5
  %1187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror(i32 noundef %1188, ptr noundef @.str.4)
  %1190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror_debug(i32 noundef %1191, ptr noundef @.str.4)
  %1193 = call ptr @__errno_location() #10
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @strerror(i32 noundef %1194) #9
  %1196 = call ptr @__errno_location() #10
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1185, ptr noundef @.str.5, i32 noundef %1186, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1189, ptr noundef %1192, ptr noundef %1195, i32 noundef %1197) #9
  br label %1199

1199:                                             ; preds = %1182, %1165
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1200

1200:                                             ; preds = %1199
  br label %1201

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

1202:                                             ; No predecessors!
  br label %1203

1203:                                             ; preds = %1202
  br label %1204

1204:                                             ; preds = %1203, %1144
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

1206:                                             ; preds = %1205
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208
  %1210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1210, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1211 = call ptr @__errno_location() #10
  store i32 0, ptr %1211, align 4, !tbaa !5
  br label %1212

1212:                                             ; preds = %1209
  br label %1213

1213:                                             ; preds = %1212
  br label %1214

1214:                                             ; preds = %1213
  br label %1215

1215:                                             ; preds = %1214
  br label %1216

1216:                                             ; preds = %1215
  %1217 = load i32, ptr @test_count, align 4, !tbaa !5
  %1218 = add nsw i32 %1217, 1
  store i32 %1218, ptr @test_count, align 4, !tbaa !5
  %1219 = load ptr, ptr %23, align 8, !tbaa !9
  %1220 = call i32 @s2n_connection_free(ptr noundef %1219)
  %1221 = icmp eq i32 %1220, -1
  br i1 %1221, label %1222, label %1275

1222:                                             ; preds = %1216
  br label %1223

1223:                                             ; preds = %1222
  br label %1224

1224:                                             ; preds = %1223
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %1225 = call ptr @__errno_location() #10
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  store i32 %1226, ptr %29, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = call i32 @s2n_print_stacktrace(ptr noundef %1227)
  %1229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1230 = trunc i8 %1229 to i1
  br i1 %1230, label %1231, label %1253

1231:                                             ; preds = %1224
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = call i32 @fileno(ptr noundef %1232) #9
  %1234 = call i32 @isatty(i32 noundef %1233) #9
  %1235 = icmp ne i32 %1234, 0
  br i1 %1235, label %1236, label %1253

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

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

1270:                                             ; preds = %1253, %1236
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1271

1271:                                             ; preds = %1270
  br label %1272

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

1273:                                             ; No predecessors!
  br label %1274

1274:                                             ; preds = %1273
  br label %1275

1275:                                             ; preds = %1274, %1216
  br label %1276

1276:                                             ; preds = %1275
  br label %1277

1277:                                             ; preds = %1276
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  store ptr null, ptr %30, align 8, !tbaa !9
  br label %1278

1278:                                             ; preds = %1277
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = add nsw i32 %1279, 1
  store i32 %1280, ptr @test_count, align 4, !tbaa !5
  %1281 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1281, ptr %30, align 8, !tbaa !9
  %1282 = icmp eq ptr %1281, null
  br i1 %1282, label %1283, label %1336

1283:                                             ; preds = %1278
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

1285:                                             ; preds = %1284
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %1286 = call ptr @__errno_location() #10
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  store i32 %1287, ptr %31, align 4, !tbaa !5
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @s2n_print_stacktrace(ptr noundef %1288)
  %1290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1291 = trunc i8 %1290 to i1
  br i1 %1291, label %1292, label %1314

1292:                                             ; preds = %1285
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = call i32 @fileno(ptr noundef %1293) #9
  %1295 = call i32 @isatty(i32 noundef %1294) #9
  %1296 = icmp ne i32 %1295, 0
  br i1 %1296, label %1297, label %1314

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

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

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

1332:                                             ; preds = %1331
  br label %1333

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

1334:                                             ; No predecessors!
  br label %1335

1335:                                             ; preds = %1334
  br label %1336

1336:                                             ; preds = %1335, %1278
  br label %1337

1337:                                             ; preds = %1336
  br label %1338

1338:                                             ; preds = %1337
  br label %1339

1339:                                             ; preds = %1338
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = add nsw i32 %1340, 1
  store i32 %1341, ptr @test_count, align 4, !tbaa !5
  %1342 = load ptr, ptr %30, align 8, !tbaa !9
  %1343 = getelementptr inbounds %struct.s2n_connection, ptr %1342, i32 0, i32 52
  %1344 = getelementptr inbounds %struct.s2n_handshake, ptr %1343, i32 0, i32 0
  %1345 = call i32 @s2n_stuffer_write_uint8(ptr noundef %1344, i8 noundef zeroext 0)
  %1346 = icmp eq i32 %1345, -1
  br i1 %1346, label %1347, label %1400

1347:                                             ; preds = %1339
  br label %1348

1348:                                             ; preds = %1347
  br label %1349

1349:                                             ; preds = %1348
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %1350 = call ptr @__errno_location() #10
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  store i32 %1351, ptr %32, align 4, !tbaa !5
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = call i32 @s2n_print_stacktrace(ptr noundef %1352)
  %1354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1355 = trunc i8 %1354 to i1
  br i1 %1355, label %1356, label %1378

1356:                                             ; preds = %1349
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = call i32 @fileno(ptr noundef %1357) #9
  %1359 = call i32 @isatty(i32 noundef %1358) #9
  %1360 = icmp ne i32 %1359, 0
  br i1 %1360, label %1361, label %1378

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

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

1395:                                             ; preds = %1378, %1361
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

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

1398:                                             ; No predecessors!
  br label %1399

1399:                                             ; preds = %1398
  br label %1400

1400:                                             ; preds = %1399, %1339
  br label %1401

1401:                                             ; preds = %1400
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

1403:                                             ; preds = %1402
  br label %1404

1404:                                             ; preds = %1403
  br label %1405

1405:                                             ; preds = %1404
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = load ptr, ptr %30, align 8, !tbaa !9
  %1409 = call i32 @s2n_client_ccs_recv(ptr noundef %1408)
  %1410 = icmp eq i32 %1409, -1
  br i1 %1410, label %1464, label %1411

1411:                                             ; preds = %1405
  br label %1412

1412:                                             ; preds = %1411
  br label %1413

1413:                                             ; preds = %1412
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1414 = call ptr @__errno_location() #10
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  store i32 %1415, ptr %33, align 4, !tbaa !5
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = call i32 @s2n_print_stacktrace(ptr noundef %1416)
  %1418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1419 = trunc i8 %1418 to i1
  br i1 %1419, label %1420, label %1442

1420:                                             ; preds = %1413
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = call i32 @fileno(ptr noundef %1421) #9
  %1423 = call i32 @isatty(i32 noundef %1422) #9
  %1424 = icmp ne i32 %1423, 0
  br i1 %1424, label %1425, label %1442

1425:                                             ; preds = %1420
  %1426 = load i32, ptr %33, align 4, !tbaa !5
  %1427 = call ptr @__errno_location() #10
  store i32 %1426, ptr %1427, align 4, !tbaa !5
  %1428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1429 = load i32, ptr @test_count, align 4, !tbaa !5
  %1430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror(i32 noundef %1431, ptr noundef @.str.4)
  %1433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror_debug(i32 noundef %1434, ptr noundef @.str.4)
  %1436 = call ptr @__errno_location() #10
  %1437 = load i32, ptr %1436, align 4, !tbaa !5
  %1438 = call ptr @strerror(i32 noundef %1437) #9
  %1439 = call ptr @__errno_location() #10
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  %1441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1428, ptr noundef @.str.2, i32 noundef %1429, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1432, ptr noundef %1435, ptr noundef %1438, i32 noundef %1440) #9
  br label %1459

1442:                                             ; preds = %1420, %1413
  %1443 = load i32, ptr %33, align 4, !tbaa !5
  %1444 = call ptr @__errno_location() #10
  store i32 %1443, ptr %1444, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = load i32, ptr @test_count, align 4, !tbaa !5
  %1447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = call ptr @s2n_strerror(i32 noundef %1448, ptr noundef @.str.4)
  %1450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = call ptr @s2n_strerror_debug(i32 noundef %1451, ptr noundef @.str.4)
  %1453 = call ptr @__errno_location() #10
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @strerror(i32 noundef %1454) #9
  %1456 = call ptr @__errno_location() #10
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1445, ptr noundef @.str.5, i32 noundef %1446, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1449, ptr noundef %1452, ptr noundef %1455, i32 noundef %1457) #9
  br label %1459

1459:                                             ; preds = %1442, %1425
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1460

1460:                                             ; preds = %1459
  br label %1461

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

1462:                                             ; No predecessors!
  br label %1463

1463:                                             ; preds = %1462
  br label %1464

1464:                                             ; preds = %1463, %1405
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  br label %1467

1467:                                             ; preds = %1466
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = add nsw i32 %1468, 1
  store i32 %1469, ptr @test_count, align 4, !tbaa !5
  %1470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = icmp eq i32 %1471, 335544322
  br i1 %1472, label %1526, label %1473

1473:                                             ; preds = %1467
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

1475:                                             ; preds = %1474
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1476 = call ptr @__errno_location() #10
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  store i32 %1477, ptr %34, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @s2n_print_stacktrace(ptr noundef %1478)
  %1480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1481 = trunc i8 %1480 to i1
  br i1 %1481, label %1482, label %1504

1482:                                             ; preds = %1475
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = call i32 @fileno(ptr noundef %1483) #9
  %1485 = call i32 @isatty(i32 noundef %1484) #9
  %1486 = icmp ne i32 %1485, 0
  br i1 %1486, label %1487, label %1504

1487:                                             ; preds = %1482
  %1488 = load i32, ptr %34, align 4, !tbaa !5
  %1489 = call ptr @__errno_location() #10
  store i32 %1488, ptr %1489, align 4, !tbaa !5
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = load i32, ptr @test_count, align 4, !tbaa !5
  %1492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror(i32 noundef %1493, ptr noundef @.str.4)
  %1495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror_debug(i32 noundef %1496, ptr noundef @.str.4)
  %1498 = call ptr @__errno_location() #10
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call ptr @strerror(i32 noundef %1499) #9
  %1501 = call ptr @__errno_location() #10
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1490, ptr noundef @.str.2, i32 noundef %1491, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1494, ptr noundef %1497, ptr noundef %1500, i32 noundef %1502) #9
  br label %1521

1504:                                             ; preds = %1482, %1475
  %1505 = load i32, ptr %34, align 4, !tbaa !5
  %1506 = call ptr @__errno_location() #10
  store i32 %1505, ptr %1506, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror(i32 noundef %1510, ptr noundef @.str.4)
  %1512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror_debug(i32 noundef %1513, ptr noundef @.str.4)
  %1515 = call ptr @__errno_location() #10
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call ptr @strerror(i32 noundef %1516) #9
  %1518 = call ptr @__errno_location() #10
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1507, ptr noundef @.str.5, i32 noundef %1508, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1511, ptr noundef %1514, ptr noundef %1517, i32 noundef %1519) #9
  br label %1521

1521:                                             ; preds = %1504, %1487
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

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

1524:                                             ; No predecessors!
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525, %1467
  br label %1527

1527:                                             ; preds = %1526
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %1531 = add nsw i32 %1530, 1
  store i32 %1531, ptr @test_count, align 4, !tbaa !5
  %1532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = call ptr @s2n_strerror_debug(i32 noundef %1533, ptr noundef @.str.4)
  %1535 = icmp eq ptr %1534, null
  br i1 %1535, label %1536, label %1589

1536:                                             ; preds = %1529
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1539 = call ptr @__errno_location() #10
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  store i32 %1540, ptr %35, align 4, !tbaa !5
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = call i32 @s2n_print_stacktrace(ptr noundef %1541)
  %1543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1544 = trunc i8 %1543 to i1
  br i1 %1544, label %1545, label %1567

1545:                                             ; preds = %1538
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = call i32 @fileno(ptr noundef %1546) #9
  %1548 = call i32 @isatty(i32 noundef %1547) #9
  %1549 = icmp ne i32 %1548, 0
  br i1 %1549, label %1550, label %1567

1550:                                             ; preds = %1545
  %1551 = load i32, ptr %35, align 4, !tbaa !5
  %1552 = call ptr @__errno_location() #10
  store i32 %1551, ptr %1552, align 4, !tbaa !5
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror(i32 noundef %1556, ptr noundef @.str.4)
  %1558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror_debug(i32 noundef %1559, ptr noundef @.str.4)
  %1561 = call ptr @__errno_location() #10
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @strerror(i32 noundef %1562) #9
  %1564 = call ptr @__errno_location() #10
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1553, ptr noundef @.str.2, i32 noundef %1554, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1557, ptr noundef %1560, ptr noundef %1563, i32 noundef %1565) #9
  br label %1584

1567:                                             ; preds = %1545, %1538
  %1568 = load i32, ptr %35, align 4, !tbaa !5
  %1569 = call ptr @__errno_location() #10
  store i32 %1568, ptr %1569, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror(i32 noundef %1573, ptr noundef @.str.4)
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror_debug(i32 noundef %1576, ptr noundef @.str.4)
  %1578 = call ptr @__errno_location() #10
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @strerror(i32 noundef %1579) #9
  %1581 = call ptr @__errno_location() #10
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef @.str.5, i32 noundef %1571, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1574, ptr noundef %1577, ptr noundef %1580, i32 noundef %1582) #9
  br label %1584

1584:                                             ; preds = %1567, %1550
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1585

1585:                                             ; preds = %1584
  br label %1586

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

1587:                                             ; No predecessors!
  br label %1588

1588:                                             ; preds = %1587
  br label %1589

1589:                                             ; preds = %1588, %1529
  br label %1590

1590:                                             ; preds = %1589
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

1592:                                             ; preds = %1591
  br label %1593

1593:                                             ; preds = %1592
  br label %1594

1594:                                             ; preds = %1593
  %1595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1595, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1596 = call ptr @__errno_location() #10
  store i32 0, ptr %1596, align 4, !tbaa !5
  br label %1597

1597:                                             ; preds = %1594
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

1601:                                             ; preds = %1600
  %1602 = load i32, ptr @test_count, align 4, !tbaa !5
  %1603 = add nsw i32 %1602, 1
  store i32 %1603, ptr @test_count, align 4, !tbaa !5
  %1604 = load ptr, ptr %30, align 8, !tbaa !9
  %1605 = call i32 @s2n_connection_free(ptr noundef %1604)
  %1606 = icmp eq i32 %1605, -1
  br i1 %1606, label %1607, label %1660

1607:                                             ; preds = %1601
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

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

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

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

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

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

1656:                                             ; preds = %1655
  br label %1657

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

1658:                                             ; No predecessors!
  br label %1659

1659:                                             ; preds = %1658
  br label %1660

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

1661:                                             ; preds = %1660
  br label %1662

1662:                                             ; preds = %1661
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  store ptr null, ptr %37, align 8, !tbaa !9
  br label %1663

1663:                                             ; preds = %1662
  %1664 = load i32, ptr @test_count, align 4, !tbaa !5
  %1665 = add nsw i32 %1664, 1
  store i32 %1665, ptr @test_count, align 4, !tbaa !5
  %1666 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1666, ptr %37, align 8, !tbaa !9
  %1667 = icmp eq ptr %1666, null
  br i1 %1667, label %1668, label %1721

1668:                                             ; preds = %1663
  br label %1669

1669:                                             ; preds = %1668
  br label %1670

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

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

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

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

1716:                                             ; preds = %1699, %1682
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

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

1719:                                             ; No predecessors!
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

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

1722:                                             ; preds = %1721
  br label %1723

1723:                                             ; preds = %1722
  br label %1724

1724:                                             ; preds = %1723
  %1725 = load i32, ptr @test_count, align 4, !tbaa !5
  %1726 = add nsw i32 %1725, 1
  store i32 %1726, ptr @test_count, align 4, !tbaa !5
  %1727 = load ptr, ptr %37, align 8, !tbaa !9
  %1728 = getelementptr inbounds %struct.s2n_connection, ptr %1727, i32 0, i32 52
  %1729 = getelementptr inbounds %struct.s2n_handshake, ptr %1728, i32 0, i32 0
  %1730 = call i32 @s2n_stuffer_write_uint8(ptr noundef %1729, i8 noundef zeroext 0)
  %1731 = icmp eq i32 %1730, -1
  br i1 %1731, label %1732, label %1785

1732:                                             ; preds = %1724
  br label %1733

1733:                                             ; preds = %1732
  br label %1734

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

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

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

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

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

1781:                                             ; preds = %1780
  br label %1782

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

1783:                                             ; No predecessors!
  br label %1784

1784:                                             ; preds = %1783
  br label %1785

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

1786:                                             ; preds = %1785
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

1788:                                             ; preds = %1787
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

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

1796:                                             ; preds = %1790
  br label %1797

1797:                                             ; preds = %1796
  br label %1798

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

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

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

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

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

1845:                                             ; preds = %1844
  br label %1846

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

1847:                                             ; No predecessors!
  br label %1848

1848:                                             ; preds = %1847
  br label %1849

1849:                                             ; preds = %1848, %1790
  br label %1850

1850:                                             ; preds = %1849
  br label %1851

1851:                                             ; preds = %1850
  br label %1852

1852:                                             ; preds = %1851
  %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1856 = load i32, ptr %1855, align 4, !tbaa !5
  %1857 = icmp eq i32 %1856, 335544322
  br i1 %1857, label %1911, label %1858

1858:                                             ; preds = %1852
  br label %1859

1859:                                             ; preds = %1858
  br label %1860

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

1867:                                             ; preds = %1860
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = call i32 @fileno(ptr noundef %1868) #9
  %1870 = call i32 @isatty(i32 noundef %1869) #9
  %1871 = icmp ne i32 %1870, 0
  br i1 %1871, label %1872, label %1889

1872:                                             ; preds = %1867
  %1873 = load i32, ptr %41, align 4, !tbaa !5
  %1874 = call ptr @__errno_location() #10
  store i32 %1873, ptr %1874, align 4, !tbaa !5
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = load i32, ptr @test_count, align 4, !tbaa !5
  %1877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror(i32 noundef %1878, ptr noundef @.str.4)
  %1880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror_debug(i32 noundef %1881, ptr noundef @.str.4)
  %1883 = call ptr @__errno_location() #10
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  %1885 = call ptr @strerror(i32 noundef %1884) #9
  %1886 = call ptr @__errno_location() #10
  %1887 = load i32, ptr %1886, align 4, !tbaa !5
  %1888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1875, ptr noundef @.str.2, i32 noundef %1876, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1879, ptr noundef %1882, ptr noundef %1885, i32 noundef %1887) #9
  br label %1906

1889:                                             ; preds = %1867, %1860
  %1890 = load i32, ptr %41, align 4, !tbaa !5
  %1891 = call ptr @__errno_location() #10
  store i32 %1890, ptr %1891, align 4, !tbaa !5
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = load i32, ptr @test_count, align 4, !tbaa !5
  %1894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror(i32 noundef %1895, ptr noundef @.str.4)
  %1897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror_debug(i32 noundef %1898, ptr noundef @.str.4)
  %1900 = call ptr @__errno_location() #10
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call ptr @strerror(i32 noundef %1901) #9
  %1903 = call ptr @__errno_location() #10
  %1904 = load i32, ptr %1903, align 4, !tbaa !5
  %1905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1892, ptr noundef @.str.5, i32 noundef %1893, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1896, ptr noundef %1899, ptr noundef %1902, i32 noundef %1904) #9
  br label %1906

1906:                                             ; preds = %1889, %1872
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1907

1907:                                             ; preds = %1906
  br label %1908

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

1909:                                             ; No predecessors!
  br label %1910

1910:                                             ; preds = %1909
  br label %1911

1911:                                             ; preds = %1910, %1852
  br label %1912

1912:                                             ; preds = %1911
  br label %1913

1913:                                             ; preds = %1912
  br label %1914

1914:                                             ; preds = %1913
  %1915 = load i32, ptr @test_count, align 4, !tbaa !5
  %1916 = add nsw i32 %1915, 1
  store i32 %1916, ptr @test_count, align 4, !tbaa !5
  %1917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1918 = load i32, ptr %1917, align 4, !tbaa !5
  %1919 = call ptr @s2n_strerror_debug(i32 noundef %1918, ptr noundef @.str.4)
  %1920 = icmp eq ptr %1919, null
  br i1 %1920, label %1921, label %1974

1921:                                             ; preds = %1914
  br label %1922

1922:                                             ; preds = %1921
  br label %1923

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

1930:                                             ; preds = %1923
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = call i32 @fileno(ptr noundef %1931) #9
  %1933 = call i32 @isatty(i32 noundef %1932) #9
  %1934 = icmp ne i32 %1933, 0
  br i1 %1934, label %1935, label %1952

1935:                                             ; preds = %1930
  %1936 = load i32, ptr %42, align 4, !tbaa !5
  %1937 = call ptr @__errno_location() #10
  store i32 %1936, ptr %1937, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = load i32, ptr @test_count, align 4, !tbaa !5
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror(i32 noundef %1941, ptr noundef @.str.4)
  %1943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror_debug(i32 noundef %1944, ptr noundef @.str.4)
  %1946 = call ptr @__errno_location() #10
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @strerror(i32 noundef %1947) #9
  %1949 = call ptr @__errno_location() #10
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1938, ptr noundef @.str.2, i32 noundef %1939, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1942, ptr noundef %1945, ptr noundef %1948, i32 noundef %1950) #9
  br label %1969

1952:                                             ; preds = %1930, %1923
  %1953 = load i32, ptr %42, align 4, !tbaa !5
  %1954 = call ptr @__errno_location() #10
  store i32 %1953, ptr %1954, align 4, !tbaa !5
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = load i32, ptr @test_count, align 4, !tbaa !5
  %1957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror(i32 noundef %1958, ptr noundef @.str.4)
  %1960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call ptr @s2n_strerror_debug(i32 noundef %1961, ptr noundef @.str.4)
  %1963 = call ptr @__errno_location() #10
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  %1965 = call ptr @strerror(i32 noundef %1964) #9
  %1966 = call ptr @__errno_location() #10
  %1967 = load i32, ptr %1966, align 4, !tbaa !5
  %1968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1955, ptr noundef @.str.5, i32 noundef %1956, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1959, ptr noundef %1962, ptr noundef %1965, i32 noundef %1967) #9
  br label %1969

1969:                                             ; preds = %1952, %1935
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

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

1972:                                             ; No predecessors!
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

1974:                                             ; preds = %1973, %1914
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

1976:                                             ; preds = %1975
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978
  %1980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1980, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1981 = call ptr @__errno_location() #10
  store i32 0, ptr %1981, align 4, !tbaa !5
  br label %1982

1982:                                             ; preds = %1979
  br label %1983

1983:                                             ; preds = %1982
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984
  br label %1986

1986:                                             ; preds = %1985
  %1987 = load i32, ptr @test_count, align 4, !tbaa !5
  %1988 = add nsw i32 %1987, 1
  store i32 %1988, ptr @test_count, align 4, !tbaa !5
  %1989 = load ptr, ptr %37, align 8, !tbaa !9
  %1990 = call i32 @s2n_connection_free(ptr noundef %1989)
  %1991 = icmp eq i32 %1990, -1
  br i1 %1991, label %1992, label %2045

1992:                                             ; preds = %1986
  br label %1993

1993:                                             ; preds = %1992
  br label %1994

1994:                                             ; preds = %1993
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1995 = call ptr @__errno_location() #10
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  store i32 %1996, ptr %43, align 4, !tbaa !5
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = call i32 @s2n_print_stacktrace(ptr noundef %1997)
  %1999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2000 = trunc i8 %1999 to i1
  br i1 %2000, label %2001, label %2023

2001:                                             ; preds = %1994
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = call i32 @fileno(ptr noundef %2002) #9
  %2004 = call i32 @isatty(i32 noundef %2003) #9
  %2005 = icmp ne i32 %2004, 0
  br i1 %2005, label %2006, label %2023

2006:                                             ; preds = %2001
  %2007 = load i32, ptr %43, align 4, !tbaa !5
  %2008 = call ptr @__errno_location() #10
  store i32 %2007, ptr %2008, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call ptr @s2n_strerror(i32 noundef %2012, ptr noundef @.str.4)
  %2014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call ptr @s2n_strerror_debug(i32 noundef %2015, ptr noundef @.str.4)
  %2017 = call ptr @__errno_location() #10
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = call ptr @strerror(i32 noundef %2018) #9
  %2020 = call ptr @__errno_location() #10
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2009, ptr noundef @.str.2, i32 noundef %2010, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 85, ptr noundef %2013, ptr noundef %2016, ptr noundef %2019, i32 noundef %2021) #9
  br label %2040

2023:                                             ; preds = %2001, %1994
  %2024 = load i32, ptr %43, align 4, !tbaa !5
  %2025 = call ptr @__errno_location() #10
  store i32 %2024, ptr %2025, align 4, !tbaa !5
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = load i32, ptr @test_count, align 4, !tbaa !5
  %2028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror(i32 noundef %2029, ptr noundef @.str.4)
  %2031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror_debug(i32 noundef %2032, ptr noundef @.str.4)
  %2034 = call ptr @__errno_location() #10
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call ptr @strerror(i32 noundef %2035) #9
  %2037 = call ptr @__errno_location() #10
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2026, ptr noundef @.str.5, i32 noundef %2027, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 85, ptr noundef %2030, ptr noundef %2033, ptr noundef %2036, i32 noundef %2038) #9
  br label %2040

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

2041:                                             ; preds = %2040
  br label %2042

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

2043:                                             ; No predecessors!
  br label %2044

2044:                                             ; preds = %2043
  br label %2045

2045:                                             ; preds = %2044, %1986
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  store ptr null, ptr %44, align 8, !tbaa !9
  br label %2048

2048:                                             ; preds = %2047
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %2050 = add nsw i32 %2049, 1
  store i32 %2050, ptr @test_count, align 4, !tbaa !5
  %2051 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2051, ptr %44, align 8, !tbaa !9
  %2052 = icmp eq ptr %2051, null
  br i1 %2052, label %2053, label %2106

2053:                                             ; preds = %2048
  br label %2054

2054:                                             ; preds = %2053
  br label %2055

2055:                                             ; preds = %2054
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %2056 = call ptr @__errno_location() #10
  %2057 = load i32, ptr %2056, align 4, !tbaa !5
  store i32 %2057, ptr %45, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = call i32 @s2n_print_stacktrace(ptr noundef %2058)
  %2060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2061 = trunc i8 %2060 to i1
  br i1 %2061, label %2062, label %2084

2062:                                             ; preds = %2055
  %2063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2064 = call i32 @fileno(ptr noundef %2063) #9
  %2065 = call i32 @isatty(i32 noundef %2064) #9
  %2066 = icmp ne i32 %2065, 0
  br i1 %2066, label %2067, label %2084

2067:                                             ; preds = %2062
  %2068 = load i32, ptr %45, align 4, !tbaa !5
  %2069 = call ptr @__errno_location() #10
  store i32 %2068, ptr %2069, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror(i32 noundef %2073, ptr noundef @.str.4)
  %2075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror_debug(i32 noundef %2076, ptr noundef @.str.4)
  %2078 = call ptr @__errno_location() #10
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call ptr @strerror(i32 noundef %2079) #9
  %2081 = call ptr @__errno_location() #10
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2070, ptr noundef @.str.2, i32 noundef %2071, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 91, ptr noundef %2074, ptr noundef %2077, ptr noundef %2080, i32 noundef %2082) #9
  br label %2101

2084:                                             ; preds = %2062, %2055
  %2085 = load i32, ptr %45, align 4, !tbaa !5
  %2086 = call ptr @__errno_location() #10
  store i32 %2085, ptr %2086, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = load i32, ptr @test_count, align 4, !tbaa !5
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror(i32 noundef %2090, ptr noundef @.str.4)
  %2092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror_debug(i32 noundef %2093, ptr noundef @.str.4)
  %2095 = call ptr @__errno_location() #10
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call ptr @strerror(i32 noundef %2096) #9
  %2098 = call ptr @__errno_location() #10
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2087, ptr noundef @.str.5, i32 noundef %2088, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 91, ptr noundef %2091, ptr noundef %2094, ptr noundef %2097, i32 noundef %2099) #9
  br label %2101

2101:                                             ; preds = %2084, %2067
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

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

2104:                                             ; No predecessors!
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105, %2048
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107
  %2109 = load ptr, ptr %44, align 8, !tbaa !9
  %2110 = getelementptr inbounds %struct.s2n_connection, ptr %2109, i32 0, i32 27
  %2111 = load ptr, ptr %2110, align 8, !tbaa !16
  %2112 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2111, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_256_gcm_sha384, ptr %2112, align 8, !tbaa !43
  %2113 = load ptr, ptr %44, align 8, !tbaa !9
  %2114 = getelementptr inbounds %struct.s2n_connection, ptr %2113, i32 0, i32 27
  %2115 = load ptr, ptr %2114, align 8, !tbaa !16
  %2116 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2115, i32 0, i32 7
  %2117 = getelementptr inbounds [8 x i8], ptr %2116, i64 0, i64 0
  store i8 1, ptr %2117, align 8, !tbaa !15
  br label %2118

2118:                                             ; preds = %2108
  br label %2119

2119:                                             ; preds = %2118
  %2120 = load i32, ptr @test_count, align 4, !tbaa !5
  %2121 = add nsw i32 %2120, 1
  store i32 %2121, ptr @test_count, align 4, !tbaa !5
  %2122 = load ptr, ptr %44, align 8, !tbaa !9
  %2123 = getelementptr inbounds %struct.s2n_connection, ptr %2122, i32 0, i32 52
  %2124 = getelementptr inbounds %struct.s2n_handshake, ptr %2123, i32 0, i32 4
  %2125 = call i32 @memcmp(ptr noundef %2124, ptr noundef %10, i64 noundef 12) #12
  %2126 = icmp eq i32 %2125, 0
  br i1 %2126, label %2180, label %2127

2127:                                             ; preds = %2119
  br label %2128

2128:                                             ; preds = %2127
  br label %2129

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

2136:                                             ; preds = %2129
  %2137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2138 = call i32 @fileno(ptr noundef %2137) #9
  %2139 = call i32 @isatty(i32 noundef %2138) #9
  %2140 = icmp ne i32 %2139, 0
  br i1 %2140, label %2141, label %2158

2141:                                             ; preds = %2136
  %2142 = load i32, ptr %46, align 4, !tbaa !5
  %2143 = call ptr @__errno_location() #10
  store i32 %2142, ptr %2143, align 4, !tbaa !5
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = load i32, ptr @test_count, align 4, !tbaa !5
  %2146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror(i32 noundef %2147, ptr noundef @.str.4)
  %2149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror_debug(i32 noundef %2150, ptr noundef @.str.4)
  %2152 = call ptr @__errno_location() #10
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call ptr @strerror(i32 noundef %2153) #9
  %2155 = call ptr @__errno_location() #10
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2144, ptr noundef @.str.2, i32 noundef %2145, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2148, ptr noundef %2151, ptr noundef %2154, i32 noundef %2156) #9
  br label %2175

2158:                                             ; preds = %2136, %2129
  %2159 = load i32, ptr %46, align 4, !tbaa !5
  %2160 = call ptr @__errno_location() #10
  store i32 %2159, ptr %2160, align 4, !tbaa !5
  %2161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2162 = load i32, ptr @test_count, align 4, !tbaa !5
  %2163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call ptr @s2n_strerror(i32 noundef %2164, ptr noundef @.str.4)
  %2166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = call ptr @s2n_strerror_debug(i32 noundef %2167, ptr noundef @.str.4)
  %2169 = call ptr @__errno_location() #10
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  %2171 = call ptr @strerror(i32 noundef %2170) #9
  %2172 = call ptr @__errno_location() #10
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  %2174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2161, ptr noundef @.str.5, i32 noundef %2162, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2165, ptr noundef %2168, ptr noundef %2171, i32 noundef %2173) #9
  br label %2175

2175:                                             ; preds = %2158, %2141
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

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

2178:                                             ; No predecessors!
  br label %2179

2179:                                             ; preds = %2178
  br label %2180

2180:                                             ; preds = %2179, %2119
  br label %2181

2181:                                             ; preds = %2180
  br label %2182

2182:                                             ; preds = %2181
  br label %2183

2183:                                             ; preds = %2182
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  %2186 = load i32, ptr @test_count, align 4, !tbaa !5
  %2187 = add nsw i32 %2186, 1
  store i32 %2187, ptr @test_count, align 4, !tbaa !5
  %2188 = load ptr, ptr %44, align 8, !tbaa !9
  %2189 = getelementptr inbounds %struct.s2n_connection, ptr %2188, i32 0, i32 52
  %2190 = getelementptr inbounds %struct.s2n_handshake, ptr %2189, i32 0, i32 5
  %2191 = load i8, ptr %2190, align 8, !tbaa !48
  %2192 = zext i8 %2191 to i32
  %2193 = icmp eq i32 %2192, 0
  br i1 %2193, label %2247, label %2194

2194:                                             ; preds = %2185
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

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

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

2208:                                             ; preds = %2203
  %2209 = load i32, ptr %47, align 4, !tbaa !5
  %2210 = call ptr @__errno_location() #10
  store i32 %2209, ptr %2210, align 4, !tbaa !5
  %2211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2212 = load i32, ptr @test_count, align 4, !tbaa !5
  %2213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  %2215 = call ptr @s2n_strerror(i32 noundef %2214, ptr noundef @.str.4)
  %2216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2217 = load i32, ptr %2216, align 4, !tbaa !5
  %2218 = call ptr @s2n_strerror_debug(i32 noundef %2217, ptr noundef @.str.4)
  %2219 = call ptr @__errno_location() #10
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call ptr @strerror(i32 noundef %2220) #9
  %2222 = call ptr @__errno_location() #10
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2211, ptr noundef @.str.2, i32 noundef %2212, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2215, ptr noundef %2218, ptr noundef %2221, i32 noundef %2223) #9
  br label %2242

2225:                                             ; preds = %2203, %2196
  %2226 = load i32, ptr %47, align 4, !tbaa !5
  %2227 = call ptr @__errno_location() #10
  store i32 %2226, ptr %2227, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call ptr @s2n_strerror(i32 noundef %2231, ptr noundef @.str.4)
  %2233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call ptr @s2n_strerror_debug(i32 noundef %2234, ptr noundef @.str.4)
  %2236 = call ptr @__errno_location() #10
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @strerror(i32 noundef %2237) #9
  %2239 = call ptr @__errno_location() #10
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2228, ptr noundef @.str.5, i32 noundef %2229, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2232, ptr noundef %2235, ptr noundef %2238, i32 noundef %2240) #9
  br label %2242

2242:                                             ; preds = %2225, %2208
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %2243

2243:                                             ; preds = %2242
  br label %2244

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

2245:                                             ; No predecessors!
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

2247:                                             ; preds = %2246, %2185
  br label %2248

2248:                                             ; preds = %2247
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

2250:                                             ; preds = %2249
  %2251 = load i32, ptr @test_count, align 4, !tbaa !5
  %2252 = add nsw i32 %2251, 1
  store i32 %2252, ptr @test_count, align 4, !tbaa !5
  %2253 = load ptr, ptr %44, align 8, !tbaa !9
  %2254 = getelementptr inbounds %struct.s2n_connection, ptr %2253, i32 0, i32 29
  %2255 = load ptr, ptr %2254, align 8, !tbaa !49
  %2256 = load ptr, ptr %44, align 8, !tbaa !9
  %2257 = getelementptr inbounds %struct.s2n_connection, ptr %2256, i32 0, i32 27
  %2258 = load ptr, ptr %2257, align 8, !tbaa !16
  %2259 = icmp eq ptr %2255, %2258
  br i1 %2259, label %2260, label %2313

2260:                                             ; preds = %2250
  br label %2261

2261:                                             ; preds = %2260
  br label %2262

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

2269:                                             ; preds = %2262
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = call i32 @fileno(ptr noundef %2270) #9
  %2272 = call i32 @isatty(i32 noundef %2271) #9
  %2273 = icmp ne i32 %2272, 0
  br i1 %2273, label %2274, label %2291

2274:                                             ; preds = %2269
  %2275 = load i32, ptr %48, align 4, !tbaa !5
  %2276 = call ptr @__errno_location() #10
  store i32 %2275, ptr %2276, align 4, !tbaa !5
  %2277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2278 = load i32, ptr @test_count, align 4, !tbaa !5
  %2279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror(i32 noundef %2280, ptr noundef @.str.4)
  %2282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call ptr @s2n_strerror_debug(i32 noundef %2283, ptr noundef @.str.4)
  %2285 = call ptr @__errno_location() #10
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @strerror(i32 noundef %2286) #9
  %2288 = call ptr @__errno_location() #10
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2277, ptr noundef @.str.2, i32 noundef %2278, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2281, ptr noundef %2284, ptr noundef %2287, i32 noundef %2289) #9
  br label %2308

2291:                                             ; preds = %2269, %2262
  %2292 = load i32, ptr %48, align 4, !tbaa !5
  %2293 = call ptr @__errno_location() #10
  store i32 %2292, ptr %2293, align 4, !tbaa !5
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = load i32, ptr @test_count, align 4, !tbaa !5
  %2296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call ptr @s2n_strerror(i32 noundef %2297, ptr noundef @.str.4)
  %2299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror_debug(i32 noundef %2300, ptr noundef @.str.4)
  %2302 = call ptr @__errno_location() #10
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @strerror(i32 noundef %2303) #9
  %2305 = call ptr @__errno_location() #10
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2294, ptr noundef @.str.5, i32 noundef %2295, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2298, ptr noundef %2301, ptr noundef %2304, i32 noundef %2306) #9
  br label %2308

2308:                                             ; preds = %2291, %2274
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

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

2311:                                             ; No predecessors!
  br label %2312

2312:                                             ; preds = %2311
  br label %2313

2313:                                             ; preds = %2312, %2250
  br label %2314

2314:                                             ; preds = %2313
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = add nsw i32 %2317, 1
  store i32 %2318, ptr @test_count, align 4, !tbaa !5
  %2319 = load ptr, ptr %44, align 8, !tbaa !9
  %2320 = getelementptr inbounds %struct.s2n_connection, ptr %2319, i32 0, i32 45
  %2321 = call i32 @s2n_stuffer_write_uint8(ptr noundef %2320, i8 noundef zeroext 1)
  %2322 = icmp eq i32 %2321, -1
  br i1 %2322, label %2323, label %2376

2323:                                             ; preds = %2316
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

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

2332:                                             ; preds = %2325
  %2333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2334 = call i32 @fileno(ptr noundef %2333) #9
  %2335 = call i32 @isatty(i32 noundef %2334) #9
  %2336 = icmp ne i32 %2335, 0
  br i1 %2336, label %2337, label %2354

2337:                                             ; preds = %2332
  %2338 = load i32, ptr %49, align 4, !tbaa !5
  %2339 = call ptr @__errno_location() #10
  store i32 %2338, ptr %2339, align 4, !tbaa !5
  %2340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2341 = load i32, ptr @test_count, align 4, !tbaa !5
  %2342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @s2n_strerror(i32 noundef %2343, ptr noundef @.str.4)
  %2345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call ptr @s2n_strerror_debug(i32 noundef %2346, ptr noundef @.str.4)
  %2348 = call ptr @__errno_location() #10
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @strerror(i32 noundef %2349) #9
  %2351 = call ptr @__errno_location() #10
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2340, ptr noundef @.str.2, i32 noundef %2341, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2344, ptr noundef %2347, ptr noundef %2350, i32 noundef %2352) #9
  br label %2371

2354:                                             ; preds = %2332, %2325
  %2355 = load i32, ptr %49, align 4, !tbaa !5
  %2356 = call ptr @__errno_location() #10
  store i32 %2355, ptr %2356, align 4, !tbaa !5
  %2357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2358 = load i32, ptr @test_count, align 4, !tbaa !5
  %2359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @s2n_strerror(i32 noundef %2360, ptr noundef @.str.4)
  %2362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call ptr @s2n_strerror_debug(i32 noundef %2363, ptr noundef @.str.4)
  %2365 = call ptr @__errno_location() #10
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @strerror(i32 noundef %2366) #9
  %2368 = call ptr @__errno_location() #10
  %2369 = load i32, ptr %2368, align 4, !tbaa !5
  %2370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2357, ptr noundef @.str.5, i32 noundef %2358, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2361, ptr noundef %2364, ptr noundef %2367, i32 noundef %2369) #9
  br label %2371

2371:                                             ; preds = %2354, %2337
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %2372

2372:                                             ; preds = %2371
  br label %2373

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

2374:                                             ; No predecessors!
  br label %2375

2375:                                             ; preds = %2374
  br label %2376

2376:                                             ; preds = %2375, %2316
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377
  br label %2379

2379:                                             ; preds = %2378
  %2380 = load i32, ptr @test_count, align 4, !tbaa !5
  %2381 = add nsw i32 %2380, 1
  store i32 %2381, ptr @test_count, align 4, !tbaa !5
  %2382 = load ptr, ptr %44, align 8, !tbaa !9
  %2383 = call i32 @s2n_ccs_send(ptr noundef %2382)
  %2384 = icmp eq i32 %2383, -1
  br i1 %2384, label %2385, label %2438

2385:                                             ; preds = %2379
  br label %2386

2386:                                             ; preds = %2385
  br label %2387

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

2394:                                             ; preds = %2387
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = call i32 @fileno(ptr noundef %2395) #9
  %2397 = call i32 @isatty(i32 noundef %2396) #9
  %2398 = icmp ne i32 %2397, 0
  br i1 %2398, label %2399, label %2416

2399:                                             ; preds = %2394
  %2400 = load i32, ptr %50, align 4, !tbaa !5
  %2401 = call ptr @__errno_location() #10
  store i32 %2400, ptr %2401, align 4, !tbaa !5
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = load i32, ptr @test_count, align 4, !tbaa !5
  %2404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call ptr @s2n_strerror(i32 noundef %2405, ptr noundef @.str.4)
  %2407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2408 = load i32, ptr %2407, align 4, !tbaa !5
  %2409 = call ptr @s2n_strerror_debug(i32 noundef %2408, ptr noundef @.str.4)
  %2410 = call ptr @__errno_location() #10
  %2411 = load i32, ptr %2410, align 4, !tbaa !5
  %2412 = call ptr @strerror(i32 noundef %2411) #9
  %2413 = call ptr @__errno_location() #10
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2402, ptr noundef @.str.2, i32 noundef %2403, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2406, ptr noundef %2409, ptr noundef %2412, i32 noundef %2414) #9
  br label %2433

2416:                                             ; preds = %2394, %2387
  %2417 = load i32, ptr %50, align 4, !tbaa !5
  %2418 = call ptr @__errno_location() #10
  store i32 %2417, ptr %2418, align 4, !tbaa !5
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = load i32, ptr @test_count, align 4, !tbaa !5
  %2421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @s2n_strerror(i32 noundef %2422, ptr noundef @.str.4)
  %2424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call ptr @s2n_strerror_debug(i32 noundef %2425, ptr noundef @.str.4)
  %2427 = call ptr @__errno_location() #10
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  %2429 = call ptr @strerror(i32 noundef %2428) #9
  %2430 = call ptr @__errno_location() #10
  %2431 = load i32, ptr %2430, align 4, !tbaa !5
  %2432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2419, ptr noundef @.str.5, i32 noundef %2420, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2423, ptr noundef %2426, ptr noundef %2429, i32 noundef %2431) #9
  br label %2433

2433:                                             ; preds = %2416, %2399
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

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

2436:                                             ; No predecessors!
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

2438:                                             ; preds = %2437, %2379
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

2440:                                             ; preds = %2439
  br label %2441

2441:                                             ; preds = %2440
  %2442 = load i32, ptr @test_count, align 4, !tbaa !5
  %2443 = add nsw i32 %2442, 1
  store i32 %2443, ptr @test_count, align 4, !tbaa !5
  %2444 = load ptr, ptr %44, align 8, !tbaa !9
  %2445 = call i32 @s2n_client_ccs_recv(ptr noundef %2444)
  %2446 = icmp eq i32 %2445, -1
  br i1 %2446, label %2447, label %2500

2447:                                             ; preds = %2441
  br label %2448

2448:                                             ; preds = %2447
  br label %2449

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

2456:                                             ; preds = %2449
  %2457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2458 = call i32 @fileno(ptr noundef %2457) #9
  %2459 = call i32 @isatty(i32 noundef %2458) #9
  %2460 = icmp ne i32 %2459, 0
  br i1 %2460, label %2461, label %2478

2461:                                             ; preds = %2456
  %2462 = load i32, ptr %51, align 4, !tbaa !5
  %2463 = call ptr @__errno_location() #10
  store i32 %2462, ptr %2463, align 4, !tbaa !5
  %2464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2465 = load i32, ptr @test_count, align 4, !tbaa !5
  %2466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror(i32 noundef %2467, ptr noundef @.str.4)
  %2469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @s2n_strerror_debug(i32 noundef %2470, ptr noundef @.str.4)
  %2472 = call ptr @__errno_location() #10
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call ptr @strerror(i32 noundef %2473) #9
  %2475 = call ptr @__errno_location() #10
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2464, ptr noundef @.str.2, i32 noundef %2465, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2468, ptr noundef %2471, ptr noundef %2474, i32 noundef %2476) #9
  br label %2495

2478:                                             ; preds = %2456, %2449
  %2479 = load i32, ptr %51, align 4, !tbaa !5
  %2480 = call ptr @__errno_location() #10
  store i32 %2479, ptr %2480, align 4, !tbaa !5
  %2481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2482 = load i32, ptr @test_count, align 4, !tbaa !5
  %2483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror(i32 noundef %2484, ptr noundef @.str.4)
  %2486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = call ptr @s2n_strerror_debug(i32 noundef %2487, ptr noundef @.str.4)
  %2489 = call ptr @__errno_location() #10
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call ptr @strerror(i32 noundef %2490) #9
  %2492 = call ptr @__errno_location() #10
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2481, ptr noundef @.str.5, i32 noundef %2482, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2485, ptr noundef %2488, ptr noundef %2491, i32 noundef %2493) #9
  br label %2495

2495:                                             ; preds = %2478, %2461
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2496

2496:                                             ; preds = %2495
  br label %2497

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

2498:                                             ; No predecessors!
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499, %2441
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

2502:                                             ; preds = %2501
  br label %2503

2503:                                             ; preds = %2502
  %2504 = load i32, ptr @test_count, align 4, !tbaa !5
  %2505 = add nsw i32 %2504, 1
  store i32 %2505, ptr @test_count, align 4, !tbaa !5
  %2506 = load ptr, ptr %44, align 8, !tbaa !9
  %2507 = getelementptr inbounds %struct.s2n_connection, ptr %2506, i32 0, i32 27
  %2508 = load ptr, ptr %2507, align 8, !tbaa !16
  %2509 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2508, i32 0, i32 7
  %2510 = getelementptr inbounds [8 x i8], ptr %2509, i64 0, i64 0
  %2511 = load i8, ptr %2510, align 8, !tbaa !15
  %2512 = zext i8 %2511 to i32
  %2513 = icmp eq i32 %2512, 0
  br i1 %2513, label %2567, label %2514

2514:                                             ; preds = %2503
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

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

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

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

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

2562:                                             ; preds = %2545, %2528
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2563

2563:                                             ; preds = %2562
  br label %2564

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

2565:                                             ; No predecessors!
  br label %2566

2566:                                             ; preds = %2565
  br label %2567

2567:                                             ; preds = %2566, %2503
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568
  br label %2570

2570:                                             ; preds = %2569
  %2571 = load i32, ptr @test_count, align 4, !tbaa !5
  %2572 = add nsw i32 %2571, 1
  store i32 %2572, ptr @test_count, align 4, !tbaa !5
  %2573 = load ptr, ptr %44, align 8, !tbaa !9
  %2574 = getelementptr inbounds %struct.s2n_connection, ptr %2573, i32 0, i32 29
  %2575 = load ptr, ptr %2574, align 8, !tbaa !49
  %2576 = load ptr, ptr %44, align 8, !tbaa !9
  %2577 = getelementptr inbounds %struct.s2n_connection, ptr %2576, i32 0, i32 27
  %2578 = load ptr, ptr %2577, align 8, !tbaa !16
  %2579 = icmp eq ptr %2575, %2578
  br i1 %2579, label %2633, label %2580

2580:                                             ; preds = %2570
  br label %2581

2581:                                             ; preds = %2580
  br label %2582

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

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

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

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

2628:                                             ; preds = %2611, %2594
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2629

2629:                                             ; preds = %2628
  br label %2630

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

2631:                                             ; No predecessors!
  br label %2632

2632:                                             ; preds = %2631
  br label %2633

2633:                                             ; preds = %2632, %2570
  br label %2634

2634:                                             ; preds = %2633
  br label %2635

2635:                                             ; preds = %2634
  br label %2636

2636:                                             ; preds = %2635
  %2637 = load i32, ptr @test_count, align 4, !tbaa !5
  %2638 = add nsw i32 %2637, 1
  store i32 %2638, ptr @test_count, align 4, !tbaa !5
  %2639 = load ptr, ptr %44, align 8, !tbaa !9
  %2640 = getelementptr inbounds %struct.s2n_connection, ptr %2639, i32 0, i32 45
  %2641 = getelementptr inbounds %struct.s2n_stuffer, ptr %2640, i32 0, i32 2
  %2642 = load i32, ptr %2641, align 4, !tbaa !50
  %2643 = load ptr, ptr %44, align 8, !tbaa !9
  %2644 = getelementptr inbounds %struct.s2n_connection, ptr %2643, i32 0, i32 45
  %2645 = getelementptr inbounds %struct.s2n_stuffer, ptr %2644, i32 0, i32 1
  %2646 = load i32, ptr %2645, align 8, !tbaa !51
  %2647 = sub i32 %2642, %2646
  %2648 = icmp ne i32 %2647, 0
  br i1 %2648, label %2649, label %2702

2649:                                             ; preds = %2636
  br label %2650

2650:                                             ; preds = %2649
  br label %2651

2651:                                             ; preds = %2650
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2652 = call ptr @__errno_location() #10
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  store i32 %2653, ptr %54, align 4, !tbaa !5
  %2654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2655 = call i32 @s2n_print_stacktrace(ptr noundef %2654)
  %2656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2657 = trunc i8 %2656 to i1
  br i1 %2657, label %2658, label %2680

2658:                                             ; preds = %2651
  %2659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2660 = call i32 @fileno(ptr noundef %2659) #9
  %2661 = call i32 @isatty(i32 noundef %2660) #9
  %2662 = icmp ne i32 %2661, 0
  br i1 %2662, label %2663, label %2680

2663:                                             ; preds = %2658
  %2664 = load i32, ptr %54, align 4, !tbaa !5
  %2665 = call ptr @__errno_location() #10
  store i32 %2664, ptr %2665, align 4, !tbaa !5
  %2666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2667 = load i32, ptr @test_count, align 4, !tbaa !5
  %2668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call ptr @s2n_strerror(i32 noundef %2669, ptr noundef @.str.4)
  %2671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  %2673 = call ptr @s2n_strerror_debug(i32 noundef %2672, ptr noundef @.str.4)
  %2674 = call ptr @__errno_location() #10
  %2675 = load i32, ptr %2674, align 4, !tbaa !5
  %2676 = call ptr @strerror(i32 noundef %2675) #9
  %2677 = call ptr @__errno_location() #10
  %2678 = load i32, ptr %2677, align 4, !tbaa !5
  %2679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2666, ptr noundef @.str.2, i32 noundef %2667, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2670, ptr noundef %2673, ptr noundef %2676, i32 noundef %2678) #9
  br label %2697

2680:                                             ; preds = %2658, %2651
  %2681 = load i32, ptr %54, align 4, !tbaa !5
  %2682 = call ptr @__errno_location() #10
  store i32 %2681, ptr %2682, align 4, !tbaa !5
  %2683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2684 = load i32, ptr @test_count, align 4, !tbaa !5
  %2685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror(i32 noundef %2686, ptr noundef @.str.4)
  %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_debug(i32 noundef %2689, ptr noundef @.str.4)
  %2691 = call ptr @__errno_location() #10
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call ptr @strerror(i32 noundef %2692) #9
  %2694 = call ptr @__errno_location() #10
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2683, ptr noundef @.str.5, i32 noundef %2684, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2687, ptr noundef %2690, ptr noundef %2693, i32 noundef %2695) #9
  br label %2697

2697:                                             ; preds = %2680, %2663
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

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

2700:                                             ; No predecessors!
  br label %2701

2701:                                             ; preds = %2700
  br label %2702

2702:                                             ; preds = %2701, %2636
  br label %2703

2703:                                             ; preds = %2702
  br label %2704

2704:                                             ; preds = %2703
  br label %2705

2705:                                             ; preds = %2704
  %2706 = load i32, ptr @test_count, align 4, !tbaa !5
  %2707 = add nsw i32 %2706, 1
  store i32 %2707, ptr @test_count, align 4, !tbaa !5
  %2708 = load ptr, ptr %44, align 8, !tbaa !9
  %2709 = call i32 @s2n_connection_free(ptr noundef %2708)
  %2710 = icmp eq i32 %2709, -1
  br i1 %2710, label %2711, label %2764

2711:                                             ; preds = %2705
  br label %2712

2712:                                             ; preds = %2711
  br label %2713

2713:                                             ; preds = %2712
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %2714 = call ptr @__errno_location() #10
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  store i32 %2715, ptr %55, align 4, !tbaa !5
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = call i32 @s2n_print_stacktrace(ptr noundef %2716)
  %2718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2719 = trunc i8 %2718 to i1
  br i1 %2719, label %2720, label %2742

2720:                                             ; preds = %2713
  %2721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2722 = call i32 @fileno(ptr noundef %2721) #9
  %2723 = call i32 @isatty(i32 noundef %2722) #9
  %2724 = icmp ne i32 %2723, 0
  br i1 %2724, label %2725, label %2742

2725:                                             ; preds = %2720
  %2726 = load i32, ptr %55, align 4, !tbaa !5
  %2727 = call ptr @__errno_location() #10
  store i32 %2726, ptr %2727, align 4, !tbaa !5
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror(i32 noundef %2731, ptr noundef @.str.4)
  %2733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror_debug(i32 noundef %2734, ptr noundef @.str.4)
  %2736 = call ptr @__errno_location() #10
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call ptr @strerror(i32 noundef %2737) #9
  %2739 = call ptr @__errno_location() #10
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2728, ptr noundef @.str.2, i32 noundef %2729, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2732, ptr noundef %2735, ptr noundef %2738, i32 noundef %2740) #9
  br label %2759

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

2759:                                             ; preds = %2742, %2725
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2760

2760:                                             ; preds = %2759
  br label %2761

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

2762:                                             ; No predecessors!
  br label %2763

2763:                                             ; preds = %2762
  br label %2764

2764:                                             ; preds = %2763, %2705
  br label %2765

2765:                                             ; preds = %2764
  br label %2766

2766:                                             ; preds = %2765
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %2767 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2767, ptr %56, align 8, !tbaa !9
  br label %2768

2768:                                             ; preds = %2766
  %2769 = load i32, ptr @test_count, align 4, !tbaa !5
  %2770 = add nsw i32 %2769, 1
  store i32 %2770, ptr @test_count, align 4, !tbaa !5
  %2771 = load ptr, ptr %56, align 8, !tbaa !9
  %2772 = icmp eq ptr %2771, null
  br i1 %2772, label %2773, label %2826

2773:                                             ; preds = %2768
  br label %2774

2774:                                             ; preds = %2773
  br label %2775

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

2782:                                             ; preds = %2775
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = call i32 @fileno(ptr noundef %2783) #9
  %2785 = call i32 @isatty(i32 noundef %2784) #9
  %2786 = icmp ne i32 %2785, 0
  br i1 %2786, label %2787, label %2804

2787:                                             ; preds = %2782
  %2788 = load i32, ptr %57, align 4, !tbaa !5
  %2789 = call ptr @__errno_location() #10
  store i32 %2788, ptr %2789, align 4, !tbaa !5
  %2790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2791 = load i32, ptr @test_count, align 4, !tbaa !5
  %2792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror(i32 noundef %2793, ptr noundef @.str.4)
  %2795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @s2n_strerror_debug(i32 noundef %2796, ptr noundef @.str.4)
  %2798 = call ptr @__errno_location() #10
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call ptr @strerror(i32 noundef %2799) #9
  %2801 = call ptr @__errno_location() #10
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2790, ptr noundef @.str.2, i32 noundef %2791, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2794, ptr noundef %2797, ptr noundef %2800, i32 noundef %2802) #9
  br label %2821

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

2821:                                             ; preds = %2804, %2787
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

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

2824:                                             ; No predecessors!
  br label %2825

2825:                                             ; preds = %2824
  br label %2826

2826:                                             ; preds = %2825, %2768
  br label %2827

2827:                                             ; preds = %2826
  br label %2828

2828:                                             ; preds = %2827
  %2829 = load ptr, ptr %56, align 8, !tbaa !9
  %2830 = getelementptr inbounds %struct.s2n_connection, ptr %2829, i32 0, i32 27
  %2831 = load ptr, ptr %2830, align 8, !tbaa !16
  %2832 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2831, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %2832, align 8, !tbaa !43
  %2833 = load ptr, ptr %56, align 8, !tbaa !9
  %2834 = getelementptr inbounds %struct.s2n_connection, ptr %2833, i32 0, i32 23
  store i8 30, ptr %2834, align 4, !tbaa !52
  %2835 = load ptr, ptr %56, align 8, !tbaa !9
  %2836 = getelementptr inbounds %struct.s2n_connection, ptr %2835, i32 0, i32 27
  %2837 = load ptr, ptr %2836, align 8, !tbaa !16
  %2838 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2837, i32 0, i32 7
  %2839 = getelementptr inbounds [8 x i8], ptr %2838, i64 0, i64 0
  store i8 1, ptr %2839, align 8, !tbaa !15
  br label %2840

2840:                                             ; preds = %2828
  br label %2841

2841:                                             ; preds = %2840
  %2842 = load i32, ptr @test_count, align 4, !tbaa !5
  %2843 = add nsw i32 %2842, 1
  store i32 %2843, ptr @test_count, align 4, !tbaa !5
  %2844 = load ptr, ptr %56, align 8, !tbaa !9
  %2845 = getelementptr inbounds %struct.s2n_connection, ptr %2844, i32 0, i32 52
  %2846 = getelementptr inbounds %struct.s2n_handshake, ptr %2845, i32 0, i32 4
  %2847 = call i32 @memcmp(ptr noundef %2846, ptr noundef %10, i64 noundef 12) #12
  %2848 = icmp eq i32 %2847, 0
  br i1 %2848, label %2902, label %2849

2849:                                             ; preds = %2841
  br label %2850

2850:                                             ; preds = %2849
  br label %2851

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

2858:                                             ; preds = %2851
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = call i32 @fileno(ptr noundef %2859) #9
  %2861 = call i32 @isatty(i32 noundef %2860) #9
  %2862 = icmp ne i32 %2861, 0
  br i1 %2862, label %2863, label %2880

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

2880:                                             ; preds = %2858, %2851
  %2881 = load i32, ptr %58, align 4, !tbaa !5
  %2882 = call ptr @__errno_location() #10
  store i32 %2881, ptr %2882, align 4, !tbaa !5
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = load i32, ptr @test_count, align 4, !tbaa !5
  %2885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call ptr @s2n_strerror(i32 noundef %2886, ptr noundef @.str.4)
  %2888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call ptr @s2n_strerror_debug(i32 noundef %2889, ptr noundef @.str.4)
  %2891 = call ptr @__errno_location() #10
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call ptr @strerror(i32 noundef %2892) #9
  %2894 = call ptr @__errno_location() #10
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2883, ptr noundef @.str.5, i32 noundef %2884, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2887, ptr noundef %2890, ptr noundef %2893, i32 noundef %2895) #9
  br label %2897

2897:                                             ; preds = %2880, %2863
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2898

2898:                                             ; preds = %2897
  br label %2899

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

2900:                                             ; No predecessors!
  br label %2901

2901:                                             ; preds = %2900
  br label %2902

2902:                                             ; preds = %2901, %2841
  br label %2903

2903:                                             ; preds = %2902
  br label %2904

2904:                                             ; preds = %2903
  br label %2905

2905:                                             ; preds = %2904
  br label %2906

2906:                                             ; preds = %2905
  br label %2907

2907:                                             ; preds = %2906
  %2908 = load i32, ptr @test_count, align 4, !tbaa !5
  %2909 = add nsw i32 %2908, 1
  store i32 %2909, ptr @test_count, align 4, !tbaa !5
  %2910 = load ptr, ptr %56, align 8, !tbaa !9
  %2911 = getelementptr inbounds %struct.s2n_connection, ptr %2910, i32 0, i32 52
  %2912 = getelementptr inbounds %struct.s2n_handshake, ptr %2911, i32 0, i32 5
  %2913 = load i8, ptr %2912, align 8, !tbaa !48
  %2914 = zext i8 %2913 to i32
  %2915 = icmp eq i32 %2914, 0
  br i1 %2915, label %2969, label %2916

2916:                                             ; preds = %2907
  br label %2917

2917:                                             ; preds = %2916
  br label %2918

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

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

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

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

2964:                                             ; preds = %2947, %2930
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2965

2965:                                             ; preds = %2964
  br label %2966

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

2967:                                             ; No predecessors!
  br label %2968

2968:                                             ; preds = %2967
  br label %2969

2969:                                             ; preds = %2968, %2907
  br label %2970

2970:                                             ; preds = %2969
  br label %2971

2971:                                             ; preds = %2970
  br label %2972

2972:                                             ; preds = %2971
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = add nsw i32 %2973, 1
  store i32 %2974, ptr @test_count, align 4, !tbaa !5
  %2975 = load ptr, ptr %56, align 8, !tbaa !9
  %2976 = getelementptr inbounds %struct.s2n_connection, ptr %2975, i32 0, i32 29
  %2977 = load ptr, ptr %2976, align 8, !tbaa !49
  %2978 = load ptr, ptr %56, align 8, !tbaa !9
  %2979 = getelementptr inbounds %struct.s2n_connection, ptr %2978, i32 0, i32 27
  %2980 = load ptr, ptr %2979, align 8, !tbaa !16
  %2981 = icmp eq ptr %2977, %2980
  br i1 %2981, label %2982, label %3035

2982:                                             ; preds = %2972
  br label %2983

2983:                                             ; preds = %2982
  br label %2984

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

2991:                                             ; preds = %2984
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = call i32 @fileno(ptr noundef %2992) #9
  %2994 = call i32 @isatty(i32 noundef %2993) #9
  %2995 = icmp ne i32 %2994, 0
  br i1 %2995, label %2996, label %3013

2996:                                             ; preds = %2991
  %2997 = load i32, ptr %60, align 4, !tbaa !5
  %2998 = call ptr @__errno_location() #10
  store i32 %2997, ptr %2998, align 4, !tbaa !5
  %2999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3000 = load i32, ptr @test_count, align 4, !tbaa !5
  %3001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3002 = load i32, ptr %3001, align 4, !tbaa !5
  %3003 = call ptr @s2n_strerror(i32 noundef %3002, ptr noundef @.str.4)
  %3004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3005 = load i32, ptr %3004, align 4, !tbaa !5
  %3006 = call ptr @s2n_strerror_debug(i32 noundef %3005, ptr noundef @.str.4)
  %3007 = call ptr @__errno_location() #10
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  %3009 = call ptr @strerror(i32 noundef %3008) #9
  %3010 = call ptr @__errno_location() #10
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  %3012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2999, ptr noundef @.str.2, i32 noundef %3000, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 125, ptr noundef %3003, ptr noundef %3006, ptr noundef %3009, i32 noundef %3011) #9
  br label %3030

3013:                                             ; preds = %2991, %2984
  %3014 = load i32, ptr %60, align 4, !tbaa !5
  %3015 = call ptr @__errno_location() #10
  store i32 %3014, ptr %3015, align 4, !tbaa !5
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = load i32, ptr @test_count, align 4, !tbaa !5
  %3018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  %3020 = call ptr @s2n_strerror(i32 noundef %3019, ptr noundef @.str.4)
  %3021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror_debug(i32 noundef %3022, ptr noundef @.str.4)
  %3024 = call ptr @__errno_location() #10
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = call ptr @strerror(i32 noundef %3025) #9
  %3027 = call ptr @__errno_location() #10
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3016, ptr noundef @.str.5, i32 noundef %3017, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 125, ptr noundef %3020, ptr noundef %3023, ptr noundef %3026, i32 noundef %3028) #9
  br label %3030

3030:                                             ; preds = %3013, %2996
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %3031

3031:                                             ; preds = %3030
  br label %3032

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

3033:                                             ; No predecessors!
  br label %3034

3034:                                             ; preds = %3033
  br label %3035

3035:                                             ; preds = %3034, %2972
  br label %3036

3036:                                             ; preds = %3035
  br label %3037

3037:                                             ; preds = %3036
  br label %3038

3038:                                             ; preds = %3037
  %3039 = load i32, ptr @test_count, align 4, !tbaa !5
  %3040 = add nsw i32 %3039, 1
  store i32 %3040, ptr @test_count, align 4, !tbaa !5
  %3041 = load ptr, ptr %56, align 8, !tbaa !9
  %3042 = getelementptr inbounds %struct.s2n_connection, ptr %3041, i32 0, i32 45
  %3043 = call i32 @s2n_stuffer_write_uint8(ptr noundef %3042, i8 noundef zeroext 1)
  %3044 = icmp eq i32 %3043, -1
  br i1 %3044, label %3045, label %3098

3045:                                             ; preds = %3038
  br label %3046

3046:                                             ; preds = %3045
  br label %3047

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

3054:                                             ; preds = %3047
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = call i32 @fileno(ptr noundef %3055) #9
  %3057 = call i32 @isatty(i32 noundef %3056) #9
  %3058 = icmp ne i32 %3057, 0
  br i1 %3058, label %3059, label %3076

3059:                                             ; preds = %3054
  %3060 = load i32, ptr %61, align 4, !tbaa !5
  %3061 = call ptr @__errno_location() #10
  store i32 %3060, ptr %3061, align 4, !tbaa !5
  %3062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3063 = load i32, ptr @test_count, align 4, !tbaa !5
  %3064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  %3066 = call ptr @s2n_strerror(i32 noundef %3065, ptr noundef @.str.4)
  %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_debug(i32 noundef %3068, ptr noundef @.str.4)
  %3070 = call ptr @__errno_location() #10
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @strerror(i32 noundef %3071) #9
  %3073 = call ptr @__errno_location() #10
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3062, ptr noundef @.str.2, i32 noundef %3063, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 126, ptr noundef %3066, ptr noundef %3069, ptr noundef %3072, i32 noundef %3074) #9
  br label %3093

3076:                                             ; preds = %3054, %3047
  %3077 = load i32, ptr %61, align 4, !tbaa !5
  %3078 = call ptr @__errno_location() #10
  store i32 %3077, ptr %3078, align 4, !tbaa !5
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = load i32, ptr @test_count, align 4, !tbaa !5
  %3081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  %3083 = call ptr @s2n_strerror(i32 noundef %3082, ptr noundef @.str.4)
  %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_debug(i32 noundef %3085, ptr noundef @.str.4)
  %3087 = call ptr @__errno_location() #10
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @strerror(i32 noundef %3088) #9
  %3090 = call ptr @__errno_location() #10
  %3091 = load i32, ptr %3090, align 4, !tbaa !5
  %3092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3079, ptr noundef @.str.5, i32 noundef %3080, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 126, ptr noundef %3083, ptr noundef %3086, ptr noundef %3089, i32 noundef %3091) #9
  br label %3093

3093:                                             ; preds = %3076, %3059
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %3094

3094:                                             ; preds = %3093
  br label %3095

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

3096:                                             ; No predecessors!
  br label %3097

3097:                                             ; preds = %3096
  br label %3098

3098:                                             ; preds = %3097, %3038
  br label %3099

3099:                                             ; preds = %3098
  br label %3100

3100:                                             ; preds = %3099
  br label %3101

3101:                                             ; preds = %3100
  %3102 = load i32, ptr @test_count, align 4, !tbaa !5
  %3103 = add nsw i32 %3102, 1
  store i32 %3103, ptr @test_count, align 4, !tbaa !5
  %3104 = load ptr, ptr %56, align 8, !tbaa !9
  %3105 = call i32 @s2n_ccs_send(ptr noundef %3104)
  %3106 = icmp eq i32 %3105, -1
  br i1 %3106, label %3107, label %3160

3107:                                             ; preds = %3101
  br label %3108

3108:                                             ; preds = %3107
  br label %3109

3109:                                             ; preds = %3108
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %3110 = call ptr @__errno_location() #10
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  store i32 %3111, ptr %62, align 4, !tbaa !5
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = call i32 @s2n_print_stacktrace(ptr noundef %3112)
  %3114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3115 = trunc i8 %3114 to i1
  br i1 %3115, label %3116, label %3138

3116:                                             ; preds = %3109
  %3117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3118 = call i32 @fileno(ptr noundef %3117) #9
  %3119 = call i32 @isatty(i32 noundef %3118) #9
  %3120 = icmp ne i32 %3119, 0
  br i1 %3120, label %3121, label %3138

3121:                                             ; preds = %3116
  %3122 = load i32, ptr %62, align 4, !tbaa !5
  %3123 = call ptr @__errno_location() #10
  store i32 %3122, ptr %3123, align 4, !tbaa !5
  %3124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3125 = load i32, ptr @test_count, align 4, !tbaa !5
  %3126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror(i32 noundef %3127, ptr noundef @.str.4)
  %3129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call ptr @s2n_strerror_debug(i32 noundef %3130, ptr noundef @.str.4)
  %3132 = call ptr @__errno_location() #10
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @strerror(i32 noundef %3133) #9
  %3135 = call ptr @__errno_location() #10
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3124, ptr noundef @.str.2, i32 noundef %3125, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 128, ptr noundef %3128, ptr noundef %3131, ptr noundef %3134, i32 noundef %3136) #9
  br label %3155

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

3155:                                             ; preds = %3138, %3121
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

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

3158:                                             ; No predecessors!
  br label %3159

3159:                                             ; preds = %3158
  br label %3160

3160:                                             ; preds = %3159, %3101
  br label %3161

3161:                                             ; preds = %3160
  br label %3162

3162:                                             ; preds = %3161
  br label %3163

3163:                                             ; preds = %3162
  %3164 = load i32, ptr @test_count, align 4, !tbaa !5
  %3165 = add nsw i32 %3164, 1
  store i32 %3165, ptr @test_count, align 4, !tbaa !5
  %3166 = load ptr, ptr %56, align 8, !tbaa !9
  %3167 = call i32 @s2n_client_ccs_recv(ptr noundef %3166)
  %3168 = icmp eq i32 %3167, -1
  br i1 %3168, label %3169, label %3222

3169:                                             ; preds = %3163
  br label %3170

3170:                                             ; preds = %3169
  br label %3171

3171:                                             ; preds = %3170
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %3172 = call ptr @__errno_location() #10
  %3173 = load i32, ptr %3172, align 4, !tbaa !5
  store i32 %3173, ptr %63, align 4, !tbaa !5
  %3174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3175 = call i32 @s2n_print_stacktrace(ptr noundef %3174)
  %3176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3177 = trunc i8 %3176 to i1
  br i1 %3177, label %3178, label %3200

3178:                                             ; preds = %3171
  %3179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3180 = call i32 @fileno(ptr noundef %3179) #9
  %3181 = call i32 @isatty(i32 noundef %3180) #9
  %3182 = icmp ne i32 %3181, 0
  br i1 %3182, label %3183, label %3200

3183:                                             ; preds = %3178
  %3184 = load i32, ptr %63, align 4, !tbaa !5
  %3185 = call ptr @__errno_location() #10
  store i32 %3184, ptr %3185, align 4, !tbaa !5
  %3186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3187 = load i32, ptr @test_count, align 4, !tbaa !5
  %3188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3189 = load i32, ptr %3188, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror(i32 noundef %3189, ptr noundef @.str.4)
  %3191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3192 = load i32, ptr %3191, align 4, !tbaa !5
  %3193 = call ptr @s2n_strerror_debug(i32 noundef %3192, ptr noundef @.str.4)
  %3194 = call ptr @__errno_location() #10
  %3195 = load i32, ptr %3194, align 4, !tbaa !5
  %3196 = call ptr @strerror(i32 noundef %3195) #9
  %3197 = call ptr @__errno_location() #10
  %3198 = load i32, ptr %3197, align 4, !tbaa !5
  %3199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3186, ptr noundef @.str.2, i32 noundef %3187, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 129, ptr noundef %3190, ptr noundef %3193, ptr noundef %3196, i32 noundef %3198) #9
  br label %3217

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

3217:                                             ; preds = %3200, %3183
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %3218

3218:                                             ; preds = %3217
  br label %3219

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

3220:                                             ; No predecessors!
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

3222:                                             ; preds = %3221, %3163
  br label %3223

3223:                                             ; preds = %3222
  br label %3224

3224:                                             ; preds = %3223
  br label %3225

3225:                                             ; preds = %3224
  %3226 = load i32, ptr @test_count, align 4, !tbaa !5
  %3227 = add nsw i32 %3226, 1
  store i32 %3227, ptr @test_count, align 4, !tbaa !5
  %3228 = load ptr, ptr %56, align 8, !tbaa !9
  %3229 = getelementptr inbounds %struct.s2n_connection, ptr %3228, i32 0, i32 27
  %3230 = load ptr, ptr %3229, align 8, !tbaa !16
  %3231 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3230, i32 0, i32 7
  %3232 = getelementptr inbounds [8 x i8], ptr %3231, i64 0, i64 0
  %3233 = load i8, ptr %3232, align 8, !tbaa !15
  %3234 = zext i8 %3233 to i32
  %3235 = icmp eq i32 %3234, 0
  br i1 %3235, label %3289, label %3236

3236:                                             ; preds = %3225
  br label %3237

3237:                                             ; preds = %3236
  br label %3238

3238:                                             ; preds = %3237
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  %3239 = call ptr @__errno_location() #10
  %3240 = load i32, ptr %3239, align 4, !tbaa !5
  store i32 %3240, ptr %64, align 4, !tbaa !5
  %3241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3242 = call i32 @s2n_print_stacktrace(ptr noundef %3241)
  %3243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3244 = trunc i8 %3243 to i1
  br i1 %3244, label %3245, label %3267

3245:                                             ; preds = %3238
  %3246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3247 = call i32 @fileno(ptr noundef %3246) #9
  %3248 = call i32 @isatty(i32 noundef %3247) #9
  %3249 = icmp ne i32 %3248, 0
  br i1 %3249, label %3250, label %3267

3250:                                             ; preds = %3245
  %3251 = load i32, ptr %64, align 4, !tbaa !5
  %3252 = call ptr @__errno_location() #10
  store i32 %3251, ptr %3252, align 4, !tbaa !5
  %3253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3254 = load i32, ptr @test_count, align 4, !tbaa !5
  %3255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3256 = load i32, ptr %3255, align 4, !tbaa !5
  %3257 = call ptr @s2n_strerror(i32 noundef %3256, ptr noundef @.str.4)
  %3258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3259 = load i32, ptr %3258, align 4, !tbaa !5
  %3260 = call ptr @s2n_strerror_debug(i32 noundef %3259, ptr noundef @.str.4)
  %3261 = call ptr @__errno_location() #10
  %3262 = load i32, ptr %3261, align 4, !tbaa !5
  %3263 = call ptr @strerror(i32 noundef %3262) #9
  %3264 = call ptr @__errno_location() #10
  %3265 = load i32, ptr %3264, align 4, !tbaa !5
  %3266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3253, ptr noundef @.str.2, i32 noundef %3254, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 132, ptr noundef %3257, ptr noundef %3260, ptr noundef %3263, i32 noundef %3265) #9
  br label %3284

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

3284:                                             ; preds = %3267, %3250
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %3285

3285:                                             ; preds = %3284
  br label %3286

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

3287:                                             ; No predecessors!
  br label %3288

3288:                                             ; preds = %3287
  br label %3289

3289:                                             ; preds = %3288, %3225
  br label %3290

3290:                                             ; preds = %3289
  br label %3291

3291:                                             ; preds = %3290
  br label %3292

3292:                                             ; preds = %3291
  %3293 = load i32, ptr @test_count, align 4, !tbaa !5
  %3294 = add nsw i32 %3293, 1
  store i32 %3294, ptr @test_count, align 4, !tbaa !5
  %3295 = load ptr, ptr %56, align 8, !tbaa !9
  %3296 = getelementptr inbounds %struct.s2n_connection, ptr %3295, i32 0, i32 29
  %3297 = load ptr, ptr %3296, align 8, !tbaa !49
  %3298 = load ptr, ptr %56, align 8, !tbaa !9
  %3299 = getelementptr inbounds %struct.s2n_connection, ptr %3298, i32 0, i32 27
  %3300 = load ptr, ptr %3299, align 8, !tbaa !16
  %3301 = icmp eq ptr %3297, %3300
  br i1 %3301, label %3355, label %3302

3302:                                             ; preds = %3292
  br label %3303

3303:                                             ; preds = %3302
  br label %3304

3304:                                             ; preds = %3303
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %3305 = call ptr @__errno_location() #10
  %3306 = load i32, ptr %3305, align 4, !tbaa !5
  store i32 %3306, ptr %65, align 4, !tbaa !5
  %3307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3308 = call i32 @s2n_print_stacktrace(ptr noundef %3307)
  %3309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3310 = trunc i8 %3309 to i1
  br i1 %3310, label %3311, label %3333

3311:                                             ; preds = %3304
  %3312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3313 = call i32 @fileno(ptr noundef %3312) #9
  %3314 = call i32 @isatty(i32 noundef %3313) #9
  %3315 = icmp ne i32 %3314, 0
  br i1 %3315, label %3316, label %3333

3316:                                             ; preds = %3311
  %3317 = load i32, ptr %65, align 4, !tbaa !5
  %3318 = call ptr @__errno_location() #10
  store i32 %3317, ptr %3318, align 4, !tbaa !5
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = load i32, ptr @test_count, align 4, !tbaa !5
  %3321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call ptr @s2n_strerror(i32 noundef %3322, ptr noundef @.str.4)
  %3324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3325 = load i32, ptr %3324, align 4, !tbaa !5
  %3326 = call ptr @s2n_strerror_debug(i32 noundef %3325, ptr noundef @.str.4)
  %3327 = call ptr @__errno_location() #10
  %3328 = load i32, ptr %3327, align 4, !tbaa !5
  %3329 = call ptr @strerror(i32 noundef %3328) #9
  %3330 = call ptr @__errno_location() #10
  %3331 = load i32, ptr %3330, align 4, !tbaa !5
  %3332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3319, ptr noundef @.str.2, i32 noundef %3320, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3323, ptr noundef %3326, ptr noundef %3329, i32 noundef %3331) #9
  br label %3350

3333:                                             ; preds = %3311, %3304
  %3334 = load i32, ptr %65, align 4, !tbaa !5
  %3335 = call ptr @__errno_location() #10
  store i32 %3334, ptr %3335, align 4, !tbaa !5
  %3336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3337 = load i32, ptr @test_count, align 4, !tbaa !5
  %3338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3339 = load i32, ptr %3338, align 4, !tbaa !5
  %3340 = call ptr @s2n_strerror(i32 noundef %3339, ptr noundef @.str.4)
  %3341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3342 = load i32, ptr %3341, align 4, !tbaa !5
  %3343 = call ptr @s2n_strerror_debug(i32 noundef %3342, ptr noundef @.str.4)
  %3344 = call ptr @__errno_location() #10
  %3345 = load i32, ptr %3344, align 4, !tbaa !5
  %3346 = call ptr @strerror(i32 noundef %3345) #9
  %3347 = call ptr @__errno_location() #10
  %3348 = load i32, ptr %3347, align 4, !tbaa !5
  %3349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3336, ptr noundef @.str.5, i32 noundef %3337, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 133, ptr noundef %3340, ptr noundef %3343, ptr noundef %3346, i32 noundef %3348) #9
  br label %3350

3350:                                             ; preds = %3333, %3316
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %3351

3351:                                             ; preds = %3350
  br label %3352

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

3353:                                             ; No predecessors!
  br label %3354

3354:                                             ; preds = %3353
  br label %3355

3355:                                             ; preds = %3354, %3292
  br label %3356

3356:                                             ; preds = %3355
  br label %3357

3357:                                             ; preds = %3356
  br label %3358

3358:                                             ; preds = %3357
  %3359 = load i32, ptr @test_count, align 4, !tbaa !5
  %3360 = add nsw i32 %3359, 1
  store i32 %3360, ptr @test_count, align 4, !tbaa !5
  %3361 = load ptr, ptr %56, align 8, !tbaa !9
  %3362 = getelementptr inbounds %struct.s2n_connection, ptr %3361, i32 0, i32 45
  %3363 = getelementptr inbounds %struct.s2n_stuffer, ptr %3362, i32 0, i32 2
  %3364 = load i32, ptr %3363, align 4, !tbaa !50
  %3365 = load ptr, ptr %56, align 8, !tbaa !9
  %3366 = getelementptr inbounds %struct.s2n_connection, ptr %3365, i32 0, i32 45
  %3367 = getelementptr inbounds %struct.s2n_stuffer, ptr %3366, i32 0, i32 1
  %3368 = load i32, ptr %3367, align 8, !tbaa !51
  %3369 = sub i32 %3364, %3368
  %3370 = icmp ne i32 %3369, 0
  br i1 %3370, label %3371, label %3424

3371:                                             ; preds = %3358
  br label %3372

3372:                                             ; preds = %3371
  br label %3373

3373:                                             ; preds = %3372
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %3374 = call ptr @__errno_location() #10
  %3375 = load i32, ptr %3374, align 4, !tbaa !5
  store i32 %3375, ptr %66, align 4, !tbaa !5
  %3376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3377 = call i32 @s2n_print_stacktrace(ptr noundef %3376)
  %3378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3379 = trunc i8 %3378 to i1
  br i1 %3379, label %3380, label %3402

3380:                                             ; preds = %3373
  %3381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3382 = call i32 @fileno(ptr noundef %3381) #9
  %3383 = call i32 @isatty(i32 noundef %3382) #9
  %3384 = icmp ne i32 %3383, 0
  br i1 %3384, label %3385, label %3402

3385:                                             ; preds = %3380
  %3386 = load i32, ptr %66, align 4, !tbaa !5
  %3387 = call ptr @__errno_location() #10
  store i32 %3386, ptr %3387, align 4, !tbaa !5
  %3388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3389 = load i32, ptr @test_count, align 4, !tbaa !5
  %3390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3391 = load i32, ptr %3390, align 4, !tbaa !5
  %3392 = call ptr @s2n_strerror(i32 noundef %3391, ptr noundef @.str.4)
  %3393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3394 = load i32, ptr %3393, align 4, !tbaa !5
  %3395 = call ptr @s2n_strerror_debug(i32 noundef %3394, ptr noundef @.str.4)
  %3396 = call ptr @__errno_location() #10
  %3397 = load i32, ptr %3396, align 4, !tbaa !5
  %3398 = call ptr @strerror(i32 noundef %3397) #9
  %3399 = call ptr @__errno_location() #10
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  %3401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3388, ptr noundef @.str.2, i32 noundef %3389, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 134, ptr noundef %3392, ptr noundef %3395, ptr noundef %3398, i32 noundef %3400) #9
  br label %3419

3402:                                             ; preds = %3380, %3373
  %3403 = load i32, ptr %66, align 4, !tbaa !5
  %3404 = call ptr @__errno_location() #10
  store i32 %3403, ptr %3404, align 4, !tbaa !5
  %3405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3406 = load i32, ptr @test_count, align 4, !tbaa !5
  %3407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  %3409 = call ptr @s2n_strerror(i32 noundef %3408, ptr noundef @.str.4)
  %3410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  %3412 = call ptr @s2n_strerror_debug(i32 noundef %3411, ptr noundef @.str.4)
  %3413 = call ptr @__errno_location() #10
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @strerror(i32 noundef %3414) #9
  %3416 = call ptr @__errno_location() #10
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3405, ptr noundef @.str.5, i32 noundef %3406, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 134, ptr noundef %3409, ptr noundef %3412, ptr noundef %3415, i32 noundef %3417) #9
  br label %3419

3419:                                             ; preds = %3402, %3385
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %3420

3420:                                             ; preds = %3419
  br label %3421

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

3422:                                             ; No predecessors!
  br label %3423

3423:                                             ; preds = %3422
  br label %3424

3424:                                             ; preds = %3423, %3358
  br label %3425

3425:                                             ; preds = %3424
  br label %3426

3426:                                             ; preds = %3425
  %3427 = call i32 @s2n_connection_ptr_free(ptr noundef %56)
  %3428 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  store i32 %3427, ptr %3428, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  store ptr null, ptr %68, align 8, !tbaa !9
  br label %3429

3429:                                             ; preds = %3426
  %3430 = load i32, ptr @test_count, align 4, !tbaa !5
  %3431 = add nsw i32 %3430, 1
  store i32 %3431, ptr @test_count, align 4, !tbaa !5
  %3432 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3432, ptr %68, align 8, !tbaa !9
  %3433 = icmp eq ptr %3432, null
  br i1 %3433, label %3434, label %3487

3434:                                             ; preds = %3429
  br label %3435

3435:                                             ; preds = %3434
  br label %3436

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

3443:                                             ; preds = %3436
  %3444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3445 = call i32 @fileno(ptr noundef %3444) #9
  %3446 = call i32 @isatty(i32 noundef %3445) #9
  %3447 = icmp ne i32 %3446, 0
  br i1 %3447, label %3448, label %3465

3448:                                             ; preds = %3443
  %3449 = load i32, ptr %69, align 4, !tbaa !5
  %3450 = call ptr @__errno_location() #10
  store i32 %3449, ptr %3450, align 4, !tbaa !5
  %3451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3452 = load i32, ptr @test_count, align 4, !tbaa !5
  %3453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror(i32 noundef %3454, ptr noundef @.str.4)
  %3456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = call ptr @s2n_strerror_debug(i32 noundef %3457, ptr noundef @.str.4)
  %3459 = call ptr @__errno_location() #10
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call ptr @strerror(i32 noundef %3460) #9
  %3462 = call ptr @__errno_location() #10
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3451, ptr noundef @.str.2, i32 noundef %3452, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 140, ptr noundef %3455, ptr noundef %3458, ptr noundef %3461, i32 noundef %3463) #9
  br label %3482

3465:                                             ; preds = %3443, %3436
  %3466 = load i32, ptr %69, align 4, !tbaa !5
  %3467 = call ptr @__errno_location() #10
  store i32 %3466, ptr %3467, align 4, !tbaa !5
  %3468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3469 = load i32, ptr @test_count, align 4, !tbaa !5
  %3470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3471 = load i32, ptr %3470, align 4, !tbaa !5
  %3472 = call ptr @s2n_strerror(i32 noundef %3471, ptr noundef @.str.4)
  %3473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3474 = load i32, ptr %3473, align 4, !tbaa !5
  %3475 = call ptr @s2n_strerror_debug(i32 noundef %3474, ptr noundef @.str.4)
  %3476 = call ptr @__errno_location() #10
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call ptr @strerror(i32 noundef %3477) #9
  %3479 = call ptr @__errno_location() #10
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3468, ptr noundef @.str.5, i32 noundef %3469, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 140, ptr noundef %3472, ptr noundef %3475, ptr noundef %3478, i32 noundef %3480) #9
  br label %3482

3482:                                             ; preds = %3465, %3448
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3483

3483:                                             ; preds = %3482
  br label %3484

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

3485:                                             ; No predecessors!
  br label %3486

3486:                                             ; preds = %3485
  br label %3487

3487:                                             ; preds = %3486, %3429
  br label %3488

3488:                                             ; preds = %3487
  br label %3489

3489:                                             ; preds = %3488
  %3490 = load ptr, ptr %68, align 8, !tbaa !9
  %3491 = getelementptr inbounds %struct.s2n_connection, ptr %3490, i32 0, i32 27
  %3492 = load ptr, ptr %3491, align 8, !tbaa !16
  %3493 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3492, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_256_gcm_sha384, ptr %3493, align 8, !tbaa !43
  %3494 = load ptr, ptr %68, align 8, !tbaa !9
  %3495 = getelementptr inbounds %struct.s2n_connection, ptr %3494, i32 0, i32 27
  %3496 = load ptr, ptr %3495, align 8, !tbaa !16
  %3497 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3496, i32 0, i32 8
  %3498 = getelementptr inbounds [8 x i8], ptr %3497, i64 0, i64 0
  store i8 1, ptr %3498, align 8, !tbaa !15
  br label %3499

3499:                                             ; preds = %3489
  br label %3500

3500:                                             ; preds = %3499
  %3501 = load i32, ptr @test_count, align 4, !tbaa !5
  %3502 = add nsw i32 %3501, 1
  store i32 %3502, ptr @test_count, align 4, !tbaa !5
  %3503 = load ptr, ptr %68, align 8, !tbaa !9
  %3504 = getelementptr inbounds %struct.s2n_connection, ptr %3503, i32 0, i32 52
  %3505 = getelementptr inbounds %struct.s2n_handshake, ptr %3504, i32 0, i32 3
  %3506 = call i32 @memcmp(ptr noundef %3505, ptr noundef %10, i64 noundef 12) #12
  %3507 = icmp eq i32 %3506, 0
  br i1 %3507, label %3561, label %3508

3508:                                             ; preds = %3500
  br label %3509

3509:                                             ; preds = %3508
  br label %3510

3510:                                             ; preds = %3509
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %3511 = call ptr @__errno_location() #10
  %3512 = load i32, ptr %3511, align 4, !tbaa !5
  store i32 %3512, ptr %70, align 4, !tbaa !5
  %3513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3514 = call i32 @s2n_print_stacktrace(ptr noundef %3513)
  %3515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3516 = trunc i8 %3515 to i1
  br i1 %3516, label %3517, label %3539

3517:                                             ; preds = %3510
  %3518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3519 = call i32 @fileno(ptr noundef %3518) #9
  %3520 = call i32 @isatty(i32 noundef %3519) #9
  %3521 = icmp ne i32 %3520, 0
  br i1 %3521, label %3522, label %3539

3522:                                             ; preds = %3517
  %3523 = load i32, ptr %70, align 4, !tbaa !5
  %3524 = call ptr @__errno_location() #10
  store i32 %3523, ptr %3524, align 4, !tbaa !5
  %3525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3526 = load i32, ptr @test_count, align 4, !tbaa !5
  %3527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3528 = load i32, ptr %3527, align 4, !tbaa !5
  %3529 = call ptr @s2n_strerror(i32 noundef %3528, ptr noundef @.str.4)
  %3530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3531 = load i32, ptr %3530, align 4, !tbaa !5
  %3532 = call ptr @s2n_strerror_debug(i32 noundef %3531, ptr noundef @.str.4)
  %3533 = call ptr @__errno_location() #10
  %3534 = load i32, ptr %3533, align 4, !tbaa !5
  %3535 = call ptr @strerror(i32 noundef %3534) #9
  %3536 = call ptr @__errno_location() #10
  %3537 = load i32, ptr %3536, align 4, !tbaa !5
  %3538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3525, ptr noundef @.str.2, i32 noundef %3526, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 147, ptr noundef %3529, ptr noundef %3532, ptr noundef %3535, i32 noundef %3537) #9
  br label %3556

3539:                                             ; preds = %3517, %3510
  %3540 = load i32, ptr %70, align 4, !tbaa !5
  %3541 = call ptr @__errno_location() #10
  store i32 %3540, ptr %3541, align 4, !tbaa !5
  %3542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3543 = load i32, ptr @test_count, align 4, !tbaa !5
  %3544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = call ptr @s2n_strerror(i32 noundef %3545, ptr noundef @.str.4)
  %3547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3548 = load i32, ptr %3547, align 4, !tbaa !5
  %3549 = call ptr @s2n_strerror_debug(i32 noundef %3548, ptr noundef @.str.4)
  %3550 = call ptr @__errno_location() #10
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  %3552 = call ptr @strerror(i32 noundef %3551) #9
  %3553 = call ptr @__errno_location() #10
  %3554 = load i32, ptr %3553, align 4, !tbaa !5
  %3555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3542, ptr noundef @.str.5, i32 noundef %3543, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 147, ptr noundef %3546, ptr noundef %3549, ptr noundef %3552, i32 noundef %3554) #9
  br label %3556

3556:                                             ; preds = %3539, %3522
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %3557

3557:                                             ; preds = %3556
  br label %3558

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

3559:                                             ; No predecessors!
  br label %3560

3560:                                             ; preds = %3559
  br label %3561

3561:                                             ; preds = %3560, %3500
  br label %3562

3562:                                             ; preds = %3561
  br label %3563

3563:                                             ; preds = %3562
  br label %3564

3564:                                             ; preds = %3563
  br label %3565

3565:                                             ; preds = %3564
  br label %3566

3566:                                             ; preds = %3565
  %3567 = load i32, ptr @test_count, align 4, !tbaa !5
  %3568 = add nsw i32 %3567, 1
  store i32 %3568, ptr @test_count, align 4, !tbaa !5
  %3569 = load ptr, ptr %68, align 8, !tbaa !9
  %3570 = getelementptr inbounds %struct.s2n_connection, ptr %3569, i32 0, i32 52
  %3571 = getelementptr inbounds %struct.s2n_handshake, ptr %3570, i32 0, i32 5
  %3572 = load i8, ptr %3571, align 8, !tbaa !48
  %3573 = zext i8 %3572 to i32
  %3574 = icmp eq i32 %3573, 0
  br i1 %3574, label %3628, label %3575

3575:                                             ; preds = %3566
  br label %3576

3576:                                             ; preds = %3575
  br label %3577

3577:                                             ; preds = %3576
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  %3578 = call ptr @__errno_location() #10
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  store i32 %3579, ptr %71, align 4, !tbaa !5
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = call i32 @s2n_print_stacktrace(ptr noundef %3580)
  %3582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3583 = trunc i8 %3582 to i1
  br i1 %3583, label %3584, label %3606

3584:                                             ; preds = %3577
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = call i32 @fileno(ptr noundef %3585) #9
  %3587 = call i32 @isatty(i32 noundef %3586) #9
  %3588 = icmp ne i32 %3587, 0
  br i1 %3588, label %3589, label %3606

3589:                                             ; preds = %3584
  %3590 = load i32, ptr %71, align 4, !tbaa !5
  %3591 = call ptr @__errno_location() #10
  store i32 %3590, ptr %3591, align 4, !tbaa !5
  %3592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3593 = load i32, ptr @test_count, align 4, !tbaa !5
  %3594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call ptr @s2n_strerror(i32 noundef %3595, ptr noundef @.str.4)
  %3597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3598 = load i32, ptr %3597, align 4, !tbaa !5
  %3599 = call ptr @s2n_strerror_debug(i32 noundef %3598, ptr noundef @.str.4)
  %3600 = call ptr @__errno_location() #10
  %3601 = load i32, ptr %3600, align 4, !tbaa !5
  %3602 = call ptr @strerror(i32 noundef %3601) #9
  %3603 = call ptr @__errno_location() #10
  %3604 = load i32, ptr %3603, align 4, !tbaa !5
  %3605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3592, ptr noundef @.str.2, i32 noundef %3593, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3596, ptr noundef %3599, ptr noundef %3602, i32 noundef %3604) #9
  br label %3623

3606:                                             ; preds = %3584, %3577
  %3607 = load i32, ptr %71, align 4, !tbaa !5
  %3608 = call ptr @__errno_location() #10
  store i32 %3607, ptr %3608, align 4, !tbaa !5
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = load i32, ptr @test_count, align 4, !tbaa !5
  %3611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  %3613 = call ptr @s2n_strerror(i32 noundef %3612, ptr noundef @.str.4)
  %3614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3615 = load i32, ptr %3614, align 4, !tbaa !5
  %3616 = call ptr @s2n_strerror_debug(i32 noundef %3615, ptr noundef @.str.4)
  %3617 = call ptr @__errno_location() #10
  %3618 = load i32, ptr %3617, align 4, !tbaa !5
  %3619 = call ptr @strerror(i32 noundef %3618) #9
  %3620 = call ptr @__errno_location() #10
  %3621 = load i32, ptr %3620, align 4, !tbaa !5
  %3622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3609, ptr noundef @.str.5, i32 noundef %3610, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3613, ptr noundef %3616, ptr noundef %3619, i32 noundef %3621) #9
  br label %3623

3623:                                             ; preds = %3606, %3589
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3624

3624:                                             ; preds = %3623
  br label %3625

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

3626:                                             ; No predecessors!
  br label %3627

3627:                                             ; preds = %3626
  br label %3628

3628:                                             ; preds = %3627, %3566
  br label %3629

3629:                                             ; preds = %3628
  br label %3630

3630:                                             ; preds = %3629
  br label %3631

3631:                                             ; preds = %3630
  %3632 = load i32, ptr @test_count, align 4, !tbaa !5
  %3633 = add nsw i32 %3632, 1
  store i32 %3633, ptr @test_count, align 4, !tbaa !5
  %3634 = load ptr, ptr %68, align 8, !tbaa !9
  %3635 = getelementptr inbounds %struct.s2n_connection, ptr %3634, i32 0, i32 30
  %3636 = load ptr, ptr %3635, align 8, !tbaa !53
  %3637 = load ptr, ptr %68, align 8, !tbaa !9
  %3638 = getelementptr inbounds %struct.s2n_connection, ptr %3637, i32 0, i32 27
  %3639 = load ptr, ptr %3638, align 8, !tbaa !16
  %3640 = icmp eq ptr %3636, %3639
  br i1 %3640, label %3641, label %3694

3641:                                             ; preds = %3631
  br label %3642

3642:                                             ; preds = %3641
  br label %3643

3643:                                             ; preds = %3642
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %3644 = call ptr @__errno_location() #10
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  store i32 %3645, ptr %72, align 4, !tbaa !5
  %3646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3647 = call i32 @s2n_print_stacktrace(ptr noundef %3646)
  %3648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3649 = trunc i8 %3648 to i1
  br i1 %3649, label %3650, label %3672

3650:                                             ; preds = %3643
  %3651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3652 = call i32 @fileno(ptr noundef %3651) #9
  %3653 = call i32 @isatty(i32 noundef %3652) #9
  %3654 = icmp ne i32 %3653, 0
  br i1 %3654, label %3655, label %3672

3655:                                             ; preds = %3650
  %3656 = load i32, ptr %72, align 4, !tbaa !5
  %3657 = call ptr @__errno_location() #10
  store i32 %3656, ptr %3657, align 4, !tbaa !5
  %3658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3659 = load i32, ptr @test_count, align 4, !tbaa !5
  %3660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3661 = load i32, ptr %3660, align 4, !tbaa !5
  %3662 = call ptr @s2n_strerror(i32 noundef %3661, ptr noundef @.str.4)
  %3663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3664 = load i32, ptr %3663, align 4, !tbaa !5
  %3665 = call ptr @s2n_strerror_debug(i32 noundef %3664, ptr noundef @.str.4)
  %3666 = call ptr @__errno_location() #10
  %3667 = load i32, ptr %3666, align 4, !tbaa !5
  %3668 = call ptr @strerror(i32 noundef %3667) #9
  %3669 = call ptr @__errno_location() #10
  %3670 = load i32, ptr %3669, align 4, !tbaa !5
  %3671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3658, ptr noundef @.str.2, i32 noundef %3659, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 149, ptr noundef %3662, ptr noundef %3665, ptr noundef %3668, i32 noundef %3670) #9
  br label %3689

3672:                                             ; preds = %3650, %3643
  %3673 = load i32, ptr %72, align 4, !tbaa !5
  %3674 = call ptr @__errno_location() #10
  store i32 %3673, ptr %3674, align 4, !tbaa !5
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3676 = load i32, ptr @test_count, align 4, !tbaa !5
  %3677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3678 = load i32, ptr %3677, align 4, !tbaa !5
  %3679 = call ptr @s2n_strerror(i32 noundef %3678, ptr noundef @.str.4)
  %3680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3681 = load i32, ptr %3680, align 4, !tbaa !5
  %3682 = call ptr @s2n_strerror_debug(i32 noundef %3681, ptr noundef @.str.4)
  %3683 = call ptr @__errno_location() #10
  %3684 = load i32, ptr %3683, align 4, !tbaa !5
  %3685 = call ptr @strerror(i32 noundef %3684) #9
  %3686 = call ptr @__errno_location() #10
  %3687 = load i32, ptr %3686, align 4, !tbaa !5
  %3688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3675, ptr noundef @.str.5, i32 noundef %3676, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 149, ptr noundef %3679, ptr noundef %3682, ptr noundef %3685, i32 noundef %3687) #9
  br label %3689

3689:                                             ; preds = %3672, %3655
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3690

3690:                                             ; preds = %3689
  br label %3691

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

3692:                                             ; No predecessors!
  br label %3693

3693:                                             ; preds = %3692
  br label %3694

3694:                                             ; preds = %3693, %3631
  br label %3695

3695:                                             ; preds = %3694
  br label %3696

3696:                                             ; preds = %3695
  br label %3697

3697:                                             ; preds = %3696
  %3698 = load i32, ptr @test_count, align 4, !tbaa !5
  %3699 = add nsw i32 %3698, 1
  store i32 %3699, ptr @test_count, align 4, !tbaa !5
  %3700 = load ptr, ptr %68, align 8, !tbaa !9
  %3701 = getelementptr inbounds %struct.s2n_connection, ptr %3700, i32 0, i32 45
  %3702 = call i32 @s2n_stuffer_write_uint8(ptr noundef %3701, i8 noundef zeroext 1)
  %3703 = icmp eq i32 %3702, -1
  br i1 %3703, label %3704, label %3757

3704:                                             ; preds = %3697
  br label %3705

3705:                                             ; preds = %3704
  br label %3706

3706:                                             ; preds = %3705
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %3707 = call ptr @__errno_location() #10
  %3708 = load i32, ptr %3707, align 4, !tbaa !5
  store i32 %3708, ptr %73, align 4, !tbaa !5
  %3709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3710 = call i32 @s2n_print_stacktrace(ptr noundef %3709)
  %3711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3712 = trunc i8 %3711 to i1
  br i1 %3712, label %3713, label %3735

3713:                                             ; preds = %3706
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = call i32 @fileno(ptr noundef %3714) #9
  %3716 = call i32 @isatty(i32 noundef %3715) #9
  %3717 = icmp ne i32 %3716, 0
  br i1 %3717, label %3718, label %3735

3718:                                             ; preds = %3713
  %3719 = load i32, ptr %73, align 4, !tbaa !5
  %3720 = call ptr @__errno_location() #10
  store i32 %3719, ptr %3720, align 4, !tbaa !5
  %3721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3722 = load i32, ptr @test_count, align 4, !tbaa !5
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror(i32 noundef %3724, ptr noundef @.str.4)
  %3726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @s2n_strerror_debug(i32 noundef %3727, ptr noundef @.str.4)
  %3729 = call ptr @__errno_location() #10
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call ptr @strerror(i32 noundef %3730) #9
  %3732 = call ptr @__errno_location() #10
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3721, ptr noundef @.str.2, i32 noundef %3722, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3725, ptr noundef %3728, ptr noundef %3731, i32 noundef %3733) #9
  br label %3752

3735:                                             ; preds = %3713, %3706
  %3736 = load i32, ptr %73, align 4, !tbaa !5
  %3737 = call ptr @__errno_location() #10
  store i32 %3736, ptr %3737, align 4, !tbaa !5
  %3738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3739 = load i32, ptr @test_count, align 4, !tbaa !5
  %3740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror(i32 noundef %3741, ptr noundef @.str.4)
  %3743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror_debug(i32 noundef %3744, ptr noundef @.str.4)
  %3746 = call ptr @__errno_location() #10
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call ptr @strerror(i32 noundef %3747) #9
  %3749 = call ptr @__errno_location() #10
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3738, ptr noundef @.str.5, i32 noundef %3739, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3742, ptr noundef %3745, ptr noundef %3748, i32 noundef %3750) #9
  br label %3752

3752:                                             ; preds = %3735, %3718
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %3753

3753:                                             ; preds = %3752
  br label %3754

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

3755:                                             ; No predecessors!
  br label %3756

3756:                                             ; preds = %3755
  br label %3757

3757:                                             ; preds = %3756, %3697
  br label %3758

3758:                                             ; preds = %3757
  br label %3759

3759:                                             ; preds = %3758
  br label %3760

3760:                                             ; preds = %3759
  %3761 = load i32, ptr @test_count, align 4, !tbaa !5
  %3762 = add nsw i32 %3761, 1
  store i32 %3762, ptr @test_count, align 4, !tbaa !5
  %3763 = load ptr, ptr %68, align 8, !tbaa !9
  %3764 = call i32 @s2n_ccs_send(ptr noundef %3763)
  %3765 = icmp eq i32 %3764, -1
  br i1 %3765, label %3766, label %3819

3766:                                             ; preds = %3760
  br label %3767

3767:                                             ; preds = %3766
  br label %3768

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

3775:                                             ; preds = %3768
  %3776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3777 = call i32 @fileno(ptr noundef %3776) #9
  %3778 = call i32 @isatty(i32 noundef %3777) #9
  %3779 = icmp ne i32 %3778, 0
  br i1 %3779, label %3780, label %3797

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

3797:                                             ; preds = %3775, %3768
  %3798 = load i32, ptr %74, align 4, !tbaa !5
  %3799 = call ptr @__errno_location() #10
  store i32 %3798, ptr %3799, align 4, !tbaa !5
  %3800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3801 = load i32, ptr @test_count, align 4, !tbaa !5
  %3802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3803 = load i32, ptr %3802, align 4, !tbaa !5
  %3804 = call ptr @s2n_strerror(i32 noundef %3803, ptr noundef @.str.4)
  %3805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3806 = load i32, ptr %3805, align 4, !tbaa !5
  %3807 = call ptr @s2n_strerror_debug(i32 noundef %3806, ptr noundef @.str.4)
  %3808 = call ptr @__errno_location() #10
  %3809 = load i32, ptr %3808, align 4, !tbaa !5
  %3810 = call ptr @strerror(i32 noundef %3809) #9
  %3811 = call ptr @__errno_location() #10
  %3812 = load i32, ptr %3811, align 4, !tbaa !5
  %3813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3800, ptr noundef @.str.5, i32 noundef %3801, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3804, ptr noundef %3807, ptr noundef %3810, i32 noundef %3812) #9
  br label %3814

3814:                                             ; preds = %3797, %3780
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3815

3815:                                             ; preds = %3814
  br label %3816

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

3817:                                             ; No predecessors!
  br label %3818

3818:                                             ; preds = %3817
  br label %3819

3819:                                             ; preds = %3818, %3760
  br label %3820

3820:                                             ; preds = %3819
  br label %3821

3821:                                             ; preds = %3820
  br label %3822

3822:                                             ; preds = %3821
  %3823 = load i32, ptr @test_count, align 4, !tbaa !5
  %3824 = add nsw i32 %3823, 1
  store i32 %3824, ptr @test_count, align 4, !tbaa !5
  %3825 = load ptr, ptr %68, align 8, !tbaa !9
  %3826 = call i32 @s2n_server_ccs_recv(ptr noundef %3825)
  %3827 = icmp eq i32 %3826, -1
  br i1 %3827, label %3828, label %3881

3828:                                             ; preds = %3822
  br label %3829

3829:                                             ; preds = %3828
  br label %3830

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

3837:                                             ; preds = %3830
  %3838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3839 = call i32 @fileno(ptr noundef %3838) #9
  %3840 = call i32 @isatty(i32 noundef %3839) #9
  %3841 = icmp ne i32 %3840, 0
  br i1 %3841, label %3842, label %3859

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

3859:                                             ; preds = %3837, %3830
  %3860 = load i32, ptr %75, align 4, !tbaa !5
  %3861 = call ptr @__errno_location() #10
  store i32 %3860, ptr %3861, align 4, !tbaa !5
  %3862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3865 = load i32, ptr %3864, align 4, !tbaa !5
  %3866 = call ptr @s2n_strerror(i32 noundef %3865, ptr noundef @.str.4)
  %3867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3868 = load i32, ptr %3867, align 4, !tbaa !5
  %3869 = call ptr @s2n_strerror_debug(i32 noundef %3868, ptr noundef @.str.4)
  %3870 = call ptr @__errno_location() #10
  %3871 = load i32, ptr %3870, align 4, !tbaa !5
  %3872 = call ptr @strerror(i32 noundef %3871) #9
  %3873 = call ptr @__errno_location() #10
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3862, ptr noundef @.str.5, i32 noundef %3863, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3866, ptr noundef %3869, ptr noundef %3872, i32 noundef %3874) #9
  br label %3876

3876:                                             ; preds = %3859, %3842
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %3877

3877:                                             ; preds = %3876
  br label %3878

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

3879:                                             ; No predecessors!
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880, %3822
  br label %3882

3882:                                             ; preds = %3881
  br label %3883

3883:                                             ; preds = %3882
  br label %3884

3884:                                             ; preds = %3883
  %3885 = load i32, ptr @test_count, align 4, !tbaa !5
  %3886 = add nsw i32 %3885, 1
  store i32 %3886, ptr @test_count, align 4, !tbaa !5
  %3887 = load ptr, ptr %68, align 8, !tbaa !9
  %3888 = getelementptr inbounds %struct.s2n_connection, ptr %3887, i32 0, i32 27
  %3889 = load ptr, ptr %3888, align 8, !tbaa !16
  %3890 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3889, i32 0, i32 8
  %3891 = getelementptr inbounds [8 x i8], ptr %3890, i64 0, i64 0
  %3892 = load i8, ptr %3891, align 8, !tbaa !15
  %3893 = zext i8 %3892 to i32
  %3894 = icmp eq i32 %3893, 0
  br i1 %3894, label %3948, label %3895

3895:                                             ; preds = %3884
  br label %3896

3896:                                             ; preds = %3895
  br label %3897

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

3904:                                             ; preds = %3897
  %3905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3906 = call i32 @fileno(ptr noundef %3905) #9
  %3907 = call i32 @isatty(i32 noundef %3906) #9
  %3908 = icmp ne i32 %3907, 0
  br i1 %3908, label %3909, label %3926

3909:                                             ; preds = %3904
  %3910 = load i32, ptr %76, align 4, !tbaa !5
  %3911 = call ptr @__errno_location() #10
  store i32 %3910, ptr %3911, align 4, !tbaa !5
  %3912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3913 = load i32, ptr @test_count, align 4, !tbaa !5
  %3914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  %3916 = call ptr @s2n_strerror(i32 noundef %3915, ptr noundef @.str.4)
  %3917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @s2n_strerror_debug(i32 noundef %3918, ptr noundef @.str.4)
  %3920 = call ptr @__errno_location() #10
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call ptr @strerror(i32 noundef %3921) #9
  %3923 = call ptr @__errno_location() #10
  %3924 = load i32, ptr %3923, align 4, !tbaa !5
  %3925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3912, ptr noundef @.str.2, i32 noundef %3913, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3916, ptr noundef %3919, ptr noundef %3922, i32 noundef %3924) #9
  br label %3943

3926:                                             ; preds = %3904, %3897
  %3927 = load i32, ptr %76, align 4, !tbaa !5
  %3928 = call ptr @__errno_location() #10
  store i32 %3927, ptr %3928, align 4, !tbaa !5
  %3929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3930 = load i32, ptr @test_count, align 4, !tbaa !5
  %3931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call ptr @s2n_strerror(i32 noundef %3932, ptr noundef @.str.4)
  %3934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror_debug(i32 noundef %3935, ptr noundef @.str.4)
  %3937 = call ptr @__errno_location() #10
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call ptr @strerror(i32 noundef %3938) #9
  %3940 = call ptr @__errno_location() #10
  %3941 = load i32, ptr %3940, align 4, !tbaa !5
  %3942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3929, ptr noundef @.str.5, i32 noundef %3930, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3933, ptr noundef %3936, ptr noundef %3939, i32 noundef %3941) #9
  br label %3943

3943:                                             ; preds = %3926, %3909
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3944

3944:                                             ; preds = %3943
  br label %3945

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

3946:                                             ; No predecessors!
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

3948:                                             ; preds = %3947, %3884
  br label %3949

3949:                                             ; preds = %3948
  br label %3950

3950:                                             ; preds = %3949
  br label %3951

3951:                                             ; preds = %3950
  %3952 = load i32, ptr @test_count, align 4, !tbaa !5
  %3953 = add nsw i32 %3952, 1
  store i32 %3953, ptr @test_count, align 4, !tbaa !5
  %3954 = load ptr, ptr %68, align 8, !tbaa !9
  %3955 = getelementptr inbounds %struct.s2n_connection, ptr %3954, i32 0, i32 52
  %3956 = getelementptr inbounds %struct.s2n_handshake, ptr %3955, i32 0, i32 3
  %3957 = call i32 @memcmp(ptr noundef %3956, ptr noundef %10, i64 noundef 12) #12
  %3958 = icmp eq i32 %3957, 0
  br i1 %3958, label %3959, label %4012

3959:                                             ; preds = %3951
  br label %3960

3960:                                             ; preds = %3959
  br label %3961

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

3968:                                             ; preds = %3961
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = call i32 @fileno(ptr noundef %3969) #9
  %3971 = call i32 @isatty(i32 noundef %3970) #9
  %3972 = icmp ne i32 %3971, 0
  br i1 %3972, label %3973, label %3990

3973:                                             ; preds = %3968
  %3974 = load i32, ptr %77, align 4, !tbaa !5
  %3975 = call ptr @__errno_location() #10
  store i32 %3974, ptr %3975, align 4, !tbaa !5
  %3976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3977 = load i32, ptr @test_count, align 4, !tbaa !5
  %3978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3979 = load i32, ptr %3978, align 4, !tbaa !5
  %3980 = call ptr @s2n_strerror(i32 noundef %3979, ptr noundef @.str.4)
  %3981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3982 = load i32, ptr %3981, align 4, !tbaa !5
  %3983 = call ptr @s2n_strerror_debug(i32 noundef %3982, ptr noundef @.str.4)
  %3984 = call ptr @__errno_location() #10
  %3985 = load i32, ptr %3984, align 4, !tbaa !5
  %3986 = call ptr @strerror(i32 noundef %3985) #9
  %3987 = call ptr @__errno_location() #10
  %3988 = load i32, ptr %3987, align 4, !tbaa !5
  %3989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3976, ptr noundef @.str.2, i32 noundef %3977, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3980, ptr noundef %3983, ptr noundef %3986, i32 noundef %3988) #9
  br label %4007

3990:                                             ; preds = %3968, %3961
  %3991 = load i32, ptr %77, align 4, !tbaa !5
  %3992 = call ptr @__errno_location() #10
  store i32 %3991, ptr %3992, align 4, !tbaa !5
  %3993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3994 = load i32, ptr @test_count, align 4, !tbaa !5
  %3995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3996 = load i32, ptr %3995, align 4, !tbaa !5
  %3997 = call ptr @s2n_strerror(i32 noundef %3996, ptr noundef @.str.4)
  %3998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3999 = load i32, ptr %3998, align 4, !tbaa !5
  %4000 = call ptr @s2n_strerror_debug(i32 noundef %3999, ptr noundef @.str.4)
  %4001 = call ptr @__errno_location() #10
  %4002 = load i32, ptr %4001, align 4, !tbaa !5
  %4003 = call ptr @strerror(i32 noundef %4002) #9
  %4004 = call ptr @__errno_location() #10
  %4005 = load i32, ptr %4004, align 4, !tbaa !5
  %4006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3993, ptr noundef @.str.5, i32 noundef %3994, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3997, ptr noundef %4000, ptr noundef %4003, i32 noundef %4005) #9
  br label %4007

4007:                                             ; preds = %3990, %3973
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %4008

4008:                                             ; preds = %4007
  br label %4009

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

4010:                                             ; No predecessors!
  br label %4011

4011:                                             ; preds = %4010
  br label %4012

4012:                                             ; preds = %4011, %3951
  br label %4013

4013:                                             ; preds = %4012
  br label %4014

4014:                                             ; preds = %4013
  br label %4015

4015:                                             ; preds = %4014
  %4016 = load i32, ptr @test_count, align 4, !tbaa !5
  %4017 = add nsw i32 %4016, 1
  store i32 %4017, ptr @test_count, align 4, !tbaa !5
  %4018 = load ptr, ptr %68, align 8, !tbaa !9
  %4019 = getelementptr inbounds %struct.s2n_connection, ptr %4018, i32 0, i32 52
  %4020 = getelementptr inbounds %struct.s2n_handshake, ptr %4019, i32 0, i32 5
  %4021 = load i8, ptr %4020, align 8, !tbaa !48
  %4022 = zext i8 %4021 to i32
  %4023 = icmp eq i32 %4022, 12
  br i1 %4023, label %4077, label %4024

4024:                                             ; preds = %4015
  br label %4025

4025:                                             ; preds = %4024
  br label %4026

4026:                                             ; preds = %4025
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  %4027 = call ptr @__errno_location() #10
  %4028 = load i32, ptr %4027, align 4, !tbaa !5
  store i32 %4028, ptr %78, align 4, !tbaa !5
  %4029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4030 = call i32 @s2n_print_stacktrace(ptr noundef %4029)
  %4031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4032 = trunc i8 %4031 to i1
  br i1 %4032, label %4033, label %4055

4033:                                             ; preds = %4026
  %4034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4035 = call i32 @fileno(ptr noundef %4034) #9
  %4036 = call i32 @isatty(i32 noundef %4035) #9
  %4037 = icmp ne i32 %4036, 0
  br i1 %4037, label %4038, label %4055

4038:                                             ; preds = %4033
  %4039 = load i32, ptr %78, align 4, !tbaa !5
  %4040 = call ptr @__errno_location() #10
  store i32 %4039, ptr %4040, align 4, !tbaa !5
  %4041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4042 = load i32, ptr @test_count, align 4, !tbaa !5
  %4043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = call ptr @s2n_strerror(i32 noundef %4044, ptr noundef @.str.4)
  %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_debug(i32 noundef %4047, ptr noundef @.str.4)
  %4049 = call ptr @__errno_location() #10
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @strerror(i32 noundef %4050) #9
  %4052 = call ptr @__errno_location() #10
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4041, ptr noundef @.str.2, i32 noundef %4042, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 158, ptr noundef %4045, ptr noundef %4048, ptr noundef %4051, i32 noundef %4053) #9
  br label %4072

4055:                                             ; preds = %4033, %4026
  %4056 = load i32, ptr %78, align 4, !tbaa !5
  %4057 = call ptr @__errno_location() #10
  store i32 %4056, ptr %4057, align 4, !tbaa !5
  %4058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4059 = load i32, ptr @test_count, align 4, !tbaa !5
  %4060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4061 = load i32, ptr %4060, align 4, !tbaa !5
  %4062 = call ptr @s2n_strerror(i32 noundef %4061, ptr noundef @.str.4)
  %4063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call ptr @s2n_strerror_debug(i32 noundef %4064, ptr noundef @.str.4)
  %4066 = call ptr @__errno_location() #10
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call ptr @strerror(i32 noundef %4067) #9
  %4069 = call ptr @__errno_location() #10
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4058, ptr noundef @.str.5, i32 noundef %4059, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 158, ptr noundef %4062, ptr noundef %4065, ptr noundef %4068, i32 noundef %4070) #9
  br label %4072

4072:                                             ; preds = %4055, %4038
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %4073

4073:                                             ; preds = %4072
  br label %4074

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

4075:                                             ; No predecessors!
  br label %4076

4076:                                             ; preds = %4075
  br label %4077

4077:                                             ; preds = %4076, %4015
  br label %4078

4078:                                             ; preds = %4077
  br label %4079

4079:                                             ; preds = %4078
  br label %4080

4080:                                             ; preds = %4079
  %4081 = load i32, ptr @test_count, align 4, !tbaa !5
  %4082 = add nsw i32 %4081, 1
  store i32 %4082, ptr @test_count, align 4, !tbaa !5
  %4083 = load ptr, ptr %68, align 8, !tbaa !9
  %4084 = getelementptr inbounds %struct.s2n_connection, ptr %4083, i32 0, i32 30
  %4085 = load ptr, ptr %4084, align 8, !tbaa !53
  %4086 = load ptr, ptr %68, align 8, !tbaa !9
  %4087 = getelementptr inbounds %struct.s2n_connection, ptr %4086, i32 0, i32 27
  %4088 = load ptr, ptr %4087, align 8, !tbaa !16
  %4089 = icmp eq ptr %4085, %4088
  br i1 %4089, label %4143, label %4090

4090:                                             ; preds = %4080
  br label %4091

4091:                                             ; preds = %4090
  br label %4092

4092:                                             ; preds = %4091
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %4093 = call ptr @__errno_location() #10
  %4094 = load i32, ptr %4093, align 4, !tbaa !5
  store i32 %4094, ptr %79, align 4, !tbaa !5
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = call i32 @s2n_print_stacktrace(ptr noundef %4095)
  %4097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4098 = trunc i8 %4097 to i1
  br i1 %4098, label %4099, label %4121

4099:                                             ; preds = %4092
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = call i32 @fileno(ptr noundef %4100) #9
  %4102 = call i32 @isatty(i32 noundef %4101) #9
  %4103 = icmp ne i32 %4102, 0
  br i1 %4103, label %4104, label %4121

4104:                                             ; preds = %4099
  %4105 = load i32, ptr %79, 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.2, i32 noundef %4108, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 159, ptr noundef %4111, ptr noundef %4114, ptr noundef %4117, i32 noundef %4119) #9
  br label %4138

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

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

4139:                                             ; preds = %4138
  br label %4140

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

4141:                                             ; No predecessors!
  br label %4142

4142:                                             ; preds = %4141
  br label %4143

4143:                                             ; preds = %4142, %4080
  br label %4144

4144:                                             ; preds = %4143
  br label %4145

4145:                                             ; preds = %4144
  br label %4146

4146:                                             ; preds = %4145
  %4147 = load i32, ptr @test_count, align 4, !tbaa !5
  %4148 = add nsw i32 %4147, 1
  store i32 %4148, ptr @test_count, align 4, !tbaa !5
  %4149 = load ptr, ptr %68, align 8, !tbaa !9
  %4150 = getelementptr inbounds %struct.s2n_connection, ptr %4149, i32 0, i32 45
  %4151 = getelementptr inbounds %struct.s2n_stuffer, ptr %4150, i32 0, i32 2
  %4152 = load i32, ptr %4151, align 4, !tbaa !50
  %4153 = load ptr, ptr %68, align 8, !tbaa !9
  %4154 = getelementptr inbounds %struct.s2n_connection, ptr %4153, i32 0, i32 45
  %4155 = getelementptr inbounds %struct.s2n_stuffer, ptr %4154, i32 0, i32 1
  %4156 = load i32, ptr %4155, align 8, !tbaa !51
  %4157 = sub i32 %4152, %4156
  %4158 = icmp ne i32 %4157, 0
  br i1 %4158, label %4159, label %4212

4159:                                             ; preds = %4146
  br label %4160

4160:                                             ; preds = %4159
  br label %4161

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

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

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

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

4207:                                             ; preds = %4190, %4173
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %4208

4208:                                             ; preds = %4207
  br label %4209

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

4210:                                             ; No predecessors!
  br label %4211

4211:                                             ; preds = %4210
  br label %4212

4212:                                             ; preds = %4211, %4146
  br label %4213

4213:                                             ; preds = %4212
  br label %4214

4214:                                             ; preds = %4213
  br label %4215

4215:                                             ; preds = %4214
  %4216 = load i32, ptr @test_count, align 4, !tbaa !5
  %4217 = add nsw i32 %4216, 1
  store i32 %4217, ptr @test_count, align 4, !tbaa !5
  %4218 = load ptr, ptr %68, align 8, !tbaa !9
  %4219 = call i32 @s2n_connection_free(ptr noundef %4218)
  %4220 = icmp eq i32 %4219, -1
  br i1 %4220, label %4221, label %4274

4221:                                             ; preds = %4215
  br label %4222

4222:                                             ; preds = %4221
  br label %4223

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

4230:                                             ; preds = %4223
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = call i32 @fileno(ptr noundef %4231) #9
  %4233 = call i32 @isatty(i32 noundef %4232) #9
  %4234 = icmp ne i32 %4233, 0
  br i1 %4234, label %4235, label %4252

4235:                                             ; preds = %4230
  %4236 = load i32, ptr %81, align 4, !tbaa !5
  %4237 = call ptr @__errno_location() #10
  store i32 %4236, ptr %4237, align 4, !tbaa !5
  %4238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4239 = load i32, ptr @test_count, align 4, !tbaa !5
  %4240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call ptr @s2n_strerror(i32 noundef %4241, ptr noundef @.str.4)
  %4243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4244 = load i32, ptr %4243, align 4, !tbaa !5
  %4245 = call ptr @s2n_strerror_debug(i32 noundef %4244, ptr noundef @.str.4)
  %4246 = call ptr @__errno_location() #10
  %4247 = load i32, ptr %4246, align 4, !tbaa !5
  %4248 = call ptr @strerror(i32 noundef %4247) #9
  %4249 = call ptr @__errno_location() #10
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4238, ptr noundef @.str.2, i32 noundef %4239, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 162, ptr noundef %4242, ptr noundef %4245, ptr noundef %4248, i32 noundef %4250) #9
  br label %4269

4252:                                             ; preds = %4230, %4223
  %4253 = load i32, ptr %81, align 4, !tbaa !5
  %4254 = call ptr @__errno_location() #10
  store i32 %4253, ptr %4254, align 4, !tbaa !5
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = load i32, ptr @test_count, align 4, !tbaa !5
  %4257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4258 = load i32, ptr %4257, align 4, !tbaa !5
  %4259 = call ptr @s2n_strerror(i32 noundef %4258, ptr noundef @.str.4)
  %4260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  %4262 = call ptr @s2n_strerror_debug(i32 noundef %4261, ptr noundef @.str.4)
  %4263 = call ptr @__errno_location() #10
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call ptr @strerror(i32 noundef %4264) #9
  %4266 = call ptr @__errno_location() #10
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4255, ptr noundef @.str.5, i32 noundef %4256, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 162, ptr noundef %4259, ptr noundef %4262, ptr noundef %4265, i32 noundef %4267) #9
  br label %4269

4269:                                             ; preds = %4252, %4235
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %4270

4270:                                             ; preds = %4269
  br label %4271

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

4272:                                             ; No predecessors!
  br label %4273

4273:                                             ; preds = %4272
  br label %4274

4274:                                             ; preds = %4273, %4215
  br label %4275

4275:                                             ; preds = %4274
  br label %4276

4276:                                             ; preds = %4275
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  %4277 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4277, ptr %82, align 8, !tbaa !9
  br label %4278

4278:                                             ; preds = %4276
  %4279 = load i32, ptr @test_count, align 4, !tbaa !5
  %4280 = add nsw i32 %4279, 1
  store i32 %4280, ptr @test_count, align 4, !tbaa !5
  %4281 = load ptr, ptr %82, align 8, !tbaa !9
  %4282 = icmp eq ptr %4281, null
  br i1 %4282, label %4283, label %4336

4283:                                             ; preds = %4278
  br label %4284

4284:                                             ; preds = %4283
  br label %4285

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

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

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

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

4331:                                             ; preds = %4314, %4297
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %4332

4332:                                             ; preds = %4331
  br label %4333

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

4334:                                             ; No predecessors!
  br label %4335

4335:                                             ; preds = %4334
  br label %4336

4336:                                             ; preds = %4335, %4278
  br label %4337

4337:                                             ; preds = %4336
  br label %4338

4338:                                             ; preds = %4337
  %4339 = load ptr, ptr %82, align 8, !tbaa !9
  %4340 = getelementptr inbounds %struct.s2n_connection, ptr %4339, i32 0, i32 27
  %4341 = load ptr, ptr %4340, align 8, !tbaa !16
  %4342 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4341, i32 0, i32 0
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %4342, align 8, !tbaa !43
  %4343 = load ptr, ptr %82, align 8, !tbaa !9
  %4344 = getelementptr inbounds %struct.s2n_connection, ptr %4343, i32 0, i32 23
  store i8 30, ptr %4344, align 4, !tbaa !52
  %4345 = load ptr, ptr %82, align 8, !tbaa !9
  %4346 = getelementptr inbounds %struct.s2n_connection, ptr %4345, i32 0, i32 27
  %4347 = load ptr, ptr %4346, align 8, !tbaa !16
  %4348 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4347, i32 0, i32 8
  %4349 = getelementptr inbounds [8 x i8], ptr %4348, i64 0, i64 0
  store i8 1, ptr %4349, align 8, !tbaa !15
  br label %4350

4350:                                             ; preds = %4338
  br label %4351

4351:                                             ; preds = %4350
  %4352 = load i32, ptr @test_count, align 4, !tbaa !5
  %4353 = add nsw i32 %4352, 1
  store i32 %4353, ptr @test_count, align 4, !tbaa !5
  %4354 = load ptr, ptr %82, align 8, !tbaa !9
  %4355 = getelementptr inbounds %struct.s2n_connection, ptr %4354, i32 0, i32 52
  %4356 = getelementptr inbounds %struct.s2n_handshake, ptr %4355, i32 0, i32 3
  %4357 = call i32 @memcmp(ptr noundef %4356, ptr noundef %10, i64 noundef 12) #12
  %4358 = icmp eq i32 %4357, 0
  br i1 %4358, label %4412, label %4359

4359:                                             ; preds = %4351
  br label %4360

4360:                                             ; preds = %4359
  br label %4361

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

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

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

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

4407:                                             ; preds = %4390, %4373
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %4408

4408:                                             ; preds = %4407
  br label %4409

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

4410:                                             ; No predecessors!
  br label %4411

4411:                                             ; preds = %4410
  br label %4412

4412:                                             ; preds = %4411, %4351
  br label %4413

4413:                                             ; preds = %4412
  br label %4414

4414:                                             ; preds = %4413
  br label %4415

4415:                                             ; preds = %4414
  br label %4416

4416:                                             ; preds = %4415
  br label %4417

4417:                                             ; preds = %4416
  %4418 = load i32, ptr @test_count, align 4, !tbaa !5
  %4419 = add nsw i32 %4418, 1
  store i32 %4419, ptr @test_count, align 4, !tbaa !5
  %4420 = load ptr, ptr %82, align 8, !tbaa !9
  %4421 = getelementptr inbounds %struct.s2n_connection, ptr %4420, i32 0, i32 52
  %4422 = getelementptr inbounds %struct.s2n_handshake, ptr %4421, i32 0, i32 5
  %4423 = load i8, ptr %4422, align 8, !tbaa !48
  %4424 = zext i8 %4423 to i32
  %4425 = icmp eq i32 %4424, 0
  br i1 %4425, label %4479, label %4426

4426:                                             ; preds = %4417
  br label %4427

4427:                                             ; preds = %4426
  br label %4428

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

4435:                                             ; preds = %4428
  %4436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4437 = call i32 @fileno(ptr noundef %4436) #9
  %4438 = call i32 @isatty(i32 noundef %4437) #9
  %4439 = icmp ne i32 %4438, 0
  br i1 %4439, label %4440, label %4457

4440:                                             ; preds = %4435
  %4441 = load i32, ptr %85, align 4, !tbaa !5
  %4442 = call ptr @__errno_location() #10
  store i32 %4441, ptr %4442, align 4, !tbaa !5
  %4443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4444 = load i32, ptr @test_count, align 4, !tbaa !5
  %4445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  %4447 = call ptr @s2n_strerror(i32 noundef %4446, ptr noundef @.str.4)
  %4448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4449 = load i32, ptr %4448, align 4, !tbaa !5
  %4450 = call ptr @s2n_strerror_debug(i32 noundef %4449, ptr noundef @.str.4)
  %4451 = call ptr @__errno_location() #10
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  %4453 = call ptr @strerror(i32 noundef %4452) #9
  %4454 = call ptr @__errno_location() #10
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  %4456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4443, ptr noundef @.str.2, i32 noundef %4444, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 175, ptr noundef %4447, ptr noundef %4450, ptr noundef %4453, i32 noundef %4455) #9
  br label %4474

4457:                                             ; preds = %4435, %4428
  %4458 = load i32, ptr %85, align 4, !tbaa !5
  %4459 = call ptr @__errno_location() #10
  store i32 %4458, ptr %4459, align 4, !tbaa !5
  %4460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4461 = load i32, ptr @test_count, align 4, !tbaa !5
  %4462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4463 = load i32, ptr %4462, align 4, !tbaa !5
  %4464 = call ptr @s2n_strerror(i32 noundef %4463, ptr noundef @.str.4)
  %4465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4466 = load i32, ptr %4465, align 4, !tbaa !5
  %4467 = call ptr @s2n_strerror_debug(i32 noundef %4466, ptr noundef @.str.4)
  %4468 = call ptr @__errno_location() #10
  %4469 = load i32, ptr %4468, align 4, !tbaa !5
  %4470 = call ptr @strerror(i32 noundef %4469) #9
  %4471 = call ptr @__errno_location() #10
  %4472 = load i32, ptr %4471, align 4, !tbaa !5
  %4473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4460, ptr noundef @.str.5, i32 noundef %4461, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 175, ptr noundef %4464, ptr noundef %4467, ptr noundef %4470, i32 noundef %4472) #9
  br label %4474

4474:                                             ; preds = %4457, %4440
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %4475

4475:                                             ; preds = %4474
  br label %4476

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

4477:                                             ; No predecessors!
  br label %4478

4478:                                             ; preds = %4477
  br label %4479

4479:                                             ; preds = %4478, %4417
  br label %4480

4480:                                             ; preds = %4479
  br label %4481

4481:                                             ; preds = %4480
  br label %4482

4482:                                             ; preds = %4481
  %4483 = load i32, ptr @test_count, align 4, !tbaa !5
  %4484 = add nsw i32 %4483, 1
  store i32 %4484, ptr @test_count, align 4, !tbaa !5
  %4485 = load ptr, ptr %82, align 8, !tbaa !9
  %4486 = getelementptr inbounds %struct.s2n_connection, ptr %4485, i32 0, i32 30
  %4487 = load ptr, ptr %4486, align 8, !tbaa !53
  %4488 = load ptr, ptr %82, align 8, !tbaa !9
  %4489 = getelementptr inbounds %struct.s2n_connection, ptr %4488, i32 0, i32 27
  %4490 = load ptr, ptr %4489, align 8, !tbaa !16
  %4491 = icmp eq ptr %4487, %4490
  br i1 %4491, label %4492, label %4545

4492:                                             ; preds = %4482
  br label %4493

4493:                                             ; preds = %4492
  br label %4494

4494:                                             ; preds = %4493
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %4495 = call ptr @__errno_location() #10
  %4496 = load i32, ptr %4495, align 4, !tbaa !5
  store i32 %4496, ptr %86, align 4, !tbaa !5
  %4497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4498 = call i32 @s2n_print_stacktrace(ptr noundef %4497)
  %4499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4500 = trunc i8 %4499 to i1
  br i1 %4500, label %4501, label %4523

4501:                                             ; preds = %4494
  %4502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4503 = call i32 @fileno(ptr noundef %4502) #9
  %4504 = call i32 @isatty(i32 noundef %4503) #9
  %4505 = icmp ne i32 %4504, 0
  br i1 %4505, label %4506, label %4523

4506:                                             ; preds = %4501
  %4507 = load i32, ptr %86, align 4, !tbaa !5
  %4508 = call ptr @__errno_location() #10
  store i32 %4507, ptr %4508, align 4, !tbaa !5
  %4509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4510 = load i32, ptr @test_count, align 4, !tbaa !5
  %4511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4512 = load i32, ptr %4511, align 4, !tbaa !5
  %4513 = call ptr @s2n_strerror(i32 noundef %4512, ptr noundef @.str.4)
  %4514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4515 = load i32, ptr %4514, align 4, !tbaa !5
  %4516 = call ptr @s2n_strerror_debug(i32 noundef %4515, ptr noundef @.str.4)
  %4517 = call ptr @__errno_location() #10
  %4518 = load i32, ptr %4517, align 4, !tbaa !5
  %4519 = call ptr @strerror(i32 noundef %4518) #9
  %4520 = call ptr @__errno_location() #10
  %4521 = load i32, ptr %4520, align 4, !tbaa !5
  %4522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4509, ptr noundef @.str.2, i32 noundef %4510, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 176, ptr noundef %4513, ptr noundef %4516, ptr noundef %4519, i32 noundef %4521) #9
  br label %4540

4523:                                             ; preds = %4501, %4494
  %4524 = load i32, ptr %86, align 4, !tbaa !5
  %4525 = call ptr @__errno_location() #10
  store i32 %4524, ptr %4525, align 4, !tbaa !5
  %4526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4527 = load i32, ptr @test_count, align 4, !tbaa !5
  %4528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4529 = load i32, ptr %4528, align 4, !tbaa !5
  %4530 = call ptr @s2n_strerror(i32 noundef %4529, ptr noundef @.str.4)
  %4531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4532 = load i32, ptr %4531, align 4, !tbaa !5
  %4533 = call ptr @s2n_strerror_debug(i32 noundef %4532, ptr noundef @.str.4)
  %4534 = call ptr @__errno_location() #10
  %4535 = load i32, ptr %4534, align 4, !tbaa !5
  %4536 = call ptr @strerror(i32 noundef %4535) #9
  %4537 = call ptr @__errno_location() #10
  %4538 = load i32, ptr %4537, align 4, !tbaa !5
  %4539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4526, ptr noundef @.str.5, i32 noundef %4527, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 176, ptr noundef %4530, ptr noundef %4533, ptr noundef %4536, i32 noundef %4538) #9
  br label %4540

4540:                                             ; preds = %4523, %4506
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %4541

4541:                                             ; preds = %4540
  br label %4542

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

4543:                                             ; No predecessors!
  br label %4544

4544:                                             ; preds = %4543
  br label %4545

4545:                                             ; preds = %4544, %4482
  br label %4546

4546:                                             ; preds = %4545
  br label %4547

4547:                                             ; preds = %4546
  br label %4548

4548:                                             ; preds = %4547
  %4549 = load i32, ptr @test_count, align 4, !tbaa !5
  %4550 = add nsw i32 %4549, 1
  store i32 %4550, ptr @test_count, align 4, !tbaa !5
  %4551 = load ptr, ptr %82, align 8, !tbaa !9
  %4552 = getelementptr inbounds %struct.s2n_connection, ptr %4551, i32 0, i32 45
  %4553 = call i32 @s2n_stuffer_write_uint8(ptr noundef %4552, i8 noundef zeroext 1)
  %4554 = icmp eq i32 %4553, -1
  br i1 %4554, label %4555, label %4608

4555:                                             ; preds = %4548
  br label %4556

4556:                                             ; preds = %4555
  br label %4557

4557:                                             ; preds = %4556
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  %4558 = call ptr @__errno_location() #10
  %4559 = load i32, ptr %4558, align 4, !tbaa !5
  store i32 %4559, ptr %87, align 4, !tbaa !5
  %4560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4561 = call i32 @s2n_print_stacktrace(ptr noundef %4560)
  %4562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4563 = trunc i8 %4562 to i1
  br i1 %4563, label %4564, label %4586

4564:                                             ; preds = %4557
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = call i32 @fileno(ptr noundef %4565) #9
  %4567 = call i32 @isatty(i32 noundef %4566) #9
  %4568 = icmp ne i32 %4567, 0
  br i1 %4568, label %4569, label %4586

4569:                                             ; preds = %4564
  %4570 = load i32, ptr %87, align 4, !tbaa !5
  %4571 = call ptr @__errno_location() #10
  store i32 %4570, ptr %4571, align 4, !tbaa !5
  %4572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4573 = load i32, ptr @test_count, align 4, !tbaa !5
  %4574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  %4576 = call ptr @s2n_strerror(i32 noundef %4575, ptr noundef @.str.4)
  %4577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4578 = load i32, ptr %4577, align 4, !tbaa !5
  %4579 = call ptr @s2n_strerror_debug(i32 noundef %4578, ptr noundef @.str.4)
  %4580 = call ptr @__errno_location() #10
  %4581 = load i32, ptr %4580, align 4, !tbaa !5
  %4582 = call ptr @strerror(i32 noundef %4581) #9
  %4583 = call ptr @__errno_location() #10
  %4584 = load i32, ptr %4583, align 4, !tbaa !5
  %4585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4572, ptr noundef @.str.2, i32 noundef %4573, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 177, ptr noundef %4576, ptr noundef %4579, ptr noundef %4582, i32 noundef %4584) #9
  br label %4603

4586:                                             ; preds = %4564, %4557
  %4587 = load i32, ptr %87, align 4, !tbaa !5
  %4588 = call ptr @__errno_location() #10
  store i32 %4587, ptr %4588, align 4, !tbaa !5
  %4589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4590 = load i32, ptr @test_count, align 4, !tbaa !5
  %4591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4592 = load i32, ptr %4591, align 4, !tbaa !5
  %4593 = call ptr @s2n_strerror(i32 noundef %4592, ptr noundef @.str.4)
  %4594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4595 = load i32, ptr %4594, align 4, !tbaa !5
  %4596 = call ptr @s2n_strerror_debug(i32 noundef %4595, ptr noundef @.str.4)
  %4597 = call ptr @__errno_location() #10
  %4598 = load i32, ptr %4597, align 4, !tbaa !5
  %4599 = call ptr @strerror(i32 noundef %4598) #9
  %4600 = call ptr @__errno_location() #10
  %4601 = load i32, ptr %4600, align 4, !tbaa !5
  %4602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4589, ptr noundef @.str.5, i32 noundef %4590, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 177, ptr noundef %4593, ptr noundef %4596, ptr noundef %4599, i32 noundef %4601) #9
  br label %4603

4603:                                             ; preds = %4586, %4569
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %4604

4604:                                             ; preds = %4603
  br label %4605

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

4606:                                             ; No predecessors!
  br label %4607

4607:                                             ; preds = %4606
  br label %4608

4608:                                             ; preds = %4607, %4548
  br label %4609

4609:                                             ; preds = %4608
  br label %4610

4610:                                             ; preds = %4609
  br label %4611

4611:                                             ; preds = %4610
  %4612 = load i32, ptr @test_count, align 4, !tbaa !5
  %4613 = add nsw i32 %4612, 1
  store i32 %4613, ptr @test_count, align 4, !tbaa !5
  %4614 = load ptr, ptr %82, align 8, !tbaa !9
  %4615 = call i32 @s2n_ccs_send(ptr noundef %4614)
  %4616 = icmp eq i32 %4615, -1
  br i1 %4616, label %4617, label %4670

4617:                                             ; preds = %4611
  br label %4618

4618:                                             ; preds = %4617
  br label %4619

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

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

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

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

4665:                                             ; preds = %4648, %4631
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %4666

4666:                                             ; preds = %4665
  br label %4667

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

4668:                                             ; No predecessors!
  br label %4669

4669:                                             ; preds = %4668
  br label %4670

4670:                                             ; preds = %4669, %4611
  br label %4671

4671:                                             ; preds = %4670
  br label %4672

4672:                                             ; preds = %4671
  br label %4673

4673:                                             ; preds = %4672
  %4674 = load i32, ptr @test_count, align 4, !tbaa !5
  %4675 = add nsw i32 %4674, 1
  store i32 %4675, ptr @test_count, align 4, !tbaa !5
  %4676 = load ptr, ptr %82, align 8, !tbaa !9
  %4677 = call i32 @s2n_server_ccs_recv(ptr noundef %4676)
  %4678 = icmp eq i32 %4677, -1
  br i1 %4678, label %4679, label %4732

4679:                                             ; preds = %4673
  br label %4680

4680:                                             ; preds = %4679
  br label %4681

4681:                                             ; preds = %4680
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  %4682 = call ptr @__errno_location() #10
  %4683 = load i32, ptr %4682, align 4, !tbaa !5
  store i32 %4683, ptr %89, align 4, !tbaa !5
  %4684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4685 = call i32 @s2n_print_stacktrace(ptr noundef %4684)
  %4686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4687 = trunc i8 %4686 to i1
  br i1 %4687, label %4688, label %4710

4688:                                             ; preds = %4681
  %4689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4690 = call i32 @fileno(ptr noundef %4689) #9
  %4691 = call i32 @isatty(i32 noundef %4690) #9
  %4692 = icmp ne i32 %4691, 0
  br i1 %4692, label %4693, label %4710

4693:                                             ; preds = %4688
  %4694 = load i32, ptr %89, align 4, !tbaa !5
  %4695 = call ptr @__errno_location() #10
  store i32 %4694, ptr %4695, align 4, !tbaa !5
  %4696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4697 = load i32, ptr @test_count, align 4, !tbaa !5
  %4698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4699 = load i32, ptr %4698, align 4, !tbaa !5
  %4700 = call ptr @s2n_strerror(i32 noundef %4699, ptr noundef @.str.4)
  %4701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4702 = load i32, ptr %4701, align 4, !tbaa !5
  %4703 = call ptr @s2n_strerror_debug(i32 noundef %4702, ptr noundef @.str.4)
  %4704 = call ptr @__errno_location() #10
  %4705 = load i32, ptr %4704, align 4, !tbaa !5
  %4706 = call ptr @strerror(i32 noundef %4705) #9
  %4707 = call ptr @__errno_location() #10
  %4708 = load i32, ptr %4707, align 4, !tbaa !5
  %4709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4696, ptr noundef @.str.2, i32 noundef %4697, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 180, ptr noundef %4700, ptr noundef %4703, ptr noundef %4706, i32 noundef %4708) #9
  br label %4727

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

4727:                                             ; preds = %4710, %4693
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %4728

4728:                                             ; preds = %4727
  br label %4729

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

4730:                                             ; No predecessors!
  br label %4731

4731:                                             ; preds = %4730
  br label %4732

4732:                                             ; preds = %4731, %4673
  br label %4733

4733:                                             ; preds = %4732
  br label %4734

4734:                                             ; preds = %4733
  br label %4735

4735:                                             ; preds = %4734
  %4736 = load i32, ptr @test_count, align 4, !tbaa !5
  %4737 = add nsw i32 %4736, 1
  store i32 %4737, ptr @test_count, align 4, !tbaa !5
  %4738 = load ptr, ptr %82, align 8, !tbaa !9
  %4739 = getelementptr inbounds %struct.s2n_connection, ptr %4738, i32 0, i32 27
  %4740 = load ptr, ptr %4739, align 8, !tbaa !16
  %4741 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4740, i32 0, i32 8
  %4742 = getelementptr inbounds [8 x i8], ptr %4741, i64 0, i64 0
  %4743 = load i8, ptr %4742, align 8, !tbaa !15
  %4744 = zext i8 %4743 to i32
  %4745 = icmp eq i32 %4744, 0
  br i1 %4745, label %4799, label %4746

4746:                                             ; preds = %4735
  br label %4747

4747:                                             ; preds = %4746
  br label %4748

4748:                                             ; preds = %4747
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  %4749 = call ptr @__errno_location() #10
  %4750 = load i32, ptr %4749, align 4, !tbaa !5
  store i32 %4750, ptr %90, align 4, !tbaa !5
  %4751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4752 = call i32 @s2n_print_stacktrace(ptr noundef %4751)
  %4753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4754 = trunc i8 %4753 to i1
  br i1 %4754, label %4755, label %4777

4755:                                             ; preds = %4748
  %4756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4757 = call i32 @fileno(ptr noundef %4756) #9
  %4758 = call i32 @isatty(i32 noundef %4757) #9
  %4759 = icmp ne i32 %4758, 0
  br i1 %4759, label %4760, label %4777

4760:                                             ; preds = %4755
  %4761 = load i32, ptr %90, align 4, !tbaa !5
  %4762 = call ptr @__errno_location() #10
  store i32 %4761, ptr %4762, align 4, !tbaa !5
  %4763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4764 = load i32, ptr @test_count, align 4, !tbaa !5
  %4765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4766 = load i32, ptr %4765, align 4, !tbaa !5
  %4767 = call ptr @s2n_strerror(i32 noundef %4766, ptr noundef @.str.4)
  %4768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4769 = load i32, ptr %4768, align 4, !tbaa !5
  %4770 = call ptr @s2n_strerror_debug(i32 noundef %4769, ptr noundef @.str.4)
  %4771 = call ptr @__errno_location() #10
  %4772 = load i32, ptr %4771, align 4, !tbaa !5
  %4773 = call ptr @strerror(i32 noundef %4772) #9
  %4774 = call ptr @__errno_location() #10
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4763, ptr noundef @.str.2, i32 noundef %4764, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 183, ptr noundef %4767, ptr noundef %4770, ptr noundef %4773, i32 noundef %4775) #9
  br label %4794

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

4794:                                             ; preds = %4777, %4760
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %4795

4795:                                             ; preds = %4794
  br label %4796

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

4797:                                             ; No predecessors!
  br label %4798

4798:                                             ; preds = %4797
  br label %4799

4799:                                             ; preds = %4798, %4735
  br label %4800

4800:                                             ; preds = %4799
  br label %4801

4801:                                             ; preds = %4800
  br label %4802

4802:                                             ; preds = %4801
  %4803 = load i32, ptr @test_count, align 4, !tbaa !5
  %4804 = add nsw i32 %4803, 1
  store i32 %4804, ptr @test_count, align 4, !tbaa !5
  %4805 = load ptr, ptr %82, align 8, !tbaa !9
  %4806 = getelementptr inbounds %struct.s2n_connection, ptr %4805, i32 0, i32 52
  %4807 = getelementptr inbounds %struct.s2n_handshake, ptr %4806, i32 0, i32 3
  %4808 = call i32 @memcmp(ptr noundef %4807, ptr noundef %10, i64 noundef 12) #12
  %4809 = icmp eq i32 %4808, 0
  br i1 %4809, label %4810, label %4863

4810:                                             ; preds = %4802
  br label %4811

4811:                                             ; preds = %4810
  br label %4812

4812:                                             ; preds = %4811
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %4813 = call ptr @__errno_location() #10
  %4814 = load i32, ptr %4813, align 4, !tbaa !5
  store i32 %4814, ptr %91, align 4, !tbaa !5
  %4815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4816 = call i32 @s2n_print_stacktrace(ptr noundef %4815)
  %4817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4818 = trunc i8 %4817 to i1
  br i1 %4818, label %4819, label %4841

4819:                                             ; preds = %4812
  %4820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4821 = call i32 @fileno(ptr noundef %4820) #9
  %4822 = call i32 @isatty(i32 noundef %4821) #9
  %4823 = icmp ne i32 %4822, 0
  br i1 %4823, label %4824, label %4841

4824:                                             ; preds = %4819
  %4825 = load i32, ptr %91, align 4, !tbaa !5
  %4826 = call ptr @__errno_location() #10
  store i32 %4825, ptr %4826, align 4, !tbaa !5
  %4827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4828 = load i32, ptr @test_count, align 4, !tbaa !5
  %4829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  %4831 = call ptr @s2n_strerror(i32 noundef %4830, ptr noundef @.str.4)
  %4832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4833 = load i32, ptr %4832, align 4, !tbaa !5
  %4834 = call ptr @s2n_strerror_debug(i32 noundef %4833, ptr noundef @.str.4)
  %4835 = call ptr @__errno_location() #10
  %4836 = load i32, ptr %4835, align 4, !tbaa !5
  %4837 = call ptr @strerror(i32 noundef %4836) #9
  %4838 = call ptr @__errno_location() #10
  %4839 = load i32, ptr %4838, align 4, !tbaa !5
  %4840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4827, ptr noundef @.str.2, i32 noundef %4828, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 184, ptr noundef %4831, ptr noundef %4834, ptr noundef %4837, i32 noundef %4839) #9
  br label %4858

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

4858:                                             ; preds = %4841, %4824
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %4859

4859:                                             ; preds = %4858
  br label %4860

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

4861:                                             ; No predecessors!
  br label %4862

4862:                                             ; preds = %4861
  br label %4863

4863:                                             ; preds = %4862, %4802
  br label %4864

4864:                                             ; preds = %4863
  br label %4865

4865:                                             ; preds = %4864
  br label %4866

4866:                                             ; preds = %4865
  %4867 = load i32, ptr @test_count, align 4, !tbaa !5
  %4868 = add nsw i32 %4867, 1
  store i32 %4868, ptr @test_count, align 4, !tbaa !5
  %4869 = load ptr, ptr %82, align 8, !tbaa !9
  %4870 = getelementptr inbounds %struct.s2n_connection, ptr %4869, i32 0, i32 52
  %4871 = getelementptr inbounds %struct.s2n_handshake, ptr %4870, i32 0, i32 5
  %4872 = load i8, ptr %4871, align 8, !tbaa !48
  %4873 = zext i8 %4872 to i32
  %4874 = icmp eq i32 %4873, 36
  br i1 %4874, label %4928, label %4875

4875:                                             ; preds = %4866
  br label %4876

4876:                                             ; preds = %4875
  br label %4877

4877:                                             ; preds = %4876
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %4878 = call ptr @__errno_location() #10
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  store i32 %4879, ptr %92, align 4, !tbaa !5
  %4880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4881 = call i32 @s2n_print_stacktrace(ptr noundef %4880)
  %4882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4883 = trunc i8 %4882 to i1
  br i1 %4883, label %4884, label %4906

4884:                                             ; preds = %4877
  %4885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4886 = call i32 @fileno(ptr noundef %4885) #9
  %4887 = call i32 @isatty(i32 noundef %4886) #9
  %4888 = icmp ne i32 %4887, 0
  br i1 %4888, label %4889, label %4906

4889:                                             ; preds = %4884
  %4890 = load i32, ptr %92, align 4, !tbaa !5
  %4891 = call ptr @__errno_location() #10
  store i32 %4890, ptr %4891, align 4, !tbaa !5
  %4892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4893 = load i32, ptr @test_count, align 4, !tbaa !5
  %4894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4895 = load i32, ptr %4894, align 4, !tbaa !5
  %4896 = call ptr @s2n_strerror(i32 noundef %4895, ptr noundef @.str.4)
  %4897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4898 = load i32, ptr %4897, align 4, !tbaa !5
  %4899 = call ptr @s2n_strerror_debug(i32 noundef %4898, ptr noundef @.str.4)
  %4900 = call ptr @__errno_location() #10
  %4901 = load i32, ptr %4900, align 4, !tbaa !5
  %4902 = call ptr @strerror(i32 noundef %4901) #9
  %4903 = call ptr @__errno_location() #10
  %4904 = load i32, ptr %4903, align 4, !tbaa !5
  %4905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4892, ptr noundef @.str.2, i32 noundef %4893, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 185, ptr noundef %4896, ptr noundef %4899, ptr noundef %4902, i32 noundef %4904) #9
  br label %4923

4906:                                             ; preds = %4884, %4877
  %4907 = load i32, ptr %92, align 4, !tbaa !5
  %4908 = call ptr @__errno_location() #10
  store i32 %4907, ptr %4908, align 4, !tbaa !5
  %4909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4910 = load i32, ptr @test_count, align 4, !tbaa !5
  %4911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4912 = load i32, ptr %4911, align 4, !tbaa !5
  %4913 = call ptr @s2n_strerror(i32 noundef %4912, ptr noundef @.str.4)
  %4914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4915 = load i32, ptr %4914, align 4, !tbaa !5
  %4916 = call ptr @s2n_strerror_debug(i32 noundef %4915, ptr noundef @.str.4)
  %4917 = call ptr @__errno_location() #10
  %4918 = load i32, ptr %4917, align 4, !tbaa !5
  %4919 = call ptr @strerror(i32 noundef %4918) #9
  %4920 = call ptr @__errno_location() #10
  %4921 = load i32, ptr %4920, align 4, !tbaa !5
  %4922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4909, ptr noundef @.str.5, i32 noundef %4910, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 185, ptr noundef %4913, ptr noundef %4916, ptr noundef %4919, i32 noundef %4921) #9
  br label %4923

4923:                                             ; preds = %4906, %4889
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %4924

4924:                                             ; preds = %4923
  br label %4925

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

4926:                                             ; No predecessors!
  br label %4927

4927:                                             ; preds = %4926
  br label %4928

4928:                                             ; preds = %4927, %4866
  br label %4929

4929:                                             ; preds = %4928
  br label %4930

4930:                                             ; preds = %4929
  br label %4931

4931:                                             ; preds = %4930
  %4932 = load i32, ptr @test_count, align 4, !tbaa !5
  %4933 = add nsw i32 %4932, 1
  store i32 %4933, ptr @test_count, align 4, !tbaa !5
  %4934 = load ptr, ptr %82, align 8, !tbaa !9
  %4935 = getelementptr inbounds %struct.s2n_connection, ptr %4934, i32 0, i32 30
  %4936 = load ptr, ptr %4935, align 8, !tbaa !53
  %4937 = load ptr, ptr %82, align 8, !tbaa !9
  %4938 = getelementptr inbounds %struct.s2n_connection, ptr %4937, i32 0, i32 27
  %4939 = load ptr, ptr %4938, align 8, !tbaa !16
  %4940 = icmp eq ptr %4936, %4939
  br i1 %4940, label %4994, label %4941

4941:                                             ; preds = %4931
  br label %4942

4942:                                             ; preds = %4941
  br label %4943

4943:                                             ; preds = %4942
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %4944 = call ptr @__errno_location() #10
  %4945 = load i32, ptr %4944, align 4, !tbaa !5
  store i32 %4945, ptr %93, align 4, !tbaa !5
  %4946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4947 = call i32 @s2n_print_stacktrace(ptr noundef %4946)
  %4948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4949 = trunc i8 %4948 to i1
  br i1 %4949, label %4950, label %4972

4950:                                             ; preds = %4943
  %4951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4952 = call i32 @fileno(ptr noundef %4951) #9
  %4953 = call i32 @isatty(i32 noundef %4952) #9
  %4954 = icmp ne i32 %4953, 0
  br i1 %4954, label %4955, label %4972

4955:                                             ; preds = %4950
  %4956 = load i32, ptr %93, align 4, !tbaa !5
  %4957 = call ptr @__errno_location() #10
  store i32 %4956, ptr %4957, align 4, !tbaa !5
  %4958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4959 = load i32, ptr @test_count, align 4, !tbaa !5
  %4960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4961 = load i32, ptr %4960, align 4, !tbaa !5
  %4962 = call ptr @s2n_strerror(i32 noundef %4961, ptr noundef @.str.4)
  %4963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4964 = load i32, ptr %4963, align 4, !tbaa !5
  %4965 = call ptr @s2n_strerror_debug(i32 noundef %4964, ptr noundef @.str.4)
  %4966 = call ptr @__errno_location() #10
  %4967 = load i32, ptr %4966, align 4, !tbaa !5
  %4968 = call ptr @strerror(i32 noundef %4967) #9
  %4969 = call ptr @__errno_location() #10
  %4970 = load i32, ptr %4969, align 4, !tbaa !5
  %4971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4958, ptr noundef @.str.2, i32 noundef %4959, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4962, ptr noundef %4965, ptr noundef %4968, i32 noundef %4970) #9
  br label %4989

4972:                                             ; preds = %4950, %4943
  %4973 = load i32, ptr %93, align 4, !tbaa !5
  %4974 = call ptr @__errno_location() #10
  store i32 %4973, ptr %4974, align 4, !tbaa !5
  %4975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4976 = load i32, ptr @test_count, align 4, !tbaa !5
  %4977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4978 = load i32, ptr %4977, align 4, !tbaa !5
  %4979 = call ptr @s2n_strerror(i32 noundef %4978, ptr noundef @.str.4)
  %4980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4981 = load i32, ptr %4980, align 4, !tbaa !5
  %4982 = call ptr @s2n_strerror_debug(i32 noundef %4981, ptr noundef @.str.4)
  %4983 = call ptr @__errno_location() #10
  %4984 = load i32, ptr %4983, align 4, !tbaa !5
  %4985 = call ptr @strerror(i32 noundef %4984) #9
  %4986 = call ptr @__errno_location() #10
  %4987 = load i32, ptr %4986, align 4, !tbaa !5
  %4988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4975, ptr noundef @.str.5, i32 noundef %4976, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4979, ptr noundef %4982, ptr noundef %4985, i32 noundef %4987) #9
  br label %4989

4989:                                             ; preds = %4972, %4955
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %4990

4990:                                             ; preds = %4989
  br label %4991

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

4992:                                             ; No predecessors!
  br label %4993

4993:                                             ; preds = %4992
  br label %4994

4994:                                             ; preds = %4993, %4931
  br label %4995

4995:                                             ; preds = %4994
  br label %4996

4996:                                             ; preds = %4995
  br label %4997

4997:                                             ; preds = %4996
  %4998 = load i32, ptr @test_count, align 4, !tbaa !5
  %4999 = add nsw i32 %4998, 1
  store i32 %4999, ptr @test_count, align 4, !tbaa !5
  %5000 = load ptr, ptr %82, align 8, !tbaa !9
  %5001 = getelementptr inbounds %struct.s2n_connection, ptr %5000, i32 0, i32 45
  %5002 = getelementptr inbounds %struct.s2n_stuffer, ptr %5001, i32 0, i32 2
  %5003 = load i32, ptr %5002, align 4, !tbaa !50
  %5004 = load ptr, ptr %82, align 8, !tbaa !9
  %5005 = getelementptr inbounds %struct.s2n_connection, ptr %5004, i32 0, i32 45
  %5006 = getelementptr inbounds %struct.s2n_stuffer, ptr %5005, i32 0, i32 1
  %5007 = load i32, ptr %5006, align 8, !tbaa !51
  %5008 = sub i32 %5003, %5007
  %5009 = icmp ne i32 %5008, 0
  br i1 %5009, label %5010, label %5063

5010:                                             ; preds = %4997
  br label %5011

5011:                                             ; preds = %5010
  br label %5012

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

5019:                                             ; preds = %5012
  %5020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5021 = call i32 @fileno(ptr noundef %5020) #9
  %5022 = call i32 @isatty(i32 noundef %5021) #9
  %5023 = icmp ne i32 %5022, 0
  br i1 %5023, label %5024, label %5041

5024:                                             ; preds = %5019
  %5025 = load i32, ptr %94, align 4, !tbaa !5
  %5026 = call ptr @__errno_location() #10
  store i32 %5025, ptr %5026, align 4, !tbaa !5
  %5027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5028 = load i32, ptr @test_count, align 4, !tbaa !5
  %5029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5030 = load i32, ptr %5029, align 4, !tbaa !5
  %5031 = call ptr @s2n_strerror(i32 noundef %5030, ptr noundef @.str.4)
  %5032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5033 = load i32, ptr %5032, align 4, !tbaa !5
  %5034 = call ptr @s2n_strerror_debug(i32 noundef %5033, ptr noundef @.str.4)
  %5035 = call ptr @__errno_location() #10
  %5036 = load i32, ptr %5035, align 4, !tbaa !5
  %5037 = call ptr @strerror(i32 noundef %5036) #9
  %5038 = call ptr @__errno_location() #10
  %5039 = load i32, ptr %5038, align 4, !tbaa !5
  %5040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5027, ptr noundef @.str.2, i32 noundef %5028, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 187, ptr noundef %5031, ptr noundef %5034, ptr noundef %5037, i32 noundef %5039) #9
  br label %5058

5041:                                             ; preds = %5019, %5012
  %5042 = load i32, ptr %94, align 4, !tbaa !5
  %5043 = call ptr @__errno_location() #10
  store i32 %5042, ptr %5043, align 4, !tbaa !5
  %5044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5045 = load i32, ptr @test_count, align 4, !tbaa !5
  %5046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5047 = load i32, ptr %5046, align 4, !tbaa !5
  %5048 = call ptr @s2n_strerror(i32 noundef %5047, ptr noundef @.str.4)
  %5049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5050 = load i32, ptr %5049, align 4, !tbaa !5
  %5051 = call ptr @s2n_strerror_debug(i32 noundef %5050, ptr noundef @.str.4)
  %5052 = call ptr @__errno_location() #10
  %5053 = load i32, ptr %5052, align 4, !tbaa !5
  %5054 = call ptr @strerror(i32 noundef %5053) #9
  %5055 = call ptr @__errno_location() #10
  %5056 = load i32, ptr %5055, align 4, !tbaa !5
  %5057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5044, ptr noundef @.str.5, i32 noundef %5045, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 187, ptr noundef %5048, ptr noundef %5051, ptr noundef %5054, i32 noundef %5056) #9
  br label %5058

5058:                                             ; preds = %5041, %5024
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %5059

5059:                                             ; preds = %5058
  br label %5060

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

5061:                                             ; No predecessors!
  br label %5062

5062:                                             ; preds = %5061
  br label %5063

5063:                                             ; preds = %5062, %4997
  br label %5064

5064:                                             ; preds = %5063
  br label %5065

5065:                                             ; preds = %5064
  %5066 = call i32 @s2n_connection_ptr_free(ptr noundef %82)
  %5067 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  store i32 %5066, ptr %5067, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  br label %5068

5068:                                             ; preds = %5065
  br label %5069

5069:                                             ; preds = %5068
  %5070 = call i32 @s2n_cleanup()
  %5071 = icmp eq i32 %5070, -1
  br i1 %5071, label %5072, label %5125

5072:                                             ; preds = %5069
  br label %5073

5073:                                             ; preds = %5072
  br label %5074

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

5081:                                             ; preds = %5074
  %5082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5083 = call i32 @fileno(ptr noundef %5082) #9
  %5084 = call i32 @isatty(i32 noundef %5083) #9
  %5085 = icmp ne i32 %5084, 0
  br i1 %5085, label %5086, label %5103

5086:                                             ; preds = %5081
  %5087 = load i32, ptr %96, align 4, !tbaa !5
  %5088 = call ptr @__errno_location() #10
  store i32 %5087, ptr %5088, align 4, !tbaa !5
  %5089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5090 = load i32, ptr @test_count, align 4, !tbaa !5
  %5091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call ptr @s2n_strerror(i32 noundef %5092, ptr noundef @.str.4)
  %5094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  %5096 = call ptr @s2n_strerror_debug(i32 noundef %5095, ptr noundef @.str.4)
  %5097 = call ptr @__errno_location() #10
  %5098 = load i32, ptr %5097, align 4, !tbaa !5
  %5099 = call ptr @strerror(i32 noundef %5098) #9
  %5100 = call ptr @__errno_location() #10
  %5101 = load i32, ptr %5100, align 4, !tbaa !5
  %5102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5089, ptr noundef @.str.2, i32 noundef %5090, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 190, ptr noundef %5093, ptr noundef %5096, ptr noundef %5099, i32 noundef %5101) #9
  br label %5120

5103:                                             ; preds = %5081, %5074
  %5104 = load i32, ptr %96, align 4, !tbaa !5
  %5105 = call ptr @__errno_location() #10
  store i32 %5104, ptr %5105, align 4, !tbaa !5
  %5106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5107 = load i32, ptr @test_count, align 4, !tbaa !5
  %5108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5109 = load i32, ptr %5108, align 4, !tbaa !5
  %5110 = call ptr @s2n_strerror(i32 noundef %5109, ptr noundef @.str.4)
  %5111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5112 = load i32, ptr %5111, align 4, !tbaa !5
  %5113 = call ptr @s2n_strerror_debug(i32 noundef %5112, ptr noundef @.str.4)
  %5114 = call ptr @__errno_location() #10
  %5115 = load i32, ptr %5114, align 4, !tbaa !5
  %5116 = call ptr @strerror(i32 noundef %5115) #9
  %5117 = call ptr @__errno_location() #10
  %5118 = load i32, ptr %5117, align 4, !tbaa !5
  %5119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5106, ptr noundef @.str.5, i32 noundef %5107, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 190, ptr noundef %5110, ptr noundef %5113, ptr noundef %5116, i32 noundef %5118) #9
  br label %5120

5120:                                             ; preds = %5103, %5086
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  br label %5121

5121:                                             ; preds = %5120
  br label %5122

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

5123:                                             ; No predecessors!
  br label %5124

5124:                                             ; preds = %5123
  br label %5125

5125:                                             ; preds = %5124, %5069
  br label %5126

5126:                                             ; preds = %5125
  br label %5127

5127:                                             ; preds = %5126
  br label %5128

5128:                                             ; preds = %5127
  br label %5129

5129:                                             ; preds = %5128
  %5130 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5131 = icmp eq i32 %5130, -1
  br i1 %5131, label %5132, label %5185

5132:                                             ; preds = %5129
  br label %5133

5133:                                             ; preds = %5132
  br label %5134

5134:                                             ; preds = %5133
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %5135 = call ptr @__errno_location() #10
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  store i32 %5136, ptr %97, align 4, !tbaa !5
  %5137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5138 = call i32 @s2n_print_stacktrace(ptr noundef %5137)
  %5139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5140 = trunc i8 %5139 to i1
  br i1 %5140, label %5141, label %5163

5141:                                             ; preds = %5134
  %5142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5143 = call i32 @fileno(ptr noundef %5142) #9
  %5144 = call i32 @isatty(i32 noundef %5143) #9
  %5145 = icmp ne i32 %5144, 0
  br i1 %5145, label %5146, label %5163

5146:                                             ; preds = %5141
  %5147 = load i32, ptr %97, align 4, !tbaa !5
  %5148 = call ptr @__errno_location() #10
  store i32 %5147, ptr %5148, align 4, !tbaa !5
  %5149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5150 = load i32, ptr @test_count, align 4, !tbaa !5
  %5151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5152 = load i32, ptr %5151, align 4, !tbaa !5
  %5153 = call ptr @s2n_strerror(i32 noundef %5152, ptr noundef @.str.4)
  %5154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5155 = load i32, ptr %5154, align 4, !tbaa !5
  %5156 = call ptr @s2n_strerror_debug(i32 noundef %5155, ptr noundef @.str.4)
  %5157 = call ptr @__errno_location() #10
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call ptr @strerror(i32 noundef %5158) #9
  %5160 = call ptr @__errno_location() #10
  %5161 = load i32, ptr %5160, align 4, !tbaa !5
  %5162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5149, ptr noundef @.str.2, i32 noundef %5150, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 190, ptr noundef %5153, ptr noundef %5156, ptr noundef %5159, i32 noundef %5161) #9
  br label %5180

5163:                                             ; preds = %5141, %5134
  %5164 = load i32, ptr %97, align 4, !tbaa !5
  %5165 = call ptr @__errno_location() #10
  store i32 %5164, ptr %5165, align 4, !tbaa !5
  %5166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5167 = load i32, ptr @test_count, align 4, !tbaa !5
  %5168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5169 = load i32, ptr %5168, align 4, !tbaa !5
  %5170 = call ptr @s2n_strerror(i32 noundef %5169, ptr noundef @.str.4)
  %5171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5172 = load i32, ptr %5171, align 4, !tbaa !5
  %5173 = call ptr @s2n_strerror_debug(i32 noundef %5172, ptr noundef @.str.4)
  %5174 = call ptr @__errno_location() #10
  %5175 = load i32, ptr %5174, align 4, !tbaa !5
  %5176 = call ptr @strerror(i32 noundef %5175) #9
  %5177 = call ptr @__errno_location() #10
  %5178 = load i32, ptr %5177, align 4, !tbaa !5
  %5179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5166, ptr noundef @.str.5, i32 noundef %5167, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 190, ptr noundef %5170, ptr noundef %5173, ptr noundef %5176, i32 noundef %5178) #9
  br label %5180

5180:                                             ; preds = %5163, %5146
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %5181

5181:                                             ; preds = %5180
  br label %5182

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

5183:                                             ; No predecessors!
  br label %5184

5184:                                             ; preds = %5183
  br label %5185

5185:                                             ; preds = %5184, %5129
  br label %5186

5186:                                             ; preds = %5185
  br label %5187

5187:                                             ; preds = %5186
  %5188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5189 = trunc i8 %5188 to i1
  br i1 %5189, label %5190, label %5206

5190:                                             ; preds = %5187
  %5191 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5192 = call i32 @fileno(ptr noundef %5191) #9
  %5193 = call i32 @isatty(i32 noundef %5192) #9
  %5194 = icmp ne i32 %5193, 0
  br i1 %5194, label %5195, label %5206

5195:                                             ; preds = %5190
  %5196 = load i32, ptr @test_count, align 4, !tbaa !5
  %5197 = icmp ne i32 %5196, 0
  br i1 %5197, label %5198, label %5202

5198:                                             ; preds = %5195
  %5199 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5200 = load i32, ptr @test_count, align 4, !tbaa !5
  %5201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5199, ptr noundef @.str.41, i32 noundef %5200) #9
  br label %5205

5202:                                             ; preds = %5195
  %5203 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5203, ptr noundef @.str.42) #9
  br label %5205

5205:                                             ; preds = %5202, %5198
  br label %5217

5206:                                             ; preds = %5190, %5187
  %5207 = load i32, ptr @test_count, align 4, !tbaa !5
  %5208 = icmp ne i32 %5207, 0
  br i1 %5208, label %5209, label %5213

5209:                                             ; preds = %5206
  %5210 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5211 = load i32, ptr @test_count, align 4, !tbaa !5
  %5212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5210, ptr noundef @.str.43, i32 noundef %5211) #9
  br label %5216

5213:                                             ; preds = %5206
  %5214 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5214, ptr noundef @.str.44) #9
  br label %5216

5216:                                             ; preds = %5213, %5209
  br label %5217

5217:                                             ; preds = %5216, %5205
  store i32 0, ptr %3, align 4
  store i32 1, ptr %98, align 4
  br label %5222

5218:                                             ; No predecessors!
  br label %5219

5219:                                             ; preds = %5218
  br label %5220

5220:                                             ; preds = %5219
  br label %5221

5221:                                             ; preds = %5220
  store i32 0, ptr %98, align 4
  br label %5222

5222:                                             ; preds = %5221, %5217
  call void @llvm.lifetime.end.p0(i64 12, ptr %10) #9
  %5223 = load i32, ptr %98, align 4
  switch i32 %5223, label %5226 [
    i32 0, label %5224
    i32 1, label %5224
  ]

5224:                                             ; preds = %5222, %5222
  %5225 = load i32, ptr %3, align 4
  ret i32 %5225

5226:                                             ; preds = %5222
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #5

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #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 ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_ccs_send(ptr noundef) #2

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

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_basic_ccs_recv(ptr noundef) #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_client_ccs_recv(ptr noundef) #2

declare i32 @s2n_server_ccs_recv(ptr noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #8

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn nounwind }
attributes #12 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !10, i64 232}
!17 = !{!"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, !18, i64 160, !19, i64 168, !19, 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, !20, i64 240, !10, i64 632, !10, i64 640, !21, i64 648, !27, i64 1144, !30, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !33, i64 1776, !33, i64 1816, !33, i64 1856, !33, i64 1896, !6, i64 1936, !19, i64 1944, !7, i64 1952, !33, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !34, i64 2004, !34, i64 2008, !35, i64 2016, !32, i64 2208, !6, i64 2212, !32, i64 2216, !19, i64 2224, !7, i64 2232, !19, i64 2240, !19, i64 2248, !19, i64 2256, !34, i64 2264, !34, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !26, i64 2792, !6, i64 2816, !26, i64 2824, !26, i64 2848, !26, i64 2872, !37, i64 2896, !39, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !26, i64 3784, !6, i64 3808, !41, i64 3816, !7, i64 3848, !33, i64 3992, !26, i64 4032, !26, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !32, i64 4084, !32, i64 4086, !6, i64 4088, !6, i64 4092, !26, i64 4096, !6, i64 4120, !42, i64 4128, !34, i64 4176, !7, i64 4180, !7, i64 4181}
!18 = !{!"s2n_timer", !19, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!21 = !{!"s2n_kex_parameters", !22, i64 0, !23, i64 8, !7, i64 24, !23, i64 56, !24, i64 72, !24, i64 184, !7, i64 296, !25, i64 360, !26, i64 448, !26, i64 472}
!22 = !{!"s2n_dh_params", !10, i64 0}
!23 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!24 = !{!"s2n_kem_group_params", !10, i64 0, !25, i64 8, !23, i64 96}
!25 = !{!"s2n_kem_params", !10, i64 0, !26, i64 8, !26, i64 32, !26, i64 56, !12, i64 80}
!26 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!27 = !{!"s2n_handshake_parameters", !28, i64 0, !28, i64 48, !26, i64 96, !6, i64 120, !29, 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}
!28 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!29 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!30 = !{!"s2n_psk_parameters", !6, i64 0, !31, i64 8, !32, i64 40, !32, i64 42, !10, i64 48, !6, i64 56}
!31 = !{!"s2n_array", !26, i64 0, !6, i64 24, !6, i64 28}
!32 = !{!"short", !7, i64 0}
!33 = !{!"s2n_stuffer", !26, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!34 = !{!"", !6, i64 0}
!35 = !{!"s2n_handshake", !33, 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, !36, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!36 = !{!"s2n_offered_early_data", !10, i64 0}
!37 = !{!"s2n_client_hello", !26, i64 0, !38, i64 24, !26, i64 728, !26, i64 752, !26, 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}
!38 = !{!"", !7, i64 0, !26, i64 672, !32, i64 696}
!39 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !32, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !40, i64 48, !12, i64 52}
!40 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!41 = !{!"s2n_ticket_fields", !26, i64 0, !6, i64 24}
!42 = !{!"s2n_post_handshake", !33, i64 0, !7, i64 40}
!43 = !{!44, !10, i64 0}
!44 = !{!"s2n_crypto_parameters", !10, i64 0, !45, i64 8, !45, i64 16, !46, i64 24, !46, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!45 = !{!"s2n_session_key", !10, i64 0}
!46 = !{!"s2n_hmac_state", !6, i64 0, !32, i64 4, !6, i64 8, !32, i64 12, !7, i64 14, !47, i64 16, !47, i64 72, !47, i64 128, !47, i64 184, !7, i64 240, !7, i64 368}
!47 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !19, i64 16, !7, i64 24}
!48 = !{!17, !7, i64 2168}
!49 = !{!17, !10, i64 632}
!50 = !{!17, !6, i64 1988}
!51 = !{!17, !6, i64 1984}
!52 = !{!17, !7, i64 220}
!53 = !{!17, !10, i64 640}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, 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 [86 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [51 x i8], align 1
@s2n_ecdhe_rsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.22 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [39 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.31 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [12 x i8], align 1
  %4 = alloca i8, align 1
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %7 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #10
  %9 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10 = tail call i32 @fflush(ptr noundef %9)
  %11 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #10
  %12 = icmp eq i32 %11, -1
  br i1 %12, label %13, label %37

13:                                               ; preds = %2
  %14 = tail call ptr @__errno_location() #11
  %15 = load i32, ptr %14, align 4, !tbaa !5
  %16 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17 = tail call i32 @s2n_print_stacktrace(ptr noundef %16) #10
  %18 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19 = trunc nuw i8 %18 to i1
  br i1 %19, label %20, label %24

20:                                               ; preds = %13
  %21 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22 = tail call i32 @fileno(ptr noundef %21) #10
  %23 = tail call i32 @isatty(i32 noundef %22) #10
  %.not305 = icmp eq i32 %23, 0
  br i1 %.not305, label %24, label %25

24:                                               ; preds = %20, %13
  br label %25

25:                                               ; preds = %20, %24
  %.str.5.sink = phi ptr [ @.str.5, %24 ], [ @.str.2, %20 ]
  store i32 %15, ptr %14, align 4, !tbaa !5
  %26 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27 = load i32, ptr @test_count, align 4, !tbaa !5
  %28 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %29 = load i32, ptr %28, align 4, !tbaa !5
  %30 = tail call ptr @s2n_strerror(i32 noundef %29, ptr noundef nonnull @.str.4) #10
  %31 = load i32, ptr %28, align 4, !tbaa !5
  %32 = tail call ptr @s2n_strerror_debug(i32 noundef %31, ptr noundef nonnull @.str.4) #10
  %33 = load i32, ptr %14, align 4, !tbaa !5
  %34 = tail call ptr @strerror(i32 noundef %33) #10
  %35 = load i32, ptr %14, align 4, !tbaa !5
  %36 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26, ptr noundef nonnull %.str.5.sink, i32 noundef %27, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 24, ptr noundef %30, ptr noundef %32, ptr noundef %34, i32 noundef %35) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

37:                                               ; preds = %2
  %38 = load i32, ptr @test_count, align 4, !tbaa !5
  %39 = add nsw i32 %38, 1
  store i32 %39, ptr @test_count, align 4, !tbaa !5
  %40 = tail call i32 @s2n_enable_atexit() #10
  %41 = icmp eq i32 %40, -1
  br i1 %41, label %42, label %66

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

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

53:                                               ; preds = %49, %42
  br label %54

54:                                               ; preds = %49, %53
  %.str.5.sink316 = phi ptr [ @.str.5, %53 ], [ @.str.2, %49 ]
  store i32 %44, ptr %43, align 4, !tbaa !5
  %55 = load ptr, ptr @stderr, align 8, !tbaa !9
  %56 = load i32, ptr @test_count, align 4, !tbaa !5
  %57 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %58 = load i32, ptr %57, align 4, !tbaa !5
  %59 = tail call ptr @s2n_strerror(i32 noundef %58, ptr noundef nonnull @.str.4) #10
  %60 = load i32, ptr %57, align 4, !tbaa !5
  %61 = tail call ptr @s2n_strerror_debug(i32 noundef %60, ptr noundef nonnull @.str.4) #10
  %62 = load i32, ptr %43, align 4, !tbaa !5
  %63 = tail call ptr @strerror(i32 noundef %62) #10
  %64 = load i32, ptr %43, align 4, !tbaa !5
  %65 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %55, ptr noundef nonnull %.str.5.sink316, i32 noundef %56, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 24, ptr noundef %59, ptr noundef %61, ptr noundef %63, i32 noundef %64) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

66:                                               ; preds = %37
  %67 = tail call i32 @s2n_init() #10
  %68 = icmp eq i32 %67, -1
  br i1 %68, label %69, label %93

69:                                               ; preds = %66
  %70 = tail call ptr @__errno_location() #11
  %71 = load i32, ptr %70, align 4, !tbaa !5
  %72 = load ptr, ptr @stderr, align 8, !tbaa !9
  %73 = tail call i32 @s2n_print_stacktrace(ptr noundef %72) #10
  %74 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %75 = trunc nuw i8 %74 to i1
  br i1 %75, label %76, label %80

76:                                               ; preds = %69
  %77 = load ptr, ptr @stderr, align 8, !tbaa !9
  %78 = tail call i32 @fileno(ptr noundef %77) #10
  %79 = tail call i32 @isatty(i32 noundef %78) #10
  %.not303 = icmp eq i32 %79, 0
  br i1 %.not303, label %80, label %81

80:                                               ; preds = %76, %69
  br label %81

81:                                               ; preds = %76, %80
  %.str.5.sink327 = phi ptr [ @.str.5, %80 ], [ @.str.2, %76 ]
  store i32 %71, ptr %70, align 4, !tbaa !5
  %82 = load ptr, ptr @stderr, align 8, !tbaa !9
  %83 = load i32, ptr @test_count, align 4, !tbaa !5
  %84 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = tail call ptr @s2n_strerror(i32 noundef %85, ptr noundef nonnull @.str.4) #10
  %87 = load i32, ptr %84, align 4, !tbaa !5
  %88 = tail call ptr @s2n_strerror_debug(i32 noundef %87, ptr noundef nonnull @.str.4) #10
  %89 = load i32, ptr %70, align 4, !tbaa !5
  %90 = tail call ptr @strerror(i32 noundef %89) #10
  %91 = load i32, ptr %70, align 4, !tbaa !5
  %92 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull %.str.5.sink327, i32 noundef %83, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 24, ptr noundef %86, ptr noundef %88, ptr noundef %90, i32 noundef %91) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

93:                                               ; preds = %66
  %94 = load i32, ptr @test_count, align 4, !tbaa !5
  %95 = add nsw i32 %94, 1
  store i32 %95, ptr @test_count, align 4, !tbaa !5
  %96 = tail call i32 (...) @s2n_disable_tls13_in_test() #10
  %97 = icmp eq i32 %96, -1
  br i1 %97, label %98, label %122

98:                                               ; preds = %93
  %99 = tail call ptr @__errno_location() #11
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %102 = tail call i32 @s2n_print_stacktrace(ptr noundef %101) #10
  %103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %104 = trunc nuw i8 %103 to i1
  br i1 %104, label %105, label %109

105:                                              ; preds = %98
  %106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %107 = tail call i32 @fileno(ptr noundef %106) #10
  %108 = tail call i32 @isatty(i32 noundef %107) #10
  %.not302 = icmp eq i32 %108, 0
  br i1 %.not302, label %109, label %110

109:                                              ; preds = %105, %98
  br label %110

110:                                              ; preds = %105, %109
  %.str.5.sink338 = phi ptr [ @.str.5, %109 ], [ @.str.2, %105 ]
  store i32 %100, ptr %99, align 4, !tbaa !5
  %111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %112 = load i32, ptr @test_count, align 4, !tbaa !5
  %113 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = tail call ptr @s2n_strerror(i32 noundef %114, ptr noundef nonnull @.str.4) #10
  %116 = load i32, ptr %113, align 4, !tbaa !5
  %117 = tail call ptr @s2n_strerror_debug(i32 noundef %116, ptr noundef nonnull @.str.4) #10
  %118 = load i32, ptr %99, align 4, !tbaa !5
  %119 = tail call ptr @strerror(i32 noundef %118) #10
  %120 = load i32, ptr %99, align 4, !tbaa !5
  %121 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %111, ptr noundef nonnull %.str.5.sink338, i32 noundef %112, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 25, ptr noundef %115, ptr noundef %117, ptr noundef %119, i32 noundef %120) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

122:                                              ; preds = %93
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %3) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %3, i8 0, i64 12, i1 false)
  %123 = load i32, ptr @test_count, align 4, !tbaa !5
  %124 = add nsw i32 %123, 1
  store i32 %124, ptr @test_count, align 4, !tbaa !5
  %125 = tail call ptr @s2n_connection_new(i32 noundef 1) #10
  %126 = icmp eq ptr %125, null
  br i1 %126, label %127, label %151

127:                                              ; preds = %122
  %128 = tail call ptr @__errno_location() #11
  %129 = load i32, ptr %128, align 4, !tbaa !5
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = tail call i32 @s2n_print_stacktrace(ptr noundef %130) #10
  %132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %133 = trunc nuw i8 %132 to i1
  br i1 %133, label %134, label %138

134:                                              ; preds = %127
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = tail call i32 @fileno(ptr noundef %135) #10
  %137 = tail call i32 @isatty(i32 noundef %136) #10
  %.not301 = icmp eq i32 %137, 0
  br i1 %.not301, label %138, label %139

138:                                              ; preds = %134, %127
  br label %139

139:                                              ; preds = %134, %138
  %.str.5.sink349 = phi ptr [ @.str.5, %138 ], [ @.str.2, %134 ]
  store i32 %129, ptr %128, align 4, !tbaa !5
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = load i32, ptr @test_count, align 4, !tbaa !5
  %142 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = tail call ptr @s2n_strerror(i32 noundef %143, ptr noundef nonnull @.str.4) #10
  %145 = load i32, ptr %142, align 4, !tbaa !5
  %146 = tail call ptr @s2n_strerror_debug(i32 noundef %145, ptr noundef nonnull @.str.4) #10
  %147 = load i32, ptr %128, align 4, !tbaa !5
  %148 = tail call ptr @strerror(i32 noundef %147) #10
  %149 = load i32, ptr %128, align 4, !tbaa !5
  %150 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %140, ptr noundef nonnull %.str.5.sink349, i32 noundef %141, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %144, ptr noundef %146, ptr noundef %148, i32 noundef %149) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

151:                                              ; preds = %122
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = add nsw i32 %152, 1
  store i32 %153, ptr @test_count, align 4, !tbaa !5
  %154 = tail call i32 @s2n_ccs_send(ptr noundef nonnull %125) #10
  %155 = icmp eq i32 %154, -1
  br i1 %155, label %156, label %180

156:                                              ; preds = %151
  %157 = tail call ptr @__errno_location() #11
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = tail call i32 @s2n_print_stacktrace(ptr noundef %159) #10
  %161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %162 = trunc nuw i8 %161 to i1
  br i1 %162, label %163, label %167

163:                                              ; preds = %156
  %164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %165 = tail call i32 @fileno(ptr noundef %164) #10
  %166 = tail call i32 @isatty(i32 noundef %165) #10
  %.not300 = icmp eq i32 %166, 0
  br i1 %.not300, label %167, label %168

167:                                              ; preds = %163, %156
  br label %168

168:                                              ; preds = %163, %167
  %.str.5.sink360 = phi ptr [ @.str.5, %167 ], [ @.str.2, %163 ]
  store i32 %158, ptr %157, align 4, !tbaa !5
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = load i32, ptr @test_count, align 4, !tbaa !5
  %171 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = tail call ptr @s2n_strerror(i32 noundef %172, ptr noundef nonnull @.str.4) #10
  %174 = load i32, ptr %171, align 4, !tbaa !5
  %175 = tail call ptr @s2n_strerror_debug(i32 noundef %174, ptr noundef nonnull @.str.4) #10
  %176 = load i32, ptr %157, align 4, !tbaa !5
  %177 = tail call ptr @strerror(i32 noundef %176) #10
  %178 = load i32, ptr %157, align 4, !tbaa !5
  %179 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %169, ptr noundef nonnull %.str.5.sink360, i32 noundef %170, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 34, ptr noundef %173, ptr noundef %175, ptr noundef %177, i32 noundef %178) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

180:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #10
  store i8 0, ptr %4, align 1, !tbaa !15
  %181 = load i32, ptr @test_count, align 4, !tbaa !5
  %182 = add nsw i32 %181, 1
  store i32 %182, ptr @test_count, align 4, !tbaa !5
  %183 = getelementptr inbounds i8, ptr %125, i64 2016
  %184 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %183, ptr noundef nonnull %4) #10
  %185 = icmp eq i32 %184, -1
  br i1 %185, label %186, label %210

186:                                              ; preds = %180
  %187 = tail call ptr @__errno_location() #11
  %188 = load i32, ptr %187, align 4, !tbaa !5
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = call i32 @s2n_print_stacktrace(ptr noundef %189) #10
  %191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %192 = trunc nuw i8 %191 to i1
  br i1 %192, label %193, label %197

193:                                              ; preds = %186
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = call i32 @fileno(ptr noundef %194) #10
  %196 = call i32 @isatty(i32 noundef %195) #10
  %.not299 = icmp eq i32 %196, 0
  br i1 %.not299, label %197, label %198

197:                                              ; preds = %193, %186
  br label %198

198:                                              ; preds = %193, %197
  %.str.5.sink371 = phi ptr [ @.str.5, %197 ], [ @.str.2, %193 ]
  store i32 %188, ptr %187, align 4, !tbaa !5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = load i32, ptr @test_count, align 4, !tbaa !5
  %201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = call ptr @s2n_strerror(i32 noundef %202, ptr noundef nonnull @.str.4) #10
  %204 = load i32, ptr %201, align 4, !tbaa !5
  %205 = call ptr @s2n_strerror_debug(i32 noundef %204, ptr noundef nonnull @.str.4) #10
  %206 = load i32, ptr %187, align 4, !tbaa !5
  %207 = call ptr @strerror(i32 noundef %206) #10
  %208 = load i32, ptr %187, align 4, !tbaa !5
  %209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %199, ptr noundef nonnull %.str.5.sink371, i32 noundef %200, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %203, ptr noundef %205, ptr noundef %207, i32 noundef %208) #12
  call void @exit(i32 noundef 1) #13
  unreachable

210:                                              ; preds = %180
  %211 = load i32, ptr @test_count, align 4, !tbaa !5
  %212 = add nsw i32 %211, 1
  store i32 %212, ptr @test_count, align 4, !tbaa !5
  %213 = load i8, ptr %4, align 1, !tbaa !15
  %214 = icmp eq i8 %213, 1
  br i1 %214, label %239, label %215

215:                                              ; preds = %210
  %216 = tail call ptr @__errno_location() #11
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = call i32 @s2n_print_stacktrace(ptr noundef %218) #10
  %220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %221 = trunc nuw i8 %220 to i1
  br i1 %221, label %222, label %226

222:                                              ; preds = %215
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = call i32 @fileno(ptr noundef %223) #10
  %225 = call i32 @isatty(i32 noundef %224) #10
  %.not = icmp eq i32 %225, 0
  br i1 %.not, label %226, label %227

226:                                              ; preds = %222, %215
  br label %227

227:                                              ; preds = %222, %226
  %.str.5.sink382 = phi ptr [ @.str.5, %226 ], [ @.str.2, %222 ]
  store i32 %217, ptr %216, align 4, !tbaa !5
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = load i32, ptr @test_count, align 4, !tbaa !5
  %230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = call ptr @s2n_strerror(i32 noundef %231, ptr noundef nonnull @.str.4) #10
  %233 = load i32, ptr %230, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror_debug(i32 noundef %233, ptr noundef nonnull @.str.4) #10
  %235 = load i32, ptr %216, align 4, !tbaa !5
  %236 = call ptr @strerror(i32 noundef %235) #10
  %237 = load i32, ptr %216, align 4, !tbaa !5
  %238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %228, ptr noundef nonnull %.str.5.sink382, i32 noundef %229, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %232, ptr noundef %234, ptr noundef %236, i32 noundef %237) #12
  call void @exit(i32 noundef 1) #13
  unreachable

239:                                              ; preds = %210
  %240 = add nsw i32 %211, 2
  store i32 %240, ptr @test_count, align 4, !tbaa !5
  %241 = call i32 @s2n_connection_free(ptr noundef nonnull %125) #10
  %242 = icmp eq i32 %241, -1
  br i1 %242, label %243, label %267

243:                                              ; preds = %239
  %244 = tail call ptr @__errno_location() #11
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = call i32 @s2n_print_stacktrace(ptr noundef %246) #10
  %248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %249 = trunc nuw i8 %248 to i1
  br i1 %249, label %250, label %254

250:                                              ; preds = %243
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = call i32 @fileno(ptr noundef %251) #10
  %253 = call i32 @isatty(i32 noundef %252) #10
  %.not298 = icmp eq i32 %253, 0
  br i1 %.not298, label %254, label %255

254:                                              ; preds = %250, %243
  br label %255

255:                                              ; preds = %250, %254
  %.str.5.sink393 = phi ptr [ @.str.5, %254 ], [ @.str.2, %250 ]
  store i32 %245, ptr %244, align 4, !tbaa !5
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = load i32, ptr @test_count, align 4, !tbaa !5
  %258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror(i32 noundef %259, ptr noundef nonnull @.str.4) #10
  %261 = load i32, ptr %258, align 4, !tbaa !5
  %262 = call ptr @s2n_strerror_debug(i32 noundef %261, ptr noundef nonnull @.str.4) #10
  %263 = load i32, ptr %244, align 4, !tbaa !5
  %264 = call ptr @strerror(i32 noundef %263) #10
  %265 = load i32, ptr %244, align 4, !tbaa !5
  %266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %256, ptr noundef nonnull %.str.5.sink393, i32 noundef %257, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %260, ptr noundef %262, ptr noundef %264, i32 noundef %265) #12
  call void @exit(i32 noundef 1) #13
  unreachable

267:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #10
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr @test_count, align 4, !tbaa !5
  %270 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %271 = icmp eq ptr %270, null
  br i1 %271, label %272, label %296

272:                                              ; preds = %267
  %273 = tail call ptr @__errno_location() #11
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %276 = call i32 @s2n_print_stacktrace(ptr noundef %275) #10
  %277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %278 = trunc nuw i8 %277 to i1
  br i1 %278, label %279, label %283

279:                                              ; preds = %272
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 @fileno(ptr noundef %280) #10
  %282 = call i32 @isatty(i32 noundef %281) #10
  %.not297 = icmp eq i32 %282, 0
  br i1 %.not297, label %283, label %284

283:                                              ; preds = %279, %272
  br label %284

284:                                              ; preds = %279, %283
  %.str.5.sink404 = phi ptr [ @.str.5, %283 ], [ @.str.2, %279 ]
  store i32 %274, ptr %273, align 4, !tbaa !5
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = load i32, ptr @test_count, align 4, !tbaa !5
  %287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = call ptr @s2n_strerror(i32 noundef %288, ptr noundef nonnull @.str.4) #10
  %290 = load i32, ptr %287, align 4, !tbaa !5
  %291 = call ptr @s2n_strerror_debug(i32 noundef %290, ptr noundef nonnull @.str.4) #10
  %292 = load i32, ptr %273, align 4, !tbaa !5
  %293 = call ptr @strerror(i32 noundef %292) #10
  %294 = load i32, ptr %273, align 4, !tbaa !5
  %295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %285, ptr noundef nonnull %.str.5.sink404, i32 noundef %286, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %289, ptr noundef %291, ptr noundef %293, i32 noundef %294) #12
  call void @exit(i32 noundef 1) #13
  unreachable

296:                                              ; preds = %267
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = add nsw i32 %297, 1
  store i32 %298, ptr @test_count, align 4, !tbaa !5
  %299 = call i32 @s2n_ccs_send(ptr noundef nonnull %270) #10
  %300 = icmp eq i32 %299, -1
  br i1 %300, label %301, label %325

301:                                              ; preds = %296
  %302 = tail call ptr @__errno_location() #11
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @s2n_print_stacktrace(ptr noundef %304) #10
  %306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %307 = trunc nuw i8 %306 to i1
  br i1 %307, label %308, label %312

308:                                              ; preds = %301
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = call i32 @fileno(ptr noundef %309) #10
  %311 = call i32 @isatty(i32 noundef %310) #10
  %.not296 = icmp eq i32 %311, 0
  br i1 %.not296, label %312, label %313

312:                                              ; preds = %308, %301
  br label %313

313:                                              ; preds = %308, %312
  %.str.5.sink415 = phi ptr [ @.str.5, %312 ], [ @.str.2, %308 ]
  store i32 %303, ptr %302, align 4, !tbaa !5
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call ptr @s2n_strerror(i32 noundef %317, ptr noundef nonnull @.str.4) #10
  %319 = load i32, ptr %316, align 4, !tbaa !5
  %320 = call ptr @s2n_strerror_debug(i32 noundef %319, ptr noundef nonnull @.str.4) #10
  %321 = load i32, ptr %302, align 4, !tbaa !5
  %322 = call ptr @strerror(i32 noundef %321) #10
  %323 = load i32, ptr %302, align 4, !tbaa !5
  %324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %314, ptr noundef nonnull %.str.5.sink415, i32 noundef %315, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %318, ptr noundef %320, ptr noundef %322, i32 noundef %323) #12
  call void @exit(i32 noundef 1) #13
  unreachable

325:                                              ; preds = %296
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr @test_count, align 4, !tbaa !5
  %328 = call i32 @s2n_basic_ccs_recv(ptr noundef nonnull %270) #10
  %329 = icmp eq i32 %328, -1
  br i1 %329, label %330, label %354

330:                                              ; preds = %325
  %331 = tail call ptr @__errno_location() #11
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %334 = call i32 @s2n_print_stacktrace(ptr noundef %333) #10
  %335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %336 = trunc nuw i8 %335 to i1
  br i1 %336, label %337, label %341

337:                                              ; preds = %330
  %338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %339 = call i32 @fileno(ptr noundef %338) #10
  %340 = call i32 @isatty(i32 noundef %339) #10
  %.not295 = icmp eq i32 %340, 0
  br i1 %.not295, label %341, label %342

341:                                              ; preds = %337, %330
  br label %342

342:                                              ; preds = %337, %341
  %.str.5.sink426 = phi ptr [ @.str.5, %341 ], [ @.str.2, %337 ]
  store i32 %332, ptr %331, align 4, !tbaa !5
  %343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %344 = load i32, ptr @test_count, align 4, !tbaa !5
  %345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %346 = load i32, ptr %345, align 4, !tbaa !5
  %347 = call ptr @s2n_strerror(i32 noundef %346, ptr noundef nonnull @.str.4) #10
  %348 = load i32, ptr %345, align 4, !tbaa !5
  %349 = call ptr @s2n_strerror_debug(i32 noundef %348, ptr noundef nonnull @.str.4) #10
  %350 = load i32, ptr %331, align 4, !tbaa !5
  %351 = call ptr @strerror(i32 noundef %350) #10
  %352 = load i32, ptr %331, align 4, !tbaa !5
  %353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %343, ptr noundef nonnull %.str.5.sink426, i32 noundef %344, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %347, ptr noundef %349, ptr noundef %351, i32 noundef %352) #12
  call void @exit(i32 noundef 1) #13
  unreachable

354:                                              ; preds = %325
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = add nsw i32 %355, 1
  store i32 %356, ptr @test_count, align 4, !tbaa !5
  %357 = call i32 @s2n_connection_free(ptr noundef nonnull %270) #10
  %358 = icmp eq i32 %357, -1
  br i1 %358, label %359, label %383

359:                                              ; preds = %354
  %360 = tail call ptr @__errno_location() #11
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = call i32 @s2n_print_stacktrace(ptr noundef %362) #10
  %364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %365 = trunc nuw i8 %364 to i1
  br i1 %365, label %366, label %370

366:                                              ; preds = %359
  %367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %368 = call i32 @fileno(ptr noundef %367) #10
  %369 = call i32 @isatty(i32 noundef %368) #10
  %.not294 = icmp eq i32 %369, 0
  br i1 %.not294, label %370, label %371

370:                                              ; preds = %366, %359
  br label %371

371:                                              ; preds = %366, %370
  %.str.5.sink437 = phi ptr [ @.str.5, %370 ], [ @.str.2, %366 ]
  store i32 %361, ptr %360, align 4, !tbaa !5
  %372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %373 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %375, ptr noundef nonnull @.str.4) #10
  %377 = load i32, ptr %374, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror_debug(i32 noundef %377, ptr noundef nonnull @.str.4) #10
  %379 = load i32, ptr %360, align 4, !tbaa !5
  %380 = call ptr @strerror(i32 noundef %379) #10
  %381 = load i32, ptr %360, align 4, !tbaa !5
  %382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %372, ptr noundef nonnull %.str.5.sink437, i32 noundef %373, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %376, ptr noundef %378, ptr noundef %380, i32 noundef %381) #12
  call void @exit(i32 noundef 1) #13
  unreachable

383:                                              ; preds = %354
  %384 = load i32, ptr @test_count, align 4, !tbaa !5
  %385 = add nsw i32 %384, 1
  store i32 %385, ptr @test_count, align 4, !tbaa !5
  %386 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %387 = icmp eq ptr %386, null
  br i1 %387, label %388, label %412

388:                                              ; preds = %383
  %389 = tail call ptr @__errno_location() #11
  %390 = load i32, ptr %389, align 4, !tbaa !5
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = call i32 @s2n_print_stacktrace(ptr noundef %391) #10
  %393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %394 = trunc nuw i8 %393 to i1
  br i1 %394, label %395, label %399

395:                                              ; preds = %388
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = call i32 @fileno(ptr noundef %396) #10
  %398 = call i32 @isatty(i32 noundef %397) #10
  %.not293 = icmp eq i32 %398, 0
  br i1 %.not293, label %399, label %400

399:                                              ; preds = %395, %388
  br label %400

400:                                              ; preds = %395, %399
  %.str.5.sink448 = phi ptr [ @.str.5, %399 ], [ @.str.2, %395 ]
  store i32 %390, ptr %389, align 4, !tbaa !5
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = load i32, ptr @test_count, align 4, !tbaa !5
  %403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = call ptr @s2n_strerror(i32 noundef %404, ptr noundef nonnull @.str.4) #10
  %406 = load i32, ptr %403, align 4, !tbaa !5
  %407 = call ptr @s2n_strerror_debug(i32 noundef %406, ptr noundef nonnull @.str.4) #10
  %408 = load i32, ptr %389, align 4, !tbaa !5
  %409 = call ptr @strerror(i32 noundef %408) #10
  %410 = load i32, ptr %389, align 4, !tbaa !5
  %411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %401, ptr noundef nonnull %.str.5.sink448, i32 noundef %402, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %405, ptr noundef %407, ptr noundef %409, i32 noundef %410) #12
  call void @exit(i32 noundef 1) #13
  unreachable

412:                                              ; preds = %383
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = add nsw i32 %413, 1
  store i32 %414, ptr @test_count, align 4, !tbaa !5
  %415 = getelementptr inbounds i8, ptr %386, i64 2016
  %416 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %415, i8 noundef zeroext 0) #10
  %417 = icmp eq i32 %416, -1
  br i1 %417, label %418, label %442

418:                                              ; preds = %412
  %419 = tail call ptr @__errno_location() #11
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = call i32 @s2n_print_stacktrace(ptr noundef %421) #10
  %423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %424 = trunc nuw i8 %423 to i1
  br i1 %424, label %425, label %429

425:                                              ; preds = %418
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = call i32 @fileno(ptr noundef %426) #10
  %428 = call i32 @isatty(i32 noundef %427) #10
  %.not292 = icmp eq i32 %428, 0
  br i1 %.not292, label %429, label %430

429:                                              ; preds = %425, %418
  br label %430

430:                                              ; preds = %425, %429
  %.str.5.sink459 = phi ptr [ @.str.5, %429 ], [ @.str.2, %425 ]
  store i32 %420, ptr %419, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = load i32, ptr @test_count, align 4, !tbaa !5
  %433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror(i32 noundef %434, ptr noundef nonnull @.str.4) #10
  %436 = load i32, ptr %433, align 4, !tbaa !5
  %437 = call ptr @s2n_strerror_debug(i32 noundef %436, ptr noundef nonnull @.str.4) #10
  %438 = load i32, ptr %419, align 4, !tbaa !5
  %439 = call ptr @strerror(i32 noundef %438) #10
  %440 = load i32, ptr %419, align 4, !tbaa !5
  %441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %431, ptr noundef nonnull %.str.5.sink459, i32 noundef %432, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %435, ptr noundef %437, ptr noundef %439, i32 noundef %440) #12
  call void @exit(i32 noundef 1) #13
  unreachable

442:                                              ; preds = %412
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %445 = call i32 @s2n_basic_ccs_recv(ptr noundef nonnull %386) #10
  %446 = icmp eq i32 %445, -1
  br i1 %446, label %471, label %447

447:                                              ; preds = %442
  %448 = tail call ptr @__errno_location() #11
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %451 = call i32 @s2n_print_stacktrace(ptr noundef %450) #10
  %452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %453 = trunc nuw i8 %452 to i1
  br i1 %453, label %454, label %458

454:                                              ; preds = %447
  %455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %456 = call i32 @fileno(ptr noundef %455) #10
  %457 = call i32 @isatty(i32 noundef %456) #10
  %.not216 = icmp eq i32 %457, 0
  br i1 %.not216, label %458, label %459

458:                                              ; preds = %454, %447
  br label %459

459:                                              ; preds = %454, %458
  %.str.5.sink470 = phi ptr [ @.str.5, %458 ], [ @.str.2, %454 ]
  store i32 %449, ptr %448, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror(i32 noundef %463, ptr noundef nonnull @.str.4) #10
  %465 = load i32, ptr %462, align 4, !tbaa !5
  %466 = call ptr @s2n_strerror_debug(i32 noundef %465, ptr noundef nonnull @.str.4) #10
  %467 = load i32, ptr %448, align 4, !tbaa !5
  %468 = call ptr @strerror(i32 noundef %467) #10
  %469 = load i32, ptr %448, align 4, !tbaa !5
  %470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef nonnull %.str.5.sink470, i32 noundef %461, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %464, ptr noundef %466, ptr noundef %468, i32 noundef %469) #12
  call void @exit(i32 noundef 1) #13
  unreachable

471:                                              ; preds = %442
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr @test_count, align 4, !tbaa !5
  %474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = icmp eq i32 %475, 335544322
  br i1 %476, label %500, label %477

477:                                              ; preds = %471
  %478 = tail call ptr @__errno_location() #11
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = call i32 @s2n_print_stacktrace(ptr noundef %480) #10
  %482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %483 = trunc nuw i8 %482 to i1
  br i1 %483, label %484, label %488

484:                                              ; preds = %477
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @fileno(ptr noundef %485) #10
  %487 = call i32 @isatty(i32 noundef %486) #10
  %.not217 = icmp eq i32 %487, 0
  br i1 %.not217, label %488, label %489

488:                                              ; preds = %484, %477
  br label %489

489:                                              ; preds = %484, %488
  %.str.5.sink481 = phi ptr [ @.str.5, %488 ], [ @.str.2, %484 ]
  store i32 %479, ptr %478, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = load i32, ptr %474, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror(i32 noundef %492, ptr noundef nonnull @.str.4) #10
  %494 = load i32, ptr %474, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror_debug(i32 noundef %494, ptr noundef nonnull @.str.4) #10
  %496 = load i32, ptr %478, align 4, !tbaa !5
  %497 = call ptr @strerror(i32 noundef %496) #10
  %498 = load i32, ptr %478, align 4, !tbaa !5
  %499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %490, ptr noundef nonnull %.str.5.sink481, i32 noundef %491, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %493, ptr noundef %495, ptr noundef %497, i32 noundef %498) #12
  call void @exit(i32 noundef 1) #13
  unreachable

500:                                              ; preds = %471
  %501 = add nsw i32 %472, 2
  store i32 %501, ptr @test_count, align 4, !tbaa !5
  %502 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #10
  %503 = icmp eq ptr %502, null
  br i1 %503, label %504, label %527

504:                                              ; preds = %500
  %505 = tail call ptr @__errno_location() #11
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = call i32 @s2n_print_stacktrace(ptr noundef %507) #10
  %509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %510 = trunc nuw i8 %509 to i1
  br i1 %510, label %511, label %515

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

515:                                              ; preds = %511, %504
  br label %516

516:                                              ; preds = %511, %515
  %.str.5.sink490 = phi ptr [ @.str.5, %515 ], [ @.str.2, %511 ]
  store i32 %506, ptr %505, align 4, !tbaa !5
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = load i32, ptr @test_count, align 4, !tbaa !5
  %519 = load i32, ptr %474, align 4, !tbaa !5
  %520 = call ptr @s2n_strerror(i32 noundef %519, ptr noundef nonnull @.str.4) #10
  %521 = load i32, ptr %474, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror_debug(i32 noundef %521, ptr noundef nonnull @.str.4) #10
  %523 = load i32, ptr %505, align 4, !tbaa !5
  %524 = call ptr @strerror(i32 noundef %523) #10
  %525 = load i32, ptr %505, align 4, !tbaa !5
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %517, ptr noundef nonnull %.str.5.sink490, i32 noundef %518, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %520, ptr noundef %522, ptr noundef %524, i32 noundef %525) #12
  call void @exit(i32 noundef 1) #13
  unreachable

527:                                              ; preds = %500
  store i32 0, ptr %474, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  %528 = tail call ptr @__errno_location() #11
  store i32 0, ptr %528, align 4, !tbaa !5
  %529 = load i32, ptr @test_count, align 4, !tbaa !5
  %530 = add nsw i32 %529, 1
  store i32 %530, ptr @test_count, align 4, !tbaa !5
  %531 = call i32 @s2n_connection_free(ptr noundef nonnull %386) #10
  %532 = icmp eq i32 %531, -1
  br i1 %532, label %533, label %555

533:                                              ; preds = %527
  %534 = load i32, ptr %528, align 4, !tbaa !5
  %535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %536 = call i32 @s2n_print_stacktrace(ptr noundef %535) #10
  %537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %538 = trunc nuw i8 %537 to i1
  br i1 %538, label %539, label %543

539:                                              ; preds = %533
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @fileno(ptr noundef %540) #10
  %542 = call i32 @isatty(i32 noundef %541) #10
  %.not290 = icmp eq i32 %542, 0
  br i1 %.not290, label %543, label %544

543:                                              ; preds = %539, %533
  br label %544

544:                                              ; preds = %539, %543
  %.str.5.sink499 = phi ptr [ @.str.5, %543 ], [ @.str.2, %539 ]
  store i32 %534, ptr %528, align 4, !tbaa !5
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = load i32, ptr @test_count, align 4, !tbaa !5
  %547 = load i32, ptr %474, align 4, !tbaa !5
  %548 = call ptr @s2n_strerror(i32 noundef %547, ptr noundef nonnull @.str.4) #10
  %549 = load i32, ptr %474, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror_debug(i32 noundef %549, ptr noundef nonnull @.str.4) #10
  %551 = load i32, ptr %528, align 4, !tbaa !5
  %552 = call ptr @strerror(i32 noundef %551) #10
  %553 = load i32, ptr %528, align 4, !tbaa !5
  %554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %545, ptr noundef nonnull %.str.5.sink499, i32 noundef %546, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %548, ptr noundef %550, ptr noundef %552, i32 noundef %553) #12
  call void @exit(i32 noundef 1) #13
  unreachable

555:                                              ; preds = %527
  %556 = load i32, ptr @test_count, align 4, !tbaa !5
  %557 = add nsw i32 %556, 1
  store i32 %557, ptr @test_count, align 4, !tbaa !5
  %558 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %559 = icmp eq ptr %558, null
  br i1 %559, label %560, label %582

560:                                              ; preds = %555
  %561 = load i32, ptr %528, align 4, !tbaa !5
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = call i32 @s2n_print_stacktrace(ptr noundef %562) #10
  %564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %565 = trunc nuw i8 %564 to i1
  br i1 %565, label %566, label %570

566:                                              ; preds = %560
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @fileno(ptr noundef %567) #10
  %569 = call i32 @isatty(i32 noundef %568) #10
  %.not289 = icmp eq i32 %569, 0
  br i1 %.not289, label %570, label %571

570:                                              ; preds = %566, %560
  br label %571

571:                                              ; preds = %566, %570
  %.str.5.sink508 = phi ptr [ @.str.5, %570 ], [ @.str.2, %566 ]
  store i32 %561, ptr %528, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = load i32, ptr %474, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror(i32 noundef %574, ptr noundef nonnull @.str.4) #10
  %576 = load i32, ptr %474, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror_debug(i32 noundef %576, ptr noundef nonnull @.str.4) #10
  %578 = load i32, ptr %528, align 4, !tbaa !5
  %579 = call ptr @strerror(i32 noundef %578) #10
  %580 = load i32, ptr %528, align 4, !tbaa !5
  %581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %572, ptr noundef nonnull %.str.5.sink508, i32 noundef %573, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %575, ptr noundef %577, ptr noundef %579, i32 noundef %580) #12
  call void @exit(i32 noundef 1) #13
  unreachable

582:                                              ; preds = %555
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = add nsw i32 %583, 1
  store i32 %584, ptr @test_count, align 4, !tbaa !5
  %585 = getelementptr inbounds i8, ptr %558, i64 2016
  %586 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %585, i8 noundef zeroext 0) #10
  %587 = icmp eq i32 %586, -1
  br i1 %587, label %588, label %610

588:                                              ; preds = %582
  %589 = load i32, ptr %528, align 4, !tbaa !5
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = call i32 @s2n_print_stacktrace(ptr noundef %590) #10
  %592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %593 = trunc nuw i8 %592 to i1
  br i1 %593, label %594, label %598

594:                                              ; preds = %588
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = call i32 @fileno(ptr noundef %595) #10
  %597 = call i32 @isatty(i32 noundef %596) #10
  %.not288 = icmp eq i32 %597, 0
  br i1 %.not288, label %598, label %599

598:                                              ; preds = %594, %588
  br label %599

599:                                              ; preds = %594, %598
  %.str.5.sink517 = phi ptr [ @.str.5, %598 ], [ @.str.2, %594 ]
  store i32 %589, ptr %528, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = load i32, ptr @test_count, align 4, !tbaa !5
  %602 = load i32, ptr %474, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror(i32 noundef %602, ptr noundef nonnull @.str.4) #10
  %604 = load i32, ptr %474, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror_debug(i32 noundef %604, ptr noundef nonnull @.str.4) #10
  %606 = load i32, ptr %528, align 4, !tbaa !5
  %607 = call ptr @strerror(i32 noundef %606) #10
  %608 = load i32, ptr %528, align 4, !tbaa !5
  %609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %600, ptr noundef nonnull %.str.5.sink517, i32 noundef %601, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %603, ptr noundef %605, ptr noundef %607, i32 noundef %608) #12
  call void @exit(i32 noundef 1) #13
  unreachable

610:                                              ; preds = %582
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr @test_count, align 4, !tbaa !5
  %613 = call i32 @s2n_client_ccs_recv(ptr noundef nonnull %558) #10
  %614 = icmp eq i32 %613, -1
  br i1 %614, label %637, label %615

615:                                              ; preds = %610
  %616 = load i32, ptr %528, align 4, !tbaa !5
  %617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %618 = call i32 @s2n_print_stacktrace(ptr noundef %617) #10
  %619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %620 = trunc nuw i8 %619 to i1
  br i1 %620, label %621, label %625

621:                                              ; preds = %615
  %622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %623 = call i32 @fileno(ptr noundef %622) #10
  %624 = call i32 @isatty(i32 noundef %623) #10
  %.not218 = icmp eq i32 %624, 0
  br i1 %.not218, label %625, label %626

625:                                              ; preds = %621, %615
  br label %626

626:                                              ; preds = %621, %625
  %.str.5.sink526 = phi ptr [ @.str.5, %625 ], [ @.str.2, %621 ]
  store i32 %616, ptr %528, align 4, !tbaa !5
  %627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %628 = load i32, ptr @test_count, align 4, !tbaa !5
  %629 = load i32, ptr %474, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror(i32 noundef %629, ptr noundef nonnull @.str.4) #10
  %631 = load i32, ptr %474, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror_debug(i32 noundef %631, ptr noundef nonnull @.str.4) #10
  %633 = load i32, ptr %528, align 4, !tbaa !5
  %634 = call ptr @strerror(i32 noundef %633) #10
  %635 = load i32, ptr %528, align 4, !tbaa !5
  %636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %627, ptr noundef nonnull %.str.5.sink526, i32 noundef %628, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %630, ptr noundef %632, ptr noundef %634, i32 noundef %635) #12
  call void @exit(i32 noundef 1) #13
  unreachable

637:                                              ; preds = %610
  %638 = load i32, ptr @test_count, align 4, !tbaa !5
  %639 = add nsw i32 %638, 1
  store i32 %639, ptr @test_count, align 4, !tbaa !5
  %640 = load i32, ptr %474, align 4, !tbaa !5
  %641 = icmp eq i32 %640, 335544322
  br i1 %641, label %664, label %642

642:                                              ; preds = %637
  %643 = load i32, ptr %528, align 4, !tbaa !5
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = call i32 @s2n_print_stacktrace(ptr noundef %644) #10
  %646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %647 = trunc nuw i8 %646 to i1
  br i1 %647, label %648, label %652

648:                                              ; preds = %642
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = call i32 @fileno(ptr noundef %649) #10
  %651 = call i32 @isatty(i32 noundef %650) #10
  %.not219 = icmp eq i32 %651, 0
  br i1 %.not219, label %652, label %653

652:                                              ; preds = %648, %642
  br label %653

653:                                              ; preds = %648, %652
  %.str.5.sink535 = phi ptr [ @.str.5, %652 ], [ @.str.2, %648 ]
  store i32 %643, ptr %528, align 4, !tbaa !5
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = load i32, ptr %474, align 4, !tbaa !5
  %657 = call ptr @s2n_strerror(i32 noundef %656, ptr noundef nonnull @.str.4) #10
  %658 = load i32, ptr %474, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror_debug(i32 noundef %658, ptr noundef nonnull @.str.4) #10
  %660 = load i32, ptr %528, align 4, !tbaa !5
  %661 = call ptr @strerror(i32 noundef %660) #10
  %662 = load i32, ptr %528, align 4, !tbaa !5
  %663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %654, ptr noundef nonnull %.str.5.sink535, i32 noundef %655, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %657, ptr noundef %659, ptr noundef %661, i32 noundef %662) #12
  call void @exit(i32 noundef 1) #13
  unreachable

664:                                              ; preds = %637
  %665 = add nsw i32 %638, 2
  store i32 %665, ptr @test_count, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #10
  %667 = icmp eq ptr %666, null
  br i1 %667, label %668, label %690

668:                                              ; preds = %664
  %669 = load i32, ptr %528, align 4, !tbaa !5
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @s2n_print_stacktrace(ptr noundef %670) #10
  %672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %673 = trunc nuw i8 %672 to i1
  br i1 %673, label %674, label %678

674:                                              ; preds = %668
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = call i32 @fileno(ptr noundef %675) #10
  %677 = call i32 @isatty(i32 noundef %676) #10
  %.not287 = icmp eq i32 %677, 0
  br i1 %.not287, label %678, label %679

678:                                              ; preds = %674, %668
  br label %679

679:                                              ; preds = %674, %678
  %.str.5.sink544 = phi ptr [ @.str.5, %678 ], [ @.str.2, %674 ]
  store i32 %669, ptr %528, align 4, !tbaa !5
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = load i32, ptr %474, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror(i32 noundef %682, ptr noundef nonnull @.str.4) #10
  %684 = load i32, ptr %474, align 4, !tbaa !5
  %685 = call ptr @s2n_strerror_debug(i32 noundef %684, ptr noundef nonnull @.str.4) #10
  %686 = load i32, ptr %528, align 4, !tbaa !5
  %687 = call ptr @strerror(i32 noundef %686) #10
  %688 = load i32, ptr %528, align 4, !tbaa !5
  %689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %680, ptr noundef nonnull %.str.5.sink544, i32 noundef %681, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %683, ptr noundef %685, ptr noundef %687, i32 noundef %688) #12
  call void @exit(i32 noundef 1) #13
  unreachable

690:                                              ; preds = %664
  store i32 0, ptr %474, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %528, align 4, !tbaa !5
  %691 = load i32, ptr @test_count, align 4, !tbaa !5
  %692 = add nsw i32 %691, 1
  store i32 %692, ptr @test_count, align 4, !tbaa !5
  %693 = call i32 @s2n_connection_free(ptr noundef nonnull %558) #10
  %694 = icmp eq i32 %693, -1
  br i1 %694, label %695, label %717

695:                                              ; preds = %690
  %696 = load i32, ptr %528, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = call i32 @s2n_print_stacktrace(ptr noundef %697) #10
  %699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %700 = trunc nuw i8 %699 to i1
  br i1 %700, label %701, label %705

701:                                              ; preds = %695
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = call i32 @fileno(ptr noundef %702) #10
  %704 = call i32 @isatty(i32 noundef %703) #10
  %.not286 = icmp eq i32 %704, 0
  br i1 %.not286, label %705, label %706

705:                                              ; preds = %701, %695
  br label %706

706:                                              ; preds = %701, %705
  %.str.5.sink553 = phi ptr [ @.str.5, %705 ], [ @.str.2, %701 ]
  store i32 %696, ptr %528, align 4, !tbaa !5
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = load i32, ptr %474, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror(i32 noundef %709, ptr noundef nonnull @.str.4) #10
  %711 = load i32, ptr %474, align 4, !tbaa !5
  %712 = call ptr @s2n_strerror_debug(i32 noundef %711, ptr noundef nonnull @.str.4) #10
  %713 = load i32, ptr %528, align 4, !tbaa !5
  %714 = call ptr @strerror(i32 noundef %713) #10
  %715 = load i32, ptr %528, align 4, !tbaa !5
  %716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %707, ptr noundef nonnull %.str.5.sink553, i32 noundef %708, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %710, ptr noundef %712, ptr noundef %714, i32 noundef %715) #12
  call void @exit(i32 noundef 1) #13
  unreachable

717:                                              ; preds = %690
  %718 = load i32, ptr @test_count, align 4, !tbaa !5
  %719 = add nsw i32 %718, 1
  store i32 %719, ptr @test_count, align 4, !tbaa !5
  %720 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %721 = icmp eq ptr %720, null
  br i1 %721, label %722, label %744

722:                                              ; preds = %717
  %723 = load i32, ptr %528, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = call i32 @s2n_print_stacktrace(ptr noundef %724) #10
  %726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %727 = trunc nuw i8 %726 to i1
  br i1 %727, label %728, label %732

728:                                              ; preds = %722
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = call i32 @fileno(ptr noundef %729) #10
  %731 = call i32 @isatty(i32 noundef %730) #10
  %.not285 = icmp eq i32 %731, 0
  br i1 %.not285, label %732, label %733

732:                                              ; preds = %728, %722
  br label %733

733:                                              ; preds = %728, %732
  %.str.5.sink562 = phi ptr [ @.str.5, %732 ], [ @.str.2, %728 ]
  store i32 %723, ptr %528, align 4, !tbaa !5
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = load i32, ptr %474, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef nonnull @.str.4) #10
  %738 = load i32, ptr %474, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef %738, ptr noundef nonnull @.str.4) #10
  %740 = load i32, ptr %528, align 4, !tbaa !5
  %741 = call ptr @strerror(i32 noundef %740) #10
  %742 = load i32, ptr %528, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %734, ptr noundef nonnull %.str.5.sink562, i32 noundef %735, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %737, ptr noundef %739, ptr noundef %741, i32 noundef %742) #12
  call void @exit(i32 noundef 1) #13
  unreachable

744:                                              ; preds = %717
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = getelementptr inbounds i8, ptr %720, i64 2016
  %748 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %747, i8 noundef zeroext 0) #10
  %749 = icmp eq i32 %748, -1
  br i1 %749, label %750, label %772

750:                                              ; preds = %744
  %751 = load i32, ptr %528, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @s2n_print_stacktrace(ptr noundef %752) #10
  %754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %755 = trunc nuw i8 %754 to i1
  br i1 %755, label %756, label %760

756:                                              ; preds = %750
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = call i32 @fileno(ptr noundef %757) #10
  %759 = call i32 @isatty(i32 noundef %758) #10
  %.not284 = icmp eq i32 %759, 0
  br i1 %.not284, label %760, label %761

760:                                              ; preds = %756, %750
  br label %761

761:                                              ; preds = %756, %760
  %.str.5.sink571 = phi ptr [ @.str.5, %760 ], [ @.str.2, %756 ]
  store i32 %751, ptr %528, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = load i32, ptr %474, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror(i32 noundef %764, ptr noundef nonnull @.str.4) #10
  %766 = load i32, ptr %474, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror_debug(i32 noundef %766, ptr noundef nonnull @.str.4) #10
  %768 = load i32, ptr %528, align 4, !tbaa !5
  %769 = call ptr @strerror(i32 noundef %768) #10
  %770 = load i32, ptr %528, align 4, !tbaa !5
  %771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef nonnull %.str.5.sink571, i32 noundef %763, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %765, ptr noundef %767, ptr noundef %769, i32 noundef %770) #12
  call void @exit(i32 noundef 1) #13
  unreachable

772:                                              ; preds = %744
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr @test_count, align 4, !tbaa !5
  %775 = call i32 @s2n_server_ccs_recv(ptr noundef nonnull %720) #10
  %776 = icmp eq i32 %775, -1
  br i1 %776, label %799, label %777

777:                                              ; preds = %772
  %778 = load i32, ptr %528, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @s2n_print_stacktrace(ptr noundef %779) #10
  %781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %782 = trunc nuw i8 %781 to i1
  br i1 %782, label %783, label %787

783:                                              ; preds = %777
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @fileno(ptr noundef %784) #10
  %786 = call i32 @isatty(i32 noundef %785) #10
  %.not220 = icmp eq i32 %786, 0
  br i1 %.not220, label %787, label %788

787:                                              ; preds = %783, %777
  br label %788

788:                                              ; preds = %783, %787
  %.str.5.sink580 = phi ptr [ @.str.5, %787 ], [ @.str.2, %783 ]
  store i32 %778, ptr %528, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = load i32, ptr %474, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef nonnull @.str.4) #10
  %793 = load i32, ptr %474, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef nonnull @.str.4) #10
  %795 = load i32, ptr %528, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #10
  %797 = load i32, ptr %528, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef nonnull %.str.5.sink580, i32 noundef %790, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %792, ptr noundef %794, ptr noundef %796, i32 noundef %797) #12
  call void @exit(i32 noundef 1) #13
  unreachable

799:                                              ; preds = %772
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = add nsw i32 %800, 1
  store i32 %801, ptr @test_count, align 4, !tbaa !5
  %802 = load i32, ptr %474, align 4, !tbaa !5
  %803 = icmp eq i32 %802, 335544322
  br i1 %803, label %826, label %804

804:                                              ; preds = %799
  %805 = load i32, ptr %528, align 4, !tbaa !5
  %806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %807 = call i32 @s2n_print_stacktrace(ptr noundef %806) #10
  %808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %809 = trunc nuw i8 %808 to i1
  br i1 %809, label %810, label %814

810:                                              ; preds = %804
  %811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %812 = call i32 @fileno(ptr noundef %811) #10
  %813 = call i32 @isatty(i32 noundef %812) #10
  %.not221 = icmp eq i32 %813, 0
  br i1 %.not221, label %814, label %815

814:                                              ; preds = %810, %804
  br label %815

815:                                              ; preds = %810, %814
  %.str.5.sink589 = phi ptr [ @.str.5, %814 ], [ @.str.2, %810 ]
  store i32 %805, ptr %528, align 4, !tbaa !5
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = load i32, ptr @test_count, align 4, !tbaa !5
  %818 = load i32, ptr %474, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror(i32 noundef %818, ptr noundef nonnull @.str.4) #10
  %820 = load i32, ptr %474, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror_debug(i32 noundef %820, ptr noundef nonnull @.str.4) #10
  %822 = load i32, ptr %528, align 4, !tbaa !5
  %823 = call ptr @strerror(i32 noundef %822) #10
  %824 = load i32, ptr %528, align 4, !tbaa !5
  %825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %816, ptr noundef nonnull %.str.5.sink589, i32 noundef %817, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %819, ptr noundef %821, ptr noundef %823, i32 noundef %824) #12
  call void @exit(i32 noundef 1) #13
  unreachable

826:                                              ; preds = %799
  %827 = add nsw i32 %800, 2
  store i32 %827, ptr @test_count, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #10
  %829 = icmp eq ptr %828, null
  br i1 %829, label %830, label %852

830:                                              ; preds = %826
  %831 = load i32, ptr %528, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @s2n_print_stacktrace(ptr noundef %832) #10
  %834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %835 = trunc nuw i8 %834 to i1
  br i1 %835, label %836, label %840

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

840:                                              ; preds = %836, %830
  br label %841

841:                                              ; preds = %836, %840
  %.str.5.sink598 = phi ptr [ @.str.5, %840 ], [ @.str.2, %836 ]
  store i32 %831, ptr %528, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = load i32, ptr %474, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror(i32 noundef %844, ptr noundef nonnull @.str.4) #10
  %846 = load i32, ptr %474, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror_debug(i32 noundef %846, ptr noundef nonnull @.str.4) #10
  %848 = load i32, ptr %528, align 4, !tbaa !5
  %849 = call ptr @strerror(i32 noundef %848) #10
  %850 = load i32, ptr %528, align 4, !tbaa !5
  %851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %842, ptr noundef nonnull %.str.5.sink598, i32 noundef %843, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %845, ptr noundef %847, ptr noundef %849, i32 noundef %850) #12
  call void @exit(i32 noundef 1) #13
  unreachable

852:                                              ; preds = %826
  store i32 0, ptr %474, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %528, align 4, !tbaa !5
  %853 = load i32, ptr @test_count, align 4, !tbaa !5
  %854 = add nsw i32 %853, 1
  store i32 %854, ptr @test_count, align 4, !tbaa !5
  %855 = call i32 @s2n_connection_free(ptr noundef nonnull %720) #10
  %856 = icmp eq i32 %855, -1
  br i1 %856, label %857, label %879

857:                                              ; preds = %852
  %858 = load i32, ptr %528, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = call i32 @s2n_print_stacktrace(ptr noundef %859) #10
  %861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %862 = trunc nuw i8 %861 to i1
  br i1 %862, label %863, label %867

863:                                              ; preds = %857
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = call i32 @fileno(ptr noundef %864) #10
  %866 = call i32 @isatty(i32 noundef %865) #10
  %.not282 = icmp eq i32 %866, 0
  br i1 %.not282, label %867, label %868

867:                                              ; preds = %863, %857
  br label %868

868:                                              ; preds = %863, %867
  %.str.5.sink607 = phi ptr [ @.str.5, %867 ], [ @.str.2, %863 ]
  store i32 %858, ptr %528, align 4, !tbaa !5
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = load i32, ptr @test_count, align 4, !tbaa !5
  %871 = load i32, ptr %474, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror(i32 noundef %871, ptr noundef nonnull @.str.4) #10
  %873 = load i32, ptr %474, align 4, !tbaa !5
  %874 = call ptr @s2n_strerror_debug(i32 noundef %873, ptr noundef nonnull @.str.4) #10
  %875 = load i32, ptr %528, align 4, !tbaa !5
  %876 = call ptr @strerror(i32 noundef %875) #10
  %877 = load i32, ptr %528, align 4, !tbaa !5
  %878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %869, ptr noundef nonnull %.str.5.sink607, i32 noundef %870, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %872, ptr noundef %874, ptr noundef %876, i32 noundef %877) #12
  call void @exit(i32 noundef 1) #13
  unreachable

879:                                              ; preds = %852
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = add nsw i32 %880, 1
  store i32 %881, ptr @test_count, align 4, !tbaa !5
  %882 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %883 = icmp eq ptr %882, null
  br i1 %883, label %884, label %906

884:                                              ; preds = %879
  %885 = load i32, ptr %528, align 4, !tbaa !5
  %886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %887 = call i32 @s2n_print_stacktrace(ptr noundef %886) #10
  %888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %889 = trunc nuw i8 %888 to i1
  br i1 %889, label %890, label %894

890:                                              ; preds = %884
  %891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %892 = call i32 @fileno(ptr noundef %891) #10
  %893 = call i32 @isatty(i32 noundef %892) #10
  %.not281 = icmp eq i32 %893, 0
  br i1 %.not281, label %894, label %895

894:                                              ; preds = %890, %884
  br label %895

895:                                              ; preds = %890, %894
  %.str.5.sink616 = phi ptr [ @.str.5, %894 ], [ @.str.2, %890 ]
  store i32 %885, ptr %528, align 4, !tbaa !5
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %898 = load i32, ptr %474, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror(i32 noundef %898, ptr noundef nonnull @.str.4) #10
  %900 = load i32, ptr %474, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror_debug(i32 noundef %900, ptr noundef nonnull @.str.4) #10
  %902 = load i32, ptr %528, align 4, !tbaa !5
  %903 = call ptr @strerror(i32 noundef %902) #10
  %904 = load i32, ptr %528, align 4, !tbaa !5
  %905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %896, ptr noundef nonnull %.str.5.sink616, i32 noundef %897, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %899, ptr noundef %901, ptr noundef %903, i32 noundef %904) #12
  call void @exit(i32 noundef 1) #13
  unreachable

906:                                              ; preds = %879
  %907 = getelementptr inbounds i8, ptr %882, i64 232
  %908 = load ptr, ptr %907, align 8, !tbaa !16
  store ptr @s2n_ecdhe_rsa_with_aes_256_gcm_sha384, ptr %908, align 8, !tbaa !43
  %909 = getelementptr inbounds i8, ptr %908, i64 920
  store i8 1, ptr %909, align 8, !tbaa !15
  %910 = load i32, ptr @test_count, align 4, !tbaa !5
  %911 = add nsw i32 %910, 1
  store i32 %911, ptr @test_count, align 4, !tbaa !5
  %912 = getelementptr inbounds i8, ptr %882, i64 2120
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(12) %912, ptr noundef nonnull dereferenceable(12) %3, i64 12)
  %913 = icmp eq i32 %bcmp, 0
  br i1 %913, label %936, label %914

914:                                              ; preds = %906
  %915 = load i32, ptr %528, align 4, !tbaa !5
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = call i32 @s2n_print_stacktrace(ptr noundef %916) #10
  %918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %919 = trunc nuw i8 %918 to i1
  br i1 %919, label %920, label %924

920:                                              ; preds = %914
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = call i32 @fileno(ptr noundef %921) #10
  %923 = call i32 @isatty(i32 noundef %922) #10
  %.not222 = icmp eq i32 %923, 0
  br i1 %.not222, label %924, label %925

924:                                              ; preds = %920, %914
  br label %925

925:                                              ; preds = %920, %924
  %.str.5.sink625 = phi ptr [ @.str.5, %924 ], [ @.str.2, %920 ]
  store i32 %915, ptr %528, align 4, !tbaa !5
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = load i32, ptr %474, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror(i32 noundef %928, ptr noundef nonnull @.str.4) #10
  %930 = load i32, ptr %474, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror_debug(i32 noundef %930, ptr noundef nonnull @.str.4) #10
  %932 = load i32, ptr %528, align 4, !tbaa !5
  %933 = call ptr @strerror(i32 noundef %932) #10
  %934 = load i32, ptr %528, align 4, !tbaa !5
  %935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %926, ptr noundef nonnull %.str.5.sink625, i32 noundef %927, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %929, ptr noundef %931, ptr noundef %933, i32 noundef %934) #12
  call void @exit(i32 noundef 1) #13
  unreachable

936:                                              ; preds = %906
  %937 = add nsw i32 %910, 2
  store i32 %937, ptr @test_count, align 4, !tbaa !5
  %938 = getelementptr inbounds i8, ptr %882, i64 2168
  %939 = load i8, ptr %938, align 8, !tbaa !48
  %940 = icmp eq i8 %939, 0
  br i1 %940, label %963, label %941

941:                                              ; preds = %936
  %942 = load i32, ptr %528, align 4, !tbaa !5
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = call i32 @s2n_print_stacktrace(ptr noundef %943) #10
  %945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %946 = trunc nuw i8 %945 to i1
  br i1 %946, label %947, label %951

947:                                              ; preds = %941
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @fileno(ptr noundef %948) #10
  %950 = call i32 @isatty(i32 noundef %949) #10
  %.not223 = icmp eq i32 %950, 0
  br i1 %.not223, label %951, label %952

951:                                              ; preds = %947, %941
  br label %952

952:                                              ; preds = %947, %951
  %.str.5.sink634 = phi ptr [ @.str.5, %951 ], [ @.str.2, %947 ]
  store i32 %942, ptr %528, align 4, !tbaa !5
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = load i32, ptr %474, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror(i32 noundef %955, ptr noundef nonnull @.str.4) #10
  %957 = load i32, ptr %474, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror_debug(i32 noundef %957, ptr noundef nonnull @.str.4) #10
  %959 = load i32, ptr %528, align 4, !tbaa !5
  %960 = call ptr @strerror(i32 noundef %959) #10
  %961 = load i32, ptr %528, align 4, !tbaa !5
  %962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %953, ptr noundef nonnull %.str.5.sink634, i32 noundef %954, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %956, ptr noundef %958, ptr noundef %960, i32 noundef %961) #12
  call void @exit(i32 noundef 1) #13
  unreachable

963:                                              ; preds = %936
  %964 = add nsw i32 %910, 3
  store i32 %964, ptr @test_count, align 4, !tbaa !5
  %965 = getelementptr inbounds i8, ptr %882, i64 632
  %966 = load ptr, ptr %965, align 8, !tbaa !49
  %967 = load ptr, ptr %907, align 8, !tbaa !16
  %968 = icmp eq ptr %966, %967
  br i1 %968, label %969, label %991

969:                                              ; preds = %963
  %970 = load i32, ptr %528, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = call i32 @s2n_print_stacktrace(ptr noundef %971) #10
  %973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %974 = trunc nuw i8 %973 to i1
  br i1 %974, label %975, label %979

975:                                              ; preds = %969
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = call i32 @fileno(ptr noundef %976) #10
  %978 = call i32 @isatty(i32 noundef %977) #10
  %.not280 = icmp eq i32 %978, 0
  br i1 %.not280, label %979, label %980

979:                                              ; preds = %975, %969
  br label %980

980:                                              ; preds = %975, %979
  %.str.5.sink643 = phi ptr [ @.str.5, %979 ], [ @.str.2, %975 ]
  store i32 %970, ptr %528, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = load i32, ptr %474, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror(i32 noundef %983, ptr noundef nonnull @.str.4) #10
  %985 = load i32, ptr %474, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror_debug(i32 noundef %985, ptr noundef nonnull @.str.4) #10
  %987 = load i32, ptr %528, align 4, !tbaa !5
  %988 = call ptr @strerror(i32 noundef %987) #10
  %989 = load i32, ptr %528, align 4, !tbaa !5
  %990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %981, ptr noundef nonnull %.str.5.sink643, i32 noundef %982, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %984, ptr noundef %986, ptr noundef %988, i32 noundef %989) #12
  call void @exit(i32 noundef 1) #13
  unreachable

991:                                              ; preds = %963
  %992 = add nsw i32 %910, 4
  store i32 %992, ptr @test_count, align 4, !tbaa !5
  %993 = getelementptr inbounds i8, ptr %882, i64 1960
  %994 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %993, i8 noundef zeroext 1) #10
  %995 = icmp eq i32 %994, -1
  br i1 %995, label %996, label %1018

996:                                              ; preds = %991
  %997 = load i32, ptr %528, align 4, !tbaa !5
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = call i32 @s2n_print_stacktrace(ptr noundef %998) #10
  %1000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1001 = trunc nuw i8 %1000 to i1
  br i1 %1001, label %1002, label %1006

1002:                                             ; preds = %996
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = call i32 @fileno(ptr noundef %1003) #10
  %1005 = call i32 @isatty(i32 noundef %1004) #10
  %.not279 = icmp eq i32 %1005, 0
  br i1 %.not279, label %1006, label %1007

1006:                                             ; preds = %1002, %996
  br label %1007

1007:                                             ; preds = %1002, %1006
  %.str.5.sink652 = phi ptr [ @.str.5, %1006 ], [ @.str.2, %1002 ]
  store i32 %997, ptr %528, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = load i32, ptr %474, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror(i32 noundef %1010, ptr noundef nonnull @.str.4) #10
  %1012 = load i32, ptr %474, align 4, !tbaa !5
  %1013 = call ptr @s2n_strerror_debug(i32 noundef %1012, ptr noundef nonnull @.str.4) #10
  %1014 = load i32, ptr %528, align 4, !tbaa !5
  %1015 = call ptr @strerror(i32 noundef %1014) #10
  %1016 = load i32, ptr %528, align 4, !tbaa !5
  %1017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1008, ptr noundef nonnull %.str.5.sink652, i32 noundef %1009, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %1011, ptr noundef %1013, ptr noundef %1015, i32 noundef %1016) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1018:                                             ; preds = %991
  %1019 = load i32, ptr @test_count, align 4, !tbaa !5
  %1020 = add nsw i32 %1019, 1
  store i32 %1020, ptr @test_count, align 4, !tbaa !5
  %1021 = call i32 @s2n_ccs_send(ptr noundef nonnull %882) #10
  %1022 = icmp eq i32 %1021, -1
  br i1 %1022, label %1023, label %1045

1023:                                             ; preds = %1018
  %1024 = load i32, ptr %528, align 4, !tbaa !5
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = call i32 @s2n_print_stacktrace(ptr noundef %1025) #10
  %1027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1028 = trunc nuw i8 %1027 to i1
  br i1 %1028, label %1029, label %1033

1029:                                             ; preds = %1023
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = call i32 @fileno(ptr noundef %1030) #10
  %1032 = call i32 @isatty(i32 noundef %1031) #10
  %.not278 = icmp eq i32 %1032, 0
  br i1 %.not278, label %1033, label %1034

1033:                                             ; preds = %1029, %1023
  br label %1034

1034:                                             ; preds = %1029, %1033
  %.str.5.sink661 = phi ptr [ @.str.5, %1033 ], [ @.str.2, %1029 ]
  store i32 %1024, ptr %528, align 4, !tbaa !5
  %1035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1036 = load i32, ptr @test_count, align 4, !tbaa !5
  %1037 = load i32, ptr %474, align 4, !tbaa !5
  %1038 = call ptr @s2n_strerror(i32 noundef %1037, ptr noundef nonnull @.str.4) #10
  %1039 = load i32, ptr %474, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror_debug(i32 noundef %1039, ptr noundef nonnull @.str.4) #10
  %1041 = load i32, ptr %528, align 4, !tbaa !5
  %1042 = call ptr @strerror(i32 noundef %1041) #10
  %1043 = load i32, ptr %528, align 4, !tbaa !5
  %1044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1035, ptr noundef nonnull %.str.5.sink661, i32 noundef %1036, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %1038, ptr noundef %1040, ptr noundef %1042, i32 noundef %1043) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1045:                                             ; preds = %1018
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = add nsw i32 %1046, 1
  store i32 %1047, ptr @test_count, align 4, !tbaa !5
  %1048 = call i32 @s2n_client_ccs_recv(ptr noundef nonnull %882) #10
  %1049 = icmp eq i32 %1048, -1
  br i1 %1049, label %1050, label %1072

1050:                                             ; preds = %1045
  %1051 = load i32, ptr %528, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @s2n_print_stacktrace(ptr noundef %1052) #10
  %1054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1055 = trunc nuw i8 %1054 to i1
  br i1 %1055, label %1056, label %1060

1056:                                             ; preds = %1050
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @fileno(ptr noundef %1057) #10
  %1059 = call i32 @isatty(i32 noundef %1058) #10
  %.not277 = icmp eq i32 %1059, 0
  br i1 %.not277, label %1060, label %1061

1060:                                             ; preds = %1056, %1050
  br label %1061

1061:                                             ; preds = %1056, %1060
  %.str.5.sink670 = phi ptr [ @.str.5, %1060 ], [ @.str.2, %1056 ]
  store i32 %1051, ptr %528, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = load i32, ptr %474, align 4, !tbaa !5
  %1065 = call ptr @s2n_strerror(i32 noundef %1064, ptr noundef nonnull @.str.4) #10
  %1066 = load i32, ptr %474, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror_debug(i32 noundef %1066, ptr noundef nonnull @.str.4) #10
  %1068 = load i32, ptr %528, align 4, !tbaa !5
  %1069 = call ptr @strerror(i32 noundef %1068) #10
  %1070 = load i32, ptr %528, align 4, !tbaa !5
  %1071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef nonnull %.str.5.sink670, i32 noundef %1063, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %1065, ptr noundef %1067, ptr noundef %1069, i32 noundef %1070) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1072:                                             ; preds = %1045
  %1073 = load i32, ptr @test_count, align 4, !tbaa !5
  %1074 = add nsw i32 %1073, 1
  store i32 %1074, ptr @test_count, align 4, !tbaa !5
  %1075 = load ptr, ptr %907, align 8, !tbaa !16
  %1076 = getelementptr inbounds i8, ptr %1075, i64 920
  %1077 = load i8, ptr %1076, align 8, !tbaa !15
  %1078 = icmp eq i8 %1077, 0
  br i1 %1078, label %1101, label %1079

1079:                                             ; preds = %1072
  %1080 = load i32, ptr %528, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = call i32 @s2n_print_stacktrace(ptr noundef %1081) #10
  %1083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1084 = trunc nuw i8 %1083 to i1
  br i1 %1084, label %1085, label %1089

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

1089:                                             ; preds = %1085, %1079
  br label %1090

1090:                                             ; preds = %1085, %1089
  %.str.5.sink679 = phi ptr [ @.str.5, %1089 ], [ @.str.2, %1085 ]
  store i32 %1080, ptr %528, align 4, !tbaa !5
  %1091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1092 = load i32, ptr @test_count, align 4, !tbaa !5
  %1093 = load i32, ptr %474, align 4, !tbaa !5
  %1094 = call ptr @s2n_strerror(i32 noundef %1093, ptr noundef nonnull @.str.4) #10
  %1095 = load i32, ptr %474, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror_debug(i32 noundef %1095, ptr noundef nonnull @.str.4) #10
  %1097 = load i32, ptr %528, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #10
  %1099 = load i32, ptr %528, align 4, !tbaa !5
  %1100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1091, ptr noundef nonnull %.str.5.sink679, i32 noundef %1092, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %1094, ptr noundef %1096, ptr noundef %1098, i32 noundef %1099) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1101:                                             ; preds = %1072
  %1102 = add nsw i32 %1073, 2
  store i32 %1102, ptr @test_count, align 4, !tbaa !5
  %1103 = load ptr, ptr %965, align 8, !tbaa !49
  %1104 = icmp eq ptr %1103, %1075
  br i1 %1104, label %1127, label %1105

1105:                                             ; preds = %1101
  %1106 = load i32, ptr %528, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = call i32 @s2n_print_stacktrace(ptr noundef %1107) #10
  %1109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1110 = trunc nuw i8 %1109 to i1
  br i1 %1110, label %1111, label %1115

1111:                                             ; preds = %1105
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = call i32 @fileno(ptr noundef %1112) #10
  %1114 = call i32 @isatty(i32 noundef %1113) #10
  %.not225 = icmp eq i32 %1114, 0
  br i1 %.not225, label %1115, label %1116

1115:                                             ; preds = %1111, %1105
  br label %1116

1116:                                             ; preds = %1111, %1115
  %.str.5.sink688 = phi ptr [ @.str.5, %1115 ], [ @.str.2, %1111 ]
  store i32 %1106, ptr %528, align 4, !tbaa !5
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = load i32, ptr @test_count, align 4, !tbaa !5
  %1119 = load i32, ptr %474, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror(i32 noundef %1119, ptr noundef nonnull @.str.4) #10
  %1121 = load i32, ptr %474, align 4, !tbaa !5
  %1122 = call ptr @s2n_strerror_debug(i32 noundef %1121, ptr noundef nonnull @.str.4) #10
  %1123 = load i32, ptr %528, align 4, !tbaa !5
  %1124 = call ptr @strerror(i32 noundef %1123) #10
  %1125 = load i32, ptr %528, align 4, !tbaa !5
  %1126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1117, ptr noundef nonnull %.str.5.sink688, i32 noundef %1118, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %1120, ptr noundef %1122, ptr noundef %1124, i32 noundef %1125) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1127:                                             ; preds = %1101
  %1128 = add nsw i32 %1073, 3
  store i32 %1128, ptr @test_count, align 4, !tbaa !5
  %1129 = getelementptr inbounds i8, ptr %882, i64 1988
  %1130 = load i32, ptr %1129, align 4, !tbaa !50
  %1131 = getelementptr inbounds i8, ptr %882, i64 1984
  %1132 = load i32, ptr %1131, align 8, !tbaa !51
  %.not226 = icmp eq i32 %1130, %1132
  br i1 %.not226, label %1155, label %1133

1133:                                             ; preds = %1127
  %1134 = load i32, ptr %528, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = call i32 @s2n_print_stacktrace(ptr noundef %1135) #10
  %1137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1138 = trunc nuw i8 %1137 to i1
  br i1 %1138, label %1139, label %1143

1139:                                             ; preds = %1133
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @fileno(ptr noundef %1140) #10
  %1142 = call i32 @isatty(i32 noundef %1141) #10
  %.not276 = icmp eq i32 %1142, 0
  br i1 %.not276, label %1143, label %1144

1143:                                             ; preds = %1139, %1133
  br label %1144

1144:                                             ; preds = %1139, %1143
  %.str.5.sink697 = phi ptr [ @.str.5, %1143 ], [ @.str.2, %1139 ]
  store i32 %1134, ptr %528, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = load i32, ptr %474, align 4, !tbaa !5
  %1148 = call ptr @s2n_strerror(i32 noundef %1147, ptr noundef nonnull @.str.4) #10
  %1149 = load i32, ptr %474, align 4, !tbaa !5
  %1150 = call ptr @s2n_strerror_debug(i32 noundef %1149, ptr noundef nonnull @.str.4) #10
  %1151 = load i32, ptr %528, align 4, !tbaa !5
  %1152 = call ptr @strerror(i32 noundef %1151) #10
  %1153 = load i32, ptr %528, align 4, !tbaa !5
  %1154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1145, ptr noundef nonnull %.str.5.sink697, i32 noundef %1146, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %1148, ptr noundef %1150, ptr noundef %1152, i32 noundef %1153) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1155:                                             ; preds = %1127
  %1156 = add nsw i32 %1073, 4
  store i32 %1156, ptr @test_count, align 4, !tbaa !5
  %1157 = call i32 @s2n_connection_free(ptr noundef nonnull %882) #10
  %1158 = icmp eq i32 %1157, -1
  br i1 %1158, label %1159, label %1181

1159:                                             ; preds = %1155
  %1160 = load i32, ptr %528, align 4, !tbaa !5
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @s2n_print_stacktrace(ptr noundef %1161) #10
  %1163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1164 = trunc nuw i8 %1163 to i1
  br i1 %1164, label %1165, label %1169

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

1169:                                             ; preds = %1165, %1159
  br label %1170

1170:                                             ; preds = %1165, %1169
  %.str.5.sink706 = phi ptr [ @.str.5, %1169 ], [ @.str.2, %1165 ]
  store i32 %1160, ptr %528, align 4, !tbaa !5
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = load i32, ptr %474, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror(i32 noundef %1173, ptr noundef nonnull @.str.4) #10
  %1175 = load i32, ptr %474, align 4, !tbaa !5
  %1176 = call ptr @s2n_strerror_debug(i32 noundef %1175, ptr noundef nonnull @.str.4) #10
  %1177 = load i32, ptr %528, align 4, !tbaa !5
  %1178 = call ptr @strerror(i32 noundef %1177) #10
  %1179 = load i32, ptr %528, align 4, !tbaa !5
  %1180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef nonnull %.str.5.sink706, i32 noundef %1172, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %1174, ptr noundef %1176, ptr noundef %1178, i32 noundef %1179) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1181:                                             ; preds = %1155
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  %1182 = call ptr @s2n_connection_new(i32 noundef 1) #10
  store ptr %1182, ptr %5, align 8, !tbaa !9
  %1183 = load i32, ptr @test_count, align 4, !tbaa !5
  %1184 = add nsw i32 %1183, 1
  store i32 %1184, ptr @test_count, align 4, !tbaa !5
  %1185 = icmp eq ptr %1182, null
  br i1 %1185, label %1186, label %1208

1186:                                             ; preds = %1181
  %1187 = load i32, ptr %528, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = call i32 @s2n_print_stacktrace(ptr noundef %1188) #10
  %1190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1191 = trunc nuw i8 %1190 to i1
  br i1 %1191, label %1192, label %1196

1192:                                             ; preds = %1186
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = call i32 @fileno(ptr noundef %1193) #10
  %1195 = call i32 @isatty(i32 noundef %1194) #10
  %.not274 = icmp eq i32 %1195, 0
  br i1 %.not274, label %1196, label %1197

1196:                                             ; preds = %1192, %1186
  br label %1197

1197:                                             ; preds = %1192, %1196
  %.str.5.sink715 = phi ptr [ @.str.5, %1196 ], [ @.str.2, %1192 ]
  store i32 %1187, ptr %528, align 4, !tbaa !5
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = load i32, ptr @test_count, align 4, !tbaa !5
  %1200 = load i32, ptr %474, align 4, !tbaa !5
  %1201 = call ptr @s2n_strerror(i32 noundef %1200, ptr noundef nonnull @.str.4) #10
  %1202 = load i32, ptr %474, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror_debug(i32 noundef %1202, ptr noundef nonnull @.str.4) #10
  %1204 = load i32, ptr %528, align 4, !tbaa !5
  %1205 = call ptr @strerror(i32 noundef %1204) #10
  %1206 = load i32, ptr %528, align 4, !tbaa !5
  %1207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1198, ptr noundef nonnull %.str.5.sink715, i32 noundef %1199, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %1201, ptr noundef %1203, ptr noundef %1205, i32 noundef %1206) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1208:                                             ; preds = %1181
  %1209 = getelementptr inbounds i8, ptr %1182, i64 232
  %1210 = load ptr, ptr %1209, align 8, !tbaa !16
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %1210, align 8, !tbaa !43
  %1211 = load ptr, ptr %5, align 8, !tbaa !9
  %1212 = getelementptr inbounds i8, ptr %1211, i64 220
  store i8 30, ptr %1212, align 4, !tbaa !52
  %1213 = getelementptr inbounds i8, ptr %1211, i64 232
  %1214 = load ptr, ptr %1213, align 8, !tbaa !16
  %1215 = getelementptr inbounds i8, ptr %1214, i64 920
  store i8 1, ptr %1215, align 8, !tbaa !15
  %1216 = add nsw i32 %1183, 2
  store i32 %1216, ptr @test_count, align 4, !tbaa !5
  %1217 = getelementptr inbounds i8, ptr %1211, i64 2120
  %bcmp227 = call i32 @bcmp(ptr noundef nonnull dereferenceable(12) %1217, ptr noundef nonnull dereferenceable(12) %3, i64 12)
  %1218 = icmp eq i32 %bcmp227, 0
  br i1 %1218, label %1241, label %1219

1219:                                             ; preds = %1208
  %1220 = load i32, ptr %528, align 4, !tbaa !5
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = call i32 @s2n_print_stacktrace(ptr noundef %1221) #10
  %1223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1224 = trunc nuw i8 %1223 to i1
  br i1 %1224, label %1225, label %1229

1225:                                             ; preds = %1219
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = call i32 @fileno(ptr noundef %1226) #10
  %1228 = call i32 @isatty(i32 noundef %1227) #10
  %.not228 = icmp eq i32 %1228, 0
  br i1 %.not228, label %1229, label %1230

1229:                                             ; preds = %1225, %1219
  br label %1230

1230:                                             ; preds = %1225, %1229
  %.str.5.sink724 = phi ptr [ @.str.5, %1229 ], [ @.str.2, %1225 ]
  store i32 %1220, ptr %528, align 4, !tbaa !5
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = load i32, ptr @test_count, align 4, !tbaa !5
  %1233 = load i32, ptr %474, align 4, !tbaa !5
  %1234 = call ptr @s2n_strerror(i32 noundef %1233, ptr noundef nonnull @.str.4) #10
  %1235 = load i32, ptr %474, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror_debug(i32 noundef %1235, ptr noundef nonnull @.str.4) #10
  %1237 = load i32, ptr %528, align 4, !tbaa !5
  %1238 = call ptr @strerror(i32 noundef %1237) #10
  %1239 = load i32, ptr %528, align 4, !tbaa !5
  %1240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1231, ptr noundef nonnull %.str.5.sink724, i32 noundef %1232, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %1234, ptr noundef %1236, ptr noundef %1238, i32 noundef %1239) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1241:                                             ; preds = %1208
  %1242 = add nsw i32 %1183, 3
  store i32 %1242, ptr @test_count, align 4, !tbaa !5
  %1243 = getelementptr inbounds i8, ptr %1211, i64 2168
  %1244 = load i8, ptr %1243, align 8, !tbaa !48
  %1245 = icmp eq i8 %1244, 0
  br i1 %1245, label %1268, label %1246

1246:                                             ; preds = %1241
  %1247 = load i32, ptr %528, align 4, !tbaa !5
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = call i32 @s2n_print_stacktrace(ptr noundef %1248) #10
  %1250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1251 = trunc nuw i8 %1250 to i1
  br i1 %1251, label %1252, label %1256

1252:                                             ; preds = %1246
  %1253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1254 = call i32 @fileno(ptr noundef %1253) #10
  %1255 = call i32 @isatty(i32 noundef %1254) #10
  %.not229 = icmp eq i32 %1255, 0
  br i1 %.not229, label %1256, label %1257

1256:                                             ; preds = %1252, %1246
  br label %1257

1257:                                             ; preds = %1252, %1256
  %.str.5.sink733 = phi ptr [ @.str.5, %1256 ], [ @.str.2, %1252 ]
  store i32 %1247, ptr %528, align 4, !tbaa !5
  %1258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1259 = load i32, ptr @test_count, align 4, !tbaa !5
  %1260 = load i32, ptr %474, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror(i32 noundef %1260, ptr noundef nonnull @.str.4) #10
  %1262 = load i32, ptr %474, align 4, !tbaa !5
  %1263 = call ptr @s2n_strerror_debug(i32 noundef %1262, ptr noundef nonnull @.str.4) #10
  %1264 = load i32, ptr %528, align 4, !tbaa !5
  %1265 = call ptr @strerror(i32 noundef %1264) #10
  %1266 = load i32, ptr %528, align 4, !tbaa !5
  %1267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1258, ptr noundef nonnull %.str.5.sink733, i32 noundef %1259, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %1261, ptr noundef %1263, ptr noundef %1265, i32 noundef %1266) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1268:                                             ; preds = %1241
  %1269 = add nsw i32 %1183, 4
  store i32 %1269, ptr @test_count, align 4, !tbaa !5
  %1270 = getelementptr inbounds i8, ptr %1211, i64 632
  %1271 = load ptr, ptr %1270, align 8, !tbaa !49
  %1272 = load ptr, ptr %1213, align 8, !tbaa !16
  %1273 = icmp eq ptr %1271, %1272
  br i1 %1273, label %1274, label %1296

1274:                                             ; preds = %1268
  %1275 = load i32, ptr %528, align 4, !tbaa !5
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = call i32 @s2n_print_stacktrace(ptr noundef %1276) #10
  %1278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1279 = trunc nuw i8 %1278 to i1
  br i1 %1279, label %1280, label %1284

1280:                                             ; preds = %1274
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = call i32 @fileno(ptr noundef %1281) #10
  %1283 = call i32 @isatty(i32 noundef %1282) #10
  %.not273 = icmp eq i32 %1283, 0
  br i1 %.not273, label %1284, label %1285

1284:                                             ; preds = %1280, %1274
  br label %1285

1285:                                             ; preds = %1280, %1284
  %.str.5.sink742 = phi ptr [ @.str.5, %1284 ], [ @.str.2, %1280 ]
  store i32 %1275, ptr %528, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = load i32, ptr %474, align 4, !tbaa !5
  %1289 = call ptr @s2n_strerror(i32 noundef %1288, ptr noundef nonnull @.str.4) #10
  %1290 = load i32, ptr %474, align 4, !tbaa !5
  %1291 = call ptr @s2n_strerror_debug(i32 noundef %1290, ptr noundef nonnull @.str.4) #10
  %1292 = load i32, ptr %528, align 4, !tbaa !5
  %1293 = call ptr @strerror(i32 noundef %1292) #10
  %1294 = load i32, ptr %528, align 4, !tbaa !5
  %1295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1286, ptr noundef nonnull %.str.5.sink742, i32 noundef %1287, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1289, ptr noundef %1291, ptr noundef %1293, i32 noundef %1294) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1296:                                             ; preds = %1268
  %1297 = add nsw i32 %1183, 5
  store i32 %1297, ptr @test_count, align 4, !tbaa !5
  %1298 = getelementptr inbounds i8, ptr %1211, i64 1960
  %1299 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1298, i8 noundef zeroext 1) #10
  %1300 = icmp eq i32 %1299, -1
  br i1 %1300, label %1301, label %1323

1301:                                             ; preds = %1296
  %1302 = load i32, ptr %528, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = call i32 @s2n_print_stacktrace(ptr noundef %1303) #10
  %1305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1306 = trunc nuw i8 %1305 to i1
  br i1 %1306, label %1307, label %1311

1307:                                             ; preds = %1301
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @fileno(ptr noundef %1308) #10
  %1310 = call i32 @isatty(i32 noundef %1309) #10
  %.not272 = icmp eq i32 %1310, 0
  br i1 %.not272, label %1311, label %1312

1311:                                             ; preds = %1307, %1301
  br label %1312

1312:                                             ; preds = %1307, %1311
  %.str.5.sink751 = phi ptr [ @.str.5, %1311 ], [ @.str.2, %1307 ]
  store i32 %1302, ptr %528, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = load i32, ptr @test_count, align 4, !tbaa !5
  %1315 = load i32, ptr %474, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror(i32 noundef %1315, ptr noundef nonnull @.str.4) #10
  %1317 = load i32, ptr %474, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror_debug(i32 noundef %1317, ptr noundef nonnull @.str.4) #10
  %1319 = load i32, ptr %528, align 4, !tbaa !5
  %1320 = call ptr @strerror(i32 noundef %1319) #10
  %1321 = load i32, ptr %528, align 4, !tbaa !5
  %1322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1313, ptr noundef nonnull %.str.5.sink751, i32 noundef %1314, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %1316, ptr noundef %1318, ptr noundef %1320, i32 noundef %1321) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1323:                                             ; preds = %1296
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = add nsw i32 %1324, 1
  store i32 %1325, ptr @test_count, align 4, !tbaa !5
  %1326 = load ptr, ptr %5, align 8, !tbaa !9
  %1327 = call i32 @s2n_ccs_send(ptr noundef %1326) #10
  %1328 = icmp eq i32 %1327, -1
  br i1 %1328, label %1329, label %1351

1329:                                             ; preds = %1323
  %1330 = load i32, ptr %528, align 4, !tbaa !5
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = call i32 @s2n_print_stacktrace(ptr noundef %1331) #10
  %1333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1334 = trunc nuw i8 %1333 to i1
  br i1 %1334, label %1335, label %1339

1335:                                             ; preds = %1329
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = call i32 @fileno(ptr noundef %1336) #10
  %1338 = call i32 @isatty(i32 noundef %1337) #10
  %.not271 = icmp eq i32 %1338, 0
  br i1 %.not271, label %1339, label %1340

1339:                                             ; preds = %1335, %1329
  br label %1340

1340:                                             ; preds = %1335, %1339
  %.str.5.sink760 = phi ptr [ @.str.5, %1339 ], [ @.str.2, %1335 ]
  store i32 %1330, ptr %528, align 4, !tbaa !5
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = load i32, ptr @test_count, align 4, !tbaa !5
  %1343 = load i32, ptr %474, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror(i32 noundef %1343, ptr noundef nonnull @.str.4) #10
  %1345 = load i32, ptr %474, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror_debug(i32 noundef %1345, ptr noundef nonnull @.str.4) #10
  %1347 = load i32, ptr %528, align 4, !tbaa !5
  %1348 = call ptr @strerror(i32 noundef %1347) #10
  %1349 = load i32, ptr %528, align 4, !tbaa !5
  %1350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1341, ptr noundef nonnull %.str.5.sink760, i32 noundef %1342, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1344, ptr noundef %1346, ptr noundef %1348, i32 noundef %1349) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1351:                                             ; preds = %1323
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = add nsw i32 %1352, 1
  store i32 %1353, ptr @test_count, align 4, !tbaa !5
  %1354 = load ptr, ptr %5, align 8, !tbaa !9
  %1355 = call i32 @s2n_client_ccs_recv(ptr noundef %1354) #10
  %1356 = icmp eq i32 %1355, -1
  br i1 %1356, label %1357, label %1379

1357:                                             ; preds = %1351
  %1358 = load i32, ptr %528, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = call i32 @s2n_print_stacktrace(ptr noundef %1359) #10
  %1361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1362 = trunc nuw i8 %1361 to i1
  br i1 %1362, label %1363, label %1367

1363:                                             ; preds = %1357
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = call i32 @fileno(ptr noundef %1364) #10
  %1366 = call i32 @isatty(i32 noundef %1365) #10
  %.not270 = icmp eq i32 %1366, 0
  br i1 %.not270, label %1367, label %1368

1367:                                             ; preds = %1363, %1357
  br label %1368

1368:                                             ; preds = %1363, %1367
  %.str.5.sink769 = phi ptr [ @.str.5, %1367 ], [ @.str.2, %1363 ]
  store i32 %1358, ptr %528, align 4, !tbaa !5
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = load i32, ptr @test_count, align 4, !tbaa !5
  %1371 = load i32, ptr %474, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror(i32 noundef %1371, ptr noundef nonnull @.str.4) #10
  %1373 = load i32, ptr %474, align 4, !tbaa !5
  %1374 = call ptr @s2n_strerror_debug(i32 noundef %1373, ptr noundef nonnull @.str.4) #10
  %1375 = load i32, ptr %528, align 4, !tbaa !5
  %1376 = call ptr @strerror(i32 noundef %1375) #10
  %1377 = load i32, ptr %528, align 4, !tbaa !5
  %1378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1369, ptr noundef nonnull %.str.5.sink769, i32 noundef %1370, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1372, ptr noundef %1374, ptr noundef %1376, i32 noundef %1377) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1379:                                             ; preds = %1351
  %1380 = load i32, ptr @test_count, align 4, !tbaa !5
  %1381 = add nsw i32 %1380, 1
  store i32 %1381, ptr @test_count, align 4, !tbaa !5
  %1382 = load ptr, ptr %5, align 8, !tbaa !9
  %1383 = getelementptr inbounds i8, ptr %1382, i64 232
  %1384 = load ptr, ptr %1383, align 8, !tbaa !16
  %1385 = getelementptr inbounds i8, ptr %1384, i64 920
  %1386 = load i8, ptr %1385, align 8, !tbaa !15
  %1387 = icmp eq i8 %1386, 0
  br i1 %1387, label %1410, label %1388

1388:                                             ; preds = %1379
  %1389 = load i32, ptr %528, align 4, !tbaa !5
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = call i32 @s2n_print_stacktrace(ptr noundef %1390) #10
  %1392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1393 = trunc nuw i8 %1392 to i1
  br i1 %1393, label %1394, label %1398

1394:                                             ; preds = %1388
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = call i32 @fileno(ptr noundef %1395) #10
  %1397 = call i32 @isatty(i32 noundef %1396) #10
  %.not230 = icmp eq i32 %1397, 0
  br i1 %.not230, label %1398, label %1399

1398:                                             ; preds = %1394, %1388
  br label %1399

1399:                                             ; preds = %1394, %1398
  %.str.5.sink778 = phi ptr [ @.str.5, %1398 ], [ @.str.2, %1394 ]
  store i32 %1389, ptr %528, align 4, !tbaa !5
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = load i32, ptr @test_count, align 4, !tbaa !5
  %1402 = load i32, ptr %474, align 4, !tbaa !5
  %1403 = call ptr @s2n_strerror(i32 noundef %1402, ptr noundef nonnull @.str.4) #10
  %1404 = load i32, ptr %474, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror_debug(i32 noundef %1404, ptr noundef nonnull @.str.4) #10
  %1406 = load i32, ptr %528, align 4, !tbaa !5
  %1407 = call ptr @strerror(i32 noundef %1406) #10
  %1408 = load i32, ptr %528, align 4, !tbaa !5
  %1409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1400, ptr noundef nonnull %.str.5.sink778, i32 noundef %1401, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1403, ptr noundef %1405, ptr noundef %1407, i32 noundef %1408) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1410:                                             ; preds = %1379
  %1411 = add nsw i32 %1380, 2
  store i32 %1411, ptr @test_count, align 4, !tbaa !5
  %1412 = getelementptr inbounds i8, ptr %1382, i64 632
  %1413 = load ptr, ptr %1412, align 8, !tbaa !49
  %1414 = icmp eq ptr %1413, %1384
  br i1 %1414, label %1437, label %1415

1415:                                             ; preds = %1410
  %1416 = load i32, ptr %528, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @s2n_print_stacktrace(ptr noundef %1417) #10
  %1419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1420 = trunc nuw i8 %1419 to i1
  br i1 %1420, label %1421, label %1425

1421:                                             ; preds = %1415
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @fileno(ptr noundef %1422) #10
  %1424 = call i32 @isatty(i32 noundef %1423) #10
  %.not231 = icmp eq i32 %1424, 0
  br i1 %.not231, label %1425, label %1426

1425:                                             ; preds = %1421, %1415
  br label %1426

1426:                                             ; preds = %1421, %1425
  %.str.5.sink787 = phi ptr [ @.str.5, %1425 ], [ @.str.2, %1421 ]
  store i32 %1416, ptr %528, align 4, !tbaa !5
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = load i32, ptr %474, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror(i32 noundef %1429, ptr noundef nonnull @.str.4) #10
  %1431 = load i32, ptr %474, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror_debug(i32 noundef %1431, ptr noundef nonnull @.str.4) #10
  %1433 = load i32, ptr %528, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #10
  %1435 = load i32, ptr %528, align 4, !tbaa !5
  %1436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef nonnull %.str.5.sink787, i32 noundef %1428, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1430, ptr noundef %1432, ptr noundef %1434, i32 noundef %1435) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1437:                                             ; preds = %1410
  %1438 = add nsw i32 %1380, 3
  store i32 %1438, ptr @test_count, align 4, !tbaa !5
  %1439 = getelementptr inbounds i8, ptr %1382, i64 1988
  %1440 = load i32, ptr %1439, align 4, !tbaa !50
  %1441 = getelementptr inbounds i8, ptr %1382, i64 1984
  %1442 = load i32, ptr %1441, align 8, !tbaa !51
  %.not232 = icmp eq i32 %1440, %1442
  br i1 %.not232, label %1465, label %1443

1443:                                             ; preds = %1437
  %1444 = load i32, ptr %528, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = call i32 @s2n_print_stacktrace(ptr noundef %1445) #10
  %1447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1448 = trunc nuw i8 %1447 to i1
  br i1 %1448, label %1449, label %1453

1449:                                             ; preds = %1443
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = call i32 @fileno(ptr noundef %1450) #10
  %1452 = call i32 @isatty(i32 noundef %1451) #10
  %.not269 = icmp eq i32 %1452, 0
  br i1 %.not269, label %1453, label %1454

1453:                                             ; preds = %1449, %1443
  br label %1454

1454:                                             ; preds = %1449, %1453
  %.str.5.sink796 = phi ptr [ @.str.5, %1453 ], [ @.str.2, %1449 ]
  store i32 %1444, ptr %528, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = load i32, ptr @test_count, align 4, !tbaa !5
  %1457 = load i32, ptr %474, align 4, !tbaa !5
  %1458 = call ptr @s2n_strerror(i32 noundef %1457, ptr noundef nonnull @.str.4) #10
  %1459 = load i32, ptr %474, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror_debug(i32 noundef %1459, ptr noundef nonnull @.str.4) #10
  %1461 = load i32, ptr %528, align 4, !tbaa !5
  %1462 = call ptr @strerror(i32 noundef %1461) #10
  %1463 = load i32, ptr %528, align 4, !tbaa !5
  %1464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1455, ptr noundef nonnull %.str.5.sink796, i32 noundef %1456, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1458, ptr noundef %1460, ptr noundef %1462, i32 noundef %1463) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1465:                                             ; preds = %1437
  %1466 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  %1467 = load i32, ptr @test_count, align 4, !tbaa !5
  %1468 = add nsw i32 %1467, 1
  store i32 %1468, ptr @test_count, align 4, !tbaa !5
  %1469 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1470 = icmp eq ptr %1469, null
  br i1 %1470, label %1471, label %1493

1471:                                             ; preds = %1465
  %1472 = load i32, ptr %528, align 4, !tbaa !5
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @s2n_print_stacktrace(ptr noundef %1473) #10
  %1475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1476 = trunc nuw i8 %1475 to i1
  br i1 %1476, label %1477, label %1481

1477:                                             ; preds = %1471
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @fileno(ptr noundef %1478) #10
  %1480 = call i32 @isatty(i32 noundef %1479) #10
  %.not268 = icmp eq i32 %1480, 0
  br i1 %.not268, label %1481, label %1482

1481:                                             ; preds = %1477, %1471
  br label %1482

1482:                                             ; preds = %1477, %1481
  %.str.5.sink805 = phi ptr [ @.str.5, %1481 ], [ @.str.2, %1477 ]
  store i32 %1472, ptr %528, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = load i32, ptr %474, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror(i32 noundef %1485, ptr noundef nonnull @.str.4) #10
  %1487 = load i32, ptr %474, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef nonnull @.str.4) #10
  %1489 = load i32, ptr %528, align 4, !tbaa !5
  %1490 = call ptr @strerror(i32 noundef %1489) #10
  %1491 = load i32, ptr %528, align 4, !tbaa !5
  %1492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1483, ptr noundef nonnull %.str.5.sink805, i32 noundef %1484, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1486, ptr noundef %1488, ptr noundef %1490, i32 noundef %1491) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1493:                                             ; preds = %1465
  %1494 = getelementptr inbounds i8, ptr %1469, i64 232
  %1495 = load ptr, ptr %1494, align 8, !tbaa !16
  store ptr @s2n_ecdhe_rsa_with_aes_256_gcm_sha384, ptr %1495, align 8, !tbaa !43
  %1496 = getelementptr inbounds i8, ptr %1495, i64 928
  store i8 1, ptr %1496, align 8, !tbaa !15
  %1497 = load i32, ptr @test_count, align 4, !tbaa !5
  %1498 = add nsw i32 %1497, 1
  store i32 %1498, ptr @test_count, align 4, !tbaa !5
  %1499 = getelementptr inbounds i8, ptr %1469, i64 2072
  %bcmp233 = call i32 @bcmp(ptr noundef nonnull dereferenceable(12) %1499, ptr noundef nonnull dereferenceable(12) %3, i64 12)
  %1500 = icmp eq i32 %bcmp233, 0
  br i1 %1500, label %1523, label %1501

1501:                                             ; preds = %1493
  %1502 = load i32, ptr %528, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = call i32 @s2n_print_stacktrace(ptr noundef %1503) #10
  %1505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1506 = trunc nuw i8 %1505 to i1
  br i1 %1506, label %1507, label %1511

1507:                                             ; preds = %1501
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = call i32 @fileno(ptr noundef %1508) #10
  %1510 = call i32 @isatty(i32 noundef %1509) #10
  %.not234 = icmp eq i32 %1510, 0
  br i1 %.not234, label %1511, label %1512

1511:                                             ; preds = %1507, %1501
  br label %1512

1512:                                             ; preds = %1507, %1511
  %.str.5.sink814 = phi ptr [ @.str.5, %1511 ], [ @.str.2, %1507 ]
  store i32 %1502, ptr %528, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = load i32, ptr %474, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror(i32 noundef %1515, ptr noundef nonnull @.str.4) #10
  %1517 = load i32, ptr %474, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef %1517, ptr noundef nonnull @.str.4) #10
  %1519 = load i32, ptr %528, align 4, !tbaa !5
  %1520 = call ptr @strerror(i32 noundef %1519) #10
  %1521 = load i32, ptr %528, align 4, !tbaa !5
  %1522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1513, ptr noundef nonnull %.str.5.sink814, i32 noundef %1514, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1516, ptr noundef %1518, ptr noundef %1520, i32 noundef %1521) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1523:                                             ; preds = %1493
  %1524 = add nsw i32 %1497, 2
  store i32 %1524, ptr @test_count, align 4, !tbaa !5
  %1525 = getelementptr inbounds i8, ptr %1469, i64 2168
  %1526 = load i8, ptr %1525, align 8, !tbaa !48
  %1527 = icmp eq i8 %1526, 0
  br i1 %1527, label %1550, label %1528

1528:                                             ; preds = %1523
  %1529 = load i32, ptr %528, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @s2n_print_stacktrace(ptr noundef %1530) #10
  %1532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1533 = trunc nuw i8 %1532 to i1
  br i1 %1533, label %1534, label %1538

1534:                                             ; preds = %1528
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @fileno(ptr noundef %1535) #10
  %1537 = call i32 @isatty(i32 noundef %1536) #10
  %.not235 = icmp eq i32 %1537, 0
  br i1 %.not235, label %1538, label %1539

1538:                                             ; preds = %1534, %1528
  br label %1539

1539:                                             ; preds = %1534, %1538
  %.str.5.sink823 = phi ptr [ @.str.5, %1538 ], [ @.str.2, %1534 ]
  store i32 %1529, ptr %528, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = load i32, ptr %474, align 4, !tbaa !5
  %1543 = call ptr @s2n_strerror(i32 noundef %1542, ptr noundef nonnull @.str.4) #10
  %1544 = load i32, ptr %474, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror_debug(i32 noundef %1544, ptr noundef nonnull @.str.4) #10
  %1546 = load i32, ptr %528, align 4, !tbaa !5
  %1547 = call ptr @strerror(i32 noundef %1546) #10
  %1548 = load i32, ptr %528, align 4, !tbaa !5
  %1549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1540, ptr noundef nonnull %.str.5.sink823, i32 noundef %1541, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1543, ptr noundef %1545, ptr noundef %1547, i32 noundef %1548) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1550:                                             ; preds = %1523
  %1551 = add nsw i32 %1497, 3
  store i32 %1551, ptr @test_count, align 4, !tbaa !5
  %1552 = getelementptr inbounds i8, ptr %1469, i64 640
  %1553 = load ptr, ptr %1552, align 8, !tbaa !53
  %1554 = load ptr, ptr %1494, align 8, !tbaa !16
  %1555 = icmp eq ptr %1553, %1554
  br i1 %1555, label %1556, label %1578

1556:                                             ; preds = %1550
  %1557 = load i32, ptr %528, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = call i32 @s2n_print_stacktrace(ptr noundef %1558) #10
  %1560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1561 = trunc nuw i8 %1560 to i1
  br i1 %1561, label %1562, label %1566

1562:                                             ; preds = %1556
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = call i32 @fileno(ptr noundef %1563) #10
  %1565 = call i32 @isatty(i32 noundef %1564) #10
  %.not267 = icmp eq i32 %1565, 0
  br i1 %.not267, label %1566, label %1567

1566:                                             ; preds = %1562, %1556
  br label %1567

1567:                                             ; preds = %1562, %1566
  %.str.5.sink832 = phi ptr [ @.str.5, %1566 ], [ @.str.2, %1562 ]
  store i32 %1557, ptr %528, align 4, !tbaa !5
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = load i32, ptr @test_count, align 4, !tbaa !5
  %1570 = load i32, ptr %474, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror(i32 noundef %1570, ptr noundef nonnull @.str.4) #10
  %1572 = load i32, ptr %474, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror_debug(i32 noundef %1572, ptr noundef nonnull @.str.4) #10
  %1574 = load i32, ptr %528, align 4, !tbaa !5
  %1575 = call ptr @strerror(i32 noundef %1574) #10
  %1576 = load i32, ptr %528, align 4, !tbaa !5
  %1577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1568, ptr noundef nonnull %.str.5.sink832, i32 noundef %1569, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1571, ptr noundef %1573, ptr noundef %1575, i32 noundef %1576) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1578:                                             ; preds = %1550
  %1579 = add nsw i32 %1497, 4
  store i32 %1579, ptr @test_count, align 4, !tbaa !5
  %1580 = getelementptr inbounds i8, ptr %1469, i64 1960
  %1581 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1580, i8 noundef zeroext 1) #10
  %1582 = icmp eq i32 %1581, -1
  br i1 %1582, label %1583, label %1605

1583:                                             ; preds = %1578
  %1584 = load i32, ptr %528, align 4, !tbaa !5
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = call i32 @s2n_print_stacktrace(ptr noundef %1585) #10
  %1587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1588 = trunc nuw i8 %1587 to i1
  br i1 %1588, label %1589, label %1593

1589:                                             ; preds = %1583
  %1590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1591 = call i32 @fileno(ptr noundef %1590) #10
  %1592 = call i32 @isatty(i32 noundef %1591) #10
  %.not266 = icmp eq i32 %1592, 0
  br i1 %.not266, label %1593, label %1594

1593:                                             ; preds = %1589, %1583
  br label %1594

1594:                                             ; preds = %1589, %1593
  %.str.5.sink841 = phi ptr [ @.str.5, %1593 ], [ @.str.2, %1589 ]
  store i32 %1584, ptr %528, align 4, !tbaa !5
  %1595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1596 = load i32, ptr @test_count, align 4, !tbaa !5
  %1597 = load i32, ptr %474, align 4, !tbaa !5
  %1598 = call ptr @s2n_strerror(i32 noundef %1597, ptr noundef nonnull @.str.4) #10
  %1599 = load i32, ptr %474, align 4, !tbaa !5
  %1600 = call ptr @s2n_strerror_debug(i32 noundef %1599, ptr noundef nonnull @.str.4) #10
  %1601 = load i32, ptr %528, align 4, !tbaa !5
  %1602 = call ptr @strerror(i32 noundef %1601) #10
  %1603 = load i32, ptr %528, align 4, !tbaa !5
  %1604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1595, ptr noundef nonnull %.str.5.sink841, i32 noundef %1596, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1598, ptr noundef %1600, ptr noundef %1602, i32 noundef %1603) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1605:                                             ; preds = %1578
  %1606 = load i32, ptr @test_count, align 4, !tbaa !5
  %1607 = add nsw i32 %1606, 1
  store i32 %1607, ptr @test_count, align 4, !tbaa !5
  %1608 = call i32 @s2n_ccs_send(ptr noundef nonnull %1469) #10
  %1609 = icmp eq i32 %1608, -1
  br i1 %1609, label %1610, label %1632

1610:                                             ; preds = %1605
  %1611 = load i32, ptr %528, align 4, !tbaa !5
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = call i32 @s2n_print_stacktrace(ptr noundef %1612) #10
  %1614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1615 = trunc nuw i8 %1614 to i1
  br i1 %1615, label %1616, label %1620

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

1620:                                             ; preds = %1616, %1610
  br label %1621

1621:                                             ; preds = %1616, %1620
  %.str.5.sink850 = phi ptr [ @.str.5, %1620 ], [ @.str.2, %1616 ]
  store i32 %1611, ptr %528, align 4, !tbaa !5
  %1622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1623 = load i32, ptr @test_count, align 4, !tbaa !5
  %1624 = load i32, ptr %474, align 4, !tbaa !5
  %1625 = call ptr @s2n_strerror(i32 noundef %1624, ptr noundef nonnull @.str.4) #10
  %1626 = load i32, ptr %474, align 4, !tbaa !5
  %1627 = call ptr @s2n_strerror_debug(i32 noundef %1626, ptr noundef nonnull @.str.4) #10
  %1628 = load i32, ptr %528, align 4, !tbaa !5
  %1629 = call ptr @strerror(i32 noundef %1628) #10
  %1630 = load i32, ptr %528, align 4, !tbaa !5
  %1631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1622, ptr noundef nonnull %.str.5.sink850, i32 noundef %1623, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1625, ptr noundef %1627, ptr noundef %1629, i32 noundef %1630) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1632:                                             ; preds = %1605
  %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 = call i32 @s2n_server_ccs_recv(ptr noundef nonnull %1469) #10
  %1636 = icmp eq i32 %1635, -1
  br i1 %1636, label %1637, label %1659

1637:                                             ; preds = %1632
  %1638 = load i32, ptr %528, align 4, !tbaa !5
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = call i32 @s2n_print_stacktrace(ptr noundef %1639) #10
  %1641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1642 = trunc nuw i8 %1641 to i1
  br i1 %1642, label %1643, label %1647

1643:                                             ; preds = %1637
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = call i32 @fileno(ptr noundef %1644) #10
  %1646 = call i32 @isatty(i32 noundef %1645) #10
  %.not264 = icmp eq i32 %1646, 0
  br i1 %.not264, label %1647, label %1648

1647:                                             ; preds = %1643, %1637
  br label %1648

1648:                                             ; preds = %1643, %1647
  %.str.5.sink859 = phi ptr [ @.str.5, %1647 ], [ @.str.2, %1643 ]
  store i32 %1638, ptr %528, align 4, !tbaa !5
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = load i32, ptr @test_count, align 4, !tbaa !5
  %1651 = load i32, ptr %474, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror(i32 noundef %1651, ptr noundef nonnull @.str.4) #10
  %1653 = load i32, ptr %474, align 4, !tbaa !5
  %1654 = call ptr @s2n_strerror_debug(i32 noundef %1653, ptr noundef nonnull @.str.4) #10
  %1655 = load i32, ptr %528, align 4, !tbaa !5
  %1656 = call ptr @strerror(i32 noundef %1655) #10
  %1657 = load i32, ptr %528, align 4, !tbaa !5
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1649, ptr noundef nonnull %.str.5.sink859, i32 noundef %1650, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1652, ptr noundef %1654, ptr noundef %1656, i32 noundef %1657) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1659:                                             ; preds = %1632
  %1660 = load i32, ptr @test_count, align 4, !tbaa !5
  %1661 = add nsw i32 %1660, 1
  store i32 %1661, ptr @test_count, align 4, !tbaa !5
  %1662 = load ptr, ptr %1494, align 8, !tbaa !16
  %1663 = getelementptr inbounds i8, ptr %1662, i64 928
  %1664 = load i8, ptr %1663, align 8, !tbaa !15
  %1665 = icmp eq i8 %1664, 0
  br i1 %1665, label %1688, label %1666

1666:                                             ; preds = %1659
  %1667 = load i32, ptr %528, align 4, !tbaa !5
  %1668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1669 = call i32 @s2n_print_stacktrace(ptr noundef %1668) #10
  %1670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1671 = trunc nuw i8 %1670 to i1
  br i1 %1671, label %1672, label %1676

1672:                                             ; preds = %1666
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = call i32 @fileno(ptr noundef %1673) #10
  %1675 = call i32 @isatty(i32 noundef %1674) #10
  %.not236 = icmp eq i32 %1675, 0
  br i1 %.not236, label %1676, label %1677

1676:                                             ; preds = %1672, %1666
  br label %1677

1677:                                             ; preds = %1672, %1676
  %.str.5.sink868 = phi ptr [ @.str.5, %1676 ], [ @.str.2, %1672 ]
  store i32 %1667, ptr %528, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = load i32, ptr %474, align 4, !tbaa !5
  %1681 = call ptr @s2n_strerror(i32 noundef %1680, ptr noundef nonnull @.str.4) #10
  %1682 = load i32, ptr %474, align 4, !tbaa !5
  %1683 = call ptr @s2n_strerror_debug(i32 noundef %1682, ptr noundef nonnull @.str.4) #10
  %1684 = load i32, ptr %528, align 4, !tbaa !5
  %1685 = call ptr @strerror(i32 noundef %1684) #10
  %1686 = load i32, ptr %528, align 4, !tbaa !5
  %1687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1678, ptr noundef nonnull %.str.5.sink868, i32 noundef %1679, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1681, ptr noundef %1683, ptr noundef %1685, i32 noundef %1686) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1688:                                             ; preds = %1659
  %1689 = add nsw i32 %1660, 2
  store i32 %1689, ptr @test_count, align 4, !tbaa !5
  %bcmp237 = call i32 @bcmp(ptr noundef nonnull dereferenceable(12) %1499, ptr noundef nonnull dereferenceable(12) %3, i64 12)
  %1690 = icmp eq i32 %bcmp237, 0
  br i1 %1690, label %1691, label %1713

1691:                                             ; preds = %1688
  %1692 = load i32, ptr %528, align 4, !tbaa !5
  %1693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1694 = call i32 @s2n_print_stacktrace(ptr noundef %1693) #10
  %1695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1696 = trunc nuw i8 %1695 to i1
  br i1 %1696, label %1697, label %1701

1697:                                             ; preds = %1691
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = call i32 @fileno(ptr noundef %1698) #10
  %1700 = call i32 @isatty(i32 noundef %1699) #10
  %.not263 = icmp eq i32 %1700, 0
  br i1 %.not263, label %1701, label %1702

1701:                                             ; preds = %1697, %1691
  br label %1702

1702:                                             ; preds = %1697, %1701
  %.str.5.sink877 = phi ptr [ @.str.5, %1701 ], [ @.str.2, %1697 ]
  store i32 %1692, ptr %528, align 4, !tbaa !5
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = load i32, ptr @test_count, align 4, !tbaa !5
  %1705 = load i32, ptr %474, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror(i32 noundef %1705, ptr noundef nonnull @.str.4) #10
  %1707 = load i32, ptr %474, align 4, !tbaa !5
  %1708 = call ptr @s2n_strerror_debug(i32 noundef %1707, ptr noundef nonnull @.str.4) #10
  %1709 = load i32, ptr %528, align 4, !tbaa !5
  %1710 = call ptr @strerror(i32 noundef %1709) #10
  %1711 = load i32, ptr %528, align 4, !tbaa !5
  %1712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1703, ptr noundef nonnull %.str.5.sink877, i32 noundef %1704, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1706, ptr noundef %1708, ptr noundef %1710, i32 noundef %1711) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1713:                                             ; preds = %1688
  %1714 = add nsw i32 %1660, 3
  store i32 %1714, ptr @test_count, align 4, !tbaa !5
  %1715 = load i8, ptr %1525, align 8, !tbaa !48
  %1716 = icmp eq i8 %1715, 12
  br i1 %1716, label %1739, label %1717

1717:                                             ; preds = %1713
  %1718 = load i32, ptr %528, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @s2n_print_stacktrace(ptr noundef %1719) #10
  %1721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1722 = trunc nuw i8 %1721 to i1
  br i1 %1722, label %1723, label %1727

1723:                                             ; preds = %1717
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @fileno(ptr noundef %1724) #10
  %1726 = call i32 @isatty(i32 noundef %1725) #10
  %.not238 = icmp eq i32 %1726, 0
  br i1 %.not238, label %1727, label %1728

1727:                                             ; preds = %1723, %1717
  br label %1728

1728:                                             ; preds = %1723, %1727
  %.str.5.sink886 = phi ptr [ @.str.5, %1727 ], [ @.str.2, %1723 ]
  store i32 %1718, ptr %528, align 4, !tbaa !5
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = load i32, ptr %474, align 4, !tbaa !5
  %1732 = call ptr @s2n_strerror(i32 noundef %1731, ptr noundef nonnull @.str.4) #10
  %1733 = load i32, ptr %474, align 4, !tbaa !5
  %1734 = call ptr @s2n_strerror_debug(i32 noundef %1733, ptr noundef nonnull @.str.4) #10
  %1735 = load i32, ptr %528, align 4, !tbaa !5
  %1736 = call ptr @strerror(i32 noundef %1735) #10
  %1737 = load i32, ptr %528, align 4, !tbaa !5
  %1738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1729, ptr noundef nonnull %.str.5.sink886, i32 noundef %1730, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1732, ptr noundef %1734, ptr noundef %1736, i32 noundef %1737) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1739:                                             ; preds = %1713
  %1740 = add nsw i32 %1660, 4
  store i32 %1740, ptr @test_count, align 4, !tbaa !5
  %1741 = load ptr, ptr %1552, align 8, !tbaa !53
  %1742 = icmp eq ptr %1741, %1662
  br i1 %1742, label %1765, label %1743

1743:                                             ; preds = %1739
  %1744 = load i32, ptr %528, 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
  %.not239 = icmp eq i32 %1752, 0
  br i1 %.not239, label %1753, label %1754

1753:                                             ; preds = %1749, %1743
  br label %1754

1754:                                             ; preds = %1749, %1753
  %.str.5.sink895 = phi ptr [ @.str.5, %1753 ], [ @.str.2, %1749 ]
  store i32 %1744, ptr %528, 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 %474, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror(i32 noundef %1757, ptr noundef nonnull @.str.4) #10
  %1759 = load i32, ptr %474, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror_debug(i32 noundef %1759, ptr noundef nonnull @.str.4) #10
  %1761 = load i32, ptr %528, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #10
  %1763 = load i32, ptr %528, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1755, ptr noundef nonnull %.str.5.sink895, i32 noundef %1756, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1758, ptr noundef %1760, ptr noundef %1762, i32 noundef %1763) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1765:                                             ; preds = %1739
  %1766 = add nsw i32 %1660, 5
  store i32 %1766, ptr @test_count, align 4, !tbaa !5
  %1767 = getelementptr inbounds i8, ptr %1469, i64 1988
  %1768 = load i32, ptr %1767, align 4, !tbaa !50
  %1769 = getelementptr inbounds i8, ptr %1469, i64 1984
  %1770 = load i32, ptr %1769, align 8, !tbaa !51
  %.not240 = icmp eq i32 %1768, %1770
  br i1 %.not240, label %1793, label %1771

1771:                                             ; preds = %1765
  %1772 = load i32, ptr %528, align 4, !tbaa !5
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = call i32 @s2n_print_stacktrace(ptr noundef %1773) #10
  %1775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1776 = trunc nuw i8 %1775 to i1
  br i1 %1776, label %1777, label %1781

1777:                                             ; preds = %1771
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = call i32 @fileno(ptr noundef %1778) #10
  %1780 = call i32 @isatty(i32 noundef %1779) #10
  %.not262 = icmp eq i32 %1780, 0
  br i1 %.not262, label %1781, label %1782

1781:                                             ; preds = %1777, %1771
  br label %1782

1782:                                             ; preds = %1777, %1781
  %.str.5.sink904 = phi ptr [ @.str.5, %1781 ], [ @.str.2, %1777 ]
  store i32 %1772, ptr %528, align 4, !tbaa !5
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = load i32, ptr %474, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror(i32 noundef %1785, ptr noundef nonnull @.str.4) #10
  %1787 = load i32, ptr %474, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror_debug(i32 noundef %1787, ptr noundef nonnull @.str.4) #10
  %1789 = load i32, ptr %528, align 4, !tbaa !5
  %1790 = call ptr @strerror(i32 noundef %1789) #10
  %1791 = load i32, ptr %528, align 4, !tbaa !5
  %1792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1783, ptr noundef nonnull %.str.5.sink904, i32 noundef %1784, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1786, ptr noundef %1788, ptr noundef %1790, i32 noundef %1791) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1793:                                             ; preds = %1765
  %1794 = add nsw i32 %1660, 6
  store i32 %1794, ptr @test_count, align 4, !tbaa !5
  %1795 = call i32 @s2n_connection_free(ptr noundef nonnull %1469) #10
  %1796 = icmp eq i32 %1795, -1
  br i1 %1796, label %1797, label %1819

1797:                                             ; preds = %1793
  %1798 = load i32, ptr %528, align 4, !tbaa !5
  %1799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1800 = call i32 @s2n_print_stacktrace(ptr noundef %1799) #10
  %1801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1802 = trunc nuw i8 %1801 to i1
  br i1 %1802, label %1803, label %1807

1803:                                             ; preds = %1797
  %1804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1805 = call i32 @fileno(ptr noundef %1804) #10
  %1806 = call i32 @isatty(i32 noundef %1805) #10
  %.not261 = icmp eq i32 %1806, 0
  br i1 %.not261, label %1807, label %1808

1807:                                             ; preds = %1803, %1797
  br label %1808

1808:                                             ; preds = %1803, %1807
  %.str.5.sink913 = phi ptr [ @.str.5, %1807 ], [ @.str.2, %1803 ]
  store i32 %1798, ptr %528, align 4, !tbaa !5
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = load i32, ptr @test_count, align 4, !tbaa !5
  %1811 = load i32, ptr %474, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror(i32 noundef %1811, ptr noundef nonnull @.str.4) #10
  %1813 = load i32, ptr %474, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror_debug(i32 noundef %1813, ptr noundef nonnull @.str.4) #10
  %1815 = load i32, ptr %528, align 4, !tbaa !5
  %1816 = call ptr @strerror(i32 noundef %1815) #10
  %1817 = load i32, ptr %528, align 4, !tbaa !5
  %1818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1809, ptr noundef nonnull %.str.5.sink913, i32 noundef %1810, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1812, ptr noundef %1814, ptr noundef %1816, i32 noundef %1817) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1819:                                             ; preds = %1793
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  %1820 = call ptr @s2n_connection_new(i32 noundef 0) #10
  store ptr %1820, ptr %6, align 8, !tbaa !9
  %1821 = load i32, ptr @test_count, align 4, !tbaa !5
  %1822 = add nsw i32 %1821, 1
  store i32 %1822, ptr @test_count, align 4, !tbaa !5
  %1823 = icmp eq ptr %1820, null
  br i1 %1823, label %1824, label %1846

1824:                                             ; preds = %1819
  %1825 = load i32, ptr %528, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = call i32 @s2n_print_stacktrace(ptr noundef %1826) #10
  %1828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1829 = trunc nuw i8 %1828 to i1
  br i1 %1829, label %1830, label %1834

1830:                                             ; preds = %1824
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = call i32 @fileno(ptr noundef %1831) #10
  %1833 = call i32 @isatty(i32 noundef %1832) #10
  %.not260 = icmp eq i32 %1833, 0
  br i1 %.not260, label %1834, label %1835

1834:                                             ; preds = %1830, %1824
  br label %1835

1835:                                             ; preds = %1830, %1834
  %.str.5.sink922 = phi ptr [ @.str.5, %1834 ], [ @.str.2, %1830 ]
  store i32 %1825, ptr %528, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = load i32, ptr @test_count, align 4, !tbaa !5
  %1838 = load i32, ptr %474, align 4, !tbaa !5
  %1839 = call ptr @s2n_strerror(i32 noundef %1838, ptr noundef nonnull @.str.4) #10
  %1840 = load i32, ptr %474, align 4, !tbaa !5
  %1841 = call ptr @s2n_strerror_debug(i32 noundef %1840, ptr noundef nonnull @.str.4) #10
  %1842 = load i32, ptr %528, align 4, !tbaa !5
  %1843 = call ptr @strerror(i32 noundef %1842) #10
  %1844 = load i32, ptr %528, align 4, !tbaa !5
  %1845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1836, ptr noundef nonnull %.str.5.sink922, i32 noundef %1837, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1839, ptr noundef %1841, ptr noundef %1843, i32 noundef %1844) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1846:                                             ; preds = %1819
  %1847 = getelementptr inbounds i8, ptr %1820, i64 232
  %1848 = load ptr, ptr %1847, align 8, !tbaa !16
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %1848, align 8, !tbaa !43
  %1849 = getelementptr inbounds i8, ptr %1820, i64 220
  store i8 30, ptr %1849, align 4, !tbaa !52
  %1850 = getelementptr inbounds i8, ptr %1848, i64 928
  store i8 1, ptr %1850, align 8, !tbaa !15
  %1851 = add nsw i32 %1821, 2
  store i32 %1851, ptr @test_count, align 4, !tbaa !5
  %1852 = getelementptr inbounds i8, ptr %1820, i64 2072
  %bcmp241 = call i32 @bcmp(ptr noundef nonnull dereferenceable(12) %1852, ptr noundef nonnull dereferenceable(12) %3, i64 12)
  %1853 = icmp eq i32 %bcmp241, 0
  br i1 %1853, label %1876, label %1854

1854:                                             ; preds = %1846
  %1855 = load i32, ptr %528, align 4, !tbaa !5
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = call i32 @s2n_print_stacktrace(ptr noundef %1856) #10
  %1858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1859 = trunc nuw i8 %1858 to i1
  br i1 %1859, label %1860, label %1864

1860:                                             ; preds = %1854
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = call i32 @fileno(ptr noundef %1861) #10
  %1863 = call i32 @isatty(i32 noundef %1862) #10
  %.not242 = icmp eq i32 %1863, 0
  br i1 %.not242, label %1864, label %1865

1864:                                             ; preds = %1860, %1854
  br label %1865

1865:                                             ; preds = %1860, %1864
  %.str.5.sink931 = phi ptr [ @.str.5, %1864 ], [ @.str.2, %1860 ]
  store i32 %1855, ptr %528, align 4, !tbaa !5
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %1868 = load i32, ptr %474, align 4, !tbaa !5
  %1869 = call ptr @s2n_strerror(i32 noundef %1868, ptr noundef nonnull @.str.4) #10
  %1870 = load i32, ptr %474, align 4, !tbaa !5
  %1871 = call ptr @s2n_strerror_debug(i32 noundef %1870, ptr noundef nonnull @.str.4) #10
  %1872 = load i32, ptr %528, align 4, !tbaa !5
  %1873 = call ptr @strerror(i32 noundef %1872) #10
  %1874 = load i32, ptr %528, align 4, !tbaa !5
  %1875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1866, ptr noundef nonnull %.str.5.sink931, i32 noundef %1867, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1869, ptr noundef %1871, ptr noundef %1873, i32 noundef %1874) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1876:                                             ; preds = %1846
  %1877 = add nsw i32 %1821, 3
  store i32 %1877, ptr @test_count, align 4, !tbaa !5
  %1878 = getelementptr inbounds i8, ptr %1820, i64 2168
  %1879 = load i8, ptr %1878, align 8, !tbaa !48
  %1880 = icmp eq i8 %1879, 0
  br i1 %1880, label %1903, label %1881

1881:                                             ; preds = %1876
  %1882 = load i32, ptr %528, align 4, !tbaa !5
  %1883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1884 = call i32 @s2n_print_stacktrace(ptr noundef %1883) #10
  %1885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1886 = trunc nuw i8 %1885 to i1
  br i1 %1886, label %1887, label %1891

1887:                                             ; preds = %1881
  %1888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1889 = call i32 @fileno(ptr noundef %1888) #10
  %1890 = call i32 @isatty(i32 noundef %1889) #10
  %.not243 = icmp eq i32 %1890, 0
  br i1 %.not243, label %1891, label %1892

1891:                                             ; preds = %1887, %1881
  br label %1892

1892:                                             ; preds = %1887, %1891
  %.str.5.sink940 = phi ptr [ @.str.5, %1891 ], [ @.str.2, %1887 ]
  store i32 %1882, ptr %528, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = load i32, ptr @test_count, align 4, !tbaa !5
  %1895 = load i32, ptr %474, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror(i32 noundef %1895, ptr noundef nonnull @.str.4) #10
  %1897 = load i32, ptr %474, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror_debug(i32 noundef %1897, ptr noundef nonnull @.str.4) #10
  %1899 = load i32, ptr %528, align 4, !tbaa !5
  %1900 = call ptr @strerror(i32 noundef %1899) #10
  %1901 = load i32, ptr %528, align 4, !tbaa !5
  %1902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1893, ptr noundef nonnull %.str.5.sink940, i32 noundef %1894, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1896, ptr noundef %1898, ptr noundef %1900, i32 noundef %1901) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1903:                                             ; preds = %1876
  %1904 = add nsw i32 %1821, 4
  store i32 %1904, ptr @test_count, align 4, !tbaa !5
  %1905 = getelementptr inbounds i8, ptr %1820, i64 640
  %1906 = load ptr, ptr %1905, align 8, !tbaa !53
  %1907 = load ptr, ptr %1847, align 8, !tbaa !16
  %1908 = icmp eq ptr %1906, %1907
  br i1 %1908, label %1909, label %1931

1909:                                             ; preds = %1903
  %1910 = load i32, ptr %528, 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
  %.not259 = icmp eq i32 %1918, 0
  br i1 %.not259, label %1919, label %1920

1919:                                             ; preds = %1915, %1909
  br label %1920

1920:                                             ; preds = %1915, %1919
  %.str.5.sink949 = phi ptr [ @.str.5, %1919 ], [ @.str.2, %1915 ]
  store i32 %1910, ptr %528, 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 %474, align 4, !tbaa !5
  %1924 = call ptr @s2n_strerror(i32 noundef %1923, ptr noundef nonnull @.str.4) #10
  %1925 = load i32, ptr %474, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror_debug(i32 noundef %1925, ptr noundef nonnull @.str.4) #10
  %1927 = load i32, ptr %528, align 4, !tbaa !5
  %1928 = call ptr @strerror(i32 noundef %1927) #10
  %1929 = load i32, ptr %528, align 4, !tbaa !5
  %1930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1921, ptr noundef nonnull %.str.5.sink949, i32 noundef %1922, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1924, ptr noundef %1926, ptr noundef %1928, i32 noundef %1929) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1931:                                             ; preds = %1903
  %1932 = add nsw i32 %1821, 5
  store i32 %1932, ptr @test_count, align 4, !tbaa !5
  %1933 = getelementptr inbounds i8, ptr %1820, i64 1960
  %1934 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1933, i8 noundef zeroext 1) #10
  %1935 = icmp eq i32 %1934, -1
  br i1 %1935, label %1936, label %1958

1936:                                             ; preds = %1931
  %1937 = load i32, ptr %528, 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
  %.not258 = icmp eq i32 %1945, 0
  br i1 %.not258, label %1946, label %1947

1946:                                             ; preds = %1942, %1936
  br label %1947

1947:                                             ; preds = %1942, %1946
  %.str.5.sink958 = phi ptr [ @.str.5, %1946 ], [ @.str.2, %1942 ]
  store i32 %1937, ptr %528, 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 %474, align 4, !tbaa !5
  %1951 = call ptr @s2n_strerror(i32 noundef %1950, ptr noundef nonnull @.str.4) #10
  %1952 = load i32, ptr %474, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror_debug(i32 noundef %1952, ptr noundef nonnull @.str.4) #10
  %1954 = load i32, ptr %528, align 4, !tbaa !5
  %1955 = call ptr @strerror(i32 noundef %1954) #10
  %1956 = load i32, ptr %528, align 4, !tbaa !5
  %1957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1948, ptr noundef nonnull %.str.5.sink958, i32 noundef %1949, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 177, 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 = load i32, ptr @test_count, align 4, !tbaa !5
  %1960 = add nsw i32 %1959, 1
  store i32 %1960, ptr @test_count, align 4, !tbaa !5
  %1961 = call i32 @s2n_ccs_send(ptr noundef nonnull %1820) #10
  %1962 = icmp eq i32 %1961, -1
  br i1 %1962, label %1963, label %1985

1963:                                             ; preds = %1958
  %1964 = load i32, ptr %528, 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
  %.not257 = icmp eq i32 %1972, 0
  br i1 %.not257, label %1973, label %1974

1973:                                             ; preds = %1969, %1963
  br label %1974

1974:                                             ; preds = %1969, %1973
  %.str.5.sink967 = phi ptr [ @.str.5, %1973 ], [ @.str.2, %1969 ]
  store i32 %1964, ptr %528, 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 %474, align 4, !tbaa !5
  %1978 = call ptr @s2n_strerror(i32 noundef %1977, ptr noundef nonnull @.str.4) #10
  %1979 = load i32, ptr %474, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror_debug(i32 noundef %1979, ptr noundef nonnull @.str.4) #10
  %1981 = load i32, ptr %528, align 4, !tbaa !5
  %1982 = call ptr @strerror(i32 noundef %1981) #10
  %1983 = load i32, ptr %528, align 4, !tbaa !5
  %1984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1975, ptr noundef nonnull %.str.5.sink967, i32 noundef %1976, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 179, 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 = load i32, ptr @test_count, align 4, !tbaa !5
  %1987 = add nsw i32 %1986, 1
  store i32 %1987, ptr @test_count, align 4, !tbaa !5
  %1988 = call i32 @s2n_server_ccs_recv(ptr noundef nonnull %1820) #10
  %1989 = icmp eq i32 %1988, -1
  br i1 %1989, label %1990, label %2012

1990:                                             ; preds = %1985
  %1991 = load i32, ptr %528, align 4, !tbaa !5
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = call i32 @s2n_print_stacktrace(ptr noundef %1992) #10
  %1994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1995 = trunc nuw i8 %1994 to i1
  br i1 %1995, label %1996, label %2000

1996:                                             ; preds = %1990
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = call i32 @fileno(ptr noundef %1997) #10
  %1999 = call i32 @isatty(i32 noundef %1998) #10
  %.not256 = icmp eq i32 %1999, 0
  br i1 %.not256, label %2000, label %2001

2000:                                             ; preds = %1996, %1990
  br label %2001

2001:                                             ; preds = %1996, %2000
  %.str.5.sink976 = phi ptr [ @.str.5, %2000 ], [ @.str.2, %1996 ]
  store i32 %1991, ptr %528, align 4, !tbaa !5
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = load i32, ptr %474, align 4, !tbaa !5
  %2005 = call ptr @s2n_strerror(i32 noundef %2004, ptr noundef nonnull @.str.4) #10
  %2006 = load i32, ptr %474, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror_debug(i32 noundef %2006, ptr noundef nonnull @.str.4) #10
  %2008 = load i32, ptr %528, align 4, !tbaa !5
  %2009 = call ptr @strerror(i32 noundef %2008) #10
  %2010 = load i32, ptr %528, align 4, !tbaa !5
  %2011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2002, ptr noundef nonnull %.str.5.sink976, i32 noundef %2003, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %2005, ptr noundef %2007, ptr noundef %2009, i32 noundef %2010) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2012:                                             ; preds = %1985
  %2013 = load i32, ptr @test_count, align 4, !tbaa !5
  %2014 = add nsw i32 %2013, 1
  store i32 %2014, ptr @test_count, align 4, !tbaa !5
  %2015 = load ptr, ptr %1847, align 8, !tbaa !16
  %2016 = getelementptr inbounds i8, ptr %2015, i64 928
  %2017 = load i8, ptr %2016, align 8, !tbaa !15
  %2018 = icmp eq i8 %2017, 0
  br i1 %2018, label %2041, label %2019

2019:                                             ; preds = %2012
  %2020 = load i32, ptr %528, align 4, !tbaa !5
  %2021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2022 = call i32 @s2n_print_stacktrace(ptr noundef %2021) #10
  %2023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2024 = trunc nuw i8 %2023 to i1
  br i1 %2024, label %2025, label %2029

2025:                                             ; preds = %2019
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = call i32 @fileno(ptr noundef %2026) #10
  %2028 = call i32 @isatty(i32 noundef %2027) #10
  %.not244 = icmp eq i32 %2028, 0
  br i1 %.not244, label %2029, label %2030

2029:                                             ; preds = %2025, %2019
  br label %2030

2030:                                             ; preds = %2025, %2029
  %.str.5.sink985 = phi ptr [ @.str.5, %2029 ], [ @.str.2, %2025 ]
  store i32 %2020, ptr %528, align 4, !tbaa !5
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = load i32, ptr @test_count, align 4, !tbaa !5
  %2033 = load i32, ptr %474, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror(i32 noundef %2033, ptr noundef nonnull @.str.4) #10
  %2035 = load i32, ptr %474, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror_debug(i32 noundef %2035, ptr noundef nonnull @.str.4) #10
  %2037 = load i32, ptr %528, align 4, !tbaa !5
  %2038 = call ptr @strerror(i32 noundef %2037) #10
  %2039 = load i32, ptr %528, align 4, !tbaa !5
  %2040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2031, ptr noundef nonnull %.str.5.sink985, i32 noundef %2032, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %2034, ptr noundef %2036, ptr noundef %2038, i32 noundef %2039) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2041:                                             ; preds = %2012
  %2042 = add nsw i32 %2013, 2
  store i32 %2042, ptr @test_count, align 4, !tbaa !5
  %bcmp245 = call i32 @bcmp(ptr noundef nonnull dereferenceable(12) %1852, ptr noundef nonnull dereferenceable(12) %3, i64 12)
  %2043 = icmp eq i32 %bcmp245, 0
  br i1 %2043, label %2044, label %2066

2044:                                             ; preds = %2041
  %2045 = load i32, ptr %528, align 4, !tbaa !5
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = call i32 @s2n_print_stacktrace(ptr noundef %2046) #10
  %2048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2049 = trunc nuw i8 %2048 to i1
  br i1 %2049, label %2050, label %2054

2050:                                             ; preds = %2044
  %2051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2052 = call i32 @fileno(ptr noundef %2051) #10
  %2053 = call i32 @isatty(i32 noundef %2052) #10
  %.not255 = icmp eq i32 %2053, 0
  br i1 %.not255, label %2054, label %2055

2054:                                             ; preds = %2050, %2044
  br label %2055

2055:                                             ; preds = %2050, %2054
  %.str.5.sink994 = phi ptr [ @.str.5, %2054 ], [ @.str.2, %2050 ]
  store i32 %2045, ptr %528, align 4, !tbaa !5
  %2056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2057 = load i32, ptr @test_count, align 4, !tbaa !5
  %2058 = load i32, ptr %474, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror(i32 noundef %2058, ptr noundef nonnull @.str.4) #10
  %2060 = load i32, ptr %474, align 4, !tbaa !5
  %2061 = call ptr @s2n_strerror_debug(i32 noundef %2060, ptr noundef nonnull @.str.4) #10
  %2062 = load i32, ptr %528, align 4, !tbaa !5
  %2063 = call ptr @strerror(i32 noundef %2062) #10
  %2064 = load i32, ptr %528, align 4, !tbaa !5
  %2065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2056, ptr noundef nonnull %.str.5.sink994, i32 noundef %2057, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %2059, ptr noundef %2061, ptr noundef %2063, i32 noundef %2064) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2066:                                             ; preds = %2041
  %2067 = add nsw i32 %2013, 3
  store i32 %2067, ptr @test_count, align 4, !tbaa !5
  %2068 = load i8, ptr %1878, align 8, !tbaa !48
  %2069 = icmp eq i8 %2068, 36
  br i1 %2069, label %2092, label %2070

2070:                                             ; preds = %2066
  %2071 = load i32, ptr %528, 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
  %.not246 = icmp eq i32 %2079, 0
  br i1 %.not246, label %2080, label %2081

2080:                                             ; preds = %2076, %2070
  br label %2081

2081:                                             ; preds = %2076, %2080
  %.str.5.sink1003 = phi ptr [ @.str.5, %2080 ], [ @.str.2, %2076 ]
  store i32 %2071, ptr %528, 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 %474, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror(i32 noundef %2084, ptr noundef nonnull @.str.4) #10
  %2086 = load i32, ptr %474, align 4, !tbaa !5
  %2087 = call ptr @s2n_strerror_debug(i32 noundef %2086, ptr noundef nonnull @.str.4) #10
  %2088 = load i32, ptr %528, align 4, !tbaa !5
  %2089 = call ptr @strerror(i32 noundef %2088) #10
  %2090 = load i32, ptr %528, align 4, !tbaa !5
  %2091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2082, ptr noundef nonnull %.str.5.sink1003, i32 noundef %2083, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %2085, ptr noundef %2087, ptr noundef %2089, i32 noundef %2090) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2092:                                             ; preds = %2066
  %2093 = add nsw i32 %2013, 4
  store i32 %2093, ptr @test_count, align 4, !tbaa !5
  %2094 = load ptr, ptr %1905, align 8, !tbaa !53
  %2095 = icmp eq ptr %2094, %2015
  br i1 %2095, label %2118, label %2096

2096:                                             ; preds = %2092
  %2097 = load i32, ptr %528, 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
  %.not247 = icmp eq i32 %2105, 0
  br i1 %.not247, label %2106, label %2107

2106:                                             ; preds = %2102, %2096
  br label %2107

2107:                                             ; preds = %2102, %2106
  %.str.5.sink1012 = phi ptr [ @.str.5, %2106 ], [ @.str.2, %2102 ]
  store i32 %2097, ptr %528, 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 %474, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror(i32 noundef %2110, ptr noundef nonnull @.str.4) #10
  %2112 = load i32, ptr %474, align 4, !tbaa !5
  %2113 = call ptr @s2n_strerror_debug(i32 noundef %2112, ptr noundef nonnull @.str.4) #10
  %2114 = load i32, ptr %528, align 4, !tbaa !5
  %2115 = call ptr @strerror(i32 noundef %2114) #10
  %2116 = load i32, ptr %528, align 4, !tbaa !5
  %2117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2108, ptr noundef nonnull %.str.5.sink1012, i32 noundef %2109, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 186, 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 = add nsw i32 %2013, 5
  store i32 %2119, ptr @test_count, align 4, !tbaa !5
  %2120 = getelementptr inbounds i8, ptr %1820, i64 1988
  %2121 = load i32, ptr %2120, align 4, !tbaa !50
  %2122 = getelementptr inbounds i8, ptr %1820, i64 1984
  %2123 = load i32, ptr %2122, align 8, !tbaa !51
  %.not248 = icmp eq i32 %2121, %2123
  br i1 %.not248, label %2146, label %2124

2124:                                             ; preds = %2118
  %2125 = load i32, ptr %528, align 4, !tbaa !5
  %2126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2127 = call i32 @s2n_print_stacktrace(ptr noundef %2126) #10
  %2128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2129 = trunc nuw i8 %2128 to i1
  br i1 %2129, label %2130, label %2134

2130:                                             ; preds = %2124
  %2131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2132 = call i32 @fileno(ptr noundef %2131) #10
  %2133 = call i32 @isatty(i32 noundef %2132) #10
  %.not254 = icmp eq i32 %2133, 0
  br i1 %.not254, label %2134, label %2135

2134:                                             ; preds = %2130, %2124
  br label %2135

2135:                                             ; preds = %2130, %2134
  %.str.5.sink1021 = phi ptr [ @.str.5, %2134 ], [ @.str.2, %2130 ]
  store i32 %2125, ptr %528, align 4, !tbaa !5
  %2136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = load i32, ptr %474, align 4, !tbaa !5
  %2139 = call ptr @s2n_strerror(i32 noundef %2138, ptr noundef nonnull @.str.4) #10
  %2140 = load i32, ptr %474, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror_debug(i32 noundef %2140, ptr noundef nonnull @.str.4) #10
  %2142 = load i32, ptr %528, align 4, !tbaa !5
  %2143 = call ptr @strerror(i32 noundef %2142) #10
  %2144 = load i32, ptr %528, align 4, !tbaa !5
  %2145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2136, ptr noundef nonnull %.str.5.sink1021, i32 noundef %2137, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %2139, ptr noundef %2141, ptr noundef %2143, i32 noundef %2144) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2146:                                             ; preds = %2118
  %2147 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  %2148 = call i32 @s2n_cleanup() #10
  %2149 = icmp eq i32 %2148, -1
  br i1 %2149, label %2150, label %2172

2150:                                             ; preds = %2146
  %2151 = load i32, ptr %528, 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
  %.not253 = icmp eq i32 %2159, 0
  br i1 %.not253, label %2160, label %2161

2160:                                             ; preds = %2156, %2150
  br label %2161

2161:                                             ; preds = %2156, %2160
  %.str.5.sink1030 = phi ptr [ @.str.5, %2160 ], [ @.str.2, %2156 ]
  store i32 %2151, ptr %528, 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 %474, align 4, !tbaa !5
  %2165 = call ptr @s2n_strerror(i32 noundef %2164, ptr noundef nonnull @.str.4) #10
  %2166 = load i32, ptr %474, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror_debug(i32 noundef %2166, ptr noundef nonnull @.str.4) #10
  %2168 = load i32, ptr %528, align 4, !tbaa !5
  %2169 = call ptr @strerror(i32 noundef %2168) #10
  %2170 = load i32, ptr %528, align 4, !tbaa !5
  %2171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2162, ptr noundef nonnull %.str.5.sink1030, i32 noundef %2163, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %2165, ptr noundef %2167, ptr noundef %2169, i32 noundef %2170) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2172:                                             ; preds = %2146
  %2173 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %2174 = icmp eq i32 %2173, -1
  br i1 %2174, label %2175, label %2197

2175:                                             ; preds = %2172
  %2176 = load i32, ptr %528, align 4, !tbaa !5
  %2177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2178 = call i32 @s2n_print_stacktrace(ptr noundef %2177) #10
  %2179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2180 = trunc nuw i8 %2179 to i1
  br i1 %2180, label %2181, label %2185

2181:                                             ; preds = %2175
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = call i32 @fileno(ptr noundef %2182) #10
  %2184 = call i32 @isatty(i32 noundef %2183) #10
  %.not252 = icmp eq i32 %2184, 0
  br i1 %.not252, label %2185, label %2186

2185:                                             ; preds = %2181, %2175
  br label %2186

2186:                                             ; preds = %2181, %2185
  %.str.5.sink1039 = phi ptr [ @.str.5, %2185 ], [ @.str.2, %2181 ]
  store i32 %2176, ptr %528, align 4, !tbaa !5
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = load i32, ptr @test_count, align 4, !tbaa !5
  %2189 = load i32, ptr %474, align 4, !tbaa !5
  %2190 = call ptr @s2n_strerror(i32 noundef %2189, ptr noundef nonnull @.str.4) #10
  %2191 = load i32, ptr %474, align 4, !tbaa !5
  %2192 = call ptr @s2n_strerror_debug(i32 noundef %2191, ptr noundef nonnull @.str.4) #10
  %2193 = load i32, ptr %528, align 4, !tbaa !5
  %2194 = call ptr @strerror(i32 noundef %2193) #10
  %2195 = load i32, ptr %528, align 4, !tbaa !5
  %2196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2187, ptr noundef nonnull %.str.5.sink1039, i32 noundef %2188, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %2190, ptr noundef %2192, ptr noundef %2194, i32 noundef %2195) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2197:                                             ; preds = %2172
  %2198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2199 = trunc nuw i8 %2198 to i1
  br i1 %2199, label %2200, label %2211

2200:                                             ; preds = %2197
  %2201 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2202 = call i32 @fileno(ptr noundef %2201) #10
  %2203 = call i32 @isatty(i32 noundef %2202) #10
  %.not249 = icmp eq i32 %2203, 0
  br i1 %.not249, label %2211, label %2204

2204:                                             ; preds = %2200
  %2205 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not251 = icmp eq i32 %2205, 0
  %2206 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not251, label %2209, label %2207

2207:                                             ; preds = %2204
  %2208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2206, ptr noundef nonnull @.str.41, i32 noundef %2205) #10
  br label %2218

2209:                                             ; preds = %2204
  %2210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2206, ptr noundef nonnull @.str.42) #10
  br label %2218

2211:                                             ; preds = %2200, %2197
  %2212 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not250 = icmp eq i32 %2212, 0
  %2213 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not250, label %2216, label %2214

2214:                                             ; preds = %2211
  %2215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2213, ptr noundef nonnull @.str.43, i32 noundef %2212) #10
  br label %2218

2216:                                             ; preds = %2211
  %2217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2213, ptr noundef nonnull @.str.44) #10
  br label %2218

2218:                                             ; preds = %2214, %2216, %2207, %2209
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %3) #10
  ret i32 0
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #6

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) 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 ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_ccs_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_basic_ccs_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_client_ccs_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_ccs_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #9

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 = { nofree nounwind willreturn memory(argmem: read) }
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 = !{!7, !7, i64 0}
!16 = !{!17, !10, i64 232}
!17 = !{!"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, !18, i64 160, !19, i64 168, !19, 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, !20, i64 240, !10, i64 632, !10, i64 640, !21, i64 648, !27, i64 1144, !30, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !33, i64 1776, !33, i64 1816, !33, i64 1856, !33, i64 1896, !6, i64 1936, !19, i64 1944, !7, i64 1952, !33, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !34, i64 2004, !34, i64 2008, !35, i64 2016, !32, i64 2208, !6, i64 2212, !32, i64 2216, !19, i64 2224, !7, i64 2232, !19, i64 2240, !19, i64 2248, !19, i64 2256, !34, i64 2264, !34, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !26, i64 2792, !6, i64 2816, !26, i64 2824, !26, i64 2848, !26, i64 2872, !37, i64 2896, !39, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !26, i64 3784, !6, i64 3808, !41, i64 3816, !7, i64 3848, !33, i64 3992, !26, i64 4032, !26, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !32, i64 4084, !32, i64 4086, !6, i64 4088, !6, i64 4092, !26, i64 4096, !6, i64 4120, !42, i64 4128, !34, i64 4176, !7, i64 4180, !7, i64 4181}
!18 = !{!"s2n_timer", !19, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!21 = !{!"s2n_kex_parameters", !22, i64 0, !23, i64 8, !7, i64 24, !23, i64 56, !24, i64 72, !24, i64 184, !7, i64 296, !25, i64 360, !26, i64 448, !26, i64 472}
!22 = !{!"s2n_dh_params", !10, i64 0}
!23 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!24 = !{!"s2n_kem_group_params", !10, i64 0, !25, i64 8, !23, i64 96}
!25 = !{!"s2n_kem_params", !10, i64 0, !26, i64 8, !26, i64 32, !26, i64 56, !12, i64 80}
!26 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!27 = !{!"s2n_handshake_parameters", !28, i64 0, !28, i64 48, !26, i64 96, !6, i64 120, !29, 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}
!28 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!29 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!30 = !{!"s2n_psk_parameters", !6, i64 0, !31, i64 8, !32, i64 40, !32, i64 42, !10, i64 48, !6, i64 56}
!31 = !{!"s2n_array", !26, i64 0, !6, i64 24, !6, i64 28}
!32 = !{!"short", !7, i64 0}
!33 = !{!"s2n_stuffer", !26, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!34 = !{!"", !6, i64 0}
!35 = !{!"s2n_handshake", !33, 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, !36, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!36 = !{!"s2n_offered_early_data", !10, i64 0}
!37 = !{!"s2n_client_hello", !26, i64 0, !38, i64 24, !26, i64 728, !26, i64 752, !26, 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}
!38 = !{!"", !7, i64 0, !26, i64 672, !32, i64 696}
!39 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !32, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !40, i64 48, !12, i64 52}
!40 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!41 = !{!"s2n_ticket_fields", !26, i64 0, !6, i64 24}
!42 = !{!"s2n_post_handshake", !33, i64 0, !7, i64 40}
!43 = !{!44, !10, i64 0}
!44 = !{!"s2n_crypto_parameters", !10, i64 0, !45, i64 8, !45, i64 16, !46, i64 24, !46, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!45 = !{!"s2n_session_key", !10, i64 0}
!46 = !{!"s2n_hmac_state", !6, i64 0, !32, i64 4, !6, i64 8, !32, i64 12, !7, i64 14, !47, i64 16, !47, i64 72, !47, i64 128, !47, i64 184, !7, i64 240, !7, i64 368}
!47 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !19, i64 16, !7, i64 24}
!48 = !{!17, !7, i64 2168}
!49 = !{!17, !10, i64 632}
!50 = !{!17, !6, i64 1988}
!51 = !{!17, !6, i64 1984}
!52 = !{!17, !7, i64 220}
!53 = !{!17, !10, i64 640}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass