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

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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_config = type { i32, ptr, ptr, %struct.certs_by_type, %struct.s2n_blob, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, %struct.s2n_x509_trust_store, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, %struct.s2n_blob }
%struct.certs_by_type = type { [4 x ptr] }
%struct.s2n_x509_trust_store = type { ptr, i8 }

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

202:                                              ; preds = %2
  br label %203

203:                                              ; preds = %202
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %204 = load ptr, ptr @stdout, align 8, !tbaa !9
  %205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %204, ptr noundef @.str, ptr noundef @.str.1) #10
  %206 = load ptr, ptr @stdout, align 8, !tbaa !9
  %207 = call i32 @fflush(ptr noundef %206)
  br label %208

208:                                              ; preds = %203
  %209 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %211, label %262

211:                                              ; preds = %208
  br label %212

212:                                              ; preds = %211
  br label %213

213:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %214 = call ptr @__errno_location() #11
  %215 = load i32, ptr %214, align 4, !tbaa !5
  store i32 %215, ptr %6, align 4, !tbaa !5
  %216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %217 = call i32 @s2n_print_stacktrace(ptr noundef %216)
  %218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %219 = trunc i8 %218 to i1
  br i1 %219, label %220, label %242

220:                                              ; preds = %213
  %221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %222 = call i32 @fileno(ptr noundef %221) #10
  %223 = call i32 @isatty(i32 noundef %222) #10
  %224 = icmp ne i32 %223, 0
  br i1 %224, label %225, label %242

225:                                              ; preds = %220
  %226 = load i32, ptr %6, align 4, !tbaa !5
  %227 = call ptr @__errno_location() #11
  store i32 %226, ptr %227, 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 @.str.4)
  %233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror_debug(i32 noundef %234, ptr noundef @.str.4)
  %236 = call ptr @__errno_location() #11
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @strerror(i32 noundef %237) #10
  %239 = call ptr @__errno_location() #11
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %228, ptr noundef @.str.2, i32 noundef %229, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 25, ptr noundef %232, ptr noundef %235, ptr noundef %238, i32 noundef %240) #10
  br label %259

242:                                              ; preds = %220, %213
  %243 = load i32, ptr %6, align 4, !tbaa !5
  %244 = call ptr @__errno_location() #11
  store i32 %243, ptr %244, align 4, !tbaa !5
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = load i32, ptr @test_count, align 4, !tbaa !5
  %247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call ptr @s2n_strerror(i32 noundef %248, ptr noundef @.str.4)
  %250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = call ptr @s2n_strerror_debug(i32 noundef %251, ptr noundef @.str.4)
  %253 = call ptr @__errno_location() #11
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @strerror(i32 noundef %254) #10
  %256 = call ptr @__errno_location() #11
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %245, ptr noundef @.str.5, i32 noundef %246, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 25, ptr noundef %249, ptr noundef %252, ptr noundef %255, i32 noundef %257) #10
  br label %259

259:                                              ; preds = %242, %225
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %260

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

261:                                              ; No predecessors!
  br label %262

262:                                              ; preds = %261, %208
  br label %263

263:                                              ; preds = %262
  br label %264

264:                                              ; preds = %263
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = add nsw i32 %265, 1
  store i32 %266, ptr @test_count, align 4, !tbaa !5
  %267 = call i32 @s2n_enable_atexit()
  %268 = icmp eq i32 %267, -1
  br i1 %268, label %269, label %320

269:                                              ; preds = %264
  br label %270

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %272 = call ptr @__errno_location() #11
  %273 = load i32, ptr %272, align 4, !tbaa !5
  store i32 %273, ptr %7, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = call i32 @s2n_print_stacktrace(ptr noundef %274)
  %276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %277 = trunc i8 %276 to i1
  br i1 %277, label %278, label %300

278:                                              ; preds = %271
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = call i32 @fileno(ptr noundef %279) #10
  %281 = call i32 @isatty(i32 noundef %280) #10
  %282 = icmp ne i32 %281, 0
  br i1 %282, label %283, label %300

283:                                              ; preds = %278
  %284 = load i32, ptr %7, align 4, !tbaa !5
  %285 = call ptr @__errno_location() #11
  store i32 %284, ptr %285, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call ptr @s2n_strerror(i32 noundef %289, ptr noundef @.str.4)
  %291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = call ptr @s2n_strerror_debug(i32 noundef %292, ptr noundef @.str.4)
  %294 = call ptr @__errno_location() #11
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = call ptr @strerror(i32 noundef %295) #10
  %297 = call ptr @__errno_location() #11
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %286, ptr noundef @.str.2, i32 noundef %287, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 25, ptr noundef %290, ptr noundef %293, ptr noundef %296, i32 noundef %298) #10
  br label %317

300:                                              ; preds = %278, %271
  %301 = load i32, ptr %7, align 4, !tbaa !5
  %302 = call ptr @__errno_location() #11
  store i32 %301, ptr %302, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %306 = load i32, ptr %305, align 4, !tbaa !5
  %307 = call ptr @s2n_strerror(i32 noundef %306, ptr noundef @.str.4)
  %308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = call ptr @s2n_strerror_debug(i32 noundef %309, ptr noundef @.str.4)
  %311 = call ptr @__errno_location() #11
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = call ptr @strerror(i32 noundef %312) #10
  %314 = call ptr @__errno_location() #11
  %315 = load i32, ptr %314, align 4, !tbaa !5
  %316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %303, ptr noundef @.str.5, i32 noundef %304, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 25, ptr noundef %307, ptr noundef %310, ptr noundef %313, i32 noundef %315) #10
  br label %317

317:                                              ; preds = %300, %283
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %318

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

319:                                              ; No predecessors!
  br label %320

320:                                              ; preds = %319, %264
  br label %321

321:                                              ; preds = %320
  br label %322

322:                                              ; preds = %321
  br label %323

323:                                              ; preds = %322
  %324 = call i32 @s2n_init()
  %325 = icmp eq i32 %324, -1
  br i1 %325, label %326, label %377

326:                                              ; preds = %323
  br label %327

327:                                              ; preds = %326
  br label %328

328:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %329 = call ptr @__errno_location() #11
  %330 = load i32, ptr %329, align 4, !tbaa !5
  store i32 %330, ptr %8, align 4, !tbaa !5
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = call i32 @s2n_print_stacktrace(ptr noundef %331)
  %333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %334 = trunc i8 %333 to i1
  br i1 %334, label %335, label %357

335:                                              ; preds = %328
  %336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %337 = call i32 @fileno(ptr noundef %336) #10
  %338 = call i32 @isatty(i32 noundef %337) #10
  %339 = icmp ne i32 %338, 0
  br i1 %339, label %340, label %357

340:                                              ; preds = %335
  %341 = load i32, ptr %8, align 4, !tbaa !5
  %342 = call ptr @__errno_location() #11
  store i32 %341, ptr %342, 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 @.str.4)
  %348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %349 = load i32, ptr %348, align 4, !tbaa !5
  %350 = call ptr @s2n_strerror_debug(i32 noundef %349, ptr noundef @.str.4)
  %351 = call ptr @__errno_location() #11
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call ptr @strerror(i32 noundef %352) #10
  %354 = call ptr @__errno_location() #11
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %343, ptr noundef @.str.2, i32 noundef %344, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 25, ptr noundef %347, ptr noundef %350, ptr noundef %353, i32 noundef %355) #10
  br label %374

357:                                              ; preds = %335, %328
  %358 = load i32, ptr %8, align 4, !tbaa !5
  %359 = call ptr @__errno_location() #11
  store i32 %358, ptr %359, align 4, !tbaa !5
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %363, ptr noundef @.str.4)
  %365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call ptr @s2n_strerror_debug(i32 noundef %366, ptr noundef @.str.4)
  %368 = call ptr @__errno_location() #11
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call ptr @strerror(i32 noundef %369) #10
  %371 = call ptr @__errno_location() #11
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %360, ptr noundef @.str.5, i32 noundef %361, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 25, ptr noundef %364, ptr noundef %367, ptr noundef %370, i32 noundef %372) #10
  br label %374

374:                                              ; preds = %357, %340
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %375

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

376:                                              ; No predecessors!
  br label %377

377:                                              ; preds = %376, %323
  br label %378

378:                                              ; preds = %377
  br label %379

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  %381 = load i32, ptr @test_count, align 4, !tbaa !5
  %382 = add nsw i32 %381, 1
  store i32 %382, ptr @test_count, align 4, !tbaa !5
  %383 = call i32 (...) @s2n_disable_tls13_in_test()
  %384 = icmp eq i32 %383, -1
  br i1 %384, label %385, label %436

385:                                              ; preds = %380
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #10
  %388 = call ptr @__errno_location() #11
  %389 = load i32, ptr %388, align 4, !tbaa !5
  store i32 %389, ptr %9, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = call i32 @s2n_print_stacktrace(ptr noundef %390)
  %392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %393 = trunc i8 %392 to i1
  br i1 %393, label %394, label %416

394:                                              ; preds = %387
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @fileno(ptr noundef %395) #10
  %397 = call i32 @isatty(i32 noundef %396) #10
  %398 = icmp ne i32 %397, 0
  br i1 %398, label %399, label %416

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

416:                                              ; preds = %394, %387
  %417 = load i32, ptr %9, align 4, !tbaa !5
  %418 = call ptr @__errno_location() #11
  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() #11
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call ptr @strerror(i32 noundef %428) #10
  %430 = call ptr @__errno_location() #11
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %419, ptr noundef @.str.5, i32 noundef %420, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 26, ptr noundef %423, ptr noundef %426, ptr noundef %429, i32 noundef %431) #10
  br label %433

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

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

435:                                              ; No predecessors!
  br label %436

436:                                              ; preds = %435, %380
  br label %437

437:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 2, ptr %10) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %10, ptr align 1 @__const.main.renegotiation_info_scsv_iana, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 19, ptr %11) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %11, ptr align 16 @__const.main.client_verify_data, i64 19, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  store ptr null, ptr %12, align 8, !tbaa !9
  br label %438

438:                                              ; preds = %437
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %12, ptr noundef @.str.9, ptr noundef @.str.10)
  %442 = icmp eq i32 %441, -1
  br i1 %442, label %443, label %496

443:                                              ; preds = %438
  br label %444

444:                                              ; preds = %443
  br label %445

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

452:                                              ; preds = %445
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @fileno(ptr noundef %453) #10
  %455 = call i32 @isatty(i32 noundef %454) #10
  %456 = icmp ne i32 %455, 0
  br i1 %456, label %457, label %474

457:                                              ; preds = %452
  %458 = load i32, ptr %13, align 4, !tbaa !5
  %459 = call ptr @__errno_location() #11
  store i32 %458, ptr %459, 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 @.str.4)
  %465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef @.str.4)
  %468 = call ptr @__errno_location() #11
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #10
  %471 = call ptr @__errno_location() #11
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef @.str.2, i32 noundef %461, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 33, ptr noundef %464, ptr noundef %467, ptr noundef %470, i32 noundef %472) #10
  br label %491

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

491:                                              ; preds = %474, %457
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %492

492:                                              ; preds = %491
  br label %493

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

494:                                              ; No predecessors!
  br label %495

495:                                              ; preds = %494
  br label %496

496:                                              ; preds = %495, %438
  br label %497

497:                                              ; preds = %496
  br label %498

498:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  %499 = call ptr @s2n_config_new()
  store ptr %499, ptr %14, align 8, !tbaa !9
  br label %500

500:                                              ; preds = %498
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr @test_count, align 4, !tbaa !5
  %503 = load ptr, ptr %14, align 8, !tbaa !9
  %504 = icmp eq ptr %503, null
  br i1 %504, label %505, label %558

505:                                              ; preds = %500
  br label %506

506:                                              ; preds = %505
  br label %507

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

514:                                              ; preds = %507
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = call i32 @fileno(ptr noundef %515) #10
  %517 = call i32 @isatty(i32 noundef %516) #10
  %518 = icmp ne i32 %517, 0
  br i1 %518, label %519, label %536

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

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

553:                                              ; preds = %536, %519
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %554

554:                                              ; preds = %553
  br label %555

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

556:                                              ; No predecessors!
  br label %557

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557, %500
  br label %559

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559
  br label %561

561:                                              ; preds = %560
  %562 = load i32, ptr @test_count, align 4, !tbaa !5
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr @test_count, align 4, !tbaa !5
  %564 = load ptr, ptr %14, align 8, !tbaa !9
  %565 = load ptr, ptr %12, align 8, !tbaa !9
  %566 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %564, ptr noundef %565)
  %567 = icmp eq i32 %566, -1
  br i1 %567, label %568, label %621

568:                                              ; preds = %561
  br label %569

569:                                              ; preds = %568
  br label %570

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

577:                                              ; preds = %570
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = call i32 @fileno(ptr noundef %578) #10
  %580 = call i32 @isatty(i32 noundef %579) #10
  %581 = icmp ne i32 %580, 0
  br i1 %581, label %582, label %599

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

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

616:                                              ; preds = %599, %582
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %617

617:                                              ; preds = %616
  br label %618

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

619:                                              ; No predecessors!
  br label %620

620:                                              ; preds = %619
  br label %621

621:                                              ; preds = %620, %561
  br label %622

622:                                              ; preds = %621
  br label %623

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

624:                                              ; preds = %623
  %625 = load i32, ptr @test_count, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr @test_count, align 4, !tbaa !5
  %627 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %627, ptr %17, align 8, !tbaa !9
  %628 = icmp eq ptr %627, null
  br i1 %628, label %629, label %682

629:                                              ; preds = %624
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %632 = call ptr @__errno_location() #11
  %633 = load i32, ptr %632, align 4, !tbaa !5
  store i32 %633, ptr %18, align 4, !tbaa !5
  %634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %635 = call i32 @s2n_print_stacktrace(ptr noundef %634)
  %636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %637 = trunc i8 %636 to i1
  br i1 %637, label %638, label %660

638:                                              ; preds = %631
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = call i32 @fileno(ptr noundef %639) #10
  %641 = call i32 @isatty(i32 noundef %640) #10
  %642 = icmp ne i32 %641, 0
  br i1 %642, label %643, label %660

643:                                              ; preds = %638
  %644 = load i32, ptr %18, align 4, !tbaa !5
  %645 = call ptr @__errno_location() #11
  store i32 %644, ptr %645, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror(i32 noundef %649, ptr noundef @.str.4)
  %651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror_debug(i32 noundef %652, ptr noundef @.str.4)
  %654 = call ptr @__errno_location() #11
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @strerror(i32 noundef %655) #10
  %657 = call ptr @__errno_location() #11
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %646, ptr noundef @.str.2, i32 noundef %647, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 42, ptr noundef %650, ptr noundef %653, ptr noundef %656, i32 noundef %658) #10
  br label %677

660:                                              ; preds = %638, %631
  %661 = load i32, ptr %18, align 4, !tbaa !5
  %662 = call ptr @__errno_location() #11
  store i32 %661, ptr %662, align 4, !tbaa !5
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = load i32, ptr @test_count, align 4, !tbaa !5
  %665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call ptr @s2n_strerror(i32 noundef %666, ptr noundef @.str.4)
  %668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror_debug(i32 noundef %669, ptr noundef @.str.4)
  %671 = call ptr @__errno_location() #11
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call ptr @strerror(i32 noundef %672) #10
  %674 = call ptr @__errno_location() #11
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %663, ptr noundef @.str.5, i32 noundef %664, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 42, ptr noundef %667, ptr noundef %670, ptr noundef %673, i32 noundef %675) #10
  br label %677

677:                                              ; preds = %660, %643
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %678

678:                                              ; preds = %677
  br label %679

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

680:                                              ; No predecessors!
  br label %681

681:                                              ; preds = %680
  br label %682

682:                                              ; preds = %681, %624
  br label %683

683:                                              ; preds = %682
  br label %684

684:                                              ; preds = %683
  call void @llvm.lifetime.start.p0(i64 40, ptr %19) #10
  call void @llvm.memset.p0.i64(ptr align 8 %19, i8 0, i64 40, i1 false)
  br label %685

685:                                              ; preds = %684
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = add nsw i32 %686, 1
  store i32 %687, ptr @test_count, align 4, !tbaa !5
  %688 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %19, i32 noundef 0)
  %689 = icmp eq i32 %688, -1
  br i1 %689, label %690, label %743

690:                                              ; preds = %685
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %693 = call ptr @__errno_location() #11
  %694 = load i32, ptr %693, align 4, !tbaa !5
  store i32 %694, ptr %20, align 4, !tbaa !5
  %695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %696 = call i32 @s2n_print_stacktrace(ptr noundef %695)
  %697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %698 = trunc i8 %697 to i1
  br i1 %698, label %699, label %721

699:                                              ; preds = %692
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = call i32 @fileno(ptr noundef %700) #10
  %702 = call i32 @isatty(i32 noundef %701) #10
  %703 = icmp ne i32 %702, 0
  br i1 %703, label %704, label %721

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

721:                                              ; preds = %699, %692
  %722 = load i32, ptr %20, align 4, !tbaa !5
  %723 = call ptr @__errno_location() #11
  store i32 %722, ptr %723, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = load i32, ptr @test_count, align 4, !tbaa !5
  %726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror(i32 noundef %727, ptr noundef @.str.4)
  %729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @s2n_strerror_debug(i32 noundef %730, ptr noundef @.str.4)
  %732 = call ptr @__errno_location() #11
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @strerror(i32 noundef %733) #10
  %735 = call ptr @__errno_location() #11
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %724, ptr noundef @.str.5, i32 noundef %725, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 45, ptr noundef %728, ptr noundef %731, ptr noundef %734, i32 noundef %736) #10
  br label %738

738:                                              ; preds = %721, %704
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %739

739:                                              ; preds = %738
  br label %740

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

741:                                              ; No predecessors!
  br label %742

742:                                              ; preds = %741
  br label %743

743:                                              ; preds = %742, %685
  br label %744

744:                                              ; preds = %743
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745
  %747 = load i32, ptr @test_count, align 4, !tbaa !5
  %748 = add nsw i32 %747, 1
  store i32 %748, ptr @test_count, align 4, !tbaa !5
  %749 = call i32 @s2n_stuffer_write_uint16(ptr noundef %19, i16 noundef zeroext 0)
  %750 = icmp eq i32 %749, -1
  br i1 %750, label %751, label %804

751:                                              ; preds = %746
  br label %752

752:                                              ; preds = %751
  br label %753

753:                                              ; preds = %752
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %754 = call ptr @__errno_location() #11
  %755 = load i32, ptr %754, align 4, !tbaa !5
  store i32 %755, ptr %21, align 4, !tbaa !5
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = call i32 @s2n_print_stacktrace(ptr noundef %756)
  %758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %759 = trunc i8 %758 to i1
  br i1 %759, label %760, label %782

760:                                              ; preds = %753
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = call i32 @fileno(ptr noundef %761) #10
  %763 = call i32 @isatty(i32 noundef %762) #10
  %764 = icmp ne i32 %763, 0
  br i1 %764, label %765, label %782

765:                                              ; preds = %760
  %766 = load i32, ptr %21, align 4, !tbaa !5
  %767 = call ptr @__errno_location() #11
  store i32 %766, ptr %767, align 4, !tbaa !5
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror(i32 noundef %771, ptr noundef @.str.4)
  %773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror_debug(i32 noundef %774, ptr noundef @.str.4)
  %776 = call ptr @__errno_location() #11
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @strerror(i32 noundef %777) #10
  %779 = call ptr @__errno_location() #11
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef @.str.2, i32 noundef %769, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 47, ptr noundef %772, ptr noundef %775, ptr noundef %778, i32 noundef %780) #10
  br label %799

782:                                              ; preds = %760, %753
  %783 = load i32, ptr %21, align 4, !tbaa !5
  %784 = call ptr @__errno_location() #11
  store i32 %783, ptr %784, align 4, !tbaa !5
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = load i32, ptr @test_count, align 4, !tbaa !5
  %787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %788 = load i32, ptr %787, align 4, !tbaa !5
  %789 = call ptr @s2n_strerror(i32 noundef %788, ptr noundef @.str.4)
  %790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror_debug(i32 noundef %791, ptr noundef @.str.4)
  %793 = call ptr @__errno_location() #11
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @strerror(i32 noundef %794) #10
  %796 = call ptr @__errno_location() #11
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %785, ptr noundef @.str.5, i32 noundef %786, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 47, ptr noundef %789, ptr noundef %792, ptr noundef %795, i32 noundef %797) #10
  br label %799

799:                                              ; preds = %782, %765
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %800

800:                                              ; preds = %799
  br label %801

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

802:                                              ; No predecessors!
  br label %803

803:                                              ; preds = %802
  br label %804

804:                                              ; preds = %803, %746
  br label %805

805:                                              ; preds = %804
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806
  br label %808

808:                                              ; preds = %807
  br label %809

809:                                              ; preds = %808
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = add nsw i32 %810, 1
  store i32 %811, ptr @test_count, align 4, !tbaa !5
  %812 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !15
  %813 = load ptr, ptr %17, align 8, !tbaa !9
  %814 = call i32 %812(ptr noundef %813, ptr noundef %19)
  %815 = icmp eq i32 %814, -1
  br i1 %815, label %869, label %816

816:                                              ; preds = %809
  br label %817

817:                                              ; preds = %816
  br label %818

818:                                              ; preds = %817
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %819 = call ptr @__errno_location() #11
  %820 = load i32, ptr %819, align 4, !tbaa !5
  store i32 %820, ptr %22, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @s2n_print_stacktrace(ptr noundef %821)
  %823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %824 = trunc i8 %823 to i1
  br i1 %824, label %825, label %847

825:                                              ; preds = %818
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = call i32 @fileno(ptr noundef %826) #10
  %828 = call i32 @isatty(i32 noundef %827) #10
  %829 = icmp ne i32 %828, 0
  br i1 %829, label %830, label %847

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

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

864:                                              ; preds = %847, %830
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %865

865:                                              ; preds = %864
  br label %866

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

867:                                              ; No predecessors!
  br label %868

868:                                              ; preds = %867
  br label %869

869:                                              ; preds = %868, %809
  br label %870

870:                                              ; preds = %869
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr @test_count, align 4, !tbaa !5
  %875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = icmp eq i32 %876, 335544364
  br i1 %877, label %931, label %878

878:                                              ; preds = %872
  br label %879

879:                                              ; preds = %878
  br label %880

880:                                              ; preds = %879
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %881 = call ptr @__errno_location() #11
  %882 = load i32, ptr %881, align 4, !tbaa !5
  store i32 %882, ptr %23, align 4, !tbaa !5
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = call i32 @s2n_print_stacktrace(ptr noundef %883)
  %885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %886 = trunc i8 %885 to i1
  br i1 %886, label %887, label %909

887:                                              ; preds = %880
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = call i32 @fileno(ptr noundef %888) #10
  %890 = call i32 @isatty(i32 noundef %889) #10
  %891 = icmp ne i32 %890, 0
  br i1 %891, label %892, label %909

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

909:                                              ; preds = %887, %880
  %910 = load i32, ptr %23, align 4, !tbaa !5
  %911 = call ptr @__errno_location() #11
  store i32 %910, ptr %911, align 4, !tbaa !5
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror(i32 noundef %915, ptr noundef @.str.4)
  %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_debug(i32 noundef %918, ptr noundef @.str.4)
  %920 = call ptr @__errno_location() #11
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @strerror(i32 noundef %921) #10
  %923 = call ptr @__errno_location() #11
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %912, ptr noundef @.str.5, i32 noundef %913, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 50, ptr noundef %916, ptr noundef %919, ptr noundef %922, i32 noundef %924) #10
  br label %926

926:                                              ; preds = %909, %892
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %927

927:                                              ; preds = %926
  br label %928

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

929:                                              ; No predecessors!
  br label %930

930:                                              ; preds = %929
  br label %931

931:                                              ; preds = %930, %872
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932
  br label %934

934:                                              ; preds = %933
  %935 = load i32, ptr @test_count, align 4, !tbaa !5
  %936 = add nsw i32 %935, 1
  store i32 %936, ptr @test_count, align 4, !tbaa !5
  %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 = icmp eq ptr %939, null
  br i1 %940, label %941, label %994

941:                                              ; preds = %934
  br label %942

942:                                              ; preds = %941
  br label %943

943:                                              ; preds = %942
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %944 = call ptr @__errno_location() #11
  %945 = load i32, ptr %944, align 4, !tbaa !5
  store i32 %945, ptr %24, align 4, !tbaa !5
  %946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %947 = call i32 @s2n_print_stacktrace(ptr noundef %946)
  %948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %949 = trunc i8 %948 to i1
  br i1 %949, label %950, label %972

950:                                              ; preds = %943
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = call i32 @fileno(ptr noundef %951) #10
  %953 = call i32 @isatty(i32 noundef %952) #10
  %954 = icmp ne i32 %953, 0
  br i1 %954, label %955, label %972

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

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

989:                                              ; preds = %972, %955
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %990

990:                                              ; preds = %989
  br label %991

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

992:                                              ; No predecessors!
  br label %993

993:                                              ; preds = %992
  br label %994

994:                                              ; preds = %993, %934
  br label %995

995:                                              ; preds = %994
  br label %996

996:                                              ; preds = %995
  br label %997

997:                                              ; preds = %996
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  %1000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1000, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1001 = call ptr @__errno_location() #11
  store i32 0, ptr %1001, align 4, !tbaa !5
  br label %1002

1002:                                             ; preds = %999
  br label %1003

1003:                                             ; preds = %1002
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

1005:                                             ; preds = %1004
  br label %1006

1006:                                             ; preds = %1005
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = add nsw i32 %1007, 1
  store i32 %1008, ptr @test_count, align 4, !tbaa !5
  %1009 = load ptr, ptr %17, align 8, !tbaa !9
  %1010 = load i32, ptr %1009, align 8
  %1011 = lshr i32 %1010, 3
  %1012 = and i32 %1011, 1
  %1013 = icmp ne i32 %1012, 0
  br i1 %1013, label %1014, label %1067

1014:                                             ; preds = %1006
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

1016:                                             ; preds = %1015
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %1017 = call ptr @__errno_location() #11
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  store i32 %1018, ptr %25, align 4, !tbaa !5
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = call i32 @s2n_print_stacktrace(ptr noundef %1019)
  %1021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1022 = trunc i8 %1021 to i1
  br i1 %1022, label %1023, label %1045

1023:                                             ; preds = %1016
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = call i32 @fileno(ptr noundef %1024) #10
  %1026 = call i32 @isatty(i32 noundef %1025) #10
  %1027 = icmp ne i32 %1026, 0
  br i1 %1027, label %1028, label %1045

1028:                                             ; preds = %1023
  %1029 = load i32, ptr %25, align 4, !tbaa !5
  %1030 = call ptr @__errno_location() #11
  store i32 %1029, ptr %1030, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror(i32 noundef %1034, ptr noundef @.str.4)
  %1036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = call ptr @s2n_strerror_debug(i32 noundef %1037, ptr noundef @.str.4)
  %1039 = call ptr @__errno_location() #11
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = call ptr @strerror(i32 noundef %1040) #10
  %1042 = call ptr @__errno_location() #11
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef @.str.2, i32 noundef %1032, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 51, ptr noundef %1035, ptr noundef %1038, ptr noundef %1041, i32 noundef %1043) #10
  br label %1062

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

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

1063:                                             ; preds = %1062
  br label %1064

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

1065:                                             ; No predecessors!
  br label %1066

1066:                                             ; preds = %1065
  br label %1067

1067:                                             ; preds = %1066, %1006
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  br label %1070

1070:                                             ; preds = %1069
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = add nsw i32 %1071, 1
  store i32 %1072, ptr @test_count, align 4, !tbaa !5
  %1073 = call i32 @s2n_stuffer_free(ptr noundef %19)
  %1074 = icmp eq i32 %1073, -1
  br i1 %1074, label %1075, label %1128

1075:                                             ; preds = %1070
  br label %1076

1076:                                             ; preds = %1075
  br label %1077

1077:                                             ; preds = %1076
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %1078 = call ptr @__errno_location() #11
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  store i32 %1079, ptr %26, align 4, !tbaa !5
  %1080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1081 = call i32 @s2n_print_stacktrace(ptr noundef %1080)
  %1082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1083 = trunc i8 %1082 to i1
  br i1 %1083, label %1084, label %1106

1084:                                             ; preds = %1077
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = call i32 @fileno(ptr noundef %1085) #10
  %1087 = call i32 @isatty(i32 noundef %1086) #10
  %1088 = icmp ne i32 %1087, 0
  br i1 %1088, label %1089, label %1106

1089:                                             ; preds = %1084
  %1090 = load i32, ptr %26, align 4, !tbaa !5
  %1091 = call ptr @__errno_location() #11
  store i32 %1090, ptr %1091, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = load i32, ptr @test_count, align 4, !tbaa !5
  %1094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror(i32 noundef %1095, ptr noundef @.str.4)
  %1097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  %1099 = call ptr @s2n_strerror_debug(i32 noundef %1098, ptr noundef @.str.4)
  %1100 = call ptr @__errno_location() #11
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  %1102 = call ptr @strerror(i32 noundef %1101) #10
  %1103 = call ptr @__errno_location() #11
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1092, ptr noundef @.str.2, i32 noundef %1093, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 53, ptr noundef %1096, ptr noundef %1099, ptr noundef %1102, i32 noundef %1104) #10
  br label %1123

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

1123:                                             ; preds = %1106, %1089
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %1124

1124:                                             ; preds = %1123
  br label %1125

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

1126:                                             ; No predecessors!
  br label %1127

1127:                                             ; preds = %1126
  br label %1128

1128:                                             ; preds = %1127, %1070
  br label %1129

1129:                                             ; preds = %1128
  br label %1130

1130:                                             ; preds = %1129
  br label %1131

1131:                                             ; preds = %1130
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %1133 = add nsw i32 %1132, 1
  store i32 %1133, ptr @test_count, align 4, !tbaa !5
  %1134 = load ptr, ptr %17, align 8, !tbaa !9
  %1135 = call i32 @s2n_connection_free(ptr noundef %1134)
  %1136 = icmp eq i32 %1135, -1
  br i1 %1136, label %1137, label %1190

1137:                                             ; preds = %1131
  br label %1138

1138:                                             ; preds = %1137
  br label %1139

1139:                                             ; preds = %1138
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %1140 = call ptr @__errno_location() #11
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  store i32 %1141, ptr %27, align 4, !tbaa !5
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1143 = call i32 @s2n_print_stacktrace(ptr noundef %1142)
  %1144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1145 = trunc i8 %1144 to i1
  br i1 %1145, label %1146, label %1168

1146:                                             ; preds = %1139
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = call i32 @fileno(ptr noundef %1147) #10
  %1149 = call i32 @isatty(i32 noundef %1148) #10
  %1150 = icmp ne i32 %1149, 0
  br i1 %1150, label %1151, label %1168

1151:                                             ; preds = %1146
  %1152 = load i32, ptr %27, align 4, !tbaa !5
  %1153 = call ptr @__errno_location() #11
  store i32 %1152, ptr %1153, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror(i32 noundef %1157, ptr noundef @.str.4)
  %1159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror_debug(i32 noundef %1160, ptr noundef @.str.4)
  %1162 = call ptr @__errno_location() #11
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @strerror(i32 noundef %1163) #10
  %1165 = call ptr @__errno_location() #11
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1154, ptr noundef @.str.2, i32 noundef %1155, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1158, ptr noundef %1161, ptr noundef %1164, i32 noundef %1166) #10
  br label %1185

1168:                                             ; preds = %1146, %1139
  %1169 = load i32, ptr %27, align 4, !tbaa !5
  %1170 = call ptr @__errno_location() #11
  store i32 %1169, ptr %1170, align 4, !tbaa !5
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1174, ptr noundef @.str.4)
  %1176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror_debug(i32 noundef %1177, ptr noundef @.str.4)
  %1179 = call ptr @__errno_location() #11
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call ptr @strerror(i32 noundef %1180) #10
  %1182 = call ptr @__errno_location() #11
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef @.str.5, i32 noundef %1172, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1175, ptr noundef %1178, ptr noundef %1181, i32 noundef %1183) #10
  br label %1185

1185:                                             ; preds = %1168, %1151
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

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

1188:                                             ; No predecessors!
  br label %1189

1189:                                             ; preds = %1188
  br label %1190

1190:                                             ; preds = %1189, %1131
  br label %1191

1191:                                             ; preds = %1190
  br label %1192

1192:                                             ; preds = %1191
  call void @llvm.lifetime.end.p0(i64 40, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  store ptr null, ptr %28, align 8, !tbaa !9
  br label %1193

1193:                                             ; preds = %1192
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = add nsw i32 %1194, 1
  store i32 %1195, ptr @test_count, align 4, !tbaa !5
  %1196 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1196, ptr %28, align 8, !tbaa !9
  %1197 = icmp eq ptr %1196, null
  br i1 %1197, label %1198, label %1251

1198:                                             ; preds = %1193
  br label %1199

1199:                                             ; preds = %1198
  br label %1200

1200:                                             ; preds = %1199
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %1201 = call ptr @__errno_location() #11
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  store i32 %1202, ptr %29, align 4, !tbaa !5
  %1203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1204 = call i32 @s2n_print_stacktrace(ptr noundef %1203)
  %1205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1206 = trunc i8 %1205 to i1
  br i1 %1206, label %1207, label %1229

1207:                                             ; preds = %1200
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @fileno(ptr noundef %1208) #10
  %1210 = call i32 @isatty(i32 noundef %1209) #10
  %1211 = icmp ne i32 %1210, 0
  br i1 %1211, label %1212, label %1229

1212:                                             ; preds = %1207
  %1213 = load i32, ptr %29, align 4, !tbaa !5
  %1214 = call ptr @__errno_location() #11
  store i32 %1213, ptr %1214, align 4, !tbaa !5
  %1215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1216 = load i32, ptr @test_count, align 4, !tbaa !5
  %1217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1218 = load i32, ptr %1217, align 4, !tbaa !5
  %1219 = call ptr @s2n_strerror(i32 noundef %1218, ptr noundef @.str.4)
  %1220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror_debug(i32 noundef %1221, ptr noundef @.str.4)
  %1223 = call ptr @__errno_location() #11
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  %1225 = call ptr @strerror(i32 noundef %1224) #10
  %1226 = call ptr @__errno_location() #11
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1215, ptr noundef @.str.2, i32 noundef %1216, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1219, ptr noundef %1222, ptr noundef %1225, i32 noundef %1227) #10
  br label %1246

1229:                                             ; preds = %1207, %1200
  %1230 = load i32, ptr %29, align 4, !tbaa !5
  %1231 = call ptr @__errno_location() #11
  store i32 %1230, ptr %1231, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef @.str.4)
  %1237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = call ptr @s2n_strerror_debug(i32 noundef %1238, ptr noundef @.str.4)
  %1240 = call ptr @__errno_location() #11
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @strerror(i32 noundef %1241) #10
  %1243 = call ptr @__errno_location() #11
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1232, ptr noundef @.str.5, i32 noundef %1233, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1236, ptr noundef %1239, ptr noundef %1242, i32 noundef %1244) #10
  br label %1246

1246:                                             ; preds = %1229, %1212
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1247

1247:                                             ; preds = %1246
  br label %1248

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

1249:                                             ; No predecessors!
  br label %1250

1250:                                             ; preds = %1249
  br label %1251

1251:                                             ; preds = %1250, %1193
  br label %1252

1252:                                             ; preds = %1251
  br label %1253

1253:                                             ; preds = %1252
  call void @llvm.lifetime.start.p0(i64 40, ptr %30) #10
  call void @llvm.memset.p0.i64(ptr align 8 %30, i8 0, i64 40, i1 false)
  br label %1254

1254:                                             ; preds = %1253
  %1255 = load i32, ptr @test_count, align 4, !tbaa !5
  %1256 = add nsw i32 %1255, 1
  store i32 %1256, ptr @test_count, align 4, !tbaa !5
  %1257 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %30, i32 noundef 0)
  %1258 = icmp eq i32 %1257, -1
  br i1 %1258, label %1259, label %1312

1259:                                             ; preds = %1254
  br label %1260

1260:                                             ; preds = %1259
  br label %1261

1261:                                             ; preds = %1260
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %1262 = call ptr @__errno_location() #11
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  store i32 %1263, ptr %31, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = call i32 @s2n_print_stacktrace(ptr noundef %1264)
  %1266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1267 = trunc i8 %1266 to i1
  br i1 %1267, label %1268, label %1290

1268:                                             ; preds = %1261
  %1269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1270 = call i32 @fileno(ptr noundef %1269) #10
  %1271 = call i32 @isatty(i32 noundef %1270) #10
  %1272 = icmp ne i32 %1271, 0
  br i1 %1272, label %1273, label %1290

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

1290:                                             ; preds = %1268, %1261
  %1291 = load i32, ptr %31, align 4, !tbaa !5
  %1292 = call ptr @__errno_location() #11
  store i32 %1291, ptr %1292, align 4, !tbaa !5
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %1295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror(i32 noundef %1296, ptr noundef @.str.4)
  %1298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror_debug(i32 noundef %1299, ptr noundef @.str.4)
  %1301 = call ptr @__errno_location() #11
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @strerror(i32 noundef %1302) #10
  %1304 = call ptr @__errno_location() #11
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1293, ptr noundef @.str.5, i32 noundef %1294, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1297, ptr noundef %1300, ptr noundef %1303, i32 noundef %1305) #10
  br label %1307

1307:                                             ; preds = %1290, %1273
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

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

1310:                                             ; No predecessors!
  br label %1311

1311:                                             ; preds = %1310
  br label %1312

1312:                                             ; preds = %1311, %1254
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314
  %1316 = load i32, ptr @test_count, align 4, !tbaa !5
  %1317 = add nsw i32 %1316, 1
  store i32 %1317, ptr @test_count, align 4, !tbaa !5
  %1318 = call i32 @s2n_stuffer_write_uint8(ptr noundef %30, i8 noundef zeroext 1)
  %1319 = icmp eq i32 %1318, -1
  br i1 %1319, label %1320, label %1373

1320:                                             ; preds = %1315
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1323 = call ptr @__errno_location() #11
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  store i32 %1324, ptr %32, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = call i32 @s2n_print_stacktrace(ptr noundef %1325)
  %1327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1328 = trunc i8 %1327 to i1
  br i1 %1328, label %1329, label %1351

1329:                                             ; preds = %1322
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @fileno(ptr noundef %1330) #10
  %1332 = call i32 @isatty(i32 noundef %1331) #10
  %1333 = icmp ne i32 %1332, 0
  br i1 %1333, label %1334, label %1351

1334:                                             ; preds = %1329
  %1335 = load i32, ptr %32, align 4, !tbaa !5
  %1336 = call ptr @__errno_location() #11
  store i32 %1335, ptr %1336, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror(i32 noundef %1340, ptr noundef @.str.4)
  %1342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror_debug(i32 noundef %1343, ptr noundef @.str.4)
  %1345 = call ptr @__errno_location() #11
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #10
  %1348 = call ptr @__errno_location() #11
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef @.str.2, i32 noundef %1338, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1341, ptr noundef %1344, ptr noundef %1347, i32 noundef %1349) #10
  br label %1368

1351:                                             ; preds = %1329, %1322
  %1352 = load i32, ptr %32, align 4, !tbaa !5
  %1353 = call ptr @__errno_location() #11
  store i32 %1352, ptr %1353, align 4, !tbaa !5
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror(i32 noundef %1357, ptr noundef @.str.4)
  %1359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror_debug(i32 noundef %1360, ptr noundef @.str.4)
  %1362 = call ptr @__errno_location() #11
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @strerror(i32 noundef %1363) #10
  %1365 = call ptr @__errno_location() #11
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1354, ptr noundef @.str.5, i32 noundef %1355, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1358, ptr noundef %1361, ptr noundef %1364, i32 noundef %1366) #10
  br label %1368

1368:                                             ; preds = %1351, %1334
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1369

1369:                                             ; preds = %1368
  br label %1370

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

1371:                                             ; No predecessors!
  br label %1372

1372:                                             ; preds = %1371
  br label %1373

1373:                                             ; preds = %1372, %1315
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

1378:                                             ; preds = %1377
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !15
  %1382 = load ptr, ptr %28, align 8, !tbaa !9
  %1383 = call i32 %1381(ptr noundef %1382, ptr noundef %30)
  %1384 = icmp eq i32 %1383, -1
  br i1 %1384, label %1438, label %1385

1385:                                             ; preds = %1378
  br label %1386

1386:                                             ; preds = %1385
  br label %1387

1387:                                             ; preds = %1386
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1388 = call ptr @__errno_location() #11
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  store i32 %1389, ptr %33, align 4, !tbaa !5
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = call i32 @s2n_print_stacktrace(ptr noundef %1390)
  %1392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1393 = trunc i8 %1392 to i1
  br i1 %1393, label %1394, label %1416

1394:                                             ; preds = %1387
  %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
  %1398 = icmp ne i32 %1397, 0
  br i1 %1398, label %1399, label %1416

1399:                                             ; preds = %1394
  %1400 = load i32, ptr %33, align 4, !tbaa !5
  %1401 = call ptr @__errno_location() #11
  store i32 %1400, ptr %1401, align 4, !tbaa !5
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = load i32, ptr @test_count, align 4, !tbaa !5
  %1404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror(i32 noundef %1405, ptr noundef @.str.4)
  %1407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror_debug(i32 noundef %1408, ptr noundef @.str.4)
  %1410 = call ptr @__errno_location() #11
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @strerror(i32 noundef %1411) #10
  %1413 = call ptr @__errno_location() #11
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1402, ptr noundef @.str.2, i32 noundef %1403, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1406, ptr noundef %1409, ptr noundef %1412, i32 noundef %1414) #10
  br label %1433

1416:                                             ; preds = %1394, %1387
  %1417 = load i32, ptr %33, align 4, !tbaa !5
  %1418 = call ptr @__errno_location() #11
  store i32 %1417, ptr %1418, align 4, !tbaa !5
  %1419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1420 = load i32, ptr @test_count, align 4, !tbaa !5
  %1421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1422 = load i32, ptr %1421, align 4, !tbaa !5
  %1423 = call ptr @s2n_strerror(i32 noundef %1422, ptr noundef @.str.4)
  %1424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror_debug(i32 noundef %1425, ptr noundef @.str.4)
  %1427 = call ptr @__errno_location() #11
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call ptr @strerror(i32 noundef %1428) #10
  %1430 = call ptr @__errno_location() #11
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  %1432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1419, ptr noundef @.str.5, i32 noundef %1420, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1423, ptr noundef %1426, ptr noundef %1429, i32 noundef %1431) #10
  br label %1433

1433:                                             ; preds = %1416, %1399
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1434

1434:                                             ; preds = %1433
  br label %1435

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

1436:                                             ; No predecessors!
  br label %1437

1437:                                             ; preds = %1436
  br label %1438

1438:                                             ; preds = %1437, %1378
  br label %1439

1439:                                             ; preds = %1438
  br label %1440

1440:                                             ; preds = %1439
  br label %1441

1441:                                             ; preds = %1440
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = add nsw i32 %1442, 1
  store i32 %1443, ptr @test_count, align 4, !tbaa !5
  %1444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1445 = load i32, ptr %1444, align 4, !tbaa !5
  %1446 = icmp eq i32 %1445, 335544364
  br i1 %1446, label %1500, label %1447

1447:                                             ; preds = %1441
  br label %1448

1448:                                             ; preds = %1447
  br label %1449

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

1456:                                             ; preds = %1449
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = call i32 @fileno(ptr noundef %1457) #10
  %1459 = call i32 @isatty(i32 noundef %1458) #10
  %1460 = icmp ne i32 %1459, 0
  br i1 %1460, label %1461, label %1478

1461:                                             ; preds = %1456
  %1462 = load i32, ptr %34, align 4, !tbaa !5
  %1463 = call ptr @__errno_location() #11
  store i32 %1462, ptr %1463, align 4, !tbaa !5
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1465 = load i32, ptr @test_count, align 4, !tbaa !5
  %1466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror(i32 noundef %1467, ptr noundef @.str.4)
  %1469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @s2n_strerror_debug(i32 noundef %1470, ptr noundef @.str.4)
  %1472 = call ptr @__errno_location() #11
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call ptr @strerror(i32 noundef %1473) #10
  %1475 = call ptr @__errno_location() #11
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1464, ptr noundef @.str.2, i32 noundef %1465, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1468, ptr noundef %1471, ptr noundef %1474, i32 noundef %1476) #10
  br label %1495

1478:                                             ; preds = %1456, %1449
  %1479 = load i32, ptr %34, align 4, !tbaa !5
  %1480 = call ptr @__errno_location() #11
  store i32 %1479, ptr %1480, align 4, !tbaa !5
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = load i32, ptr @test_count, align 4, !tbaa !5
  %1483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1484 = load i32, ptr %1483, align 4, !tbaa !5
  %1485 = call ptr @s2n_strerror(i32 noundef %1484, ptr noundef @.str.4)
  %1486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef @.str.4)
  %1489 = call ptr @__errno_location() #11
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @strerror(i32 noundef %1490) #10
  %1492 = call ptr @__errno_location() #11
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1481, ptr noundef @.str.5, i32 noundef %1482, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1485, ptr noundef %1488, ptr noundef %1491, i32 noundef %1493) #10
  br label %1495

1495:                                             ; preds = %1478, %1461
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1496

1496:                                             ; preds = %1495
  br label %1497

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

1498:                                             ; No predecessors!
  br label %1499

1499:                                             ; preds = %1498
  br label %1500

1500:                                             ; preds = %1499, %1441
  br label %1501

1501:                                             ; preds = %1500
  br label %1502

1502:                                             ; preds = %1501
  br label %1503

1503:                                             ; preds = %1502
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = add nsw i32 %1504, 1
  store i32 %1505, ptr @test_count, align 4, !tbaa !5
  %1506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror_debug(i32 noundef %1507, ptr noundef @.str.4)
  %1509 = icmp eq ptr %1508, null
  br i1 %1509, label %1510, label %1563

1510:                                             ; preds = %1503
  br label %1511

1511:                                             ; preds = %1510
  br label %1512

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

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

1524:                                             ; preds = %1519
  %1525 = load i32, ptr %35, align 4, !tbaa !5
  %1526 = call ptr @__errno_location() #11
  store i32 %1525, ptr %1526, align 4, !tbaa !5
  %1527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1528 = load i32, ptr @test_count, align 4, !tbaa !5
  %1529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = call ptr @s2n_strerror(i32 noundef %1530, ptr noundef @.str.4)
  %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 = call ptr @__errno_location() #11
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  %1537 = call ptr @strerror(i32 noundef %1536) #10
  %1538 = call ptr @__errno_location() #11
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1527, ptr noundef @.str.2, i32 noundef %1528, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1531, ptr noundef %1534, ptr noundef %1537, i32 noundef %1539) #10
  br label %1558

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

1558:                                             ; preds = %1541, %1524
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1559

1559:                                             ; preds = %1558
  br label %1560

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

1561:                                             ; No predecessors!
  br label %1562

1562:                                             ; preds = %1561
  br label %1563

1563:                                             ; preds = %1562, %1503
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

1568:                                             ; preds = %1567
  %1569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1569, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1570 = call ptr @__errno_location() #11
  store i32 0, ptr %1570, align 4, !tbaa !5
  br label %1571

1571:                                             ; preds = %1568
  br label %1572

1572:                                             ; preds = %1571
  br label %1573

1573:                                             ; preds = %1572
  br label %1574

1574:                                             ; preds = %1573
  br label %1575

1575:                                             ; preds = %1574
  %1576 = load i32, ptr @test_count, align 4, !tbaa !5
  %1577 = add nsw i32 %1576, 1
  store i32 %1577, ptr @test_count, align 4, !tbaa !5
  %1578 = load ptr, ptr %28, align 8, !tbaa !9
  %1579 = load i32, ptr %1578, align 8
  %1580 = lshr i32 %1579, 3
  %1581 = and i32 %1580, 1
  %1582 = icmp ne i32 %1581, 0
  br i1 %1582, label %1583, label %1636

1583:                                             ; preds = %1575
  br label %1584

1584:                                             ; preds = %1583
  br label %1585

1585:                                             ; preds = %1584
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  %1586 = call ptr @__errno_location() #11
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  store i32 %1587, ptr %36, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @s2n_print_stacktrace(ptr noundef %1588)
  %1590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1591 = trunc i8 %1590 to i1
  br i1 %1591, label %1592, label %1614

1592:                                             ; preds = %1585
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @fileno(ptr noundef %1593) #10
  %1595 = call i32 @isatty(i32 noundef %1594) #10
  %1596 = icmp ne i32 %1595, 0
  br i1 %1596, label %1597, label %1614

1597:                                             ; preds = %1592
  %1598 = load i32, ptr %36, align 4, !tbaa !5
  %1599 = call ptr @__errno_location() #11
  store i32 %1598, ptr %1599, align 4, !tbaa !5
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = load i32, ptr @test_count, align 4, !tbaa !5
  %1602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror(i32 noundef %1603, ptr noundef @.str.4)
  %1605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror_debug(i32 noundef %1606, ptr noundef @.str.4)
  %1608 = call ptr @__errno_location() #11
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #10
  %1611 = call ptr @__errno_location() #11
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1600, ptr noundef @.str.2, i32 noundef %1601, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1604, ptr noundef %1607, ptr noundef %1610, i32 noundef %1612) #10
  br label %1631

1614:                                             ; preds = %1592, %1585
  %1615 = load i32, ptr %36, align 4, !tbaa !5
  %1616 = call ptr @__errno_location() #11
  store i32 %1615, ptr %1616, align 4, !tbaa !5
  %1617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1618 = load i32, ptr @test_count, align 4, !tbaa !5
  %1619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror(i32 noundef %1620, ptr noundef @.str.4)
  %1622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror_debug(i32 noundef %1623, ptr noundef @.str.4)
  %1625 = call ptr @__errno_location() #11
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call ptr @strerror(i32 noundef %1626) #10
  %1628 = call ptr @__errno_location() #11
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1617, ptr noundef @.str.5, i32 noundef %1618, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1621, ptr noundef %1624, ptr noundef %1627, i32 noundef %1629) #10
  br label %1631

1631:                                             ; preds = %1614, %1597
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1632

1632:                                             ; preds = %1631
  br label %1633

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

1634:                                             ; No predecessors!
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635, %1575
  br label %1637

1637:                                             ; preds = %1636
  br label %1638

1638:                                             ; preds = %1637
  br label %1639

1639:                                             ; preds = %1638
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = add nsw i32 %1640, 1
  store i32 %1641, ptr @test_count, align 4, !tbaa !5
  %1642 = call i32 @s2n_stuffer_free(ptr noundef %30)
  %1643 = icmp eq i32 %1642, -1
  br i1 %1643, label %1644, label %1697

1644:                                             ; preds = %1639
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %1647 = call ptr @__errno_location() #11
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  store i32 %1648, ptr %37, align 4, !tbaa !5
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = call i32 @s2n_print_stacktrace(ptr noundef %1649)
  %1651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1652 = trunc i8 %1651 to i1
  br i1 %1652, label %1653, label %1675

1653:                                             ; preds = %1646
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @fileno(ptr noundef %1654) #10
  %1656 = call i32 @isatty(i32 noundef %1655) #10
  %1657 = icmp ne i32 %1656, 0
  br i1 %1657, label %1658, label %1675

1658:                                             ; preds = %1653
  %1659 = load i32, ptr %37, align 4, !tbaa !5
  %1660 = call ptr @__errno_location() #11
  store i32 %1659, ptr %1660, align 4, !tbaa !5
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror(i32 noundef %1664, ptr noundef @.str.4)
  %1666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @s2n_strerror_debug(i32 noundef %1667, ptr noundef @.str.4)
  %1669 = call ptr @__errno_location() #11
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @strerror(i32 noundef %1670) #10
  %1672 = call ptr @__errno_location() #11
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1661, ptr noundef @.str.2, i32 noundef %1662, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1665, ptr noundef %1668, ptr noundef %1671, i32 noundef %1673) #10
  br label %1692

1675:                                             ; preds = %1653, %1646
  %1676 = load i32, ptr %37, align 4, !tbaa !5
  %1677 = call ptr @__errno_location() #11
  store i32 %1676, ptr %1677, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror(i32 noundef %1681, ptr noundef @.str.4)
  %1683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = call ptr @s2n_strerror_debug(i32 noundef %1684, ptr noundef @.str.4)
  %1686 = call ptr @__errno_location() #11
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @strerror(i32 noundef %1687) #10
  %1689 = call ptr @__errno_location() #11
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1678, ptr noundef @.str.5, i32 noundef %1679, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1682, ptr noundef %1685, ptr noundef %1688, i32 noundef %1690) #10
  br label %1692

1692:                                             ; preds = %1675, %1658
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1693

1693:                                             ; preds = %1692
  br label %1694

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

1695:                                             ; No predecessors!
  br label %1696

1696:                                             ; preds = %1695
  br label %1697

1697:                                             ; preds = %1696, %1639
  br label %1698

1698:                                             ; preds = %1697
  br label %1699

1699:                                             ; preds = %1698
  br label %1700

1700:                                             ; preds = %1699
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = add nsw i32 %1701, 1
  store i32 %1702, ptr @test_count, align 4, !tbaa !5
  %1703 = load ptr, ptr %28, align 8, !tbaa !9
  %1704 = call i32 @s2n_connection_free(ptr noundef %1703)
  %1705 = icmp eq i32 %1704, -1
  br i1 %1705, label %1706, label %1759

1706:                                             ; preds = %1700
  br label %1707

1707:                                             ; preds = %1706
  br label %1708

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

1715:                                             ; preds = %1708
  %1716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1717 = call i32 @fileno(ptr noundef %1716) #10
  %1718 = call i32 @isatty(i32 noundef %1717) #10
  %1719 = icmp ne i32 %1718, 0
  br i1 %1719, label %1720, label %1737

1720:                                             ; preds = %1715
  %1721 = load i32, ptr %38, align 4, !tbaa !5
  %1722 = call ptr @__errno_location() #11
  store i32 %1721, ptr %1722, align 4, !tbaa !5
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = load i32, ptr @test_count, align 4, !tbaa !5
  %1725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror(i32 noundef %1726, ptr noundef @.str.4)
  %1728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror_debug(i32 noundef %1729, ptr noundef @.str.4)
  %1731 = call ptr @__errno_location() #11
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @strerror(i32 noundef %1732) #10
  %1734 = call ptr @__errno_location() #11
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1723, ptr noundef @.str.2, i32 noundef %1724, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1727, ptr noundef %1730, ptr noundef %1733, i32 noundef %1735) #10
  br label %1754

1737:                                             ; preds = %1715, %1708
  %1738 = load i32, ptr %38, align 4, !tbaa !5
  %1739 = call ptr @__errno_location() #11
  store i32 %1738, ptr %1739, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror(i32 noundef %1743, ptr noundef @.str.4)
  %1745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror_debug(i32 noundef %1746, ptr noundef @.str.4)
  %1748 = call ptr @__errno_location() #11
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call ptr @strerror(i32 noundef %1749) #10
  %1751 = call ptr @__errno_location() #11
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1740, ptr noundef @.str.5, i32 noundef %1741, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1744, ptr noundef %1747, ptr noundef %1750, i32 noundef %1752) #10
  br label %1754

1754:                                             ; preds = %1737, %1720
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1755

1755:                                             ; preds = %1754
  br label %1756

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

1757:                                             ; No predecessors!
  br label %1758

1758:                                             ; preds = %1757
  br label %1759

1759:                                             ; preds = %1758, %1700
  br label %1760

1760:                                             ; preds = %1759
  br label %1761

1761:                                             ; preds = %1760
  call void @llvm.lifetime.end.p0(i64 40, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %1762

1762:                                             ; preds = %1761
  %1763 = load i32, ptr @test_count, align 4, !tbaa !5
  %1764 = add nsw i32 %1763, 1
  store i32 %1764, ptr @test_count, align 4, !tbaa !5
  %1765 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1765, ptr %39, align 8, !tbaa !9
  %1766 = icmp eq ptr %1765, null
  br i1 %1766, label %1767, label %1820

1767:                                             ; preds = %1762
  br label %1768

1768:                                             ; preds = %1767
  br label %1769

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

1776:                                             ; preds = %1769
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @fileno(ptr noundef %1777) #10
  %1779 = call i32 @isatty(i32 noundef %1778) #10
  %1780 = icmp ne i32 %1779, 0
  br i1 %1780, label %1781, label %1798

1781:                                             ; preds = %1776
  %1782 = load i32, ptr %40, align 4, !tbaa !5
  %1783 = call ptr @__errno_location() #11
  store i32 %1782, ptr %1783, align 4, !tbaa !5
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = load i32, ptr @test_count, align 4, !tbaa !5
  %1786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror(i32 noundef %1787, ptr noundef @.str.4)
  %1789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror_debug(i32 noundef %1790, ptr noundef @.str.4)
  %1792 = call ptr @__errno_location() #11
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @strerror(i32 noundef %1793) #10
  %1795 = call ptr @__errno_location() #11
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1784, ptr noundef @.str.2, i32 noundef %1785, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1788, ptr noundef %1791, ptr noundef %1794, i32 noundef %1796) #10
  br label %1815

1798:                                             ; preds = %1776, %1769
  %1799 = load i32, ptr %40, align 4, !tbaa !5
  %1800 = call ptr @__errno_location() #11
  store i32 %1799, ptr %1800, align 4, !tbaa !5
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = load i32, ptr @test_count, align 4, !tbaa !5
  %1803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror(i32 noundef %1804, ptr noundef @.str.4)
  %1806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @s2n_strerror_debug(i32 noundef %1807, ptr noundef @.str.4)
  %1809 = call ptr @__errno_location() #11
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @strerror(i32 noundef %1810) #10
  %1812 = call ptr @__errno_location() #11
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1801, ptr noundef @.str.5, i32 noundef %1802, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1805, ptr noundef %1808, ptr noundef %1811, i32 noundef %1813) #10
  br label %1815

1815:                                             ; preds = %1798, %1781
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %1816

1816:                                             ; preds = %1815
  br label %1817

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

1818:                                             ; No predecessors!
  br label %1819

1819:                                             ; preds = %1818
  br label %1820

1820:                                             ; preds = %1819, %1762
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821
  call void @llvm.lifetime.start.p0(i64 40, ptr %41) #10
  call void @llvm.memset.p0.i64(ptr align 8 %41, i8 0, i64 40, i1 false)
  br label %1823

1823:                                             ; preds = %1822
  %1824 = load i32, ptr @test_count, align 4, !tbaa !5
  %1825 = add nsw i32 %1824, 1
  store i32 %1825, ptr @test_count, align 4, !tbaa !5
  %1826 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %41, i32 noundef 0)
  %1827 = icmp eq i32 %1826, -1
  br i1 %1827, label %1828, label %1881

1828:                                             ; preds = %1823
  br label %1829

1829:                                             ; preds = %1828
  br label %1830

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

1837:                                             ; preds = %1830
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @fileno(ptr noundef %1838) #10
  %1840 = call i32 @isatty(i32 noundef %1839) #10
  %1841 = icmp ne i32 %1840, 0
  br i1 %1841, label %1842, label %1859

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

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

1876:                                             ; preds = %1859, %1842
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1877

1877:                                             ; preds = %1876
  br label %1878

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

1879:                                             ; No predecessors!
  br label %1880

1880:                                             ; preds = %1879
  br label %1881

1881:                                             ; preds = %1880, %1823
  br label %1882

1882:                                             ; preds = %1881
  br label %1883

1883:                                             ; preds = %1882
  br label %1884

1884:                                             ; preds = %1883
  %1885 = load i32, ptr @test_count, align 4, !tbaa !5
  %1886 = add nsw i32 %1885, 1
  store i32 %1886, ptr @test_count, align 4, !tbaa !5
  %1887 = call i32 @s2n_stuffer_write_uint8(ptr noundef %41, i8 noundef zeroext 0)
  %1888 = icmp eq i32 %1887, -1
  br i1 %1888, label %1889, label %1942

1889:                                             ; preds = %1884
  br label %1890

1890:                                             ; preds = %1889
  br label %1891

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

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

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

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

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

1938:                                             ; preds = %1937
  br label %1939

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

1940:                                             ; No predecessors!
  br label %1941

1941:                                             ; preds = %1940
  br label %1942

1942:                                             ; preds = %1941, %1884
  br label %1943

1943:                                             ; preds = %1942
  br label %1944

1944:                                             ; preds = %1943
  br label %1945

1945:                                             ; preds = %1944
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = add nsw i32 %1946, 1
  store i32 %1947, ptr @test_count, align 4, !tbaa !5
  %1948 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !15
  %1949 = load ptr, ptr %39, align 8, !tbaa !9
  %1950 = call i32 %1948(ptr noundef %1949, ptr noundef %41)
  %1951 = icmp eq i32 %1950, -1
  br i1 %1951, label %1952, label %2005

1952:                                             ; preds = %1945
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

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

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

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

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

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

2001:                                             ; preds = %2000
  br label %2002

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

2003:                                             ; No predecessors!
  br label %2004

2004:                                             ; preds = %2003
  br label %2005

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

2006:                                             ; preds = %2005
  br label %2007

2007:                                             ; preds = %2006
  br label %2008

2008:                                             ; preds = %2007
  %2009 = load i32, ptr @test_count, align 4, !tbaa !5
  %2010 = add nsw i32 %2009, 1
  store i32 %2010, ptr @test_count, align 4, !tbaa !5
  %2011 = load ptr, ptr %39, align 8, !tbaa !9
  %2012 = load i32, ptr %2011, align 8
  %2013 = lshr i32 %2012, 3
  %2014 = and i32 %2013, 1
  %2015 = icmp ne i32 %2014, 0
  br i1 %2015, label %2069, label %2016

2016:                                             ; preds = %2008
  br label %2017

2017:                                             ; preds = %2016
  br label %2018

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

2025:                                             ; preds = %2018
  %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
  %2029 = icmp ne i32 %2028, 0
  br i1 %2029, label %2030, label %2047

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

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

2064:                                             ; preds = %2047, %2030
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %2065

2065:                                             ; preds = %2064
  br label %2066

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

2067:                                             ; No predecessors!
  br label %2068

2068:                                             ; preds = %2067
  br label %2069

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

2070:                                             ; preds = %2069
  br label %2071

2071:                                             ; preds = %2070
  br label %2072

2072:                                             ; preds = %2071
  %2073 = load i32, ptr @test_count, align 4, !tbaa !5
  %2074 = add nsw i32 %2073, 1
  store i32 %2074, ptr @test_count, align 4, !tbaa !5
  %2075 = call i32 @s2n_stuffer_free(ptr noundef %41)
  %2076 = icmp eq i32 %2075, -1
  br i1 %2076, label %2077, label %2130

2077:                                             ; preds = %2072
  br label %2078

2078:                                             ; preds = %2077
  br label %2079

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

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

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

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

2125:                                             ; preds = %2108, %2091
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %2126

2126:                                             ; preds = %2125
  br label %2127

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

2128:                                             ; No predecessors!
  br label %2129

2129:                                             ; preds = %2128
  br label %2130

2130:                                             ; preds = %2129, %2072
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131
  br label %2133

2133:                                             ; preds = %2132
  %2134 = load i32, ptr @test_count, align 4, !tbaa !5
  %2135 = add nsw i32 %2134, 1
  store i32 %2135, ptr @test_count, align 4, !tbaa !5
  %2136 = load ptr, ptr %39, align 8, !tbaa !9
  %2137 = call i32 @s2n_connection_free(ptr noundef %2136)
  %2138 = icmp eq i32 %2137, -1
  br i1 %2138, label %2139, label %2192

2139:                                             ; preds = %2133
  br label %2140

2140:                                             ; preds = %2139
  br label %2141

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

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

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

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

2187:                                             ; preds = %2170, %2153
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %2188

2188:                                             ; preds = %2187
  br label %2189

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

2190:                                             ; No predecessors!
  br label %2191

2191:                                             ; preds = %2190
  br label %2192

2192:                                             ; preds = %2191, %2133
  br label %2193

2193:                                             ; preds = %2192
  br label %2194

2194:                                             ; preds = %2193
  call void @llvm.lifetime.end.p0(i64 40, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  %2195 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2195, ptr %48, align 8, !tbaa !9
  br label %2196

2196:                                             ; preds = %2194
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = add nsw i32 %2197, 1
  store i32 %2198, ptr @test_count, align 4, !tbaa !5
  %2199 = load ptr, ptr %48, align 8, !tbaa !9
  %2200 = icmp eq ptr %2199, null
  br i1 %2200, label %2201, label %2254

2201:                                             ; preds = %2196
  br label %2202

2202:                                             ; preds = %2201
  br label %2203

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

2210:                                             ; preds = %2203
  %2211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2212 = call i32 @fileno(ptr noundef %2211) #10
  %2213 = call i32 @isatty(i32 noundef %2212) #10
  %2214 = icmp ne i32 %2213, 0
  br i1 %2214, label %2215, label %2232

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

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

2249:                                             ; preds = %2232, %2215
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2250

2250:                                             ; preds = %2249
  br label %2251

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

2252:                                             ; No predecessors!
  br label %2253

2253:                                             ; preds = %2252
  br label %2254

2254:                                             ; preds = %2253, %2196
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

2256:                                             ; preds = %2255
  call void @llvm.lifetime.start.p0(i64 40, ptr %50) #10
  call void @llvm.memset.p0.i64(ptr align 8 %50, i8 0, i64 40, i1 false)
  br label %2257

2257:                                             ; preds = %2256
  %2258 = load i32, ptr @test_count, align 4, !tbaa !5
  %2259 = add nsw i32 %2258, 1
  store i32 %2259, ptr @test_count, align 4, !tbaa !5
  %2260 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %50, i32 noundef 0)
  %2261 = icmp eq i32 %2260, -1
  br i1 %2261, label %2262, label %2315

2262:                                             ; preds = %2257
  br label %2263

2263:                                             ; preds = %2262
  br label %2264

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

2271:                                             ; preds = %2264
  %2272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2273 = call i32 @fileno(ptr noundef %2272) #10
  %2274 = call i32 @isatty(i32 noundef %2273) #10
  %2275 = icmp ne i32 %2274, 0
  br i1 %2275, label %2276, label %2293

2276:                                             ; preds = %2271
  %2277 = load i32, ptr %51, align 4, !tbaa !5
  %2278 = call ptr @__errno_location() #11
  store i32 %2277, ptr %2278, align 4, !tbaa !5
  %2279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2280 = load i32, ptr @test_count, align 4, !tbaa !5
  %2281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call ptr @s2n_strerror(i32 noundef %2282, ptr noundef @.str.4)
  %2284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call ptr @s2n_strerror_debug(i32 noundef %2285, ptr noundef @.str.4)
  %2287 = call ptr @__errno_location() #11
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @strerror(i32 noundef %2288) #10
  %2290 = call ptr @__errno_location() #11
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2279, ptr noundef @.str.2, i32 noundef %2280, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2283, ptr noundef %2286, ptr noundef %2289, i32 noundef %2291) #10
  br label %2310

2293:                                             ; preds = %2271, %2264
  %2294 = load i32, ptr %51, align 4, !tbaa !5
  %2295 = call ptr @__errno_location() #11
  store i32 %2294, ptr %2295, align 4, !tbaa !5
  %2296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2297 = load i32, ptr @test_count, align 4, !tbaa !5
  %2298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror(i32 noundef %2299, ptr noundef @.str.4)
  %2301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call ptr @s2n_strerror_debug(i32 noundef %2302, ptr noundef @.str.4)
  %2304 = call ptr @__errno_location() #11
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call ptr @strerror(i32 noundef %2305) #10
  %2307 = call ptr @__errno_location() #11
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2296, ptr noundef @.str.5, i32 noundef %2297, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2300, ptr noundef %2303, ptr noundef %2306, i32 noundef %2308) #10
  br label %2310

2310:                                             ; preds = %2293, %2276
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

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

2313:                                             ; No predecessors!
  br label %2314

2314:                                             ; preds = %2313
  br label %2315

2315:                                             ; preds = %2314, %2257
  br label %2316

2316:                                             ; preds = %2315
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

2318:                                             ; preds = %2317
  %2319 = load i32, ptr @test_count, align 4, !tbaa !5
  %2320 = add nsw i32 %2319, 1
  store i32 %2320, ptr @test_count, align 4, !tbaa !5
  %2321 = call i32 @s2n_stuffer_write_uint8(ptr noundef %50, i8 noundef zeroext 0)
  %2322 = icmp eq i32 %2321, -1
  br i1 %2322, label %2323, label %2376

2323:                                             ; preds = %2318
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

2325:                                             ; preds = %2324
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2326 = call ptr @__errno_location() #11
  %2327 = load i32, ptr %2326, align 4, !tbaa !5
  store i32 %2327, ptr %52, 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) #10
  %2335 = call i32 @isatty(i32 noundef %2334) #10
  %2336 = icmp ne i32 %2335, 0
  br i1 %2336, label %2337, label %2354

2337:                                             ; preds = %2332
  %2338 = load i32, ptr %52, align 4, !tbaa !5
  %2339 = call ptr @__errno_location() #11
  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() #11
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @strerror(i32 noundef %2349) #10
  %2351 = call ptr @__errno_location() #11
  %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.29, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2344, ptr noundef %2347, ptr noundef %2350, i32 noundef %2352) #10
  br label %2371

2354:                                             ; preds = %2332, %2325
  %2355 = load i32, ptr %52, align 4, !tbaa !5
  %2356 = call ptr @__errno_location() #11
  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() #11
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @strerror(i32 noundef %2366) #10
  %2368 = call ptr @__errno_location() #11
  %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.29, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2361, ptr noundef %2364, ptr noundef %2367, i32 noundef %2369) #10
  br label %2371

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

2372:                                             ; preds = %2371
  br label %2373

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

2374:                                             ; No predecessors!
  br label %2375

2375:                                             ; preds = %2374
  br label %2376

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

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377
  %2379 = load ptr, ptr %48, align 8, !tbaa !9
  %2380 = getelementptr inbounds %struct.s2n_connection, ptr %2379, i32 0, i32 22
  store i8 30, ptr %2380, align 1, !tbaa !18
  %2381 = load ptr, ptr %48, align 8, !tbaa !9
  %2382 = getelementptr inbounds %struct.s2n_connection, ptr %2381, i32 0, i32 23
  store i8 30, ptr %2382, align 4, !tbaa !44
  br label %2383

2383:                                             ; preds = %2378
  %2384 = load i32, ptr @test_count, align 4, !tbaa !5
  %2385 = add nsw i32 %2384, 1
  store i32 %2385, ptr @test_count, align 4, !tbaa !5
  %2386 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !15
  %2387 = load ptr, ptr %48, align 8, !tbaa !9
  %2388 = call i32 %2386(ptr noundef %2387, ptr noundef %50)
  %2389 = icmp eq i32 %2388, -1
  br i1 %2389, label %2390, label %2443

2390:                                             ; preds = %2383
  br label %2391

2391:                                             ; preds = %2390
  br label %2392

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

2399:                                             ; preds = %2392
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = call i32 @fileno(ptr noundef %2400) #10
  %2402 = call i32 @isatty(i32 noundef %2401) #10
  %2403 = icmp ne i32 %2402, 0
  br i1 %2403, label %2404, label %2421

2404:                                             ; preds = %2399
  %2405 = load i32, ptr %53, align 4, !tbaa !5
  %2406 = call ptr @__errno_location() #11
  store i32 %2405, ptr %2406, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror(i32 noundef %2410, ptr noundef @.str.4)
  %2412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror_debug(i32 noundef %2413, ptr noundef @.str.4)
  %2415 = call ptr @__errno_location() #11
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @strerror(i32 noundef %2416) #10
  %2418 = call ptr @__errno_location() #11
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2407, ptr noundef @.str.2, i32 noundef %2408, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2411, ptr noundef %2414, ptr noundef %2417, i32 noundef %2419) #10
  br label %2438

2421:                                             ; preds = %2399, %2392
  %2422 = load i32, ptr %53, align 4, !tbaa !5
  %2423 = call ptr @__errno_location() #11
  store i32 %2422, ptr %2423, align 4, !tbaa !5
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = load i32, ptr @test_count, align 4, !tbaa !5
  %2426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror(i32 noundef %2427, ptr noundef @.str.4)
  %2429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror_debug(i32 noundef %2430, ptr noundef @.str.4)
  %2432 = call ptr @__errno_location() #11
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @strerror(i32 noundef %2433) #10
  %2435 = call ptr @__errno_location() #11
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2424, ptr noundef @.str.5, i32 noundef %2425, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2428, ptr noundef %2431, ptr noundef %2434, i32 noundef %2436) #10
  br label %2438

2438:                                             ; preds = %2421, %2404
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

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

2441:                                             ; No predecessors!
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

2443:                                             ; preds = %2442, %2383
  br label %2444

2444:                                             ; preds = %2443
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

2446:                                             ; preds = %2445
  %2447 = load i32, ptr @test_count, align 4, !tbaa !5
  %2448 = add nsw i32 %2447, 1
  store i32 %2448, ptr @test_count, align 4, !tbaa !5
  %2449 = load ptr, ptr %48, align 8, !tbaa !9
  %2450 = load i32, ptr %2449, align 8
  %2451 = lshr i32 %2450, 3
  %2452 = and i32 %2451, 1
  %2453 = icmp ne i32 %2452, 0
  br i1 %2453, label %2507, label %2454

2454:                                             ; preds = %2446
  br label %2455

2455:                                             ; preds = %2454
  br label %2456

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

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

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

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

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

2503:                                             ; preds = %2502
  br label %2504

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

2505:                                             ; No predecessors!
  br label %2506

2506:                                             ; preds = %2505
  br label %2507

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

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508
  %2510 = call i32 @s2n_stuffer_free(ptr noundef %50)
  call void @llvm.lifetime.end.p0(i64 40, ptr %50) #10
  %2511 = call i32 @s2n_connection_ptr_free(ptr noundef %48)
  %2512 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  store i32 %2511, ptr %2512, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #10
  %2513 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2513, ptr %56, align 8, !tbaa !9
  br label %2514

2514:                                             ; preds = %2509
  %2515 = load i32, ptr @test_count, align 4, !tbaa !5
  %2516 = add nsw i32 %2515, 1
  store i32 %2516, ptr @test_count, align 4, !tbaa !5
  %2517 = load ptr, ptr %56, align 8, !tbaa !9
  %2518 = icmp eq ptr %2517, null
  br i1 %2518, label %2519, label %2572

2519:                                             ; preds = %2514
  br label %2520

2520:                                             ; preds = %2519
  br label %2521

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

2528:                                             ; preds = %2521
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = call i32 @fileno(ptr noundef %2529) #10
  %2531 = call i32 @isatty(i32 noundef %2530) #10
  %2532 = icmp ne i32 %2531, 0
  br i1 %2532, label %2533, label %2550

2533:                                             ; preds = %2528
  %2534 = load i32, ptr %57, align 4, !tbaa !5
  %2535 = call ptr @__errno_location() #11
  store i32 %2534, ptr %2535, align 4, !tbaa !5
  %2536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2537 = load i32, ptr @test_count, align 4, !tbaa !5
  %2538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror(i32 noundef %2539, ptr noundef @.str.4)
  %2541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @s2n_strerror_debug(i32 noundef %2542, ptr noundef @.str.4)
  %2544 = call ptr @__errno_location() #11
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call ptr @strerror(i32 noundef %2545) #10
  %2547 = call ptr @__errno_location() #11
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2536, ptr noundef @.str.2, i32 noundef %2537, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2540, ptr noundef %2543, ptr noundef %2546, i32 noundef %2548) #10
  br label %2567

2550:                                             ; preds = %2528, %2521
  %2551 = load i32, ptr %57, align 4, !tbaa !5
  %2552 = call ptr @__errno_location() #11
  store i32 %2551, ptr %2552, align 4, !tbaa !5
  %2553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2554 = load i32, ptr @test_count, align 4, !tbaa !5
  %2555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call ptr @s2n_strerror(i32 noundef %2556, ptr noundef @.str.4)
  %2558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror_debug(i32 noundef %2559, ptr noundef @.str.4)
  %2561 = call ptr @__errno_location() #11
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  %2563 = call ptr @strerror(i32 noundef %2562) #10
  %2564 = call ptr @__errno_location() #11
  %2565 = load i32, ptr %2564, align 4, !tbaa !5
  %2566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2553, ptr noundef @.str.5, i32 noundef %2554, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2557, ptr noundef %2560, ptr noundef %2563, i32 noundef %2565) #10
  br label %2567

2567:                                             ; preds = %2550, %2533
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

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

2570:                                             ; No predecessors!
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

2572:                                             ; preds = %2571, %2514
  br label %2573

2573:                                             ; preds = %2572
  br label %2574

2574:                                             ; preds = %2573
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #10
  %2575 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2575, ptr %58, align 8, !tbaa !9
  br label %2576

2576:                                             ; preds = %2574
  %2577 = load i32, ptr @test_count, align 4, !tbaa !5
  %2578 = add nsw i32 %2577, 1
  store i32 %2578, ptr @test_count, align 4, !tbaa !5
  %2579 = load ptr, ptr %58, align 8, !tbaa !9
  %2580 = icmp eq ptr %2579, null
  br i1 %2580, label %2581, label %2634

2581:                                             ; preds = %2576
  br label %2582

2582:                                             ; preds = %2581
  br label %2583

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

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

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

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

2629:                                             ; preds = %2612, %2595
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2630

2630:                                             ; preds = %2629
  br label %2631

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

2632:                                             ; No predecessors!
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

2634:                                             ; preds = %2633, %2576
  br label %2635

2635:                                             ; preds = %2634
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

2637:                                             ; preds = %2636
  %2638 = load i32, ptr @test_count, align 4, !tbaa !5
  %2639 = add nsw i32 %2638, 1
  store i32 %2639, ptr @test_count, align 4, !tbaa !5
  %2640 = load ptr, ptr %56, align 8, !tbaa !9
  %2641 = call i32 @s2n_client_hello_send(ptr noundef %2640)
  %2642 = icmp eq i32 %2641, -1
  br i1 %2642, label %2643, label %2696

2643:                                             ; preds = %2637
  br label %2644

2644:                                             ; preds = %2643
  br label %2645

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

2652:                                             ; preds = %2645
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = call i32 @fileno(ptr noundef %2653) #10
  %2655 = call i32 @isatty(i32 noundef %2654) #10
  %2656 = icmp ne i32 %2655, 0
  br i1 %2656, label %2657, label %2674

2657:                                             ; preds = %2652
  %2658 = load i32, ptr %60, align 4, !tbaa !5
  %2659 = call ptr @__errno_location() #11
  store i32 %2658, ptr %2659, align 4, !tbaa !5
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = load i32, ptr @test_count, align 4, !tbaa !5
  %2662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @s2n_strerror(i32 noundef %2663, ptr noundef @.str.4)
  %2665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call ptr @s2n_strerror_debug(i32 noundef %2666, ptr noundef @.str.4)
  %2668 = call ptr @__errno_location() #11
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call ptr @strerror(i32 noundef %2669) #10
  %2671 = call ptr @__errno_location() #11
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  %2673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2660, ptr noundef @.str.2, i32 noundef %2661, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2664, ptr noundef %2667, ptr noundef %2670, i32 noundef %2672) #10
  br label %2691

2674:                                             ; preds = %2652, %2645
  %2675 = load i32, ptr %60, align 4, !tbaa !5
  %2676 = call ptr @__errno_location() #11
  store i32 %2675, ptr %2676, align 4, !tbaa !5
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = load i32, ptr @test_count, align 4, !tbaa !5
  %2679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror(i32 noundef %2680, ptr noundef @.str.4)
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror_debug(i32 noundef %2683, ptr noundef @.str.4)
  %2685 = call ptr @__errno_location() #11
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @strerror(i32 noundef %2686) #10
  %2688 = call ptr @__errno_location() #11
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2677, ptr noundef @.str.5, i32 noundef %2678, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2681, ptr noundef %2684, ptr noundef %2687, i32 noundef %2689) #10
  br label %2691

2691:                                             ; preds = %2674, %2657
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2692

2692:                                             ; preds = %2691
  br label %2693

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

2694:                                             ; No predecessors!
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

2696:                                             ; preds = %2695, %2637
  br label %2697

2697:                                             ; preds = %2696
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698
  %2700 = load i32, ptr @test_count, align 4, !tbaa !5
  %2701 = add nsw i32 %2700, 1
  store i32 %2701, ptr @test_count, align 4, !tbaa !5
  %2702 = load ptr, ptr %56, align 8, !tbaa !9
  %2703 = getelementptr inbounds %struct.s2n_connection, ptr %2702, i32 0, i32 52
  %2704 = getelementptr inbounds %struct.s2n_handshake, ptr %2703, i32 0, i32 0
  %2705 = load ptr, ptr %58, align 8, !tbaa !9
  %2706 = getelementptr inbounds %struct.s2n_connection, ptr %2705, i32 0, i32 52
  %2707 = getelementptr inbounds %struct.s2n_handshake, ptr %2706, i32 0, i32 0
  %2708 = load ptr, ptr %56, align 8, !tbaa !9
  %2709 = getelementptr inbounds %struct.s2n_connection, ptr %2708, i32 0, i32 52
  %2710 = getelementptr inbounds %struct.s2n_handshake, ptr %2709, i32 0, i32 0
  %2711 = getelementptr inbounds %struct.s2n_stuffer, ptr %2710, i32 0, i32 2
  %2712 = load i32, ptr %2711, align 4, !tbaa !45
  %2713 = load ptr, ptr %56, align 8, !tbaa !9
  %2714 = getelementptr inbounds %struct.s2n_connection, ptr %2713, i32 0, i32 52
  %2715 = getelementptr inbounds %struct.s2n_handshake, ptr %2714, i32 0, i32 0
  %2716 = getelementptr inbounds %struct.s2n_stuffer, ptr %2715, i32 0, i32 1
  %2717 = load i32, ptr %2716, align 8, !tbaa !46
  %2718 = sub i32 %2712, %2717
  %2719 = call i32 @s2n_stuffer_copy(ptr noundef %2704, ptr noundef %2707, i32 noundef %2718)
  %2720 = icmp eq i32 %2719, -1
  br i1 %2720, label %2721, label %2774

2721:                                             ; preds = %2699
  br label %2722

2722:                                             ; preds = %2721
  br label %2723

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

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

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

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

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

2770:                                             ; preds = %2769
  br label %2771

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

2772:                                             ; No predecessors!
  br label %2773

2773:                                             ; preds = %2772
  br label %2774

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

2775:                                             ; preds = %2774
  br label %2776

2776:                                             ; preds = %2775
  br label %2777

2777:                                             ; preds = %2776
  %2778 = load i32, ptr @test_count, align 4, !tbaa !5
  %2779 = add nsw i32 %2778, 1
  store i32 %2779, ptr @test_count, align 4, !tbaa !5
  %2780 = load ptr, ptr %58, align 8, !tbaa !9
  %2781 = call i32 @s2n_parse_client_hello(ptr noundef %2780)
  %2782 = icmp eq i32 %2781, -1
  br i1 %2782, label %2783, label %2836

2783:                                             ; preds = %2777
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

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

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

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

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

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

2832:                                             ; preds = %2831
  br label %2833

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

2834:                                             ; No predecessors!
  br label %2835

2835:                                             ; preds = %2834
  br label %2836

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

2837:                                             ; preds = %2836
  br label %2838

2838:                                             ; preds = %2837
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #10
  store i8 0, ptr %63, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  store i64 0, ptr %64, align 8, !tbaa !47
  br label %2839

2839:                                             ; preds = %2863, %2838
  %2840 = load i64, ptr %64, align 8, !tbaa !47
  %2841 = load ptr, ptr %58, align 8, !tbaa !9
  %2842 = getelementptr inbounds %struct.s2n_connection, ptr %2841, i32 0, i32 71
  %2843 = getelementptr inbounds %struct.s2n_client_hello, ptr %2842, i32 0, i32 2
  %2844 = getelementptr inbounds %struct.s2n_blob, ptr %2843, i32 0, i32 1
  %2845 = load i32, ptr %2844, align 8, !tbaa !48
  %2846 = zext i32 %2845 to i64
  %2847 = icmp ult i64 %2840, %2846
  br i1 %2847, label %2849, label %2848

2848:                                             ; preds = %2839
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  br label %2866

2849:                                             ; preds = %2839
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %2850 = load ptr, ptr %58, align 8, !tbaa !9
  %2851 = getelementptr inbounds %struct.s2n_connection, ptr %2850, i32 0, i32 71
  %2852 = getelementptr inbounds %struct.s2n_client_hello, ptr %2851, i32 0, i32 2
  %2853 = getelementptr inbounds %struct.s2n_blob, ptr %2852, i32 0, i32 0
  %2854 = load ptr, ptr %2853, align 8, !tbaa !49
  %2855 = load i64, ptr %64, align 8, !tbaa !47
  %2856 = getelementptr inbounds i8, ptr %2854, i64 %2855
  store ptr %2856, ptr %65, align 8, !tbaa !9
  %2857 = load ptr, ptr %65, align 8, !tbaa !9
  %2858 = getelementptr inbounds [2 x i8], ptr %10, i64 0, i64 0
  %2859 = call i32 @memcmp(ptr noundef %2857, ptr noundef %2858, i64 noundef 2) #13
  %2860 = icmp eq i32 %2859, 0
  br i1 %2860, label %2861, label %2862

2861:                                             ; preds = %2849
  store i8 1, ptr %63, align 1, !tbaa !11
  br label %2862

2862:                                             ; preds = %2861, %2849
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  br label %2863

2863:                                             ; preds = %2862
  %2864 = load i64, ptr %64, align 8, !tbaa !47
  %2865 = add i64 %2864, 2
  store i64 %2865, ptr %64, align 8, !tbaa !47
  br label %2839, !llvm.loop !50

2866:                                             ; preds = %2848
  br label %2867

2867:                                             ; preds = %2866
  %2868 = load i32, ptr @test_count, align 4, !tbaa !5
  %2869 = add nsw i32 %2868, 1
  store i32 %2869, ptr @test_count, align 4, !tbaa !5
  %2870 = load i8, ptr %63, align 1, !tbaa !11, !range !13, !noundef !14
  %2871 = trunc i8 %2870 to i1
  br i1 %2871, label %2925, label %2872

2872:                                             ; preds = %2867
  br label %2873

2873:                                             ; preds = %2872
  br label %2874

2874:                                             ; preds = %2873
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %2875 = call ptr @__errno_location() #11
  %2876 = load i32, ptr %2875, align 4, !tbaa !5
  store i32 %2876, ptr %66, align 4, !tbaa !5
  %2877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2878 = call i32 @s2n_print_stacktrace(ptr noundef %2877)
  %2879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2880 = trunc i8 %2879 to i1
  br i1 %2880, label %2881, label %2903

2881:                                             ; preds = %2874
  %2882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2883 = call i32 @fileno(ptr noundef %2882) #10
  %2884 = call i32 @isatty(i32 noundef %2883) #10
  %2885 = icmp ne i32 %2884, 0
  br i1 %2885, label %2886, label %2903

2886:                                             ; preds = %2881
  %2887 = load i32, ptr %66, align 4, !tbaa !5
  %2888 = call ptr @__errno_location() #11
  store i32 %2887, ptr %2888, align 4, !tbaa !5
  %2889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2890 = load i32, ptr @test_count, align 4, !tbaa !5
  %2891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror(i32 noundef %2892, ptr noundef @.str.4)
  %2894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call ptr @s2n_strerror_debug(i32 noundef %2895, ptr noundef @.str.4)
  %2897 = call ptr @__errno_location() #11
  %2898 = load i32, ptr %2897, align 4, !tbaa !5
  %2899 = call ptr @strerror(i32 noundef %2898) #10
  %2900 = call ptr @__errno_location() #11
  %2901 = load i32, ptr %2900, align 4, !tbaa !5
  %2902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2889, ptr noundef @.str.2, i32 noundef %2890, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2893, ptr noundef %2896, ptr noundef %2899, i32 noundef %2901) #10
  br label %2920

2903:                                             ; preds = %2881, %2874
  %2904 = load i32, ptr %66, align 4, !tbaa !5
  %2905 = call ptr @__errno_location() #11
  store i32 %2904, ptr %2905, align 4, !tbaa !5
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2907 = load i32, ptr @test_count, align 4, !tbaa !5
  %2908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  %2910 = call ptr @s2n_strerror(i32 noundef %2909, ptr noundef @.str.4)
  %2911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  %2913 = call ptr @s2n_strerror_debug(i32 noundef %2912, ptr noundef @.str.4)
  %2914 = call ptr @__errno_location() #11
  %2915 = load i32, ptr %2914, align 4, !tbaa !5
  %2916 = call ptr @strerror(i32 noundef %2915) #10
  %2917 = call ptr @__errno_location() #11
  %2918 = load i32, ptr %2917, align 4, !tbaa !5
  %2919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2906, ptr noundef @.str.5, i32 noundef %2907, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2910, ptr noundef %2913, ptr noundef %2916, i32 noundef %2918) #10
  br label %2920

2920:                                             ; preds = %2903, %2886
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %2921

2921:                                             ; preds = %2920
  br label %2922

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

2923:                                             ; No predecessors!
  br label %2924

2924:                                             ; preds = %2923
  br label %2925

2925:                                             ; preds = %2924, %2867
  br label %2926

2926:                                             ; preds = %2925
  br label %2927

2927:                                             ; preds = %2926
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #10
  store i8 0, ptr %67, align 1, !tbaa !52
  br label %2928

2928:                                             ; preds = %2927
  %2929 = load i32, ptr @test_count, align 4, !tbaa !5
  %2930 = add nsw i32 %2929, 1
  store i32 %2930, ptr @test_count, align 4, !tbaa !5
  %2931 = load i16, ptr @s2n_client_renegotiation_info_extension, align 8, !tbaa !53
  %2932 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %2931, ptr noundef %67)
  %2933 = icmp eq i32 %2932, -1
  br i1 %2933, label %2934, label %2987

2934:                                             ; preds = %2928
  br label %2935

2935:                                             ; preds = %2934
  br label %2936

2936:                                             ; preds = %2935
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %2937 = call ptr @__errno_location() #11
  %2938 = load i32, ptr %2937, align 4, !tbaa !5
  store i32 %2938, ptr %68, align 4, !tbaa !5
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = call i32 @s2n_print_stacktrace(ptr noundef %2939)
  %2941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2942 = trunc i8 %2941 to i1
  br i1 %2942, label %2943, label %2965

2943:                                             ; preds = %2936
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = call i32 @fileno(ptr noundef %2944) #10
  %2946 = call i32 @isatty(i32 noundef %2945) #10
  %2947 = icmp ne i32 %2946, 0
  br i1 %2947, label %2948, label %2965

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

2965:                                             ; preds = %2943, %2936
  %2966 = load i32, ptr %68, align 4, !tbaa !5
  %2967 = call ptr @__errno_location() #11
  store i32 %2966, ptr %2967, align 4, !tbaa !5
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = load i32, ptr @test_count, align 4, !tbaa !5
  %2970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call ptr @s2n_strerror(i32 noundef %2971, ptr noundef @.str.4)
  %2973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror_debug(i32 noundef %2974, ptr noundef @.str.4)
  %2976 = call ptr @__errno_location() #11
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @strerror(i32 noundef %2977) #10
  %2979 = call ptr @__errno_location() #11
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2968, ptr noundef @.str.5, i32 noundef %2969, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2972, ptr noundef %2975, ptr noundef %2978, i32 noundef %2980) #10
  br label %2982

2982:                                             ; preds = %2965, %2948
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %2983

2983:                                             ; preds = %2982
  br label %2984

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

2985:                                             ; No predecessors!
  br label %2986

2986:                                             ; preds = %2985
  br label %2987

2987:                                             ; preds = %2986, %2928
  br label %2988

2988:                                             ; preds = %2987
  br label %2989

2989:                                             ; preds = %2988
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  %2990 = load ptr, ptr %58, align 8, !tbaa !9
  %2991 = getelementptr inbounds %struct.s2n_connection, ptr %2990, i32 0, i32 71
  %2992 = getelementptr inbounds %struct.s2n_client_hello, ptr %2991, i32 0, i32 1
  %2993 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %2992, i32 0, i32 0
  %2994 = load i8, ptr %67, align 1, !tbaa !52
  %2995 = zext i8 %2994 to i64
  %2996 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %2993, i64 0, i64 %2995
  store ptr %2996, ptr %69, align 8, !tbaa !9
  br label %2997

2997:                                             ; preds = %2989
  %2998 = load i32, ptr @test_count, align 4, !tbaa !5
  %2999 = add nsw i32 %2998, 1
  store i32 %2999, ptr @test_count, align 4, !tbaa !5
  %3000 = load ptr, ptr %69, align 8, !tbaa !9
  %3001 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %3000, i32 0, i32 0
  %3002 = getelementptr inbounds %struct.s2n_blob, ptr %3001, i32 0, i32 1
  %3003 = load i32, ptr %3002, align 8, !tbaa !54
  %3004 = icmp eq i32 %3003, 0
  br i1 %3004, label %3058, label %3005

3005:                                             ; preds = %2997
  br label %3006

3006:                                             ; preds = %3005
  br label %3007

3007:                                             ; preds = %3006
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %3008 = call ptr @__errno_location() #11
  %3009 = load i32, ptr %3008, align 4, !tbaa !5
  store i32 %3009, ptr %70, align 4, !tbaa !5
  %3010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3011 = call i32 @s2n_print_stacktrace(ptr noundef %3010)
  %3012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3013 = trunc i8 %3012 to i1
  br i1 %3013, label %3014, label %3036

3014:                                             ; preds = %3007
  %3015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3016 = call i32 @fileno(ptr noundef %3015) #10
  %3017 = call i32 @isatty(i32 noundef %3016) #10
  %3018 = icmp ne i32 %3017, 0
  br i1 %3018, label %3019, label %3036

3019:                                             ; preds = %3014
  %3020 = load i32, ptr %70, align 4, !tbaa !5
  %3021 = call ptr @__errno_location() #11
  store i32 %3020, ptr %3021, align 4, !tbaa !5
  %3022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3023 = load i32, ptr @test_count, align 4, !tbaa !5
  %3024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = call ptr @s2n_strerror(i32 noundef %3025, ptr noundef @.str.4)
  %3027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror_debug(i32 noundef %3028, ptr noundef @.str.4)
  %3030 = call ptr @__errno_location() #11
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call ptr @strerror(i32 noundef %3031) #10
  %3033 = call ptr @__errno_location() #11
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3022, ptr noundef @.str.2, i32 noundef %3023, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 160, ptr noundef %3026, ptr noundef %3029, ptr noundef %3032, i32 noundef %3034) #10
  br label %3053

3036:                                             ; preds = %3014, %3007
  %3037 = load i32, ptr %70, align 4, !tbaa !5
  %3038 = call ptr @__errno_location() #11
  store i32 %3037, ptr %3038, align 4, !tbaa !5
  %3039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3040 = load i32, ptr @test_count, align 4, !tbaa !5
  %3041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror(i32 noundef %3042, ptr noundef @.str.4)
  %3044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call ptr @s2n_strerror_debug(i32 noundef %3045, ptr noundef @.str.4)
  %3047 = call ptr @__errno_location() #11
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call ptr @strerror(i32 noundef %3048) #10
  %3050 = call ptr @__errno_location() #11
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3039, ptr noundef @.str.5, i32 noundef %3040, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 160, ptr noundef %3043, ptr noundef %3046, ptr noundef %3049, i32 noundef %3051) #10
  br label %3053

3053:                                             ; preds = %3036, %3019
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %3054

3054:                                             ; preds = %3053
  br label %3055

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

3056:                                             ; No predecessors!
  br label %3057

3057:                                             ; preds = %3056
  br label %3058

3058:                                             ; preds = %3057, %2997
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059
  br label %3061

3061:                                             ; preds = %3060
  %3062 = load i32, ptr @test_count, align 4, !tbaa !5
  %3063 = add nsw i32 %3062, 1
  store i32 %3063, ptr @test_count, align 4, !tbaa !5
  %3064 = load ptr, ptr %69, align 8, !tbaa !9
  %3065 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %3064, i32 0, i32 1
  %3066 = load i16, ptr %3065, align 8, !tbaa !56
  %3067 = zext i16 %3066 to i32
  %3068 = icmp eq i32 %3067, 0
  br i1 %3068, label %3122, label %3069

3069:                                             ; preds = %3061
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %3072 = call ptr @__errno_location() #11
  %3073 = load i32, ptr %3072, align 4, !tbaa !5
  store i32 %3073, ptr %71, align 4, !tbaa !5
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = call i32 @s2n_print_stacktrace(ptr noundef %3074)
  %3076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3077 = trunc i8 %3076 to i1
  br i1 %3077, label %3078, label %3100

3078:                                             ; preds = %3071
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = call i32 @fileno(ptr noundef %3079) #10
  %3081 = call i32 @isatty(i32 noundef %3080) #10
  %3082 = icmp ne i32 %3081, 0
  br i1 %3082, label %3083, label %3100

3083:                                             ; preds = %3078
  %3084 = load i32, ptr %71, align 4, !tbaa !5
  %3085 = call ptr @__errno_location() #11
  store i32 %3084, ptr %3085, align 4, !tbaa !5
  %3086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3087 = load i32, ptr @test_count, align 4, !tbaa !5
  %3088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3089 = load i32, ptr %3088, align 4, !tbaa !5
  %3090 = call ptr @s2n_strerror(i32 noundef %3089, ptr noundef @.str.4)
  %3091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3092 = load i32, ptr %3091, align 4, !tbaa !5
  %3093 = call ptr @s2n_strerror_debug(i32 noundef %3092, ptr noundef @.str.4)
  %3094 = call ptr @__errno_location() #11
  %3095 = load i32, ptr %3094, align 4, !tbaa !5
  %3096 = call ptr @strerror(i32 noundef %3095) #10
  %3097 = call ptr @__errno_location() #11
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3086, ptr noundef @.str.2, i32 noundef %3087, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3090, ptr noundef %3093, ptr noundef %3096, i32 noundef %3098) #10
  br label %3117

3100:                                             ; preds = %3078, %3071
  %3101 = load i32, ptr %71, align 4, !tbaa !5
  %3102 = call ptr @__errno_location() #11
  store i32 %3101, ptr %3102, align 4, !tbaa !5
  %3103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3104 = load i32, ptr @test_count, align 4, !tbaa !5
  %3105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = call ptr @s2n_strerror(i32 noundef %3106, ptr noundef @.str.4)
  %3108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3109 = load i32, ptr %3108, align 4, !tbaa !5
  %3110 = call ptr @s2n_strerror_debug(i32 noundef %3109, ptr noundef @.str.4)
  %3111 = call ptr @__errno_location() #11
  %3112 = load i32, ptr %3111, align 4, !tbaa !5
  %3113 = call ptr @strerror(i32 noundef %3112) #10
  %3114 = call ptr @__errno_location() #11
  %3115 = load i32, ptr %3114, align 4, !tbaa !5
  %3116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3103, ptr noundef @.str.5, i32 noundef %3104, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3107, ptr noundef %3110, ptr noundef %3113, i32 noundef %3115) #10
  br label %3117

3117:                                             ; preds = %3100, %3083
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3118

3118:                                             ; preds = %3117
  br label %3119

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

3120:                                             ; No predecessors!
  br label %3121

3121:                                             ; preds = %3120
  br label %3122

3122:                                             ; preds = %3121, %3061
  br label %3123

3123:                                             ; preds = %3122
  br label %3124

3124:                                             ; preds = %3123
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #10
  %3125 = call i32 @s2n_connection_ptr_free(ptr noundef %58)
  %3126 = getelementptr inbounds %struct.s2n_result, ptr %72, i32 0, i32 0
  store i32 %3125, ptr %3126, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #10
  %3127 = call i32 @s2n_connection_ptr_free(ptr noundef %56)
  %3128 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %3127, ptr %3128, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %3129 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3129, ptr %74, align 8, !tbaa !9
  br label %3130

3130:                                             ; preds = %3124
  %3131 = load i32, ptr @test_count, align 4, !tbaa !5
  %3132 = add nsw i32 %3131, 1
  store i32 %3132, ptr @test_count, align 4, !tbaa !5
  %3133 = load ptr, ptr %74, align 8, !tbaa !9
  %3134 = icmp eq ptr %3133, null
  br i1 %3134, label %3135, label %3188

3135:                                             ; preds = %3130
  br label %3136

3136:                                             ; preds = %3135
  br label %3137

3137:                                             ; preds = %3136
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %3138 = call ptr @__errno_location() #11
  %3139 = load i32, ptr %3138, align 4, !tbaa !5
  store i32 %3139, ptr %75, align 4, !tbaa !5
  %3140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3141 = call i32 @s2n_print_stacktrace(ptr noundef %3140)
  %3142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3143 = trunc i8 %3142 to i1
  br i1 %3143, label %3144, label %3166

3144:                                             ; preds = %3137
  %3145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3146 = call i32 @fileno(ptr noundef %3145) #10
  %3147 = call i32 @isatty(i32 noundef %3146) #10
  %3148 = icmp ne i32 %3147, 0
  br i1 %3148, label %3149, label %3166

3149:                                             ; preds = %3144
  %3150 = load i32, ptr %75, align 4, !tbaa !5
  %3151 = call ptr @__errno_location() #11
  store i32 %3150, ptr %3151, align 4, !tbaa !5
  %3152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3153 = load i32, ptr @test_count, align 4, !tbaa !5
  %3154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3155 = load i32, ptr %3154, align 4, !tbaa !5
  %3156 = call ptr @s2n_strerror(i32 noundef %3155, ptr noundef @.str.4)
  %3157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3158 = load i32, ptr %3157, align 4, !tbaa !5
  %3159 = call ptr @s2n_strerror_debug(i32 noundef %3158, ptr noundef @.str.4)
  %3160 = call ptr @__errno_location() #11
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call ptr @strerror(i32 noundef %3161) #10
  %3163 = call ptr @__errno_location() #11
  %3164 = load i32, ptr %3163, align 4, !tbaa !5
  %3165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3152, ptr noundef @.str.2, i32 noundef %3153, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3156, ptr noundef %3159, ptr noundef %3162, i32 noundef %3164) #10
  br label %3183

3166:                                             ; preds = %3144, %3137
  %3167 = load i32, ptr %75, align 4, !tbaa !5
  %3168 = call ptr @__errno_location() #11
  store i32 %3167, ptr %3168, align 4, !tbaa !5
  %3169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3170 = load i32, ptr @test_count, align 4, !tbaa !5
  %3171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  %3173 = call ptr @s2n_strerror(i32 noundef %3172, ptr noundef @.str.4)
  %3174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3175 = load i32, ptr %3174, align 4, !tbaa !5
  %3176 = call ptr @s2n_strerror_debug(i32 noundef %3175, ptr noundef @.str.4)
  %3177 = call ptr @__errno_location() #11
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call ptr @strerror(i32 noundef %3178) #10
  %3180 = call ptr @__errno_location() #11
  %3181 = load i32, ptr %3180, align 4, !tbaa !5
  %3182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3169, ptr noundef @.str.5, i32 noundef %3170, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3173, ptr noundef %3176, ptr noundef %3179, i32 noundef %3181) #10
  br label %3183

3183:                                             ; preds = %3166, %3149
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3184

3184:                                             ; preds = %3183
  br label %3185

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

3186:                                             ; No predecessors!
  br label %3187

3187:                                             ; preds = %3186
  br label %3188

3188:                                             ; preds = %3187, %3130
  br label %3189

3189:                                             ; preds = %3188
  br label %3190

3190:                                             ; preds = %3189
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #10
  %3191 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3191, ptr %76, align 8, !tbaa !9
  br label %3192

3192:                                             ; preds = %3190
  %3193 = load i32, ptr @test_count, align 4, !tbaa !5
  %3194 = add nsw i32 %3193, 1
  store i32 %3194, ptr @test_count, align 4, !tbaa !5
  %3195 = load ptr, ptr %76, align 8, !tbaa !9
  %3196 = icmp eq ptr %3195, null
  br i1 %3196, label %3197, label %3250

3197:                                             ; preds = %3192
  br label %3198

3198:                                             ; preds = %3197
  br label %3199

3199:                                             ; preds = %3198
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3200 = call ptr @__errno_location() #11
  %3201 = load i32, ptr %3200, align 4, !tbaa !5
  store i32 %3201, ptr %77, align 4, !tbaa !5
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = call i32 @s2n_print_stacktrace(ptr noundef %3202)
  %3204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3205 = trunc i8 %3204 to i1
  br i1 %3205, label %3206, label %3228

3206:                                             ; preds = %3199
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = call i32 @fileno(ptr noundef %3207) #10
  %3209 = call i32 @isatty(i32 noundef %3208) #10
  %3210 = icmp ne i32 %3209, 0
  br i1 %3210, label %3211, label %3228

3211:                                             ; preds = %3206
  %3212 = load i32, ptr %77, align 4, !tbaa !5
  %3213 = call ptr @__errno_location() #11
  store i32 %3212, ptr %3213, align 4, !tbaa !5
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = load i32, ptr @test_count, align 4, !tbaa !5
  %3216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call ptr @s2n_strerror(i32 noundef %3217, ptr noundef @.str.4)
  %3219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3220 = load i32, ptr %3219, align 4, !tbaa !5
  %3221 = call ptr @s2n_strerror_debug(i32 noundef %3220, ptr noundef @.str.4)
  %3222 = call ptr @__errno_location() #11
  %3223 = load i32, ptr %3222, align 4, !tbaa !5
  %3224 = call ptr @strerror(i32 noundef %3223) #10
  %3225 = call ptr @__errno_location() #11
  %3226 = load i32, ptr %3225, align 4, !tbaa !5
  %3227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3214, ptr noundef @.str.2, i32 noundef %3215, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3218, ptr noundef %3221, ptr noundef %3224, i32 noundef %3226) #10
  br label %3245

3228:                                             ; preds = %3206, %3199
  %3229 = load i32, ptr %77, align 4, !tbaa !5
  %3230 = call ptr @__errno_location() #11
  store i32 %3229, ptr %3230, align 4, !tbaa !5
  %3231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3232 = load i32, ptr @test_count, align 4, !tbaa !5
  %3233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  %3235 = call ptr @s2n_strerror(i32 noundef %3234, ptr noundef @.str.4)
  %3236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3237 = load i32, ptr %3236, align 4, !tbaa !5
  %3238 = call ptr @s2n_strerror_debug(i32 noundef %3237, ptr noundef @.str.4)
  %3239 = call ptr @__errno_location() #11
  %3240 = load i32, ptr %3239, align 4, !tbaa !5
  %3241 = call ptr @strerror(i32 noundef %3240) #10
  %3242 = call ptr @__errno_location() #11
  %3243 = load i32, ptr %3242, align 4, !tbaa !5
  %3244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3231, ptr noundef @.str.5, i32 noundef %3232, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3235, ptr noundef %3238, ptr noundef %3241, i32 noundef %3243) #10
  br label %3245

3245:                                             ; preds = %3228, %3211
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3246

3246:                                             ; preds = %3245
  br label %3247

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

3248:                                             ; No predecessors!
  br label %3249

3249:                                             ; preds = %3248
  br label %3250

3250:                                             ; preds = %3249, %3192
  br label %3251

3251:                                             ; preds = %3250
  br label %3252

3252:                                             ; preds = %3251
  br label %3253

3253:                                             ; preds = %3252
  %3254 = load i32, ptr @test_count, align 4, !tbaa !5
  %3255 = add nsw i32 %3254, 1
  store i32 %3255, ptr @test_count, align 4, !tbaa !5
  %3256 = load ptr, ptr %74, align 8, !tbaa !9
  %3257 = call i32 @s2n_client_hello_send(ptr noundef %3256)
  %3258 = icmp eq i32 %3257, -1
  br i1 %3258, label %3259, label %3312

3259:                                             ; preds = %3253
  br label %3260

3260:                                             ; preds = %3259
  br label %3261

3261:                                             ; preds = %3260
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  %3262 = call ptr @__errno_location() #11
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  store i32 %3263, ptr %78, align 4, !tbaa !5
  %3264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3265 = call i32 @s2n_print_stacktrace(ptr noundef %3264)
  %3266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3267 = trunc i8 %3266 to i1
  br i1 %3267, label %3268, label %3290

3268:                                             ; preds = %3261
  %3269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3270 = call i32 @fileno(ptr noundef %3269) #10
  %3271 = call i32 @isatty(i32 noundef %3270) #10
  %3272 = icmp ne i32 %3271, 0
  br i1 %3272, label %3273, label %3290

3273:                                             ; preds = %3268
  %3274 = load i32, ptr %78, align 4, !tbaa !5
  %3275 = call ptr @__errno_location() #11
  store i32 %3274, ptr %3275, align 4, !tbaa !5
  %3276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3277 = load i32, ptr @test_count, align 4, !tbaa !5
  %3278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = call ptr @s2n_strerror(i32 noundef %3279, ptr noundef @.str.4)
  %3281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  %3283 = call ptr @s2n_strerror_debug(i32 noundef %3282, ptr noundef @.str.4)
  %3284 = call ptr @__errno_location() #11
  %3285 = load i32, ptr %3284, align 4, !tbaa !5
  %3286 = call ptr @strerror(i32 noundef %3285) #10
  %3287 = call ptr @__errno_location() #11
  %3288 = load i32, ptr %3287, align 4, !tbaa !5
  %3289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3276, ptr noundef @.str.2, i32 noundef %3277, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3280, ptr noundef %3283, ptr noundef %3286, i32 noundef %3288) #10
  br label %3307

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

3307:                                             ; preds = %3290, %3273
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

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

3310:                                             ; No predecessors!
  br label %3311

3311:                                             ; preds = %3310
  br label %3312

3312:                                             ; preds = %3311, %3253
  br label %3313

3313:                                             ; preds = %3312
  br label %3314

3314:                                             ; preds = %3313
  br label %3315

3315:                                             ; preds = %3314
  %3316 = load i32, ptr @test_count, align 4, !tbaa !5
  %3317 = add nsw i32 %3316, 1
  store i32 %3317, ptr @test_count, align 4, !tbaa !5
  %3318 = load ptr, ptr %74, align 8, !tbaa !9
  %3319 = getelementptr inbounds %struct.s2n_connection, ptr %3318, i32 0, i32 52
  %3320 = getelementptr inbounds %struct.s2n_handshake, ptr %3319, i32 0, i32 0
  %3321 = load ptr, ptr %76, align 8, !tbaa !9
  %3322 = getelementptr inbounds %struct.s2n_connection, ptr %3321, i32 0, i32 52
  %3323 = getelementptr inbounds %struct.s2n_handshake, ptr %3322, i32 0, i32 0
  %3324 = load ptr, ptr %74, align 8, !tbaa !9
  %3325 = getelementptr inbounds %struct.s2n_connection, ptr %3324, i32 0, i32 52
  %3326 = getelementptr inbounds %struct.s2n_handshake, ptr %3325, i32 0, i32 0
  %3327 = getelementptr inbounds %struct.s2n_stuffer, ptr %3326, i32 0, i32 2
  %3328 = load i32, ptr %3327, align 4, !tbaa !45
  %3329 = load ptr, ptr %74, align 8, !tbaa !9
  %3330 = getelementptr inbounds %struct.s2n_connection, ptr %3329, i32 0, i32 52
  %3331 = getelementptr inbounds %struct.s2n_handshake, ptr %3330, i32 0, i32 0
  %3332 = getelementptr inbounds %struct.s2n_stuffer, ptr %3331, i32 0, i32 1
  %3333 = load i32, ptr %3332, align 8, !tbaa !46
  %3334 = sub i32 %3328, %3333
  %3335 = call i32 @s2n_stuffer_copy(ptr noundef %3320, ptr noundef %3323, i32 noundef %3334)
  %3336 = icmp eq i32 %3335, -1
  br i1 %3336, label %3337, label %3390

3337:                                             ; preds = %3315
  br label %3338

3338:                                             ; preds = %3337
  br label %3339

3339:                                             ; preds = %3338
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3340 = call ptr @__errno_location() #11
  %3341 = load i32, ptr %3340, align 4, !tbaa !5
  store i32 %3341, ptr %79, align 4, !tbaa !5
  %3342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3343 = call i32 @s2n_print_stacktrace(ptr noundef %3342)
  %3344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3345 = trunc i8 %3344 to i1
  br i1 %3345, label %3346, label %3368

3346:                                             ; preds = %3339
  %3347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3348 = call i32 @fileno(ptr noundef %3347) #10
  %3349 = call i32 @isatty(i32 noundef %3348) #10
  %3350 = icmp ne i32 %3349, 0
  br i1 %3350, label %3351, label %3368

3351:                                             ; preds = %3346
  %3352 = load i32, ptr %79, align 4, !tbaa !5
  %3353 = call ptr @__errno_location() #11
  store i32 %3352, ptr %3353, align 4, !tbaa !5
  %3354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3355 = load i32, ptr @test_count, align 4, !tbaa !5
  %3356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3357 = load i32, ptr %3356, align 4, !tbaa !5
  %3358 = call ptr @s2n_strerror(i32 noundef %3357, ptr noundef @.str.4)
  %3359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3360 = load i32, ptr %3359, align 4, !tbaa !5
  %3361 = call ptr @s2n_strerror_debug(i32 noundef %3360, ptr noundef @.str.4)
  %3362 = call ptr @__errno_location() #11
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  %3364 = call ptr @strerror(i32 noundef %3363) #10
  %3365 = call ptr @__errno_location() #11
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  %3367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3354, ptr noundef @.str.2, i32 noundef %3355, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3358, ptr noundef %3361, ptr noundef %3364, i32 noundef %3366) #10
  br label %3385

3368:                                             ; preds = %3346, %3339
  %3369 = load i32, ptr %79, align 4, !tbaa !5
  %3370 = call ptr @__errno_location() #11
  store i32 %3369, ptr %3370, align 4, !tbaa !5
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3372 = load i32, ptr @test_count, align 4, !tbaa !5
  %3373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3374 = load i32, ptr %3373, align 4, !tbaa !5
  %3375 = call ptr @s2n_strerror(i32 noundef %3374, ptr noundef @.str.4)
  %3376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3377 = load i32, ptr %3376, align 4, !tbaa !5
  %3378 = call ptr @s2n_strerror_debug(i32 noundef %3377, ptr noundef @.str.4)
  %3379 = call ptr @__errno_location() #11
  %3380 = load i32, ptr %3379, align 4, !tbaa !5
  %3381 = call ptr @strerror(i32 noundef %3380) #10
  %3382 = call ptr @__errno_location() #11
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  %3384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3371, ptr noundef @.str.5, i32 noundef %3372, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3375, ptr noundef %3378, ptr noundef %3381, i32 noundef %3383) #10
  br label %3385

3385:                                             ; preds = %3368, %3351
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3386

3386:                                             ; preds = %3385
  br label %3387

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

3388:                                             ; No predecessors!
  br label %3389

3389:                                             ; preds = %3388
  br label %3390

3390:                                             ; preds = %3389, %3315
  br label %3391

3391:                                             ; preds = %3390
  br label %3392

3392:                                             ; preds = %3391
  br label %3393

3393:                                             ; preds = %3392
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %3395 = add nsw i32 %3394, 1
  store i32 %3395, ptr @test_count, align 4, !tbaa !5
  %3396 = load ptr, ptr %76, align 8, !tbaa !9
  %3397 = call i32 @s2n_parse_client_hello(ptr noundef %3396)
  %3398 = icmp eq i32 %3397, -1
  br i1 %3398, label %3399, label %3452

3399:                                             ; preds = %3393
  br label %3400

3400:                                             ; preds = %3399
  br label %3401

3401:                                             ; preds = %3400
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %3402 = call ptr @__errno_location() #11
  %3403 = load i32, ptr %3402, align 4, !tbaa !5
  store i32 %3403, ptr %80, align 4, !tbaa !5
  %3404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3405 = call i32 @s2n_print_stacktrace(ptr noundef %3404)
  %3406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3407 = trunc i8 %3406 to i1
  br i1 %3407, label %3408, label %3430

3408:                                             ; preds = %3401
  %3409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3410 = call i32 @fileno(ptr noundef %3409) #10
  %3411 = call i32 @isatty(i32 noundef %3410) #10
  %3412 = icmp ne i32 %3411, 0
  br i1 %3412, label %3413, label %3430

3413:                                             ; preds = %3408
  %3414 = load i32, ptr %80, align 4, !tbaa !5
  %3415 = call ptr @__errno_location() #11
  store i32 %3414, ptr %3415, align 4, !tbaa !5
  %3416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3417 = load i32, ptr @test_count, align 4, !tbaa !5
  %3418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call ptr @s2n_strerror(i32 noundef %3419, ptr noundef @.str.4)
  %3421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3422 = load i32, ptr %3421, align 4, !tbaa !5
  %3423 = call ptr @s2n_strerror_debug(i32 noundef %3422, ptr noundef @.str.4)
  %3424 = call ptr @__errno_location() #11
  %3425 = load i32, ptr %3424, align 4, !tbaa !5
  %3426 = call ptr @strerror(i32 noundef %3425) #10
  %3427 = call ptr @__errno_location() #11
  %3428 = load i32, ptr %3427, align 4, !tbaa !5
  %3429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3416, ptr noundef @.str.2, i32 noundef %3417, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3420, ptr noundef %3423, ptr noundef %3426, i32 noundef %3428) #10
  br label %3447

3430:                                             ; preds = %3408, %3401
  %3431 = load i32, ptr %80, align 4, !tbaa !5
  %3432 = call ptr @__errno_location() #11
  store i32 %3431, ptr %3432, align 4, !tbaa !5
  %3433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3434 = load i32, ptr @test_count, align 4, !tbaa !5
  %3435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call ptr @s2n_strerror(i32 noundef %3436, ptr noundef @.str.4)
  %3438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3439 = load i32, ptr %3438, align 4, !tbaa !5
  %3440 = call ptr @s2n_strerror_debug(i32 noundef %3439, ptr noundef @.str.4)
  %3441 = call ptr @__errno_location() #11
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call ptr @strerror(i32 noundef %3442) #10
  %3444 = call ptr @__errno_location() #11
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  %3446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3433, ptr noundef @.str.5, i32 noundef %3434, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3437, ptr noundef %3440, ptr noundef %3443, i32 noundef %3445) #10
  br label %3447

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

3448:                                             ; preds = %3447
  br label %3449

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

3450:                                             ; No predecessors!
  br label %3451

3451:                                             ; preds = %3450
  br label %3452

3452:                                             ; preds = %3451, %3393
  br label %3453

3453:                                             ; preds = %3452
  br label %3454

3454:                                             ; preds = %3453
  br label %3455

3455:                                             ; preds = %3454
  %3456 = load i32, ptr @test_count, align 4, !tbaa !5
  %3457 = add nsw i32 %3456, 1
  store i32 %3457, ptr @test_count, align 4, !tbaa !5
  %3458 = load ptr, ptr %76, align 8, !tbaa !9
  %3459 = load ptr, ptr %76, align 8, !tbaa !9
  %3460 = getelementptr inbounds %struct.s2n_connection, ptr %3459, i32 0, i32 71
  %3461 = getelementptr inbounds %struct.s2n_client_hello, ptr %3460, i32 0, i32 1
  %3462 = call i32 @s2n_extension_list_process(i32 noundef 0, ptr noundef %3458, ptr noundef %3461)
  %3463 = icmp eq i32 %3462, -1
  br i1 %3463, label %3464, label %3517

3464:                                             ; preds = %3455
  br label %3465

3465:                                             ; preds = %3464
  br label %3466

3466:                                             ; preds = %3465
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3467 = call ptr @__errno_location() #11
  %3468 = load i32, ptr %3467, align 4, !tbaa !5
  store i32 %3468, ptr %81, align 4, !tbaa !5
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = call i32 @s2n_print_stacktrace(ptr noundef %3469)
  %3471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3472 = trunc i8 %3471 to i1
  br i1 %3472, label %3473, label %3495

3473:                                             ; preds = %3466
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = call i32 @fileno(ptr noundef %3474) #10
  %3476 = call i32 @isatty(i32 noundef %3475) #10
  %3477 = icmp ne i32 %3476, 0
  br i1 %3477, label %3478, label %3495

3478:                                             ; preds = %3473
  %3479 = load i32, ptr %81, align 4, !tbaa !5
  %3480 = call ptr @__errno_location() #11
  store i32 %3479, ptr %3480, align 4, !tbaa !5
  %3481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3482 = load i32, ptr @test_count, align 4, !tbaa !5
  %3483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3484 = load i32, ptr %3483, align 4, !tbaa !5
  %3485 = call ptr @s2n_strerror(i32 noundef %3484, ptr noundef @.str.4)
  %3486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3487 = load i32, ptr %3486, align 4, !tbaa !5
  %3488 = call ptr @s2n_strerror_debug(i32 noundef %3487, ptr noundef @.str.4)
  %3489 = call ptr @__errno_location() #11
  %3490 = load i32, ptr %3489, align 4, !tbaa !5
  %3491 = call ptr @strerror(i32 noundef %3490) #10
  %3492 = call ptr @__errno_location() #11
  %3493 = load i32, ptr %3492, align 4, !tbaa !5
  %3494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3481, ptr noundef @.str.2, i32 noundef %3482, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3485, ptr noundef %3488, ptr noundef %3491, i32 noundef %3493) #10
  br label %3512

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

3512:                                             ; preds = %3495, %3478
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3513

3513:                                             ; preds = %3512
  br label %3514

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

3515:                                             ; No predecessors!
  br label %3516

3516:                                             ; preds = %3515
  br label %3517

3517:                                             ; preds = %3516, %3455
  br label %3518

3518:                                             ; preds = %3517
  br label %3519

3519:                                             ; preds = %3518
  br label %3520

3520:                                             ; preds = %3519
  %3521 = load i32, ptr @test_count, align 4, !tbaa !5
  %3522 = add nsw i32 %3521, 1
  store i32 %3522, ptr @test_count, align 4, !tbaa !5
  %3523 = load ptr, ptr %76, align 8, !tbaa !9
  %3524 = load i32, ptr %3523, align 8
  %3525 = lshr i32 %3524, 3
  %3526 = and i32 %3525, 1
  %3527 = icmp ne i32 %3526, 0
  br i1 %3527, label %3528, label %3581

3528:                                             ; preds = %3520
  br label %3529

3529:                                             ; preds = %3528
  br label %3530

3530:                                             ; preds = %3529
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %3531 = call ptr @__errno_location() #11
  %3532 = load i32, ptr %3531, align 4, !tbaa !5
  store i32 %3532, ptr %82, align 4, !tbaa !5
  %3533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3534 = call i32 @s2n_print_stacktrace(ptr noundef %3533)
  %3535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3536 = trunc i8 %3535 to i1
  br i1 %3536, label %3537, label %3559

3537:                                             ; preds = %3530
  %3538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3539 = call i32 @fileno(ptr noundef %3538) #10
  %3540 = call i32 @isatty(i32 noundef %3539) #10
  %3541 = icmp ne i32 %3540, 0
  br i1 %3541, label %3542, label %3559

3542:                                             ; preds = %3537
  %3543 = load i32, ptr %82, align 4, !tbaa !5
  %3544 = call ptr @__errno_location() #11
  store i32 %3543, ptr %3544, align 4, !tbaa !5
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3548, ptr noundef @.str.4)
  %3550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  %3552 = call ptr @s2n_strerror_debug(i32 noundef %3551, ptr noundef @.str.4)
  %3553 = call ptr @__errno_location() #11
  %3554 = load i32, ptr %3553, align 4, !tbaa !5
  %3555 = call ptr @strerror(i32 noundef %3554) #10
  %3556 = call ptr @__errno_location() #11
  %3557 = load i32, ptr %3556, align 4, !tbaa !5
  %3558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3545, ptr noundef @.str.2, i32 noundef %3546, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 193, ptr noundef %3549, ptr noundef %3552, ptr noundef %3555, i32 noundef %3557) #10
  br label %3576

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

3576:                                             ; preds = %3559, %3542
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3577

3577:                                             ; preds = %3576
  br label %3578

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

3579:                                             ; No predecessors!
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

3581:                                             ; preds = %3580, %3520
  br label %3582

3582:                                             ; preds = %3581
  br label %3583

3583:                                             ; preds = %3582
  call void @llvm.lifetime.start.p0(i64 5, ptr %83) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %83, ptr align 1 @__const.main.extension, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #10
  %3584 = load ptr, ptr %76, align 8, !tbaa !9
  %3585 = getelementptr inbounds %struct.s2n_connection, ptr %3584, i32 0, i32 71
  %3586 = getelementptr inbounds %struct.s2n_client_hello, ptr %3585, i32 0, i32 0
  %3587 = getelementptr inbounds %struct.s2n_blob, ptr %3586, i32 0, i32 1
  %3588 = load i32, ptr %3587, align 8, !tbaa !57
  %3589 = zext i32 %3588 to i64
  store i64 %3589, ptr %84, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %3590 = load ptr, ptr %76, align 8, !tbaa !9
  %3591 = getelementptr inbounds %struct.s2n_connection, ptr %3590, i32 0, i32 71
  %3592 = getelementptr inbounds %struct.s2n_client_hello, ptr %3591, i32 0, i32 1
  %3593 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %3592, i32 0, i32 1
  %3594 = getelementptr inbounds %struct.s2n_blob, ptr %3593, i32 0, i32 1
  %3595 = load i32, ptr %3594, align 8, !tbaa !58
  %3596 = zext i32 %3595 to i64
  store i64 %3596, ptr %85, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  %3597 = load i64, ptr %85, align 8, !tbaa !47
  %3598 = add i64 %3597, 5
  store i64 %3598, ptr %86, align 8, !tbaa !47
  br label %3599

3599:                                             ; preds = %3583
  %3600 = load i32, ptr @test_count, align 4, !tbaa !5
  %3601 = add nsw i32 %3600, 1
  store i32 %3601, ptr @test_count, align 4, !tbaa !5
  %3602 = load ptr, ptr %74, align 8, !tbaa !9
  %3603 = getelementptr inbounds %struct.s2n_connection, ptr %3602, i32 0, i32 52
  %3604 = getelementptr inbounds %struct.s2n_handshake, ptr %3603, i32 0, i32 0
  %3605 = call i32 @s2n_stuffer_rewrite(ptr noundef %3604)
  %3606 = icmp eq i32 %3605, -1
  br i1 %3606, label %3607, label %3660

3607:                                             ; preds = %3599
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

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

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

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

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

3655:                                             ; preds = %3638, %3621
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %3656

3656:                                             ; preds = %3655
  br label %3657

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

3658:                                             ; No predecessors!
  br label %3659

3659:                                             ; preds = %3658
  br label %3660

3660:                                             ; preds = %3659, %3599
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

3662:                                             ; preds = %3661
  br label %3663

3663:                                             ; preds = %3662
  %3664 = load i32, ptr @test_count, align 4, !tbaa !5
  %3665 = add nsw i32 %3664, 1
  store i32 %3665, ptr @test_count, align 4, !tbaa !5
  %3666 = load ptr, ptr %74, align 8, !tbaa !9
  %3667 = getelementptr inbounds %struct.s2n_connection, ptr %3666, i32 0, i32 52
  %3668 = getelementptr inbounds %struct.s2n_handshake, ptr %3667, i32 0, i32 0
  %3669 = load i64, ptr %84, align 8, !tbaa !47
  %3670 = load i64, ptr %85, align 8, !tbaa !47
  %3671 = sub i64 %3669, %3670
  %3672 = sub i64 %3671, 2
  %3673 = trunc i64 %3672 to i32
  %3674 = call i32 @s2n_stuffer_skip_write(ptr noundef %3668, i32 noundef %3673)
  %3675 = icmp eq i32 %3674, -1
  br i1 %3675, label %3676, label %3729

3676:                                             ; preds = %3663
  br label %3677

3677:                                             ; preds = %3676
  br label %3678

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

3685:                                             ; preds = %3678
  %3686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3687 = call i32 @fileno(ptr noundef %3686) #10
  %3688 = call i32 @isatty(i32 noundef %3687) #10
  %3689 = icmp ne i32 %3688, 0
  br i1 %3689, label %3690, label %3707

3690:                                             ; preds = %3685
  %3691 = load i32, ptr %88, align 4, !tbaa !5
  %3692 = call ptr @__errno_location() #11
  store i32 %3691, ptr %3692, align 4, !tbaa !5
  %3693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3694 = load i32, ptr @test_count, align 4, !tbaa !5
  %3695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call ptr @s2n_strerror(i32 noundef %3696, ptr noundef @.str.4)
  %3698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  %3700 = call ptr @s2n_strerror_debug(i32 noundef %3699, ptr noundef @.str.4)
  %3701 = call ptr @__errno_location() #11
  %3702 = load i32, ptr %3701, align 4, !tbaa !5
  %3703 = call ptr @strerror(i32 noundef %3702) #10
  %3704 = call ptr @__errno_location() #11
  %3705 = load i32, ptr %3704, align 4, !tbaa !5
  %3706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3693, ptr noundef @.str.2, i32 noundef %3694, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 206, ptr noundef %3697, ptr noundef %3700, ptr noundef %3703, i32 noundef %3705) #10
  br label %3724

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

3724:                                             ; preds = %3707, %3690
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %3725

3725:                                             ; preds = %3724
  br label %3726

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

3727:                                             ; No predecessors!
  br label %3728

3728:                                             ; preds = %3727
  br label %3729

3729:                                             ; preds = %3728, %3663
  br label %3730

3730:                                             ; preds = %3729
  br label %3731

3731:                                             ; preds = %3730
  br label %3732

3732:                                             ; preds = %3731
  %3733 = load i32, ptr @test_count, align 4, !tbaa !5
  %3734 = add nsw i32 %3733, 1
  store i32 %3734, ptr @test_count, align 4, !tbaa !5
  %3735 = load ptr, ptr %74, align 8, !tbaa !9
  %3736 = getelementptr inbounds %struct.s2n_connection, ptr %3735, i32 0, i32 52
  %3737 = getelementptr inbounds %struct.s2n_handshake, ptr %3736, i32 0, i32 0
  %3738 = load i64, ptr %86, align 8, !tbaa !47
  %3739 = trunc i64 %3738 to i16
  %3740 = call i32 @s2n_stuffer_write_uint16(ptr noundef %3737, i16 noundef zeroext %3739)
  %3741 = icmp eq i32 %3740, -1
  br i1 %3741, label %3742, label %3795

3742:                                             ; preds = %3732
  br label %3743

3743:                                             ; preds = %3742
  br label %3744

3744:                                             ; preds = %3743
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %3745 = call ptr @__errno_location() #11
  %3746 = load i32, ptr %3745, align 4, !tbaa !5
  store i32 %3746, ptr %89, align 4, !tbaa !5
  %3747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3748 = call i32 @s2n_print_stacktrace(ptr noundef %3747)
  %3749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3750 = trunc i8 %3749 to i1
  br i1 %3750, label %3751, label %3773

3751:                                             ; preds = %3744
  %3752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3753 = call i32 @fileno(ptr noundef %3752) #10
  %3754 = call i32 @isatty(i32 noundef %3753) #10
  %3755 = icmp ne i32 %3754, 0
  br i1 %3755, label %3756, label %3773

3756:                                             ; preds = %3751
  %3757 = load i32, ptr %89, align 4, !tbaa !5
  %3758 = call ptr @__errno_location() #11
  store i32 %3757, ptr %3758, align 4, !tbaa !5
  %3759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3760 = load i32, ptr @test_count, align 4, !tbaa !5
  %3761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3762 = load i32, ptr %3761, align 4, !tbaa !5
  %3763 = call ptr @s2n_strerror(i32 noundef %3762, ptr noundef @.str.4)
  %3764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3765 = load i32, ptr %3764, align 4, !tbaa !5
  %3766 = call ptr @s2n_strerror_debug(i32 noundef %3765, ptr noundef @.str.4)
  %3767 = call ptr @__errno_location() #11
  %3768 = load i32, ptr %3767, align 4, !tbaa !5
  %3769 = call ptr @strerror(i32 noundef %3768) #10
  %3770 = call ptr @__errno_location() #11
  %3771 = load i32, ptr %3770, align 4, !tbaa !5
  %3772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3759, ptr noundef @.str.2, i32 noundef %3760, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 207, ptr noundef %3763, ptr noundef %3766, ptr noundef %3769, i32 noundef %3771) #10
  br label %3790

3773:                                             ; preds = %3751, %3744
  %3774 = load i32, ptr %89, align 4, !tbaa !5
  %3775 = call ptr @__errno_location() #11
  store i32 %3774, ptr %3775, align 4, !tbaa !5
  %3776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3777 = load i32, ptr @test_count, align 4, !tbaa !5
  %3778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3779 = load i32, ptr %3778, align 4, !tbaa !5
  %3780 = call ptr @s2n_strerror(i32 noundef %3779, ptr noundef @.str.4)
  %3781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3782 = load i32, ptr %3781, align 4, !tbaa !5
  %3783 = call ptr @s2n_strerror_debug(i32 noundef %3782, ptr noundef @.str.4)
  %3784 = call ptr @__errno_location() #11
  %3785 = load i32, ptr %3784, align 4, !tbaa !5
  %3786 = call ptr @strerror(i32 noundef %3785) #10
  %3787 = call ptr @__errno_location() #11
  %3788 = load i32, ptr %3787, align 4, !tbaa !5
  %3789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3776, ptr noundef @.str.5, i32 noundef %3777, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 207, ptr noundef %3780, ptr noundef %3783, ptr noundef %3786, i32 noundef %3788) #10
  br label %3790

3790:                                             ; preds = %3773, %3756
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %3791

3791:                                             ; preds = %3790
  br label %3792

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

3793:                                             ; No predecessors!
  br label %3794

3794:                                             ; preds = %3793
  br label %3795

3795:                                             ; preds = %3794, %3732
  br label %3796

3796:                                             ; preds = %3795
  br label %3797

3797:                                             ; preds = %3796
  br label %3798

3798:                                             ; preds = %3797
  %3799 = load i32, ptr @test_count, align 4, !tbaa !5
  %3800 = add nsw i32 %3799, 1
  store i32 %3800, ptr @test_count, align 4, !tbaa !5
  %3801 = load ptr, ptr %74, align 8, !tbaa !9
  %3802 = getelementptr inbounds %struct.s2n_connection, ptr %3801, i32 0, i32 52
  %3803 = getelementptr inbounds %struct.s2n_handshake, ptr %3802, i32 0, i32 0
  %3804 = load i64, ptr %85, align 8, !tbaa !47
  %3805 = trunc i64 %3804 to i32
  %3806 = call i32 @s2n_stuffer_skip_write(ptr noundef %3803, i32 noundef %3805)
  %3807 = icmp eq i32 %3806, -1
  br i1 %3807, label %3808, label %3861

3808:                                             ; preds = %3798
  br label %3809

3809:                                             ; preds = %3808
  br label %3810

3810:                                             ; preds = %3809
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %3811 = call ptr @__errno_location() #11
  %3812 = load i32, ptr %3811, align 4, !tbaa !5
  store i32 %3812, ptr %90, align 4, !tbaa !5
  %3813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3814 = call i32 @s2n_print_stacktrace(ptr noundef %3813)
  %3815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3816 = trunc i8 %3815 to i1
  br i1 %3816, label %3817, label %3839

3817:                                             ; preds = %3810
  %3818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3819 = call i32 @fileno(ptr noundef %3818) #10
  %3820 = call i32 @isatty(i32 noundef %3819) #10
  %3821 = icmp ne i32 %3820, 0
  br i1 %3821, label %3822, label %3839

3822:                                             ; preds = %3817
  %3823 = load i32, ptr %90, align 4, !tbaa !5
  %3824 = call ptr @__errno_location() #11
  store i32 %3823, ptr %3824, align 4, !tbaa !5
  %3825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3826 = load i32, ptr @test_count, align 4, !tbaa !5
  %3827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3828 = load i32, ptr %3827, align 4, !tbaa !5
  %3829 = call ptr @s2n_strerror(i32 noundef %3828, ptr noundef @.str.4)
  %3830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3831 = load i32, ptr %3830, align 4, !tbaa !5
  %3832 = call ptr @s2n_strerror_debug(i32 noundef %3831, ptr noundef @.str.4)
  %3833 = call ptr @__errno_location() #11
  %3834 = load i32, ptr %3833, align 4, !tbaa !5
  %3835 = call ptr @strerror(i32 noundef %3834) #10
  %3836 = call ptr @__errno_location() #11
  %3837 = load i32, ptr %3836, align 4, !tbaa !5
  %3838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3825, ptr noundef @.str.2, i32 noundef %3826, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 208, ptr noundef %3829, ptr noundef %3832, ptr noundef %3835, i32 noundef %3837) #10
  br label %3856

3839:                                             ; preds = %3817, %3810
  %3840 = load i32, ptr %90, align 4, !tbaa !5
  %3841 = call ptr @__errno_location() #11
  store i32 %3840, ptr %3841, align 4, !tbaa !5
  %3842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3843 = load i32, ptr @test_count, align 4, !tbaa !5
  %3844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  %3846 = call ptr @s2n_strerror(i32 noundef %3845, ptr noundef @.str.4)
  %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_debug(i32 noundef %3848, ptr noundef @.str.4)
  %3850 = call ptr @__errno_location() #11
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call ptr @strerror(i32 noundef %3851) #10
  %3853 = call ptr @__errno_location() #11
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3842, ptr noundef @.str.5, i32 noundef %3843, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 208, ptr noundef %3846, ptr noundef %3849, ptr noundef %3852, i32 noundef %3854) #10
  br label %3856

3856:                                             ; preds = %3839, %3822
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %3857

3857:                                             ; preds = %3856
  br label %3858

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

3859:                                             ; No predecessors!
  br label %3860

3860:                                             ; preds = %3859
  br label %3861

3861:                                             ; preds = %3860, %3798
  br label %3862

3862:                                             ; preds = %3861
  br label %3863

3863:                                             ; preds = %3862
  br label %3864

3864:                                             ; preds = %3863
  %3865 = load i32, ptr @test_count, align 4, !tbaa !5
  %3866 = add nsw i32 %3865, 1
  store i32 %3866, ptr @test_count, align 4, !tbaa !5
  %3867 = load ptr, ptr %74, align 8, !tbaa !9
  %3868 = getelementptr inbounds %struct.s2n_connection, ptr %3867, i32 0, i32 52
  %3869 = getelementptr inbounds %struct.s2n_handshake, ptr %3868, i32 0, i32 0
  %3870 = getelementptr inbounds [5 x i8], ptr %83, i64 0, i64 0
  %3871 = call i32 @s2n_stuffer_write_bytes(ptr noundef %3869, ptr noundef %3870, i32 noundef 5)
  %3872 = icmp eq i32 %3871, -1
  br i1 %3872, label %3873, label %3926

3873:                                             ; preds = %3864
  br label %3874

3874:                                             ; preds = %3873
  br label %3875

3875:                                             ; preds = %3874
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %3876 = call ptr @__errno_location() #11
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  store i32 %3877, ptr %91, align 4, !tbaa !5
  %3878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3879 = call i32 @s2n_print_stacktrace(ptr noundef %3878)
  %3880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3881 = trunc i8 %3880 to i1
  br i1 %3881, label %3882, label %3904

3882:                                             ; preds = %3875
  %3883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3884 = call i32 @fileno(ptr noundef %3883) #10
  %3885 = call i32 @isatty(i32 noundef %3884) #10
  %3886 = icmp ne i32 %3885, 0
  br i1 %3886, label %3887, label %3904

3887:                                             ; preds = %3882
  %3888 = load i32, ptr %91, align 4, !tbaa !5
  %3889 = call ptr @__errno_location() #11
  store i32 %3888, ptr %3889, align 4, !tbaa !5
  %3890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3891 = load i32, ptr @test_count, align 4, !tbaa !5
  %3892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3893 = load i32, ptr %3892, align 4, !tbaa !5
  %3894 = call ptr @s2n_strerror(i32 noundef %3893, ptr noundef @.str.4)
  %3895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  %3897 = call ptr @s2n_strerror_debug(i32 noundef %3896, ptr noundef @.str.4)
  %3898 = call ptr @__errno_location() #11
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @strerror(i32 noundef %3899) #10
  %3901 = call ptr @__errno_location() #11
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3890, ptr noundef @.str.2, i32 noundef %3891, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 209, ptr noundef %3894, ptr noundef %3897, ptr noundef %3900, i32 noundef %3902) #10
  br label %3921

3904:                                             ; preds = %3882, %3875
  %3905 = load i32, ptr %91, align 4, !tbaa !5
  %3906 = call ptr @__errno_location() #11
  store i32 %3905, ptr %3906, align 4, !tbaa !5
  %3907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3908 = load i32, ptr @test_count, align 4, !tbaa !5
  %3909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3910 = load i32, ptr %3909, align 4, !tbaa !5
  %3911 = call ptr @s2n_strerror(i32 noundef %3910, ptr noundef @.str.4)
  %3912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3913 = load i32, ptr %3912, align 4, !tbaa !5
  %3914 = call ptr @s2n_strerror_debug(i32 noundef %3913, ptr noundef @.str.4)
  %3915 = call ptr @__errno_location() #11
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  %3917 = call ptr @strerror(i32 noundef %3916) #10
  %3918 = call ptr @__errno_location() #11
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3907, ptr noundef @.str.5, i32 noundef %3908, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 209, ptr noundef %3911, ptr noundef %3914, ptr noundef %3917, i32 noundef %3919) #10
  br label %3921

3921:                                             ; preds = %3904, %3887
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

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

3924:                                             ; No predecessors!
  br label %3925

3925:                                             ; preds = %3924
  br label %3926

3926:                                             ; preds = %3925, %3864
  br label %3927

3927:                                             ; preds = %3926
  br label %3928

3928:                                             ; preds = %3927
  br label %3929

3929:                                             ; preds = %3928
  %3930 = load i32, ptr @test_count, align 4, !tbaa !5
  %3931 = add nsw i32 %3930, 1
  store i32 %3931, ptr @test_count, align 4, !tbaa !5
  %3932 = load ptr, ptr %76, align 8, !tbaa !9
  %3933 = call i32 @s2n_connection_wipe(ptr noundef %3932)
  %3934 = icmp eq i32 %3933, -1
  br i1 %3934, label %3935, label %3988

3935:                                             ; preds = %3929
  br label %3936

3936:                                             ; preds = %3935
  br label %3937

3937:                                             ; preds = %3936
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %3938 = call ptr @__errno_location() #11
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  store i32 %3939, ptr %92, align 4, !tbaa !5
  %3940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3941 = call i32 @s2n_print_stacktrace(ptr noundef %3940)
  %3942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3943 = trunc i8 %3942 to i1
  br i1 %3943, label %3944, label %3966

3944:                                             ; preds = %3937
  %3945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3946 = call i32 @fileno(ptr noundef %3945) #10
  %3947 = call i32 @isatty(i32 noundef %3946) #10
  %3948 = icmp ne i32 %3947, 0
  br i1 %3948, label %3949, label %3966

3949:                                             ; preds = %3944
  %3950 = load i32, ptr %92, align 4, !tbaa !5
  %3951 = call ptr @__errno_location() #11
  store i32 %3950, ptr %3951, align 4, !tbaa !5
  %3952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3953 = load i32, ptr @test_count, align 4, !tbaa !5
  %3954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @s2n_strerror(i32 noundef %3955, ptr noundef @.str.4)
  %3957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call ptr @s2n_strerror_debug(i32 noundef %3958, ptr noundef @.str.4)
  %3960 = call ptr @__errno_location() #11
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call ptr @strerror(i32 noundef %3961) #10
  %3963 = call ptr @__errno_location() #11
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  %3965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3952, ptr noundef @.str.2, i32 noundef %3953, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 212, ptr noundef %3956, ptr noundef %3959, ptr noundef %3962, i32 noundef %3964) #10
  br label %3983

3966:                                             ; preds = %3944, %3937
  %3967 = load i32, ptr %92, align 4, !tbaa !5
  %3968 = call ptr @__errno_location() #11
  store i32 %3967, ptr %3968, align 4, !tbaa !5
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = load i32, ptr @test_count, align 4, !tbaa !5
  %3971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call ptr @s2n_strerror(i32 noundef %3972, ptr noundef @.str.4)
  %3974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call ptr @s2n_strerror_debug(i32 noundef %3975, ptr noundef @.str.4)
  %3977 = call ptr @__errno_location() #11
  %3978 = load i32, ptr %3977, align 4, !tbaa !5
  %3979 = call ptr @strerror(i32 noundef %3978) #10
  %3980 = call ptr @__errno_location() #11
  %3981 = load i32, ptr %3980, align 4, !tbaa !5
  %3982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3969, ptr noundef @.str.5, i32 noundef %3970, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 212, ptr noundef %3973, ptr noundef %3976, ptr noundef %3979, i32 noundef %3981) #10
  br label %3983

3983:                                             ; preds = %3966, %3949
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %3984

3984:                                             ; preds = %3983
  br label %3985

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

3986:                                             ; No predecessors!
  br label %3987

3987:                                             ; preds = %3986
  br label %3988

3988:                                             ; preds = %3987, %3929
  br label %3989

3989:                                             ; preds = %3988
  br label %3990

3990:                                             ; preds = %3989
  br label %3991

3991:                                             ; preds = %3990
  %3992 = load i32, ptr @test_count, align 4, !tbaa !5
  %3993 = add nsw i32 %3992, 1
  store i32 %3993, ptr @test_count, align 4, !tbaa !5
  %3994 = load ptr, ptr %74, align 8, !tbaa !9
  %3995 = getelementptr inbounds %struct.s2n_connection, ptr %3994, i32 0, i32 52
  %3996 = getelementptr inbounds %struct.s2n_handshake, ptr %3995, i32 0, i32 0
  %3997 = load ptr, ptr %76, align 8, !tbaa !9
  %3998 = getelementptr inbounds %struct.s2n_connection, ptr %3997, i32 0, i32 52
  %3999 = getelementptr inbounds %struct.s2n_handshake, ptr %3998, i32 0, i32 0
  %4000 = load ptr, ptr %74, align 8, !tbaa !9
  %4001 = getelementptr inbounds %struct.s2n_connection, ptr %4000, i32 0, i32 52
  %4002 = getelementptr inbounds %struct.s2n_handshake, ptr %4001, i32 0, i32 0
  %4003 = getelementptr inbounds %struct.s2n_stuffer, ptr %4002, i32 0, i32 2
  %4004 = load i32, ptr %4003, align 4, !tbaa !45
  %4005 = load ptr, ptr %74, align 8, !tbaa !9
  %4006 = getelementptr inbounds %struct.s2n_connection, ptr %4005, i32 0, i32 52
  %4007 = getelementptr inbounds %struct.s2n_handshake, ptr %4006, i32 0, i32 0
  %4008 = getelementptr inbounds %struct.s2n_stuffer, ptr %4007, i32 0, i32 1
  %4009 = load i32, ptr %4008, align 8, !tbaa !46
  %4010 = sub i32 %4004, %4009
  %4011 = call i32 @s2n_stuffer_copy(ptr noundef %3996, ptr noundef %3999, i32 noundef %4010)
  %4012 = icmp eq i32 %4011, -1
  br i1 %4012, label %4013, label %4066

4013:                                             ; preds = %3991
  br label %4014

4014:                                             ; preds = %4013
  br label %4015

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

4022:                                             ; preds = %4015
  %4023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4024 = call i32 @fileno(ptr noundef %4023) #10
  %4025 = call i32 @isatty(i32 noundef %4024) #10
  %4026 = icmp ne i32 %4025, 0
  br i1 %4026, label %4027, label %4044

4027:                                             ; preds = %4022
  %4028 = load i32, ptr %93, align 4, !tbaa !5
  %4029 = call ptr @__errno_location() #11
  store i32 %4028, ptr %4029, align 4, !tbaa !5
  %4030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4031 = load i32, ptr @test_count, align 4, !tbaa !5
  %4032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call ptr @s2n_strerror(i32 noundef %4033, ptr noundef @.str.4)
  %4035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  %4037 = call ptr @s2n_strerror_debug(i32 noundef %4036, ptr noundef @.str.4)
  %4038 = call ptr @__errno_location() #11
  %4039 = load i32, ptr %4038, align 4, !tbaa !5
  %4040 = call ptr @strerror(i32 noundef %4039) #10
  %4041 = call ptr @__errno_location() #11
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4030, ptr noundef @.str.2, i32 noundef %4031, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4034, ptr noundef %4037, ptr noundef %4040, i32 noundef %4042) #10
  br label %4061

4044:                                             ; preds = %4022, %4015
  %4045 = load i32, ptr %93, align 4, !tbaa !5
  %4046 = call ptr @__errno_location() #11
  store i32 %4045, ptr %4046, align 4, !tbaa !5
  %4047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4048 = load i32, ptr @test_count, align 4, !tbaa !5
  %4049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror(i32 noundef %4050, ptr noundef @.str.4)
  %4052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call ptr @s2n_strerror_debug(i32 noundef %4053, ptr noundef @.str.4)
  %4055 = call ptr @__errno_location() #11
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call ptr @strerror(i32 noundef %4056) #10
  %4058 = call ptr @__errno_location() #11
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4047, ptr noundef @.str.5, i32 noundef %4048, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4051, ptr noundef %4054, ptr noundef %4057, i32 noundef %4059) #10
  br label %4061

4061:                                             ; preds = %4044, %4027
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  br label %4062

4062:                                             ; preds = %4061
  br label %4063

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

4064:                                             ; No predecessors!
  br label %4065

4065:                                             ; preds = %4064
  br label %4066

4066:                                             ; preds = %4065, %3991
  br label %4067

4067:                                             ; preds = %4066
  br label %4068

4068:                                             ; preds = %4067
  br label %4069

4069:                                             ; preds = %4068
  %4070 = load i32, ptr @test_count, align 4, !tbaa !5
  %4071 = add nsw i32 %4070, 1
  store i32 %4071, ptr @test_count, align 4, !tbaa !5
  %4072 = load ptr, ptr %76, align 8, !tbaa !9
  %4073 = call i32 @s2n_parse_client_hello(ptr noundef %4072)
  %4074 = icmp eq i32 %4073, -1
  br i1 %4074, label %4075, label %4128

4075:                                             ; preds = %4069
  br label %4076

4076:                                             ; preds = %4075
  br label %4077

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

4084:                                             ; preds = %4077
  %4085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4086 = call i32 @fileno(ptr noundef %4085) #10
  %4087 = call i32 @isatty(i32 noundef %4086) #10
  %4088 = icmp ne i32 %4087, 0
  br i1 %4088, label %4089, label %4106

4089:                                             ; preds = %4084
  %4090 = load i32, ptr %94, align 4, !tbaa !5
  %4091 = call ptr @__errno_location() #11
  store i32 %4090, ptr %4091, align 4, !tbaa !5
  %4092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4093 = load i32, ptr @test_count, align 4, !tbaa !5
  %4094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4095 = load i32, ptr %4094, align 4, !tbaa !5
  %4096 = call ptr @s2n_strerror(i32 noundef %4095, ptr noundef @.str.4)
  %4097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4098 = load i32, ptr %4097, align 4, !tbaa !5
  %4099 = call ptr @s2n_strerror_debug(i32 noundef %4098, ptr noundef @.str.4)
  %4100 = call ptr @__errno_location() #11
  %4101 = load i32, ptr %4100, align 4, !tbaa !5
  %4102 = call ptr @strerror(i32 noundef %4101) #10
  %4103 = call ptr @__errno_location() #11
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4092, ptr noundef @.str.2, i32 noundef %4093, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 215, ptr noundef %4096, ptr noundef %4099, ptr noundef %4102, i32 noundef %4104) #10
  br label %4123

4106:                                             ; preds = %4084, %4077
  %4107 = load i32, ptr %94, align 4, !tbaa !5
  %4108 = call ptr @__errno_location() #11
  store i32 %4107, ptr %4108, align 4, !tbaa !5
  %4109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4110 = load i32, ptr @test_count, align 4, !tbaa !5
  %4111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4112 = load i32, ptr %4111, align 4, !tbaa !5
  %4113 = call ptr @s2n_strerror(i32 noundef %4112, ptr noundef @.str.4)
  %4114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  %4116 = call ptr @s2n_strerror_debug(i32 noundef %4115, ptr noundef @.str.4)
  %4117 = call ptr @__errno_location() #11
  %4118 = load i32, ptr %4117, align 4, !tbaa !5
  %4119 = call ptr @strerror(i32 noundef %4118) #10
  %4120 = call ptr @__errno_location() #11
  %4121 = load i32, ptr %4120, align 4, !tbaa !5
  %4122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4109, ptr noundef @.str.5, i32 noundef %4110, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 215, ptr noundef %4113, ptr noundef %4116, ptr noundef %4119, i32 noundef %4121) #10
  br label %4123

4123:                                             ; preds = %4106, %4089
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %4124

4124:                                             ; preds = %4123
  br label %4125

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

4126:                                             ; No predecessors!
  br label %4127

4127:                                             ; preds = %4126
  br label %4128

4128:                                             ; preds = %4127, %4069
  br label %4129

4129:                                             ; preds = %4128
  br label %4130

4130:                                             ; preds = %4129
  br label %4131

4131:                                             ; preds = %4130
  %4132 = load i32, ptr @test_count, align 4, !tbaa !5
  %4133 = add nsw i32 %4132, 1
  store i32 %4133, ptr @test_count, align 4, !tbaa !5
  %4134 = load ptr, ptr %76, align 8, !tbaa !9
  %4135 = load ptr, ptr %76, align 8, !tbaa !9
  %4136 = getelementptr inbounds %struct.s2n_connection, ptr %4135, i32 0, i32 71
  %4137 = getelementptr inbounds %struct.s2n_client_hello, ptr %4136, i32 0, i32 1
  %4138 = call i32 @s2n_extension_list_process(i32 noundef 0, ptr noundef %4134, ptr noundef %4137)
  %4139 = icmp eq i32 %4138, -1
  br i1 %4139, label %4140, label %4193

4140:                                             ; preds = %4131
  br label %4141

4141:                                             ; preds = %4140
  br label %4142

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

4149:                                             ; preds = %4142
  %4150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4151 = call i32 @fileno(ptr noundef %4150) #10
  %4152 = call i32 @isatty(i32 noundef %4151) #10
  %4153 = icmp ne i32 %4152, 0
  br i1 %4153, label %4154, label %4171

4154:                                             ; preds = %4149
  %4155 = load i32, ptr %95, align 4, !tbaa !5
  %4156 = call ptr @__errno_location() #11
  store i32 %4155, ptr %4156, align 4, !tbaa !5
  %4157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4158 = load i32, ptr @test_count, align 4, !tbaa !5
  %4159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4160 = load i32, ptr %4159, align 4, !tbaa !5
  %4161 = call ptr @s2n_strerror(i32 noundef %4160, ptr noundef @.str.4)
  %4162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4163 = load i32, ptr %4162, align 4, !tbaa !5
  %4164 = call ptr @s2n_strerror_debug(i32 noundef %4163, ptr noundef @.str.4)
  %4165 = call ptr @__errno_location() #11
  %4166 = load i32, ptr %4165, align 4, !tbaa !5
  %4167 = call ptr @strerror(i32 noundef %4166) #10
  %4168 = call ptr @__errno_location() #11
  %4169 = load i32, ptr %4168, align 4, !tbaa !5
  %4170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4157, ptr noundef @.str.2, i32 noundef %4158, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4161, ptr noundef %4164, ptr noundef %4167, i32 noundef %4169) #10
  br label %4188

4171:                                             ; preds = %4149, %4142
  %4172 = load i32, ptr %95, align 4, !tbaa !5
  %4173 = call ptr @__errno_location() #11
  store i32 %4172, ptr %4173, align 4, !tbaa !5
  %4174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4175 = load i32, ptr @test_count, align 4, !tbaa !5
  %4176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4177 = load i32, ptr %4176, align 4, !tbaa !5
  %4178 = call ptr @s2n_strerror(i32 noundef %4177, ptr noundef @.str.4)
  %4179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4180 = load i32, ptr %4179, align 4, !tbaa !5
  %4181 = call ptr @s2n_strerror_debug(i32 noundef %4180, ptr noundef @.str.4)
  %4182 = call ptr @__errno_location() #11
  %4183 = load i32, ptr %4182, align 4, !tbaa !5
  %4184 = call ptr @strerror(i32 noundef %4183) #10
  %4185 = call ptr @__errno_location() #11
  %4186 = load i32, ptr %4185, align 4, !tbaa !5
  %4187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4174, ptr noundef @.str.5, i32 noundef %4175, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4178, ptr noundef %4181, ptr noundef %4184, i32 noundef %4186) #10
  br label %4188

4188:                                             ; preds = %4171, %4154
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %4189

4189:                                             ; preds = %4188
  br label %4190

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

4191:                                             ; No predecessors!
  br label %4192

4192:                                             ; preds = %4191
  br label %4193

4193:                                             ; preds = %4192, %4131
  br label %4194

4194:                                             ; preds = %4193
  br label %4195

4195:                                             ; preds = %4194
  br label %4196

4196:                                             ; preds = %4195
  %4197 = load i32, ptr @test_count, align 4, !tbaa !5
  %4198 = add nsw i32 %4197, 1
  store i32 %4198, ptr @test_count, align 4, !tbaa !5
  %4199 = load ptr, ptr %76, align 8, !tbaa !9
  %4200 = load i32, ptr %4199, align 8
  %4201 = lshr i32 %4200, 3
  %4202 = and i32 %4201, 1
  %4203 = icmp ne i32 %4202, 0
  br i1 %4203, label %4257, label %4204

4204:                                             ; preds = %4196
  br label %4205

4205:                                             ; preds = %4204
  br label %4206

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

4213:                                             ; preds = %4206
  %4214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4215 = call i32 @fileno(ptr noundef %4214) #10
  %4216 = call i32 @isatty(i32 noundef %4215) #10
  %4217 = icmp ne i32 %4216, 0
  br i1 %4217, label %4218, label %4235

4218:                                             ; preds = %4213
  %4219 = load i32, ptr %96, align 4, !tbaa !5
  %4220 = call ptr @__errno_location() #11
  store i32 %4219, ptr %4220, align 4, !tbaa !5
  %4221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4222 = load i32, ptr @test_count, align 4, !tbaa !5
  %4223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4224 = load i32, ptr %4223, align 4, !tbaa !5
  %4225 = call ptr @s2n_strerror(i32 noundef %4224, ptr noundef @.str.4)
  %4226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4227 = load i32, ptr %4226, align 4, !tbaa !5
  %4228 = call ptr @s2n_strerror_debug(i32 noundef %4227, ptr noundef @.str.4)
  %4229 = call ptr @__errno_location() #11
  %4230 = load i32, ptr %4229, align 4, !tbaa !5
  %4231 = call ptr @strerror(i32 noundef %4230) #10
  %4232 = call ptr @__errno_location() #11
  %4233 = load i32, ptr %4232, align 4, !tbaa !5
  %4234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4221, ptr noundef @.str.2, i32 noundef %4222, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4225, ptr noundef %4228, ptr noundef %4231, i32 noundef %4233) #10
  br label %4252

4235:                                             ; preds = %4213, %4206
  %4236 = load i32, ptr %96, align 4, !tbaa !5
  %4237 = call ptr @__errno_location() #11
  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() #11
  %4247 = load i32, ptr %4246, align 4, !tbaa !5
  %4248 = call ptr @strerror(i32 noundef %4247) #10
  %4249 = call ptr @__errno_location() #11
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4238, ptr noundef @.str.5, i32 noundef %4239, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4242, ptr noundef %4245, ptr noundef %4248, i32 noundef %4250) #10
  br label %4252

4252:                                             ; preds = %4235, %4218
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4253

4253:                                             ; preds = %4252
  br label %4254

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

4255:                                             ; No predecessors!
  br label %4256

4256:                                             ; preds = %4255
  br label %4257

4257:                                             ; preds = %4256, %4196
  br label %4258

4258:                                             ; preds = %4257
  br label %4259

4259:                                             ; preds = %4258
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 5, ptr %83) #10
  %4260 = call i32 @s2n_connection_ptr_free(ptr noundef %76)
  %4261 = getelementptr inbounds %struct.s2n_result, ptr %97, i32 0, i32 0
  store i32 %4260, ptr %4261, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  %4262 = call i32 @s2n_connection_ptr_free(ptr noundef %74)
  %4263 = getelementptr inbounds %struct.s2n_result, ptr %98, i32 0, i32 0
  store i32 %4262, ptr %4263, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #10
  %4264 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4264, ptr %99, align 8, !tbaa !9
  br label %4265

4265:                                             ; preds = %4259
  %4266 = load i32, ptr @test_count, align 4, !tbaa !5
  %4267 = add nsw i32 %4266, 1
  store i32 %4267, ptr @test_count, align 4, !tbaa !5
  %4268 = load ptr, ptr %99, align 8, !tbaa !9
  %4269 = icmp eq ptr %4268, null
  br i1 %4269, label %4270, label %4323

4270:                                             ; preds = %4265
  br label %4271

4271:                                             ; preds = %4270
  br label %4272

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

4279:                                             ; preds = %4272
  %4280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4281 = call i32 @fileno(ptr noundef %4280) #10
  %4282 = call i32 @isatty(i32 noundef %4281) #10
  %4283 = icmp ne i32 %4282, 0
  br i1 %4283, label %4284, label %4301

4284:                                             ; preds = %4279
  %4285 = load i32, ptr %100, align 4, !tbaa !5
  %4286 = call ptr @__errno_location() #11
  store i32 %4285, ptr %4286, align 4, !tbaa !5
  %4287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4288 = load i32, ptr @test_count, align 4, !tbaa !5
  %4289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror(i32 noundef %4290, ptr noundef @.str.4)
  %4292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @s2n_strerror_debug(i32 noundef %4293, ptr noundef @.str.4)
  %4295 = call ptr @__errno_location() #11
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @strerror(i32 noundef %4296) #10
  %4298 = call ptr @__errno_location() #11
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4287, ptr noundef @.str.2, i32 noundef %4288, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4291, ptr noundef %4294, ptr noundef %4297, i32 noundef %4299) #10
  br label %4318

4301:                                             ; preds = %4279, %4272
  %4302 = load i32, ptr %100, align 4, !tbaa !5
  %4303 = call ptr @__errno_location() #11
  store i32 %4302, ptr %4303, align 4, !tbaa !5
  %4304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4305 = load i32, ptr @test_count, align 4, !tbaa !5
  %4306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4307 = load i32, ptr %4306, align 4, !tbaa !5
  %4308 = call ptr @s2n_strerror(i32 noundef %4307, ptr noundef @.str.4)
  %4309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4310 = load i32, ptr %4309, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror_debug(i32 noundef %4310, ptr noundef @.str.4)
  %4312 = call ptr @__errno_location() #11
  %4313 = load i32, ptr %4312, align 4, !tbaa !5
  %4314 = call ptr @strerror(i32 noundef %4313) #10
  %4315 = call ptr @__errno_location() #11
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4304, ptr noundef @.str.5, i32 noundef %4305, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4308, ptr noundef %4311, ptr noundef %4314, i32 noundef %4316) #10
  br label %4318

4318:                                             ; preds = %4301, %4284
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %4319

4319:                                             ; preds = %4318
  br label %4320

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

4321:                                             ; No predecessors!
  br label %4322

4322:                                             ; preds = %4321
  br label %4323

4323:                                             ; preds = %4322, %4265
  br label %4324

4324:                                             ; preds = %4323
  br label %4325

4325:                                             ; preds = %4324
  br label %4326

4326:                                             ; preds = %4325
  %4327 = load i32, ptr @test_count, align 4, !tbaa !5
  %4328 = add nsw i32 %4327, 1
  store i32 %4328, ptr @test_count, align 4, !tbaa !5
  %4329 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 5), align 8, !tbaa !59
  %4330 = load ptr, ptr %99, align 8, !tbaa !9
  %4331 = call zeroext i1 %4329(ptr noundef %4330)
  br i1 %4331, label %4332, label %4385

4332:                                             ; preds = %4326
  br label %4333

4333:                                             ; preds = %4332
  br label %4334

4334:                                             ; preds = %4333
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  %4335 = call ptr @__errno_location() #11
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  store i32 %4336, ptr %101, align 4, !tbaa !5
  %4337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4338 = call i32 @s2n_print_stacktrace(ptr noundef %4337)
  %4339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4340 = trunc i8 %4339 to i1
  br i1 %4340, label %4341, label %4363

4341:                                             ; preds = %4334
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = call i32 @fileno(ptr noundef %4342) #10
  %4344 = call i32 @isatty(i32 noundef %4343) #10
  %4345 = icmp ne i32 %4344, 0
  br i1 %4345, label %4346, label %4363

4346:                                             ; preds = %4341
  %4347 = load i32, ptr %101, align 4, !tbaa !5
  %4348 = call ptr @__errno_location() #11
  store i32 %4347, ptr %4348, align 4, !tbaa !5
  %4349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4350 = load i32, ptr @test_count, align 4, !tbaa !5
  %4351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4352 = load i32, ptr %4351, align 4, !tbaa !5
  %4353 = call ptr @s2n_strerror(i32 noundef %4352, ptr noundef @.str.4)
  %4354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4355 = load i32, ptr %4354, align 4, !tbaa !5
  %4356 = call ptr @s2n_strerror_debug(i32 noundef %4355, ptr noundef @.str.4)
  %4357 = call ptr @__errno_location() #11
  %4358 = load i32, ptr %4357, align 4, !tbaa !5
  %4359 = call ptr @strerror(i32 noundef %4358) #10
  %4360 = call ptr @__errno_location() #11
  %4361 = load i32, ptr %4360, align 4, !tbaa !5
  %4362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4349, ptr noundef @.str.2, i32 noundef %4350, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 236, ptr noundef %4353, ptr noundef %4356, ptr noundef %4359, i32 noundef %4361) #10
  br label %4380

4363:                                             ; preds = %4341, %4334
  %4364 = load i32, ptr %101, align 4, !tbaa !5
  %4365 = call ptr @__errno_location() #11
  store i32 %4364, ptr %4365, align 4, !tbaa !5
  %4366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4367 = load i32, ptr @test_count, align 4, !tbaa !5
  %4368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = call ptr @s2n_strerror(i32 noundef %4369, ptr noundef @.str.4)
  %4371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4372 = load i32, ptr %4371, align 4, !tbaa !5
  %4373 = call ptr @s2n_strerror_debug(i32 noundef %4372, ptr noundef @.str.4)
  %4374 = call ptr @__errno_location() #11
  %4375 = load i32, ptr %4374, align 4, !tbaa !5
  %4376 = call ptr @strerror(i32 noundef %4375) #10
  %4377 = call ptr @__errno_location() #11
  %4378 = load i32, ptr %4377, align 4, !tbaa !5
  %4379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4366, ptr noundef @.str.5, i32 noundef %4367, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 236, ptr noundef %4370, ptr noundef %4373, ptr noundef %4376, i32 noundef %4378) #10
  br label %4380

4380:                                             ; preds = %4363, %4346
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %4381

4381:                                             ; preds = %4380
  br label %4382

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

4383:                                             ; No predecessors!
  br label %4384

4384:                                             ; preds = %4383
  br label %4385

4385:                                             ; preds = %4384, %4326
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

4387:                                             ; preds = %4386
  %4388 = load ptr, ptr %99, align 8, !tbaa !9
  %4389 = getelementptr inbounds %struct.s2n_connection, ptr %4388, i32 0, i32 52
  %4390 = getelementptr inbounds %struct.s2n_handshake, ptr %4389, i32 0, i32 11
  %4391 = load i8, ptr %4390, align 8
  %4392 = and i8 %4391, -9
  %4393 = or i8 %4392, 8
  store i8 %4393, ptr %4390, align 8
  br label %4394

4394:                                             ; preds = %4387
  %4395 = load i32, ptr @test_count, align 4, !tbaa !5
  %4396 = add nsw i32 %4395, 1
  store i32 %4396, ptr @test_count, align 4, !tbaa !5
  %4397 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 5), align 8, !tbaa !59
  %4398 = load ptr, ptr %99, align 8, !tbaa !9
  %4399 = call zeroext i1 %4397(ptr noundef %4398)
  br i1 %4399, label %4453, label %4400

4400:                                             ; preds = %4394
  br label %4401

4401:                                             ; preds = %4400
  br label %4402

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

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

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

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

4448:                                             ; preds = %4431, %4414
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4449

4449:                                             ; preds = %4448
  br label %4450

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

4451:                                             ; No predecessors!
  br label %4452

4452:                                             ; preds = %4451
  br label %4453

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

4454:                                             ; preds = %4453
  br label %4455

4455:                                             ; preds = %4454
  %4456 = call i32 @s2n_connection_ptr_free(ptr noundef %99)
  %4457 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  store i32 %4456, ptr %4457, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #10
  %4458 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4458, ptr %104, align 8, !tbaa !9
  br label %4459

4459:                                             ; preds = %4455
  %4460 = load i32, ptr @test_count, align 4, !tbaa !5
  %4461 = add nsw i32 %4460, 1
  store i32 %4461, ptr @test_count, align 4, !tbaa !5
  %4462 = load ptr, ptr %104, align 8, !tbaa !9
  %4463 = icmp eq ptr %4462, null
  br i1 %4463, label %4464, label %4517

4464:                                             ; preds = %4459
  br label %4465

4465:                                             ; preds = %4464
  br label %4466

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

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

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

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

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

4513:                                             ; preds = %4512
  br label %4514

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

4515:                                             ; No predecessors!
  br label %4516

4516:                                             ; preds = %4515
  br label %4517

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

4518:                                             ; preds = %4517
  br label %4519

4519:                                             ; preds = %4518
  %4520 = load ptr, ptr %104, align 8, !tbaa !9
  %4521 = getelementptr inbounds %struct.s2n_connection, ptr %4520, i32 0, i32 52
  %4522 = getelementptr inbounds %struct.s2n_handshake, ptr %4521, i32 0, i32 11
  %4523 = load i8, ptr %4522, align 8
  %4524 = and i8 %4523, -9
  %4525 = or i8 %4524, 8
  store i8 %4525, ptr %4522, align 8
  br label %4526

4526:                                             ; preds = %4519
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #10
  store i64 19, ptr %106, align 8, !tbaa !47
  %4527 = load i64, ptr %106, align 8, !tbaa !47
  %4528 = icmp ne i64 %4527, 0
  br i1 %4528, label %4529, label %4591

4529:                                             ; preds = %4526
  %4530 = load ptr, ptr %104, align 8, !tbaa !9
  %4531 = getelementptr inbounds %struct.s2n_connection, ptr %4530, i32 0, i32 52
  %4532 = getelementptr inbounds %struct.s2n_handshake, ptr %4531, i32 0, i32 4
  %4533 = getelementptr inbounds [48 x i8], ptr %4532, i64 0, i64 0
  %4534 = getelementptr inbounds [19 x i8], ptr %11, i64 0, i64 0
  %4535 = load i64, ptr %106, align 8, !tbaa !47
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %4533, ptr align 16 %4534, i64 %4535, i1 false)
  %4536 = icmp eq ptr %4533, null
  br i1 %4536, label %4537, label %4590

4537:                                             ; preds = %4529
  br label %4538

4538:                                             ; preds = %4537
  br label %4539

4539:                                             ; preds = %4538
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %4540 = call ptr @__errno_location() #11
  %4541 = load i32, ptr %4540, align 4, !tbaa !5
  store i32 %4541, ptr %107, align 4, !tbaa !5
  %4542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4543 = call i32 @s2n_print_stacktrace(ptr noundef %4542)
  %4544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4545 = trunc i8 %4544 to i1
  br i1 %4545, label %4546, label %4568

4546:                                             ; preds = %4539
  %4547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4548 = call i32 @fileno(ptr noundef %4547) #10
  %4549 = call i32 @isatty(i32 noundef %4548) #10
  %4550 = icmp ne i32 %4549, 0
  br i1 %4550, label %4551, label %4568

4551:                                             ; preds = %4546
  %4552 = load i32, ptr %107, align 4, !tbaa !5
  %4553 = call ptr @__errno_location() #11
  store i32 %4552, ptr %4553, align 4, !tbaa !5
  %4554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4555 = load i32, ptr @test_count, align 4, !tbaa !5
  %4556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4557 = load i32, ptr %4556, align 4, !tbaa !5
  %4558 = call ptr @s2n_strerror(i32 noundef %4557, ptr noundef @.str.4)
  %4559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  %4561 = call ptr @s2n_strerror_debug(i32 noundef %4560, ptr noundef @.str.4)
  %4562 = call ptr @__errno_location() #11
  %4563 = load i32, ptr %4562, align 4, !tbaa !5
  %4564 = call ptr @strerror(i32 noundef %4563) #10
  %4565 = call ptr @__errno_location() #11
  %4566 = load i32, ptr %4565, align 4, !tbaa !5
  %4567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4554, ptr noundef @.str.2, i32 noundef %4555, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 260, ptr noundef %4558, ptr noundef %4561, ptr noundef %4564, i32 noundef %4566) #10
  br label %4585

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

4585:                                             ; preds = %4568, %4551
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %4586

4586:                                             ; preds = %4585
  br label %4587

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

4588:                                             ; No predecessors!
  br label %4589

4589:                                             ; preds = %4588
  br label %4590

4590:                                             ; preds = %4589, %4529
  br label %4591

4591:                                             ; preds = %4590, %4526
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #10
  br label %4592

4592:                                             ; preds = %4591
  br label %4593

4593:                                             ; preds = %4592
  %4594 = load ptr, ptr %104, align 8, !tbaa !9
  %4595 = getelementptr inbounds %struct.s2n_connection, ptr %4594, i32 0, i32 52
  %4596 = getelementptr inbounds %struct.s2n_handshake, ptr %4595, i32 0, i32 5
  store i8 19, ptr %4596, align 8, !tbaa !60
  %4597 = load ptr, ptr %104, align 8, !tbaa !9
  %4598 = load i32, ptr %4597, align 8
  %4599 = and i32 %4598, -9
  %4600 = or i32 %4599, 0
  store i32 %4600, ptr %4597, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr %108) #10
  call void @llvm.memset.p0.i64(ptr align 8 %108, i8 0, i64 40, i1 false)
  br label %4601

4601:                                             ; preds = %4593
  %4602 = load i32, ptr @test_count, align 4, !tbaa !5
  %4603 = add nsw i32 %4602, 1
  store i32 %4603, ptr @test_count, align 4, !tbaa !5
  %4604 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %108, i32 noundef 0)
  %4605 = icmp eq i32 %4604, -1
  br i1 %4605, label %4606, label %4659

4606:                                             ; preds = %4601
  br label %4607

4607:                                             ; preds = %4606
  br label %4608

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

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

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

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

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

4655:                                             ; preds = %4654
  br label %4656

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

4657:                                             ; No predecessors!
  br label %4658

4658:                                             ; preds = %4657
  br label %4659

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

4660:                                             ; preds = %4659
  br label %4661

4661:                                             ; preds = %4660
  br label %4662

4662:                                             ; preds = %4661
  br label %4663

4663:                                             ; preds = %4662
  br label %4664

4664:                                             ; preds = %4663
  %4665 = load i32, ptr @test_count, align 4, !tbaa !5
  %4666 = add nsw i32 %4665, 1
  store i32 %4666, ptr @test_count, align 4, !tbaa !5
  %4667 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 3), align 8, !tbaa !61
  %4668 = load ptr, ptr %104, align 8, !tbaa !9
  %4669 = call i32 %4667(ptr noundef %4668, ptr noundef %108)
  %4670 = icmp eq i32 %4669, -1
  br i1 %4670, label %4724, label %4671

4671:                                             ; preds = %4664
  br label %4672

4672:                                             ; preds = %4671
  br label %4673

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

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

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

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

4719:                                             ; preds = %4702, %4685
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #10
  br label %4720

4720:                                             ; preds = %4719
  br label %4721

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

4722:                                             ; No predecessors!
  br label %4723

4723:                                             ; preds = %4722
  br label %4724

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

4725:                                             ; preds = %4724
  br label %4726

4726:                                             ; preds = %4725
  br label %4727

4727:                                             ; preds = %4726
  %4728 = load i32, ptr @test_count, align 4, !tbaa !5
  %4729 = add nsw i32 %4728, 1
  store i32 %4729, ptr @test_count, align 4, !tbaa !5
  %4730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4731 = load i32, ptr %4730, align 4, !tbaa !5
  %4732 = icmp eq i32 %4731, 335544398
  br i1 %4732, label %4786, label %4733

4733:                                             ; preds = %4727
  br label %4734

4734:                                             ; preds = %4733
  br label %4735

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

4742:                                             ; preds = %4735
  %4743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4744 = call i32 @fileno(ptr noundef %4743) #10
  %4745 = call i32 @isatty(i32 noundef %4744) #10
  %4746 = icmp ne i32 %4745, 0
  br i1 %4746, label %4747, label %4764

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

4764:                                             ; preds = %4742, %4735
  %4765 = load i32, ptr %111, align 4, !tbaa !5
  %4766 = call ptr @__errno_location() #11
  store i32 %4765, ptr %4766, align 4, !tbaa !5
  %4767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4768 = load i32, ptr @test_count, align 4, !tbaa !5
  %4769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call ptr @s2n_strerror(i32 noundef %4770, ptr noundef @.str.4)
  %4772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4773 = load i32, ptr %4772, align 4, !tbaa !5
  %4774 = call ptr @s2n_strerror_debug(i32 noundef %4773, ptr noundef @.str.4)
  %4775 = call ptr @__errno_location() #11
  %4776 = load i32, ptr %4775, align 4, !tbaa !5
  %4777 = call ptr @strerror(i32 noundef %4776) #10
  %4778 = call ptr @__errno_location() #11
  %4779 = load i32, ptr %4778, align 4, !tbaa !5
  %4780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4767, ptr noundef @.str.5, i32 noundef %4768, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 270, ptr noundef %4771, ptr noundef %4774, ptr noundef %4777, i32 noundef %4779) #10
  br label %4781

4781:                                             ; preds = %4764, %4747
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %4782

4782:                                             ; preds = %4781
  br label %4783

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

4784:                                             ; No predecessors!
  br label %4785

4785:                                             ; preds = %4784
  br label %4786

4786:                                             ; preds = %4785, %4727
  br label %4787

4787:                                             ; preds = %4786
  br label %4788

4788:                                             ; preds = %4787
  br label %4789

4789:                                             ; preds = %4788
  %4790 = load i32, ptr @test_count, align 4, !tbaa !5
  %4791 = add nsw i32 %4790, 1
  store i32 %4791, ptr @test_count, align 4, !tbaa !5
  %4792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = call ptr @s2n_strerror_debug(i32 noundef %4793, ptr noundef @.str.4)
  %4795 = icmp eq ptr %4794, null
  br i1 %4795, label %4796, label %4849

4796:                                             ; preds = %4789
  br label %4797

4797:                                             ; preds = %4796
  br label %4798

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

4805:                                             ; preds = %4798
  %4806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4807 = call i32 @fileno(ptr noundef %4806) #10
  %4808 = call i32 @isatty(i32 noundef %4807) #10
  %4809 = icmp ne i32 %4808, 0
  br i1 %4809, label %4810, label %4827

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

4827:                                             ; preds = %4805, %4798
  %4828 = load i32, ptr %112, align 4, !tbaa !5
  %4829 = call ptr @__errno_location() #11
  store i32 %4828, ptr %4829, align 4, !tbaa !5
  %4830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4831 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4833, ptr noundef @.str.4)
  %4835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4836 = load i32, ptr %4835, align 4, !tbaa !5
  %4837 = call ptr @s2n_strerror_debug(i32 noundef %4836, ptr noundef @.str.4)
  %4838 = call ptr @__errno_location() #11
  %4839 = load i32, ptr %4838, align 4, !tbaa !5
  %4840 = call ptr @strerror(i32 noundef %4839) #10
  %4841 = call ptr @__errno_location() #11
  %4842 = load i32, ptr %4841, align 4, !tbaa !5
  %4843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4830, ptr noundef @.str.5, i32 noundef %4831, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 270, ptr noundef %4834, ptr noundef %4837, ptr noundef %4840, i32 noundef %4842) #10
  br label %4844

4844:                                             ; preds = %4827, %4810
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %4845

4845:                                             ; preds = %4844
  br label %4846

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

4847:                                             ; No predecessors!
  br label %4848

4848:                                             ; preds = %4847
  br label %4849

4849:                                             ; preds = %4848, %4789
  br label %4850

4850:                                             ; preds = %4849
  br label %4851

4851:                                             ; preds = %4850
  br label %4852

4852:                                             ; preds = %4851
  br label %4853

4853:                                             ; preds = %4852
  br label %4854

4854:                                             ; preds = %4853
  %4855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4855, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4856 = call ptr @__errno_location() #11
  store i32 0, ptr %4856, align 4, !tbaa !5
  br label %4857

4857:                                             ; preds = %4854
  br label %4858

4858:                                             ; preds = %4857
  br label %4859

4859:                                             ; preds = %4858
  br label %4860

4860:                                             ; preds = %4859
  %4861 = call i32 @s2n_stuffer_free(ptr noundef %108)
  call void @llvm.lifetime.end.p0(i64 40, ptr %108) #10
  %4862 = load ptr, ptr %104, align 8, !tbaa !9
  %4863 = load i32, ptr %4862, align 8
  %4864 = and i32 %4863, -9
  %4865 = or i32 %4864, 8
  store i32 %4865, ptr %4862, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr %113) #10
  call void @llvm.memset.p0.i64(ptr align 8 %113, i8 0, i64 40, i1 false)
  br label %4866

4866:                                             ; preds = %4860
  %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 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %113, i32 noundef 0)
  %4870 = icmp eq i32 %4869, -1
  br i1 %4870, label %4871, label %4924

4871:                                             ; preds = %4866
  br label %4872

4872:                                             ; preds = %4871
  br label %4873

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

4880:                                             ; preds = %4873
  %4881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4882 = call i32 @fileno(ptr noundef %4881) #10
  %4883 = call i32 @isatty(i32 noundef %4882) #10
  %4884 = icmp ne i32 %4883, 0
  br i1 %4884, label %4885, label %4902

4885:                                             ; preds = %4880
  %4886 = load i32, ptr %114, align 4, !tbaa !5
  %4887 = call ptr @__errno_location() #11
  store i32 %4886, ptr %4887, align 4, !tbaa !5
  %4888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4889 = load i32, ptr @test_count, align 4, !tbaa !5
  %4890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4891 = load i32, ptr %4890, align 4, !tbaa !5
  %4892 = call ptr @s2n_strerror(i32 noundef %4891, ptr noundef @.str.4)
  %4893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  %4895 = call ptr @s2n_strerror_debug(i32 noundef %4894, ptr noundef @.str.4)
  %4896 = call ptr @__errno_location() #11
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  %4898 = call ptr @strerror(i32 noundef %4897) #10
  %4899 = call ptr @__errno_location() #11
  %4900 = load i32, ptr %4899, align 4, !tbaa !5
  %4901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4888, ptr noundef @.str.2, i32 noundef %4889, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 278, ptr noundef %4892, ptr noundef %4895, ptr noundef %4898, i32 noundef %4900) #10
  br label %4919

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

4919:                                             ; preds = %4902, %4885
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %4920

4920:                                             ; preds = %4919
  br label %4921

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

4922:                                             ; No predecessors!
  br label %4923

4923:                                             ; preds = %4922
  br label %4924

4924:                                             ; preds = %4923, %4866
  br label %4925

4925:                                             ; preds = %4924
  br label %4926

4926:                                             ; preds = %4925
  br label %4927

4927:                                             ; preds = %4926
  %4928 = load i32, ptr @test_count, align 4, !tbaa !5
  %4929 = add nsw i32 %4928, 1
  store i32 %4929, ptr @test_count, align 4, !tbaa !5
  %4930 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 3), align 8, !tbaa !61
  %4931 = load ptr, ptr %104, align 8, !tbaa !9
  %4932 = call i32 %4930(ptr noundef %4931, ptr noundef %113)
  %4933 = icmp eq i32 %4932, -1
  br i1 %4933, label %4934, label %4987

4934:                                             ; preds = %4927
  br label %4935

4935:                                             ; preds = %4934
  br label %4936

4936:                                             ; preds = %4935
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #10
  %4937 = call ptr @__errno_location() #11
  %4938 = load i32, ptr %4937, align 4, !tbaa !5
  store i32 %4938, ptr %115, align 4, !tbaa !5
  %4939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4940 = call i32 @s2n_print_stacktrace(ptr noundef %4939)
  %4941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4942 = trunc i8 %4941 to i1
  br i1 %4942, label %4943, label %4965

4943:                                             ; preds = %4936
  %4944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4945 = call i32 @fileno(ptr noundef %4944) #10
  %4946 = call i32 @isatty(i32 noundef %4945) #10
  %4947 = icmp ne i32 %4946, 0
  br i1 %4947, label %4948, label %4965

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

4965:                                             ; preds = %4943, %4936
  %4966 = load i32, ptr %115, align 4, !tbaa !5
  %4967 = call ptr @__errno_location() #11
  store i32 %4966, ptr %4967, align 4, !tbaa !5
  %4968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4969 = load i32, ptr @test_count, align 4, !tbaa !5
  %4970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4971 = load i32, ptr %4970, align 4, !tbaa !5
  %4972 = call ptr @s2n_strerror(i32 noundef %4971, ptr noundef @.str.4)
  %4973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4974 = load i32, ptr %4973, align 4, !tbaa !5
  %4975 = call ptr @s2n_strerror_debug(i32 noundef %4974, ptr noundef @.str.4)
  %4976 = call ptr @__errno_location() #11
  %4977 = load i32, ptr %4976, align 4, !tbaa !5
  %4978 = call ptr @strerror(i32 noundef %4977) #10
  %4979 = call ptr @__errno_location() #11
  %4980 = load i32, ptr %4979, align 4, !tbaa !5
  %4981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4968, ptr noundef @.str.5, i32 noundef %4969, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 279, ptr noundef %4972, ptr noundef %4975, ptr noundef %4978, i32 noundef %4980) #10
  br label %4982

4982:                                             ; preds = %4965, %4948
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  br label %4983

4983:                                             ; preds = %4982
  br label %4984

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

4985:                                             ; No predecessors!
  br label %4986

4986:                                             ; preds = %4985
  br label %4987

4987:                                             ; preds = %4986, %4927
  br label %4988

4988:                                             ; preds = %4987
  br label %4989

4989:                                             ; preds = %4988
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #10
  store i8 0, ptr %116, align 1, !tbaa !52
  br label %4990

4990:                                             ; preds = %4989
  %4991 = load i32, ptr @test_count, align 4, !tbaa !5
  %4992 = add nsw i32 %4991, 1
  store i32 %4992, ptr @test_count, align 4, !tbaa !5
  %4993 = call i32 @s2n_stuffer_read_uint8(ptr noundef %113, ptr noundef %116)
  %4994 = icmp eq i32 %4993, -1
  br i1 %4994, label %4995, label %5048

4995:                                             ; preds = %4990
  br label %4996

4996:                                             ; preds = %4995
  br label %4997

4997:                                             ; preds = %4996
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %4998 = call ptr @__errno_location() #11
  %4999 = load i32, ptr %4998, align 4, !tbaa !5
  store i32 %4999, ptr %117, align 4, !tbaa !5
  %5000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5001 = call i32 @s2n_print_stacktrace(ptr noundef %5000)
  %5002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5003 = trunc i8 %5002 to i1
  br i1 %5003, label %5004, label %5026

5004:                                             ; preds = %4997
  %5005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5006 = call i32 @fileno(ptr noundef %5005) #10
  %5007 = call i32 @isatty(i32 noundef %5006) #10
  %5008 = icmp ne i32 %5007, 0
  br i1 %5008, label %5009, label %5026

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

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

5043:                                             ; preds = %5026, %5009
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %5044

5044:                                             ; preds = %5043
  br label %5045

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

5046:                                             ; No predecessors!
  br label %5047

5047:                                             ; preds = %5046
  br label %5048

5048:                                             ; preds = %5047, %4990
  br label %5049

5049:                                             ; preds = %5048
  br label %5050

5050:                                             ; preds = %5049
  br label %5051

5051:                                             ; preds = %5050
  %5052 = load i32, ptr @test_count, align 4, !tbaa !5
  %5053 = add nsw i32 %5052, 1
  store i32 %5053, ptr @test_count, align 4, !tbaa !5
  %5054 = load i8, ptr %116, align 1, !tbaa !52
  %5055 = zext i8 %5054 to i64
  %5056 = icmp eq i64 %5055, 19
  br i1 %5056, label %5110, label %5057

5057:                                             ; preds = %5051
  br label %5058

5058:                                             ; preds = %5057
  br label %5059

5059:                                             ; preds = %5058
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %5060 = call ptr @__errno_location() #11
  %5061 = load i32, ptr %5060, align 4, !tbaa !5
  store i32 %5061, ptr %118, align 4, !tbaa !5
  %5062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5063 = call i32 @s2n_print_stacktrace(ptr noundef %5062)
  %5064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5065 = trunc i8 %5064 to i1
  br i1 %5065, label %5066, label %5088

5066:                                             ; preds = %5059
  %5067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5068 = call i32 @fileno(ptr noundef %5067) #10
  %5069 = call i32 @isatty(i32 noundef %5068) #10
  %5070 = icmp ne i32 %5069, 0
  br i1 %5070, label %5071, label %5088

5071:                                             ; preds = %5066
  %5072 = load i32, ptr %118, align 4, !tbaa !5
  %5073 = call ptr @__errno_location() #11
  store i32 %5072, ptr %5073, align 4, !tbaa !5
  %5074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5075 = load i32, ptr @test_count, align 4, !tbaa !5
  %5076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5077 = load i32, ptr %5076, align 4, !tbaa !5
  %5078 = call ptr @s2n_strerror(i32 noundef %5077, ptr noundef @.str.4)
  %5079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5080 = load i32, ptr %5079, align 4, !tbaa !5
  %5081 = call ptr @s2n_strerror_debug(i32 noundef %5080, ptr noundef @.str.4)
  %5082 = call ptr @__errno_location() #11
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call ptr @strerror(i32 noundef %5083) #10
  %5085 = call ptr @__errno_location() #11
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5074, ptr noundef @.str.2, i32 noundef %5075, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5078, ptr noundef %5081, ptr noundef %5084, i32 noundef %5086) #10
  br label %5105

5088:                                             ; preds = %5066, %5059
  %5089 = load i32, ptr %118, align 4, !tbaa !5
  %5090 = call ptr @__errno_location() #11
  store i32 %5089, ptr %5090, align 4, !tbaa !5
  %5091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5092 = load i32, ptr @test_count, align 4, !tbaa !5
  %5093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5094 = load i32, ptr %5093, align 4, !tbaa !5
  %5095 = call ptr @s2n_strerror(i32 noundef %5094, ptr noundef @.str.4)
  %5096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5097 = load i32, ptr %5096, align 4, !tbaa !5
  %5098 = call ptr @s2n_strerror_debug(i32 noundef %5097, ptr noundef @.str.4)
  %5099 = call ptr @__errno_location() #11
  %5100 = load i32, ptr %5099, align 4, !tbaa !5
  %5101 = call ptr @strerror(i32 noundef %5100) #10
  %5102 = call ptr @__errno_location() #11
  %5103 = load i32, ptr %5102, align 4, !tbaa !5
  %5104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5091, ptr noundef @.str.5, i32 noundef %5092, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5095, ptr noundef %5098, ptr noundef %5101, i32 noundef %5103) #10
  br label %5105

5105:                                             ; preds = %5088, %5071
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %5106

5106:                                             ; preds = %5105
  br label %5107

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

5108:                                             ; No predecessors!
  br label %5109

5109:                                             ; preds = %5108
  br label %5110

5110:                                             ; preds = %5109, %5051
  br label %5111

5111:                                             ; preds = %5110
  br label %5112

5112:                                             ; preds = %5111
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #10
  %5113 = load i8, ptr %116, align 1, !tbaa !52
  %5114 = zext i8 %5113 to i32
  %5115 = call ptr @s2n_stuffer_raw_read(ptr noundef %113, i32 noundef %5114)
  store ptr %5115, ptr %119, align 8, !tbaa !9
  br label %5116

5116:                                             ; preds = %5112
  %5117 = load i8, ptr %116, align 1, !tbaa !52
  %5118 = zext i8 %5117 to i32
  %5119 = icmp ne i32 %5118, 0
  br i1 %5119, label %5120, label %5186

5120:                                             ; preds = %5116
  br label %5121

5121:                                             ; preds = %5120
  %5122 = load i32, ptr @test_count, align 4, !tbaa !5
  %5123 = add nsw i32 %5122, 1
  store i32 %5123, ptr @test_count, align 4, !tbaa !5
  %5124 = load ptr, ptr %119, align 8, !tbaa !9
  %5125 = getelementptr inbounds [19 x i8], ptr %11, i64 0, i64 0
  %5126 = load i8, ptr %116, align 1, !tbaa !52
  %5127 = zext i8 %5126 to i64
  %5128 = call i32 @memcmp(ptr noundef %5124, ptr noundef %5125, i64 noundef %5127) #13
  %5129 = icmp eq i32 %5128, 0
  br i1 %5129, label %5183, label %5130

5130:                                             ; preds = %5121
  br label %5131

5131:                                             ; preds = %5130
  br label %5132

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

5139:                                             ; preds = %5132
  %5140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5141 = call i32 @fileno(ptr noundef %5140) #10
  %5142 = call i32 @isatty(i32 noundef %5141) #10
  %5143 = icmp ne i32 %5142, 0
  br i1 %5143, label %5144, label %5161

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

5161:                                             ; preds = %5139, %5132
  %5162 = load i32, ptr %120, align 4, !tbaa !5
  %5163 = call ptr @__errno_location() #11
  store i32 %5162, ptr %5163, align 4, !tbaa !5
  %5164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5165 = load i32, ptr @test_count, align 4, !tbaa !5
  %5166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call ptr @s2n_strerror(i32 noundef %5167, ptr noundef @.str.4)
  %5169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5170 = load i32, ptr %5169, align 4, !tbaa !5
  %5171 = call ptr @s2n_strerror_debug(i32 noundef %5170, ptr noundef @.str.4)
  %5172 = call ptr @__errno_location() #11
  %5173 = load i32, ptr %5172, align 4, !tbaa !5
  %5174 = call ptr @strerror(i32 noundef %5173) #10
  %5175 = call ptr @__errno_location() #11
  %5176 = load i32, ptr %5175, align 4, !tbaa !5
  %5177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5164, ptr noundef @.str.5, i32 noundef %5165, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5168, ptr noundef %5171, ptr noundef %5174, i32 noundef %5176) #10
  br label %5178

5178:                                             ; preds = %5161, %5144
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

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

5181:                                             ; No predecessors!
  br label %5182

5182:                                             ; preds = %5181
  br label %5183

5183:                                             ; preds = %5182, %5121
  br label %5184

5184:                                             ; preds = %5183
  br label %5185

5185:                                             ; preds = %5184
  br label %5186

5186:                                             ; preds = %5185, %5116
  br label %5187

5187:                                             ; preds = %5186
  br label %5188

5188:                                             ; preds = %5187
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #10
  %5189 = call i32 @s2n_stuffer_free(ptr noundef %113)
  call void @llvm.lifetime.end.p0(i64 40, ptr %113) #10
  %5190 = call i32 @s2n_connection_ptr_free(ptr noundef %104)
  %5191 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %5190, ptr %5191, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  %5192 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5192, ptr %122, align 8, !tbaa !9
  br label %5193

5193:                                             ; preds = %5188
  %5194 = load i32, ptr @test_count, align 4, !tbaa !5
  %5195 = add nsw i32 %5194, 1
  store i32 %5195, ptr @test_count, align 4, !tbaa !5
  %5196 = load ptr, ptr %122, align 8, !tbaa !9
  %5197 = icmp eq ptr %5196, null
  br i1 %5197, label %5198, label %5251

5198:                                             ; preds = %5193
  br label %5199

5199:                                             ; preds = %5198
  br label %5200

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

5207:                                             ; preds = %5200
  %5208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5209 = call i32 @fileno(ptr noundef %5208) #10
  %5210 = call i32 @isatty(i32 noundef %5209) #10
  %5211 = icmp ne i32 %5210, 0
  br i1 %5211, label %5212, label %5229

5212:                                             ; preds = %5207
  %5213 = load i32, ptr %123, align 4, !tbaa !5
  %5214 = call ptr @__errno_location() #11
  store i32 %5213, ptr %5214, align 4, !tbaa !5
  %5215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5216 = load i32, ptr @test_count, align 4, !tbaa !5
  %5217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5218 = load i32, ptr %5217, align 4, !tbaa !5
  %5219 = call ptr @s2n_strerror(i32 noundef %5218, ptr noundef @.str.4)
  %5220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @s2n_strerror_debug(i32 noundef %5221, ptr noundef @.str.4)
  %5223 = call ptr @__errno_location() #11
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call ptr @strerror(i32 noundef %5224) #10
  %5226 = call ptr @__errno_location() #11
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5215, ptr noundef @.str.2, i32 noundef %5216, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 298, ptr noundef %5219, ptr noundef %5222, ptr noundef %5225, i32 noundef %5227) #10
  br label %5246

5229:                                             ; preds = %5207, %5200
  %5230 = load i32, ptr %123, align 4, !tbaa !5
  %5231 = call ptr @__errno_location() #11
  store i32 %5230, ptr %5231, align 4, !tbaa !5
  %5232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5233 = load i32, ptr @test_count, align 4, !tbaa !5
  %5234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5235 = load i32, ptr %5234, align 4, !tbaa !5
  %5236 = call ptr @s2n_strerror(i32 noundef %5235, ptr noundef @.str.4)
  %5237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5238 = load i32, ptr %5237, align 4, !tbaa !5
  %5239 = call ptr @s2n_strerror_debug(i32 noundef %5238, ptr noundef @.str.4)
  %5240 = call ptr @__errno_location() #11
  %5241 = load i32, ptr %5240, align 4, !tbaa !5
  %5242 = call ptr @strerror(i32 noundef %5241) #10
  %5243 = call ptr @__errno_location() #11
  %5244 = load i32, ptr %5243, align 4, !tbaa !5
  %5245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5232, ptr noundef @.str.5, i32 noundef %5233, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 298, ptr noundef %5236, ptr noundef %5239, ptr noundef %5242, i32 noundef %5244) #10
  br label %5246

5246:                                             ; preds = %5229, %5212
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %5247

5247:                                             ; preds = %5246
  br label %5248

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

5249:                                             ; No predecessors!
  br label %5250

5250:                                             ; preds = %5249
  br label %5251

5251:                                             ; preds = %5250, %5193
  br label %5252

5252:                                             ; preds = %5251
  br label %5253

5253:                                             ; preds = %5252
  %5254 = load ptr, ptr %122, align 8, !tbaa !9
  %5255 = load i32, ptr %5254, align 8
  %5256 = and i32 %5255, -9
  %5257 = or i32 %5256, 8
  store i32 %5257, ptr %5254, align 8
  %5258 = load ptr, ptr %122, align 8, !tbaa !9
  %5259 = getelementptr inbounds %struct.s2n_connection, ptr %5258, i32 0, i32 52
  %5260 = getelementptr inbounds %struct.s2n_handshake, ptr %5259, i32 0, i32 11
  %5261 = load i8, ptr %5260, align 8
  %5262 = and i8 %5261, -9
  %5263 = or i8 %5262, 8
  store i8 %5263, ptr %5260, align 8
  br label %5264

5264:                                             ; preds = %5253
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  store i64 19, ptr %124, align 8, !tbaa !47
  %5265 = load i64, ptr %124, align 8, !tbaa !47
  %5266 = icmp ne i64 %5265, 0
  br i1 %5266, label %5267, label %5329

5267:                                             ; preds = %5264
  %5268 = load ptr, ptr %122, align 8, !tbaa !9
  %5269 = getelementptr inbounds %struct.s2n_connection, ptr %5268, i32 0, i32 52
  %5270 = getelementptr inbounds %struct.s2n_handshake, ptr %5269, i32 0, i32 4
  %5271 = getelementptr inbounds [48 x i8], ptr %5270, i64 0, i64 0
  %5272 = getelementptr inbounds [19 x i8], ptr %11, i64 0, i64 0
  %5273 = load i64, ptr %124, align 8, !tbaa !47
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %5271, ptr align 16 %5272, i64 %5273, i1 false)
  %5274 = icmp eq ptr %5271, null
  br i1 %5274, label %5275, label %5328

5275:                                             ; preds = %5267
  br label %5276

5276:                                             ; preds = %5275
  br label %5277

5277:                                             ; preds = %5276
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %5278 = call ptr @__errno_location() #11
  %5279 = load i32, ptr %5278, align 4, !tbaa !5
  store i32 %5279, ptr %125, align 4, !tbaa !5
  %5280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5281 = call i32 @s2n_print_stacktrace(ptr noundef %5280)
  %5282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5283 = trunc i8 %5282 to i1
  br i1 %5283, label %5284, label %5306

5284:                                             ; preds = %5277
  %5285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5286 = call i32 @fileno(ptr noundef %5285) #10
  %5287 = call i32 @isatty(i32 noundef %5286) #10
  %5288 = icmp ne i32 %5287, 0
  br i1 %5288, label %5289, label %5306

5289:                                             ; preds = %5284
  %5290 = load i32, ptr %125, align 4, !tbaa !5
  %5291 = call ptr @__errno_location() #11
  store i32 %5290, ptr %5291, align 4, !tbaa !5
  %5292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5293 = load i32, ptr @test_count, align 4, !tbaa !5
  %5294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5295 = load i32, ptr %5294, align 4, !tbaa !5
  %5296 = call ptr @s2n_strerror(i32 noundef %5295, ptr noundef @.str.4)
  %5297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5298 = load i32, ptr %5297, align 4, !tbaa !5
  %5299 = call ptr @s2n_strerror_debug(i32 noundef %5298, ptr noundef @.str.4)
  %5300 = call ptr @__errno_location() #11
  %5301 = load i32, ptr %5300, align 4, !tbaa !5
  %5302 = call ptr @strerror(i32 noundef %5301) #10
  %5303 = call ptr @__errno_location() #11
  %5304 = load i32, ptr %5303, align 4, !tbaa !5
  %5305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5292, ptr noundef @.str.2, i32 noundef %5293, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 304, ptr noundef %5296, ptr noundef %5299, ptr noundef %5302, i32 noundef %5304) #10
  br label %5323

5306:                                             ; preds = %5284, %5277
  %5307 = load i32, ptr %125, align 4, !tbaa !5
  %5308 = call ptr @__errno_location() #11
  store i32 %5307, ptr %5308, align 4, !tbaa !5
  %5309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5310 = load i32, ptr @test_count, align 4, !tbaa !5
  %5311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5312 = load i32, ptr %5311, align 4, !tbaa !5
  %5313 = call ptr @s2n_strerror(i32 noundef %5312, ptr noundef @.str.4)
  %5314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5315 = load i32, ptr %5314, align 4, !tbaa !5
  %5316 = call ptr @s2n_strerror_debug(i32 noundef %5315, ptr noundef @.str.4)
  %5317 = call ptr @__errno_location() #11
  %5318 = load i32, ptr %5317, align 4, !tbaa !5
  %5319 = call ptr @strerror(i32 noundef %5318) #10
  %5320 = call ptr @__errno_location() #11
  %5321 = load i32, ptr %5320, align 4, !tbaa !5
  %5322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5309, ptr noundef @.str.5, i32 noundef %5310, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 304, ptr noundef %5313, ptr noundef %5316, ptr noundef %5319, i32 noundef %5321) #10
  br label %5323

5323:                                             ; preds = %5306, %5289
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %5324

5324:                                             ; preds = %5323
  br label %5325

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

5326:                                             ; No predecessors!
  br label %5327

5327:                                             ; preds = %5326
  br label %5328

5328:                                             ; preds = %5327, %5267
  br label %5329

5329:                                             ; preds = %5328, %5264
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  br label %5330

5330:                                             ; preds = %5329
  br label %5331

5331:                                             ; preds = %5330
  %5332 = load ptr, ptr %122, align 8, !tbaa !9
  %5333 = getelementptr inbounds %struct.s2n_connection, ptr %5332, i32 0, i32 52
  %5334 = getelementptr inbounds %struct.s2n_handshake, ptr %5333, i32 0, i32 5
  store i8 19, ptr %5334, align 8, !tbaa !60
  br label %5335

5335:                                             ; preds = %5331
  %5336 = load i32, ptr @test_count, align 4, !tbaa !5
  %5337 = add nsw i32 %5336, 1
  store i32 %5337, ptr @test_count, align 4, !tbaa !5
  %5338 = load ptr, ptr %122, align 8, !tbaa !9
  %5339 = call i32 @s2n_client_hello_send(ptr noundef %5338)
  %5340 = icmp eq i32 %5339, -1
  br i1 %5340, label %5341, label %5394

5341:                                             ; preds = %5335
  br label %5342

5342:                                             ; preds = %5341
  br label %5343

5343:                                             ; preds = %5342
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %5344 = call ptr @__errno_location() #11
  %5345 = load i32, ptr %5344, align 4, !tbaa !5
  store i32 %5345, ptr %126, align 4, !tbaa !5
  %5346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5347 = call i32 @s2n_print_stacktrace(ptr noundef %5346)
  %5348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5349 = trunc i8 %5348 to i1
  br i1 %5349, label %5350, label %5372

5350:                                             ; preds = %5343
  %5351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5352 = call i32 @fileno(ptr noundef %5351) #10
  %5353 = call i32 @isatty(i32 noundef %5352) #10
  %5354 = icmp ne i32 %5353, 0
  br i1 %5354, label %5355, label %5372

5355:                                             ; preds = %5350
  %5356 = load i32, ptr %126, align 4, !tbaa !5
  %5357 = call ptr @__errno_location() #11
  store i32 %5356, ptr %5357, align 4, !tbaa !5
  %5358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5359 = load i32, ptr @test_count, align 4, !tbaa !5
  %5360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5361 = load i32, ptr %5360, align 4, !tbaa !5
  %5362 = call ptr @s2n_strerror(i32 noundef %5361, ptr noundef @.str.4)
  %5363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5364 = load i32, ptr %5363, align 4, !tbaa !5
  %5365 = call ptr @s2n_strerror_debug(i32 noundef %5364, ptr noundef @.str.4)
  %5366 = call ptr @__errno_location() #11
  %5367 = load i32, ptr %5366, align 4, !tbaa !5
  %5368 = call ptr @strerror(i32 noundef %5367) #10
  %5369 = call ptr @__errno_location() #11
  %5370 = load i32, ptr %5369, align 4, !tbaa !5
  %5371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5358, ptr noundef @.str.2, i32 noundef %5359, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 307, ptr noundef %5362, ptr noundef %5365, ptr noundef %5368, i32 noundef %5370) #10
  br label %5389

5372:                                             ; preds = %5350, %5343
  %5373 = load i32, ptr %126, align 4, !tbaa !5
  %5374 = call ptr @__errno_location() #11
  store i32 %5373, ptr %5374, align 4, !tbaa !5
  %5375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5376 = load i32, ptr @test_count, align 4, !tbaa !5
  %5377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5378 = load i32, ptr %5377, align 4, !tbaa !5
  %5379 = call ptr @s2n_strerror(i32 noundef %5378, ptr noundef @.str.4)
  %5380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5381 = load i32, ptr %5380, align 4, !tbaa !5
  %5382 = call ptr @s2n_strerror_debug(i32 noundef %5381, ptr noundef @.str.4)
  %5383 = call ptr @__errno_location() #11
  %5384 = load i32, ptr %5383, align 4, !tbaa !5
  %5385 = call ptr @strerror(i32 noundef %5384) #10
  %5386 = call ptr @__errno_location() #11
  %5387 = load i32, ptr %5386, align 4, !tbaa !5
  %5388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5375, ptr noundef @.str.5, i32 noundef %5376, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 307, ptr noundef %5379, ptr noundef %5382, ptr noundef %5385, i32 noundef %5387) #10
  br label %5389

5389:                                             ; preds = %5372, %5355
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %5390

5390:                                             ; preds = %5389
  br label %5391

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

5392:                                             ; No predecessors!
  br label %5393

5393:                                             ; preds = %5392
  br label %5394

5394:                                             ; preds = %5393, %5335
  br label %5395

5395:                                             ; preds = %5394
  br label %5396

5396:                                             ; preds = %5395
  br label %5397

5397:                                             ; preds = %5396
  %5398 = load i32, ptr @test_count, align 4, !tbaa !5
  %5399 = add nsw i32 %5398, 1
  store i32 %5399, ptr @test_count, align 4, !tbaa !5
  %5400 = load ptr, ptr %122, align 8, !tbaa !9
  %5401 = call i32 @s2n_parse_client_hello(ptr noundef %5400)
  %5402 = icmp eq i32 %5401, -1
  br i1 %5402, label %5403, label %5456

5403:                                             ; preds = %5397
  br label %5404

5404:                                             ; preds = %5403
  br label %5405

5405:                                             ; preds = %5404
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  %5406 = call ptr @__errno_location() #11
  %5407 = load i32, ptr %5406, align 4, !tbaa !5
  store i32 %5407, ptr %127, align 4, !tbaa !5
  %5408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5409 = call i32 @s2n_print_stacktrace(ptr noundef %5408)
  %5410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5411 = trunc i8 %5410 to i1
  br i1 %5411, label %5412, label %5434

5412:                                             ; preds = %5405
  %5413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5414 = call i32 @fileno(ptr noundef %5413) #10
  %5415 = call i32 @isatty(i32 noundef %5414) #10
  %5416 = icmp ne i32 %5415, 0
  br i1 %5416, label %5417, label %5434

5417:                                             ; preds = %5412
  %5418 = load i32, ptr %127, align 4, !tbaa !5
  %5419 = call ptr @__errno_location() #11
  store i32 %5418, ptr %5419, align 4, !tbaa !5
  %5420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5421 = load i32, ptr @test_count, align 4, !tbaa !5
  %5422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5423 = load i32, ptr %5422, align 4, !tbaa !5
  %5424 = call ptr @s2n_strerror(i32 noundef %5423, ptr noundef @.str.4)
  %5425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5426 = load i32, ptr %5425, align 4, !tbaa !5
  %5427 = call ptr @s2n_strerror_debug(i32 noundef %5426, ptr noundef @.str.4)
  %5428 = call ptr @__errno_location() #11
  %5429 = load i32, ptr %5428, align 4, !tbaa !5
  %5430 = call ptr @strerror(i32 noundef %5429) #10
  %5431 = call ptr @__errno_location() #11
  %5432 = load i32, ptr %5431, align 4, !tbaa !5
  %5433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5420, ptr noundef @.str.2, i32 noundef %5421, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 308, ptr noundef %5424, ptr noundef %5427, ptr noundef %5430, i32 noundef %5432) #10
  br label %5451

5434:                                             ; preds = %5412, %5405
  %5435 = load i32, ptr %127, align 4, !tbaa !5
  %5436 = call ptr @__errno_location() #11
  store i32 %5435, ptr %5436, align 4, !tbaa !5
  %5437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5438 = load i32, ptr @test_count, align 4, !tbaa !5
  %5439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5440 = load i32, ptr %5439, align 4, !tbaa !5
  %5441 = call ptr @s2n_strerror(i32 noundef %5440, ptr noundef @.str.4)
  %5442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5443 = load i32, ptr %5442, align 4, !tbaa !5
  %5444 = call ptr @s2n_strerror_debug(i32 noundef %5443, ptr noundef @.str.4)
  %5445 = call ptr @__errno_location() #11
  %5446 = load i32, ptr %5445, align 4, !tbaa !5
  %5447 = call ptr @strerror(i32 noundef %5446) #10
  %5448 = call ptr @__errno_location() #11
  %5449 = load i32, ptr %5448, align 4, !tbaa !5
  %5450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5437, ptr noundef @.str.5, i32 noundef %5438, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 308, ptr noundef %5441, ptr noundef %5444, ptr noundef %5447, i32 noundef %5449) #10
  br label %5451

5451:                                             ; preds = %5434, %5417
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %5452

5452:                                             ; preds = %5451
  br label %5453

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

5454:                                             ; No predecessors!
  br label %5455

5455:                                             ; preds = %5454
  br label %5456

5456:                                             ; preds = %5455, %5397
  br label %5457

5457:                                             ; preds = %5456
  br label %5458

5458:                                             ; preds = %5457
  call void @llvm.lifetime.start.p0(i64 1, ptr %128) #10
  store i8 0, ptr %128, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #10
  store i64 0, ptr %129, align 8, !tbaa !47
  br label %5459

5459:                                             ; preds = %5483, %5458
  %5460 = load i64, ptr %129, align 8, !tbaa !47
  %5461 = load ptr, ptr %122, align 8, !tbaa !9
  %5462 = getelementptr inbounds %struct.s2n_connection, ptr %5461, i32 0, i32 71
  %5463 = getelementptr inbounds %struct.s2n_client_hello, ptr %5462, i32 0, i32 2
  %5464 = getelementptr inbounds %struct.s2n_blob, ptr %5463, i32 0, i32 1
  %5465 = load i32, ptr %5464, align 8, !tbaa !48
  %5466 = zext i32 %5465 to i64
  %5467 = icmp ult i64 %5460, %5466
  br i1 %5467, label %5469, label %5468

5468:                                             ; preds = %5459
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #10
  br label %5486

5469:                                             ; preds = %5459
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #10
  %5470 = load ptr, ptr %122, align 8, !tbaa !9
  %5471 = getelementptr inbounds %struct.s2n_connection, ptr %5470, i32 0, i32 71
  %5472 = getelementptr inbounds %struct.s2n_client_hello, ptr %5471, i32 0, i32 2
  %5473 = getelementptr inbounds %struct.s2n_blob, ptr %5472, i32 0, i32 0
  %5474 = load ptr, ptr %5473, align 8, !tbaa !49
  %5475 = load i64, ptr %129, align 8, !tbaa !47
  %5476 = getelementptr inbounds i8, ptr %5474, i64 %5475
  store ptr %5476, ptr %130, align 8, !tbaa !9
  %5477 = load ptr, ptr %130, align 8, !tbaa !9
  %5478 = getelementptr inbounds [2 x i8], ptr %10, i64 0, i64 0
  %5479 = call i32 @memcmp(ptr noundef %5477, ptr noundef %5478, i64 noundef 2) #13
  %5480 = icmp eq i32 %5479, 0
  br i1 %5480, label %5481, label %5482

5481:                                             ; preds = %5469
  store i8 1, ptr %128, align 1, !tbaa !11
  br label %5482

5482:                                             ; preds = %5481, %5469
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #10
  br label %5483

5483:                                             ; preds = %5482
  %5484 = load i64, ptr %129, align 8, !tbaa !47
  %5485 = add i64 %5484, 2
  store i64 %5485, ptr %129, align 8, !tbaa !47
  br label %5459, !llvm.loop !62

5486:                                             ; preds = %5468
  br label %5487

5487:                                             ; preds = %5486
  %5488 = load i32, ptr @test_count, align 4, !tbaa !5
  %5489 = add nsw i32 %5488, 1
  store i32 %5489, ptr @test_count, align 4, !tbaa !5
  %5490 = load i8, ptr %128, align 1, !tbaa !11, !range !13, !noundef !14
  %5491 = trunc i8 %5490 to i1
  br i1 %5491, label %5492, label %5545

5492:                                             ; preds = %5487
  br label %5493

5493:                                             ; preds = %5492
  br label %5494

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

5501:                                             ; preds = %5494
  %5502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5503 = call i32 @fileno(ptr noundef %5502) #10
  %5504 = call i32 @isatty(i32 noundef %5503) #10
  %5505 = icmp ne i32 %5504, 0
  br i1 %5505, label %5506, label %5523

5506:                                             ; preds = %5501
  %5507 = load i32, ptr %131, align 4, !tbaa !5
  %5508 = call ptr @__errno_location() #11
  store i32 %5507, ptr %5508, align 4, !tbaa !5
  %5509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5510 = load i32, ptr @test_count, align 4, !tbaa !5
  %5511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  %5513 = call ptr @s2n_strerror(i32 noundef %5512, ptr noundef @.str.4)
  %5514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5515 = load i32, ptr %5514, align 4, !tbaa !5
  %5516 = call ptr @s2n_strerror_debug(i32 noundef %5515, ptr noundef @.str.4)
  %5517 = call ptr @__errno_location() #11
  %5518 = load i32, ptr %5517, align 4, !tbaa !5
  %5519 = call ptr @strerror(i32 noundef %5518) #10
  %5520 = call ptr @__errno_location() #11
  %5521 = load i32, ptr %5520, align 4, !tbaa !5
  %5522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5509, ptr noundef @.str.2, i32 noundef %5510, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 318, ptr noundef %5513, ptr noundef %5516, ptr noundef %5519, i32 noundef %5521) #10
  br label %5540

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

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

5541:                                             ; preds = %5540
  br label %5542

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

5543:                                             ; No predecessors!
  br label %5544

5544:                                             ; preds = %5543
  br label %5545

5545:                                             ; preds = %5544, %5487
  br label %5546

5546:                                             ; preds = %5545
  br label %5547

5547:                                             ; preds = %5546
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #10
  %5548 = call i32 @s2n_connection_ptr_free(ptr noundef %122)
  %5549 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  store i32 %5548, ptr %5549, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #10
  %5550 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5550, ptr %133, align 8, !tbaa !9
  br label %5551

5551:                                             ; preds = %5547
  %5552 = load i32, ptr @test_count, align 4, !tbaa !5
  %5553 = add nsw i32 %5552, 1
  store i32 %5553, ptr @test_count, align 4, !tbaa !5
  %5554 = load ptr, ptr %133, align 8, !tbaa !9
  %5555 = icmp eq ptr %5554, null
  br i1 %5555, label %5556, label %5609

5556:                                             ; preds = %5551
  br label %5557

5557:                                             ; preds = %5556
  br label %5558

5558:                                             ; preds = %5557
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #10
  %5559 = call ptr @__errno_location() #11
  %5560 = load i32, ptr %5559, align 4, !tbaa !5
  store i32 %5560, ptr %134, align 4, !tbaa !5
  %5561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5562 = call i32 @s2n_print_stacktrace(ptr noundef %5561)
  %5563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5564 = trunc i8 %5563 to i1
  br i1 %5564, label %5565, label %5587

5565:                                             ; preds = %5558
  %5566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5567 = call i32 @fileno(ptr noundef %5566) #10
  %5568 = call i32 @isatty(i32 noundef %5567) #10
  %5569 = icmp ne i32 %5568, 0
  br i1 %5569, label %5570, label %5587

5570:                                             ; preds = %5565
  %5571 = load i32, ptr %134, align 4, !tbaa !5
  %5572 = call ptr @__errno_location() #11
  store i32 %5571, ptr %5572, align 4, !tbaa !5
  %5573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5574 = load i32, ptr @test_count, align 4, !tbaa !5
  %5575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5576 = load i32, ptr %5575, align 4, !tbaa !5
  %5577 = call ptr @s2n_strerror(i32 noundef %5576, ptr noundef @.str.4)
  %5578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5579 = load i32, ptr %5578, align 4, !tbaa !5
  %5580 = call ptr @s2n_strerror_debug(i32 noundef %5579, ptr noundef @.str.4)
  %5581 = call ptr @__errno_location() #11
  %5582 = load i32, ptr %5581, align 4, !tbaa !5
  %5583 = call ptr @strerror(i32 noundef %5582) #10
  %5584 = call ptr @__errno_location() #11
  %5585 = load i32, ptr %5584, align 4, !tbaa !5
  %5586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5573, ptr noundef @.str.2, i32 noundef %5574, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 334, ptr noundef %5577, ptr noundef %5580, ptr noundef %5583, i32 noundef %5585) #10
  br label %5604

5587:                                             ; preds = %5565, %5558
  %5588 = load i32, ptr %134, align 4, !tbaa !5
  %5589 = call ptr @__errno_location() #11
  store i32 %5588, ptr %5589, align 4, !tbaa !5
  %5590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5591 = load i32, ptr @test_count, align 4, !tbaa !5
  %5592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5593 = load i32, ptr %5592, align 4, !tbaa !5
  %5594 = call ptr @s2n_strerror(i32 noundef %5593, ptr noundef @.str.4)
  %5595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  %5597 = call ptr @s2n_strerror_debug(i32 noundef %5596, ptr noundef @.str.4)
  %5598 = call ptr @__errno_location() #11
  %5599 = load i32, ptr %5598, align 4, !tbaa !5
  %5600 = call ptr @strerror(i32 noundef %5599) #10
  %5601 = call ptr @__errno_location() #11
  %5602 = load i32, ptr %5601, align 4, !tbaa !5
  %5603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5590, ptr noundef @.str.5, i32 noundef %5591, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 334, ptr noundef %5594, ptr noundef %5597, ptr noundef %5600, i32 noundef %5602) #10
  br label %5604

5604:                                             ; preds = %5587, %5570
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #10
  br label %5605

5605:                                             ; preds = %5604
  br label %5606

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

5607:                                             ; No predecessors!
  br label %5608

5608:                                             ; preds = %5607
  br label %5609

5609:                                             ; preds = %5608, %5551
  br label %5610

5610:                                             ; preds = %5609
  br label %5611

5611:                                             ; preds = %5610
  %5612 = load ptr, ptr %133, align 8, !tbaa !9
  %5613 = getelementptr inbounds %struct.s2n_connection, ptr %5612, i32 0, i32 52
  %5614 = getelementptr inbounds %struct.s2n_handshake, ptr %5613, i32 0, i32 11
  %5615 = load i8, ptr %5614, align 8
  %5616 = and i8 %5615, -9
  %5617 = or i8 %5616, 8
  store i8 %5617, ptr %5614, align 8
  %5618 = load ptr, ptr %133, align 8, !tbaa !9
  %5619 = load i32, ptr %5618, align 8
  %5620 = and i32 %5619, -9
  %5621 = or i32 %5620, 8
  store i32 %5621, ptr %5618, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #10
  %5622 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5622, ptr %135, align 8, !tbaa !9
  br label %5623

5623:                                             ; preds = %5611
  %5624 = load i32, ptr @test_count, align 4, !tbaa !5
  %5625 = add nsw i32 %5624, 1
  store i32 %5625, ptr @test_count, align 4, !tbaa !5
  %5626 = load ptr, ptr %135, align 8, !tbaa !9
  %5627 = icmp eq ptr %5626, null
  br i1 %5627, label %5628, label %5681

5628:                                             ; preds = %5623
  br label %5629

5629:                                             ; preds = %5628
  br label %5630

5630:                                             ; preds = %5629
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %5631 = call ptr @__errno_location() #11
  %5632 = load i32, ptr %5631, align 4, !tbaa !5
  store i32 %5632, ptr %136, align 4, !tbaa !5
  %5633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5634 = call i32 @s2n_print_stacktrace(ptr noundef %5633)
  %5635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5636 = trunc i8 %5635 to i1
  br i1 %5636, label %5637, label %5659

5637:                                             ; preds = %5630
  %5638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5639 = call i32 @fileno(ptr noundef %5638) #10
  %5640 = call i32 @isatty(i32 noundef %5639) #10
  %5641 = icmp ne i32 %5640, 0
  br i1 %5641, label %5642, label %5659

5642:                                             ; preds = %5637
  %5643 = load i32, ptr %136, align 4, !tbaa !5
  %5644 = call ptr @__errno_location() #11
  store i32 %5643, ptr %5644, align 4, !tbaa !5
  %5645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5646 = load i32, ptr @test_count, align 4, !tbaa !5
  %5647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call ptr @s2n_strerror(i32 noundef %5648, ptr noundef @.str.4)
  %5650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call ptr @s2n_strerror_debug(i32 noundef %5651, ptr noundef @.str.4)
  %5653 = call ptr @__errno_location() #11
  %5654 = load i32, ptr %5653, align 4, !tbaa !5
  %5655 = call ptr @strerror(i32 noundef %5654) #10
  %5656 = call ptr @__errno_location() #11
  %5657 = load i32, ptr %5656, align 4, !tbaa !5
  %5658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5645, ptr noundef @.str.2, i32 noundef %5646, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 340, ptr noundef %5649, ptr noundef %5652, ptr noundef %5655, i32 noundef %5657) #10
  br label %5676

5659:                                             ; preds = %5637, %5630
  %5660 = load i32, ptr %136, align 4, !tbaa !5
  %5661 = call ptr @__errno_location() #11
  store i32 %5660, ptr %5661, align 4, !tbaa !5
  %5662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5663 = load i32, ptr @test_count, align 4, !tbaa !5
  %5664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call ptr @s2n_strerror(i32 noundef %5665, ptr noundef @.str.4)
  %5667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5668 = load i32, ptr %5667, align 4, !tbaa !5
  %5669 = call ptr @s2n_strerror_debug(i32 noundef %5668, ptr noundef @.str.4)
  %5670 = call ptr @__errno_location() #11
  %5671 = load i32, ptr %5670, align 4, !tbaa !5
  %5672 = call ptr @strerror(i32 noundef %5671) #10
  %5673 = call ptr @__errno_location() #11
  %5674 = load i32, ptr %5673, align 4, !tbaa !5
  %5675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5662, ptr noundef @.str.5, i32 noundef %5663, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 340, ptr noundef %5666, ptr noundef %5669, ptr noundef %5672, i32 noundef %5674) #10
  br label %5676

5676:                                             ; preds = %5659, %5642
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  br label %5677

5677:                                             ; preds = %5676
  br label %5678

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

5679:                                             ; No predecessors!
  br label %5680

5680:                                             ; preds = %5679
  br label %5681

5681:                                             ; preds = %5680, %5623
  br label %5682

5682:                                             ; preds = %5681
  br label %5683

5683:                                             ; preds = %5682
  %5684 = load ptr, ptr %135, align 8, !tbaa !9
  %5685 = getelementptr inbounds %struct.s2n_connection, ptr %5684, i32 0, i32 52
  %5686 = getelementptr inbounds %struct.s2n_handshake, ptr %5685, i32 0, i32 11
  %5687 = load i8, ptr %5686, align 8
  %5688 = and i8 %5687, -9
  %5689 = or i8 %5688, 8
  store i8 %5689, ptr %5686, align 8
  %5690 = load ptr, ptr %135, align 8, !tbaa !9
  %5691 = load i32, ptr %5690, align 8
  %5692 = and i32 %5691, -9
  %5693 = or i32 %5692, 8
  store i32 %5693, ptr %5690, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr %137) #10
  call void @llvm.memset.p0.i64(ptr align 8 %137, i8 0, i64 40, i1 false)
  br label %5694

5694:                                             ; preds = %5683
  %5695 = load i32, ptr @test_count, align 4, !tbaa !5
  %5696 = add nsw i32 %5695, 1
  store i32 %5696, ptr @test_count, align 4, !tbaa !5
  %5697 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %137, i32 noundef 0)
  %5698 = icmp eq i32 %5697, -1
  br i1 %5698, label %5699, label %5752

5699:                                             ; preds = %5694
  br label %5700

5700:                                             ; preds = %5699
  br label %5701

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

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

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

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

5747:                                             ; preds = %5730, %5713
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  br label %5748

5748:                                             ; preds = %5747
  br label %5749

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

5750:                                             ; No predecessors!
  br label %5751

5751:                                             ; preds = %5750
  br label %5752

5752:                                             ; preds = %5751, %5694
  br label %5753

5753:                                             ; preds = %5752
  br label %5754

5754:                                             ; preds = %5753
  br label %5755

5755:                                             ; preds = %5754
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #10
  store i64 19, ptr %139, align 8, !tbaa !47
  %5756 = load i64, ptr %139, align 8, !tbaa !47
  %5757 = icmp ne i64 %5756, 0
  br i1 %5757, label %5758, label %5820

5758:                                             ; preds = %5755
  %5759 = load ptr, ptr %133, align 8, !tbaa !9
  %5760 = getelementptr inbounds %struct.s2n_connection, ptr %5759, i32 0, i32 52
  %5761 = getelementptr inbounds %struct.s2n_handshake, ptr %5760, i32 0, i32 4
  %5762 = getelementptr inbounds [48 x i8], ptr %5761, i64 0, i64 0
  %5763 = getelementptr inbounds [19 x i8], ptr %11, i64 0, i64 0
  %5764 = load i64, ptr %139, align 8, !tbaa !47
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %5762, ptr align 16 %5763, i64 %5764, i1 false)
  %5765 = icmp eq ptr %5762, null
  br i1 %5765, label %5766, label %5819

5766:                                             ; preds = %5758
  br label %5767

5767:                                             ; preds = %5766
  br label %5768

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

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

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

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

5814:                                             ; preds = %5797, %5780
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #10
  br label %5815

5815:                                             ; preds = %5814
  br label %5816

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

5817:                                             ; No predecessors!
  br label %5818

5818:                                             ; preds = %5817
  br label %5819

5819:                                             ; preds = %5818, %5758
  br label %5820

5820:                                             ; preds = %5819, %5755
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #10
  br label %5821

5821:                                             ; preds = %5820
  br label %5822

5822:                                             ; preds = %5821
  %5823 = load ptr, ptr %133, align 8, !tbaa !9
  %5824 = getelementptr inbounds %struct.s2n_connection, ptr %5823, i32 0, i32 52
  %5825 = getelementptr inbounds %struct.s2n_handshake, ptr %5824, i32 0, i32 5
  store i8 19, ptr %5825, align 8, !tbaa !60
  br label %5826

5826:                                             ; preds = %5822
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #10
  store i64 19, ptr %141, align 8, !tbaa !47
  %5827 = load i64, ptr %141, align 8, !tbaa !47
  %5828 = icmp ne i64 %5827, 0
  br i1 %5828, label %5829, label %5891

5829:                                             ; preds = %5826
  %5830 = load ptr, ptr %135, align 8, !tbaa !9
  %5831 = getelementptr inbounds %struct.s2n_connection, ptr %5830, i32 0, i32 52
  %5832 = getelementptr inbounds %struct.s2n_handshake, ptr %5831, i32 0, i32 4
  %5833 = getelementptr inbounds [48 x i8], ptr %5832, i64 0, i64 0
  %5834 = getelementptr inbounds [19 x i8], ptr %11, i64 0, i64 0
  %5835 = load i64, ptr %141, align 8, !tbaa !47
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %5833, ptr align 16 %5834, i64 %5835, i1 false)
  %5836 = icmp eq ptr %5833, null
  br i1 %5836, label %5837, label %5890

5837:                                             ; preds = %5829
  br label %5838

5838:                                             ; preds = %5837
  br label %5839

5839:                                             ; preds = %5838
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %5840 = call ptr @__errno_location() #11
  %5841 = load i32, ptr %5840, align 4, !tbaa !5
  store i32 %5841, ptr %142, align 4, !tbaa !5
  %5842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5843 = call i32 @s2n_print_stacktrace(ptr noundef %5842)
  %5844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5845 = trunc i8 %5844 to i1
  br i1 %5845, label %5846, label %5868

5846:                                             ; preds = %5839
  %5847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5848 = call i32 @fileno(ptr noundef %5847) #10
  %5849 = call i32 @isatty(i32 noundef %5848) #10
  %5850 = icmp ne i32 %5849, 0
  br i1 %5850, label %5851, label %5868

5851:                                             ; preds = %5846
  %5852 = load i32, ptr %142, align 4, !tbaa !5
  %5853 = call ptr @__errno_location() #11
  store i32 %5852, ptr %5853, align 4, !tbaa !5
  %5854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5855 = load i32, ptr @test_count, align 4, !tbaa !5
  %5856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5857 = load i32, ptr %5856, align 4, !tbaa !5
  %5858 = call ptr @s2n_strerror(i32 noundef %5857, ptr noundef @.str.4)
  %5859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5860 = load i32, ptr %5859, align 4, !tbaa !5
  %5861 = call ptr @s2n_strerror_debug(i32 noundef %5860, ptr noundef @.str.4)
  %5862 = call ptr @__errno_location() #11
  %5863 = load i32, ptr %5862, align 4, !tbaa !5
  %5864 = call ptr @strerror(i32 noundef %5863) #10
  %5865 = call ptr @__errno_location() #11
  %5866 = load i32, ptr %5865, align 4, !tbaa !5
  %5867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5854, ptr noundef @.str.2, i32 noundef %5855, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 354, ptr noundef %5858, ptr noundef %5861, ptr noundef %5864, i32 noundef %5866) #10
  br label %5885

5868:                                             ; preds = %5846, %5839
  %5869 = load i32, ptr %142, align 4, !tbaa !5
  %5870 = call ptr @__errno_location() #11
  store i32 %5869, ptr %5870, align 4, !tbaa !5
  %5871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5872 = load i32, ptr @test_count, align 4, !tbaa !5
  %5873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5874 = load i32, ptr %5873, align 4, !tbaa !5
  %5875 = call ptr @s2n_strerror(i32 noundef %5874, ptr noundef @.str.4)
  %5876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5877 = load i32, ptr %5876, align 4, !tbaa !5
  %5878 = call ptr @s2n_strerror_debug(i32 noundef %5877, ptr noundef @.str.4)
  %5879 = call ptr @__errno_location() #11
  %5880 = load i32, ptr %5879, align 4, !tbaa !5
  %5881 = call ptr @strerror(i32 noundef %5880) #10
  %5882 = call ptr @__errno_location() #11
  %5883 = load i32, ptr %5882, align 4, !tbaa !5
  %5884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5871, ptr noundef @.str.5, i32 noundef %5872, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 354, ptr noundef %5875, ptr noundef %5878, ptr noundef %5881, i32 noundef %5883) #10
  br label %5885

5885:                                             ; preds = %5868, %5851
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %5886

5886:                                             ; preds = %5885
  br label %5887

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

5888:                                             ; No predecessors!
  br label %5889

5889:                                             ; preds = %5888
  br label %5890

5890:                                             ; preds = %5889, %5829
  br label %5891

5891:                                             ; preds = %5890, %5826
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #10
  br label %5892

5892:                                             ; preds = %5891
  br label %5893

5893:                                             ; preds = %5892
  %5894 = load ptr, ptr %135, align 8, !tbaa !9
  %5895 = getelementptr inbounds %struct.s2n_connection, ptr %5894, i32 0, i32 52
  %5896 = getelementptr inbounds %struct.s2n_handshake, ptr %5895, i32 0, i32 5
  store i8 19, ptr %5896, align 8, !tbaa !60
  br label %5897

5897:                                             ; preds = %5893
  %5898 = load i32, ptr @test_count, align 4, !tbaa !5
  %5899 = add nsw i32 %5898, 1
  store i32 %5899, ptr @test_count, align 4, !tbaa !5
  %5900 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 3), align 8, !tbaa !61
  %5901 = load ptr, ptr %133, align 8, !tbaa !9
  %5902 = call i32 %5900(ptr noundef %5901, ptr noundef %137)
  %5903 = icmp eq i32 %5902, -1
  br i1 %5903, label %5904, label %5957

5904:                                             ; preds = %5897
  br label %5905

5905:                                             ; preds = %5904
  br label %5906

5906:                                             ; preds = %5905
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #10
  %5907 = call ptr @__errno_location() #11
  %5908 = load i32, ptr %5907, align 4, !tbaa !5
  store i32 %5908, ptr %143, align 4, !tbaa !5
  %5909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5910 = call i32 @s2n_print_stacktrace(ptr noundef %5909)
  %5911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5912 = trunc i8 %5911 to i1
  br i1 %5912, label %5913, label %5935

5913:                                             ; preds = %5906
  %5914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5915 = call i32 @fileno(ptr noundef %5914) #10
  %5916 = call i32 @isatty(i32 noundef %5915) #10
  %5917 = icmp ne i32 %5916, 0
  br i1 %5917, label %5918, label %5935

5918:                                             ; preds = %5913
  %5919 = load i32, ptr %143, align 4, !tbaa !5
  %5920 = call ptr @__errno_location() #11
  store i32 %5919, ptr %5920, align 4, !tbaa !5
  %5921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5922 = load i32, ptr @test_count, align 4, !tbaa !5
  %5923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5924 = load i32, ptr %5923, align 4, !tbaa !5
  %5925 = call ptr @s2n_strerror(i32 noundef %5924, ptr noundef @.str.4)
  %5926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5927 = load i32, ptr %5926, align 4, !tbaa !5
  %5928 = call ptr @s2n_strerror_debug(i32 noundef %5927, ptr noundef @.str.4)
  %5929 = call ptr @__errno_location() #11
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call ptr @strerror(i32 noundef %5930) #10
  %5932 = call ptr @__errno_location() #11
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  %5934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5921, ptr noundef @.str.2, i32 noundef %5922, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 357, ptr noundef %5925, ptr noundef %5928, ptr noundef %5931, i32 noundef %5933) #10
  br label %5952

5935:                                             ; preds = %5913, %5906
  %5936 = load i32, ptr %143, align 4, !tbaa !5
  %5937 = call ptr @__errno_location() #11
  store i32 %5936, ptr %5937, align 4, !tbaa !5
  %5938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5939 = load i32, ptr @test_count, align 4, !tbaa !5
  %5940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5941 = load i32, ptr %5940, align 4, !tbaa !5
  %5942 = call ptr @s2n_strerror(i32 noundef %5941, ptr noundef @.str.4)
  %5943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5944 = load i32, ptr %5943, align 4, !tbaa !5
  %5945 = call ptr @s2n_strerror_debug(i32 noundef %5944, ptr noundef @.str.4)
  %5946 = call ptr @__errno_location() #11
  %5947 = load i32, ptr %5946, align 4, !tbaa !5
  %5948 = call ptr @strerror(i32 noundef %5947) #10
  %5949 = call ptr @__errno_location() #11
  %5950 = load i32, ptr %5949, align 4, !tbaa !5
  %5951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5938, ptr noundef @.str.5, i32 noundef %5939, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 357, ptr noundef %5942, ptr noundef %5945, ptr noundef %5948, i32 noundef %5950) #10
  br label %5952

5952:                                             ; preds = %5935, %5918
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #10
  br label %5953

5953:                                             ; preds = %5952
  br label %5954

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

5955:                                             ; No predecessors!
  br label %5956

5956:                                             ; preds = %5955
  br label %5957

5957:                                             ; preds = %5956, %5897
  br label %5958

5958:                                             ; preds = %5957
  br label %5959

5959:                                             ; preds = %5958
  br label %5960

5960:                                             ; preds = %5959
  %5961 = load i32, ptr @test_count, align 4, !tbaa !5
  %5962 = add nsw i32 %5961, 1
  store i32 %5962, ptr @test_count, align 4, !tbaa !5
  %5963 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !15
  %5964 = load ptr, ptr %135, align 8, !tbaa !9
  %5965 = call i32 %5963(ptr noundef %5964, ptr noundef %137)
  %5966 = icmp eq i32 %5965, -1
  br i1 %5966, label %5967, label %6020

5967:                                             ; preds = %5960
  br label %5968

5968:                                             ; preds = %5967
  br label %5969

5969:                                             ; preds = %5968
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #10
  %5970 = call ptr @__errno_location() #11
  %5971 = load i32, ptr %5970, align 4, !tbaa !5
  store i32 %5971, ptr %144, align 4, !tbaa !5
  %5972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5973 = call i32 @s2n_print_stacktrace(ptr noundef %5972)
  %5974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5975 = trunc i8 %5974 to i1
  br i1 %5975, label %5976, label %5998

5976:                                             ; preds = %5969
  %5977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5978 = call i32 @fileno(ptr noundef %5977) #10
  %5979 = call i32 @isatty(i32 noundef %5978) #10
  %5980 = icmp ne i32 %5979, 0
  br i1 %5980, label %5981, label %5998

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

5998:                                             ; preds = %5976, %5969
  %5999 = load i32, ptr %144, align 4, !tbaa !5
  %6000 = call ptr @__errno_location() #11
  store i32 %5999, ptr %6000, align 4, !tbaa !5
  %6001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6002 = load i32, ptr @test_count, align 4, !tbaa !5
  %6003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6004 = load i32, ptr %6003, align 4, !tbaa !5
  %6005 = call ptr @s2n_strerror(i32 noundef %6004, ptr noundef @.str.4)
  %6006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6007 = load i32, ptr %6006, align 4, !tbaa !5
  %6008 = call ptr @s2n_strerror_debug(i32 noundef %6007, ptr noundef @.str.4)
  %6009 = call ptr @__errno_location() #11
  %6010 = load i32, ptr %6009, align 4, !tbaa !5
  %6011 = call ptr @strerror(i32 noundef %6010) #10
  %6012 = call ptr @__errno_location() #11
  %6013 = load i32, ptr %6012, align 4, !tbaa !5
  %6014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6001, ptr noundef @.str.5, i32 noundef %6002, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 358, ptr noundef %6005, ptr noundef %6008, ptr noundef %6011, i32 noundef %6013) #10
  br label %6015

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

6016:                                             ; preds = %6015
  br label %6017

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

6018:                                             ; No predecessors!
  br label %6019

6019:                                             ; preds = %6018
  br label %6020

6020:                                             ; preds = %6019, %5960
  br label %6021

6021:                                             ; preds = %6020
  br label %6022

6022:                                             ; preds = %6021
  call void @llvm.lifetime.start.p0(i64 12, ptr %145) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %145, ptr align 1 @__const.main.bad_client_verify, i64 12, i1 false)
  br label %6023

6023:                                             ; preds = %6022
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #10
  store i64 12, ptr %146, align 8, !tbaa !47
  %6024 = load i64, ptr %146, align 8, !tbaa !47
  %6025 = icmp ne i64 %6024, 0
  br i1 %6025, label %6026, label %6088

6026:                                             ; preds = %6023
  %6027 = load ptr, ptr %135, align 8, !tbaa !9
  %6028 = getelementptr inbounds %struct.s2n_connection, ptr %6027, i32 0, i32 52
  %6029 = getelementptr inbounds %struct.s2n_handshake, ptr %6028, i32 0, i32 4
  %6030 = getelementptr inbounds [48 x i8], ptr %6029, i64 0, i64 0
  %6031 = getelementptr inbounds [12 x i8], ptr %145, i64 0, i64 0
  %6032 = load i64, ptr %146, align 8, !tbaa !47
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6030, ptr align 1 %6031, i64 %6032, i1 false)
  %6033 = icmp eq ptr %6030, null
  br i1 %6033, label %6034, label %6087

6034:                                             ; preds = %6026
  br label %6035

6035:                                             ; preds = %6034
  br label %6036

6036:                                             ; preds = %6035
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #10
  %6037 = call ptr @__errno_location() #11
  %6038 = load i32, ptr %6037, align 4, !tbaa !5
  store i32 %6038, ptr %147, align 4, !tbaa !5
  %6039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6040 = call i32 @s2n_print_stacktrace(ptr noundef %6039)
  %6041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6042 = trunc i8 %6041 to i1
  br i1 %6042, label %6043, label %6065

6043:                                             ; preds = %6036
  %6044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6045 = call i32 @fileno(ptr noundef %6044) #10
  %6046 = call i32 @isatty(i32 noundef %6045) #10
  %6047 = icmp ne i32 %6046, 0
  br i1 %6047, label %6048, label %6065

6048:                                             ; preds = %6043
  %6049 = load i32, ptr %147, align 4, !tbaa !5
  %6050 = call ptr @__errno_location() #11
  store i32 %6049, ptr %6050, align 4, !tbaa !5
  %6051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6052 = load i32, ptr @test_count, align 4, !tbaa !5
  %6053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6054 = load i32, ptr %6053, align 4, !tbaa !5
  %6055 = call ptr @s2n_strerror(i32 noundef %6054, ptr noundef @.str.4)
  %6056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6057 = load i32, ptr %6056, align 4, !tbaa !5
  %6058 = call ptr @s2n_strerror_debug(i32 noundef %6057, ptr noundef @.str.4)
  %6059 = call ptr @__errno_location() #11
  %6060 = load i32, ptr %6059, align 4, !tbaa !5
  %6061 = call ptr @strerror(i32 noundef %6060) #10
  %6062 = call ptr @__errno_location() #11
  %6063 = load i32, ptr %6062, align 4, !tbaa !5
  %6064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6051, ptr noundef @.str.2, i32 noundef %6052, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 366, ptr noundef %6055, ptr noundef %6058, ptr noundef %6061, i32 noundef %6063) #10
  br label %6082

6065:                                             ; preds = %6043, %6036
  %6066 = load i32, ptr %147, align 4, !tbaa !5
  %6067 = call ptr @__errno_location() #11
  store i32 %6066, ptr %6067, align 4, !tbaa !5
  %6068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6069 = load i32, ptr @test_count, align 4, !tbaa !5
  %6070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6071 = load i32, ptr %6070, align 4, !tbaa !5
  %6072 = call ptr @s2n_strerror(i32 noundef %6071, ptr noundef @.str.4)
  %6073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6074 = load i32, ptr %6073, align 4, !tbaa !5
  %6075 = call ptr @s2n_strerror_debug(i32 noundef %6074, ptr noundef @.str.4)
  %6076 = call ptr @__errno_location() #11
  %6077 = load i32, ptr %6076, align 4, !tbaa !5
  %6078 = call ptr @strerror(i32 noundef %6077) #10
  %6079 = call ptr @__errno_location() #11
  %6080 = load i32, ptr %6079, align 4, !tbaa !5
  %6081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6068, ptr noundef @.str.5, i32 noundef %6069, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 366, ptr noundef %6072, ptr noundef %6075, ptr noundef %6078, i32 noundef %6080) #10
  br label %6082

6082:                                             ; preds = %6065, %6048
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %6083

6083:                                             ; preds = %6082
  br label %6084

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

6085:                                             ; No predecessors!
  br label %6086

6086:                                             ; preds = %6085
  br label %6087

6087:                                             ; preds = %6086, %6026
  br label %6088

6088:                                             ; preds = %6087, %6023
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #10
  br label %6089

6089:                                             ; preds = %6088
  br label %6090

6090:                                             ; preds = %6089
  %6091 = load ptr, ptr %135, align 8, !tbaa !9
  %6092 = getelementptr inbounds %struct.s2n_connection, ptr %6091, i32 0, i32 52
  %6093 = getelementptr inbounds %struct.s2n_handshake, ptr %6092, i32 0, i32 5
  store i8 12, ptr %6093, align 8, !tbaa !60
  br label %6094

6094:                                             ; preds = %6090
  %6095 = load i32, ptr @test_count, align 4, !tbaa !5
  %6096 = add nsw i32 %6095, 1
  store i32 %6096, ptr @test_count, align 4, !tbaa !5
  %6097 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 3), align 8, !tbaa !61
  %6098 = load ptr, ptr %133, align 8, !tbaa !9
  %6099 = call i32 %6097(ptr noundef %6098, ptr noundef %137)
  %6100 = icmp eq i32 %6099, -1
  br i1 %6100, label %6101, label %6154

6101:                                             ; preds = %6094
  br label %6102

6102:                                             ; preds = %6101
  br label %6103

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

6110:                                             ; preds = %6103
  %6111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6112 = call i32 @fileno(ptr noundef %6111) #10
  %6113 = call i32 @isatty(i32 noundef %6112) #10
  %6114 = icmp ne i32 %6113, 0
  br i1 %6114, label %6115, label %6132

6115:                                             ; preds = %6110
  %6116 = load i32, ptr %148, align 4, !tbaa !5
  %6117 = call ptr @__errno_location() #11
  store i32 %6116, ptr %6117, align 4, !tbaa !5
  %6118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6119 = load i32, ptr @test_count, align 4, !tbaa !5
  %6120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6121 = load i32, ptr %6120, align 4, !tbaa !5
  %6122 = call ptr @s2n_strerror(i32 noundef %6121, ptr noundef @.str.4)
  %6123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6124 = load i32, ptr %6123, align 4, !tbaa !5
  %6125 = call ptr @s2n_strerror_debug(i32 noundef %6124, ptr noundef @.str.4)
  %6126 = call ptr @__errno_location() #11
  %6127 = load i32, ptr %6126, align 4, !tbaa !5
  %6128 = call ptr @strerror(i32 noundef %6127) #10
  %6129 = call ptr @__errno_location() #11
  %6130 = load i32, ptr %6129, align 4, !tbaa !5
  %6131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6118, ptr noundef @.str.2, i32 noundef %6119, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 369, ptr noundef %6122, ptr noundef %6125, ptr noundef %6128, i32 noundef %6130) #10
  br label %6149

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

6149:                                             ; preds = %6132, %6115
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #10
  br label %6150

6150:                                             ; preds = %6149
  br label %6151

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

6152:                                             ; No predecessors!
  br label %6153

6153:                                             ; preds = %6152
  br label %6154

6154:                                             ; preds = %6153, %6094
  br label %6155

6155:                                             ; preds = %6154
  br label %6156

6156:                                             ; preds = %6155
  br label %6157

6157:                                             ; preds = %6156
  br label %6158

6158:                                             ; preds = %6157
  br label %6159

6159:                                             ; preds = %6158
  %6160 = load i32, ptr @test_count, align 4, !tbaa !5
  %6161 = add nsw i32 %6160, 1
  store i32 %6161, ptr @test_count, align 4, !tbaa !5
  %6162 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !15
  %6163 = load ptr, ptr %135, align 8, !tbaa !9
  %6164 = call i32 %6162(ptr noundef %6163, ptr noundef %137)
  %6165 = icmp eq i32 %6164, -1
  br i1 %6165, label %6219, label %6166

6166:                                             ; preds = %6159
  br label %6167

6167:                                             ; preds = %6166
  br label %6168

6168:                                             ; preds = %6167
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #10
  %6169 = call ptr @__errno_location() #11
  %6170 = load i32, ptr %6169, align 4, !tbaa !5
  store i32 %6170, ptr %149, align 4, !tbaa !5
  %6171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6172 = call i32 @s2n_print_stacktrace(ptr noundef %6171)
  %6173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6174 = trunc i8 %6173 to i1
  br i1 %6174, label %6175, label %6197

6175:                                             ; preds = %6168
  %6176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6177 = call i32 @fileno(ptr noundef %6176) #10
  %6178 = call i32 @isatty(i32 noundef %6177) #10
  %6179 = icmp ne i32 %6178, 0
  br i1 %6179, label %6180, label %6197

6180:                                             ; preds = %6175
  %6181 = load i32, ptr %149, align 4, !tbaa !5
  %6182 = call ptr @__errno_location() #11
  store i32 %6181, ptr %6182, align 4, !tbaa !5
  %6183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6184 = load i32, ptr @test_count, align 4, !tbaa !5
  %6185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6186 = load i32, ptr %6185, align 4, !tbaa !5
  %6187 = call ptr @s2n_strerror(i32 noundef %6186, ptr noundef @.str.4)
  %6188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6189 = load i32, ptr %6188, align 4, !tbaa !5
  %6190 = call ptr @s2n_strerror_debug(i32 noundef %6189, ptr noundef @.str.4)
  %6191 = call ptr @__errno_location() #11
  %6192 = load i32, ptr %6191, align 4, !tbaa !5
  %6193 = call ptr @strerror(i32 noundef %6192) #10
  %6194 = call ptr @__errno_location() #11
  %6195 = load i32, ptr %6194, align 4, !tbaa !5
  %6196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6183, ptr noundef @.str.2, i32 noundef %6184, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6187, ptr noundef %6190, ptr noundef %6193, i32 noundef %6195) #10
  br label %6214

6197:                                             ; preds = %6175, %6168
  %6198 = load i32, ptr %149, align 4, !tbaa !5
  %6199 = call ptr @__errno_location() #11
  store i32 %6198, ptr %6199, align 4, !tbaa !5
  %6200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6201 = load i32, ptr @test_count, align 4, !tbaa !5
  %6202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6203 = load i32, ptr %6202, align 4, !tbaa !5
  %6204 = call ptr @s2n_strerror(i32 noundef %6203, ptr noundef @.str.4)
  %6205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6206 = load i32, ptr %6205, align 4, !tbaa !5
  %6207 = call ptr @s2n_strerror_debug(i32 noundef %6206, ptr noundef @.str.4)
  %6208 = call ptr @__errno_location() #11
  %6209 = load i32, ptr %6208, align 4, !tbaa !5
  %6210 = call ptr @strerror(i32 noundef %6209) #10
  %6211 = call ptr @__errno_location() #11
  %6212 = load i32, ptr %6211, align 4, !tbaa !5
  %6213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6200, ptr noundef @.str.5, i32 noundef %6201, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6204, ptr noundef %6207, ptr noundef %6210, i32 noundef %6212) #10
  br label %6214

6214:                                             ; preds = %6197, %6180
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %6215

6215:                                             ; preds = %6214
  br label %6216

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

6217:                                             ; No predecessors!
  br label %6218

6218:                                             ; preds = %6217
  br label %6219

6219:                                             ; preds = %6218, %6159
  br label %6220

6220:                                             ; preds = %6219
  br label %6221

6221:                                             ; preds = %6220
  br label %6222

6222:                                             ; preds = %6221
  %6223 = load i32, ptr @test_count, align 4, !tbaa !5
  %6224 = add nsw i32 %6223, 1
  store i32 %6224, ptr @test_count, align 4, !tbaa !5
  %6225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6226 = load i32, ptr %6225, align 4, !tbaa !5
  %6227 = icmp eq i32 %6226, 335544322
  br i1 %6227, label %6281, label %6228

6228:                                             ; preds = %6222
  br label %6229

6229:                                             ; preds = %6228
  br label %6230

6230:                                             ; preds = %6229
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #10
  %6231 = call ptr @__errno_location() #11
  %6232 = load i32, ptr %6231, align 4, !tbaa !5
  store i32 %6232, ptr %150, align 4, !tbaa !5
  %6233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6234 = call i32 @s2n_print_stacktrace(ptr noundef %6233)
  %6235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6236 = trunc i8 %6235 to i1
  br i1 %6236, label %6237, label %6259

6237:                                             ; preds = %6230
  %6238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6239 = call i32 @fileno(ptr noundef %6238) #10
  %6240 = call i32 @isatty(i32 noundef %6239) #10
  %6241 = icmp ne i32 %6240, 0
  br i1 %6241, label %6242, label %6259

6242:                                             ; preds = %6237
  %6243 = load i32, ptr %150, align 4, !tbaa !5
  %6244 = call ptr @__errno_location() #11
  store i32 %6243, ptr %6244, align 4, !tbaa !5
  %6245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6246 = load i32, ptr @test_count, align 4, !tbaa !5
  %6247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6248 = load i32, ptr %6247, align 4, !tbaa !5
  %6249 = call ptr @s2n_strerror(i32 noundef %6248, ptr noundef @.str.4)
  %6250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6251 = load i32, ptr %6250, align 4, !tbaa !5
  %6252 = call ptr @s2n_strerror_debug(i32 noundef %6251, ptr noundef @.str.4)
  %6253 = call ptr @__errno_location() #11
  %6254 = load i32, ptr %6253, align 4, !tbaa !5
  %6255 = call ptr @strerror(i32 noundef %6254) #10
  %6256 = call ptr @__errno_location() #11
  %6257 = load i32, ptr %6256, align 4, !tbaa !5
  %6258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6245, ptr noundef @.str.2, i32 noundef %6246, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6249, ptr noundef %6252, ptr noundef %6255, i32 noundef %6257) #10
  br label %6276

6259:                                             ; preds = %6237, %6230
  %6260 = load i32, ptr %150, align 4, !tbaa !5
  %6261 = call ptr @__errno_location() #11
  store i32 %6260, ptr %6261, align 4, !tbaa !5
  %6262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6263 = load i32, ptr @test_count, align 4, !tbaa !5
  %6264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6265 = load i32, ptr %6264, align 4, !tbaa !5
  %6266 = call ptr @s2n_strerror(i32 noundef %6265, ptr noundef @.str.4)
  %6267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6268 = load i32, ptr %6267, align 4, !tbaa !5
  %6269 = call ptr @s2n_strerror_debug(i32 noundef %6268, ptr noundef @.str.4)
  %6270 = call ptr @__errno_location() #11
  %6271 = load i32, ptr %6270, align 4, !tbaa !5
  %6272 = call ptr @strerror(i32 noundef %6271) #10
  %6273 = call ptr @__errno_location() #11
  %6274 = load i32, ptr %6273, align 4, !tbaa !5
  %6275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6262, ptr noundef @.str.5, i32 noundef %6263, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6266, ptr noundef %6269, ptr noundef %6272, i32 noundef %6274) #10
  br label %6276

6276:                                             ; preds = %6259, %6242
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #10
  br label %6277

6277:                                             ; preds = %6276
  br label %6278

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

6279:                                             ; No predecessors!
  br label %6280

6280:                                             ; preds = %6279
  br label %6281

6281:                                             ; preds = %6280, %6222
  br label %6282

6282:                                             ; preds = %6281
  br label %6283

6283:                                             ; preds = %6282
  br label %6284

6284:                                             ; preds = %6283
  %6285 = load i32, ptr @test_count, align 4, !tbaa !5
  %6286 = add nsw i32 %6285, 1
  store i32 %6286, ptr @test_count, align 4, !tbaa !5
  %6287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6288 = load i32, ptr %6287, align 4, !tbaa !5
  %6289 = call ptr @s2n_strerror_debug(i32 noundef %6288, ptr noundef @.str.4)
  %6290 = icmp eq ptr %6289, null
  br i1 %6290, label %6291, label %6344

6291:                                             ; preds = %6284
  br label %6292

6292:                                             ; preds = %6291
  br label %6293

6293:                                             ; preds = %6292
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  %6294 = call ptr @__errno_location() #11
  %6295 = load i32, ptr %6294, align 4, !tbaa !5
  store i32 %6295, ptr %151, align 4, !tbaa !5
  %6296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6297 = call i32 @s2n_print_stacktrace(ptr noundef %6296)
  %6298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6299 = trunc i8 %6298 to i1
  br i1 %6299, label %6300, label %6322

6300:                                             ; preds = %6293
  %6301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6302 = call i32 @fileno(ptr noundef %6301) #10
  %6303 = call i32 @isatty(i32 noundef %6302) #10
  %6304 = icmp ne i32 %6303, 0
  br i1 %6304, label %6305, label %6322

6305:                                             ; preds = %6300
  %6306 = load i32, ptr %151, align 4, !tbaa !5
  %6307 = call ptr @__errno_location() #11
  store i32 %6306, ptr %6307, align 4, !tbaa !5
  %6308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6309 = load i32, ptr @test_count, align 4, !tbaa !5
  %6310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6311 = load i32, ptr %6310, align 4, !tbaa !5
  %6312 = call ptr @s2n_strerror(i32 noundef %6311, ptr noundef @.str.4)
  %6313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6314 = load i32, ptr %6313, align 4, !tbaa !5
  %6315 = call ptr @s2n_strerror_debug(i32 noundef %6314, ptr noundef @.str.4)
  %6316 = call ptr @__errno_location() #11
  %6317 = load i32, ptr %6316, align 4, !tbaa !5
  %6318 = call ptr @strerror(i32 noundef %6317) #10
  %6319 = call ptr @__errno_location() #11
  %6320 = load i32, ptr %6319, align 4, !tbaa !5
  %6321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6308, ptr noundef @.str.2, i32 noundef %6309, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6312, ptr noundef %6315, ptr noundef %6318, i32 noundef %6320) #10
  br label %6339

6322:                                             ; preds = %6300, %6293
  %6323 = load i32, ptr %151, align 4, !tbaa !5
  %6324 = call ptr @__errno_location() #11
  store i32 %6323, ptr %6324, align 4, !tbaa !5
  %6325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6326 = load i32, ptr @test_count, align 4, !tbaa !5
  %6327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6328 = load i32, ptr %6327, align 4, !tbaa !5
  %6329 = call ptr @s2n_strerror(i32 noundef %6328, ptr noundef @.str.4)
  %6330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6331 = load i32, ptr %6330, align 4, !tbaa !5
  %6332 = call ptr @s2n_strerror_debug(i32 noundef %6331, ptr noundef @.str.4)
  %6333 = call ptr @__errno_location() #11
  %6334 = load i32, ptr %6333, align 4, !tbaa !5
  %6335 = call ptr @strerror(i32 noundef %6334) #10
  %6336 = call ptr @__errno_location() #11
  %6337 = load i32, ptr %6336, align 4, !tbaa !5
  %6338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6325, ptr noundef @.str.5, i32 noundef %6326, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6329, ptr noundef %6332, ptr noundef %6335, i32 noundef %6337) #10
  br label %6339

6339:                                             ; preds = %6322, %6305
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  br label %6340

6340:                                             ; preds = %6339
  br label %6341

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

6342:                                             ; No predecessors!
  br label %6343

6343:                                             ; preds = %6342
  br label %6344

6344:                                             ; preds = %6343, %6284
  br label %6345

6345:                                             ; preds = %6344
  br label %6346

6346:                                             ; preds = %6345
  br label %6347

6347:                                             ; preds = %6346
  br label %6348

6348:                                             ; preds = %6347
  br label %6349

6349:                                             ; preds = %6348
  %6350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6350, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6351 = call ptr @__errno_location() #11
  store i32 0, ptr %6351, align 4, !tbaa !5
  br label %6352

6352:                                             ; preds = %6349
  br label %6353

6353:                                             ; preds = %6352
  br label %6354

6354:                                             ; preds = %6353
  br label %6355

6355:                                             ; preds = %6354
  call void @llvm.lifetime.end.p0(i64 12, ptr %145) #10
  %6356 = load ptr, ptr %135, align 8, !tbaa !9
  %6357 = load i32, ptr %6356, align 8
  %6358 = and i32 %6357, -9
  %6359 = or i32 %6358, 0
  store i32 %6359, ptr %6356, align 8
  br label %6360

6360:                                             ; preds = %6355
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #10
  store i64 19, ptr %152, align 8, !tbaa !47
  %6361 = load i64, ptr %152, align 8, !tbaa !47
  %6362 = icmp ne i64 %6361, 0
  br i1 %6362, label %6363, label %6425

6363:                                             ; preds = %6360
  %6364 = load ptr, ptr %135, align 8, !tbaa !9
  %6365 = getelementptr inbounds %struct.s2n_connection, ptr %6364, i32 0, i32 52
  %6366 = getelementptr inbounds %struct.s2n_handshake, ptr %6365, i32 0, i32 4
  %6367 = getelementptr inbounds [48 x i8], ptr %6366, i64 0, i64 0
  %6368 = getelementptr inbounds [19 x i8], ptr %11, i64 0, i64 0
  %6369 = load i64, ptr %152, align 8, !tbaa !47
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6367, ptr align 16 %6368, i64 %6369, i1 false)
  %6370 = icmp eq ptr %6367, null
  br i1 %6370, label %6371, label %6424

6371:                                             ; preds = %6363
  br label %6372

6372:                                             ; preds = %6371
  br label %6373

6373:                                             ; preds = %6372
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #10
  %6374 = call ptr @__errno_location() #11
  %6375 = load i32, ptr %6374, align 4, !tbaa !5
  store i32 %6375, ptr %153, align 4, !tbaa !5
  %6376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6377 = call i32 @s2n_print_stacktrace(ptr noundef %6376)
  %6378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6379 = trunc i8 %6378 to i1
  br i1 %6379, label %6380, label %6402

6380:                                             ; preds = %6373
  %6381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6382 = call i32 @fileno(ptr noundef %6381) #10
  %6383 = call i32 @isatty(i32 noundef %6382) #10
  %6384 = icmp ne i32 %6383, 0
  br i1 %6384, label %6385, label %6402

6385:                                             ; preds = %6380
  %6386 = load i32, ptr %153, align 4, !tbaa !5
  %6387 = call ptr @__errno_location() #11
  store i32 %6386, ptr %6387, align 4, !tbaa !5
  %6388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6389 = load i32, ptr @test_count, align 4, !tbaa !5
  %6390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6391 = load i32, ptr %6390, align 4, !tbaa !5
  %6392 = call ptr @s2n_strerror(i32 noundef %6391, ptr noundef @.str.4)
  %6393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6394 = load i32, ptr %6393, align 4, !tbaa !5
  %6395 = call ptr @s2n_strerror_debug(i32 noundef %6394, ptr noundef @.str.4)
  %6396 = call ptr @__errno_location() #11
  %6397 = load i32, ptr %6396, align 4, !tbaa !5
  %6398 = call ptr @strerror(i32 noundef %6397) #10
  %6399 = call ptr @__errno_location() #11
  %6400 = load i32, ptr %6399, align 4, !tbaa !5
  %6401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6388, ptr noundef @.str.2, i32 noundef %6389, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 379, ptr noundef %6392, ptr noundef %6395, ptr noundef %6398, i32 noundef %6400) #10
  br label %6419

6402:                                             ; preds = %6380, %6373
  %6403 = load i32, ptr %153, align 4, !tbaa !5
  %6404 = call ptr @__errno_location() #11
  store i32 %6403, ptr %6404, align 4, !tbaa !5
  %6405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6406 = load i32, ptr @test_count, align 4, !tbaa !5
  %6407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6408 = load i32, ptr %6407, align 4, !tbaa !5
  %6409 = call ptr @s2n_strerror(i32 noundef %6408, ptr noundef @.str.4)
  %6410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  %6412 = call ptr @s2n_strerror_debug(i32 noundef %6411, ptr noundef @.str.4)
  %6413 = call ptr @__errno_location() #11
  %6414 = load i32, ptr %6413, align 4, !tbaa !5
  %6415 = call ptr @strerror(i32 noundef %6414) #10
  %6416 = call ptr @__errno_location() #11
  %6417 = load i32, ptr %6416, align 4, !tbaa !5
  %6418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6405, ptr noundef @.str.5, i32 noundef %6406, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 379, ptr noundef %6409, ptr noundef %6412, ptr noundef %6415, i32 noundef %6417) #10
  br label %6419

6419:                                             ; preds = %6402, %6385
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #10
  br label %6420

6420:                                             ; preds = %6419
  br label %6421

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

6422:                                             ; No predecessors!
  br label %6423

6423:                                             ; preds = %6422
  br label %6424

6424:                                             ; preds = %6423, %6363
  br label %6425

6425:                                             ; preds = %6424, %6360
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #10
  br label %6426

6426:                                             ; preds = %6425
  br label %6427

6427:                                             ; preds = %6426
  %6428 = load ptr, ptr %135, align 8, !tbaa !9
  %6429 = getelementptr inbounds %struct.s2n_connection, ptr %6428, i32 0, i32 52
  %6430 = getelementptr inbounds %struct.s2n_handshake, ptr %6429, i32 0, i32 5
  store i8 19, ptr %6430, align 8, !tbaa !60
  br label %6431

6431:                                             ; preds = %6427
  %6432 = load i32, ptr @test_count, align 4, !tbaa !5
  %6433 = add nsw i32 %6432, 1
  store i32 %6433, ptr @test_count, align 4, !tbaa !5
  %6434 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 3), align 8, !tbaa !61
  %6435 = load ptr, ptr %133, align 8, !tbaa !9
  %6436 = call i32 %6434(ptr noundef %6435, ptr noundef %137)
  %6437 = icmp eq i32 %6436, -1
  br i1 %6437, label %6438, label %6491

6438:                                             ; preds = %6431
  br label %6439

6439:                                             ; preds = %6438
  br label %6440

6440:                                             ; preds = %6439
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  %6441 = call ptr @__errno_location() #11
  %6442 = load i32, ptr %6441, align 4, !tbaa !5
  store i32 %6442, ptr %154, align 4, !tbaa !5
  %6443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6444 = call i32 @s2n_print_stacktrace(ptr noundef %6443)
  %6445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6446 = trunc i8 %6445 to i1
  br i1 %6446, label %6447, label %6469

6447:                                             ; preds = %6440
  %6448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6449 = call i32 @fileno(ptr noundef %6448) #10
  %6450 = call i32 @isatty(i32 noundef %6449) #10
  %6451 = icmp ne i32 %6450, 0
  br i1 %6451, label %6452, label %6469

6452:                                             ; preds = %6447
  %6453 = load i32, ptr %154, align 4, !tbaa !5
  %6454 = call ptr @__errno_location() #11
  store i32 %6453, ptr %6454, align 4, !tbaa !5
  %6455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6456 = load i32, ptr @test_count, align 4, !tbaa !5
  %6457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6458 = load i32, ptr %6457, align 4, !tbaa !5
  %6459 = call ptr @s2n_strerror(i32 noundef %6458, ptr noundef @.str.4)
  %6460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6461 = load i32, ptr %6460, align 4, !tbaa !5
  %6462 = call ptr @s2n_strerror_debug(i32 noundef %6461, ptr noundef @.str.4)
  %6463 = call ptr @__errno_location() #11
  %6464 = load i32, ptr %6463, align 4, !tbaa !5
  %6465 = call ptr @strerror(i32 noundef %6464) #10
  %6466 = call ptr @__errno_location() #11
  %6467 = load i32, ptr %6466, align 4, !tbaa !5
  %6468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6455, ptr noundef @.str.2, i32 noundef %6456, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 382, ptr noundef %6459, ptr noundef %6462, ptr noundef %6465, i32 noundef %6467) #10
  br label %6486

6469:                                             ; preds = %6447, %6440
  %6470 = load i32, ptr %154, align 4, !tbaa !5
  %6471 = call ptr @__errno_location() #11
  store i32 %6470, ptr %6471, align 4, !tbaa !5
  %6472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6473 = load i32, ptr @test_count, align 4, !tbaa !5
  %6474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6475 = load i32, ptr %6474, align 4, !tbaa !5
  %6476 = call ptr @s2n_strerror(i32 noundef %6475, ptr noundef @.str.4)
  %6477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6478 = load i32, ptr %6477, align 4, !tbaa !5
  %6479 = call ptr @s2n_strerror_debug(i32 noundef %6478, ptr noundef @.str.4)
  %6480 = call ptr @__errno_location() #11
  %6481 = load i32, ptr %6480, align 4, !tbaa !5
  %6482 = call ptr @strerror(i32 noundef %6481) #10
  %6483 = call ptr @__errno_location() #11
  %6484 = load i32, ptr %6483, align 4, !tbaa !5
  %6485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6472, ptr noundef @.str.5, i32 noundef %6473, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 382, ptr noundef %6476, ptr noundef %6479, ptr noundef %6482, i32 noundef %6484) #10
  br label %6486

6486:                                             ; preds = %6469, %6452
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %6487

6487:                                             ; preds = %6486
  br label %6488

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

6489:                                             ; No predecessors!
  br label %6490

6490:                                             ; preds = %6489
  br label %6491

6491:                                             ; preds = %6490, %6431
  br label %6492

6492:                                             ; preds = %6491
  br label %6493

6493:                                             ; preds = %6492
  br label %6494

6494:                                             ; preds = %6493
  br label %6495

6495:                                             ; preds = %6494
  br label %6496

6496:                                             ; preds = %6495
  %6497 = load i32, ptr @test_count, align 4, !tbaa !5
  %6498 = add nsw i32 %6497, 1
  store i32 %6498, ptr @test_count, align 4, !tbaa !5
  %6499 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !15
  %6500 = load ptr, ptr %135, align 8, !tbaa !9
  %6501 = call i32 %6499(ptr noundef %6500, ptr noundef %137)
  %6502 = icmp eq i32 %6501, -1
  br i1 %6502, label %6556, label %6503

6503:                                             ; preds = %6496
  br label %6504

6504:                                             ; preds = %6503
  br label %6505

6505:                                             ; preds = %6504
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #10
  %6506 = call ptr @__errno_location() #11
  %6507 = load i32, ptr %6506, align 4, !tbaa !5
  store i32 %6507, ptr %155, align 4, !tbaa !5
  %6508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6509 = call i32 @s2n_print_stacktrace(ptr noundef %6508)
  %6510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6511 = trunc i8 %6510 to i1
  br i1 %6511, label %6512, label %6534

6512:                                             ; preds = %6505
  %6513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6514 = call i32 @fileno(ptr noundef %6513) #10
  %6515 = call i32 @isatty(i32 noundef %6514) #10
  %6516 = icmp ne i32 %6515, 0
  br i1 %6516, label %6517, label %6534

6517:                                             ; preds = %6512
  %6518 = load i32, ptr %155, align 4, !tbaa !5
  %6519 = call ptr @__errno_location() #11
  store i32 %6518, ptr %6519, align 4, !tbaa !5
  %6520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6521 = load i32, ptr @test_count, align 4, !tbaa !5
  %6522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6523 = load i32, ptr %6522, align 4, !tbaa !5
  %6524 = call ptr @s2n_strerror(i32 noundef %6523, ptr noundef @.str.4)
  %6525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6526 = load i32, ptr %6525, align 4, !tbaa !5
  %6527 = call ptr @s2n_strerror_debug(i32 noundef %6526, ptr noundef @.str.4)
  %6528 = call ptr @__errno_location() #11
  %6529 = load i32, ptr %6528, align 4, !tbaa !5
  %6530 = call ptr @strerror(i32 noundef %6529) #10
  %6531 = call ptr @__errno_location() #11
  %6532 = load i32, ptr %6531, align 4, !tbaa !5
  %6533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6520, ptr noundef @.str.2, i32 noundef %6521, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 384, ptr noundef %6524, ptr noundef %6527, ptr noundef %6530, i32 noundef %6532) #10
  br label %6551

6534:                                             ; preds = %6512, %6505
  %6535 = load i32, ptr %155, align 4, !tbaa !5
  %6536 = call ptr @__errno_location() #11
  store i32 %6535, ptr %6536, align 4, !tbaa !5
  %6537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6538 = load i32, ptr @test_count, align 4, !tbaa !5
  %6539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6540 = load i32, ptr %6539, align 4, !tbaa !5
  %6541 = call ptr @s2n_strerror(i32 noundef %6540, ptr noundef @.str.4)
  %6542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6543 = load i32, ptr %6542, align 4, !tbaa !5
  %6544 = call ptr @s2n_strerror_debug(i32 noundef %6543, ptr noundef @.str.4)
  %6545 = call ptr @__errno_location() #11
  %6546 = load i32, ptr %6545, align 4, !tbaa !5
  %6547 = call ptr @strerror(i32 noundef %6546) #10
  %6548 = call ptr @__errno_location() #11
  %6549 = load i32, ptr %6548, align 4, !tbaa !5
  %6550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6537, ptr noundef @.str.5, i32 noundef %6538, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 384, ptr noundef %6541, ptr noundef %6544, ptr noundef %6547, i32 noundef %6549) #10
  br label %6551

6551:                                             ; preds = %6534, %6517
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #10
  br label %6552

6552:                                             ; preds = %6551
  br label %6553

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

6554:                                             ; No predecessors!
  br label %6555

6555:                                             ; preds = %6554
  br label %6556

6556:                                             ; preds = %6555, %6496
  br label %6557

6557:                                             ; preds = %6556
  br label %6558

6558:                                             ; preds = %6557
  br label %6559

6559:                                             ; preds = %6558
  %6560 = load i32, ptr @test_count, align 4, !tbaa !5
  %6561 = add nsw i32 %6560, 1
  store i32 %6561, ptr @test_count, align 4, !tbaa !5
  %6562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6563 = load i32, ptr %6562, align 4, !tbaa !5
  %6564 = icmp eq i32 %6563, 335544398
  br i1 %6564, label %6618, label %6565

6565:                                             ; preds = %6559
  br label %6566

6566:                                             ; preds = %6565
  br label %6567

6567:                                             ; preds = %6566
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %6568 = call ptr @__errno_location() #11
  %6569 = load i32, ptr %6568, align 4, !tbaa !5
  store i32 %6569, ptr %156, align 4, !tbaa !5
  %6570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6571 = call i32 @s2n_print_stacktrace(ptr noundef %6570)
  %6572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6573 = trunc i8 %6572 to i1
  br i1 %6573, label %6574, label %6596

6574:                                             ; preds = %6567
  %6575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6576 = call i32 @fileno(ptr noundef %6575) #10
  %6577 = call i32 @isatty(i32 noundef %6576) #10
  %6578 = icmp ne i32 %6577, 0
  br i1 %6578, label %6579, label %6596

6579:                                             ; preds = %6574
  %6580 = load i32, ptr %156, align 4, !tbaa !5
  %6581 = call ptr @__errno_location() #11
  store i32 %6580, ptr %6581, align 4, !tbaa !5
  %6582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6583 = load i32, ptr @test_count, align 4, !tbaa !5
  %6584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6585 = load i32, ptr %6584, align 4, !tbaa !5
  %6586 = call ptr @s2n_strerror(i32 noundef %6585, ptr noundef @.str.4)
  %6587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6588 = load i32, ptr %6587, align 4, !tbaa !5
  %6589 = call ptr @s2n_strerror_debug(i32 noundef %6588, ptr noundef @.str.4)
  %6590 = call ptr @__errno_location() #11
  %6591 = load i32, ptr %6590, align 4, !tbaa !5
  %6592 = call ptr @strerror(i32 noundef %6591) #10
  %6593 = call ptr @__errno_location() #11
  %6594 = load i32, ptr %6593, align 4, !tbaa !5
  %6595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6582, ptr noundef @.str.2, i32 noundef %6583, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 384, ptr noundef %6586, ptr noundef %6589, ptr noundef %6592, i32 noundef %6594) #10
  br label %6613

6596:                                             ; preds = %6574, %6567
  %6597 = load i32, ptr %156, align 4, !tbaa !5
  %6598 = call ptr @__errno_location() #11
  store i32 %6597, ptr %6598, align 4, !tbaa !5
  %6599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6600 = load i32, ptr @test_count, align 4, !tbaa !5
  %6601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6602 = load i32, ptr %6601, align 4, !tbaa !5
  %6603 = call ptr @s2n_strerror(i32 noundef %6602, ptr noundef @.str.4)
  %6604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6605 = load i32, ptr %6604, align 4, !tbaa !5
  %6606 = call ptr @s2n_strerror_debug(i32 noundef %6605, ptr noundef @.str.4)
  %6607 = call ptr @__errno_location() #11
  %6608 = load i32, ptr %6607, align 4, !tbaa !5
  %6609 = call ptr @strerror(i32 noundef %6608) #10
  %6610 = call ptr @__errno_location() #11
  %6611 = load i32, ptr %6610, align 4, !tbaa !5
  %6612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6599, ptr noundef @.str.5, i32 noundef %6600, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 384, ptr noundef %6603, ptr noundef %6606, ptr noundef %6609, i32 noundef %6611) #10
  br label %6613

6613:                                             ; preds = %6596, %6579
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %6614

6614:                                             ; preds = %6613
  br label %6615

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

6616:                                             ; No predecessors!
  br label %6617

6617:                                             ; preds = %6616
  br label %6618

6618:                                             ; preds = %6617, %6559
  br label %6619

6619:                                             ; preds = %6618
  br label %6620

6620:                                             ; preds = %6619
  br label %6621

6621:                                             ; preds = %6620
  %6622 = load i32, ptr @test_count, align 4, !tbaa !5
  %6623 = add nsw i32 %6622, 1
  store i32 %6623, ptr @test_count, align 4, !tbaa !5
  %6624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6625 = load i32, ptr %6624, align 4, !tbaa !5
  %6626 = call ptr @s2n_strerror_debug(i32 noundef %6625, ptr noundef @.str.4)
  %6627 = icmp eq ptr %6626, null
  br i1 %6627, label %6628, label %6681

6628:                                             ; preds = %6621
  br label %6629

6629:                                             ; preds = %6628
  br label %6630

6630:                                             ; preds = %6629
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %6631 = call ptr @__errno_location() #11
  %6632 = load i32, ptr %6631, align 4, !tbaa !5
  store i32 %6632, ptr %157, align 4, !tbaa !5
  %6633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6634 = call i32 @s2n_print_stacktrace(ptr noundef %6633)
  %6635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6636 = trunc i8 %6635 to i1
  br i1 %6636, label %6637, label %6659

6637:                                             ; preds = %6630
  %6638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6639 = call i32 @fileno(ptr noundef %6638) #10
  %6640 = call i32 @isatty(i32 noundef %6639) #10
  %6641 = icmp ne i32 %6640, 0
  br i1 %6641, label %6642, label %6659

6642:                                             ; preds = %6637
  %6643 = load i32, ptr %157, align 4, !tbaa !5
  %6644 = call ptr @__errno_location() #11
  store i32 %6643, ptr %6644, align 4, !tbaa !5
  %6645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6646 = load i32, ptr @test_count, align 4, !tbaa !5
  %6647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6648 = load i32, ptr %6647, align 4, !tbaa !5
  %6649 = call ptr @s2n_strerror(i32 noundef %6648, ptr noundef @.str.4)
  %6650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6651 = load i32, ptr %6650, align 4, !tbaa !5
  %6652 = call ptr @s2n_strerror_debug(i32 noundef %6651, ptr noundef @.str.4)
  %6653 = call ptr @__errno_location() #11
  %6654 = load i32, ptr %6653, align 4, !tbaa !5
  %6655 = call ptr @strerror(i32 noundef %6654) #10
  %6656 = call ptr @__errno_location() #11
  %6657 = load i32, ptr %6656, align 4, !tbaa !5
  %6658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6645, ptr noundef @.str.2, i32 noundef %6646, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 384, ptr noundef %6649, ptr noundef %6652, ptr noundef %6655, i32 noundef %6657) #10
  br label %6676

6659:                                             ; preds = %6637, %6630
  %6660 = load i32, ptr %157, align 4, !tbaa !5
  %6661 = call ptr @__errno_location() #11
  store i32 %6660, ptr %6661, align 4, !tbaa !5
  %6662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6663 = load i32, ptr @test_count, align 4, !tbaa !5
  %6664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6665 = load i32, ptr %6664, align 4, !tbaa !5
  %6666 = call ptr @s2n_strerror(i32 noundef %6665, ptr noundef @.str.4)
  %6667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6668 = load i32, ptr %6667, align 4, !tbaa !5
  %6669 = call ptr @s2n_strerror_debug(i32 noundef %6668, ptr noundef @.str.4)
  %6670 = call ptr @__errno_location() #11
  %6671 = load i32, ptr %6670, align 4, !tbaa !5
  %6672 = call ptr @strerror(i32 noundef %6671) #10
  %6673 = call ptr @__errno_location() #11
  %6674 = load i32, ptr %6673, align 4, !tbaa !5
  %6675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6662, ptr noundef @.str.5, i32 noundef %6663, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 384, ptr noundef %6666, ptr noundef %6669, ptr noundef %6672, i32 noundef %6674) #10
  br label %6676

6676:                                             ; preds = %6659, %6642
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %6677

6677:                                             ; preds = %6676
  br label %6678

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

6679:                                             ; No predecessors!
  br label %6680

6680:                                             ; preds = %6679
  br label %6681

6681:                                             ; preds = %6680, %6621
  br label %6682

6682:                                             ; preds = %6681
  br label %6683

6683:                                             ; preds = %6682
  br label %6684

6684:                                             ; preds = %6683
  br label %6685

6685:                                             ; preds = %6684
  br label %6686

6686:                                             ; preds = %6685
  %6687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6687, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6688 = call ptr @__errno_location() #11
  store i32 0, ptr %6688, align 4, !tbaa !5
  br label %6689

6689:                                             ; preds = %6686
  br label %6690

6690:                                             ; preds = %6689
  br label %6691

6691:                                             ; preds = %6690
  br label %6692

6692:                                             ; preds = %6691
  %6693 = call i32 @s2n_stuffer_free(ptr noundef %137)
  call void @llvm.lifetime.end.p0(i64 40, ptr %137) #10
  %6694 = call i32 @s2n_connection_ptr_free(ptr noundef %135)
  %6695 = getelementptr inbounds %struct.s2n_result, ptr %158, i32 0, i32 0
  store i32 %6694, ptr %6695, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #10
  %6696 = call i32 @s2n_connection_ptr_free(ptr noundef %133)
  %6697 = getelementptr inbounds %struct.s2n_result, ptr %159, i32 0, i32 0
  store i32 %6696, ptr %6697, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #10
  %6698 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6698, ptr %160, align 8, !tbaa !9
  br label %6699

6699:                                             ; preds = %6692
  %6700 = load i32, ptr @test_count, align 4, !tbaa !5
  %6701 = add nsw i32 %6700, 1
  store i32 %6701, ptr @test_count, align 4, !tbaa !5
  %6702 = load ptr, ptr %160, align 8, !tbaa !9
  %6703 = icmp eq ptr %6702, null
  br i1 %6703, label %6704, label %6757

6704:                                             ; preds = %6699
  br label %6705

6705:                                             ; preds = %6704
  br label %6706

6706:                                             ; preds = %6705
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #10
  %6707 = call ptr @__errno_location() #11
  %6708 = load i32, ptr %6707, align 4, !tbaa !5
  store i32 %6708, ptr %161, align 4, !tbaa !5
  %6709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6710 = call i32 @s2n_print_stacktrace(ptr noundef %6709)
  %6711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6712 = trunc i8 %6711 to i1
  br i1 %6712, label %6713, label %6735

6713:                                             ; preds = %6706
  %6714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6715 = call i32 @fileno(ptr noundef %6714) #10
  %6716 = call i32 @isatty(i32 noundef %6715) #10
  %6717 = icmp ne i32 %6716, 0
  br i1 %6717, label %6718, label %6735

6718:                                             ; preds = %6713
  %6719 = load i32, ptr %161, align 4, !tbaa !5
  %6720 = call ptr @__errno_location() #11
  store i32 %6719, ptr %6720, align 4, !tbaa !5
  %6721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6722 = load i32, ptr @test_count, align 4, !tbaa !5
  %6723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6724 = load i32, ptr %6723, align 4, !tbaa !5
  %6725 = call ptr @s2n_strerror(i32 noundef %6724, ptr noundef @.str.4)
  %6726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6727 = load i32, ptr %6726, align 4, !tbaa !5
  %6728 = call ptr @s2n_strerror_debug(i32 noundef %6727, ptr noundef @.str.4)
  %6729 = call ptr @__errno_location() #11
  %6730 = load i32, ptr %6729, align 4, !tbaa !5
  %6731 = call ptr @strerror(i32 noundef %6730) #10
  %6732 = call ptr @__errno_location() #11
  %6733 = load i32, ptr %6732, align 4, !tbaa !5
  %6734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6721, ptr noundef @.str.2, i32 noundef %6722, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 398, ptr noundef %6725, ptr noundef %6728, ptr noundef %6731, i32 noundef %6733) #10
  br label %6752

6735:                                             ; preds = %6713, %6706
  %6736 = load i32, ptr %161, align 4, !tbaa !5
  %6737 = call ptr @__errno_location() #11
  store i32 %6736, ptr %6737, align 4, !tbaa !5
  %6738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6739 = load i32, ptr @test_count, align 4, !tbaa !5
  %6740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6741 = load i32, ptr %6740, align 4, !tbaa !5
  %6742 = call ptr @s2n_strerror(i32 noundef %6741, ptr noundef @.str.4)
  %6743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6744 = load i32, ptr %6743, align 4, !tbaa !5
  %6745 = call ptr @s2n_strerror_debug(i32 noundef %6744, ptr noundef @.str.4)
  %6746 = call ptr @__errno_location() #11
  %6747 = load i32, ptr %6746, align 4, !tbaa !5
  %6748 = call ptr @strerror(i32 noundef %6747) #10
  %6749 = call ptr @__errno_location() #11
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  %6751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6738, ptr noundef @.str.5, i32 noundef %6739, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 398, ptr noundef %6742, ptr noundef %6745, ptr noundef %6748, i32 noundef %6750) #10
  br label %6752

6752:                                             ; preds = %6735, %6718
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #10
  br label %6753

6753:                                             ; preds = %6752
  br label %6754

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

6755:                                             ; No predecessors!
  br label %6756

6756:                                             ; preds = %6755
  br label %6757

6757:                                             ; preds = %6756, %6699
  br label %6758

6758:                                             ; preds = %6757
  br label %6759

6759:                                             ; preds = %6758
  %6760 = load ptr, ptr %160, align 8, !tbaa !9
  %6761 = getelementptr inbounds %struct.s2n_connection, ptr %6760, i32 0, i32 52
  %6762 = getelementptr inbounds %struct.s2n_handshake, ptr %6761, i32 0, i32 11
  %6763 = load i8, ptr %6762, align 8
  %6764 = and i8 %6763, -9
  %6765 = or i8 %6764, 0
  store i8 %6765, ptr %6762, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #10
  %6766 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6766, ptr %162, align 8, !tbaa !9
  br label %6767

6767:                                             ; preds = %6759
  %6768 = load i32, ptr @test_count, align 4, !tbaa !5
  %6769 = add nsw i32 %6768, 1
  store i32 %6769, ptr @test_count, align 4, !tbaa !5
  %6770 = load ptr, ptr %162, align 8, !tbaa !9
  %6771 = icmp eq ptr %6770, null
  br i1 %6771, label %6772, label %6825

6772:                                             ; preds = %6767
  br label %6773

6773:                                             ; preds = %6772
  br label %6774

6774:                                             ; preds = %6773
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %6775 = call ptr @__errno_location() #11
  %6776 = load i32, ptr %6775, align 4, !tbaa !5
  store i32 %6776, ptr %163, align 4, !tbaa !5
  %6777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6778 = call i32 @s2n_print_stacktrace(ptr noundef %6777)
  %6779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6780 = trunc i8 %6779 to i1
  br i1 %6780, label %6781, label %6803

6781:                                             ; preds = %6774
  %6782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6783 = call i32 @fileno(ptr noundef %6782) #10
  %6784 = call i32 @isatty(i32 noundef %6783) #10
  %6785 = icmp ne i32 %6784, 0
  br i1 %6785, label %6786, label %6803

6786:                                             ; preds = %6781
  %6787 = load i32, ptr %163, align 4, !tbaa !5
  %6788 = call ptr @__errno_location() #11
  store i32 %6787, ptr %6788, align 4, !tbaa !5
  %6789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6790 = load i32, ptr @test_count, align 4, !tbaa !5
  %6791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6792 = load i32, ptr %6791, align 4, !tbaa !5
  %6793 = call ptr @s2n_strerror(i32 noundef %6792, ptr noundef @.str.4)
  %6794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6795 = load i32, ptr %6794, align 4, !tbaa !5
  %6796 = call ptr @s2n_strerror_debug(i32 noundef %6795, ptr noundef @.str.4)
  %6797 = call ptr @__errno_location() #11
  %6798 = load i32, ptr %6797, align 4, !tbaa !5
  %6799 = call ptr @strerror(i32 noundef %6798) #10
  %6800 = call ptr @__errno_location() #11
  %6801 = load i32, ptr %6800, align 4, !tbaa !5
  %6802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6789, ptr noundef @.str.2, i32 noundef %6790, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 403, ptr noundef %6793, ptr noundef %6796, ptr noundef %6799, i32 noundef %6801) #10
  br label %6820

6803:                                             ; preds = %6781, %6774
  %6804 = load i32, ptr %163, align 4, !tbaa !5
  %6805 = call ptr @__errno_location() #11
  store i32 %6804, ptr %6805, align 4, !tbaa !5
  %6806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6807 = load i32, ptr @test_count, align 4, !tbaa !5
  %6808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  %6810 = call ptr @s2n_strerror(i32 noundef %6809, ptr noundef @.str.4)
  %6811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  %6813 = call ptr @s2n_strerror_debug(i32 noundef %6812, ptr noundef @.str.4)
  %6814 = call ptr @__errno_location() #11
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  %6816 = call ptr @strerror(i32 noundef %6815) #10
  %6817 = call ptr @__errno_location() #11
  %6818 = load i32, ptr %6817, align 4, !tbaa !5
  %6819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6806, ptr noundef @.str.5, i32 noundef %6807, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 403, ptr noundef %6810, ptr noundef %6813, ptr noundef %6816, i32 noundef %6818) #10
  br label %6820

6820:                                             ; preds = %6803, %6786
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %6821

6821:                                             ; preds = %6820
  br label %6822

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

6823:                                             ; No predecessors!
  br label %6824

6824:                                             ; preds = %6823
  br label %6825

6825:                                             ; preds = %6824, %6767
  br label %6826

6826:                                             ; preds = %6825
  br label %6827

6827:                                             ; preds = %6826
  %6828 = load ptr, ptr %162, align 8, !tbaa !9
  %6829 = getelementptr inbounds %struct.s2n_connection, ptr %6828, i32 0, i32 52
  %6830 = getelementptr inbounds %struct.s2n_handshake, ptr %6829, i32 0, i32 11
  %6831 = load i8, ptr %6830, align 8
  %6832 = and i8 %6831, -9
  %6833 = or i8 %6832, 8
  store i8 %6833, ptr %6830, align 8
  %6834 = load ptr, ptr %162, align 8, !tbaa !9
  %6835 = load i32, ptr %6834, align 8
  %6836 = and i32 %6835, -9
  %6837 = or i32 %6836, 8
  store i32 %6837, ptr %6834, align 8
  br label %6838

6838:                                             ; preds = %6827
  %6839 = load i32, ptr @test_count, align 4, !tbaa !5
  %6840 = add nsw i32 %6839, 1
  store i32 %6840, ptr @test_count, align 4, !tbaa !5
  %6841 = load ptr, ptr %160, align 8, !tbaa !9
  %6842 = call i32 @s2n_client_hello_send(ptr noundef %6841)
  %6843 = icmp eq i32 %6842, -1
  br i1 %6843, label %6844, label %6897

6844:                                             ; preds = %6838
  br label %6845

6845:                                             ; preds = %6844
  br label %6846

6846:                                             ; preds = %6845
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #10
  %6847 = call ptr @__errno_location() #11
  %6848 = load i32, ptr %6847, align 4, !tbaa !5
  store i32 %6848, ptr %164, align 4, !tbaa !5
  %6849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6850 = call i32 @s2n_print_stacktrace(ptr noundef %6849)
  %6851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6852 = trunc i8 %6851 to i1
  br i1 %6852, label %6853, label %6875

6853:                                             ; preds = %6846
  %6854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6855 = call i32 @fileno(ptr noundef %6854) #10
  %6856 = call i32 @isatty(i32 noundef %6855) #10
  %6857 = icmp ne i32 %6856, 0
  br i1 %6857, label %6858, label %6875

6858:                                             ; preds = %6853
  %6859 = load i32, ptr %164, align 4, !tbaa !5
  %6860 = call ptr @__errno_location() #11
  store i32 %6859, ptr %6860, align 4, !tbaa !5
  %6861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6862 = load i32, ptr @test_count, align 4, !tbaa !5
  %6863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6864 = load i32, ptr %6863, align 4, !tbaa !5
  %6865 = call ptr @s2n_strerror(i32 noundef %6864, ptr noundef @.str.4)
  %6866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6867 = load i32, ptr %6866, align 4, !tbaa !5
  %6868 = call ptr @s2n_strerror_debug(i32 noundef %6867, ptr noundef @.str.4)
  %6869 = call ptr @__errno_location() #11
  %6870 = load i32, ptr %6869, align 4, !tbaa !5
  %6871 = call ptr @strerror(i32 noundef %6870) #10
  %6872 = call ptr @__errno_location() #11
  %6873 = load i32, ptr %6872, align 4, !tbaa !5
  %6874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6861, ptr noundef @.str.2, i32 noundef %6862, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 407, ptr noundef %6865, ptr noundef %6868, ptr noundef %6871, i32 noundef %6873) #10
  br label %6892

6875:                                             ; preds = %6853, %6846
  %6876 = load i32, ptr %164, align 4, !tbaa !5
  %6877 = call ptr @__errno_location() #11
  store i32 %6876, ptr %6877, align 4, !tbaa !5
  %6878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6879 = load i32, ptr @test_count, align 4, !tbaa !5
  %6880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6881 = load i32, ptr %6880, align 4, !tbaa !5
  %6882 = call ptr @s2n_strerror(i32 noundef %6881, ptr noundef @.str.4)
  %6883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6884 = load i32, ptr %6883, align 4, !tbaa !5
  %6885 = call ptr @s2n_strerror_debug(i32 noundef %6884, ptr noundef @.str.4)
  %6886 = call ptr @__errno_location() #11
  %6887 = load i32, ptr %6886, align 4, !tbaa !5
  %6888 = call ptr @strerror(i32 noundef %6887) #10
  %6889 = call ptr @__errno_location() #11
  %6890 = load i32, ptr %6889, align 4, !tbaa !5
  %6891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6878, ptr noundef @.str.5, i32 noundef %6879, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 407, ptr noundef %6882, ptr noundef %6885, ptr noundef %6888, i32 noundef %6890) #10
  br label %6892

6892:                                             ; preds = %6875, %6858
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #10
  br label %6893

6893:                                             ; preds = %6892
  br label %6894

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

6895:                                             ; No predecessors!
  br label %6896

6896:                                             ; preds = %6895
  br label %6897

6897:                                             ; preds = %6896, %6838
  br label %6898

6898:                                             ; preds = %6897
  br label %6899

6899:                                             ; preds = %6898
  br label %6900

6900:                                             ; preds = %6899
  %6901 = load i32, ptr @test_count, align 4, !tbaa !5
  %6902 = add nsw i32 %6901, 1
  store i32 %6902, ptr @test_count, align 4, !tbaa !5
  %6903 = load ptr, ptr %160, align 8, !tbaa !9
  %6904 = getelementptr inbounds %struct.s2n_connection, ptr %6903, i32 0, i32 52
  %6905 = getelementptr inbounds %struct.s2n_handshake, ptr %6904, i32 0, i32 0
  %6906 = load ptr, ptr %162, align 8, !tbaa !9
  %6907 = getelementptr inbounds %struct.s2n_connection, ptr %6906, i32 0, i32 52
  %6908 = getelementptr inbounds %struct.s2n_handshake, ptr %6907, i32 0, i32 0
  %6909 = load ptr, ptr %160, align 8, !tbaa !9
  %6910 = getelementptr inbounds %struct.s2n_connection, ptr %6909, i32 0, i32 52
  %6911 = getelementptr inbounds %struct.s2n_handshake, ptr %6910, i32 0, i32 0
  %6912 = getelementptr inbounds %struct.s2n_stuffer, ptr %6911, i32 0, i32 2
  %6913 = load i32, ptr %6912, align 4, !tbaa !45
  %6914 = load ptr, ptr %160, align 8, !tbaa !9
  %6915 = getelementptr inbounds %struct.s2n_connection, ptr %6914, i32 0, i32 52
  %6916 = getelementptr inbounds %struct.s2n_handshake, ptr %6915, i32 0, i32 0
  %6917 = getelementptr inbounds %struct.s2n_stuffer, ptr %6916, i32 0, i32 1
  %6918 = load i32, ptr %6917, align 8, !tbaa !46
  %6919 = sub i32 %6913, %6918
  %6920 = call i32 @s2n_stuffer_copy(ptr noundef %6905, ptr noundef %6908, i32 noundef %6919)
  %6921 = icmp eq i32 %6920, -1
  br i1 %6921, label %6922, label %6975

6922:                                             ; preds = %6900
  br label %6923

6923:                                             ; preds = %6922
  br label %6924

6924:                                             ; preds = %6923
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #10
  %6925 = call ptr @__errno_location() #11
  %6926 = load i32, ptr %6925, align 4, !tbaa !5
  store i32 %6926, ptr %165, align 4, !tbaa !5
  %6927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6928 = call i32 @s2n_print_stacktrace(ptr noundef %6927)
  %6929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6930 = trunc i8 %6929 to i1
  br i1 %6930, label %6931, label %6953

6931:                                             ; preds = %6924
  %6932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6933 = call i32 @fileno(ptr noundef %6932) #10
  %6934 = call i32 @isatty(i32 noundef %6933) #10
  %6935 = icmp ne i32 %6934, 0
  br i1 %6935, label %6936, label %6953

6936:                                             ; preds = %6931
  %6937 = load i32, ptr %165, align 4, !tbaa !5
  %6938 = call ptr @__errno_location() #11
  store i32 %6937, ptr %6938, align 4, !tbaa !5
  %6939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6940 = load i32, ptr @test_count, align 4, !tbaa !5
  %6941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6942 = load i32, ptr %6941, align 4, !tbaa !5
  %6943 = call ptr @s2n_strerror(i32 noundef %6942, ptr noundef @.str.4)
  %6944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6945 = load i32, ptr %6944, align 4, !tbaa !5
  %6946 = call ptr @s2n_strerror_debug(i32 noundef %6945, ptr noundef @.str.4)
  %6947 = call ptr @__errno_location() #11
  %6948 = load i32, ptr %6947, align 4, !tbaa !5
  %6949 = call ptr @strerror(i32 noundef %6948) #10
  %6950 = call ptr @__errno_location() #11
  %6951 = load i32, ptr %6950, align 4, !tbaa !5
  %6952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6939, ptr noundef @.str.2, i32 noundef %6940, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 409, ptr noundef %6943, ptr noundef %6946, ptr noundef %6949, i32 noundef %6951) #10
  br label %6970

6953:                                             ; preds = %6931, %6924
  %6954 = load i32, ptr %165, align 4, !tbaa !5
  %6955 = call ptr @__errno_location() #11
  store i32 %6954, ptr %6955, align 4, !tbaa !5
  %6956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6957 = load i32, ptr @test_count, align 4, !tbaa !5
  %6958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6959 = load i32, ptr %6958, align 4, !tbaa !5
  %6960 = call ptr @s2n_strerror(i32 noundef %6959, ptr noundef @.str.4)
  %6961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6962 = load i32, ptr %6961, align 4, !tbaa !5
  %6963 = call ptr @s2n_strerror_debug(i32 noundef %6962, ptr noundef @.str.4)
  %6964 = call ptr @__errno_location() #11
  %6965 = load i32, ptr %6964, align 4, !tbaa !5
  %6966 = call ptr @strerror(i32 noundef %6965) #10
  %6967 = call ptr @__errno_location() #11
  %6968 = load i32, ptr %6967, align 4, !tbaa !5
  %6969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6956, ptr noundef @.str.5, i32 noundef %6957, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 409, ptr noundef %6960, ptr noundef %6963, ptr noundef %6966, i32 noundef %6968) #10
  br label %6970

6970:                                             ; preds = %6953, %6936
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  br label %6971

6971:                                             ; preds = %6970
  br label %6972

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

6973:                                             ; No predecessors!
  br label %6974

6974:                                             ; preds = %6973
  br label %6975

6975:                                             ; preds = %6974, %6900
  br label %6976

6976:                                             ; preds = %6975
  br label %6977

6977:                                             ; preds = %6976
  br label %6978

6978:                                             ; preds = %6977
  br label %6979

6979:                                             ; preds = %6978
  br label %6980

6980:                                             ; preds = %6979
  %6981 = load i32, ptr @test_count, align 4, !tbaa !5
  %6982 = add nsw i32 %6981, 1
  store i32 %6982, ptr @test_count, align 4, !tbaa !5
  %6983 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_renegotiation_info_extension, i32 0, i32 6), align 8, !tbaa !63
  %6984 = load ptr, ptr %162, align 8, !tbaa !9
  %6985 = call i32 %6983(ptr noundef %6984)
  %6986 = icmp eq i32 %6985, -1
  br i1 %6986, label %7040, label %6987

6987:                                             ; preds = %6980
  br label %6988

6988:                                             ; preds = %6987
  br label %6989

6989:                                             ; preds = %6988
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #10
  %6990 = call ptr @__errno_location() #11
  %6991 = load i32, ptr %6990, align 4, !tbaa !5
  store i32 %6991, ptr %166, align 4, !tbaa !5
  %6992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6993 = call i32 @s2n_print_stacktrace(ptr noundef %6992)
  %6994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6995 = trunc i8 %6994 to i1
  br i1 %6995, label %6996, label %7018

6996:                                             ; preds = %6989
  %6997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6998 = call i32 @fileno(ptr noundef %6997) #10
  %6999 = call i32 @isatty(i32 noundef %6998) #10
  %7000 = icmp ne i32 %6999, 0
  br i1 %7000, label %7001, label %7018

7001:                                             ; preds = %6996
  %7002 = load i32, ptr %166, align 4, !tbaa !5
  %7003 = call ptr @__errno_location() #11
  store i32 %7002, ptr %7003, align 4, !tbaa !5
  %7004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7005 = load i32, ptr @test_count, align 4, !tbaa !5
  %7006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7007 = load i32, ptr %7006, align 4, !tbaa !5
  %7008 = call ptr @s2n_strerror(i32 noundef %7007, ptr noundef @.str.4)
  %7009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7010 = load i32, ptr %7009, align 4, !tbaa !5
  %7011 = call ptr @s2n_strerror_debug(i32 noundef %7010, ptr noundef @.str.4)
  %7012 = call ptr @__errno_location() #11
  %7013 = load i32, ptr %7012, align 4, !tbaa !5
  %7014 = call ptr @strerror(i32 noundef %7013) #10
  %7015 = call ptr @__errno_location() #11
  %7016 = load i32, ptr %7015, align 4, !tbaa !5
  %7017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7004, ptr noundef @.str.2, i32 noundef %7005, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 413, ptr noundef %7008, ptr noundef %7011, ptr noundef %7014, i32 noundef %7016) #10
  br label %7035

7018:                                             ; preds = %6996, %6989
  %7019 = load i32, ptr %166, align 4, !tbaa !5
  %7020 = call ptr @__errno_location() #11
  store i32 %7019, ptr %7020, align 4, !tbaa !5
  %7021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7022 = load i32, ptr @test_count, align 4, !tbaa !5
  %7023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7024 = load i32, ptr %7023, align 4, !tbaa !5
  %7025 = call ptr @s2n_strerror(i32 noundef %7024, ptr noundef @.str.4)
  %7026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7027 = load i32, ptr %7026, align 4, !tbaa !5
  %7028 = call ptr @s2n_strerror_debug(i32 noundef %7027, ptr noundef @.str.4)
  %7029 = call ptr @__errno_location() #11
  %7030 = load i32, ptr %7029, align 4, !tbaa !5
  %7031 = call ptr @strerror(i32 noundef %7030) #10
  %7032 = call ptr @__errno_location() #11
  %7033 = load i32, ptr %7032, align 4, !tbaa !5
  %7034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7021, ptr noundef @.str.5, i32 noundef %7022, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 413, ptr noundef %7025, ptr noundef %7028, ptr noundef %7031, i32 noundef %7033) #10
  br label %7035

7035:                                             ; preds = %7018, %7001
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #10
  br label %7036

7036:                                             ; preds = %7035
  br label %7037

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

7038:                                             ; No predecessors!
  br label %7039

7039:                                             ; preds = %7038
  br label %7040

7040:                                             ; preds = %7039, %6980
  br label %7041

7041:                                             ; preds = %7040
  br label %7042

7042:                                             ; preds = %7041
  br label %7043

7043:                                             ; preds = %7042
  %7044 = load i32, ptr @test_count, align 4, !tbaa !5
  %7045 = add nsw i32 %7044, 1
  store i32 %7045, ptr @test_count, align 4, !tbaa !5
  %7046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7047 = load i32, ptr %7046, align 4, !tbaa !5
  %7048 = icmp eq i32 %7047, 335544393
  br i1 %7048, label %7102, label %7049

7049:                                             ; preds = %7043
  br label %7050

7050:                                             ; preds = %7049
  br label %7051

7051:                                             ; preds = %7050
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #10
  %7052 = call ptr @__errno_location() #11
  %7053 = load i32, ptr %7052, align 4, !tbaa !5
  store i32 %7053, ptr %167, align 4, !tbaa !5
  %7054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7055 = call i32 @s2n_print_stacktrace(ptr noundef %7054)
  %7056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7057 = trunc i8 %7056 to i1
  br i1 %7057, label %7058, label %7080

7058:                                             ; preds = %7051
  %7059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7060 = call i32 @fileno(ptr noundef %7059) #10
  %7061 = call i32 @isatty(i32 noundef %7060) #10
  %7062 = icmp ne i32 %7061, 0
  br i1 %7062, label %7063, label %7080

7063:                                             ; preds = %7058
  %7064 = load i32, ptr %167, align 4, !tbaa !5
  %7065 = call ptr @__errno_location() #11
  store i32 %7064, ptr %7065, align 4, !tbaa !5
  %7066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7067 = load i32, ptr @test_count, align 4, !tbaa !5
  %7068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7069 = load i32, ptr %7068, align 4, !tbaa !5
  %7070 = call ptr @s2n_strerror(i32 noundef %7069, ptr noundef @.str.4)
  %7071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7072 = load i32, ptr %7071, align 4, !tbaa !5
  %7073 = call ptr @s2n_strerror_debug(i32 noundef %7072, ptr noundef @.str.4)
  %7074 = call ptr @__errno_location() #11
  %7075 = load i32, ptr %7074, align 4, !tbaa !5
  %7076 = call ptr @strerror(i32 noundef %7075) #10
  %7077 = call ptr @__errno_location() #11
  %7078 = load i32, ptr %7077, align 4, !tbaa !5
  %7079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7066, ptr noundef @.str.2, i32 noundef %7067, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 413, ptr noundef %7070, ptr noundef %7073, ptr noundef %7076, i32 noundef %7078) #10
  br label %7097

7080:                                             ; preds = %7058, %7051
  %7081 = load i32, ptr %167, align 4, !tbaa !5
  %7082 = call ptr @__errno_location() #11
  store i32 %7081, ptr %7082, align 4, !tbaa !5
  %7083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7084 = load i32, ptr @test_count, align 4, !tbaa !5
  %7085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7086 = load i32, ptr %7085, align 4, !tbaa !5
  %7087 = call ptr @s2n_strerror(i32 noundef %7086, ptr noundef @.str.4)
  %7088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7089 = load i32, ptr %7088, align 4, !tbaa !5
  %7090 = call ptr @s2n_strerror_debug(i32 noundef %7089, ptr noundef @.str.4)
  %7091 = call ptr @__errno_location() #11
  %7092 = load i32, ptr %7091, align 4, !tbaa !5
  %7093 = call ptr @strerror(i32 noundef %7092) #10
  %7094 = call ptr @__errno_location() #11
  %7095 = load i32, ptr %7094, align 4, !tbaa !5
  %7096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7083, ptr noundef @.str.5, i32 noundef %7084, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 413, ptr noundef %7087, ptr noundef %7090, ptr noundef %7093, i32 noundef %7095) #10
  br label %7097

7097:                                             ; preds = %7080, %7063
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #10
  br label %7098

7098:                                             ; preds = %7097
  br label %7099

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

7100:                                             ; No predecessors!
  br label %7101

7101:                                             ; preds = %7100
  br label %7102

7102:                                             ; preds = %7101, %7043
  br label %7103

7103:                                             ; preds = %7102
  br label %7104

7104:                                             ; preds = %7103
  br label %7105

7105:                                             ; preds = %7104
  %7106 = load i32, ptr @test_count, align 4, !tbaa !5
  %7107 = add nsw i32 %7106, 1
  store i32 %7107, ptr @test_count, align 4, !tbaa !5
  %7108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7109 = load i32, ptr %7108, align 4, !tbaa !5
  %7110 = call ptr @s2n_strerror_debug(i32 noundef %7109, ptr noundef @.str.4)
  %7111 = icmp eq ptr %7110, null
  br i1 %7111, label %7112, label %7165

7112:                                             ; preds = %7105
  br label %7113

7113:                                             ; preds = %7112
  br label %7114

7114:                                             ; preds = %7113
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #10
  %7115 = call ptr @__errno_location() #11
  %7116 = load i32, ptr %7115, align 4, !tbaa !5
  store i32 %7116, ptr %168, align 4, !tbaa !5
  %7117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7118 = call i32 @s2n_print_stacktrace(ptr noundef %7117)
  %7119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7120 = trunc i8 %7119 to i1
  br i1 %7120, label %7121, label %7143

7121:                                             ; preds = %7114
  %7122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7123 = call i32 @fileno(ptr noundef %7122) #10
  %7124 = call i32 @isatty(i32 noundef %7123) #10
  %7125 = icmp ne i32 %7124, 0
  br i1 %7125, label %7126, label %7143

7126:                                             ; preds = %7121
  %7127 = load i32, ptr %168, align 4, !tbaa !5
  %7128 = call ptr @__errno_location() #11
  store i32 %7127, ptr %7128, align 4, !tbaa !5
  %7129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7130 = load i32, ptr @test_count, align 4, !tbaa !5
  %7131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call ptr @s2n_strerror(i32 noundef %7132, ptr noundef @.str.4)
  %7134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7135 = load i32, ptr %7134, align 4, !tbaa !5
  %7136 = call ptr @s2n_strerror_debug(i32 noundef %7135, ptr noundef @.str.4)
  %7137 = call ptr @__errno_location() #11
  %7138 = load i32, ptr %7137, align 4, !tbaa !5
  %7139 = call ptr @strerror(i32 noundef %7138) #10
  %7140 = call ptr @__errno_location() #11
  %7141 = load i32, ptr %7140, align 4, !tbaa !5
  %7142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7129, ptr noundef @.str.2, i32 noundef %7130, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 413, ptr noundef %7133, ptr noundef %7136, ptr noundef %7139, i32 noundef %7141) #10
  br label %7160

7143:                                             ; preds = %7121, %7114
  %7144 = load i32, ptr %168, align 4, !tbaa !5
  %7145 = call ptr @__errno_location() #11
  store i32 %7144, ptr %7145, align 4, !tbaa !5
  %7146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7147 = load i32, ptr @test_count, align 4, !tbaa !5
  %7148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7149 = load i32, ptr %7148, align 4, !tbaa !5
  %7150 = call ptr @s2n_strerror(i32 noundef %7149, ptr noundef @.str.4)
  %7151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7152 = load i32, ptr %7151, align 4, !tbaa !5
  %7153 = call ptr @s2n_strerror_debug(i32 noundef %7152, ptr noundef @.str.4)
  %7154 = call ptr @__errno_location() #11
  %7155 = load i32, ptr %7154, align 4, !tbaa !5
  %7156 = call ptr @strerror(i32 noundef %7155) #10
  %7157 = call ptr @__errno_location() #11
  %7158 = load i32, ptr %7157, align 4, !tbaa !5
  %7159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7146, ptr noundef @.str.5, i32 noundef %7147, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 413, ptr noundef %7150, ptr noundef %7153, ptr noundef %7156, i32 noundef %7158) #10
  br label %7160

7160:                                             ; preds = %7143, %7126
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #10
  br label %7161

7161:                                             ; preds = %7160
  br label %7162

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

7163:                                             ; No predecessors!
  br label %7164

7164:                                             ; preds = %7163
  br label %7165

7165:                                             ; preds = %7164, %7105
  br label %7166

7166:                                             ; preds = %7165
  br label %7167

7167:                                             ; preds = %7166
  br label %7168

7168:                                             ; preds = %7167
  br label %7169

7169:                                             ; preds = %7168
  br label %7170

7170:                                             ; preds = %7169
  %7171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7171, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7172 = call ptr @__errno_location() #11
  store i32 0, ptr %7172, align 4, !tbaa !5
  br label %7173

7173:                                             ; preds = %7170
  br label %7174

7174:                                             ; preds = %7173
  br label %7175

7175:                                             ; preds = %7174
  br label %7176

7176:                                             ; preds = %7175
  br label %7177

7177:                                             ; preds = %7176
  br label %7178

7178:                                             ; preds = %7177
  br label %7179

7179:                                             ; preds = %7178
  %7180 = load i32, ptr @test_count, align 4, !tbaa !5
  %7181 = add nsw i32 %7180, 1
  store i32 %7181, ptr @test_count, align 4, !tbaa !5
  %7182 = load ptr, ptr %162, align 8, !tbaa !9
  %7183 = call i32 @s2n_client_hello_recv(ptr noundef %7182)
  %7184 = icmp eq i32 %7183, -1
  br i1 %7184, label %7238, label %7185

7185:                                             ; preds = %7179
  br label %7186

7186:                                             ; preds = %7185
  br label %7187

7187:                                             ; preds = %7186
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  %7188 = call ptr @__errno_location() #11
  %7189 = load i32, ptr %7188, align 4, !tbaa !5
  store i32 %7189, ptr %169, align 4, !tbaa !5
  %7190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7191 = call i32 @s2n_print_stacktrace(ptr noundef %7190)
  %7192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7193 = trunc i8 %7192 to i1
  br i1 %7193, label %7194, label %7216

7194:                                             ; preds = %7187
  %7195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7196 = call i32 @fileno(ptr noundef %7195) #10
  %7197 = call i32 @isatty(i32 noundef %7196) #10
  %7198 = icmp ne i32 %7197, 0
  br i1 %7198, label %7199, label %7216

7199:                                             ; preds = %7194
  %7200 = load i32, ptr %169, align 4, !tbaa !5
  %7201 = call ptr @__errno_location() #11
  store i32 %7200, ptr %7201, align 4, !tbaa !5
  %7202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7203 = load i32, ptr @test_count, align 4, !tbaa !5
  %7204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7205 = load i32, ptr %7204, align 4, !tbaa !5
  %7206 = call ptr @s2n_strerror(i32 noundef %7205, ptr noundef @.str.4)
  %7207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7208 = load i32, ptr %7207, align 4, !tbaa !5
  %7209 = call ptr @s2n_strerror_debug(i32 noundef %7208, ptr noundef @.str.4)
  %7210 = call ptr @__errno_location() #11
  %7211 = load i32, ptr %7210, align 4, !tbaa !5
  %7212 = call ptr @strerror(i32 noundef %7211) #10
  %7213 = call ptr @__errno_location() #11
  %7214 = load i32, ptr %7213, align 4, !tbaa !5
  %7215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7202, ptr noundef @.str.2, i32 noundef %7203, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 416, ptr noundef %7206, ptr noundef %7209, ptr noundef %7212, i32 noundef %7214) #10
  br label %7233

7216:                                             ; preds = %7194, %7187
  %7217 = load i32, ptr %169, align 4, !tbaa !5
  %7218 = call ptr @__errno_location() #11
  store i32 %7217, ptr %7218, align 4, !tbaa !5
  %7219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7220 = load i32, ptr @test_count, align 4, !tbaa !5
  %7221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7222 = load i32, ptr %7221, align 4, !tbaa !5
  %7223 = call ptr @s2n_strerror(i32 noundef %7222, ptr noundef @.str.4)
  %7224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7225 = load i32, ptr %7224, align 4, !tbaa !5
  %7226 = call ptr @s2n_strerror_debug(i32 noundef %7225, ptr noundef @.str.4)
  %7227 = call ptr @__errno_location() #11
  %7228 = load i32, ptr %7227, align 4, !tbaa !5
  %7229 = call ptr @strerror(i32 noundef %7228) #10
  %7230 = call ptr @__errno_location() #11
  %7231 = load i32, ptr %7230, align 4, !tbaa !5
  %7232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7219, ptr noundef @.str.5, i32 noundef %7220, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 416, ptr noundef %7223, ptr noundef %7226, ptr noundef %7229, i32 noundef %7231) #10
  br label %7233

7233:                                             ; preds = %7216, %7199
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  br label %7234

7234:                                             ; preds = %7233
  br label %7235

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

7236:                                             ; No predecessors!
  br label %7237

7237:                                             ; preds = %7236
  br label %7238

7238:                                             ; preds = %7237, %7179
  br label %7239

7239:                                             ; preds = %7238
  br label %7240

7240:                                             ; preds = %7239
  br label %7241

7241:                                             ; preds = %7240
  %7242 = load i32, ptr @test_count, align 4, !tbaa !5
  %7243 = add nsw i32 %7242, 1
  store i32 %7243, ptr @test_count, align 4, !tbaa !5
  %7244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7245 = load i32, ptr %7244, align 4, !tbaa !5
  %7246 = icmp eq i32 %7245, 335544393
  br i1 %7246, label %7300, label %7247

7247:                                             ; preds = %7241
  br label %7248

7248:                                             ; preds = %7247
  br label %7249

7249:                                             ; preds = %7248
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #10
  %7250 = call ptr @__errno_location() #11
  %7251 = load i32, ptr %7250, align 4, !tbaa !5
  store i32 %7251, ptr %170, align 4, !tbaa !5
  %7252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7253 = call i32 @s2n_print_stacktrace(ptr noundef %7252)
  %7254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7255 = trunc i8 %7254 to i1
  br i1 %7255, label %7256, label %7278

7256:                                             ; preds = %7249
  %7257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7258 = call i32 @fileno(ptr noundef %7257) #10
  %7259 = call i32 @isatty(i32 noundef %7258) #10
  %7260 = icmp ne i32 %7259, 0
  br i1 %7260, label %7261, label %7278

7261:                                             ; preds = %7256
  %7262 = load i32, ptr %170, align 4, !tbaa !5
  %7263 = call ptr @__errno_location() #11
  store i32 %7262, ptr %7263, align 4, !tbaa !5
  %7264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7265 = load i32, ptr @test_count, align 4, !tbaa !5
  %7266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7267 = load i32, ptr %7266, align 4, !tbaa !5
  %7268 = call ptr @s2n_strerror(i32 noundef %7267, ptr noundef @.str.4)
  %7269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7270 = load i32, ptr %7269, align 4, !tbaa !5
  %7271 = call ptr @s2n_strerror_debug(i32 noundef %7270, ptr noundef @.str.4)
  %7272 = call ptr @__errno_location() #11
  %7273 = load i32, ptr %7272, align 4, !tbaa !5
  %7274 = call ptr @strerror(i32 noundef %7273) #10
  %7275 = call ptr @__errno_location() #11
  %7276 = load i32, ptr %7275, align 4, !tbaa !5
  %7277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7264, ptr noundef @.str.2, i32 noundef %7265, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 416, ptr noundef %7268, ptr noundef %7271, ptr noundef %7274, i32 noundef %7276) #10
  br label %7295

7278:                                             ; preds = %7256, %7249
  %7279 = load i32, ptr %170, align 4, !tbaa !5
  %7280 = call ptr @__errno_location() #11
  store i32 %7279, ptr %7280, align 4, !tbaa !5
  %7281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7282 = load i32, ptr @test_count, align 4, !tbaa !5
  %7283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7284 = load i32, ptr %7283, align 4, !tbaa !5
  %7285 = call ptr @s2n_strerror(i32 noundef %7284, ptr noundef @.str.4)
  %7286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7287 = load i32, ptr %7286, align 4, !tbaa !5
  %7288 = call ptr @s2n_strerror_debug(i32 noundef %7287, ptr noundef @.str.4)
  %7289 = call ptr @__errno_location() #11
  %7290 = load i32, ptr %7289, align 4, !tbaa !5
  %7291 = call ptr @strerror(i32 noundef %7290) #10
  %7292 = call ptr @__errno_location() #11
  %7293 = load i32, ptr %7292, align 4, !tbaa !5
  %7294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7281, ptr noundef @.str.5, i32 noundef %7282, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 416, ptr noundef %7285, ptr noundef %7288, ptr noundef %7291, i32 noundef %7293) #10
  br label %7295

7295:                                             ; preds = %7278, %7261
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #10
  br label %7296

7296:                                             ; preds = %7295
  br label %7297

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

7298:                                             ; No predecessors!
  br label %7299

7299:                                             ; preds = %7298
  br label %7300

7300:                                             ; preds = %7299, %7241
  br label %7301

7301:                                             ; preds = %7300
  br label %7302

7302:                                             ; preds = %7301
  br label %7303

7303:                                             ; preds = %7302
  %7304 = load i32, ptr @test_count, align 4, !tbaa !5
  %7305 = add nsw i32 %7304, 1
  store i32 %7305, ptr @test_count, align 4, !tbaa !5
  %7306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7307 = load i32, ptr %7306, align 4, !tbaa !5
  %7308 = call ptr @s2n_strerror_debug(i32 noundef %7307, ptr noundef @.str.4)
  %7309 = icmp eq ptr %7308, null
  br i1 %7309, label %7310, label %7363

7310:                                             ; preds = %7303
  br label %7311

7311:                                             ; preds = %7310
  br label %7312

7312:                                             ; preds = %7311
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #10
  %7313 = call ptr @__errno_location() #11
  %7314 = load i32, ptr %7313, align 4, !tbaa !5
  store i32 %7314, ptr %171, align 4, !tbaa !5
  %7315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7316 = call i32 @s2n_print_stacktrace(ptr noundef %7315)
  %7317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7318 = trunc i8 %7317 to i1
  br i1 %7318, label %7319, label %7341

7319:                                             ; preds = %7312
  %7320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7321 = call i32 @fileno(ptr noundef %7320) #10
  %7322 = call i32 @isatty(i32 noundef %7321) #10
  %7323 = icmp ne i32 %7322, 0
  br i1 %7323, label %7324, label %7341

7324:                                             ; preds = %7319
  %7325 = load i32, ptr %171, align 4, !tbaa !5
  %7326 = call ptr @__errno_location() #11
  store i32 %7325, ptr %7326, align 4, !tbaa !5
  %7327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7328 = load i32, ptr @test_count, align 4, !tbaa !5
  %7329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call ptr @s2n_strerror(i32 noundef %7330, ptr noundef @.str.4)
  %7332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  %7334 = call ptr @s2n_strerror_debug(i32 noundef %7333, ptr noundef @.str.4)
  %7335 = call ptr @__errno_location() #11
  %7336 = load i32, ptr %7335, align 4, !tbaa !5
  %7337 = call ptr @strerror(i32 noundef %7336) #10
  %7338 = call ptr @__errno_location() #11
  %7339 = load i32, ptr %7338, align 4, !tbaa !5
  %7340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7327, ptr noundef @.str.2, i32 noundef %7328, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 416, ptr noundef %7331, ptr noundef %7334, ptr noundef %7337, i32 noundef %7339) #10
  br label %7358

7341:                                             ; preds = %7319, %7312
  %7342 = load i32, ptr %171, align 4, !tbaa !5
  %7343 = call ptr @__errno_location() #11
  store i32 %7342, ptr %7343, align 4, !tbaa !5
  %7344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7345 = load i32, ptr @test_count, align 4, !tbaa !5
  %7346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7347 = load i32, ptr %7346, align 4, !tbaa !5
  %7348 = call ptr @s2n_strerror(i32 noundef %7347, ptr noundef @.str.4)
  %7349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7350 = load i32, ptr %7349, align 4, !tbaa !5
  %7351 = call ptr @s2n_strerror_debug(i32 noundef %7350, ptr noundef @.str.4)
  %7352 = call ptr @__errno_location() #11
  %7353 = load i32, ptr %7352, align 4, !tbaa !5
  %7354 = call ptr @strerror(i32 noundef %7353) #10
  %7355 = call ptr @__errno_location() #11
  %7356 = load i32, ptr %7355, align 4, !tbaa !5
  %7357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7344, ptr noundef @.str.5, i32 noundef %7345, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 416, ptr noundef %7348, ptr noundef %7351, ptr noundef %7354, i32 noundef %7356) #10
  br label %7358

7358:                                             ; preds = %7341, %7324
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #10
  br label %7359

7359:                                             ; preds = %7358
  br label %7360

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

7361:                                             ; No predecessors!
  br label %7362

7362:                                             ; preds = %7361
  br label %7363

7363:                                             ; preds = %7362, %7303
  br label %7364

7364:                                             ; preds = %7363
  br label %7365

7365:                                             ; preds = %7364
  br label %7366

7366:                                             ; preds = %7365
  br label %7367

7367:                                             ; preds = %7366
  br label %7368

7368:                                             ; preds = %7367
  %7369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7369, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7370 = call ptr @__errno_location() #11
  store i32 0, ptr %7370, align 4, !tbaa !5
  br label %7371

7371:                                             ; preds = %7368
  br label %7372

7372:                                             ; preds = %7371
  br label %7373

7373:                                             ; preds = %7372
  br label %7374

7374:                                             ; preds = %7373
  %7375 = call i32 @s2n_connection_ptr_free(ptr noundef %162)
  %7376 = getelementptr inbounds %struct.s2n_result, ptr %172, i32 0, i32 0
  store i32 %7375, ptr %7376, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #10
  %7377 = call i32 @s2n_connection_ptr_free(ptr noundef %160)
  %7378 = getelementptr inbounds %struct.s2n_result, ptr %173, i32 0, i32 0
  store i32 %7377, ptr %7378, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #10
  %7379 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7379, ptr %174, align 8, !tbaa !9
  br label %7380

7380:                                             ; preds = %7374
  %7381 = load i32, ptr @test_count, align 4, !tbaa !5
  %7382 = add nsw i32 %7381, 1
  store i32 %7382, ptr @test_count, align 4, !tbaa !5
  %7383 = load ptr, ptr %174, align 8, !tbaa !9
  %7384 = icmp eq ptr %7383, null
  br i1 %7384, label %7385, label %7438

7385:                                             ; preds = %7380
  br label %7386

7386:                                             ; preds = %7385
  br label %7387

7387:                                             ; preds = %7386
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #10
  %7388 = call ptr @__errno_location() #11
  %7389 = load i32, ptr %7388, align 4, !tbaa !5
  store i32 %7389, ptr %175, align 4, !tbaa !5
  %7390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7391 = call i32 @s2n_print_stacktrace(ptr noundef %7390)
  %7392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7393 = trunc i8 %7392 to i1
  br i1 %7393, label %7394, label %7416

7394:                                             ; preds = %7387
  %7395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7396 = call i32 @fileno(ptr noundef %7395) #10
  %7397 = call i32 @isatty(i32 noundef %7396) #10
  %7398 = icmp ne i32 %7397, 0
  br i1 %7398, label %7399, label %7416

7399:                                             ; preds = %7394
  %7400 = load i32, ptr %175, align 4, !tbaa !5
  %7401 = call ptr @__errno_location() #11
  store i32 %7400, ptr %7401, align 4, !tbaa !5
  %7402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7403 = load i32, ptr @test_count, align 4, !tbaa !5
  %7404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7405 = load i32, ptr %7404, align 4, !tbaa !5
  %7406 = call ptr @s2n_strerror(i32 noundef %7405, ptr noundef @.str.4)
  %7407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7408 = load i32, ptr %7407, align 4, !tbaa !5
  %7409 = call ptr @s2n_strerror_debug(i32 noundef %7408, ptr noundef @.str.4)
  %7410 = call ptr @__errno_location() #11
  %7411 = load i32, ptr %7410, align 4, !tbaa !5
  %7412 = call ptr @strerror(i32 noundef %7411) #10
  %7413 = call ptr @__errno_location() #11
  %7414 = load i32, ptr %7413, align 4, !tbaa !5
  %7415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7402, ptr noundef @.str.2, i32 noundef %7403, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 430, ptr noundef %7406, ptr noundef %7409, ptr noundef %7412, i32 noundef %7414) #10
  br label %7433

7416:                                             ; preds = %7394, %7387
  %7417 = load i32, ptr %175, align 4, !tbaa !5
  %7418 = call ptr @__errno_location() #11
  store i32 %7417, ptr %7418, align 4, !tbaa !5
  %7419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7420 = load i32, ptr @test_count, align 4, !tbaa !5
  %7421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7422 = load i32, ptr %7421, align 4, !tbaa !5
  %7423 = call ptr @s2n_strerror(i32 noundef %7422, ptr noundef @.str.4)
  %7424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7425 = load i32, ptr %7424, align 4, !tbaa !5
  %7426 = call ptr @s2n_strerror_debug(i32 noundef %7425, ptr noundef @.str.4)
  %7427 = call ptr @__errno_location() #11
  %7428 = load i32, ptr %7427, align 4, !tbaa !5
  %7429 = call ptr @strerror(i32 noundef %7428) #10
  %7430 = call ptr @__errno_location() #11
  %7431 = load i32, ptr %7430, align 4, !tbaa !5
  %7432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7419, ptr noundef @.str.5, i32 noundef %7420, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 430, ptr noundef %7423, ptr noundef %7426, ptr noundef %7429, i32 noundef %7431) #10
  br label %7433

7433:                                             ; preds = %7416, %7399
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #10
  br label %7434

7434:                                             ; preds = %7433
  br label %7435

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

7436:                                             ; No predecessors!
  br label %7437

7437:                                             ; preds = %7436
  br label %7438

7438:                                             ; preds = %7437, %7380
  br label %7439

7439:                                             ; preds = %7438
  br label %7440

7440:                                             ; preds = %7439
  %7441 = load ptr, ptr %174, align 8, !tbaa !9
  %7442 = load i32, ptr %7441, align 8
  %7443 = and i32 %7442, -9
  %7444 = or i32 %7443, 8
  store i32 %7444, ptr %7441, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #10
  %7445 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7445, ptr %176, align 8, !tbaa !9
  br label %7446

7446:                                             ; preds = %7440
  %7447 = load i32, ptr @test_count, align 4, !tbaa !5
  %7448 = add nsw i32 %7447, 1
  store i32 %7448, ptr @test_count, align 4, !tbaa !5
  %7449 = load ptr, ptr %176, align 8, !tbaa !9
  %7450 = icmp eq ptr %7449, null
  br i1 %7450, label %7451, label %7504

7451:                                             ; preds = %7446
  br label %7452

7452:                                             ; preds = %7451
  br label %7453

7453:                                             ; preds = %7452
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #10
  %7454 = call ptr @__errno_location() #11
  %7455 = load i32, ptr %7454, align 4, !tbaa !5
  store i32 %7455, ptr %177, align 4, !tbaa !5
  %7456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7457 = call i32 @s2n_print_stacktrace(ptr noundef %7456)
  %7458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7459 = trunc i8 %7458 to i1
  br i1 %7459, label %7460, label %7482

7460:                                             ; preds = %7453
  %7461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7462 = call i32 @fileno(ptr noundef %7461) #10
  %7463 = call i32 @isatty(i32 noundef %7462) #10
  %7464 = icmp ne i32 %7463, 0
  br i1 %7464, label %7465, label %7482

7465:                                             ; preds = %7460
  %7466 = load i32, ptr %177, align 4, !tbaa !5
  %7467 = call ptr @__errno_location() #11
  store i32 %7466, ptr %7467, align 4, !tbaa !5
  %7468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7469 = load i32, ptr @test_count, align 4, !tbaa !5
  %7470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7471 = load i32, ptr %7470, align 4, !tbaa !5
  %7472 = call ptr @s2n_strerror(i32 noundef %7471, ptr noundef @.str.4)
  %7473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7474 = load i32, ptr %7473, align 4, !tbaa !5
  %7475 = call ptr @s2n_strerror_debug(i32 noundef %7474, ptr noundef @.str.4)
  %7476 = call ptr @__errno_location() #11
  %7477 = load i32, ptr %7476, align 4, !tbaa !5
  %7478 = call ptr @strerror(i32 noundef %7477) #10
  %7479 = call ptr @__errno_location() #11
  %7480 = load i32, ptr %7479, align 4, !tbaa !5
  %7481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7468, ptr noundef @.str.2, i32 noundef %7469, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 435, ptr noundef %7472, ptr noundef %7475, ptr noundef %7478, i32 noundef %7480) #10
  br label %7499

7482:                                             ; preds = %7460, %7453
  %7483 = load i32, ptr %177, align 4, !tbaa !5
  %7484 = call ptr @__errno_location() #11
  store i32 %7483, ptr %7484, align 4, !tbaa !5
  %7485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7486 = load i32, ptr @test_count, align 4, !tbaa !5
  %7487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7488 = load i32, ptr %7487, align 4, !tbaa !5
  %7489 = call ptr @s2n_strerror(i32 noundef %7488, ptr noundef @.str.4)
  %7490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7491 = load i32, ptr %7490, align 4, !tbaa !5
  %7492 = call ptr @s2n_strerror_debug(i32 noundef %7491, ptr noundef @.str.4)
  %7493 = call ptr @__errno_location() #11
  %7494 = load i32, ptr %7493, align 4, !tbaa !5
  %7495 = call ptr @strerror(i32 noundef %7494) #10
  %7496 = call ptr @__errno_location() #11
  %7497 = load i32, ptr %7496, align 4, !tbaa !5
  %7498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7485, ptr noundef @.str.5, i32 noundef %7486, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 435, ptr noundef %7489, ptr noundef %7492, ptr noundef %7495, i32 noundef %7497) #10
  br label %7499

7499:                                             ; preds = %7482, %7465
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #10
  br label %7500

7500:                                             ; preds = %7499
  br label %7501

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

7502:                                             ; No predecessors!
  br label %7503

7503:                                             ; preds = %7502
  br label %7504

7504:                                             ; preds = %7503, %7446
  br label %7505

7505:                                             ; preds = %7504
  br label %7506

7506:                                             ; preds = %7505
  br label %7507

7507:                                             ; preds = %7506
  %7508 = load i32, ptr @test_count, align 4, !tbaa !5
  %7509 = add nsw i32 %7508, 1
  store i32 %7509, ptr @test_count, align 4, !tbaa !5
  %7510 = load ptr, ptr %176, align 8, !tbaa !9
  %7511 = load ptr, ptr %14, align 8, !tbaa !9
  %7512 = call i32 @s2n_connection_set_config(ptr noundef %7510, ptr noundef %7511)
  %7513 = icmp eq i32 %7512, -1
  br i1 %7513, label %7514, label %7567

7514:                                             ; preds = %7507
  br label %7515

7515:                                             ; preds = %7514
  br label %7516

7516:                                             ; preds = %7515
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %7517 = call ptr @__errno_location() #11
  %7518 = load i32, ptr %7517, align 4, !tbaa !5
  store i32 %7518, ptr %178, align 4, !tbaa !5
  %7519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7520 = call i32 @s2n_print_stacktrace(ptr noundef %7519)
  %7521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7522 = trunc i8 %7521 to i1
  br i1 %7522, label %7523, label %7545

7523:                                             ; preds = %7516
  %7524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7525 = call i32 @fileno(ptr noundef %7524) #10
  %7526 = call i32 @isatty(i32 noundef %7525) #10
  %7527 = icmp ne i32 %7526, 0
  br i1 %7527, label %7528, label %7545

7528:                                             ; preds = %7523
  %7529 = load i32, ptr %178, align 4, !tbaa !5
  %7530 = call ptr @__errno_location() #11
  store i32 %7529, ptr %7530, align 4, !tbaa !5
  %7531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7532 = load i32, ptr @test_count, align 4, !tbaa !5
  %7533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7534 = load i32, ptr %7533, align 4, !tbaa !5
  %7535 = call ptr @s2n_strerror(i32 noundef %7534, ptr noundef @.str.4)
  %7536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7537 = load i32, ptr %7536, align 4, !tbaa !5
  %7538 = call ptr @s2n_strerror_debug(i32 noundef %7537, ptr noundef @.str.4)
  %7539 = call ptr @__errno_location() #11
  %7540 = load i32, ptr %7539, align 4, !tbaa !5
  %7541 = call ptr @strerror(i32 noundef %7540) #10
  %7542 = call ptr @__errno_location() #11
  %7543 = load i32, ptr %7542, align 4, !tbaa !5
  %7544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7531, ptr noundef @.str.2, i32 noundef %7532, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 436, ptr noundef %7535, ptr noundef %7538, ptr noundef %7541, i32 noundef %7543) #10
  br label %7562

7545:                                             ; preds = %7523, %7516
  %7546 = load i32, ptr %178, align 4, !tbaa !5
  %7547 = call ptr @__errno_location() #11
  store i32 %7546, ptr %7547, align 4, !tbaa !5
  %7548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7549 = load i32, ptr @test_count, align 4, !tbaa !5
  %7550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7551 = load i32, ptr %7550, align 4, !tbaa !5
  %7552 = call ptr @s2n_strerror(i32 noundef %7551, ptr noundef @.str.4)
  %7553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7554 = load i32, ptr %7553, align 4, !tbaa !5
  %7555 = call ptr @s2n_strerror_debug(i32 noundef %7554, ptr noundef @.str.4)
  %7556 = call ptr @__errno_location() #11
  %7557 = load i32, ptr %7556, align 4, !tbaa !5
  %7558 = call ptr @strerror(i32 noundef %7557) #10
  %7559 = call ptr @__errno_location() #11
  %7560 = load i32, ptr %7559, align 4, !tbaa !5
  %7561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7548, ptr noundef @.str.5, i32 noundef %7549, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 436, ptr noundef %7552, ptr noundef %7555, ptr noundef %7558, i32 noundef %7560) #10
  br label %7562

7562:                                             ; preds = %7545, %7528
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %7563

7563:                                             ; preds = %7562
  br label %7564

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

7565:                                             ; No predecessors!
  br label %7566

7566:                                             ; preds = %7565
  br label %7567

7567:                                             ; preds = %7566, %7507
  br label %7568

7568:                                             ; preds = %7567
  br label %7569

7569:                                             ; preds = %7568
  %7570 = load ptr, ptr %176, align 8, !tbaa !9
  %7571 = load i32, ptr %7570, align 8
  %7572 = and i32 %7571, -9
  %7573 = or i32 %7572, 8
  store i32 %7573, ptr %7570, align 8
  call void @llvm.lifetime.start.p0(i64 104, ptr %179) #10
  call void @llvm.memset.p0.i64(ptr align 8 %179, i8 0, i64 104, i1 false)
  %7574 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %179, i32 0, i32 0
  store i8 1, ptr %7574, align 8
  %7575 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %179, i32 0, i32 3
  %7576 = getelementptr inbounds [2 x i8], ptr %7575, i32 0, i32 1
  store i8 -1, ptr %7576, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %180) #10
  store ptr %179, ptr %180, align 8, !tbaa !9
  %7577 = getelementptr inbounds ptr, ptr %180, i64 1
  store ptr @s2n_ecdhe_rsa_with_aes_128_gcm_sha256, ptr %7577, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %181) #10
  %7578 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %181, i32 0, i32 0
  store i16 2, ptr %7578, align 8, !tbaa !64
  %7579 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %181, i32 0, i32 1
  %7580 = getelementptr inbounds [2 x ptr], ptr %180, i64 0, i64 0
  store ptr %7580, ptr %7579, align 8, !tbaa !66
  %7581 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %181, i32 0, i32 2
  store i8 0, ptr %7581, align 8, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 64, ptr %182) #10
  %7582 = load ptr, ptr %14, align 8, !tbaa !9
  %7583 = getelementptr inbounds %struct.s2n_config, ptr %7582, i32 0, i32 7
  %7584 = load ptr, ptr %7583, align 8, !tbaa !68
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %182, ptr align 8 %7584, i64 64, i1 false), !tbaa.struct !72
  %7585 = getelementptr inbounds %struct.s2n_security_policy, ptr %182, i32 0, i32 1
  store ptr %181, ptr %7585, align 8, !tbaa !73
  %7586 = load ptr, ptr %174, align 8, !tbaa !9
  %7587 = getelementptr inbounds %struct.s2n_connection, ptr %7586, i32 0, i32 2
  store ptr %182, ptr %7587, align 8, !tbaa !75
  br label %7588

7588:                                             ; preds = %7569
  %7589 = load i32, ptr @test_count, align 4, !tbaa !5
  %7590 = add nsw i32 %7589, 1
  store i32 %7590, ptr @test_count, align 4, !tbaa !5
  %7591 = load ptr, ptr %174, align 8, !tbaa !9
  %7592 = call i32 @s2n_client_hello_send(ptr noundef %7591)
  %7593 = icmp eq i32 %7592, -1
  br i1 %7593, label %7594, label %7647

7594:                                             ; preds = %7588
  br label %7595

7595:                                             ; preds = %7594
  br label %7596

7596:                                             ; preds = %7595
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  %7597 = call ptr @__errno_location() #11
  %7598 = load i32, ptr %7597, align 4, !tbaa !5
  store i32 %7598, ptr %183, align 4, !tbaa !5
  %7599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7600 = call i32 @s2n_print_stacktrace(ptr noundef %7599)
  %7601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7602 = trunc i8 %7601 to i1
  br i1 %7602, label %7603, label %7625

7603:                                             ; preds = %7596
  %7604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7605 = call i32 @fileno(ptr noundef %7604) #10
  %7606 = call i32 @isatty(i32 noundef %7605) #10
  %7607 = icmp ne i32 %7606, 0
  br i1 %7607, label %7608, label %7625

7608:                                             ; preds = %7603
  %7609 = load i32, ptr %183, align 4, !tbaa !5
  %7610 = call ptr @__errno_location() #11
  store i32 %7609, ptr %7610, align 4, !tbaa !5
  %7611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7612 = load i32, ptr @test_count, align 4, !tbaa !5
  %7613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7614 = load i32, ptr %7613, align 4, !tbaa !5
  %7615 = call ptr @s2n_strerror(i32 noundef %7614, ptr noundef @.str.4)
  %7616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7617 = load i32, ptr %7616, align 4, !tbaa !5
  %7618 = call ptr @s2n_strerror_debug(i32 noundef %7617, ptr noundef @.str.4)
  %7619 = call ptr @__errno_location() #11
  %7620 = load i32, ptr %7619, align 4, !tbaa !5
  %7621 = call ptr @strerror(i32 noundef %7620) #10
  %7622 = call ptr @__errno_location() #11
  %7623 = load i32, ptr %7622, align 4, !tbaa !5
  %7624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7611, ptr noundef @.str.2, i32 noundef %7612, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 454, ptr noundef %7615, ptr noundef %7618, ptr noundef %7621, i32 noundef %7623) #10
  br label %7642

7625:                                             ; preds = %7603, %7596
  %7626 = load i32, ptr %183, align 4, !tbaa !5
  %7627 = call ptr @__errno_location() #11
  store i32 %7626, ptr %7627, align 4, !tbaa !5
  %7628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7629 = load i32, ptr @test_count, align 4, !tbaa !5
  %7630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7631 = load i32, ptr %7630, align 4, !tbaa !5
  %7632 = call ptr @s2n_strerror(i32 noundef %7631, ptr noundef @.str.4)
  %7633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7634 = load i32, ptr %7633, align 4, !tbaa !5
  %7635 = call ptr @s2n_strerror_debug(i32 noundef %7634, ptr noundef @.str.4)
  %7636 = call ptr @__errno_location() #11
  %7637 = load i32, ptr %7636, align 4, !tbaa !5
  %7638 = call ptr @strerror(i32 noundef %7637) #10
  %7639 = call ptr @__errno_location() #11
  %7640 = load i32, ptr %7639, align 4, !tbaa !5
  %7641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7628, ptr noundef @.str.5, i32 noundef %7629, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 454, ptr noundef %7632, ptr noundef %7635, ptr noundef %7638, i32 noundef %7640) #10
  br label %7642

7642:                                             ; preds = %7625, %7608
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %7643

7643:                                             ; preds = %7642
  br label %7644

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

7645:                                             ; No predecessors!
  br label %7646

7646:                                             ; preds = %7645
  br label %7647

7647:                                             ; preds = %7646, %7588
  br label %7648

7648:                                             ; preds = %7647
  br label %7649

7649:                                             ; preds = %7648
  br label %7650

7650:                                             ; preds = %7649
  %7651 = load i32, ptr @test_count, align 4, !tbaa !5
  %7652 = add nsw i32 %7651, 1
  store i32 %7652, ptr @test_count, align 4, !tbaa !5
  %7653 = load ptr, ptr %174, align 8, !tbaa !9
  %7654 = getelementptr inbounds %struct.s2n_connection, ptr %7653, i32 0, i32 52
  %7655 = getelementptr inbounds %struct.s2n_handshake, ptr %7654, i32 0, i32 0
  %7656 = load ptr, ptr %176, align 8, !tbaa !9
  %7657 = getelementptr inbounds %struct.s2n_connection, ptr %7656, i32 0, i32 52
  %7658 = getelementptr inbounds %struct.s2n_handshake, ptr %7657, i32 0, i32 0
  %7659 = load ptr, ptr %174, align 8, !tbaa !9
  %7660 = getelementptr inbounds %struct.s2n_connection, ptr %7659, i32 0, i32 52
  %7661 = getelementptr inbounds %struct.s2n_handshake, ptr %7660, i32 0, i32 0
  %7662 = getelementptr inbounds %struct.s2n_stuffer, ptr %7661, i32 0, i32 2
  %7663 = load i32, ptr %7662, align 4, !tbaa !45
  %7664 = load ptr, ptr %174, align 8, !tbaa !9
  %7665 = getelementptr inbounds %struct.s2n_connection, ptr %7664, i32 0, i32 52
  %7666 = getelementptr inbounds %struct.s2n_handshake, ptr %7665, i32 0, i32 0
  %7667 = getelementptr inbounds %struct.s2n_stuffer, ptr %7666, i32 0, i32 1
  %7668 = load i32, ptr %7667, align 8, !tbaa !46
  %7669 = sub i32 %7663, %7668
  %7670 = call i32 @s2n_stuffer_copy(ptr noundef %7655, ptr noundef %7658, i32 noundef %7669)
  %7671 = icmp eq i32 %7670, -1
  br i1 %7671, label %7672, label %7725

7672:                                             ; preds = %7650
  br label %7673

7673:                                             ; preds = %7672
  br label %7674

7674:                                             ; preds = %7673
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #10
  %7675 = call ptr @__errno_location() #11
  %7676 = load i32, ptr %7675, align 4, !tbaa !5
  store i32 %7676, ptr %184, align 4, !tbaa !5
  %7677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7678 = call i32 @s2n_print_stacktrace(ptr noundef %7677)
  %7679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7680 = trunc i8 %7679 to i1
  br i1 %7680, label %7681, label %7703

7681:                                             ; preds = %7674
  %7682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7683 = call i32 @fileno(ptr noundef %7682) #10
  %7684 = call i32 @isatty(i32 noundef %7683) #10
  %7685 = icmp ne i32 %7684, 0
  br i1 %7685, label %7686, label %7703

7686:                                             ; preds = %7681
  %7687 = load i32, ptr %184, align 4, !tbaa !5
  %7688 = call ptr @__errno_location() #11
  store i32 %7687, ptr %7688, align 4, !tbaa !5
  %7689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7690 = load i32, ptr @test_count, align 4, !tbaa !5
  %7691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7692 = load i32, ptr %7691, align 4, !tbaa !5
  %7693 = call ptr @s2n_strerror(i32 noundef %7692, ptr noundef @.str.4)
  %7694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7695 = load i32, ptr %7694, align 4, !tbaa !5
  %7696 = call ptr @s2n_strerror_debug(i32 noundef %7695, ptr noundef @.str.4)
  %7697 = call ptr @__errno_location() #11
  %7698 = load i32, ptr %7697, align 4, !tbaa !5
  %7699 = call ptr @strerror(i32 noundef %7698) #10
  %7700 = call ptr @__errno_location() #11
  %7701 = load i32, ptr %7700, align 4, !tbaa !5
  %7702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7689, ptr noundef @.str.2, i32 noundef %7690, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 456, ptr noundef %7693, ptr noundef %7696, ptr noundef %7699, i32 noundef %7701) #10
  br label %7720

7703:                                             ; preds = %7681, %7674
  %7704 = load i32, ptr %184, align 4, !tbaa !5
  %7705 = call ptr @__errno_location() #11
  store i32 %7704, ptr %7705, align 4, !tbaa !5
  %7706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7707 = load i32, ptr @test_count, align 4, !tbaa !5
  %7708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7709 = load i32, ptr %7708, align 4, !tbaa !5
  %7710 = call ptr @s2n_strerror(i32 noundef %7709, ptr noundef @.str.4)
  %7711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7712 = load i32, ptr %7711, align 4, !tbaa !5
  %7713 = call ptr @s2n_strerror_debug(i32 noundef %7712, ptr noundef @.str.4)
  %7714 = call ptr @__errno_location() #11
  %7715 = load i32, ptr %7714, align 4, !tbaa !5
  %7716 = call ptr @strerror(i32 noundef %7715) #10
  %7717 = call ptr @__errno_location() #11
  %7718 = load i32, ptr %7717, align 4, !tbaa !5
  %7719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7706, ptr noundef @.str.5, i32 noundef %7707, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 456, ptr noundef %7710, ptr noundef %7713, ptr noundef %7716, i32 noundef %7718) #10
  br label %7720

7720:                                             ; preds = %7703, %7686
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #10
  br label %7721

7721:                                             ; preds = %7720
  br label %7722

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

7723:                                             ; No predecessors!
  br label %7724

7724:                                             ; preds = %7723
  br label %7725

7725:                                             ; preds = %7724, %7650
  br label %7726

7726:                                             ; preds = %7725
  br label %7727

7727:                                             ; preds = %7726
  br label %7728

7728:                                             ; preds = %7727
  %7729 = load i32, ptr @test_count, align 4, !tbaa !5
  %7730 = add nsw i32 %7729, 1
  store i32 %7730, ptr @test_count, align 4, !tbaa !5
  %7731 = load ptr, ptr %176, align 8, !tbaa !9
  %7732 = call i32 @s2n_client_hello_recv(ptr noundef %7731)
  %7733 = icmp eq i32 %7732, -1
  br i1 %7733, label %7734, label %7787

7734:                                             ; preds = %7728
  br label %7735

7735:                                             ; preds = %7734
  br label %7736

7736:                                             ; preds = %7735
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #10
  %7737 = call ptr @__errno_location() #11
  %7738 = load i32, ptr %7737, align 4, !tbaa !5
  store i32 %7738, ptr %185, align 4, !tbaa !5
  %7739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7740 = call i32 @s2n_print_stacktrace(ptr noundef %7739)
  %7741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7742 = trunc i8 %7741 to i1
  br i1 %7742, label %7743, label %7765

7743:                                             ; preds = %7736
  %7744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7745 = call i32 @fileno(ptr noundef %7744) #10
  %7746 = call i32 @isatty(i32 noundef %7745) #10
  %7747 = icmp ne i32 %7746, 0
  br i1 %7747, label %7748, label %7765

7748:                                             ; preds = %7743
  %7749 = load i32, ptr %185, align 4, !tbaa !5
  %7750 = call ptr @__errno_location() #11
  store i32 %7749, ptr %7750, align 4, !tbaa !5
  %7751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7752 = load i32, ptr @test_count, align 4, !tbaa !5
  %7753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7754 = load i32, ptr %7753, align 4, !tbaa !5
  %7755 = call ptr @s2n_strerror(i32 noundef %7754, ptr noundef @.str.4)
  %7756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7757 = load i32, ptr %7756, align 4, !tbaa !5
  %7758 = call ptr @s2n_strerror_debug(i32 noundef %7757, ptr noundef @.str.4)
  %7759 = call ptr @__errno_location() #11
  %7760 = load i32, ptr %7759, align 4, !tbaa !5
  %7761 = call ptr @strerror(i32 noundef %7760) #10
  %7762 = call ptr @__errno_location() #11
  %7763 = load i32, ptr %7762, align 4, !tbaa !5
  %7764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7751, ptr noundef @.str.2, i32 noundef %7752, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 457, ptr noundef %7755, ptr noundef %7758, ptr noundef %7761, i32 noundef %7763) #10
  br label %7782

7765:                                             ; preds = %7743, %7736
  %7766 = load i32, ptr %185, align 4, !tbaa !5
  %7767 = call ptr @__errno_location() #11
  store i32 %7766, ptr %7767, align 4, !tbaa !5
  %7768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7769 = load i32, ptr @test_count, align 4, !tbaa !5
  %7770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7771 = load i32, ptr %7770, align 4, !tbaa !5
  %7772 = call ptr @s2n_strerror(i32 noundef %7771, ptr noundef @.str.4)
  %7773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7774 = load i32, ptr %7773, align 4, !tbaa !5
  %7775 = call ptr @s2n_strerror_debug(i32 noundef %7774, ptr noundef @.str.4)
  %7776 = call ptr @__errno_location() #11
  %7777 = load i32, ptr %7776, align 4, !tbaa !5
  %7778 = call ptr @strerror(i32 noundef %7777) #10
  %7779 = call ptr @__errno_location() #11
  %7780 = load i32, ptr %7779, align 4, !tbaa !5
  %7781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7768, ptr noundef @.str.5, i32 noundef %7769, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 457, ptr noundef %7772, ptr noundef %7775, ptr noundef %7778, i32 noundef %7780) #10
  br label %7782

7782:                                             ; preds = %7765, %7748
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #10
  br label %7783

7783:                                             ; preds = %7782
  br label %7784

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

7785:                                             ; No predecessors!
  br label %7786

7786:                                             ; preds = %7785
  br label %7787

7787:                                             ; preds = %7786, %7728
  br label %7788

7788:                                             ; preds = %7787
  br label %7789

7789:                                             ; preds = %7788
  %7790 = load ptr, ptr %174, align 8, !tbaa !9
  %7791 = getelementptr inbounds %struct.s2n_connection, ptr %7790, i32 0, i32 52
  %7792 = getelementptr inbounds %struct.s2n_handshake, ptr %7791, i32 0, i32 11
  %7793 = load i8, ptr %7792, align 8
  %7794 = and i8 %7793, -9
  %7795 = or i8 %7794, 8
  store i8 %7795, ptr %7792, align 8
  br label %7796

7796:                                             ; preds = %7789
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #10
  store i64 19, ptr %186, align 8, !tbaa !47
  %7797 = load i64, ptr %186, align 8, !tbaa !47
  %7798 = icmp ne i64 %7797, 0
  br i1 %7798, label %7799, label %7861

7799:                                             ; preds = %7796
  %7800 = load ptr, ptr %174, align 8, !tbaa !9
  %7801 = getelementptr inbounds %struct.s2n_connection, ptr %7800, i32 0, i32 52
  %7802 = getelementptr inbounds %struct.s2n_handshake, ptr %7801, i32 0, i32 4
  %7803 = getelementptr inbounds [48 x i8], ptr %7802, i64 0, i64 0
  %7804 = getelementptr inbounds [19 x i8], ptr %11, i64 0, i64 0
  %7805 = load i64, ptr %186, align 8, !tbaa !47
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %7803, ptr align 16 %7804, i64 %7805, i1 false)
  %7806 = icmp eq ptr %7803, null
  br i1 %7806, label %7807, label %7860

7807:                                             ; preds = %7799
  br label %7808

7808:                                             ; preds = %7807
  br label %7809

7809:                                             ; preds = %7808
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #10
  %7810 = call ptr @__errno_location() #11
  %7811 = load i32, ptr %7810, align 4, !tbaa !5
  store i32 %7811, ptr %187, align 4, !tbaa !5
  %7812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7813 = call i32 @s2n_print_stacktrace(ptr noundef %7812)
  %7814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7815 = trunc i8 %7814 to i1
  br i1 %7815, label %7816, label %7838

7816:                                             ; preds = %7809
  %7817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7818 = call i32 @fileno(ptr noundef %7817) #10
  %7819 = call i32 @isatty(i32 noundef %7818) #10
  %7820 = icmp ne i32 %7819, 0
  br i1 %7820, label %7821, label %7838

7821:                                             ; preds = %7816
  %7822 = load i32, ptr %187, align 4, !tbaa !5
  %7823 = call ptr @__errno_location() #11
  store i32 %7822, ptr %7823, align 4, !tbaa !5
  %7824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7825 = load i32, ptr @test_count, align 4, !tbaa !5
  %7826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7827 = load i32, ptr %7826, align 4, !tbaa !5
  %7828 = call ptr @s2n_strerror(i32 noundef %7827, ptr noundef @.str.4)
  %7829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7830 = load i32, ptr %7829, align 4, !tbaa !5
  %7831 = call ptr @s2n_strerror_debug(i32 noundef %7830, ptr noundef @.str.4)
  %7832 = call ptr @__errno_location() #11
  %7833 = load i32, ptr %7832, align 4, !tbaa !5
  %7834 = call ptr @strerror(i32 noundef %7833) #10
  %7835 = call ptr @__errno_location() #11
  %7836 = load i32, ptr %7835, align 4, !tbaa !5
  %7837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7824, ptr noundef @.str.2, i32 noundef %7825, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 461, ptr noundef %7828, ptr noundef %7831, ptr noundef %7834, i32 noundef %7836) #10
  br label %7855

7838:                                             ; preds = %7816, %7809
  %7839 = load i32, ptr %187, align 4, !tbaa !5
  %7840 = call ptr @__errno_location() #11
  store i32 %7839, ptr %7840, align 4, !tbaa !5
  %7841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7842 = load i32, ptr @test_count, align 4, !tbaa !5
  %7843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7844 = load i32, ptr %7843, align 4, !tbaa !5
  %7845 = call ptr @s2n_strerror(i32 noundef %7844, ptr noundef @.str.4)
  %7846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7847 = load i32, ptr %7846, align 4, !tbaa !5
  %7848 = call ptr @s2n_strerror_debug(i32 noundef %7847, ptr noundef @.str.4)
  %7849 = call ptr @__errno_location() #11
  %7850 = load i32, ptr %7849, align 4, !tbaa !5
  %7851 = call ptr @strerror(i32 noundef %7850) #10
  %7852 = call ptr @__errno_location() #11
  %7853 = load i32, ptr %7852, align 4, !tbaa !5
  %7854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7841, ptr noundef @.str.5, i32 noundef %7842, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 461, ptr noundef %7845, ptr noundef %7848, ptr noundef %7851, i32 noundef %7853) #10
  br label %7855

7855:                                             ; preds = %7838, %7821
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #10
  br label %7856

7856:                                             ; preds = %7855
  br label %7857

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

7858:                                             ; No predecessors!
  br label %7859

7859:                                             ; preds = %7858
  br label %7860

7860:                                             ; preds = %7859, %7799
  br label %7861

7861:                                             ; preds = %7860, %7796
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #10
  br label %7862

7862:                                             ; preds = %7861
  br label %7863

7863:                                             ; preds = %7862
  %7864 = load ptr, ptr %174, align 8, !tbaa !9
  %7865 = getelementptr inbounds %struct.s2n_connection, ptr %7864, i32 0, i32 52
  %7866 = getelementptr inbounds %struct.s2n_handshake, ptr %7865, i32 0, i32 5
  store i8 19, ptr %7866, align 8, !tbaa !60
  %7867 = load ptr, ptr %176, align 8, !tbaa !9
  %7868 = getelementptr inbounds %struct.s2n_connection, ptr %7867, i32 0, i32 52
  %7869 = getelementptr inbounds %struct.s2n_handshake, ptr %7868, i32 0, i32 11
  %7870 = load i8, ptr %7869, align 8
  %7871 = and i8 %7870, -9
  %7872 = or i8 %7871, 8
  store i8 %7872, ptr %7869, align 8
  br label %7873

7873:                                             ; preds = %7863
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #10
  store i64 19, ptr %188, align 8, !tbaa !47
  %7874 = load i64, ptr %188, align 8, !tbaa !47
  %7875 = icmp ne i64 %7874, 0
  br i1 %7875, label %7876, label %7938

7876:                                             ; preds = %7873
  %7877 = load ptr, ptr %176, align 8, !tbaa !9
  %7878 = getelementptr inbounds %struct.s2n_connection, ptr %7877, i32 0, i32 52
  %7879 = getelementptr inbounds %struct.s2n_handshake, ptr %7878, i32 0, i32 4
  %7880 = getelementptr inbounds [48 x i8], ptr %7879, i64 0, i64 0
  %7881 = getelementptr inbounds [19 x i8], ptr %11, i64 0, i64 0
  %7882 = load i64, ptr %188, align 8, !tbaa !47
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %7880, ptr align 16 %7881, i64 %7882, i1 false)
  %7883 = icmp eq ptr %7880, null
  br i1 %7883, label %7884, label %7937

7884:                                             ; preds = %7876
  br label %7885

7885:                                             ; preds = %7884
  br label %7886

7886:                                             ; preds = %7885
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #10
  %7887 = call ptr @__errno_location() #11
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  store i32 %7888, ptr %189, align 4, !tbaa !5
  %7889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7890 = call i32 @s2n_print_stacktrace(ptr noundef %7889)
  %7891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7892 = trunc i8 %7891 to i1
  br i1 %7892, label %7893, label %7915

7893:                                             ; preds = %7886
  %7894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7895 = call i32 @fileno(ptr noundef %7894) #10
  %7896 = call i32 @isatty(i32 noundef %7895) #10
  %7897 = icmp ne i32 %7896, 0
  br i1 %7897, label %7898, label %7915

7898:                                             ; preds = %7893
  %7899 = load i32, ptr %189, align 4, !tbaa !5
  %7900 = call ptr @__errno_location() #11
  store i32 %7899, ptr %7900, align 4, !tbaa !5
  %7901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7902 = load i32, ptr @test_count, align 4, !tbaa !5
  %7903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7904 = load i32, ptr %7903, align 4, !tbaa !5
  %7905 = call ptr @s2n_strerror(i32 noundef %7904, ptr noundef @.str.4)
  %7906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7907 = load i32, ptr %7906, align 4, !tbaa !5
  %7908 = call ptr @s2n_strerror_debug(i32 noundef %7907, ptr noundef @.str.4)
  %7909 = call ptr @__errno_location() #11
  %7910 = load i32, ptr %7909, align 4, !tbaa !5
  %7911 = call ptr @strerror(i32 noundef %7910) #10
  %7912 = call ptr @__errno_location() #11
  %7913 = load i32, ptr %7912, align 4, !tbaa !5
  %7914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7901, ptr noundef @.str.2, i32 noundef %7902, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 466, ptr noundef %7905, ptr noundef %7908, ptr noundef %7911, i32 noundef %7913) #10
  br label %7932

7915:                                             ; preds = %7893, %7886
  %7916 = load i32, ptr %189, align 4, !tbaa !5
  %7917 = call ptr @__errno_location() #11
  store i32 %7916, ptr %7917, align 4, !tbaa !5
  %7918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7919 = load i32, ptr @test_count, align 4, !tbaa !5
  %7920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7921 = load i32, ptr %7920, align 4, !tbaa !5
  %7922 = call ptr @s2n_strerror(i32 noundef %7921, ptr noundef @.str.4)
  %7923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7924 = load i32, ptr %7923, align 4, !tbaa !5
  %7925 = call ptr @s2n_strerror_debug(i32 noundef %7924, ptr noundef @.str.4)
  %7926 = call ptr @__errno_location() #11
  %7927 = load i32, ptr %7926, align 4, !tbaa !5
  %7928 = call ptr @strerror(i32 noundef %7927) #10
  %7929 = call ptr @__errno_location() #11
  %7930 = load i32, ptr %7929, align 4, !tbaa !5
  %7931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7918, ptr noundef @.str.5, i32 noundef %7919, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 466, ptr noundef %7922, ptr noundef %7925, ptr noundef %7928, i32 noundef %7930) #10
  br label %7932

7932:                                             ; preds = %7915, %7898
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #10
  br label %7933

7933:                                             ; preds = %7932
  br label %7934

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

7935:                                             ; No predecessors!
  br label %7936

7936:                                             ; preds = %7935
  br label %7937

7937:                                             ; preds = %7936, %7876
  br label %7938

7938:                                             ; preds = %7937, %7873
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #10
  br label %7939

7939:                                             ; preds = %7938
  br label %7940

7940:                                             ; preds = %7939
  %7941 = load ptr, ptr %176, align 8, !tbaa !9
  %7942 = getelementptr inbounds %struct.s2n_connection, ptr %7941, i32 0, i32 52
  %7943 = getelementptr inbounds %struct.s2n_handshake, ptr %7942, i32 0, i32 5
  store i8 19, ptr %7943, align 8, !tbaa !60
  br label %7944

7944:                                             ; preds = %7940
  %7945 = load i32, ptr @test_count, align 4, !tbaa !5
  %7946 = add nsw i32 %7945, 1
  store i32 %7946, ptr @test_count, align 4, !tbaa !5
  %7947 = load ptr, ptr %174, align 8, !tbaa !9
  %7948 = call i32 @s2n_client_hello_send(ptr noundef %7947)
  %7949 = icmp eq i32 %7948, -1
  br i1 %7949, label %7950, label %8003

7950:                                             ; preds = %7944
  br label %7951

7951:                                             ; preds = %7950
  br label %7952

7952:                                             ; preds = %7951
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #10
  %7953 = call ptr @__errno_location() #11
  %7954 = load i32, ptr %7953, align 4, !tbaa !5
  store i32 %7954, ptr %190, align 4, !tbaa !5
  %7955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7956 = call i32 @s2n_print_stacktrace(ptr noundef %7955)
  %7957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7958 = trunc i8 %7957 to i1
  br i1 %7958, label %7959, label %7981

7959:                                             ; preds = %7952
  %7960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7961 = call i32 @fileno(ptr noundef %7960) #10
  %7962 = call i32 @isatty(i32 noundef %7961) #10
  %7963 = icmp ne i32 %7962, 0
  br i1 %7963, label %7964, label %7981

7964:                                             ; preds = %7959
  %7965 = load i32, ptr %190, align 4, !tbaa !5
  %7966 = call ptr @__errno_location() #11
  store i32 %7965, ptr %7966, align 4, !tbaa !5
  %7967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7968 = load i32, ptr @test_count, align 4, !tbaa !5
  %7969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7970 = load i32, ptr %7969, align 4, !tbaa !5
  %7971 = call ptr @s2n_strerror(i32 noundef %7970, ptr noundef @.str.4)
  %7972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7973 = load i32, ptr %7972, align 4, !tbaa !5
  %7974 = call ptr @s2n_strerror_debug(i32 noundef %7973, ptr noundef @.str.4)
  %7975 = call ptr @__errno_location() #11
  %7976 = load i32, ptr %7975, align 4, !tbaa !5
  %7977 = call ptr @strerror(i32 noundef %7976) #10
  %7978 = call ptr @__errno_location() #11
  %7979 = load i32, ptr %7978, align 4, !tbaa !5
  %7980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7967, ptr noundef @.str.2, i32 noundef %7968, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 470, ptr noundef %7971, ptr noundef %7974, ptr noundef %7977, i32 noundef %7979) #10
  br label %7998

7981:                                             ; preds = %7959, %7952
  %7982 = load i32, ptr %190, align 4, !tbaa !5
  %7983 = call ptr @__errno_location() #11
  store i32 %7982, ptr %7983, align 4, !tbaa !5
  %7984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7985 = load i32, ptr @test_count, align 4, !tbaa !5
  %7986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7987 = load i32, ptr %7986, align 4, !tbaa !5
  %7988 = call ptr @s2n_strerror(i32 noundef %7987, ptr noundef @.str.4)
  %7989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7990 = load i32, ptr %7989, align 4, !tbaa !5
  %7991 = call ptr @s2n_strerror_debug(i32 noundef %7990, ptr noundef @.str.4)
  %7992 = call ptr @__errno_location() #11
  %7993 = load i32, ptr %7992, align 4, !tbaa !5
  %7994 = call ptr @strerror(i32 noundef %7993) #10
  %7995 = call ptr @__errno_location() #11
  %7996 = load i32, ptr %7995, align 4, !tbaa !5
  %7997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7984, ptr noundef @.str.5, i32 noundef %7985, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 470, ptr noundef %7988, ptr noundef %7991, ptr noundef %7994, i32 noundef %7996) #10
  br label %7998

7998:                                             ; preds = %7981, %7964
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  br label %7999

7999:                                             ; preds = %7998
  br label %8000

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

8001:                                             ; No predecessors!
  br label %8002

8002:                                             ; preds = %8001
  br label %8003

8003:                                             ; preds = %8002, %7944
  br label %8004

8004:                                             ; preds = %8003
  br label %8005

8005:                                             ; preds = %8004
  br label %8006

8006:                                             ; preds = %8005
  %8007 = load i32, ptr @test_count, align 4, !tbaa !5
  %8008 = add nsw i32 %8007, 1
  store i32 %8008, ptr @test_count, align 4, !tbaa !5
  %8009 = load ptr, ptr %174, align 8, !tbaa !9
  %8010 = getelementptr inbounds %struct.s2n_connection, ptr %8009, i32 0, i32 52
  %8011 = getelementptr inbounds %struct.s2n_handshake, ptr %8010, i32 0, i32 0
  %8012 = load ptr, ptr %176, align 8, !tbaa !9
  %8013 = getelementptr inbounds %struct.s2n_connection, ptr %8012, i32 0, i32 52
  %8014 = getelementptr inbounds %struct.s2n_handshake, ptr %8013, i32 0, i32 0
  %8015 = load ptr, ptr %174, align 8, !tbaa !9
  %8016 = getelementptr inbounds %struct.s2n_connection, ptr %8015, i32 0, i32 52
  %8017 = getelementptr inbounds %struct.s2n_handshake, ptr %8016, i32 0, i32 0
  %8018 = getelementptr inbounds %struct.s2n_stuffer, ptr %8017, i32 0, i32 2
  %8019 = load i32, ptr %8018, align 4, !tbaa !45
  %8020 = load ptr, ptr %174, align 8, !tbaa !9
  %8021 = getelementptr inbounds %struct.s2n_connection, ptr %8020, i32 0, i32 52
  %8022 = getelementptr inbounds %struct.s2n_handshake, ptr %8021, i32 0, i32 0
  %8023 = getelementptr inbounds %struct.s2n_stuffer, ptr %8022, i32 0, i32 1
  %8024 = load i32, ptr %8023, align 8, !tbaa !46
  %8025 = sub i32 %8019, %8024
  %8026 = call i32 @s2n_stuffer_copy(ptr noundef %8011, ptr noundef %8014, i32 noundef %8025)
  %8027 = icmp eq i32 %8026, -1
  br i1 %8027, label %8028, label %8081

8028:                                             ; preds = %8006
  br label %8029

8029:                                             ; preds = %8028
  br label %8030

8030:                                             ; preds = %8029
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #10
  %8031 = call ptr @__errno_location() #11
  %8032 = load i32, ptr %8031, align 4, !tbaa !5
  store i32 %8032, ptr %191, align 4, !tbaa !5
  %8033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8034 = call i32 @s2n_print_stacktrace(ptr noundef %8033)
  %8035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8036 = trunc i8 %8035 to i1
  br i1 %8036, label %8037, label %8059

8037:                                             ; preds = %8030
  %8038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8039 = call i32 @fileno(ptr noundef %8038) #10
  %8040 = call i32 @isatty(i32 noundef %8039) #10
  %8041 = icmp ne i32 %8040, 0
  br i1 %8041, label %8042, label %8059

8042:                                             ; preds = %8037
  %8043 = load i32, ptr %191, align 4, !tbaa !5
  %8044 = call ptr @__errno_location() #11
  store i32 %8043, ptr %8044, align 4, !tbaa !5
  %8045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8046 = load i32, ptr @test_count, align 4, !tbaa !5
  %8047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8048 = load i32, ptr %8047, align 4, !tbaa !5
  %8049 = call ptr @s2n_strerror(i32 noundef %8048, ptr noundef @.str.4)
  %8050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8051 = load i32, ptr %8050, align 4, !tbaa !5
  %8052 = call ptr @s2n_strerror_debug(i32 noundef %8051, ptr noundef @.str.4)
  %8053 = call ptr @__errno_location() #11
  %8054 = load i32, ptr %8053, align 4, !tbaa !5
  %8055 = call ptr @strerror(i32 noundef %8054) #10
  %8056 = call ptr @__errno_location() #11
  %8057 = load i32, ptr %8056, align 4, !tbaa !5
  %8058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8045, ptr noundef @.str.2, i32 noundef %8046, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 472, ptr noundef %8049, ptr noundef %8052, ptr noundef %8055, i32 noundef %8057) #10
  br label %8076

8059:                                             ; preds = %8037, %8030
  %8060 = load i32, ptr %191, align 4, !tbaa !5
  %8061 = call ptr @__errno_location() #11
  store i32 %8060, ptr %8061, align 4, !tbaa !5
  %8062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8063 = load i32, ptr @test_count, align 4, !tbaa !5
  %8064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8065 = load i32, ptr %8064, align 4, !tbaa !5
  %8066 = call ptr @s2n_strerror(i32 noundef %8065, ptr noundef @.str.4)
  %8067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8068 = load i32, ptr %8067, align 4, !tbaa !5
  %8069 = call ptr @s2n_strerror_debug(i32 noundef %8068, ptr noundef @.str.4)
  %8070 = call ptr @__errno_location() #11
  %8071 = load i32, ptr %8070, align 4, !tbaa !5
  %8072 = call ptr @strerror(i32 noundef %8071) #10
  %8073 = call ptr @__errno_location() #11
  %8074 = load i32, ptr %8073, align 4, !tbaa !5
  %8075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8062, ptr noundef @.str.5, i32 noundef %8063, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 472, ptr noundef %8066, ptr noundef %8069, ptr noundef %8072, i32 noundef %8074) #10
  br label %8076

8076:                                             ; preds = %8059, %8042
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #10
  br label %8077

8077:                                             ; preds = %8076
  br label %8078

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

8079:                                             ; No predecessors!
  br label %8080

8080:                                             ; preds = %8079
  br label %8081

8081:                                             ; preds = %8080, %8006
  br label %8082

8082:                                             ; preds = %8081
  br label %8083

8083:                                             ; preds = %8082
  br label %8084

8084:                                             ; preds = %8083
  br label %8085

8085:                                             ; preds = %8084
  br label %8086

8086:                                             ; preds = %8085
  %8087 = load i32, ptr @test_count, align 4, !tbaa !5
  %8088 = add nsw i32 %8087, 1
  store i32 %8088, ptr @test_count, align 4, !tbaa !5
  %8089 = load ptr, ptr %176, align 8, !tbaa !9
  %8090 = call i32 @s2n_client_hello_recv(ptr noundef %8089)
  %8091 = icmp eq i32 %8090, -1
  br i1 %8091, label %8145, label %8092

8092:                                             ; preds = %8086
  br label %8093

8093:                                             ; preds = %8092
  br label %8094

8094:                                             ; preds = %8093
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #10
  %8095 = call ptr @__errno_location() #11
  %8096 = load i32, ptr %8095, align 4, !tbaa !5
  store i32 %8096, ptr %192, align 4, !tbaa !5
  %8097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8098 = call i32 @s2n_print_stacktrace(ptr noundef %8097)
  %8099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8100 = trunc i8 %8099 to i1
  br i1 %8100, label %8101, label %8123

8101:                                             ; preds = %8094
  %8102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8103 = call i32 @fileno(ptr noundef %8102) #10
  %8104 = call i32 @isatty(i32 noundef %8103) #10
  %8105 = icmp ne i32 %8104, 0
  br i1 %8105, label %8106, label %8123

8106:                                             ; preds = %8101
  %8107 = load i32, ptr %192, align 4, !tbaa !5
  %8108 = call ptr @__errno_location() #11
  store i32 %8107, ptr %8108, align 4, !tbaa !5
  %8109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8110 = load i32, ptr @test_count, align 4, !tbaa !5
  %8111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8112 = load i32, ptr %8111, align 4, !tbaa !5
  %8113 = call ptr @s2n_strerror(i32 noundef %8112, ptr noundef @.str.4)
  %8114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8115 = load i32, ptr %8114, align 4, !tbaa !5
  %8116 = call ptr @s2n_strerror_debug(i32 noundef %8115, ptr noundef @.str.4)
  %8117 = call ptr @__errno_location() #11
  %8118 = load i32, ptr %8117, align 4, !tbaa !5
  %8119 = call ptr @strerror(i32 noundef %8118) #10
  %8120 = call ptr @__errno_location() #11
  %8121 = load i32, ptr %8120, align 4, !tbaa !5
  %8122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8109, ptr noundef @.str.2, i32 noundef %8110, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 473, ptr noundef %8113, ptr noundef %8116, ptr noundef %8119, i32 noundef %8121) #10
  br label %8140

8123:                                             ; preds = %8101, %8094
  %8124 = load i32, ptr %192, align 4, !tbaa !5
  %8125 = call ptr @__errno_location() #11
  store i32 %8124, ptr %8125, align 4, !tbaa !5
  %8126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8127 = load i32, ptr @test_count, align 4, !tbaa !5
  %8128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8129 = load i32, ptr %8128, align 4, !tbaa !5
  %8130 = call ptr @s2n_strerror(i32 noundef %8129, ptr noundef @.str.4)
  %8131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8132 = load i32, ptr %8131, align 4, !tbaa !5
  %8133 = call ptr @s2n_strerror_debug(i32 noundef %8132, ptr noundef @.str.4)
  %8134 = call ptr @__errno_location() #11
  %8135 = load i32, ptr %8134, align 4, !tbaa !5
  %8136 = call ptr @strerror(i32 noundef %8135) #10
  %8137 = call ptr @__errno_location() #11
  %8138 = load i32, ptr %8137, align 4, !tbaa !5
  %8139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8126, ptr noundef @.str.5, i32 noundef %8127, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 473, ptr noundef %8130, ptr noundef %8133, ptr noundef %8136, i32 noundef %8138) #10
  br label %8140

8140:                                             ; preds = %8123, %8106
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #10
  br label %8141

8141:                                             ; preds = %8140
  br label %8142

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

8143:                                             ; No predecessors!
  br label %8144

8144:                                             ; preds = %8143
  br label %8145

8145:                                             ; preds = %8144, %8086
  br label %8146

8146:                                             ; preds = %8145
  br label %8147

8147:                                             ; preds = %8146
  br label %8148

8148:                                             ; preds = %8147
  %8149 = load i32, ptr @test_count, align 4, !tbaa !5
  %8150 = add nsw i32 %8149, 1
  store i32 %8150, ptr @test_count, align 4, !tbaa !5
  %8151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8152 = load i32, ptr %8151, align 4, !tbaa !5
  %8153 = icmp eq i32 %8152, 335544322
  br i1 %8153, label %8207, label %8154

8154:                                             ; preds = %8148
  br label %8155

8155:                                             ; preds = %8154
  br label %8156

8156:                                             ; preds = %8155
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #10
  %8157 = call ptr @__errno_location() #11
  %8158 = load i32, ptr %8157, align 4, !tbaa !5
  store i32 %8158, ptr %193, align 4, !tbaa !5
  %8159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8160 = call i32 @s2n_print_stacktrace(ptr noundef %8159)
  %8161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8162 = trunc i8 %8161 to i1
  br i1 %8162, label %8163, label %8185

8163:                                             ; preds = %8156
  %8164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8165 = call i32 @fileno(ptr noundef %8164) #10
  %8166 = call i32 @isatty(i32 noundef %8165) #10
  %8167 = icmp ne i32 %8166, 0
  br i1 %8167, label %8168, label %8185

8168:                                             ; preds = %8163
  %8169 = load i32, ptr %193, align 4, !tbaa !5
  %8170 = call ptr @__errno_location() #11
  store i32 %8169, ptr %8170, align 4, !tbaa !5
  %8171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8172 = load i32, ptr @test_count, align 4, !tbaa !5
  %8173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8174 = load i32, ptr %8173, align 4, !tbaa !5
  %8175 = call ptr @s2n_strerror(i32 noundef %8174, ptr noundef @.str.4)
  %8176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8177 = load i32, ptr %8176, align 4, !tbaa !5
  %8178 = call ptr @s2n_strerror_debug(i32 noundef %8177, ptr noundef @.str.4)
  %8179 = call ptr @__errno_location() #11
  %8180 = load i32, ptr %8179, align 4, !tbaa !5
  %8181 = call ptr @strerror(i32 noundef %8180) #10
  %8182 = call ptr @__errno_location() #11
  %8183 = load i32, ptr %8182, align 4, !tbaa !5
  %8184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8171, ptr noundef @.str.2, i32 noundef %8172, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 473, ptr noundef %8175, ptr noundef %8178, ptr noundef %8181, i32 noundef %8183) #10
  br label %8202

8185:                                             ; preds = %8163, %8156
  %8186 = load i32, ptr %193, align 4, !tbaa !5
  %8187 = call ptr @__errno_location() #11
  store i32 %8186, ptr %8187, align 4, !tbaa !5
  %8188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8189 = load i32, ptr @test_count, align 4, !tbaa !5
  %8190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8191 = load i32, ptr %8190, align 4, !tbaa !5
  %8192 = call ptr @s2n_strerror(i32 noundef %8191, ptr noundef @.str.4)
  %8193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8194 = load i32, ptr %8193, align 4, !tbaa !5
  %8195 = call ptr @s2n_strerror_debug(i32 noundef %8194, ptr noundef @.str.4)
  %8196 = call ptr @__errno_location() #11
  %8197 = load i32, ptr %8196, align 4, !tbaa !5
  %8198 = call ptr @strerror(i32 noundef %8197) #10
  %8199 = call ptr @__errno_location() #11
  %8200 = load i32, ptr %8199, align 4, !tbaa !5
  %8201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8188, ptr noundef @.str.5, i32 noundef %8189, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 473, ptr noundef %8192, ptr noundef %8195, ptr noundef %8198, i32 noundef %8200) #10
  br label %8202

8202:                                             ; preds = %8185, %8168
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #10
  br label %8203

8203:                                             ; preds = %8202
  br label %8204

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

8205:                                             ; No predecessors!
  br label %8206

8206:                                             ; preds = %8205
  br label %8207

8207:                                             ; preds = %8206, %8148
  br label %8208

8208:                                             ; preds = %8207
  br label %8209

8209:                                             ; preds = %8208
  br label %8210

8210:                                             ; preds = %8209
  %8211 = load i32, ptr @test_count, align 4, !tbaa !5
  %8212 = add nsw i32 %8211, 1
  store i32 %8212, ptr @test_count, align 4, !tbaa !5
  %8213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8214 = load i32, ptr %8213, align 4, !tbaa !5
  %8215 = call ptr @s2n_strerror_debug(i32 noundef %8214, ptr noundef @.str.4)
  %8216 = icmp eq ptr %8215, null
  br i1 %8216, label %8217, label %8270

8217:                                             ; preds = %8210
  br label %8218

8218:                                             ; preds = %8217
  br label %8219

8219:                                             ; preds = %8218
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #10
  %8220 = call ptr @__errno_location() #11
  %8221 = load i32, ptr %8220, align 4, !tbaa !5
  store i32 %8221, ptr %194, align 4, !tbaa !5
  %8222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8223 = call i32 @s2n_print_stacktrace(ptr noundef %8222)
  %8224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8225 = trunc i8 %8224 to i1
  br i1 %8225, label %8226, label %8248

8226:                                             ; preds = %8219
  %8227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8228 = call i32 @fileno(ptr noundef %8227) #10
  %8229 = call i32 @isatty(i32 noundef %8228) #10
  %8230 = icmp ne i32 %8229, 0
  br i1 %8230, label %8231, label %8248

8231:                                             ; preds = %8226
  %8232 = load i32, ptr %194, align 4, !tbaa !5
  %8233 = call ptr @__errno_location() #11
  store i32 %8232, ptr %8233, align 4, !tbaa !5
  %8234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8235 = load i32, ptr @test_count, align 4, !tbaa !5
  %8236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8237 = load i32, ptr %8236, align 4, !tbaa !5
  %8238 = call ptr @s2n_strerror(i32 noundef %8237, ptr noundef @.str.4)
  %8239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8240 = load i32, ptr %8239, align 4, !tbaa !5
  %8241 = call ptr @s2n_strerror_debug(i32 noundef %8240, ptr noundef @.str.4)
  %8242 = call ptr @__errno_location() #11
  %8243 = load i32, ptr %8242, align 4, !tbaa !5
  %8244 = call ptr @strerror(i32 noundef %8243) #10
  %8245 = call ptr @__errno_location() #11
  %8246 = load i32, ptr %8245, align 4, !tbaa !5
  %8247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8234, ptr noundef @.str.2, i32 noundef %8235, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 473, ptr noundef %8238, ptr noundef %8241, ptr noundef %8244, i32 noundef %8246) #10
  br label %8265

8248:                                             ; preds = %8226, %8219
  %8249 = load i32, ptr %194, align 4, !tbaa !5
  %8250 = call ptr @__errno_location() #11
  store i32 %8249, ptr %8250, align 4, !tbaa !5
  %8251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8252 = load i32, ptr @test_count, align 4, !tbaa !5
  %8253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8254 = load i32, ptr %8253, align 4, !tbaa !5
  %8255 = call ptr @s2n_strerror(i32 noundef %8254, ptr noundef @.str.4)
  %8256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8257 = load i32, ptr %8256, align 4, !tbaa !5
  %8258 = call ptr @s2n_strerror_debug(i32 noundef %8257, ptr noundef @.str.4)
  %8259 = call ptr @__errno_location() #11
  %8260 = load i32, ptr %8259, align 4, !tbaa !5
  %8261 = call ptr @strerror(i32 noundef %8260) #10
  %8262 = call ptr @__errno_location() #11
  %8263 = load i32, ptr %8262, align 4, !tbaa !5
  %8264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8251, ptr noundef @.str.5, i32 noundef %8252, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 473, ptr noundef %8255, ptr noundef %8258, ptr noundef %8261, i32 noundef %8263) #10
  br label %8265

8265:                                             ; preds = %8248, %8231
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #10
  br label %8266

8266:                                             ; preds = %8265
  br label %8267

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

8268:                                             ; No predecessors!
  br label %8269

8269:                                             ; preds = %8268
  br label %8270

8270:                                             ; preds = %8269, %8210
  br label %8271

8271:                                             ; preds = %8270
  br label %8272

8272:                                             ; preds = %8271
  br label %8273

8273:                                             ; preds = %8272
  br label %8274

8274:                                             ; preds = %8273
  br label %8275

8275:                                             ; preds = %8274
  %8276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8276, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8277 = call ptr @__errno_location() #11
  store i32 0, ptr %8277, align 4, !tbaa !5
  br label %8278

8278:                                             ; preds = %8275
  br label %8279

8279:                                             ; preds = %8278
  br label %8280

8280:                                             ; preds = %8279
  br label %8281

8281:                                             ; preds = %8280
  call void @llvm.lifetime.end.p0(i64 64, ptr %182) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %181) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %180) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr %179) #10
  %8282 = call i32 @s2n_connection_ptr_free(ptr noundef %176)
  %8283 = getelementptr inbounds %struct.s2n_result, ptr %195, i32 0, i32 0
  store i32 %8282, ptr %8283, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #10
  %8284 = call i32 @s2n_connection_ptr_free(ptr noundef %174)
  %8285 = getelementptr inbounds %struct.s2n_result, ptr %196, i32 0, i32 0
  store i32 %8284, ptr %8285, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #10
  br label %8286

8286:                                             ; preds = %8281
  br label %8287

8287:                                             ; preds = %8286
  %8288 = call i32 @s2n_cleanup()
  %8289 = icmp eq i32 %8288, -1
  br i1 %8289, label %8290, label %8343

8290:                                             ; preds = %8287
  br label %8291

8291:                                             ; preds = %8290
  br label %8292

8292:                                             ; preds = %8291
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #10
  %8293 = call ptr @__errno_location() #11
  %8294 = load i32, ptr %8293, align 4, !tbaa !5
  store i32 %8294, ptr %197, align 4, !tbaa !5
  %8295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8296 = call i32 @s2n_print_stacktrace(ptr noundef %8295)
  %8297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8298 = trunc i8 %8297 to i1
  br i1 %8298, label %8299, label %8321

8299:                                             ; preds = %8292
  %8300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8301 = call i32 @fileno(ptr noundef %8300) #10
  %8302 = call i32 @isatty(i32 noundef %8301) #10
  %8303 = icmp ne i32 %8302, 0
  br i1 %8303, label %8304, label %8321

8304:                                             ; preds = %8299
  %8305 = load i32, ptr %197, align 4, !tbaa !5
  %8306 = call ptr @__errno_location() #11
  store i32 %8305, ptr %8306, align 4, !tbaa !5
  %8307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8308 = load i32, ptr @test_count, align 4, !tbaa !5
  %8309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8310 = load i32, ptr %8309, align 4, !tbaa !5
  %8311 = call ptr @s2n_strerror(i32 noundef %8310, ptr noundef @.str.4)
  %8312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8313 = load i32, ptr %8312, align 4, !tbaa !5
  %8314 = call ptr @s2n_strerror_debug(i32 noundef %8313, ptr noundef @.str.4)
  %8315 = call ptr @__errno_location() #11
  %8316 = load i32, ptr %8315, align 4, !tbaa !5
  %8317 = call ptr @strerror(i32 noundef %8316) #10
  %8318 = call ptr @__errno_location() #11
  %8319 = load i32, ptr %8318, align 4, !tbaa !5
  %8320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8307, ptr noundef @.str.2, i32 noundef %8308, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 476, ptr noundef %8311, ptr noundef %8314, ptr noundef %8317, i32 noundef %8319) #10
  br label %8338

8321:                                             ; preds = %8299, %8292
  %8322 = load i32, ptr %197, align 4, !tbaa !5
  %8323 = call ptr @__errno_location() #11
  store i32 %8322, ptr %8323, align 4, !tbaa !5
  %8324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8325 = load i32, ptr @test_count, align 4, !tbaa !5
  %8326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8327 = load i32, ptr %8326, align 4, !tbaa !5
  %8328 = call ptr @s2n_strerror(i32 noundef %8327, ptr noundef @.str.4)
  %8329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8330 = load i32, ptr %8329, align 4, !tbaa !5
  %8331 = call ptr @s2n_strerror_debug(i32 noundef %8330, ptr noundef @.str.4)
  %8332 = call ptr @__errno_location() #11
  %8333 = load i32, ptr %8332, align 4, !tbaa !5
  %8334 = call ptr @strerror(i32 noundef %8333) #10
  %8335 = call ptr @__errno_location() #11
  %8336 = load i32, ptr %8335, align 4, !tbaa !5
  %8337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8324, ptr noundef @.str.5, i32 noundef %8325, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 476, ptr noundef %8328, ptr noundef %8331, ptr noundef %8334, i32 noundef %8336) #10
  br label %8338

8338:                                             ; preds = %8321, %8304
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #10
  br label %8339

8339:                                             ; preds = %8338
  br label %8340

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

8341:                                             ; No predecessors!
  br label %8342

8342:                                             ; preds = %8341
  br label %8343

8343:                                             ; preds = %8342, %8287
  br label %8344

8344:                                             ; preds = %8343
  br label %8345

8345:                                             ; preds = %8344
  br label %8346

8346:                                             ; preds = %8345
  br label %8347

8347:                                             ; preds = %8346
  %8348 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %8349 = icmp eq i32 %8348, -1
  br i1 %8349, label %8350, label %8403

8350:                                             ; preds = %8347
  br label %8351

8351:                                             ; preds = %8350
  br label %8352

8352:                                             ; preds = %8351
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #10
  %8353 = call ptr @__errno_location() #11
  %8354 = load i32, ptr %8353, align 4, !tbaa !5
  store i32 %8354, ptr %198, align 4, !tbaa !5
  %8355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8356 = call i32 @s2n_print_stacktrace(ptr noundef %8355)
  %8357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8358 = trunc i8 %8357 to i1
  br i1 %8358, label %8359, label %8381

8359:                                             ; preds = %8352
  %8360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8361 = call i32 @fileno(ptr noundef %8360) #10
  %8362 = call i32 @isatty(i32 noundef %8361) #10
  %8363 = icmp ne i32 %8362, 0
  br i1 %8363, label %8364, label %8381

8364:                                             ; preds = %8359
  %8365 = load i32, ptr %198, align 4, !tbaa !5
  %8366 = call ptr @__errno_location() #11
  store i32 %8365, ptr %8366, align 4, !tbaa !5
  %8367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8368 = load i32, ptr @test_count, align 4, !tbaa !5
  %8369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8370 = load i32, ptr %8369, align 4, !tbaa !5
  %8371 = call ptr @s2n_strerror(i32 noundef %8370, ptr noundef @.str.4)
  %8372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8373 = load i32, ptr %8372, align 4, !tbaa !5
  %8374 = call ptr @s2n_strerror_debug(i32 noundef %8373, ptr noundef @.str.4)
  %8375 = call ptr @__errno_location() #11
  %8376 = load i32, ptr %8375, align 4, !tbaa !5
  %8377 = call ptr @strerror(i32 noundef %8376) #10
  %8378 = call ptr @__errno_location() #11
  %8379 = load i32, ptr %8378, align 4, !tbaa !5
  %8380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8367, ptr noundef @.str.2, i32 noundef %8368, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 476, ptr noundef %8371, ptr noundef %8374, ptr noundef %8377, i32 noundef %8379) #10
  br label %8398

8381:                                             ; preds = %8359, %8352
  %8382 = load i32, ptr %198, align 4, !tbaa !5
  %8383 = call ptr @__errno_location() #11
  store i32 %8382, ptr %8383, align 4, !tbaa !5
  %8384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8385 = load i32, ptr @test_count, align 4, !tbaa !5
  %8386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8387 = load i32, ptr %8386, align 4, !tbaa !5
  %8388 = call ptr @s2n_strerror(i32 noundef %8387, ptr noundef @.str.4)
  %8389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8390 = load i32, ptr %8389, align 4, !tbaa !5
  %8391 = call ptr @s2n_strerror_debug(i32 noundef %8390, ptr noundef @.str.4)
  %8392 = call ptr @__errno_location() #11
  %8393 = load i32, ptr %8392, align 4, !tbaa !5
  %8394 = call ptr @strerror(i32 noundef %8393) #10
  %8395 = call ptr @__errno_location() #11
  %8396 = load i32, ptr %8395, align 4, !tbaa !5
  %8397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8384, ptr noundef @.str.5, i32 noundef %8385, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 476, ptr noundef %8388, ptr noundef %8391, ptr noundef %8394, i32 noundef %8396) #10
  br label %8398

8398:                                             ; preds = %8381, %8364
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #10
  br label %8399

8399:                                             ; preds = %8398
  br label %8400

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

8401:                                             ; No predecessors!
  br label %8402

8402:                                             ; preds = %8401
  br label %8403

8403:                                             ; preds = %8402, %8347
  br label %8404

8404:                                             ; preds = %8403
  br label %8405

8405:                                             ; preds = %8404
  %8406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8407 = trunc i8 %8406 to i1
  br i1 %8407, label %8408, label %8424

8408:                                             ; preds = %8405
  %8409 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8410 = call i32 @fileno(ptr noundef %8409) #10
  %8411 = call i32 @isatty(i32 noundef %8410) #10
  %8412 = icmp ne i32 %8411, 0
  br i1 %8412, label %8413, label %8424

8413:                                             ; preds = %8408
  %8414 = load i32, ptr @test_count, align 4, !tbaa !5
  %8415 = icmp ne i32 %8414, 0
  br i1 %8415, label %8416, label %8420

8416:                                             ; preds = %8413
  %8417 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8418 = load i32, ptr @test_count, align 4, !tbaa !5
  %8419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8417, ptr noundef @.str.75, i32 noundef %8418) #10
  br label %8423

8420:                                             ; preds = %8413
  %8421 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8421, ptr noundef @.str.76) #10
  br label %8423

8423:                                             ; preds = %8420, %8416
  br label %8435

8424:                                             ; preds = %8408, %8405
  %8425 = load i32, ptr @test_count, align 4, !tbaa !5
  %8426 = icmp ne i32 %8425, 0
  br i1 %8426, label %8427, label %8431

8427:                                             ; preds = %8424
  %8428 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8429 = load i32, ptr @test_count, align 4, !tbaa !5
  %8430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8428, ptr noundef @.str.77, i32 noundef %8429) #10
  br label %8434

8431:                                             ; preds = %8424
  %8432 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8432, ptr noundef @.str.78) #10
  br label %8434

8434:                                             ; preds = %8431, %8427
  br label %8435

8435:                                             ; preds = %8434, %8423
  store i32 0, ptr %3, align 4
  store i32 1, ptr %199, align 4
  br label %8440

8436:                                             ; No predecessors!
  br label %8437

8437:                                             ; preds = %8436
  br label %8438

8438:                                             ; preds = %8437
  br label %8439

8439:                                             ; preds = %8438
  store i32 0, ptr %199, align 4
  br label %8440

8440:                                             ; preds = %8439, %8435
  %8441 = call i32 @s2n_config_ptr_free(ptr noundef %14)
  %8442 = getelementptr inbounds %struct.s2n_result, ptr %200, i32 0, i32 0
  store i32 %8441, ptr %8442, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  %8443 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %12)
  %8444 = getelementptr inbounds %struct.s2n_result, ptr %201, i32 0, i32 0
  store i32 %8443, ptr %8444, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 19, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr %10) #10
  %8445 = load i32, ptr %199, align 4
  switch i32 %8445, label %8448 [
    i32 0, label %8446
    i32 1, label %8446
  ]

8446:                                             ; preds = %8440, %8440
  %8447 = load i32, ptr %3, align 4
  ret i32 %8447

8448:                                             ; preds = %8440
  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: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

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

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

declare ptr @s2n_connection_new(i32 noundef) #2

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

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

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

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

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_client_hello_send(ptr noundef) #2

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

declare i32 @s2n_parse_client_hello(ptr noundef) #2

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

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) #2

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

declare i32 @s2n_stuffer_rewrite(ptr noundef) #2

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

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

declare i32 @s2n_connection_wipe(ptr noundef) #2

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

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

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

declare i32 @s2n_client_hello_recv(ptr noundef) #2

declare i32 @s2n_connection_set_config(ptr noundef, 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: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { 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 #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }
attributes #13 = { nounwind willreturn memory(read) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 16}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!19, !7, i64 219}
!19 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !20, i64 160, !21, i64 168, !21, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !22, i64 240, !10, i64 632, !10, i64 640, !23, i64 648, !29, i64 1144, !32, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !34, i64 1776, !34, i64 1816, !34, i64 1856, !34, i64 1896, !6, i64 1936, !21, i64 1944, !7, i64 1952, !34, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !21, i64 2224, !7, i64 2232, !21, i64 2240, !21, i64 2248, !21, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !28, i64 2792, !6, i64 2816, !28, i64 2824, !28, i64 2848, !28, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !28, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !28, i64 4032, !28, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !28, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!20 = !{!"s2n_timer", !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!23 = !{!"s2n_kex_parameters", !24, i64 0, !25, i64 8, !7, i64 24, !25, i64 56, !26, i64 72, !26, i64 184, !7, i64 296, !27, i64 360, !28, i64 448, !28, i64 472}
!24 = !{!"s2n_dh_params", !10, i64 0}
!25 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!26 = !{!"s2n_kem_group_params", !10, i64 0, !27, i64 8, !25, i64 96}
!27 = !{!"s2n_kem_params", !10, i64 0, !28, i64 8, !28, i64 32, !28, i64 56, !12, i64 80}
!28 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!29 = !{!"s2n_handshake_parameters", !30, i64 0, !30, i64 48, !28, i64 96, !6, i64 120, !31, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!30 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!31 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!32 = !{!"s2n_psk_parameters", !6, i64 0, !33, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!33 = !{!"s2n_array", !28, i64 0, !6, i64 24, !6, i64 28}
!34 = !{!"s2n_stuffer", !28, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !34, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !37, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!37 = !{!"s2n_offered_early_data", !10, i64 0}
!38 = !{!"s2n_client_hello", !28, i64 0, !39, i64 24, !28, i64 728, !28, i64 752, !28, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!39 = !{!"", !7, i64 0, !28, i64 672, !17, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !41, i64 48, !12, i64 52}
!41 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!42 = !{!"s2n_ticket_fields", !28, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!19, !7, i64 220}
!45 = !{!19, !6, i64 2044}
!46 = !{!19, !6, i64 2040}
!47 = !{!21, !21, i64 0}
!48 = !{!19, !6, i64 3632}
!49 = !{!19, !10, i64 3624}
!50 = distinct !{!50, !51}
!51 = !{!"llvm.loop.mustprogress"}
!52 = !{!7, !7, i64 0}
!53 = !{!16, !17, i64 0}
!54 = !{!55, !6, i64 8}
!55 = !{!"", !28, i64 0, !17, i64 24, !17, i64 26, !6, i64 28}
!56 = !{!55, !17, i64 24}
!57 = !{!19, !6, i64 2904}
!58 = !{!19, !6, i64 3600}
!59 = !{!16, !10, i64 24}
!60 = !{!19, !7, i64 2168}
!61 = !{!16, !10, i64 8}
!62 = distinct !{!62, !51}
!63 = !{!16, !10, i64 32}
!64 = !{!65, !17, i64 0}
!65 = !{!"s2n_cipher_preferences", !17, i64 0, !10, i64 8, !12, i64 16}
!66 = !{!65, !10, i64 8}
!67 = !{!65, !12, i64 16}
!68 = !{!69, !10, i64 96}
!69 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !70, i64 24, !28, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !21, i64 144, !10, i64 152, !21, i64 160, !21, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !71, i64 304, !17, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !28, i64 448}
!70 = !{!"certs_by_type", !7, i64 0}
!71 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!72 = !{i64 0, i64 1, !52, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 1, !11, i64 57, i64 2, !52}
!73 = !{!74, !10, i64 8}
!74 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!75 = !{!19, !10, i64 16}


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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, 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 [103 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
@__const.main.renegotiation_info_scsv_iana = external hidden unnamed_addr constant [2 x i8], align 1
@__const.main.client_verify_data = external hidden unnamed_addr constant [19 x i8], align 16
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [66 x i8], align 1
@s2n_client_renegotiation_info_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.17 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [140 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [50 x i8], align 1
@__const.main.extension = external hidden unnamed_addr constant [5 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [96 x i8], align 1
@__const.main.bad_client_verify = external hidden unnamed_addr constant [12 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [75 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.72 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %struct.s2n_stuffer, align 8
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca %struct.s2n_stuffer, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %struct.s2n_stuffer, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i8, align 1
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca [5 x i8], align 1
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca %struct.s2n_stuffer, align 8
  %19 = alloca %struct.s2n_stuffer, align 8
  %20 = alloca i8, align 1
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca %struct.s2n_stuffer, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca %struct.s2n_cipher_suite, align 8
  %30 = alloca [2 x ptr], align 16
  %31 = alloca %struct.s2n_cipher_preferences, align 8
  %32 = alloca %struct.s2n_security_policy, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %33 = load ptr, ptr @stdout, align 8, !tbaa !9
  %34 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %35 = load ptr, ptr @stdout, align 8, !tbaa !9
  %36 = tail call i32 @fflush(ptr noundef %35)
  %37 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

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

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #11
  %49 = tail call i32 @isatty(i32 noundef %48) #11
  %.not448 = icmp eq i32 %49, 0
  br i1 %.not448, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #11
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #11
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #11
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink, i32 noundef %53, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 25, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

63:                                               ; preds = %2
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr @test_count, align 4, !tbaa !5
  %66 = tail call i32 @s2n_enable_atexit() #11
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %92

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

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

79:                                               ; preds = %75, %68
  br label %80

80:                                               ; preds = %75, %79
  %.str.5.sink471 = phi ptr [ @.str.5, %79 ], [ @.str.2, %75 ]
  store i32 %70, ptr %69, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror(i32 noundef %84, ptr noundef nonnull @.str.4) #11
  %86 = load i32, ptr %83, align 4, !tbaa !5
  %87 = tail call ptr @s2n_strerror_debug(i32 noundef %86, ptr noundef nonnull @.str.4) #11
  %88 = load i32, ptr %69, align 4, !tbaa !5
  %89 = tail call ptr @strerror(i32 noundef %88) #11
  %90 = load i32, ptr %69, align 4, !tbaa !5
  %91 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef nonnull %.str.5.sink471, i32 noundef %82, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 25, ptr noundef %85, ptr noundef %87, ptr noundef %89, i32 noundef %90) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

92:                                               ; preds = %63
  %93 = tail call i32 @s2n_init() #11
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

95:                                               ; preds = %92
  %96 = tail call ptr @__errno_location() #12
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @s2n_print_stacktrace(ptr noundef %98) #11
  %100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %101 = trunc nuw i8 %100 to i1
  br i1 %101, label %102, label %106

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #11
  %105 = tail call i32 @isatty(i32 noundef %104) #11
  %.not446 = icmp eq i32 %105, 0
  br i1 %.not446, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink482 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #11
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #11
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #11
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink482, i32 noundef %109, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 25, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

119:                                              ; preds = %92
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = tail call i32 (...) @s2n_disable_tls13_in_test() #11
  %123 = icmp eq i32 %122, -1
  br i1 %123, label %124, label %148

124:                                              ; preds = %119
  %125 = tail call ptr @__errno_location() #12
  %126 = load i32, ptr %125, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = tail call i32 @s2n_print_stacktrace(ptr noundef %127) #11
  %129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %130 = trunc nuw i8 %129 to i1
  br i1 %130, label %131, label %135

131:                                              ; preds = %124
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = tail call i32 @fileno(ptr noundef %132) #11
  %134 = tail call i32 @isatty(i32 noundef %133) #11
  %.not445 = icmp eq i32 %134, 0
  br i1 %.not445, label %135, label %136

135:                                              ; preds = %131, %124
  br label %136

136:                                              ; preds = %131, %135
  %.str.5.sink493 = phi ptr [ @.str.5, %135 ], [ @.str.2, %131 ]
  store i32 %126, ptr %125, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = tail call ptr @s2n_strerror(i32 noundef %140, ptr noundef nonnull @.str.4) #11
  %142 = load i32, ptr %139, align 4, !tbaa !5
  %143 = tail call ptr @s2n_strerror_debug(i32 noundef %142, ptr noundef nonnull @.str.4) #11
  %144 = load i32, ptr %125, align 4, !tbaa !5
  %145 = tail call ptr @strerror(i32 noundef %144) #11
  %146 = load i32, ptr %125, align 4, !tbaa !5
  %147 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef nonnull %.str.5.sink493, i32 noundef %138, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 26, ptr noundef %141, ptr noundef %143, ptr noundef %145, i32 noundef %146) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

148:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  store ptr null, ptr %3, align 8, !tbaa !9
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.10) #11
  %152 = icmp eq i32 %151, -1
  br i1 %152, label %153, label %177

153:                                              ; preds = %148
  %154 = tail call ptr @__errno_location() #12
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = call i32 @s2n_print_stacktrace(ptr noundef %156) #11
  %158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %159 = trunc nuw i8 %158 to i1
  br i1 %159, label %160, label %164

160:                                              ; preds = %153
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = call i32 @fileno(ptr noundef %161) #11
  %163 = call i32 @isatty(i32 noundef %162) #11
  %.not444 = icmp eq i32 %163, 0
  br i1 %.not444, label %164, label %165

164:                                              ; preds = %160, %153
  br label %165

165:                                              ; preds = %160, %164
  %.str.5.sink504 = phi ptr [ @.str.5, %164 ], [ @.str.2, %160 ]
  store i32 %155, ptr %154, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = call ptr @s2n_strerror(i32 noundef %169, ptr noundef nonnull @.str.4) #11
  %171 = load i32, ptr %168, align 4, !tbaa !5
  %172 = call ptr @s2n_strerror_debug(i32 noundef %171, ptr noundef nonnull @.str.4) #11
  %173 = load i32, ptr %154, align 4, !tbaa !5
  %174 = call ptr @strerror(i32 noundef %173) #11
  %175 = load i32, ptr %154, align 4, !tbaa !5
  %176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull %.str.5.sink504, i32 noundef %167, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 33, ptr noundef %170, ptr noundef %172, ptr noundef %174, i32 noundef %175) #13
  call void @exit(i32 noundef 1) #14
  unreachable

177:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #11
  %178 = call ptr @s2n_config_new() #11
  store ptr %178, ptr %4, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = add nsw i32 %179, 1
  store i32 %180, ptr @test_count, align 4, !tbaa !5
  %181 = icmp eq ptr %178, null
  br i1 %181, label %182, label %206

182:                                              ; preds = %177
  %183 = tail call ptr @__errno_location() #12
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = call i32 @s2n_print_stacktrace(ptr noundef %185) #11
  %187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %188 = trunc nuw i8 %187 to i1
  br i1 %188, label %189, label %193

189:                                              ; preds = %182
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = call i32 @fileno(ptr noundef %190) #11
  %192 = call i32 @isatty(i32 noundef %191) #11
  %.not443 = icmp eq i32 %192, 0
  br i1 %.not443, label %193, label %194

193:                                              ; preds = %189, %182
  br label %194

194:                                              ; preds = %189, %193
  %.str.5.sink515 = phi ptr [ @.str.5, %193 ], [ @.str.2, %189 ]
  store i32 %184, ptr %183, align 4, !tbaa !5
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = call ptr @s2n_strerror(i32 noundef %198, ptr noundef nonnull @.str.4) #11
  %200 = load i32, ptr %197, align 4, !tbaa !5
  %201 = call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef nonnull @.str.4) #11
  %202 = load i32, ptr %183, align 4, !tbaa !5
  %203 = call ptr @strerror(i32 noundef %202) #11
  %204 = load i32, ptr %183, align 4, !tbaa !5
  %205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull %.str.5.sink515, i32 noundef %196, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef %199, ptr noundef %201, ptr noundef %203, i32 noundef %204) #13
  call void @exit(i32 noundef 1) #14
  unreachable

206:                                              ; preds = %177
  %207 = add nsw i32 %179, 2
  store i32 %207, ptr @test_count, align 4, !tbaa !5
  %208 = load ptr, ptr %3, align 8, !tbaa !9
  %209 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %178, ptr noundef %208) #11
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %211, label %235

211:                                              ; preds = %206
  %212 = tail call ptr @__errno_location() #12
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = call i32 @s2n_print_stacktrace(ptr noundef %214) #11
  %216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %217 = trunc nuw i8 %216 to i1
  br i1 %217, label %218, label %222

218:                                              ; preds = %211
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @fileno(ptr noundef %219) #11
  %221 = call i32 @isatty(i32 noundef %220) #11
  %.not442 = icmp eq i32 %221, 0
  br i1 %.not442, label %222, label %223

222:                                              ; preds = %218, %211
  br label %223

223:                                              ; preds = %218, %222
  %.str.5.sink526 = phi ptr [ @.str.5, %222 ], [ @.str.2, %218 ]
  store i32 %213, ptr %212, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call ptr @s2n_strerror(i32 noundef %227, ptr noundef nonnull @.str.4) #11
  %229 = load i32, ptr %226, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror_debug(i32 noundef %229, ptr noundef nonnull @.str.4) #11
  %231 = load i32, ptr %212, align 4, !tbaa !5
  %232 = call ptr @strerror(i32 noundef %231) #11
  %233 = load i32, ptr %212, align 4, !tbaa !5
  %234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %224, ptr noundef nonnull %.str.5.sink526, i32 noundef %225, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %228, ptr noundef %230, ptr noundef %232, i32 noundef %233) #13
  call void @exit(i32 noundef 1) #14
  unreachable

235:                                              ; preds = %206
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %239 = icmp eq ptr %238, null
  br i1 %239, label %240, label %264

240:                                              ; preds = %235
  %241 = tail call ptr @__errno_location() #12
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = call i32 @s2n_print_stacktrace(ptr noundef %243) #11
  %245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %246 = trunc nuw i8 %245 to i1
  br i1 %246, label %247, label %251

247:                                              ; preds = %240
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = call i32 @fileno(ptr noundef %248) #11
  %250 = call i32 @isatty(i32 noundef %249) #11
  %.not441 = icmp eq i32 %250, 0
  br i1 %.not441, label %251, label %252

251:                                              ; preds = %247, %240
  br label %252

252:                                              ; preds = %247, %251
  %.str.5.sink537 = phi ptr [ @.str.5, %251 ], [ @.str.2, %247 ]
  store i32 %242, ptr %241, align 4, !tbaa !5
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = load i32, ptr @test_count, align 4, !tbaa !5
  %255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror(i32 noundef %256, ptr noundef nonnull @.str.4) #11
  %258 = load i32, ptr %255, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror_debug(i32 noundef %258, ptr noundef nonnull @.str.4) #11
  %260 = load i32, ptr %241, align 4, !tbaa !5
  %261 = call ptr @strerror(i32 noundef %260) #11
  %262 = load i32, ptr %241, align 4, !tbaa !5
  %263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %253, ptr noundef nonnull %.str.5.sink537, i32 noundef %254, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %257, ptr noundef %259, ptr noundef %261, i32 noundef %262) #13
  call void @exit(i32 noundef 1) #14
  unreachable

264:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %5, i8 0, i64 40, i1 false)
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = add nsw i32 %265, 1
  store i32 %266, ptr @test_count, align 4, !tbaa !5
  %267 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %5, i32 noundef 0) #11
  %268 = icmp eq i32 %267, -1
  br i1 %268, label %269, label %293

269:                                              ; preds = %264
  %270 = tail call ptr @__errno_location() #12
  %271 = load i32, ptr %270, align 4, !tbaa !5
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %273 = call i32 @s2n_print_stacktrace(ptr noundef %272) #11
  %274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %275 = trunc nuw i8 %274 to i1
  br i1 %275, label %276, label %280

276:                                              ; preds = %269
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = call i32 @fileno(ptr noundef %277) #11
  %279 = call i32 @isatty(i32 noundef %278) #11
  %.not440 = icmp eq i32 %279, 0
  br i1 %.not440, label %280, label %281

280:                                              ; preds = %276, %269
  br label %281

281:                                              ; preds = %276, %280
  %.str.5.sink548 = phi ptr [ @.str.5, %280 ], [ @.str.2, %276 ]
  store i32 %271, ptr %270, align 4, !tbaa !5
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = load i32, ptr @test_count, align 4, !tbaa !5
  %284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call ptr @s2n_strerror(i32 noundef %285, ptr noundef nonnull @.str.4) #11
  %287 = load i32, ptr %284, align 4, !tbaa !5
  %288 = call ptr @s2n_strerror_debug(i32 noundef %287, ptr noundef nonnull @.str.4) #11
  %289 = load i32, ptr %270, align 4, !tbaa !5
  %290 = call ptr @strerror(i32 noundef %289) #11
  %291 = load i32, ptr %270, align 4, !tbaa !5
  %292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %282, ptr noundef nonnull %.str.5.sink548, i32 noundef %283, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %286, ptr noundef %288, ptr noundef %290, i32 noundef %291) #13
  call void @exit(i32 noundef 1) #14
  unreachable

293:                                              ; preds = %264
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = add nsw i32 %294, 1
  store i32 %295, ptr @test_count, align 4, !tbaa !5
  %296 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %5, i16 noundef zeroext 0) #11
  %297 = icmp eq i32 %296, -1
  br i1 %297, label %298, label %322

298:                                              ; preds = %293
  %299 = tail call ptr @__errno_location() #12
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = call i32 @s2n_print_stacktrace(ptr noundef %301) #11
  %303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %304 = trunc nuw i8 %303 to i1
  br i1 %304, label %305, label %309

305:                                              ; preds = %298
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = call i32 @fileno(ptr noundef %306) #11
  %308 = call i32 @isatty(i32 noundef %307) #11
  %.not439 = icmp eq i32 %308, 0
  br i1 %.not439, label %309, label %310

309:                                              ; preds = %305, %298
  br label %310

310:                                              ; preds = %305, %309
  %.str.5.sink559 = phi ptr [ @.str.5, %309 ], [ @.str.2, %305 ]
  store i32 %300, ptr %299, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @s2n_strerror(i32 noundef %314, ptr noundef nonnull @.str.4) #11
  %316 = load i32, ptr %313, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror_debug(i32 noundef %316, ptr noundef nonnull @.str.4) #11
  %318 = load i32, ptr %299, align 4, !tbaa !5
  %319 = call ptr @strerror(i32 noundef %318) #11
  %320 = load i32, ptr %299, align 4, !tbaa !5
  %321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %311, ptr noundef nonnull %.str.5.sink559, i32 noundef %312, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %315, ptr noundef %317, ptr noundef %319, i32 noundef %320) #13
  call void @exit(i32 noundef 1) #14
  unreachable

322:                                              ; preds = %293
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr @test_count, align 4, !tbaa !5
  %325 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_renegotiation_info_extension, i64 16), align 8, !tbaa !15
  %326 = call i32 %325(ptr noundef nonnull %238, ptr noundef nonnull %5) #11
  %327 = icmp eq i32 %326, -1
  br i1 %327, label %352, label %328

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

335:                                              ; preds = %328
  %336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %337 = call i32 @fileno(ptr noundef %336) #11
  %338 = call i32 @isatty(i32 noundef %337) #11
  %.not = icmp eq i32 %338, 0
  br i1 %.not, label %339, label %340

339:                                              ; preds = %335, %328
  br label %340

340:                                              ; preds = %335, %339
  %.str.5.sink570 = phi ptr [ @.str.5, %339 ], [ @.str.2, %335 ]
  store i32 %330, ptr %329, align 4, !tbaa !5
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = load i32, ptr @test_count, align 4, !tbaa !5
  %343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @s2n_strerror(i32 noundef %344, ptr noundef nonnull @.str.4) #11
  %346 = load i32, ptr %343, align 4, !tbaa !5
  %347 = call ptr @s2n_strerror_debug(i32 noundef %346, ptr noundef nonnull @.str.4) #11
  %348 = load i32, ptr %329, align 4, !tbaa !5
  %349 = call ptr @strerror(i32 noundef %348) #11
  %350 = load i32, ptr %329, align 4, !tbaa !5
  %351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %341, ptr noundef nonnull %.str.5.sink570, i32 noundef %342, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %345, ptr noundef %347, ptr noundef %349, i32 noundef %350) #13
  call void @exit(i32 noundef 1) #14
  unreachable

352:                                              ; preds = %322
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr @test_count, align 4, !tbaa !5
  %355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %356 = load i32, ptr %355, align 4, !tbaa !5
  %357 = icmp eq i32 %356, 335544364
  br i1 %357, label %381, label %358

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

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

369:                                              ; preds = %365, %358
  br label %370

370:                                              ; preds = %365, %369
  %.str.5.sink581 = phi ptr [ @.str.5, %369 ], [ @.str.2, %365 ]
  store i32 %360, ptr %359, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = load i32, ptr @test_count, align 4, !tbaa !5
  %373 = load i32, ptr %355, align 4, !tbaa !5
  %374 = call ptr @s2n_strerror(i32 noundef %373, ptr noundef nonnull @.str.4) #11
  %375 = load i32, ptr %355, align 4, !tbaa !5
  %376 = call ptr @s2n_strerror_debug(i32 noundef %375, ptr noundef nonnull @.str.4) #11
  %377 = load i32, ptr %359, align 4, !tbaa !5
  %378 = call ptr @strerror(i32 noundef %377) #11
  %379 = load i32, ptr %359, align 4, !tbaa !5
  %380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %371, ptr noundef nonnull %.str.5.sink581, i32 noundef %372, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %374, ptr noundef %376, ptr noundef %378, i32 noundef %379) #13
  call void @exit(i32 noundef 1) #14
  unreachable

381:                                              ; preds = %352
  %382 = add nsw i32 %353, 2
  store i32 %382, ptr @test_count, align 4, !tbaa !5
  %383 = call ptr @s2n_strerror_debug(i32 noundef 335544364, ptr noundef nonnull @.str.4) #11
  %384 = icmp eq ptr %383, null
  br i1 %384, label %385, label %408

385:                                              ; preds = %381
  %386 = tail call ptr @__errno_location() #12
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %389 = call i32 @s2n_print_stacktrace(ptr noundef %388) #11
  %390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %391 = trunc nuw i8 %390 to i1
  br i1 %391, label %392, label %396

392:                                              ; preds = %385
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = call i32 @fileno(ptr noundef %393) #11
  %395 = call i32 @isatty(i32 noundef %394) #11
  %.not438 = icmp eq i32 %395, 0
  br i1 %.not438, label %396, label %397

396:                                              ; preds = %392, %385
  br label %397

397:                                              ; preds = %392, %396
  %.str.5.sink590 = phi ptr [ @.str.5, %396 ], [ @.str.2, %392 ]
  store i32 %387, ptr %386, align 4, !tbaa !5
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = load i32, ptr @test_count, align 4, !tbaa !5
  %400 = load i32, ptr %355, align 4, !tbaa !5
  %401 = call ptr @s2n_strerror(i32 noundef %400, ptr noundef nonnull @.str.4) #11
  %402 = load i32, ptr %355, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror_debug(i32 noundef %402, ptr noundef nonnull @.str.4) #11
  %404 = load i32, ptr %386, align 4, !tbaa !5
  %405 = call ptr @strerror(i32 noundef %404) #11
  %406 = load i32, ptr %386, align 4, !tbaa !5
  %407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %398, ptr noundef nonnull %.str.5.sink590, i32 noundef %399, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %401, ptr noundef %403, ptr noundef %405, i32 noundef %406) #13
  call void @exit(i32 noundef 1) #14
  unreachable

408:                                              ; preds = %381
  store i32 0, ptr %355, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %409 = tail call ptr @__errno_location() #12
  store i32 0, ptr %409, align 4, !tbaa !5
  %410 = load i32, ptr @test_count, align 4, !tbaa !5
  %411 = add nsw i32 %410, 1
  store i32 %411, ptr @test_count, align 4, !tbaa !5
  %412 = load i32, ptr %238, align 8
  %413 = and i32 %412, 8
  %.not323 = icmp eq i32 %413, 0
  br i1 %.not323, label %436, label %414

414:                                              ; preds = %408
  %415 = load i32, ptr %409, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = call i32 @s2n_print_stacktrace(ptr noundef %416) #11
  %418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %419 = trunc nuw i8 %418 to i1
  br i1 %419, label %420, label %424

420:                                              ; preds = %414
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = call i32 @fileno(ptr noundef %421) #11
  %423 = call i32 @isatty(i32 noundef %422) #11
  %.not437 = icmp eq i32 %423, 0
  br i1 %.not437, label %424, label %425

424:                                              ; preds = %420, %414
  br label %425

425:                                              ; preds = %420, %424
  %.str.5.sink599 = phi ptr [ @.str.5, %424 ], [ @.str.2, %420 ]
  store i32 %415, ptr %409, align 4, !tbaa !5
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = load i32, ptr %355, align 4, !tbaa !5
  %429 = call ptr @s2n_strerror(i32 noundef %428, ptr noundef nonnull @.str.4) #11
  %430 = load i32, ptr %355, align 4, !tbaa !5
  %431 = call ptr @s2n_strerror_debug(i32 noundef %430, ptr noundef nonnull @.str.4) #11
  %432 = load i32, ptr %409, align 4, !tbaa !5
  %433 = call ptr @strerror(i32 noundef %432) #11
  %434 = load i32, ptr %409, align 4, !tbaa !5
  %435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %426, ptr noundef nonnull %.str.5.sink599, i32 noundef %427, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %429, ptr noundef %431, ptr noundef %433, i32 noundef %434) #13
  call void @exit(i32 noundef 1) #14
  unreachable

436:                                              ; preds = %408
  %437 = add nsw i32 %410, 2
  store i32 %437, ptr @test_count, align 4, !tbaa !5
  %438 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #11
  %439 = icmp eq i32 %438, -1
  br i1 %439, label %440, label %462

440:                                              ; preds = %436
  %441 = load i32, ptr %409, align 4, !tbaa !5
  %442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %443 = call i32 @s2n_print_stacktrace(ptr noundef %442) #11
  %444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %445 = trunc nuw i8 %444 to i1
  br i1 %445, label %446, label %450

446:                                              ; preds = %440
  %447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %448 = call i32 @fileno(ptr noundef %447) #11
  %449 = call i32 @isatty(i32 noundef %448) #11
  %.not436 = icmp eq i32 %449, 0
  br i1 %.not436, label %450, label %451

450:                                              ; preds = %446, %440
  br label %451

451:                                              ; preds = %446, %450
  %.str.5.sink608 = phi ptr [ @.str.5, %450 ], [ @.str.2, %446 ]
  store i32 %441, ptr %409, align 4, !tbaa !5
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = load i32, ptr @test_count, align 4, !tbaa !5
  %454 = load i32, ptr %355, align 4, !tbaa !5
  %455 = call ptr @s2n_strerror(i32 noundef %454, ptr noundef nonnull @.str.4) #11
  %456 = load i32, ptr %355, align 4, !tbaa !5
  %457 = call ptr @s2n_strerror_debug(i32 noundef %456, ptr noundef nonnull @.str.4) #11
  %458 = load i32, ptr %409, align 4, !tbaa !5
  %459 = call ptr @strerror(i32 noundef %458) #11
  %460 = load i32, ptr %409, align 4, !tbaa !5
  %461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %452, ptr noundef nonnull %.str.5.sink608, i32 noundef %453, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %455, ptr noundef %457, ptr noundef %459, i32 noundef %460) #13
  call void @exit(i32 noundef 1) #14
  unreachable

462:                                              ; preds = %436
  %463 = load i32, ptr @test_count, align 4, !tbaa !5
  %464 = add nsw i32 %463, 1
  store i32 %464, ptr @test_count, align 4, !tbaa !5
  %465 = call i32 @s2n_connection_free(ptr noundef nonnull %238) #11
  %466 = icmp eq i32 %465, -1
  br i1 %466, label %467, label %489

467:                                              ; preds = %462
  %468 = load i32, ptr %409, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = call i32 @s2n_print_stacktrace(ptr noundef %469) #11
  %471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %472 = trunc nuw i8 %471 to i1
  br i1 %472, label %473, label %477

473:                                              ; preds = %467
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = call i32 @fileno(ptr noundef %474) #11
  %476 = call i32 @isatty(i32 noundef %475) #11
  %.not435 = icmp eq i32 %476, 0
  br i1 %.not435, label %477, label %478

477:                                              ; preds = %473, %467
  br label %478

478:                                              ; preds = %473, %477
  %.str.5.sink617 = phi ptr [ @.str.5, %477 ], [ @.str.2, %473 ]
  store i32 %468, ptr %409, align 4, !tbaa !5
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = load i32, ptr %355, align 4, !tbaa !5
  %482 = call ptr @s2n_strerror(i32 noundef %481, ptr noundef nonnull @.str.4) #11
  %483 = load i32, ptr %355, align 4, !tbaa !5
  %484 = call ptr @s2n_strerror_debug(i32 noundef %483, ptr noundef nonnull @.str.4) #11
  %485 = load i32, ptr %409, align 4, !tbaa !5
  %486 = call ptr @strerror(i32 noundef %485) #11
  %487 = load i32, ptr %409, align 4, !tbaa !5
  %488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %479, ptr noundef nonnull %.str.5.sink617, i32 noundef %480, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %482, ptr noundef %484, ptr noundef %486, i32 noundef %487) #13
  call void @exit(i32 noundef 1) #14
  unreachable

489:                                              ; preds = %462
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #11
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = add nsw i32 %490, 1
  store i32 %491, ptr @test_count, align 4, !tbaa !5
  %492 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %493 = icmp eq ptr %492, null
  br i1 %493, label %494, label %516

494:                                              ; preds = %489
  %495 = load i32, ptr %409, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = call i32 @s2n_print_stacktrace(ptr noundef %496) #11
  %498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %499 = trunc nuw i8 %498 to i1
  br i1 %499, label %500, label %504

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

504:                                              ; preds = %500, %494
  br label %505

505:                                              ; preds = %500, %504
  %.str.5.sink626 = phi ptr [ @.str.5, %504 ], [ @.str.2, %500 ]
  store i32 %495, ptr %409, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = load i32, ptr %355, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror(i32 noundef %508, ptr noundef nonnull @.str.4) #11
  %510 = load i32, ptr %355, align 4, !tbaa !5
  %511 = call ptr @s2n_strerror_debug(i32 noundef %510, ptr noundef nonnull @.str.4) #11
  %512 = load i32, ptr %409, align 4, !tbaa !5
  %513 = call ptr @strerror(i32 noundef %512) #11
  %514 = load i32, ptr %409, align 4, !tbaa !5
  %515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %506, ptr noundef nonnull %.str.5.sink626, i32 noundef %507, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %509, ptr noundef %511, ptr noundef %513, i32 noundef %514) #13
  call void @exit(i32 noundef 1) #14
  unreachable

516:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr @test_count, align 4, !tbaa !5
  %519 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #11
  %520 = icmp eq i32 %519, -1
  br i1 %520, label %521, label %543

521:                                              ; preds = %516
  %522 = load i32, ptr %409, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = call i32 @s2n_print_stacktrace(ptr noundef %523) #11
  %525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %526 = trunc nuw i8 %525 to i1
  br i1 %526, label %527, label %531

527:                                              ; preds = %521
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = call i32 @fileno(ptr noundef %528) #11
  %530 = call i32 @isatty(i32 noundef %529) #11
  %.not433 = icmp eq i32 %530, 0
  br i1 %.not433, label %531, label %532

531:                                              ; preds = %527, %521
  br label %532

532:                                              ; preds = %527, %531
  %.str.5.sink635 = phi ptr [ @.str.5, %531 ], [ @.str.2, %527 ]
  store i32 %522, ptr %409, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = load i32, ptr %355, align 4, !tbaa !5
  %536 = call ptr @s2n_strerror(i32 noundef %535, ptr noundef nonnull @.str.4) #11
  %537 = load i32, ptr %355, align 4, !tbaa !5
  %538 = call ptr @s2n_strerror_debug(i32 noundef %537, ptr noundef nonnull @.str.4) #11
  %539 = load i32, ptr %409, align 4, !tbaa !5
  %540 = call ptr @strerror(i32 noundef %539) #11
  %541 = load i32, ptr %409, align 4, !tbaa !5
  %542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %533, ptr noundef nonnull %.str.5.sink635, i32 noundef %534, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %536, ptr noundef %538, ptr noundef %540, i32 noundef %541) #13
  call void @exit(i32 noundef 1) #14
  unreachable

543:                                              ; preds = %516
  %544 = load i32, ptr @test_count, align 4, !tbaa !5
  %545 = add nsw i32 %544, 1
  store i32 %545, ptr @test_count, align 4, !tbaa !5
  %546 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %6, i8 noundef zeroext 1) #11
  %547 = icmp eq i32 %546, -1
  br i1 %547, label %548, label %570

548:                                              ; preds = %543
  %549 = load i32, ptr %409, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = call i32 @s2n_print_stacktrace(ptr noundef %550) #11
  %552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %553 = trunc nuw i8 %552 to i1
  br i1 %553, label %554, label %558

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

558:                                              ; preds = %554, %548
  br label %559

559:                                              ; preds = %554, %558
  %.str.5.sink644 = phi ptr [ @.str.5, %558 ], [ @.str.2, %554 ]
  store i32 %549, ptr %409, align 4, !tbaa !5
  %560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %561 = load i32, ptr @test_count, align 4, !tbaa !5
  %562 = load i32, ptr %355, align 4, !tbaa !5
  %563 = call ptr @s2n_strerror(i32 noundef %562, ptr noundef nonnull @.str.4) #11
  %564 = load i32, ptr %355, align 4, !tbaa !5
  %565 = call ptr @s2n_strerror_debug(i32 noundef %564, ptr noundef nonnull @.str.4) #11
  %566 = load i32, ptr %409, align 4, !tbaa !5
  %567 = call ptr @strerror(i32 noundef %566) #11
  %568 = load i32, ptr %409, align 4, !tbaa !5
  %569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %560, ptr noundef nonnull %.str.5.sink644, i32 noundef %561, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %563, ptr noundef %565, ptr noundef %567, i32 noundef %568) #13
  call void @exit(i32 noundef 1) #14
  unreachable

570:                                              ; preds = %543
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = add nsw i32 %571, 1
  store i32 %572, ptr @test_count, align 4, !tbaa !5
  %573 = call i32 %325(ptr noundef nonnull %492, ptr noundef nonnull %6) #11
  %574 = icmp eq i32 %573, -1
  br i1 %574, label %597, label %575

575:                                              ; preds = %570
  %576 = load i32, ptr %409, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @s2n_print_stacktrace(ptr noundef %577) #11
  %579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %580 = trunc nuw i8 %579 to i1
  br i1 %580, label %581, label %585

581:                                              ; preds = %575
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = call i32 @fileno(ptr noundef %582) #11
  %584 = call i32 @isatty(i32 noundef %583) #11
  %.not324 = icmp eq i32 %584, 0
  br i1 %.not324, label %585, label %586

585:                                              ; preds = %581, %575
  br label %586

586:                                              ; preds = %581, %585
  %.str.5.sink653 = phi ptr [ @.str.5, %585 ], [ @.str.2, %581 ]
  store i32 %576, ptr %409, align 4, !tbaa !5
  %587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %588 = load i32, ptr @test_count, align 4, !tbaa !5
  %589 = load i32, ptr %355, align 4, !tbaa !5
  %590 = call ptr @s2n_strerror(i32 noundef %589, ptr noundef nonnull @.str.4) #11
  %591 = load i32, ptr %355, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror_debug(i32 noundef %591, ptr noundef nonnull @.str.4) #11
  %593 = load i32, ptr %409, align 4, !tbaa !5
  %594 = call ptr @strerror(i32 noundef %593) #11
  %595 = load i32, ptr %409, align 4, !tbaa !5
  %596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %587, ptr noundef nonnull %.str.5.sink653, i32 noundef %588, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %590, ptr noundef %592, ptr noundef %594, i32 noundef %595) #13
  call void @exit(i32 noundef 1) #14
  unreachable

597:                                              ; preds = %570
  %598 = load i32, ptr @test_count, align 4, !tbaa !5
  %599 = add nsw i32 %598, 1
  store i32 %599, ptr @test_count, align 4, !tbaa !5
  %600 = load i32, ptr %355, align 4, !tbaa !5
  %601 = icmp eq i32 %600, 335544364
  br i1 %601, label %624, label %602

602:                                              ; preds = %597
  %603 = load i32, ptr %409, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = call i32 @s2n_print_stacktrace(ptr noundef %604) #11
  %606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %607 = trunc nuw i8 %606 to i1
  br i1 %607, label %608, label %612

608:                                              ; preds = %602
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = call i32 @fileno(ptr noundef %609) #11
  %611 = call i32 @isatty(i32 noundef %610) #11
  %.not325 = icmp eq i32 %611, 0
  br i1 %.not325, label %612, label %613

612:                                              ; preds = %608, %602
  br label %613

613:                                              ; preds = %608, %612
  %.str.5.sink662 = phi ptr [ @.str.5, %612 ], [ @.str.2, %608 ]
  store i32 %603, ptr %409, align 4, !tbaa !5
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = load i32, ptr @test_count, align 4, !tbaa !5
  %616 = load i32, ptr %355, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror(i32 noundef %616, ptr noundef nonnull @.str.4) #11
  %618 = load i32, ptr %355, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef nonnull @.str.4) #11
  %620 = load i32, ptr %409, align 4, !tbaa !5
  %621 = call ptr @strerror(i32 noundef %620) #11
  %622 = load i32, ptr %409, align 4, !tbaa !5
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %614, ptr noundef nonnull %.str.5.sink662, i32 noundef %615, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %617, ptr noundef %619, ptr noundef %621, i32 noundef %622) #13
  call void @exit(i32 noundef 1) #14
  unreachable

624:                                              ; preds = %597
  %625 = add nsw i32 %598, 2
  store i32 %625, ptr @test_count, align 4, !tbaa !5
  %626 = call ptr @s2n_strerror_debug(i32 noundef 335544364, ptr noundef nonnull @.str.4) #11
  %627 = icmp eq ptr %626, null
  br i1 %627, label %628, label %650

628:                                              ; preds = %624
  %629 = load i32, ptr %409, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @s2n_print_stacktrace(ptr noundef %630) #11
  %632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %633 = trunc nuw i8 %632 to i1
  br i1 %633, label %634, label %638

634:                                              ; preds = %628
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = call i32 @fileno(ptr noundef %635) #11
  %637 = call i32 @isatty(i32 noundef %636) #11
  %.not431 = icmp eq i32 %637, 0
  br i1 %.not431, label %638, label %639

638:                                              ; preds = %634, %628
  br label %639

639:                                              ; preds = %634, %638
  %.str.5.sink671 = phi ptr [ @.str.5, %638 ], [ @.str.2, %634 ]
  store i32 %629, ptr %409, align 4, !tbaa !5
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = load i32, ptr %355, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror(i32 noundef %642, ptr noundef nonnull @.str.4) #11
  %644 = load i32, ptr %355, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef nonnull @.str.4) #11
  %646 = load i32, ptr %409, align 4, !tbaa !5
  %647 = call ptr @strerror(i32 noundef %646) #11
  %648 = load i32, ptr %409, align 4, !tbaa !5
  %649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %640, ptr noundef nonnull %.str.5.sink671, i32 noundef %641, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %643, ptr noundef %645, ptr noundef %647, i32 noundef %648) #13
  call void @exit(i32 noundef 1) #14
  unreachable

650:                                              ; preds = %624
  store i32 0, ptr %355, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %409, align 4, !tbaa !5
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = load i32, ptr %492, align 8
  %654 = and i32 %653, 8
  %.not326 = icmp eq i32 %654, 0
  br i1 %.not326, label %677, label %655

655:                                              ; preds = %650
  %656 = load i32, ptr %409, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = call i32 @s2n_print_stacktrace(ptr noundef %657) #11
  %659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %660 = trunc nuw i8 %659 to i1
  br i1 %660, label %661, label %665

661:                                              ; preds = %655
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = call i32 @fileno(ptr noundef %662) #11
  %664 = call i32 @isatty(i32 noundef %663) #11
  %.not430 = icmp eq i32 %664, 0
  br i1 %.not430, label %665, label %666

665:                                              ; preds = %661, %655
  br label %666

666:                                              ; preds = %661, %665
  %.str.5.sink680 = phi ptr [ @.str.5, %665 ], [ @.str.2, %661 ]
  store i32 %656, ptr %409, align 4, !tbaa !5
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = load i32, ptr %355, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror(i32 noundef %669, ptr noundef nonnull @.str.4) #11
  %671 = load i32, ptr %355, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror_debug(i32 noundef %671, ptr noundef nonnull @.str.4) #11
  %673 = load i32, ptr %409, align 4, !tbaa !5
  %674 = call ptr @strerror(i32 noundef %673) #11
  %675 = load i32, ptr %409, align 4, !tbaa !5
  %676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %667, ptr noundef nonnull %.str.5.sink680, i32 noundef %668, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %670, ptr noundef %672, ptr noundef %674, i32 noundef %675) #13
  call void @exit(i32 noundef 1) #14
  unreachable

677:                                              ; preds = %650
  %678 = add nsw i32 %651, 2
  store i32 %678, ptr @test_count, align 4, !tbaa !5
  %679 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #11
  %680 = icmp eq i32 %679, -1
  br i1 %680, label %681, label %703

681:                                              ; preds = %677
  %682 = load i32, ptr %409, align 4, !tbaa !5
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = call i32 @s2n_print_stacktrace(ptr noundef %683) #11
  %685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %686 = trunc nuw i8 %685 to i1
  br i1 %686, label %687, label %691

687:                                              ; preds = %681
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = call i32 @fileno(ptr noundef %688) #11
  %690 = call i32 @isatty(i32 noundef %689) #11
  %.not429 = icmp eq i32 %690, 0
  br i1 %.not429, label %691, label %692

691:                                              ; preds = %687, %681
  br label %692

692:                                              ; preds = %687, %691
  %.str.5.sink689 = phi ptr [ @.str.5, %691 ], [ @.str.2, %687 ]
  store i32 %682, ptr %409, align 4, !tbaa !5
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = load i32, ptr %355, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror(i32 noundef %695, ptr noundef nonnull @.str.4) #11
  %697 = load i32, ptr %355, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror_debug(i32 noundef %697, ptr noundef nonnull @.str.4) #11
  %699 = load i32, ptr %409, align 4, !tbaa !5
  %700 = call ptr @strerror(i32 noundef %699) #11
  %701 = load i32, ptr %409, align 4, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %693, ptr noundef nonnull %.str.5.sink689, i32 noundef %694, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %696, ptr noundef %698, ptr noundef %700, i32 noundef %701) #13
  call void @exit(i32 noundef 1) #14
  unreachable

703:                                              ; preds = %677
  %704 = load i32, ptr @test_count, align 4, !tbaa !5
  %705 = add nsw i32 %704, 1
  store i32 %705, ptr @test_count, align 4, !tbaa !5
  %706 = call i32 @s2n_connection_free(ptr noundef nonnull %492) #11
  %707 = icmp eq i32 %706, -1
  br i1 %707, label %708, label %730

708:                                              ; preds = %703
  %709 = load i32, ptr %409, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = call i32 @s2n_print_stacktrace(ptr noundef %710) #11
  %712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %713 = trunc nuw i8 %712 to i1
  br i1 %713, label %714, label %718

714:                                              ; preds = %708
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = call i32 @fileno(ptr noundef %715) #11
  %717 = call i32 @isatty(i32 noundef %716) #11
  %.not428 = icmp eq i32 %717, 0
  br i1 %.not428, label %718, label %719

718:                                              ; preds = %714, %708
  br label %719

719:                                              ; preds = %714, %718
  %.str.5.sink698 = phi ptr [ @.str.5, %718 ], [ @.str.2, %714 ]
  store i32 %709, ptr %409, align 4, !tbaa !5
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = load i32, ptr @test_count, align 4, !tbaa !5
  %722 = load i32, ptr %355, align 4, !tbaa !5
  %723 = call ptr @s2n_strerror(i32 noundef %722, ptr noundef nonnull @.str.4) #11
  %724 = load i32, ptr %355, align 4, !tbaa !5
  %725 = call ptr @s2n_strerror_debug(i32 noundef %724, ptr noundef nonnull @.str.4) #11
  %726 = load i32, ptr %409, align 4, !tbaa !5
  %727 = call ptr @strerror(i32 noundef %726) #11
  %728 = load i32, ptr %409, align 4, !tbaa !5
  %729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %720, ptr noundef nonnull %.str.5.sink698, i32 noundef %721, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %723, ptr noundef %725, ptr noundef %727, i32 noundef %728) #13
  call void @exit(i32 noundef 1) #14
  unreachable

730:                                              ; preds = %703
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #11
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = add nsw i32 %731, 1
  store i32 %732, ptr @test_count, align 4, !tbaa !5
  %733 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %734 = icmp eq ptr %733, null
  br i1 %734, label %735, label %757

735:                                              ; preds = %730
  %736 = load i32, ptr %409, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = call i32 @s2n_print_stacktrace(ptr noundef %737) #11
  %739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %740 = trunc nuw i8 %739 to i1
  br i1 %740, label %741, label %745

741:                                              ; preds = %735
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = call i32 @fileno(ptr noundef %742) #11
  %744 = call i32 @isatty(i32 noundef %743) #11
  %.not427 = icmp eq i32 %744, 0
  br i1 %.not427, label %745, label %746

745:                                              ; preds = %741, %735
  br label %746

746:                                              ; preds = %741, %745
  %.str.5.sink707 = phi ptr [ @.str.5, %745 ], [ @.str.2, %741 ]
  store i32 %736, ptr %409, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = load i32, ptr %355, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror(i32 noundef %749, ptr noundef nonnull @.str.4) #11
  %751 = load i32, ptr %355, align 4, !tbaa !5
  %752 = call ptr @s2n_strerror_debug(i32 noundef %751, ptr noundef nonnull @.str.4) #11
  %753 = load i32, ptr %409, align 4, !tbaa !5
  %754 = call ptr @strerror(i32 noundef %753) #11
  %755 = load i32, ptr %409, align 4, !tbaa !5
  %756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef nonnull %.str.5.sink707, i32 noundef %748, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %750, ptr noundef %752, ptr noundef %754, i32 noundef %755) #13
  call void @exit(i32 noundef 1) #14
  unreachable

757:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = add nsw i32 %758, 1
  store i32 %759, ptr @test_count, align 4, !tbaa !5
  %760 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #11
  %761 = icmp eq i32 %760, -1
  br i1 %761, label %762, label %784

762:                                              ; preds = %757
  %763 = load i32, ptr %409, align 4, !tbaa !5
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @s2n_print_stacktrace(ptr noundef %764) #11
  %766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %767 = trunc nuw i8 %766 to i1
  br i1 %767, label %768, label %772

768:                                              ; preds = %762
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @fileno(ptr noundef %769) #11
  %771 = call i32 @isatty(i32 noundef %770) #11
  %.not426 = icmp eq i32 %771, 0
  br i1 %.not426, label %772, label %773

772:                                              ; preds = %768, %762
  br label %773

773:                                              ; preds = %768, %772
  %.str.5.sink716 = phi ptr [ @.str.5, %772 ], [ @.str.2, %768 ]
  store i32 %763, ptr %409, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = load i32, ptr %355, align 4, !tbaa !5
  %777 = call ptr @s2n_strerror(i32 noundef %776, ptr noundef nonnull @.str.4) #11
  %778 = load i32, ptr %355, align 4, !tbaa !5
  %779 = call ptr @s2n_strerror_debug(i32 noundef %778, ptr noundef nonnull @.str.4) #11
  %780 = load i32, ptr %409, align 4, !tbaa !5
  %781 = call ptr @strerror(i32 noundef %780) #11
  %782 = load i32, ptr %409, align 4, !tbaa !5
  %783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %774, ptr noundef nonnull %.str.5.sink716, i32 noundef %775, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %777, ptr noundef %779, ptr noundef %781, i32 noundef %782) #13
  call void @exit(i32 noundef 1) #14
  unreachable

784:                                              ; preds = %757
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr @test_count, align 4, !tbaa !5
  %787 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %7, i8 noundef zeroext 0) #11
  %788 = icmp eq i32 %787, -1
  br i1 %788, label %789, label %811

789:                                              ; preds = %784
  %790 = load i32, ptr %409, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = call i32 @s2n_print_stacktrace(ptr noundef %791) #11
  %793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %794 = trunc nuw i8 %793 to i1
  br i1 %794, label %795, label %799

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

799:                                              ; preds = %795, %789
  br label %800

800:                                              ; preds = %795, %799
  %.str.5.sink725 = phi ptr [ @.str.5, %799 ], [ @.str.2, %795 ]
  store i32 %790, ptr %409, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = load i32, ptr %355, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror(i32 noundef %803, ptr noundef nonnull @.str.4) #11
  %805 = load i32, ptr %355, align 4, !tbaa !5
  %806 = call ptr @s2n_strerror_debug(i32 noundef %805, ptr noundef nonnull @.str.4) #11
  %807 = load i32, ptr %409, align 4, !tbaa !5
  %808 = call ptr @strerror(i32 noundef %807) #11
  %809 = load i32, ptr %409, align 4, !tbaa !5
  %810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef nonnull %.str.5.sink725, i32 noundef %802, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %804, ptr noundef %806, ptr noundef %808, i32 noundef %809) #13
  call void @exit(i32 noundef 1) #14
  unreachable

811:                                              ; preds = %784
  %812 = load i32, ptr @test_count, align 4, !tbaa !5
  %813 = add nsw i32 %812, 1
  store i32 %813, ptr @test_count, align 4, !tbaa !5
  %814 = call i32 %325(ptr noundef nonnull %733, ptr noundef nonnull %7) #11
  %815 = icmp eq i32 %814, -1
  br i1 %815, label %816, label %838

816:                                              ; preds = %811
  %817 = load i32, ptr %409, align 4, !tbaa !5
  %818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %819 = call i32 @s2n_print_stacktrace(ptr noundef %818) #11
  %820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %821 = trunc nuw i8 %820 to i1
  br i1 %821, label %822, label %826

822:                                              ; preds = %816
  %823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %824 = call i32 @fileno(ptr noundef %823) #11
  %825 = call i32 @isatty(i32 noundef %824) #11
  %.not424 = icmp eq i32 %825, 0
  br i1 %.not424, label %826, label %827

826:                                              ; preds = %822, %816
  br label %827

827:                                              ; preds = %822, %826
  %.str.5.sink734 = phi ptr [ @.str.5, %826 ], [ @.str.2, %822 ]
  store i32 %817, ptr %409, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = load i32, ptr @test_count, align 4, !tbaa !5
  %830 = load i32, ptr %355, align 4, !tbaa !5
  %831 = call ptr @s2n_strerror(i32 noundef %830, ptr noundef nonnull @.str.4) #11
  %832 = load i32, ptr %355, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror_debug(i32 noundef %832, ptr noundef nonnull @.str.4) #11
  %834 = load i32, ptr %409, align 4, !tbaa !5
  %835 = call ptr @strerror(i32 noundef %834) #11
  %836 = load i32, ptr %409, align 4, !tbaa !5
  %837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %828, ptr noundef nonnull %.str.5.sink734, i32 noundef %829, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %831, ptr noundef %833, ptr noundef %835, i32 noundef %836) #13
  call void @exit(i32 noundef 1) #14
  unreachable

838:                                              ; preds = %811
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = add nsw i32 %839, 1
  store i32 %840, ptr @test_count, align 4, !tbaa !5
  %841 = load i32, ptr %733, align 8
  %842 = and i32 %841, 8
  %.not327 = icmp eq i32 %842, 0
  br i1 %.not327, label %843, label %865

843:                                              ; preds = %838
  %844 = load i32, ptr %409, align 4, !tbaa !5
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = call i32 @s2n_print_stacktrace(ptr noundef %845) #11
  %847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %848 = trunc nuw i8 %847 to i1
  br i1 %848, label %849, label %853

849:                                              ; preds = %843
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = call i32 @fileno(ptr noundef %850) #11
  %852 = call i32 @isatty(i32 noundef %851) #11
  %.not328 = icmp eq i32 %852, 0
  br i1 %.not328, label %853, label %854

853:                                              ; preds = %849, %843
  br label %854

854:                                              ; preds = %849, %853
  %.str.5.sink743 = phi ptr [ @.str.5, %853 ], [ @.str.2, %849 ]
  store i32 %844, ptr %409, align 4, !tbaa !5
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = load i32, ptr %355, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror(i32 noundef %857, ptr noundef nonnull @.str.4) #11
  %859 = load i32, ptr %355, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror_debug(i32 noundef %859, ptr noundef nonnull @.str.4) #11
  %861 = load i32, ptr %409, align 4, !tbaa !5
  %862 = call ptr @strerror(i32 noundef %861) #11
  %863 = load i32, ptr %409, align 4, !tbaa !5
  %864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %855, ptr noundef nonnull %.str.5.sink743, i32 noundef %856, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %858, ptr noundef %860, ptr noundef %862, i32 noundef %863) #13
  call void @exit(i32 noundef 1) #14
  unreachable

865:                                              ; preds = %838
  %866 = add nsw i32 %839, 2
  store i32 %866, ptr @test_count, align 4, !tbaa !5
  %867 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #11
  %868 = icmp eq i32 %867, -1
  br i1 %868, label %869, label %891

869:                                              ; preds = %865
  %870 = load i32, ptr %409, align 4, !tbaa !5
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = call i32 @s2n_print_stacktrace(ptr noundef %871) #11
  %873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %874 = trunc nuw i8 %873 to i1
  br i1 %874, label %875, label %879

875:                                              ; preds = %869
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = call i32 @fileno(ptr noundef %876) #11
  %878 = call i32 @isatty(i32 noundef %877) #11
  %.not423 = icmp eq i32 %878, 0
  br i1 %.not423, label %879, label %880

879:                                              ; preds = %875, %869
  br label %880

880:                                              ; preds = %875, %879
  %.str.5.sink752 = phi ptr [ @.str.5, %879 ], [ @.str.2, %875 ]
  store i32 %870, ptr %409, align 4, !tbaa !5
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = load i32, ptr @test_count, align 4, !tbaa !5
  %883 = load i32, ptr %355, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror(i32 noundef %883, ptr noundef nonnull @.str.4) #11
  %885 = load i32, ptr %355, align 4, !tbaa !5
  %886 = call ptr @s2n_strerror_debug(i32 noundef %885, ptr noundef nonnull @.str.4) #11
  %887 = load i32, ptr %409, align 4, !tbaa !5
  %888 = call ptr @strerror(i32 noundef %887) #11
  %889 = load i32, ptr %409, align 4, !tbaa !5
  %890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %881, ptr noundef nonnull %.str.5.sink752, i32 noundef %882, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %884, ptr noundef %886, ptr noundef %888, i32 noundef %889) #13
  call void @exit(i32 noundef 1) #14
  unreachable

891:                                              ; preds = %865
  %892 = load i32, ptr @test_count, align 4, !tbaa !5
  %893 = add nsw i32 %892, 1
  store i32 %893, ptr @test_count, align 4, !tbaa !5
  %894 = call i32 @s2n_connection_free(ptr noundef nonnull %733) #11
  %895 = icmp eq i32 %894, -1
  br i1 %895, label %896, label %918

896:                                              ; preds = %891
  %897 = load i32, ptr %409, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = call i32 @s2n_print_stacktrace(ptr noundef %898) #11
  %900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %901 = trunc nuw i8 %900 to i1
  br i1 %901, label %902, label %906

902:                                              ; preds = %896
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 @fileno(ptr noundef %903) #11
  %905 = call i32 @isatty(i32 noundef %904) #11
  %.not422 = icmp eq i32 %905, 0
  br i1 %.not422, label %906, label %907

906:                                              ; preds = %902, %896
  br label %907

907:                                              ; preds = %902, %906
  %.str.5.sink761 = phi ptr [ @.str.5, %906 ], [ @.str.2, %902 ]
  store i32 %897, ptr %409, align 4, !tbaa !5
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = load i32, ptr @test_count, align 4, !tbaa !5
  %910 = load i32, ptr %355, align 4, !tbaa !5
  %911 = call ptr @s2n_strerror(i32 noundef %910, ptr noundef nonnull @.str.4) #11
  %912 = load i32, ptr %355, align 4, !tbaa !5
  %913 = call ptr @s2n_strerror_debug(i32 noundef %912, ptr noundef nonnull @.str.4) #11
  %914 = load i32, ptr %409, align 4, !tbaa !5
  %915 = call ptr @strerror(i32 noundef %914) #11
  %916 = load i32, ptr %409, align 4, !tbaa !5
  %917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %908, ptr noundef nonnull %.str.5.sink761, i32 noundef %909, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %911, ptr noundef %913, ptr noundef %915, i32 noundef %916) #13
  call void @exit(i32 noundef 1) #14
  unreachable

918:                                              ; preds = %891
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  %919 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %919, ptr %8, align 8, !tbaa !9
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr @test_count, align 4, !tbaa !5
  %922 = icmp eq ptr %919, null
  br i1 %922, label %923, label %945

923:                                              ; preds = %918
  %924 = load i32, ptr %409, align 4, !tbaa !5
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = call i32 @s2n_print_stacktrace(ptr noundef %925) #11
  %927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %928 = trunc nuw i8 %927 to i1
  br i1 %928, label %929, label %933

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

933:                                              ; preds = %929, %923
  br label %934

934:                                              ; preds = %929, %933
  %.str.5.sink770 = phi ptr [ @.str.5, %933 ], [ @.str.2, %929 ]
  store i32 %924, ptr %409, align 4, !tbaa !5
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = load i32, ptr %355, align 4, !tbaa !5
  %938 = call ptr @s2n_strerror(i32 noundef %937, ptr noundef nonnull @.str.4) #11
  %939 = load i32, ptr %355, align 4, !tbaa !5
  %940 = call ptr @s2n_strerror_debug(i32 noundef %939, ptr noundef nonnull @.str.4) #11
  %941 = load i32, ptr %409, align 4, !tbaa !5
  %942 = call ptr @strerror(i32 noundef %941) #11
  %943 = load i32, ptr %409, align 4, !tbaa !5
  %944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %935, ptr noundef nonnull %.str.5.sink770, i32 noundef %936, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %938, ptr noundef %940, ptr noundef %942, i32 noundef %943) #13
  call void @exit(i32 noundef 1) #14
  unreachable

945:                                              ; preds = %918
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %946 = add nsw i32 %920, 2
  store i32 %946, ptr @test_count, align 4, !tbaa !5
  %947 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #11
  %948 = icmp eq i32 %947, -1
  br i1 %948, label %949, label %971

949:                                              ; preds = %945
  %950 = load i32, ptr %409, align 4, !tbaa !5
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = call i32 @s2n_print_stacktrace(ptr noundef %951) #11
  %953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %954 = trunc nuw i8 %953 to i1
  br i1 %954, label %955, label %959

955:                                              ; preds = %949
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = call i32 @fileno(ptr noundef %956) #11
  %958 = call i32 @isatty(i32 noundef %957) #11
  %.not420 = icmp eq i32 %958, 0
  br i1 %.not420, label %959, label %960

959:                                              ; preds = %955, %949
  br label %960

960:                                              ; preds = %955, %959
  %.str.5.sink779 = phi ptr [ @.str.5, %959 ], [ @.str.2, %955 ]
  store i32 %950, ptr %409, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = load i32, ptr %355, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror(i32 noundef %963, ptr noundef nonnull @.str.4) #11
  %965 = load i32, ptr %355, align 4, !tbaa !5
  %966 = call ptr @s2n_strerror_debug(i32 noundef %965, ptr noundef nonnull @.str.4) #11
  %967 = load i32, ptr %409, align 4, !tbaa !5
  %968 = call ptr @strerror(i32 noundef %967) #11
  %969 = load i32, ptr %409, align 4, !tbaa !5
  %970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef nonnull %.str.5.sink779, i32 noundef %962, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %964, ptr noundef %966, ptr noundef %968, i32 noundef %969) #13
  call void @exit(i32 noundef 1) #14
  unreachable

971:                                              ; preds = %945
  %972 = load i32, ptr @test_count, align 4, !tbaa !5
  %973 = add nsw i32 %972, 1
  store i32 %973, ptr @test_count, align 4, !tbaa !5
  %974 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %9, i8 noundef zeroext 0) #11
  %975 = icmp eq i32 %974, -1
  br i1 %975, label %976, label %998

976:                                              ; preds = %971
  %977 = load i32, ptr %409, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @s2n_print_stacktrace(ptr noundef %978) #11
  %980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %981 = trunc nuw i8 %980 to i1
  br i1 %981, label %982, label %986

982:                                              ; preds = %976
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = call i32 @fileno(ptr noundef %983) #11
  %985 = call i32 @isatty(i32 noundef %984) #11
  %.not419 = icmp eq i32 %985, 0
  br i1 %.not419, label %986, label %987

986:                                              ; preds = %982, %976
  br label %987

987:                                              ; preds = %982, %986
  %.str.5.sink788 = phi ptr [ @.str.5, %986 ], [ @.str.2, %982 ]
  store i32 %977, ptr %409, align 4, !tbaa !5
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = load i32, ptr @test_count, align 4, !tbaa !5
  %990 = load i32, ptr %355, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror(i32 noundef %990, ptr noundef nonnull @.str.4) #11
  %992 = load i32, ptr %355, align 4, !tbaa !5
  %993 = call ptr @s2n_strerror_debug(i32 noundef %992, ptr noundef nonnull @.str.4) #11
  %994 = load i32, ptr %409, align 4, !tbaa !5
  %995 = call ptr @strerror(i32 noundef %994) #11
  %996 = load i32, ptr %409, align 4, !tbaa !5
  %997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %988, ptr noundef nonnull %.str.5.sink788, i32 noundef %989, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %991, ptr noundef %993, ptr noundef %995, i32 noundef %996) #13
  call void @exit(i32 noundef 1) #14
  unreachable

998:                                              ; preds = %971
  %999 = load ptr, ptr %8, align 8, !tbaa !9
  %1000 = getelementptr inbounds i8, ptr %999, i64 219
  store i8 30, ptr %1000, align 1, !tbaa !18
  %1001 = getelementptr inbounds i8, ptr %999, i64 220
  store i8 30, ptr %1001, align 4, !tbaa !44
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr @test_count, align 4, !tbaa !5
  %1004 = call i32 %325(ptr noundef %999, ptr noundef nonnull %9) #11
  %1005 = icmp eq i32 %1004, -1
  br i1 %1005, label %1006, label %1028

1006:                                             ; preds = %998
  %1007 = load i32, ptr %409, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @s2n_print_stacktrace(ptr noundef %1008) #11
  %1010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1011 = trunc nuw i8 %1010 to i1
  br i1 %1011, label %1012, label %1016

1012:                                             ; preds = %1006
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @fileno(ptr noundef %1013) #11
  %1015 = call i32 @isatty(i32 noundef %1014) #11
  %.not418 = icmp eq i32 %1015, 0
  br i1 %.not418, label %1016, label %1017

1016:                                             ; preds = %1012, %1006
  br label %1017

1017:                                             ; preds = %1012, %1016
  %.str.5.sink797 = phi ptr [ @.str.5, %1016 ], [ @.str.2, %1012 ]
  store i32 %1007, ptr %409, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = load i32, ptr @test_count, align 4, !tbaa !5
  %1020 = load i32, ptr %355, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror(i32 noundef %1020, ptr noundef nonnull @.str.4) #11
  %1022 = load i32, ptr %355, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror_debug(i32 noundef %1022, ptr noundef nonnull @.str.4) #11
  %1024 = load i32, ptr %409, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #11
  %1026 = load i32, ptr %409, align 4, !tbaa !5
  %1027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1018, ptr noundef nonnull %.str.5.sink797, i32 noundef %1019, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1021, ptr noundef %1023, ptr noundef %1025, i32 noundef %1026) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1028:                                             ; preds = %998
  %1029 = load i32, ptr @test_count, align 4, !tbaa !5
  %1030 = add nsw i32 %1029, 1
  store i32 %1030, ptr @test_count, align 4, !tbaa !5
  %1031 = load ptr, ptr %8, align 8, !tbaa !9
  %1032 = load i32, ptr %1031, align 8
  %1033 = and i32 %1032, 8
  %.not329 = icmp eq i32 %1033, 0
  br i1 %.not329, label %1034, label %1056

1034:                                             ; preds = %1028
  %1035 = load i32, ptr %409, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = call i32 @s2n_print_stacktrace(ptr noundef %1036) #11
  %1038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1039 = trunc nuw i8 %1038 to i1
  br i1 %1039, label %1040, label %1044

1040:                                             ; preds = %1034
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = call i32 @fileno(ptr noundef %1041) #11
  %1043 = call i32 @isatty(i32 noundef %1042) #11
  %.not330 = icmp eq i32 %1043, 0
  br i1 %.not330, label %1044, label %1045

1044:                                             ; preds = %1040, %1034
  br label %1045

1045:                                             ; preds = %1040, %1044
  %.str.5.sink806 = phi ptr [ @.str.5, %1044 ], [ @.str.2, %1040 ]
  store i32 %1035, ptr %409, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = load i32, ptr @test_count, align 4, !tbaa !5
  %1048 = load i32, ptr %355, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror(i32 noundef %1048, ptr noundef nonnull @.str.4) #11
  %1050 = load i32, ptr %355, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror_debug(i32 noundef %1050, ptr noundef nonnull @.str.4) #11
  %1052 = load i32, ptr %409, align 4, !tbaa !5
  %1053 = call ptr @strerror(i32 noundef %1052) #11
  %1054 = load i32, ptr %409, align 4, !tbaa !5
  %1055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1046, ptr noundef nonnull %.str.5.sink806, i32 noundef %1047, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %1049, ptr noundef %1051, ptr noundef %1053, i32 noundef %1054) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1056:                                             ; preds = %1028
  %1057 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #11
  %1058 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  %1059 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1059, ptr %10, align 8, !tbaa !9
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = add nsw i32 %1060, 1
  store i32 %1061, ptr @test_count, align 4, !tbaa !5
  %1062 = icmp eq ptr %1059, null
  br i1 %1062, label %1063, label %1085

1063:                                             ; preds = %1056
  %1064 = load i32, ptr %409, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = call i32 @s2n_print_stacktrace(ptr noundef %1065) #11
  %1067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1068 = trunc nuw i8 %1067 to i1
  br i1 %1068, label %1069, label %1073

1069:                                             ; preds = %1063
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = call i32 @fileno(ptr noundef %1070) #11
  %1072 = call i32 @isatty(i32 noundef %1071) #11
  %.not417 = icmp eq i32 %1072, 0
  br i1 %.not417, label %1073, label %1074

1073:                                             ; preds = %1069, %1063
  br label %1074

1074:                                             ; preds = %1069, %1073
  %.str.5.sink815 = phi ptr [ @.str.5, %1073 ], [ @.str.2, %1069 ]
  store i32 %1064, ptr %409, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = load i32, ptr %355, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror(i32 noundef %1077, ptr noundef nonnull @.str.4) #11
  %1079 = load i32, ptr %355, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef nonnull @.str.4) #11
  %1081 = load i32, ptr %409, align 4, !tbaa !5
  %1082 = call ptr @strerror(i32 noundef %1081) #11
  %1083 = load i32, ptr %409, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef nonnull %.str.5.sink815, i32 noundef %1076, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1078, ptr noundef %1080, ptr noundef %1082, i32 noundef %1083) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1085:                                             ; preds = %1056
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  %1086 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1086, ptr %11, align 8, !tbaa !9
  %1087 = load i32, ptr @test_count, align 4, !tbaa !5
  %1088 = add nsw i32 %1087, 1
  store i32 %1088, ptr @test_count, align 4, !tbaa !5
  %1089 = icmp eq ptr %1086, null
  br i1 %1089, label %1090, label %1112

1090:                                             ; preds = %1085
  %1091 = load i32, ptr %409, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @s2n_print_stacktrace(ptr noundef %1092) #11
  %1094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1095 = trunc nuw i8 %1094 to i1
  br i1 %1095, label %1096, label %1100

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

1100:                                             ; preds = %1096, %1090
  br label %1101

1101:                                             ; preds = %1096, %1100
  %.str.5.sink824 = phi ptr [ @.str.5, %1100 ], [ @.str.2, %1096 ]
  store i32 %1091, ptr %409, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = load i32, ptr %355, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef nonnull @.str.4) #11
  %1106 = load i32, ptr %355, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror_debug(i32 noundef %1106, ptr noundef nonnull @.str.4) #11
  %1108 = load i32, ptr %409, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #11
  %1110 = load i32, ptr %409, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef nonnull %.str.5.sink824, i32 noundef %1103, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1105, ptr noundef %1107, ptr noundef %1109, i32 noundef %1110) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1112:                                             ; preds = %1085
  %1113 = add nsw i32 %1087, 2
  store i32 %1113, ptr @test_count, align 4, !tbaa !5
  %1114 = load ptr, ptr %10, align 8, !tbaa !9
  %1115 = call i32 @s2n_client_hello_send(ptr noundef %1114) #11
  %1116 = icmp eq i32 %1115, -1
  br i1 %1116, label %1117, label %1139

1117:                                             ; preds = %1112
  %1118 = load i32, ptr %409, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = call i32 @s2n_print_stacktrace(ptr noundef %1119) #11
  %1121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1122 = trunc nuw i8 %1121 to i1
  br i1 %1122, label %1123, label %1127

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

1127:                                             ; preds = %1123, %1117
  br label %1128

1128:                                             ; preds = %1123, %1127
  %.str.5.sink833 = phi ptr [ @.str.5, %1127 ], [ @.str.2, %1123 ]
  store i32 %1118, ptr %409, align 4, !tbaa !5
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = load i32, ptr @test_count, align 4, !tbaa !5
  %1131 = load i32, ptr %355, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror(i32 noundef %1131, ptr noundef nonnull @.str.4) #11
  %1133 = load i32, ptr %355, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror_debug(i32 noundef %1133, ptr noundef nonnull @.str.4) #11
  %1135 = load i32, ptr %409, align 4, !tbaa !5
  %1136 = call ptr @strerror(i32 noundef %1135) #11
  %1137 = load i32, ptr %409, align 4, !tbaa !5
  %1138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1129, ptr noundef nonnull %.str.5.sink833, i32 noundef %1130, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1132, ptr noundef %1134, ptr noundef %1136, i32 noundef %1137) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1139:                                             ; preds = %1112
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = add nsw i32 %1140, 1
  store i32 %1141, ptr @test_count, align 4, !tbaa !5
  %1142 = load ptr, ptr %10, align 8, !tbaa !9
  %1143 = getelementptr inbounds i8, ptr %1142, i64 2016
  %1144 = load ptr, ptr %11, align 8, !tbaa !9
  %1145 = getelementptr inbounds i8, ptr %1144, i64 2016
  %1146 = getelementptr inbounds i8, ptr %1142, i64 2044
  %1147 = load i32, ptr %1146, align 4, !tbaa !45
  %1148 = getelementptr inbounds i8, ptr %1142, i64 2040
  %1149 = load i32, ptr %1148, align 8, !tbaa !46
  %1150 = sub i32 %1147, %1149
  %1151 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1143, ptr noundef nonnull %1145, i32 noundef %1150) #11
  %1152 = icmp eq i32 %1151, -1
  br i1 %1152, label %1153, label %1175

1153:                                             ; preds = %1139
  %1154 = load i32, ptr %409, align 4, !tbaa !5
  %1155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1156 = call i32 @s2n_print_stacktrace(ptr noundef %1155) #11
  %1157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1158 = trunc nuw i8 %1157 to i1
  br i1 %1158, label %1159, label %1163

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

1163:                                             ; preds = %1159, %1153
  br label %1164

1164:                                             ; preds = %1159, %1163
  %.str.5.sink842 = phi ptr [ @.str.5, %1163 ], [ @.str.2, %1159 ]
  store i32 %1154, ptr %409, align 4, !tbaa !5
  %1165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1166 = load i32, ptr @test_count, align 4, !tbaa !5
  %1167 = load i32, ptr %355, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror(i32 noundef %1167, ptr noundef nonnull @.str.4) #11
  %1169 = load i32, ptr %355, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror_debug(i32 noundef %1169, ptr noundef nonnull @.str.4) #11
  %1171 = load i32, ptr %409, align 4, !tbaa !5
  %1172 = call ptr @strerror(i32 noundef %1171) #11
  %1173 = load i32, ptr %409, align 4, !tbaa !5
  %1174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1165, ptr noundef nonnull %.str.5.sink842, i32 noundef %1166, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1168, ptr noundef %1170, ptr noundef %1172, i32 noundef %1173) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1175:                                             ; preds = %1139
  %1176 = load i32, ptr @test_count, align 4, !tbaa !5
  %1177 = add nsw i32 %1176, 1
  store i32 %1177, ptr @test_count, align 4, !tbaa !5
  %1178 = load ptr, ptr %11, align 8, !tbaa !9
  %1179 = call i32 @s2n_parse_client_hello(ptr noundef %1178) #11
  %1180 = icmp eq i32 %1179, -1
  br i1 %1180, label %1187, label %.preheader450

.preheader450:                                    ; preds = %1175
  %1181 = load ptr, ptr %11, align 8, !tbaa !9
  %1182 = getelementptr inbounds i8, ptr %1181, i64 3632
  %1183 = load i32, ptr %1182, align 8, !tbaa !47
  %1184 = zext i32 %1183 to i64
  %.not459 = icmp eq i32 %1183, 0
  br i1 %.not459, label %.critedge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader450
  %1185 = getelementptr inbounds i8, ptr %1181, i64 3624
  %1186 = load ptr, ptr %1185, align 8, !tbaa !48
  br label %1211

1187:                                             ; preds = %1175
  %1188 = load i32, ptr %409, align 4, !tbaa !5
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @s2n_print_stacktrace(ptr noundef %1189) #11
  %1191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1192 = trunc nuw i8 %1191 to i1
  br i1 %1192, label %1193, label %1197

1193:                                             ; preds = %1187
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = call i32 @fileno(ptr noundef %1194) #11
  %1196 = call i32 @isatty(i32 noundef %1195) #11
  %.not413 = icmp eq i32 %1196, 0
  br i1 %.not413, label %1197, label %1198

1197:                                             ; preds = %1193, %1187
  br label %1198

1198:                                             ; preds = %1193, %1197
  %.str.5.sink851 = phi ptr [ @.str.5, %1197 ], [ @.str.2, %1193 ]
  store i32 %1188, ptr %409, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = load i32, ptr @test_count, align 4, !tbaa !5
  %1201 = load i32, ptr %355, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror(i32 noundef %1201, ptr noundef nonnull @.str.4) #11
  %1203 = load i32, ptr %355, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror_debug(i32 noundef %1203, ptr noundef nonnull @.str.4) #11
  %1205 = load i32, ptr %409, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #11
  %1207 = load i32, ptr %409, align 4, !tbaa !5
  %1208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1199, ptr noundef nonnull %.str.5.sink851, i32 noundef %1200, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1202, ptr noundef %1204, ptr noundef %1206, i32 noundef %1207) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge:                                      ; preds = %1211
  %1209 = load i32, ptr @test_count, align 4, !tbaa !5
  %1210 = add nsw i32 %1209, 1
  store i32 %1210, ptr @test_count, align 4, !tbaa !5
  br i1 %spec.select, label %1240, label %1218

1211:                                             ; preds = %.lr.ph, %1211
  %.0452 = phi i1 [ false, %.lr.ph ], [ %spec.select, %1211 ]
  %.0306451 = phi i64 [ 0, %.lr.ph ], [ %1214, %1211 ]
  %1212 = getelementptr inbounds i8, ptr %1186, i64 %.0306451
  %bcmp412 = call i32 @bcmp(ptr noundef nonnull dereferenceable(2) %1212, ptr noundef nonnull dereferenceable(2) @__const.main.renegotiation_info_scsv_iana, i64 2)
  %1213 = icmp eq i32 %bcmp412, 0
  %spec.select = select i1 %1213, i1 true, i1 %.0452
  %1214 = add nuw nsw i64 %.0306451, 2
  %1215 = icmp ult i64 %1214, %1184
  br i1 %1215, label %1211, label %._crit_edge, !llvm.loop !49

.critedge:                                        ; preds = %.preheader450
  %1216 = load i32, ptr @test_count, align 4, !tbaa !5
  %1217 = add nsw i32 %1216, 1
  store i32 %1217, ptr @test_count, align 4, !tbaa !5
  br label %1218

1218:                                             ; preds = %.critedge, %._crit_edge
  %1219 = load i32, ptr %409, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = call i32 @s2n_print_stacktrace(ptr noundef %1220) #11
  %1222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1223 = trunc nuw i8 %1222 to i1
  br i1 %1223, label %1224, label %1228

1224:                                             ; preds = %1218
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @fileno(ptr noundef %1225) #11
  %1227 = call i32 @isatty(i32 noundef %1226) #11
  %.not331 = icmp eq i32 %1227, 0
  br i1 %.not331, label %1228, label %1229

1228:                                             ; preds = %1224, %1218
  br label %1229

1229:                                             ; preds = %1224, %1228
  %.str.5.sink860 = phi ptr [ @.str.5, %1228 ], [ @.str.2, %1224 ]
  store i32 %1219, ptr %409, align 4, !tbaa !5
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = load i32, ptr %355, align 4, !tbaa !5
  %1233 = call ptr @s2n_strerror(i32 noundef %1232, ptr noundef nonnull @.str.4) #11
  %1234 = load i32, ptr %355, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror_debug(i32 noundef %1234, ptr noundef nonnull @.str.4) #11
  %1236 = load i32, ptr %409, align 4, !tbaa !5
  %1237 = call ptr @strerror(i32 noundef %1236) #11
  %1238 = load i32, ptr %409, align 4, !tbaa !5
  %1239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1230, ptr noundef nonnull %.str.5.sink860, i32 noundef %1231, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1233, ptr noundef %1235, ptr noundef %1237, i32 noundef %1238) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1240:                                             ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #11
  store i8 0, ptr %12, align 1, !tbaa !51
  %1241 = add nsw i32 %1209, 2
  store i32 %1241, ptr @test_count, align 4, !tbaa !5
  %1242 = load i16, ptr @s2n_client_renegotiation_info_extension, align 8, !tbaa !52
  %1243 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %1242, ptr noundef nonnull %12) #11
  %1244 = icmp eq i32 %1243, -1
  br i1 %1244, label %1245, label %1267

1245:                                             ; preds = %1240
  %1246 = load i32, ptr %409, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @s2n_print_stacktrace(ptr noundef %1247) #11
  %1249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1250 = trunc nuw i8 %1249 to i1
  br i1 %1250, label %1251, label %1255

1251:                                             ; preds = %1245
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @fileno(ptr noundef %1252) #11
  %1254 = call i32 @isatty(i32 noundef %1253) #11
  %.not411 = icmp eq i32 %1254, 0
  br i1 %.not411, label %1255, label %1256

1255:                                             ; preds = %1251, %1245
  br label %1256

1256:                                             ; preds = %1251, %1255
  %.str.5.sink869 = phi ptr [ @.str.5, %1255 ], [ @.str.2, %1251 ]
  store i32 %1246, ptr %409, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = load i32, ptr %355, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror(i32 noundef %1259, ptr noundef nonnull @.str.4) #11
  %1261 = load i32, ptr %355, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror_debug(i32 noundef %1261, ptr noundef nonnull @.str.4) #11
  %1263 = load i32, ptr %409, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #11
  %1265 = load i32, ptr %409, align 4, !tbaa !5
  %1266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1257, ptr noundef nonnull %.str.5.sink869, i32 noundef %1258, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1260, ptr noundef %1262, ptr noundef %1264, i32 noundef %1265) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1267:                                             ; preds = %1240
  %1268 = load ptr, ptr %11, align 8, !tbaa !9
  %1269 = getelementptr inbounds i8, ptr %1268, i64 2920
  %1270 = load i8, ptr %12, align 1, !tbaa !51
  %1271 = zext i8 %1270 to i64
  %1272 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %1269, i64 0, i64 %1271
  %1273 = load i32, ptr @test_count, align 4, !tbaa !5
  %1274 = add nsw i32 %1273, 1
  store i32 %1274, ptr @test_count, align 4, !tbaa !5
  %1275 = getelementptr inbounds i8, ptr %1272, i64 8
  %1276 = load i32, ptr %1275, align 8, !tbaa !53
  %1277 = icmp eq i32 %1276, 0
  br i1 %1277, label %1300, label %1278

1278:                                             ; preds = %1267
  %1279 = load i32, ptr %409, align 4, !tbaa !5
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = call i32 @s2n_print_stacktrace(ptr noundef %1280) #11
  %1282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1283 = trunc nuw i8 %1282 to i1
  br i1 %1283, label %1284, label %1288

1284:                                             ; preds = %1278
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = call i32 @fileno(ptr noundef %1285) #11
  %1287 = call i32 @isatty(i32 noundef %1286) #11
  %.not332 = icmp eq i32 %1287, 0
  br i1 %.not332, label %1288, label %1289

1288:                                             ; preds = %1284, %1278
  br label %1289

1289:                                             ; preds = %1284, %1288
  %.str.5.sink878 = phi ptr [ @.str.5, %1288 ], [ @.str.2, %1284 ]
  store i32 %1279, ptr %409, align 4, !tbaa !5
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = load i32, ptr %355, align 4, !tbaa !5
  %1293 = call ptr @s2n_strerror(i32 noundef %1292, ptr noundef nonnull @.str.4) #11
  %1294 = load i32, ptr %355, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror_debug(i32 noundef %1294, ptr noundef nonnull @.str.4) #11
  %1296 = load i32, ptr %409, align 4, !tbaa !5
  %1297 = call ptr @strerror(i32 noundef %1296) #11
  %1298 = load i32, ptr %409, align 4, !tbaa !5
  %1299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef nonnull %.str.5.sink878, i32 noundef %1291, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1293, ptr noundef %1295, ptr noundef %1297, i32 noundef %1298) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1300:                                             ; preds = %1267
  %1301 = add nsw i32 %1273, 2
  store i32 %1301, ptr @test_count, align 4, !tbaa !5
  %1302 = getelementptr inbounds i8, ptr %1272, i64 24
  %1303 = load i16, ptr %1302, align 8, !tbaa !55
  %1304 = icmp eq i16 %1303, 0
  br i1 %1304, label %1327, label %1305

1305:                                             ; preds = %1300
  %1306 = load i32, ptr %409, align 4, !tbaa !5
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = call i32 @s2n_print_stacktrace(ptr noundef %1307) #11
  %1309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1310 = trunc nuw i8 %1309 to i1
  br i1 %1310, label %1311, label %1315

1311:                                             ; preds = %1305
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 @fileno(ptr noundef %1312) #11
  %1314 = call i32 @isatty(i32 noundef %1313) #11
  %.not333 = icmp eq i32 %1314, 0
  br i1 %.not333, label %1315, label %1316

1315:                                             ; preds = %1311, %1305
  br label %1316

1316:                                             ; preds = %1311, %1315
  %.str.5.sink887 = phi ptr [ @.str.5, %1315 ], [ @.str.2, %1311 ]
  store i32 %1306, ptr %409, align 4, !tbaa !5
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = load i32, ptr @test_count, align 4, !tbaa !5
  %1319 = load i32, ptr %355, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror(i32 noundef %1319, ptr noundef nonnull @.str.4) #11
  %1321 = load i32, ptr %355, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror_debug(i32 noundef %1321, ptr noundef nonnull @.str.4) #11
  %1323 = load i32, ptr %409, align 4, !tbaa !5
  %1324 = call ptr @strerror(i32 noundef %1323) #11
  %1325 = load i32, ptr %409, align 4, !tbaa !5
  %1326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1317, ptr noundef nonnull %.str.5.sink887, i32 noundef %1318, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1320, ptr noundef %1322, ptr noundef %1324, i32 noundef %1325) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1327:                                             ; preds = %1300
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  %1328 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  %1329 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  %1330 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1330, ptr %13, align 8, !tbaa !9
  %1331 = load i32, ptr @test_count, align 4, !tbaa !5
  %1332 = add nsw i32 %1331, 1
  store i32 %1332, ptr @test_count, align 4, !tbaa !5
  %1333 = icmp eq ptr %1330, null
  br i1 %1333, label %1334, label %1356

1334:                                             ; preds = %1327
  %1335 = load i32, ptr %409, align 4, !tbaa !5
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = call i32 @s2n_print_stacktrace(ptr noundef %1336) #11
  %1338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1339 = trunc nuw i8 %1338 to i1
  br i1 %1339, label %1340, label %1344

1340:                                             ; preds = %1334
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = call i32 @fileno(ptr noundef %1341) #11
  %1343 = call i32 @isatty(i32 noundef %1342) #11
  %.not410 = icmp eq i32 %1343, 0
  br i1 %.not410, label %1344, label %1345

1344:                                             ; preds = %1340, %1334
  br label %1345

1345:                                             ; preds = %1340, %1344
  %.str.5.sink896 = phi ptr [ @.str.5, %1344 ], [ @.str.2, %1340 ]
  store i32 %1335, ptr %409, align 4, !tbaa !5
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = load i32, ptr @test_count, align 4, !tbaa !5
  %1348 = load i32, ptr %355, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror(i32 noundef %1348, ptr noundef nonnull @.str.4) #11
  %1350 = load i32, ptr %355, align 4, !tbaa !5
  %1351 = call ptr @s2n_strerror_debug(i32 noundef %1350, ptr noundef nonnull @.str.4) #11
  %1352 = load i32, ptr %409, align 4, !tbaa !5
  %1353 = call ptr @strerror(i32 noundef %1352) #11
  %1354 = load i32, ptr %409, align 4, !tbaa !5
  %1355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1346, ptr noundef nonnull %.str.5.sink896, i32 noundef %1347, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1349, ptr noundef %1351, ptr noundef %1353, i32 noundef %1354) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1356:                                             ; preds = %1327
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %1357 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1357, ptr %14, align 8, !tbaa !9
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = add nsw i32 %1358, 1
  store i32 %1359, ptr @test_count, align 4, !tbaa !5
  %1360 = icmp eq ptr %1357, null
  br i1 %1360, label %1361, label %1383

1361:                                             ; preds = %1356
  %1362 = load i32, ptr %409, align 4, !tbaa !5
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = call i32 @s2n_print_stacktrace(ptr noundef %1363) #11
  %1365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1366 = trunc nuw i8 %1365 to i1
  br i1 %1366, label %1367, label %1371

1367:                                             ; preds = %1361
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = call i32 @fileno(ptr noundef %1368) #11
  %1370 = call i32 @isatty(i32 noundef %1369) #11
  %.not409 = icmp eq i32 %1370, 0
  br i1 %.not409, label %1371, label %1372

1371:                                             ; preds = %1367, %1361
  br label %1372

1372:                                             ; preds = %1367, %1371
  %.str.5.sink905 = phi ptr [ @.str.5, %1371 ], [ @.str.2, %1367 ]
  store i32 %1362, ptr %409, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = load i32, ptr @test_count, align 4, !tbaa !5
  %1375 = load i32, ptr %355, align 4, !tbaa !5
  %1376 = call ptr @s2n_strerror(i32 noundef %1375, ptr noundef nonnull @.str.4) #11
  %1377 = load i32, ptr %355, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror_debug(i32 noundef %1377, ptr noundef nonnull @.str.4) #11
  %1379 = load i32, ptr %409, align 4, !tbaa !5
  %1380 = call ptr @strerror(i32 noundef %1379) #11
  %1381 = load i32, ptr %409, align 4, !tbaa !5
  %1382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1373, ptr noundef nonnull %.str.5.sink905, i32 noundef %1374, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1376, ptr noundef %1378, ptr noundef %1380, i32 noundef %1381) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1383:                                             ; preds = %1356
  %1384 = add nsw i32 %1358, 2
  store i32 %1384, ptr @test_count, align 4, !tbaa !5
  %1385 = load ptr, ptr %13, align 8, !tbaa !9
  %1386 = call i32 @s2n_client_hello_send(ptr noundef %1385) #11
  %1387 = icmp eq i32 %1386, -1
  br i1 %1387, label %1388, label %1410

1388:                                             ; preds = %1383
  %1389 = load i32, ptr %409, align 4, !tbaa !5
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = call i32 @s2n_print_stacktrace(ptr noundef %1390) #11
  %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) #11
  %1397 = call i32 @isatty(i32 noundef %1396) #11
  %.not408 = icmp eq i32 %1397, 0
  br i1 %.not408, label %1398, label %1399

1398:                                             ; preds = %1394, %1388
  br label %1399

1399:                                             ; preds = %1394, %1398
  %.str.5.sink914 = phi ptr [ @.str.5, %1398 ], [ @.str.2, %1394 ]
  store i32 %1389, ptr %409, 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 %355, align 4, !tbaa !5
  %1403 = call ptr @s2n_strerror(i32 noundef %1402, ptr noundef nonnull @.str.4) #11
  %1404 = load i32, ptr %355, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror_debug(i32 noundef %1404, ptr noundef nonnull @.str.4) #11
  %1406 = load i32, ptr %409, align 4, !tbaa !5
  %1407 = call ptr @strerror(i32 noundef %1406) #11
  %1408 = load i32, ptr %409, align 4, !tbaa !5
  %1409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1400, ptr noundef nonnull %.str.5.sink914, i32 noundef %1401, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1403, ptr noundef %1405, ptr noundef %1407, i32 noundef %1408) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1410:                                             ; preds = %1383
  %1411 = load i32, ptr @test_count, align 4, !tbaa !5
  %1412 = add nsw i32 %1411, 1
  store i32 %1412, ptr @test_count, align 4, !tbaa !5
  %1413 = load ptr, ptr %13, align 8, !tbaa !9
  %1414 = getelementptr inbounds i8, ptr %1413, i64 2016
  %1415 = load ptr, ptr %14, align 8, !tbaa !9
  %1416 = getelementptr inbounds i8, ptr %1415, i64 2016
  %1417 = getelementptr inbounds i8, ptr %1413, i64 2044
  %1418 = load i32, ptr %1417, align 4, !tbaa !45
  %1419 = getelementptr inbounds i8, ptr %1413, i64 2040
  %1420 = load i32, ptr %1419, align 8, !tbaa !46
  %1421 = sub i32 %1418, %1420
  %1422 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1414, ptr noundef nonnull %1416, i32 noundef %1421) #11
  %1423 = icmp eq i32 %1422, -1
  br i1 %1423, label %1424, label %1446

1424:                                             ; preds = %1410
  %1425 = load i32, ptr %409, align 4, !tbaa !5
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = call i32 @s2n_print_stacktrace(ptr noundef %1426) #11
  %1428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1429 = trunc nuw i8 %1428 to i1
  br i1 %1429, label %1430, label %1434

1430:                                             ; preds = %1424
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @fileno(ptr noundef %1431) #11
  %1433 = call i32 @isatty(i32 noundef %1432) #11
  %.not407 = icmp eq i32 %1433, 0
  br i1 %.not407, label %1434, label %1435

1434:                                             ; preds = %1430, %1424
  br label %1435

1435:                                             ; preds = %1430, %1434
  %.str.5.sink923 = phi ptr [ @.str.5, %1434 ], [ @.str.2, %1430 ]
  store i32 %1425, ptr %409, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = load i32, ptr %355, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror(i32 noundef %1438, ptr noundef nonnull @.str.4) #11
  %1440 = load i32, ptr %355, align 4, !tbaa !5
  %1441 = call ptr @s2n_strerror_debug(i32 noundef %1440, ptr noundef nonnull @.str.4) #11
  %1442 = load i32, ptr %409, align 4, !tbaa !5
  %1443 = call ptr @strerror(i32 noundef %1442) #11
  %1444 = load i32, ptr %409, align 4, !tbaa !5
  %1445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1436, ptr noundef nonnull %.str.5.sink923, i32 noundef %1437, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1439, ptr noundef %1441, ptr noundef %1443, i32 noundef %1444) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1446:                                             ; preds = %1410
  %1447 = load i32, ptr @test_count, align 4, !tbaa !5
  %1448 = add nsw i32 %1447, 1
  store i32 %1448, ptr @test_count, align 4, !tbaa !5
  %1449 = load ptr, ptr %14, align 8, !tbaa !9
  %1450 = call i32 @s2n_parse_client_hello(ptr noundef %1449) #11
  %1451 = icmp eq i32 %1450, -1
  br i1 %1451, label %1452, label %1474

1452:                                             ; preds = %1446
  %1453 = load i32, ptr %409, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = call i32 @s2n_print_stacktrace(ptr noundef %1454) #11
  %1456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1457 = trunc nuw i8 %1456 to i1
  br i1 %1457, label %1458, label %1462

1458:                                             ; preds = %1452
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = call i32 @fileno(ptr noundef %1459) #11
  %1461 = call i32 @isatty(i32 noundef %1460) #11
  %.not406 = icmp eq i32 %1461, 0
  br i1 %.not406, label %1462, label %1463

1462:                                             ; preds = %1458, %1452
  br label %1463

1463:                                             ; preds = %1458, %1462
  %.str.5.sink932 = phi ptr [ @.str.5, %1462 ], [ @.str.2, %1458 ]
  store i32 %1453, ptr %409, align 4, !tbaa !5
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1465 = load i32, ptr @test_count, align 4, !tbaa !5
  %1466 = load i32, ptr %355, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror(i32 noundef %1466, ptr noundef nonnull @.str.4) #11
  %1468 = load i32, ptr %355, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror_debug(i32 noundef %1468, ptr noundef nonnull @.str.4) #11
  %1470 = load i32, ptr %409, align 4, !tbaa !5
  %1471 = call ptr @strerror(i32 noundef %1470) #11
  %1472 = load i32, ptr %409, align 4, !tbaa !5
  %1473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1464, ptr noundef nonnull %.str.5.sink932, i32 noundef %1465, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1467, ptr noundef %1469, ptr noundef %1471, i32 noundef %1472) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1474:                                             ; preds = %1446
  %1475 = load i32, ptr @test_count, align 4, !tbaa !5
  %1476 = add nsw i32 %1475, 1
  store i32 %1476, ptr @test_count, align 4, !tbaa !5
  %1477 = load ptr, ptr %14, align 8, !tbaa !9
  %1478 = getelementptr inbounds i8, ptr %1477, i64 2920
  %1479 = call i32 @s2n_extension_list_process(i32 noundef 0, ptr noundef %1477, ptr noundef nonnull %1478) #11
  %1480 = icmp eq i32 %1479, -1
  br i1 %1480, label %1481, label %1503

1481:                                             ; preds = %1474
  %1482 = load i32, ptr %409, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = call i32 @s2n_print_stacktrace(ptr noundef %1483) #11
  %1485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1486 = trunc nuw i8 %1485 to i1
  br i1 %1486, label %1487, label %1491

1487:                                             ; preds = %1481
  %1488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1489 = call i32 @fileno(ptr noundef %1488) #11
  %1490 = call i32 @isatty(i32 noundef %1489) #11
  %.not405 = icmp eq i32 %1490, 0
  br i1 %.not405, label %1491, label %1492

1491:                                             ; preds = %1487, %1481
  br label %1492

1492:                                             ; preds = %1487, %1491
  %.str.5.sink941 = phi ptr [ @.str.5, %1491 ], [ @.str.2, %1487 ]
  store i32 %1482, ptr %409, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = load i32, ptr @test_count, align 4, !tbaa !5
  %1495 = load i32, ptr %355, align 4, !tbaa !5
  %1496 = call ptr @s2n_strerror(i32 noundef %1495, ptr noundef nonnull @.str.4) #11
  %1497 = load i32, ptr %355, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror_debug(i32 noundef %1497, ptr noundef nonnull @.str.4) #11
  %1499 = load i32, ptr %409, align 4, !tbaa !5
  %1500 = call ptr @strerror(i32 noundef %1499) #11
  %1501 = load i32, ptr %409, align 4, !tbaa !5
  %1502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1493, ptr noundef nonnull %.str.5.sink941, i32 noundef %1494, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %1496, ptr noundef %1498, ptr noundef %1500, i32 noundef %1501) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1503:                                             ; preds = %1474
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = add nsw i32 %1504, 1
  store i32 %1505, ptr @test_count, align 4, !tbaa !5
  %1506 = load ptr, ptr %14, align 8, !tbaa !9
  %1507 = load i32, ptr %1506, align 8
  %1508 = and i32 %1507, 8
  %.not334 = icmp eq i32 %1508, 0
  br i1 %.not334, label %1531, label %1509

1509:                                             ; preds = %1503
  %1510 = load i32, ptr %409, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @s2n_print_stacktrace(ptr noundef %1511) #11
  %1513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1514 = trunc nuw i8 %1513 to i1
  br i1 %1514, label %1515, label %1519

1515:                                             ; preds = %1509
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = call i32 @fileno(ptr noundef %1516) #11
  %1518 = call i32 @isatty(i32 noundef %1517) #11
  %.not404 = icmp eq i32 %1518, 0
  br i1 %.not404, label %1519, label %1520

1519:                                             ; preds = %1515, %1509
  br label %1520

1520:                                             ; preds = %1515, %1519
  %.str.5.sink950 = phi ptr [ @.str.5, %1519 ], [ @.str.2, %1515 ]
  store i32 %1510, ptr %409, align 4, !tbaa !5
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = load i32, ptr @test_count, align 4, !tbaa !5
  %1523 = load i32, ptr %355, align 4, !tbaa !5
  %1524 = call ptr @s2n_strerror(i32 noundef %1523, ptr noundef nonnull @.str.4) #11
  %1525 = load i32, ptr %355, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror_debug(i32 noundef %1525, ptr noundef nonnull @.str.4) #11
  %1527 = load i32, ptr %409, align 4, !tbaa !5
  %1528 = call ptr @strerror(i32 noundef %1527) #11
  %1529 = load i32, ptr %409, align 4, !tbaa !5
  %1530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1521, ptr noundef nonnull %.str.5.sink950, i32 noundef %1522, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1524, ptr noundef %1526, ptr noundef %1528, i32 noundef %1529) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1531:                                             ; preds = %1503
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %15) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %15, ptr noundef nonnull align 1 dereferenceable(5) @__const.main.extension, i64 5, i1 false)
  %1532 = getelementptr inbounds i8, ptr %1506, i64 2904
  %1533 = load i32, ptr %1532, align 8, !tbaa !56
  %1534 = getelementptr inbounds i8, ptr %1506, i64 3600
  %1535 = load i32, ptr %1534, align 8, !tbaa !57
  %1536 = trunc i32 %1535 to i16
  %1537 = add i16 %1536, 5
  %1538 = add nsw i32 %1504, 2
  store i32 %1538, ptr @test_count, align 4, !tbaa !5
  %1539 = load ptr, ptr %13, align 8, !tbaa !9
  %1540 = getelementptr inbounds i8, ptr %1539, i64 2016
  %1541 = call i32 @s2n_stuffer_rewrite(ptr noundef nonnull %1540) #11
  %1542 = icmp eq i32 %1541, -1
  br i1 %1542, label %1543, label %1565

1543:                                             ; preds = %1531
  %1544 = load i32, ptr %409, align 4, !tbaa !5
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = call i32 @s2n_print_stacktrace(ptr noundef %1545) #11
  %1547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1548 = trunc nuw i8 %1547 to i1
  br i1 %1548, label %1549, label %1553

1549:                                             ; preds = %1543
  %1550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1551 = call i32 @fileno(ptr noundef %1550) #11
  %1552 = call i32 @isatty(i32 noundef %1551) #11
  %.not403 = icmp eq i32 %1552, 0
  br i1 %.not403, label %1553, label %1554

1553:                                             ; preds = %1549, %1543
  br label %1554

1554:                                             ; preds = %1549, %1553
  %.str.5.sink959 = phi ptr [ @.str.5, %1553 ], [ @.str.2, %1549 ]
  store i32 %1544, ptr %409, align 4, !tbaa !5
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = load i32, ptr @test_count, align 4, !tbaa !5
  %1557 = load i32, ptr %355, align 4, !tbaa !5
  %1558 = call ptr @s2n_strerror(i32 noundef %1557, ptr noundef nonnull @.str.4) #11
  %1559 = load i32, ptr %355, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror_debug(i32 noundef %1559, ptr noundef nonnull @.str.4) #11
  %1561 = load i32, ptr %409, align 4, !tbaa !5
  %1562 = call ptr @strerror(i32 noundef %1561) #11
  %1563 = load i32, ptr %409, align 4, !tbaa !5
  %1564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1555, ptr noundef nonnull %.str.5.sink959, i32 noundef %1556, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1558, ptr noundef %1560, ptr noundef %1562, i32 noundef %1563) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1565:                                             ; preds = %1531
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = add nsw i32 %1566, 1
  store i32 %1567, ptr @test_count, align 4, !tbaa !5
  %1568 = load ptr, ptr %13, align 8, !tbaa !9
  %1569 = getelementptr inbounds i8, ptr %1568, i64 2016
  %1570 = add i32 %1533, -2
  %1571 = sub i32 %1570, %1535
  %1572 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %1569, i32 noundef %1571) #11
  %1573 = icmp eq i32 %1572, -1
  br i1 %1573, label %1574, label %1596

1574:                                             ; preds = %1565
  %1575 = load i32, ptr %409, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = call i32 @s2n_print_stacktrace(ptr noundef %1576) #11
  %1578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1579 = trunc nuw i8 %1578 to i1
  br i1 %1579, label %1580, label %1584

1580:                                             ; preds = %1574
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = call i32 @fileno(ptr noundef %1581) #11
  %1583 = call i32 @isatty(i32 noundef %1582) #11
  %.not402 = icmp eq i32 %1583, 0
  br i1 %.not402, label %1584, label %1585

1584:                                             ; preds = %1580, %1574
  br label %1585

1585:                                             ; preds = %1580, %1584
  %.str.5.sink968 = phi ptr [ @.str.5, %1584 ], [ @.str.2, %1580 ]
  store i32 %1575, ptr %409, align 4, !tbaa !5
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = load i32, ptr @test_count, align 4, !tbaa !5
  %1588 = load i32, ptr %355, align 4, !tbaa !5
  %1589 = call ptr @s2n_strerror(i32 noundef %1588, ptr noundef nonnull @.str.4) #11
  %1590 = load i32, ptr %355, align 4, !tbaa !5
  %1591 = call ptr @s2n_strerror_debug(i32 noundef %1590, ptr noundef nonnull @.str.4) #11
  %1592 = load i32, ptr %409, align 4, !tbaa !5
  %1593 = call ptr @strerror(i32 noundef %1592) #11
  %1594 = load i32, ptr %409, align 4, !tbaa !5
  %1595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1586, ptr noundef nonnull %.str.5.sink968, i32 noundef %1587, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1589, ptr noundef %1591, ptr noundef %1593, i32 noundef %1594) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1596:                                             ; preds = %1565
  %1597 = load i32, ptr @test_count, align 4, !tbaa !5
  %1598 = add nsw i32 %1597, 1
  store i32 %1598, ptr @test_count, align 4, !tbaa !5
  %1599 = load ptr, ptr %13, align 8, !tbaa !9
  %1600 = getelementptr inbounds i8, ptr %1599, i64 2016
  %1601 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %1600, i16 noundef zeroext %1537) #11
  %1602 = icmp eq i32 %1601, -1
  br i1 %1602, label %1603, label %1625

1603:                                             ; preds = %1596
  %1604 = load i32, ptr %409, align 4, !tbaa !5
  %1605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1606 = call i32 @s2n_print_stacktrace(ptr noundef %1605) #11
  %1607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1608 = trunc nuw i8 %1607 to i1
  br i1 %1608, label %1609, label %1613

1609:                                             ; preds = %1603
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = call i32 @fileno(ptr noundef %1610) #11
  %1612 = call i32 @isatty(i32 noundef %1611) #11
  %.not401 = icmp eq i32 %1612, 0
  br i1 %.not401, label %1613, label %1614

1613:                                             ; preds = %1609, %1603
  br label %1614

1614:                                             ; preds = %1609, %1613
  %.str.5.sink977 = phi ptr [ @.str.5, %1613 ], [ @.str.2, %1609 ]
  store i32 %1604, ptr %409, align 4, !tbaa !5
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = load i32, ptr @test_count, align 4, !tbaa !5
  %1617 = load i32, ptr %355, align 4, !tbaa !5
  %1618 = call ptr @s2n_strerror(i32 noundef %1617, ptr noundef nonnull @.str.4) #11
  %1619 = load i32, ptr %355, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror_debug(i32 noundef %1619, ptr noundef nonnull @.str.4) #11
  %1621 = load i32, ptr %409, align 4, !tbaa !5
  %1622 = call ptr @strerror(i32 noundef %1621) #11
  %1623 = load i32, ptr %409, align 4, !tbaa !5
  %1624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1615, ptr noundef nonnull %.str.5.sink977, i32 noundef %1616, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %1618, ptr noundef %1620, ptr noundef %1622, i32 noundef %1623) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1625:                                             ; preds = %1596
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = add nsw i32 %1626, 1
  store i32 %1627, ptr @test_count, align 4, !tbaa !5
  %1628 = load ptr, ptr %13, align 8, !tbaa !9
  %1629 = getelementptr inbounds i8, ptr %1628, i64 2016
  %1630 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %1629, i32 noundef %1535) #11
  %1631 = icmp eq i32 %1630, -1
  br i1 %1631, label %1632, label %1654

1632:                                             ; preds = %1625
  %1633 = load i32, ptr %409, align 4, !tbaa !5
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = call i32 @s2n_print_stacktrace(ptr noundef %1634) #11
  %1636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1637 = trunc nuw i8 %1636 to i1
  br i1 %1637, label %1638, label %1642

1638:                                             ; preds = %1632
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = call i32 @fileno(ptr noundef %1639) #11
  %1641 = call i32 @isatty(i32 noundef %1640) #11
  %.not400 = icmp eq i32 %1641, 0
  br i1 %.not400, label %1642, label %1643

1642:                                             ; preds = %1638, %1632
  br label %1643

1643:                                             ; preds = %1638, %1642
  %.str.5.sink986 = phi ptr [ @.str.5, %1642 ], [ @.str.2, %1638 ]
  store i32 %1633, ptr %409, align 4, !tbaa !5
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = load i32, ptr @test_count, align 4, !tbaa !5
  %1646 = load i32, ptr %355, align 4, !tbaa !5
  %1647 = call ptr @s2n_strerror(i32 noundef %1646, ptr noundef nonnull @.str.4) #11
  %1648 = load i32, ptr %355, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror_debug(i32 noundef %1648, ptr noundef nonnull @.str.4) #11
  %1650 = load i32, ptr %409, align 4, !tbaa !5
  %1651 = call ptr @strerror(i32 noundef %1650) #11
  %1652 = load i32, ptr %409, align 4, !tbaa !5
  %1653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1644, ptr noundef nonnull %.str.5.sink986, i32 noundef %1645, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1647, ptr noundef %1649, ptr noundef %1651, i32 noundef %1652) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1654:                                             ; preds = %1625
  %1655 = load i32, ptr @test_count, align 4, !tbaa !5
  %1656 = add nsw i32 %1655, 1
  store i32 %1656, ptr @test_count, align 4, !tbaa !5
  %1657 = load ptr, ptr %13, align 8, !tbaa !9
  %1658 = getelementptr inbounds i8, ptr %1657, i64 2016
  %1659 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %1658, ptr noundef nonnull %15, i32 noundef 5) #11
  %1660 = icmp eq i32 %1659, -1
  br i1 %1660, label %1661, label %1683

1661:                                             ; preds = %1654
  %1662 = load i32, ptr %409, align 4, !tbaa !5
  %1663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1664 = call i32 @s2n_print_stacktrace(ptr noundef %1663) #11
  %1665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1666 = trunc nuw i8 %1665 to i1
  br i1 %1666, label %1667, label %1671

1667:                                             ; preds = %1661
  %1668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1669 = call i32 @fileno(ptr noundef %1668) #11
  %1670 = call i32 @isatty(i32 noundef %1669) #11
  %.not399 = icmp eq i32 %1670, 0
  br i1 %.not399, label %1671, label %1672

1671:                                             ; preds = %1667, %1661
  br label %1672

1672:                                             ; preds = %1667, %1671
  %.str.5.sink995 = phi ptr [ @.str.5, %1671 ], [ @.str.2, %1667 ]
  store i32 %1662, ptr %409, align 4, !tbaa !5
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = load i32, ptr @test_count, align 4, !tbaa !5
  %1675 = load i32, ptr %355, align 4, !tbaa !5
  %1676 = call ptr @s2n_strerror(i32 noundef %1675, ptr noundef nonnull @.str.4) #11
  %1677 = load i32, ptr %355, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror_debug(i32 noundef %1677, ptr noundef nonnull @.str.4) #11
  %1679 = load i32, ptr %409, align 4, !tbaa !5
  %1680 = call ptr @strerror(i32 noundef %1679) #11
  %1681 = load i32, ptr %409, align 4, !tbaa !5
  %1682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1673, ptr noundef nonnull %.str.5.sink995, i32 noundef %1674, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1676, ptr noundef %1678, ptr noundef %1680, i32 noundef %1681) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1683:                                             ; preds = %1654
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = add nsw i32 %1684, 1
  store i32 %1685, ptr @test_count, align 4, !tbaa !5
  %1686 = load ptr, ptr %14, align 8, !tbaa !9
  %1687 = call i32 @s2n_connection_wipe(ptr noundef %1686) #11
  %1688 = icmp eq i32 %1687, -1
  br i1 %1688, label %1689, label %1711

1689:                                             ; preds = %1683
  %1690 = load i32, ptr %409, align 4, !tbaa !5
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = call i32 @s2n_print_stacktrace(ptr noundef %1691) #11
  %1693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1694 = trunc nuw i8 %1693 to i1
  br i1 %1694, label %1695, label %1699

1695:                                             ; preds = %1689
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @fileno(ptr noundef %1696) #11
  %1698 = call i32 @isatty(i32 noundef %1697) #11
  %.not398 = icmp eq i32 %1698, 0
  br i1 %.not398, label %1699, label %1700

1699:                                             ; preds = %1695, %1689
  br label %1700

1700:                                             ; preds = %1695, %1699
  %.str.5.sink1004 = phi ptr [ @.str.5, %1699 ], [ @.str.2, %1695 ]
  store i32 %1690, ptr %409, align 4, !tbaa !5
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = load i32, ptr %355, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror(i32 noundef %1703, ptr noundef nonnull @.str.4) #11
  %1705 = load i32, ptr %355, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror_debug(i32 noundef %1705, ptr noundef nonnull @.str.4) #11
  %1707 = load i32, ptr %409, align 4, !tbaa !5
  %1708 = call ptr @strerror(i32 noundef %1707) #11
  %1709 = load i32, ptr %409, align 4, !tbaa !5
  %1710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1701, ptr noundef nonnull %.str.5.sink1004, i32 noundef %1702, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %1704, ptr noundef %1706, ptr noundef %1708, i32 noundef %1709) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1711:                                             ; preds = %1683
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = add nsw i32 %1712, 1
  store i32 %1713, ptr @test_count, align 4, !tbaa !5
  %1714 = load ptr, ptr %13, align 8, !tbaa !9
  %1715 = getelementptr inbounds i8, ptr %1714, i64 2016
  %1716 = load ptr, ptr %14, align 8, !tbaa !9
  %1717 = getelementptr inbounds i8, ptr %1716, i64 2016
  %1718 = getelementptr inbounds i8, ptr %1714, i64 2044
  %1719 = load i32, ptr %1718, align 4, !tbaa !45
  %1720 = getelementptr inbounds i8, ptr %1714, i64 2040
  %1721 = load i32, ptr %1720, align 8, !tbaa !46
  %1722 = sub i32 %1719, %1721
  %1723 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1715, ptr noundef nonnull %1717, i32 noundef %1722) #11
  %1724 = icmp eq i32 %1723, -1
  br i1 %1724, label %1725, label %1747

1725:                                             ; preds = %1711
  %1726 = load i32, ptr %409, align 4, !tbaa !5
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = call i32 @s2n_print_stacktrace(ptr noundef %1727) #11
  %1729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1730 = trunc nuw i8 %1729 to i1
  br i1 %1730, label %1731, label %1735

1731:                                             ; preds = %1725
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = call i32 @fileno(ptr noundef %1732) #11
  %1734 = call i32 @isatty(i32 noundef %1733) #11
  %.not397 = icmp eq i32 %1734, 0
  br i1 %.not397, label %1735, label %1736

1735:                                             ; preds = %1731, %1725
  br label %1736

1736:                                             ; preds = %1731, %1735
  %.str.5.sink1013 = phi ptr [ @.str.5, %1735 ], [ @.str.2, %1731 ]
  store i32 %1726, ptr %409, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = load i32, ptr %355, align 4, !tbaa !5
  %1740 = call ptr @s2n_strerror(i32 noundef %1739, ptr noundef nonnull @.str.4) #11
  %1741 = load i32, ptr %355, align 4, !tbaa !5
  %1742 = call ptr @s2n_strerror_debug(i32 noundef %1741, ptr noundef nonnull @.str.4) #11
  %1743 = load i32, ptr %409, align 4, !tbaa !5
  %1744 = call ptr @strerror(i32 noundef %1743) #11
  %1745 = load i32, ptr %409, align 4, !tbaa !5
  %1746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1737, ptr noundef nonnull %.str.5.sink1013, i32 noundef %1738, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %1740, ptr noundef %1742, ptr noundef %1744, i32 noundef %1745) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1747:                                             ; preds = %1711
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = add nsw i32 %1748, 1
  store i32 %1749, ptr @test_count, align 4, !tbaa !5
  %1750 = load ptr, ptr %14, align 8, !tbaa !9
  %1751 = call i32 @s2n_parse_client_hello(ptr noundef %1750) #11
  %1752 = icmp eq i32 %1751, -1
  br i1 %1752, label %1753, label %1775

1753:                                             ; preds = %1747
  %1754 = load i32, ptr %409, align 4, !tbaa !5
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = call i32 @s2n_print_stacktrace(ptr noundef %1755) #11
  %1757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1758 = trunc nuw i8 %1757 to i1
  br i1 %1758, label %1759, label %1763

1759:                                             ; preds = %1753
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = call i32 @fileno(ptr noundef %1760) #11
  %1762 = call i32 @isatty(i32 noundef %1761) #11
  %.not396 = icmp eq i32 %1762, 0
  br i1 %.not396, label %1763, label %1764

1763:                                             ; preds = %1759, %1753
  br label %1764

1764:                                             ; preds = %1759, %1763
  %.str.5.sink1022 = phi ptr [ @.str.5, %1763 ], [ @.str.2, %1759 ]
  store i32 %1754, ptr %409, align 4, !tbaa !5
  %1765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1766 = load i32, ptr @test_count, align 4, !tbaa !5
  %1767 = load i32, ptr %355, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror(i32 noundef %1767, ptr noundef nonnull @.str.4) #11
  %1769 = load i32, ptr %355, align 4, !tbaa !5
  %1770 = call ptr @s2n_strerror_debug(i32 noundef %1769, ptr noundef nonnull @.str.4) #11
  %1771 = load i32, ptr %409, align 4, !tbaa !5
  %1772 = call ptr @strerror(i32 noundef %1771) #11
  %1773 = load i32, ptr %409, align 4, !tbaa !5
  %1774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1765, ptr noundef nonnull %.str.5.sink1022, i32 noundef %1766, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1768, ptr noundef %1770, ptr noundef %1772, i32 noundef %1773) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1775:                                             ; preds = %1747
  %1776 = load i32, ptr @test_count, align 4, !tbaa !5
  %1777 = add nsw i32 %1776, 1
  store i32 %1777, ptr @test_count, align 4, !tbaa !5
  %1778 = load ptr, ptr %14, align 8, !tbaa !9
  %1779 = getelementptr inbounds i8, ptr %1778, i64 2920
  %1780 = call i32 @s2n_extension_list_process(i32 noundef 0, ptr noundef %1778, ptr noundef nonnull %1779) #11
  %1781 = icmp eq i32 %1780, -1
  br i1 %1781, label %1782, label %1804

1782:                                             ; preds = %1775
  %1783 = load i32, ptr %409, align 4, !tbaa !5
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = call i32 @s2n_print_stacktrace(ptr noundef %1784) #11
  %1786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1787 = trunc nuw i8 %1786 to i1
  br i1 %1787, label %1788, label %1792

1788:                                             ; preds = %1782
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = call i32 @fileno(ptr noundef %1789) #11
  %1791 = call i32 @isatty(i32 noundef %1790) #11
  %.not395 = icmp eq i32 %1791, 0
  br i1 %.not395, label %1792, label %1793

1792:                                             ; preds = %1788, %1782
  br label %1793

1793:                                             ; preds = %1788, %1792
  %.str.5.sink1031 = phi ptr [ @.str.5, %1792 ], [ @.str.2, %1788 ]
  store i32 %1783, ptr %409, align 4, !tbaa !5
  %1794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1795 = load i32, ptr @test_count, align 4, !tbaa !5
  %1796 = load i32, ptr %355, align 4, !tbaa !5
  %1797 = call ptr @s2n_strerror(i32 noundef %1796, ptr noundef nonnull @.str.4) #11
  %1798 = load i32, ptr %355, align 4, !tbaa !5
  %1799 = call ptr @s2n_strerror_debug(i32 noundef %1798, ptr noundef nonnull @.str.4) #11
  %1800 = load i32, ptr %409, align 4, !tbaa !5
  %1801 = call ptr @strerror(i32 noundef %1800) #11
  %1802 = load i32, ptr %409, align 4, !tbaa !5
  %1803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1794, ptr noundef nonnull %.str.5.sink1031, i32 noundef %1795, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1797, ptr noundef %1799, ptr noundef %1801, i32 noundef %1802) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1804:                                             ; preds = %1775
  %1805 = load i32, ptr @test_count, align 4, !tbaa !5
  %1806 = add nsw i32 %1805, 1
  store i32 %1806, ptr @test_count, align 4, !tbaa !5
  %1807 = load ptr, ptr %14, align 8, !tbaa !9
  %1808 = load i32, ptr %1807, align 8
  %1809 = and i32 %1808, 8
  %.not335 = icmp eq i32 %1809, 0
  br i1 %.not335, label %1810, label %1832

1810:                                             ; preds = %1804
  %1811 = load i32, ptr %409, align 4, !tbaa !5
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = call i32 @s2n_print_stacktrace(ptr noundef %1812) #11
  %1814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1815 = trunc nuw i8 %1814 to i1
  br i1 %1815, label %1816, label %1820

1816:                                             ; preds = %1810
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = call i32 @fileno(ptr noundef %1817) #11
  %1819 = call i32 @isatty(i32 noundef %1818) #11
  %.not336 = icmp eq i32 %1819, 0
  br i1 %.not336, label %1820, label %1821

1820:                                             ; preds = %1816, %1810
  br label %1821

1821:                                             ; preds = %1816, %1820
  %.str.5.sink1040 = phi ptr [ @.str.5, %1820 ], [ @.str.2, %1816 ]
  store i32 %1811, ptr %409, align 4, !tbaa !5
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = load i32, ptr @test_count, align 4, !tbaa !5
  %1824 = load i32, ptr %355, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror(i32 noundef %1824, ptr noundef nonnull @.str.4) #11
  %1826 = load i32, ptr %355, align 4, !tbaa !5
  %1827 = call ptr @s2n_strerror_debug(i32 noundef %1826, ptr noundef nonnull @.str.4) #11
  %1828 = load i32, ptr %409, align 4, !tbaa !5
  %1829 = call ptr @strerror(i32 noundef %1828) #11
  %1830 = load i32, ptr %409, align 4, !tbaa !5
  %1831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1822, ptr noundef nonnull %.str.5.sink1040, i32 noundef %1823, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %1825, ptr noundef %1827, ptr noundef %1829, i32 noundef %1830) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1832:                                             ; preds = %1804
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %15) #11
  %1833 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  %1834 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  %1835 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1835, ptr %16, align 8, !tbaa !9
  %1836 = load i32, ptr @test_count, align 4, !tbaa !5
  %1837 = add nsw i32 %1836, 1
  store i32 %1837, ptr @test_count, align 4, !tbaa !5
  %1838 = icmp eq ptr %1835, null
  br i1 %1838, label %1839, label %1861

1839:                                             ; preds = %1832
  %1840 = load i32, ptr %409, align 4, !tbaa !5
  %1841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1842 = call i32 @s2n_print_stacktrace(ptr noundef %1841) #11
  %1843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1844 = trunc nuw i8 %1843 to i1
  br i1 %1844, label %1845, label %1849

1845:                                             ; preds = %1839
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = call i32 @fileno(ptr noundef %1846) #11
  %1848 = call i32 @isatty(i32 noundef %1847) #11
  %.not394 = icmp eq i32 %1848, 0
  br i1 %.not394, label %1849, label %1850

1849:                                             ; preds = %1845, %1839
  br label %1850

1850:                                             ; preds = %1845, %1849
  %.str.5.sink1049 = phi ptr [ @.str.5, %1849 ], [ @.str.2, %1845 ]
  store i32 %1840, ptr %409, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = load i32, ptr @test_count, align 4, !tbaa !5
  %1853 = load i32, ptr %355, align 4, !tbaa !5
  %1854 = call ptr @s2n_strerror(i32 noundef %1853, ptr noundef nonnull @.str.4) #11
  %1855 = load i32, ptr %355, align 4, !tbaa !5
  %1856 = call ptr @s2n_strerror_debug(i32 noundef %1855, ptr noundef nonnull @.str.4) #11
  %1857 = load i32, ptr %409, align 4, !tbaa !5
  %1858 = call ptr @strerror(i32 noundef %1857) #11
  %1859 = load i32, ptr %409, align 4, !tbaa !5
  %1860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1851, ptr noundef nonnull %.str.5.sink1049, i32 noundef %1852, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1854, ptr noundef %1856, ptr noundef %1858, i32 noundef %1859) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1861:                                             ; preds = %1832
  %1862 = add nsw i32 %1836, 2
  store i32 %1862, ptr @test_count, align 4, !tbaa !5
  %1863 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_renegotiation_info_extension, i64 24), align 8, !tbaa !58
  %1864 = call zeroext i1 %1863(ptr noundef nonnull %1835) #11
  br i1 %1864, label %1865, label %1887

1865:                                             ; preds = %1861
  %1866 = load i32, ptr %409, align 4, !tbaa !5
  %1867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1868 = call i32 @s2n_print_stacktrace(ptr noundef %1867) #11
  %1869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1870 = trunc nuw i8 %1869 to i1
  br i1 %1870, label %1871, label %1875

1871:                                             ; preds = %1865
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = call i32 @fileno(ptr noundef %1872) #11
  %1874 = call i32 @isatty(i32 noundef %1873) #11
  %.not393 = icmp eq i32 %1874, 0
  br i1 %.not393, label %1875, label %1876

1875:                                             ; preds = %1871, %1865
  br label %1876

1876:                                             ; preds = %1871, %1875
  %.str.5.sink1058 = phi ptr [ @.str.5, %1875 ], [ @.str.2, %1871 ]
  store i32 %1866, ptr %409, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = load i32, ptr @test_count, align 4, !tbaa !5
  %1879 = load i32, ptr %355, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror(i32 noundef %1879, ptr noundef nonnull @.str.4) #11
  %1881 = load i32, ptr %355, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror_debug(i32 noundef %1881, ptr noundef nonnull @.str.4) #11
  %1883 = load i32, ptr %409, align 4, !tbaa !5
  %1884 = call ptr @strerror(i32 noundef %1883) #11
  %1885 = load i32, ptr %409, align 4, !tbaa !5
  %1886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1877, ptr noundef nonnull %.str.5.sink1058, i32 noundef %1878, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %1880, ptr noundef %1882, ptr noundef %1884, i32 noundef %1885) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1887:                                             ; preds = %1861
  %1888 = load ptr, ptr %16, align 8, !tbaa !9
  %1889 = getelementptr inbounds i8, ptr %1888, i64 2200
  %1890 = load i8, ptr %1889, align 8
  %1891 = or i8 %1890, 8
  store i8 %1891, ptr %1889, align 8
  %1892 = load i32, ptr @test_count, align 4, !tbaa !5
  %1893 = add nsw i32 %1892, 1
  store i32 %1893, ptr @test_count, align 4, !tbaa !5
  %1894 = call zeroext i1 %1863(ptr noundef %1888) #11
  br i1 %1894, label %1917, label %1895

1895:                                             ; preds = %1887
  %1896 = load i32, ptr %409, align 4, !tbaa !5
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = call i32 @s2n_print_stacktrace(ptr noundef %1897) #11
  %1899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1900 = trunc nuw i8 %1899 to i1
  br i1 %1900, label %1901, label %1905

1901:                                             ; preds = %1895
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = call i32 @fileno(ptr noundef %1902) #11
  %1904 = call i32 @isatty(i32 noundef %1903) #11
  %.not337 = icmp eq i32 %1904, 0
  br i1 %.not337, label %1905, label %1906

1905:                                             ; preds = %1901, %1895
  br label %1906

1906:                                             ; preds = %1901, %1905
  %.str.5.sink1067 = phi ptr [ @.str.5, %1905 ], [ @.str.2, %1901 ]
  store i32 %1896, ptr %409, align 4, !tbaa !5
  %1907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1908 = load i32, ptr @test_count, align 4, !tbaa !5
  %1909 = load i32, ptr %355, align 4, !tbaa !5
  %1910 = call ptr @s2n_strerror(i32 noundef %1909, ptr noundef nonnull @.str.4) #11
  %1911 = load i32, ptr %355, align 4, !tbaa !5
  %1912 = call ptr @s2n_strerror_debug(i32 noundef %1911, ptr noundef nonnull @.str.4) #11
  %1913 = load i32, ptr %409, align 4, !tbaa !5
  %1914 = call ptr @strerror(i32 noundef %1913) #11
  %1915 = load i32, ptr %409, align 4, !tbaa !5
  %1916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1907, ptr noundef nonnull %.str.5.sink1067, i32 noundef %1908, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %1910, ptr noundef %1912, ptr noundef %1914, i32 noundef %1915) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1917:                                             ; preds = %1887
  %1918 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  %1919 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1919, ptr %17, align 8, !tbaa !9
  %1920 = load i32, ptr @test_count, align 4, !tbaa !5
  %1921 = add nsw i32 %1920, 1
  store i32 %1921, ptr @test_count, align 4, !tbaa !5
  %1922 = icmp eq ptr %1919, null
  br i1 %1922, label %1923, label %1945

1923:                                             ; preds = %1917
  %1924 = load i32, ptr %409, align 4, !tbaa !5
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = call i32 @s2n_print_stacktrace(ptr noundef %1925) #11
  %1927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1928 = trunc nuw i8 %1927 to i1
  br i1 %1928, label %1929, label %1933

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

1933:                                             ; preds = %1929, %1923
  br label %1934

1934:                                             ; preds = %1929, %1933
  %.str.5.sink1076 = phi ptr [ @.str.5, %1933 ], [ @.str.2, %1929 ]
  store i32 %1924, ptr %409, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = load i32, ptr %355, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror(i32 noundef %1937, ptr noundef nonnull @.str.4) #11
  %1939 = load i32, ptr %355, align 4, !tbaa !5
  %1940 = call ptr @s2n_strerror_debug(i32 noundef %1939, ptr noundef nonnull @.str.4) #11
  %1941 = load i32, ptr %409, align 4, !tbaa !5
  %1942 = call ptr @strerror(i32 noundef %1941) #11
  %1943 = load i32, ptr %409, align 4, !tbaa !5
  %1944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1935, ptr noundef nonnull %.str.5.sink1076, i32 noundef %1936, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %1938, ptr noundef %1940, ptr noundef %1942, i32 noundef %1943) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1945:                                             ; preds = %1917
  %1946 = getelementptr inbounds i8, ptr %1919, i64 2200
  %1947 = load i8, ptr %1946, align 8
  %1948 = or i8 %1947, 8
  store i8 %1948, ptr %1946, align 8
  %1949 = getelementptr inbounds i8, ptr %1919, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %1949, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.client_verify_data, i64 19, i1 false)
  %1950 = getelementptr inbounds i8, ptr %1919, i64 2168
  store i8 19, ptr %1950, align 8, !tbaa !59
  %1951 = load i32, ptr %1919, align 8
  %1952 = and i32 %1951, -9
  store i32 %1952, ptr %1919, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %18, i8 0, i64 40, i1 false)
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = add nsw i32 %1953, 1
  store i32 %1954, ptr @test_count, align 4, !tbaa !5
  %1955 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %18, i32 noundef 0) #11
  %1956 = icmp eq i32 %1955, -1
  br i1 %1956, label %1957, label %1979

1957:                                             ; preds = %1945
  %1958 = load i32, ptr %409, align 4, !tbaa !5
  %1959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1960 = call i32 @s2n_print_stacktrace(ptr noundef %1959) #11
  %1961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1962 = trunc nuw i8 %1961 to i1
  br i1 %1962, label %1963, label %1967

1963:                                             ; preds = %1957
  %1964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1965 = call i32 @fileno(ptr noundef %1964) #11
  %1966 = call i32 @isatty(i32 noundef %1965) #11
  %.not391 = icmp eq i32 %1966, 0
  br i1 %.not391, label %1967, label %1968

1967:                                             ; preds = %1963, %1957
  br label %1968

1968:                                             ; preds = %1963, %1967
  %.str.5.sink1085 = phi ptr [ @.str.5, %1967 ], [ @.str.2, %1963 ]
  store i32 %1958, ptr %409, align 4, !tbaa !5
  %1969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1970 = load i32, ptr @test_count, align 4, !tbaa !5
  %1971 = load i32, ptr %355, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror(i32 noundef %1971, ptr noundef nonnull @.str.4) #11
  %1973 = load i32, ptr %355, align 4, !tbaa !5
  %1974 = call ptr @s2n_strerror_debug(i32 noundef %1973, ptr noundef nonnull @.str.4) #11
  %1975 = load i32, ptr %409, align 4, !tbaa !5
  %1976 = call ptr @strerror(i32 noundef %1975) #11
  %1977 = load i32, ptr %409, align 4, !tbaa !5
  %1978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1969, ptr noundef nonnull %.str.5.sink1085, i32 noundef %1970, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %1972, ptr noundef %1974, ptr noundef %1976, i32 noundef %1977) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1979:                                             ; preds = %1945
  %1980 = load i32, ptr @test_count, align 4, !tbaa !5
  %1981 = add nsw i32 %1980, 1
  store i32 %1981, ptr @test_count, align 4, !tbaa !5
  %1982 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_renegotiation_info_extension, i64 8), align 8, !tbaa !60
  %1983 = load ptr, ptr %17, align 8, !tbaa !9
  %1984 = call i32 %1982(ptr noundef %1983, ptr noundef nonnull %18) #11
  %1985 = icmp eq i32 %1984, -1
  br i1 %1985, label %2008, label %1986

1986:                                             ; preds = %1979
  %1987 = load i32, ptr %409, align 4, !tbaa !5
  %1988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1989 = call i32 @s2n_print_stacktrace(ptr noundef %1988) #11
  %1990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1991 = trunc nuw i8 %1990 to i1
  br i1 %1991, label %1992, label %1996

1992:                                             ; preds = %1986
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = call i32 @fileno(ptr noundef %1993) #11
  %1995 = call i32 @isatty(i32 noundef %1994) #11
  %.not338 = icmp eq i32 %1995, 0
  br i1 %.not338, label %1996, label %1997

1996:                                             ; preds = %1992, %1986
  br label %1997

1997:                                             ; preds = %1992, %1996
  %.str.5.sink1094 = phi ptr [ @.str.5, %1996 ], [ @.str.2, %1992 ]
  store i32 %1987, ptr %409, align 4, !tbaa !5
  %1998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1999 = load i32, ptr @test_count, align 4, !tbaa !5
  %2000 = load i32, ptr %355, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror(i32 noundef %2000, ptr noundef nonnull @.str.4) #11
  %2002 = load i32, ptr %355, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror_debug(i32 noundef %2002, ptr noundef nonnull @.str.4) #11
  %2004 = load i32, ptr %409, align 4, !tbaa !5
  %2005 = call ptr @strerror(i32 noundef %2004) #11
  %2006 = load i32, ptr %409, align 4, !tbaa !5
  %2007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1998, ptr noundef nonnull %.str.5.sink1094, i32 noundef %1999, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %2001, ptr noundef %2003, ptr noundef %2005, i32 noundef %2006) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2008:                                             ; preds = %1979
  %2009 = load i32, ptr @test_count, align 4, !tbaa !5
  %2010 = add nsw i32 %2009, 1
  store i32 %2010, ptr @test_count, align 4, !tbaa !5
  %2011 = load i32, ptr %355, align 4, !tbaa !5
  %2012 = icmp eq i32 %2011, 335544398
  br i1 %2012, label %2035, label %2013

2013:                                             ; preds = %2008
  %2014 = load i32, ptr %409, align 4, !tbaa !5
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = call i32 @s2n_print_stacktrace(ptr noundef %2015) #11
  %2017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2018 = trunc nuw i8 %2017 to i1
  br i1 %2018, label %2019, label %2023

2019:                                             ; preds = %2013
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @fileno(ptr noundef %2020) #11
  %2022 = call i32 @isatty(i32 noundef %2021) #11
  %.not339 = icmp eq i32 %2022, 0
  br i1 %.not339, label %2023, label %2024

2023:                                             ; preds = %2019, %2013
  br label %2024

2024:                                             ; preds = %2019, %2023
  %.str.5.sink1103 = phi ptr [ @.str.5, %2023 ], [ @.str.2, %2019 ]
  store i32 %2014, ptr %409, align 4, !tbaa !5
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = load i32, ptr %355, align 4, !tbaa !5
  %2028 = call ptr @s2n_strerror(i32 noundef %2027, ptr noundef nonnull @.str.4) #11
  %2029 = load i32, ptr %355, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror_debug(i32 noundef %2029, ptr noundef nonnull @.str.4) #11
  %2031 = load i32, ptr %409, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #11
  %2033 = load i32, ptr %409, align 4, !tbaa !5
  %2034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2025, ptr noundef nonnull %.str.5.sink1103, i32 noundef %2026, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %2028, ptr noundef %2030, ptr noundef %2032, i32 noundef %2033) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2035:                                             ; preds = %2008
  %2036 = add nsw i32 %2009, 2
  store i32 %2036, ptr @test_count, align 4, !tbaa !5
  %2037 = call ptr @s2n_strerror_debug(i32 noundef 335544398, ptr noundef nonnull @.str.4) #11
  %2038 = icmp eq ptr %2037, null
  br i1 %2038, label %2039, label %2061

2039:                                             ; preds = %2035
  %2040 = load i32, ptr %409, align 4, !tbaa !5
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = call i32 @s2n_print_stacktrace(ptr noundef %2041) #11
  %2043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2044 = trunc nuw i8 %2043 to i1
  br i1 %2044, label %2045, label %2049

2045:                                             ; preds = %2039
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = call i32 @fileno(ptr noundef %2046) #11
  %2048 = call i32 @isatty(i32 noundef %2047) #11
  %.not390 = icmp eq i32 %2048, 0
  br i1 %.not390, label %2049, label %2050

2049:                                             ; preds = %2045, %2039
  br label %2050

2050:                                             ; preds = %2045, %2049
  %.str.5.sink1112 = phi ptr [ @.str.5, %2049 ], [ @.str.2, %2045 ]
  store i32 %2040, ptr %409, align 4, !tbaa !5
  %2051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2052 = load i32, ptr @test_count, align 4, !tbaa !5
  %2053 = load i32, ptr %355, align 4, !tbaa !5
  %2054 = call ptr @s2n_strerror(i32 noundef %2053, ptr noundef nonnull @.str.4) #11
  %2055 = load i32, ptr %355, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror_debug(i32 noundef %2055, ptr noundef nonnull @.str.4) #11
  %2057 = load i32, ptr %409, align 4, !tbaa !5
  %2058 = call ptr @strerror(i32 noundef %2057) #11
  %2059 = load i32, ptr %409, align 4, !tbaa !5
  %2060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2051, ptr noundef nonnull %.str.5.sink1112, i32 noundef %2052, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %2054, ptr noundef %2056, ptr noundef %2058, i32 noundef %2059) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2061:                                             ; preds = %2035
  store i32 0, ptr %355, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %409, align 4, !tbaa !5
  %2062 = call i32 @s2n_stuffer_free(ptr noundef nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #11
  %2063 = load ptr, ptr %17, align 8, !tbaa !9
  %2064 = load i32, ptr %2063, align 8
  %2065 = or i32 %2064, 8
  store i32 %2065, ptr %2063, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %19) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %19, i8 0, i64 40, i1 false)
  %2066 = load i32, ptr @test_count, align 4, !tbaa !5
  %2067 = add nsw i32 %2066, 1
  store i32 %2067, ptr @test_count, align 4, !tbaa !5
  %2068 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %19, i32 noundef 0) #11
  %2069 = icmp eq i32 %2068, -1
  br i1 %2069, label %2070, label %2092

2070:                                             ; preds = %2061
  %2071 = load i32, ptr %409, align 4, !tbaa !5
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = call i32 @s2n_print_stacktrace(ptr noundef %2072) #11
  %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) #11
  %2079 = call i32 @isatty(i32 noundef %2078) #11
  %.not389 = icmp eq i32 %2079, 0
  br i1 %.not389, label %2080, label %2081

2080:                                             ; preds = %2076, %2070
  br label %2081

2081:                                             ; preds = %2076, %2080
  %.str.5.sink1121 = phi ptr [ @.str.5, %2080 ], [ @.str.2, %2076 ]
  store i32 %2071, ptr %409, 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 %355, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror(i32 noundef %2084, ptr noundef nonnull @.str.4) #11
  %2086 = load i32, ptr %355, align 4, !tbaa !5
  %2087 = call ptr @s2n_strerror_debug(i32 noundef %2086, ptr noundef nonnull @.str.4) #11
  %2088 = load i32, ptr %409, align 4, !tbaa !5
  %2089 = call ptr @strerror(i32 noundef %2088) #11
  %2090 = load i32, ptr %409, align 4, !tbaa !5
  %2091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2082, ptr noundef nonnull %.str.5.sink1121, i32 noundef %2083, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 278, ptr noundef %2085, ptr noundef %2087, ptr noundef %2089, i32 noundef %2090) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2092:                                             ; preds = %2061
  %2093 = load i32, ptr @test_count, align 4, !tbaa !5
  %2094 = add nsw i32 %2093, 1
  store i32 %2094, ptr @test_count, align 4, !tbaa !5
  %2095 = load ptr, ptr %17, align 8, !tbaa !9
  %2096 = call i32 %1982(ptr noundef %2095, ptr noundef nonnull %19) #11
  %2097 = icmp eq i32 %2096, -1
  br i1 %2097, label %2098, label %2120

2098:                                             ; preds = %2092
  %2099 = load i32, ptr %409, align 4, !tbaa !5
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = call i32 @s2n_print_stacktrace(ptr noundef %2100) #11
  %2102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2103 = trunc nuw i8 %2102 to i1
  br i1 %2103, label %2104, label %2108

2104:                                             ; preds = %2098
  %2105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2106 = call i32 @fileno(ptr noundef %2105) #11
  %2107 = call i32 @isatty(i32 noundef %2106) #11
  %.not388 = icmp eq i32 %2107, 0
  br i1 %.not388, label %2108, label %2109

2108:                                             ; preds = %2104, %2098
  br label %2109

2109:                                             ; preds = %2104, %2108
  %.str.5.sink1130 = phi ptr [ @.str.5, %2108 ], [ @.str.2, %2104 ]
  store i32 %2099, ptr %409, align 4, !tbaa !5
  %2110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2111 = load i32, ptr @test_count, align 4, !tbaa !5
  %2112 = load i32, ptr %355, align 4, !tbaa !5
  %2113 = call ptr @s2n_strerror(i32 noundef %2112, ptr noundef nonnull @.str.4) #11
  %2114 = load i32, ptr %355, align 4, !tbaa !5
  %2115 = call ptr @s2n_strerror_debug(i32 noundef %2114, ptr noundef nonnull @.str.4) #11
  %2116 = load i32, ptr %409, align 4, !tbaa !5
  %2117 = call ptr @strerror(i32 noundef %2116) #11
  %2118 = load i32, ptr %409, align 4, !tbaa !5
  %2119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2110, ptr noundef nonnull %.str.5.sink1130, i32 noundef %2111, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %2113, ptr noundef %2115, ptr noundef %2117, i32 noundef %2118) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2120:                                             ; preds = %2092
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #11
  store i8 0, ptr %20, align 1, !tbaa !51
  %2121 = load i32, ptr @test_count, align 4, !tbaa !5
  %2122 = add nsw i32 %2121, 1
  store i32 %2122, ptr @test_count, align 4, !tbaa !5
  %2123 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %19, ptr noundef nonnull %20) #11
  %2124 = icmp eq i32 %2123, -1
  br i1 %2124, label %2125, label %2147

2125:                                             ; preds = %2120
  %2126 = load i32, ptr %409, align 4, !tbaa !5
  %2127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2128 = call i32 @s2n_print_stacktrace(ptr noundef %2127) #11
  %2129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2130 = trunc nuw i8 %2129 to i1
  br i1 %2130, label %2131, label %2135

2131:                                             ; preds = %2125
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2133 = call i32 @fileno(ptr noundef %2132) #11
  %2134 = call i32 @isatty(i32 noundef %2133) #11
  %.not387 = icmp eq i32 %2134, 0
  br i1 %.not387, label %2135, label %2136

2135:                                             ; preds = %2131, %2125
  br label %2136

2136:                                             ; preds = %2131, %2135
  %.str.5.sink1139 = phi ptr [ @.str.5, %2135 ], [ @.str.2, %2131 ]
  store i32 %2126, ptr %409, align 4, !tbaa !5
  %2137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2138 = load i32, ptr @test_count, align 4, !tbaa !5
  %2139 = load i32, ptr %355, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror(i32 noundef %2139, ptr noundef nonnull @.str.4) #11
  %2141 = load i32, ptr %355, align 4, !tbaa !5
  %2142 = call ptr @s2n_strerror_debug(i32 noundef %2141, ptr noundef nonnull @.str.4) #11
  %2143 = load i32, ptr %409, align 4, !tbaa !5
  %2144 = call ptr @strerror(i32 noundef %2143) #11
  %2145 = load i32, ptr %409, align 4, !tbaa !5
  %2146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2137, ptr noundef nonnull %.str.5.sink1139, i32 noundef %2138, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %2140, ptr noundef %2142, ptr noundef %2144, i32 noundef %2145) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2147:                                             ; preds = %2120
  %2148 = load i32, ptr @test_count, align 4, !tbaa !5
  %2149 = add nsw i32 %2148, 1
  store i32 %2149, ptr @test_count, align 4, !tbaa !5
  %2150 = load i8, ptr %20, align 1, !tbaa !51
  %2151 = icmp eq i8 %2150, 19
  br i1 %2151, label %2174, label %2152

2152:                                             ; preds = %2147
  %2153 = load i32, ptr %409, align 4, !tbaa !5
  %2154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2155 = call i32 @s2n_print_stacktrace(ptr noundef %2154) #11
  %2156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2157 = trunc nuw i8 %2156 to i1
  br i1 %2157, label %2158, label %2162

2158:                                             ; preds = %2152
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = call i32 @fileno(ptr noundef %2159) #11
  %2161 = call i32 @isatty(i32 noundef %2160) #11
  %.not340 = icmp eq i32 %2161, 0
  br i1 %.not340, label %2162, label %2163

2162:                                             ; preds = %2158, %2152
  br label %2163

2163:                                             ; preds = %2158, %2162
  %.str.5.sink1148 = phi ptr [ @.str.5, %2162 ], [ @.str.2, %2158 ]
  store i32 %2153, ptr %409, align 4, !tbaa !5
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = load i32, ptr @test_count, align 4, !tbaa !5
  %2166 = load i32, ptr %355, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror(i32 noundef %2166, ptr noundef nonnull @.str.4) #11
  %2168 = load i32, ptr %355, align 4, !tbaa !5
  %2169 = call ptr @s2n_strerror_debug(i32 noundef %2168, ptr noundef nonnull @.str.4) #11
  %2170 = load i32, ptr %409, align 4, !tbaa !5
  %2171 = call ptr @strerror(i32 noundef %2170) #11
  %2172 = load i32, ptr %409, align 4, !tbaa !5
  %2173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2164, ptr noundef nonnull %.str.5.sink1148, i32 noundef %2165, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %2167, ptr noundef %2169, ptr noundef %2171, i32 noundef %2172) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2174:                                             ; preds = %2147
  %2175 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %19, i32 noundef 19) #11
  %2176 = load i8, ptr %20, align 1, !tbaa !51
  %.not341 = icmp eq i8 %2176, 0
  br i1 %.not341, label %2204, label %2177

2177:                                             ; preds = %2174
  %2178 = load i32, ptr @test_count, align 4, !tbaa !5
  %2179 = add nsw i32 %2178, 1
  store i32 %2179, ptr @test_count, align 4, !tbaa !5
  %2180 = zext i8 %2176 to i64
  %bcmp = call i32 @bcmp(ptr %2175, ptr nonnull @__const.main.client_verify_data, i64 %2180)
  %2181 = icmp eq i32 %bcmp, 0
  br i1 %2181, label %2204, label %2182

2182:                                             ; preds = %2177
  %2183 = load i32, ptr %409, align 4, !tbaa !5
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @s2n_print_stacktrace(ptr noundef %2184) #11
  %2186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2187 = trunc nuw i8 %2186 to i1
  br i1 %2187, label %2188, label %2192

2188:                                             ; preds = %2182
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = call i32 @fileno(ptr noundef %2189) #11
  %2191 = call i32 @isatty(i32 noundef %2190) #11
  %.not342 = icmp eq i32 %2191, 0
  br i1 %.not342, label %2192, label %2193

2192:                                             ; preds = %2188, %2182
  br label %2193

2193:                                             ; preds = %2188, %2192
  %.str.5.sink1157 = phi ptr [ @.str.5, %2192 ], [ @.str.2, %2188 ]
  store i32 %2183, ptr %409, align 4, !tbaa !5
  %2194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2195 = load i32, ptr @test_count, align 4, !tbaa !5
  %2196 = load i32, ptr %355, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror(i32 noundef %2196, ptr noundef nonnull @.str.4) #11
  %2198 = load i32, ptr %355, align 4, !tbaa !5
  %2199 = call ptr @s2n_strerror_debug(i32 noundef %2198, ptr noundef nonnull @.str.4) #11
  %2200 = load i32, ptr %409, align 4, !tbaa !5
  %2201 = call ptr @strerror(i32 noundef %2200) #11
  %2202 = load i32, ptr %409, align 4, !tbaa !5
  %2203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2194, ptr noundef nonnull %.str.5.sink1157, i32 noundef %2195, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %2197, ptr noundef %2199, ptr noundef %2201, i32 noundef %2202) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2204:                                             ; preds = %2177, %2174
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #11
  %2205 = call i32 @s2n_stuffer_free(ptr noundef nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %19) #11
  %2206 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  %2207 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %2207, ptr %21, align 8, !tbaa !9
  %2208 = load i32, ptr @test_count, align 4, !tbaa !5
  %2209 = add nsw i32 %2208, 1
  store i32 %2209, ptr @test_count, align 4, !tbaa !5
  %2210 = icmp eq ptr %2207, null
  br i1 %2210, label %2211, label %2233

2211:                                             ; preds = %2204
  %2212 = load i32, ptr %409, align 4, !tbaa !5
  %2213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2214 = call i32 @s2n_print_stacktrace(ptr noundef %2213) #11
  %2215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2216 = trunc nuw i8 %2215 to i1
  br i1 %2216, label %2217, label %2221

2217:                                             ; preds = %2211
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = call i32 @fileno(ptr noundef %2218) #11
  %2220 = call i32 @isatty(i32 noundef %2219) #11
  %.not386 = icmp eq i32 %2220, 0
  br i1 %.not386, label %2221, label %2222

2221:                                             ; preds = %2217, %2211
  br label %2222

2222:                                             ; preds = %2217, %2221
  %.str.5.sink1166 = phi ptr [ @.str.5, %2221 ], [ @.str.2, %2217 ]
  store i32 %2212, ptr %409, align 4, !tbaa !5
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = load i32, ptr @test_count, align 4, !tbaa !5
  %2225 = load i32, ptr %355, align 4, !tbaa !5
  %2226 = call ptr @s2n_strerror(i32 noundef %2225, ptr noundef nonnull @.str.4) #11
  %2227 = load i32, ptr %355, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror_debug(i32 noundef %2227, ptr noundef nonnull @.str.4) #11
  %2229 = load i32, ptr %409, align 4, !tbaa !5
  %2230 = call ptr @strerror(i32 noundef %2229) #11
  %2231 = load i32, ptr %409, align 4, !tbaa !5
  %2232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2223, ptr noundef nonnull %.str.5.sink1166, i32 noundef %2224, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 298, ptr noundef %2226, ptr noundef %2228, ptr noundef %2230, i32 noundef %2231) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2233:                                             ; preds = %2204
  %2234 = load i32, ptr %2207, align 8
  %2235 = or i32 %2234, 8
  store i32 %2235, ptr %2207, align 8
  %2236 = load ptr, ptr %21, align 8, !tbaa !9
  %2237 = getelementptr inbounds i8, ptr %2236, i64 2200
  %2238 = load i8, ptr %2237, align 8
  %2239 = or i8 %2238, 8
  store i8 %2239, ptr %2237, align 8
  %2240 = getelementptr inbounds i8, ptr %2236, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %2240, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.client_verify_data, i64 19, i1 false)
  %2241 = getelementptr inbounds i8, ptr %2236, i64 2168
  store i8 19, ptr %2241, align 8, !tbaa !59
  %2242 = load i32, ptr @test_count, align 4, !tbaa !5
  %2243 = add nsw i32 %2242, 1
  store i32 %2243, ptr @test_count, align 4, !tbaa !5
  %2244 = call i32 @s2n_client_hello_send(ptr noundef %2236) #11
  %2245 = icmp eq i32 %2244, -1
  br i1 %2245, label %2246, label %2268

2246:                                             ; preds = %2233
  %2247 = load i32, ptr %409, align 4, !tbaa !5
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = call i32 @s2n_print_stacktrace(ptr noundef %2248) #11
  %2250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2251 = trunc nuw i8 %2250 to i1
  br i1 %2251, label %2252, label %2256

2252:                                             ; preds = %2246
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @fileno(ptr noundef %2253) #11
  %2255 = call i32 @isatty(i32 noundef %2254) #11
  %.not385 = icmp eq i32 %2255, 0
  br i1 %.not385, label %2256, label %2257

2256:                                             ; preds = %2252, %2246
  br label %2257

2257:                                             ; preds = %2252, %2256
  %.str.5.sink1175 = phi ptr [ @.str.5, %2256 ], [ @.str.2, %2252 ]
  store i32 %2247, ptr %409, align 4, !tbaa !5
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = load i32, ptr @test_count, align 4, !tbaa !5
  %2260 = load i32, ptr %355, align 4, !tbaa !5
  %2261 = call ptr @s2n_strerror(i32 noundef %2260, ptr noundef nonnull @.str.4) #11
  %2262 = load i32, ptr %355, align 4, !tbaa !5
  %2263 = call ptr @s2n_strerror_debug(i32 noundef %2262, ptr noundef nonnull @.str.4) #11
  %2264 = load i32, ptr %409, align 4, !tbaa !5
  %2265 = call ptr @strerror(i32 noundef %2264) #11
  %2266 = load i32, ptr %409, align 4, !tbaa !5
  %2267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2258, ptr noundef nonnull %.str.5.sink1175, i32 noundef %2259, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %2261, ptr noundef %2263, ptr noundef %2265, i32 noundef %2266) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2268:                                             ; preds = %2233
  %2269 = load i32, ptr @test_count, align 4, !tbaa !5
  %2270 = add nsw i32 %2269, 1
  store i32 %2270, ptr @test_count, align 4, !tbaa !5
  %2271 = load ptr, ptr %21, align 8, !tbaa !9
  %2272 = call i32 @s2n_parse_client_hello(ptr noundef %2271) #11
  %2273 = icmp eq i32 %2272, -1
  br i1 %2273, label %2280, label %.preheader

.preheader:                                       ; preds = %2268
  %2274 = load ptr, ptr %21, align 8, !tbaa !9
  %2275 = getelementptr inbounds i8, ptr %2274, i64 3632
  %2276 = load i32, ptr %2275, align 8, !tbaa !47
  %2277 = zext i32 %2276 to i64
  %.not460 = icmp eq i32 %2276, 0
  br i1 %.not460, label %.critedge458, label %.lr.ph455

.lr.ph455:                                        ; preds = %.preheader
  %2278 = getelementptr inbounds i8, ptr %2274, i64 3624
  %2279 = load ptr, ptr %2278, align 8, !tbaa !48
  br label %2304

2280:                                             ; preds = %2268
  %2281 = load i32, ptr %409, align 4, !tbaa !5
  %2282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2283 = call i32 @s2n_print_stacktrace(ptr noundef %2282) #11
  %2284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2285 = trunc nuw i8 %2284 to i1
  br i1 %2285, label %2286, label %2290

2286:                                             ; preds = %2280
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = call i32 @fileno(ptr noundef %2287) #11
  %2289 = call i32 @isatty(i32 noundef %2288) #11
  %.not384 = icmp eq i32 %2289, 0
  br i1 %.not384, label %2290, label %2291

2290:                                             ; preds = %2286, %2280
  br label %2291

2291:                                             ; preds = %2286, %2290
  %.str.5.sink1184 = phi ptr [ @.str.5, %2290 ], [ @.str.2, %2286 ]
  store i32 %2281, ptr %409, align 4, !tbaa !5
  %2292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2293 = load i32, ptr @test_count, align 4, !tbaa !5
  %2294 = load i32, ptr %355, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror(i32 noundef %2294, ptr noundef nonnull @.str.4) #11
  %2296 = load i32, ptr %355, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror_debug(i32 noundef %2296, ptr noundef nonnull @.str.4) #11
  %2298 = load i32, ptr %409, align 4, !tbaa !5
  %2299 = call ptr @strerror(i32 noundef %2298) #11
  %2300 = load i32, ptr %409, align 4, !tbaa !5
  %2301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2292, ptr noundef nonnull %.str.5.sink1184, i32 noundef %2293, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %2295, ptr noundef %2297, ptr noundef %2299, i32 noundef %2300) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge456:                                   ; preds = %2304
  %2302 = load i32, ptr @test_count, align 4, !tbaa !5
  %2303 = add nsw i32 %2302, 1
  store i32 %2303, ptr @test_count, align 4, !tbaa !5
  br i1 %spec.select449, label %2309, label %2333

2304:                                             ; preds = %.lr.ph455, %2304
  %.0307454 = phi i1 [ false, %.lr.ph455 ], [ %spec.select449, %2304 ]
  %.0309453 = phi i64 [ 0, %.lr.ph455 ], [ %2307, %2304 ]
  %2305 = getelementptr inbounds i8, ptr %2279, i64 %.0309453
  %bcmp383 = call i32 @bcmp(ptr noundef nonnull dereferenceable(2) %2305, ptr noundef nonnull dereferenceable(2) @__const.main.renegotiation_info_scsv_iana, i64 2)
  %2306 = icmp eq i32 %bcmp383, 0
  %spec.select449 = select i1 %2306, i1 true, i1 %.0307454
  %2307 = add nuw nsw i64 %.0309453, 2
  %2308 = icmp ult i64 %2307, %2277
  br i1 %2308, label %2304, label %._crit_edge456, !llvm.loop !61

2309:                                             ; preds = %._crit_edge456
  %2310 = load i32, ptr %409, align 4, !tbaa !5
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2312 = call i32 @s2n_print_stacktrace(ptr noundef %2311) #11
  %2313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2314 = trunc nuw i8 %2313 to i1
  br i1 %2314, label %2315, label %2319

2315:                                             ; preds = %2309
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = call i32 @fileno(ptr noundef %2316) #11
  %2318 = call i32 @isatty(i32 noundef %2317) #11
  %.not382 = icmp eq i32 %2318, 0
  br i1 %.not382, label %2319, label %2320

2319:                                             ; preds = %2315, %2309
  br label %2320

2320:                                             ; preds = %2315, %2319
  %.str.5.sink1193 = phi ptr [ @.str.5, %2319 ], [ @.str.2, %2315 ]
  store i32 %2310, ptr %409, align 4, !tbaa !5
  %2321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2322 = load i32, ptr @test_count, align 4, !tbaa !5
  %2323 = load i32, ptr %355, align 4, !tbaa !5
  %2324 = call ptr @s2n_strerror(i32 noundef %2323, ptr noundef nonnull @.str.4) #11
  %2325 = load i32, ptr %355, align 4, !tbaa !5
  %2326 = call ptr @s2n_strerror_debug(i32 noundef %2325, ptr noundef nonnull @.str.4) #11
  %2327 = load i32, ptr %409, align 4, !tbaa !5
  %2328 = call ptr @strerror(i32 noundef %2327) #11
  %2329 = load i32, ptr %409, align 4, !tbaa !5
  %2330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2321, ptr noundef nonnull %.str.5.sink1193, i32 noundef %2322, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %2324, ptr noundef %2326, ptr noundef %2328, i32 noundef %2329) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.critedge458:                                     ; preds = %.preheader
  %2331 = load i32, ptr @test_count, align 4, !tbaa !5
  %2332 = add nsw i32 %2331, 1
  store i32 %2332, ptr @test_count, align 4, !tbaa !5
  br label %2333

2333:                                             ; preds = %.critedge458, %._crit_edge456
  %2334 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %2335 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2335, ptr %22, align 8, !tbaa !9
  %2336 = load i32, ptr @test_count, align 4, !tbaa !5
  %2337 = add nsw i32 %2336, 1
  store i32 %2337, ptr @test_count, align 4, !tbaa !5
  %2338 = icmp eq ptr %2335, null
  br i1 %2338, label %2339, label %2361

2339:                                             ; preds = %2333
  %2340 = load i32, ptr %409, align 4, !tbaa !5
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = call i32 @s2n_print_stacktrace(ptr noundef %2341) #11
  %2343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2344 = trunc nuw i8 %2343 to i1
  br i1 %2344, label %2345, label %2349

2345:                                             ; preds = %2339
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = call i32 @fileno(ptr noundef %2346) #11
  %2348 = call i32 @isatty(i32 noundef %2347) #11
  %.not381 = icmp eq i32 %2348, 0
  br i1 %.not381, label %2349, label %2350

2349:                                             ; preds = %2345, %2339
  br label %2350

2350:                                             ; preds = %2345, %2349
  %.str.5.sink1202 = phi ptr [ @.str.5, %2349 ], [ @.str.2, %2345 ]
  store i32 %2340, ptr %409, align 4, !tbaa !5
  %2351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2352 = load i32, ptr @test_count, align 4, !tbaa !5
  %2353 = load i32, ptr %355, align 4, !tbaa !5
  %2354 = call ptr @s2n_strerror(i32 noundef %2353, ptr noundef nonnull @.str.4) #11
  %2355 = load i32, ptr %355, align 4, !tbaa !5
  %2356 = call ptr @s2n_strerror_debug(i32 noundef %2355, ptr noundef nonnull @.str.4) #11
  %2357 = load i32, ptr %409, align 4, !tbaa !5
  %2358 = call ptr @strerror(i32 noundef %2357) #11
  %2359 = load i32, ptr %409, align 4, !tbaa !5
  %2360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2351, ptr noundef nonnull %.str.5.sink1202, i32 noundef %2352, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %2354, ptr noundef %2356, ptr noundef %2358, i32 noundef %2359) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2361:                                             ; preds = %2333
  %2362 = getelementptr inbounds i8, ptr %2335, i64 2200
  %2363 = load i8, ptr %2362, align 8
  %2364 = or i8 %2363, 8
  store i8 %2364, ptr %2362, align 8
  %2365 = load i32, ptr %2335, align 8
  %2366 = or i32 %2365, 8
  store i32 %2366, ptr %2335, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %2367 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2367, ptr %23, align 8, !tbaa !9
  %2368 = load i32, ptr @test_count, align 4, !tbaa !5
  %2369 = add nsw i32 %2368, 1
  store i32 %2369, ptr @test_count, align 4, !tbaa !5
  %2370 = icmp eq ptr %2367, null
  br i1 %2370, label %2371, label %2393

2371:                                             ; preds = %2361
  %2372 = load i32, ptr %409, align 4, !tbaa !5
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = call i32 @s2n_print_stacktrace(ptr noundef %2373) #11
  %2375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2376 = trunc nuw i8 %2375 to i1
  br i1 %2376, label %2377, label %2381

2377:                                             ; preds = %2371
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = call i32 @fileno(ptr noundef %2378) #11
  %2380 = call i32 @isatty(i32 noundef %2379) #11
  %.not380 = icmp eq i32 %2380, 0
  br i1 %.not380, label %2381, label %2382

2381:                                             ; preds = %2377, %2371
  br label %2382

2382:                                             ; preds = %2377, %2381
  %.str.5.sink1211 = phi ptr [ @.str.5, %2381 ], [ @.str.2, %2377 ]
  store i32 %2372, ptr %409, align 4, !tbaa !5
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = load i32, ptr @test_count, align 4, !tbaa !5
  %2385 = load i32, ptr %355, align 4, !tbaa !5
  %2386 = call ptr @s2n_strerror(i32 noundef %2385, ptr noundef nonnull @.str.4) #11
  %2387 = load i32, ptr %355, align 4, !tbaa !5
  %2388 = call ptr @s2n_strerror_debug(i32 noundef %2387, ptr noundef nonnull @.str.4) #11
  %2389 = load i32, ptr %409, align 4, !tbaa !5
  %2390 = call ptr @strerror(i32 noundef %2389) #11
  %2391 = load i32, ptr %409, align 4, !tbaa !5
  %2392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2383, ptr noundef nonnull %.str.5.sink1211, i32 noundef %2384, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 340, ptr noundef %2386, ptr noundef %2388, ptr noundef %2390, i32 noundef %2391) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2393:                                             ; preds = %2361
  %2394 = getelementptr inbounds i8, ptr %2367, i64 2200
  %2395 = load i8, ptr %2394, align 8
  %2396 = or i8 %2395, 8
  store i8 %2396, ptr %2394, align 8
  %2397 = load i32, ptr %2367, align 8
  %2398 = or i32 %2397, 8
  store i32 %2398, ptr %2367, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %24) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %24, i8 0, i64 40, i1 false)
  %2399 = load i32, ptr @test_count, align 4, !tbaa !5
  %2400 = add nsw i32 %2399, 1
  store i32 %2400, ptr @test_count, align 4, !tbaa !5
  %2401 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %24, i32 noundef 0) #11
  %2402 = icmp eq i32 %2401, -1
  br i1 %2402, label %2403, label %2425

2403:                                             ; preds = %2393
  %2404 = load i32, ptr %409, align 4, !tbaa !5
  %2405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2406 = call i32 @s2n_print_stacktrace(ptr noundef %2405) #11
  %2407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2408 = trunc nuw i8 %2407 to i1
  br i1 %2408, label %2409, label %2413

2409:                                             ; preds = %2403
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = call i32 @fileno(ptr noundef %2410) #11
  %2412 = call i32 @isatty(i32 noundef %2411) #11
  %.not379 = icmp eq i32 %2412, 0
  br i1 %.not379, label %2413, label %2414

2413:                                             ; preds = %2409, %2403
  br label %2414

2414:                                             ; preds = %2409, %2413
  %.str.5.sink1220 = phi ptr [ @.str.5, %2413 ], [ @.str.2, %2409 ]
  store i32 %2404, ptr %409, align 4, !tbaa !5
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = load i32, ptr @test_count, align 4, !tbaa !5
  %2417 = load i32, ptr %355, align 4, !tbaa !5
  %2418 = call ptr @s2n_strerror(i32 noundef %2417, ptr noundef nonnull @.str.4) #11
  %2419 = load i32, ptr %355, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror_debug(i32 noundef %2419, ptr noundef nonnull @.str.4) #11
  %2421 = load i32, ptr %409, align 4, !tbaa !5
  %2422 = call ptr @strerror(i32 noundef %2421) #11
  %2423 = load i32, ptr %409, align 4, !tbaa !5
  %2424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2415, ptr noundef nonnull %.str.5.sink1220, i32 noundef %2416, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %2418, ptr noundef %2420, ptr noundef %2422, i32 noundef %2423) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2425:                                             ; preds = %2393
  %2426 = load ptr, ptr %22, align 8, !tbaa !9
  %2427 = getelementptr inbounds i8, ptr %2426, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %2427, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.client_verify_data, i64 19, i1 false)
  %2428 = getelementptr inbounds i8, ptr %2426, i64 2168
  store i8 19, ptr %2428, align 8, !tbaa !59
  %2429 = load ptr, ptr %23, align 8, !tbaa !9
  %2430 = getelementptr inbounds i8, ptr %2429, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %2430, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.client_verify_data, i64 19, i1 false)
  %2431 = getelementptr inbounds i8, ptr %2429, i64 2168
  store i8 19, ptr %2431, align 8, !tbaa !59
  %2432 = load i32, ptr @test_count, align 4, !tbaa !5
  %2433 = add nsw i32 %2432, 1
  store i32 %2433, ptr @test_count, align 4, !tbaa !5
  %2434 = call i32 %1982(ptr noundef %2426, ptr noundef nonnull %24) #11
  %2435 = icmp eq i32 %2434, -1
  br i1 %2435, label %2436, label %2458

2436:                                             ; preds = %2425
  %2437 = load i32, ptr %409, align 4, !tbaa !5
  %2438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2439 = call i32 @s2n_print_stacktrace(ptr noundef %2438) #11
  %2440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2441 = trunc nuw i8 %2440 to i1
  br i1 %2441, label %2442, label %2446

2442:                                             ; preds = %2436
  %2443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2444 = call i32 @fileno(ptr noundef %2443) #11
  %2445 = call i32 @isatty(i32 noundef %2444) #11
  %.not378 = icmp eq i32 %2445, 0
  br i1 %.not378, label %2446, label %2447

2446:                                             ; preds = %2442, %2436
  br label %2447

2447:                                             ; preds = %2442, %2446
  %.str.5.sink1229 = phi ptr [ @.str.5, %2446 ], [ @.str.2, %2442 ]
  store i32 %2437, ptr %409, align 4, !tbaa !5
  %2448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2449 = load i32, ptr @test_count, align 4, !tbaa !5
  %2450 = load i32, ptr %355, align 4, !tbaa !5
  %2451 = call ptr @s2n_strerror(i32 noundef %2450, ptr noundef nonnull @.str.4) #11
  %2452 = load i32, ptr %355, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror_debug(i32 noundef %2452, ptr noundef nonnull @.str.4) #11
  %2454 = load i32, ptr %409, align 4, !tbaa !5
  %2455 = call ptr @strerror(i32 noundef %2454) #11
  %2456 = load i32, ptr %409, align 4, !tbaa !5
  %2457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2448, ptr noundef nonnull %.str.5.sink1229, i32 noundef %2449, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2451, ptr noundef %2453, ptr noundef %2455, i32 noundef %2456) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2458:                                             ; preds = %2425
  %2459 = load i32, ptr @test_count, align 4, !tbaa !5
  %2460 = add nsw i32 %2459, 1
  store i32 %2460, ptr @test_count, align 4, !tbaa !5
  %2461 = load ptr, ptr %23, align 8, !tbaa !9
  %2462 = call i32 %325(ptr noundef %2461, ptr noundef nonnull %24) #11
  %2463 = icmp eq i32 %2462, -1
  br i1 %2463, label %2464, label %2486

2464:                                             ; preds = %2458
  %2465 = load i32, ptr %409, align 4, !tbaa !5
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = call i32 @s2n_print_stacktrace(ptr noundef %2466) #11
  %2468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2469 = trunc nuw i8 %2468 to i1
  br i1 %2469, label %2470, label %2474

2470:                                             ; preds = %2464
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = call i32 @fileno(ptr noundef %2471) #11
  %2473 = call i32 @isatty(i32 noundef %2472) #11
  %.not377 = icmp eq i32 %2473, 0
  br i1 %.not377, label %2474, label %2475

2474:                                             ; preds = %2470, %2464
  br label %2475

2475:                                             ; preds = %2470, %2474
  %.str.5.sink1238 = phi ptr [ @.str.5, %2474 ], [ @.str.2, %2470 ]
  store i32 %2465, ptr %409, align 4, !tbaa !5
  %2476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2477 = load i32, ptr @test_count, align 4, !tbaa !5
  %2478 = load i32, ptr %355, align 4, !tbaa !5
  %2479 = call ptr @s2n_strerror(i32 noundef %2478, ptr noundef nonnull @.str.4) #11
  %2480 = load i32, ptr %355, align 4, !tbaa !5
  %2481 = call ptr @s2n_strerror_debug(i32 noundef %2480, ptr noundef nonnull @.str.4) #11
  %2482 = load i32, ptr %409, align 4, !tbaa !5
  %2483 = call ptr @strerror(i32 noundef %2482) #11
  %2484 = load i32, ptr %409, align 4, !tbaa !5
  %2485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2476, ptr noundef nonnull %.str.5.sink1238, i32 noundef %2477, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %2479, ptr noundef %2481, ptr noundef %2483, i32 noundef %2484) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2486:                                             ; preds = %2458
  %2487 = load ptr, ptr %23, align 8, !tbaa !9
  %2488 = getelementptr inbounds i8, ptr %2487, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %2488, ptr noundef nonnull align 1 dereferenceable(12) @__const.main.bad_client_verify, i64 12, i1 false)
  %2489 = getelementptr inbounds i8, ptr %2487, i64 2168
  store i8 12, ptr %2489, align 8, !tbaa !59
  %2490 = load i32, ptr @test_count, align 4, !tbaa !5
  %2491 = add nsw i32 %2490, 1
  store i32 %2491, ptr @test_count, align 4, !tbaa !5
  %2492 = load ptr, ptr %22, align 8, !tbaa !9
  %2493 = call i32 %1982(ptr noundef %2492, ptr noundef nonnull %24) #11
  %2494 = icmp eq i32 %2493, -1
  br i1 %2494, label %2495, label %2517

2495:                                             ; preds = %2486
  %2496 = load i32, ptr %409, align 4, !tbaa !5
  %2497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2498 = call i32 @s2n_print_stacktrace(ptr noundef %2497) #11
  %2499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2500 = trunc nuw i8 %2499 to i1
  br i1 %2500, label %2501, label %2505

2501:                                             ; preds = %2495
  %2502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2503 = call i32 @fileno(ptr noundef %2502) #11
  %2504 = call i32 @isatty(i32 noundef %2503) #11
  %.not376 = icmp eq i32 %2504, 0
  br i1 %.not376, label %2505, label %2506

2505:                                             ; preds = %2501, %2495
  br label %2506

2506:                                             ; preds = %2501, %2505
  %.str.5.sink1247 = phi ptr [ @.str.5, %2505 ], [ @.str.2, %2501 ]
  store i32 %2496, ptr %409, align 4, !tbaa !5
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = load i32, ptr @test_count, align 4, !tbaa !5
  %2509 = load i32, ptr %355, align 4, !tbaa !5
  %2510 = call ptr @s2n_strerror(i32 noundef %2509, ptr noundef nonnull @.str.4) #11
  %2511 = load i32, ptr %355, align 4, !tbaa !5
  %2512 = call ptr @s2n_strerror_debug(i32 noundef %2511, ptr noundef nonnull @.str.4) #11
  %2513 = load i32, ptr %409, align 4, !tbaa !5
  %2514 = call ptr @strerror(i32 noundef %2513) #11
  %2515 = load i32, ptr %409, align 4, !tbaa !5
  %2516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2507, ptr noundef nonnull %.str.5.sink1247, i32 noundef %2508, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %2510, ptr noundef %2512, ptr noundef %2514, i32 noundef %2515) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2517:                                             ; preds = %2486
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = add nsw i32 %2518, 1
  store i32 %2519, ptr @test_count, align 4, !tbaa !5
  %2520 = load ptr, ptr %23, align 8, !tbaa !9
  %2521 = call i32 %325(ptr noundef %2520, ptr noundef nonnull %24) #11
  %2522 = icmp eq i32 %2521, -1
  br i1 %2522, label %2545, label %2523

2523:                                             ; preds = %2517
  %2524 = load i32, ptr %409, align 4, !tbaa !5
  %2525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2526 = call i32 @s2n_print_stacktrace(ptr noundef %2525) #11
  %2527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2528 = trunc nuw i8 %2527 to i1
  br i1 %2528, label %2529, label %2533

2529:                                             ; preds = %2523
  %2530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2531 = call i32 @fileno(ptr noundef %2530) #11
  %2532 = call i32 @isatty(i32 noundef %2531) #11
  %.not343 = icmp eq i32 %2532, 0
  br i1 %.not343, label %2533, label %2534

2533:                                             ; preds = %2529, %2523
  br label %2534

2534:                                             ; preds = %2529, %2533
  %.str.5.sink1256 = phi ptr [ @.str.5, %2533 ], [ @.str.2, %2529 ]
  store i32 %2524, ptr %409, align 4, !tbaa !5
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = load i32, ptr @test_count, align 4, !tbaa !5
  %2537 = load i32, ptr %355, align 4, !tbaa !5
  %2538 = call ptr @s2n_strerror(i32 noundef %2537, ptr noundef nonnull @.str.4) #11
  %2539 = load i32, ptr %355, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror_debug(i32 noundef %2539, ptr noundef nonnull @.str.4) #11
  %2541 = load i32, ptr %409, align 4, !tbaa !5
  %2542 = call ptr @strerror(i32 noundef %2541) #11
  %2543 = load i32, ptr %409, align 4, !tbaa !5
  %2544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2535, ptr noundef nonnull %.str.5.sink1256, i32 noundef %2536, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %2538, ptr noundef %2540, ptr noundef %2542, i32 noundef %2543) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2545:                                             ; preds = %2517
  %2546 = load i32, ptr @test_count, align 4, !tbaa !5
  %2547 = add nsw i32 %2546, 1
  store i32 %2547, ptr @test_count, align 4, !tbaa !5
  %2548 = load i32, ptr %355, align 4, !tbaa !5
  %2549 = icmp eq i32 %2548, 335544322
  br i1 %2549, label %2572, label %2550

2550:                                             ; preds = %2545
  %2551 = load i32, ptr %409, align 4, !tbaa !5
  %2552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2553 = call i32 @s2n_print_stacktrace(ptr noundef %2552) #11
  %2554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2555 = trunc nuw i8 %2554 to i1
  br i1 %2555, label %2556, label %2560

2556:                                             ; preds = %2550
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = call i32 @fileno(ptr noundef %2557) #11
  %2559 = call i32 @isatty(i32 noundef %2558) #11
  %.not344 = icmp eq i32 %2559, 0
  br i1 %.not344, label %2560, label %2561

2560:                                             ; preds = %2556, %2550
  br label %2561

2561:                                             ; preds = %2556, %2560
  %.str.5.sink1265 = phi ptr [ @.str.5, %2560 ], [ @.str.2, %2556 ]
  store i32 %2551, ptr %409, align 4, !tbaa !5
  %2562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2563 = load i32, ptr @test_count, align 4, !tbaa !5
  %2564 = load i32, ptr %355, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror(i32 noundef %2564, ptr noundef nonnull @.str.4) #11
  %2566 = load i32, ptr %355, align 4, !tbaa !5
  %2567 = call ptr @s2n_strerror_debug(i32 noundef %2566, ptr noundef nonnull @.str.4) #11
  %2568 = load i32, ptr %409, align 4, !tbaa !5
  %2569 = call ptr @strerror(i32 noundef %2568) #11
  %2570 = load i32, ptr %409, align 4, !tbaa !5
  %2571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2562, ptr noundef nonnull %.str.5.sink1265, i32 noundef %2563, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %2565, ptr noundef %2567, ptr noundef %2569, i32 noundef %2570) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2572:                                             ; preds = %2545
  %2573 = add nsw i32 %2546, 2
  store i32 %2573, ptr @test_count, align 4, !tbaa !5
  %2574 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %2575 = icmp eq ptr %2574, null
  br i1 %2575, label %2576, label %2598

2576:                                             ; preds = %2572
  %2577 = load i32, ptr %409, align 4, !tbaa !5
  %2578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2579 = call i32 @s2n_print_stacktrace(ptr noundef %2578) #11
  %2580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2581 = trunc nuw i8 %2580 to i1
  br i1 %2581, label %2582, label %2586

2582:                                             ; preds = %2576
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @fileno(ptr noundef %2583) #11
  %2585 = call i32 @isatty(i32 noundef %2584) #11
  %.not375 = icmp eq i32 %2585, 0
  br i1 %.not375, label %2586, label %2587

2586:                                             ; preds = %2582, %2576
  br label %2587

2587:                                             ; preds = %2582, %2586
  %.str.5.sink1274 = phi ptr [ @.str.5, %2586 ], [ @.str.2, %2582 ]
  store i32 %2577, ptr %409, align 4, !tbaa !5
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = load i32, ptr @test_count, align 4, !tbaa !5
  %2590 = load i32, ptr %355, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror(i32 noundef %2590, ptr noundef nonnull @.str.4) #11
  %2592 = load i32, ptr %355, align 4, !tbaa !5
  %2593 = call ptr @s2n_strerror_debug(i32 noundef %2592, ptr noundef nonnull @.str.4) #11
  %2594 = load i32, ptr %409, align 4, !tbaa !5
  %2595 = call ptr @strerror(i32 noundef %2594) #11
  %2596 = load i32, ptr %409, align 4, !tbaa !5
  %2597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2588, ptr noundef nonnull %.str.5.sink1274, i32 noundef %2589, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %2591, ptr noundef %2593, ptr noundef %2595, i32 noundef %2596) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2598:                                             ; preds = %2572
  store i32 0, ptr %355, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %409, align 4, !tbaa !5
  %2599 = load ptr, ptr %23, align 8, !tbaa !9
  %2600 = load i32, ptr %2599, align 8
  %2601 = and i32 %2600, -9
  store i32 %2601, ptr %2599, align 8
  %2602 = load ptr, ptr %23, align 8, !tbaa !9
  %2603 = getelementptr inbounds i8, ptr %2602, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %2603, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.client_verify_data, i64 19, i1 false)
  %2604 = getelementptr inbounds i8, ptr %2602, i64 2168
  store i8 19, ptr %2604, align 8, !tbaa !59
  %2605 = load i32, ptr @test_count, align 4, !tbaa !5
  %2606 = add nsw i32 %2605, 1
  store i32 %2606, ptr @test_count, align 4, !tbaa !5
  %2607 = load ptr, ptr %22, align 8, !tbaa !9
  %2608 = call i32 %1982(ptr noundef %2607, ptr noundef nonnull %24) #11
  %2609 = icmp eq i32 %2608, -1
  br i1 %2609, label %2610, label %2632

2610:                                             ; preds = %2598
  %2611 = load i32, ptr %409, align 4, !tbaa !5
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = call i32 @s2n_print_stacktrace(ptr noundef %2612) #11
  %2614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2615 = trunc nuw i8 %2614 to i1
  br i1 %2615, label %2616, label %2620

2616:                                             ; preds = %2610
  %2617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2618 = call i32 @fileno(ptr noundef %2617) #11
  %2619 = call i32 @isatty(i32 noundef %2618) #11
  %.not374 = icmp eq i32 %2619, 0
  br i1 %.not374, label %2620, label %2621

2620:                                             ; preds = %2616, %2610
  br label %2621

2621:                                             ; preds = %2616, %2620
  %.str.5.sink1283 = phi ptr [ @.str.5, %2620 ], [ @.str.2, %2616 ]
  store i32 %2611, ptr %409, align 4, !tbaa !5
  %2622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2623 = load i32, ptr @test_count, align 4, !tbaa !5
  %2624 = load i32, ptr %355, align 4, !tbaa !5
  %2625 = call ptr @s2n_strerror(i32 noundef %2624, ptr noundef nonnull @.str.4) #11
  %2626 = load i32, ptr %355, align 4, !tbaa !5
  %2627 = call ptr @s2n_strerror_debug(i32 noundef %2626, ptr noundef nonnull @.str.4) #11
  %2628 = load i32, ptr %409, align 4, !tbaa !5
  %2629 = call ptr @strerror(i32 noundef %2628) #11
  %2630 = load i32, ptr %409, align 4, !tbaa !5
  %2631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2622, ptr noundef nonnull %.str.5.sink1283, i32 noundef %2623, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %2625, ptr noundef %2627, ptr noundef %2629, i32 noundef %2630) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2632:                                             ; preds = %2598
  %2633 = load i32, ptr @test_count, align 4, !tbaa !5
  %2634 = add nsw i32 %2633, 1
  store i32 %2634, ptr @test_count, align 4, !tbaa !5
  %2635 = load ptr, ptr %23, align 8, !tbaa !9
  %2636 = call i32 %325(ptr noundef %2635, ptr noundef nonnull %24) #11
  %2637 = icmp eq i32 %2636, -1
  br i1 %2637, label %2660, label %2638

2638:                                             ; preds = %2632
  %2639 = load i32, ptr %409, align 4, !tbaa !5
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = call i32 @s2n_print_stacktrace(ptr noundef %2640) #11
  %2642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2643 = trunc nuw i8 %2642 to i1
  br i1 %2643, label %2644, label %2648

2644:                                             ; preds = %2638
  %2645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2646 = call i32 @fileno(ptr noundef %2645) #11
  %2647 = call i32 @isatty(i32 noundef %2646) #11
  %.not345 = icmp eq i32 %2647, 0
  br i1 %.not345, label %2648, label %2649

2648:                                             ; preds = %2644, %2638
  br label %2649

2649:                                             ; preds = %2644, %2648
  %.str.5.sink1292 = phi ptr [ @.str.5, %2648 ], [ @.str.2, %2644 ]
  store i32 %2639, ptr %409, align 4, !tbaa !5
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = load i32, ptr @test_count, align 4, !tbaa !5
  %2652 = load i32, ptr %355, align 4, !tbaa !5
  %2653 = call ptr @s2n_strerror(i32 noundef %2652, ptr noundef nonnull @.str.4) #11
  %2654 = load i32, ptr %355, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror_debug(i32 noundef %2654, ptr noundef nonnull @.str.4) #11
  %2656 = load i32, ptr %409, align 4, !tbaa !5
  %2657 = call ptr @strerror(i32 noundef %2656) #11
  %2658 = load i32, ptr %409, align 4, !tbaa !5
  %2659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2650, ptr noundef nonnull %.str.5.sink1292, i32 noundef %2651, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %2653, ptr noundef %2655, ptr noundef %2657, i32 noundef %2658) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2660:                                             ; preds = %2632
  %2661 = load i32, ptr @test_count, align 4, !tbaa !5
  %2662 = add nsw i32 %2661, 1
  store i32 %2662, ptr @test_count, align 4, !tbaa !5
  %2663 = load i32, ptr %355, align 4, !tbaa !5
  %2664 = icmp eq i32 %2663, 335544398
  br i1 %2664, label %2687, label %2665

2665:                                             ; preds = %2660
  %2666 = load i32, ptr %409, align 4, !tbaa !5
  %2667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2668 = call i32 @s2n_print_stacktrace(ptr noundef %2667) #11
  %2669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2670 = trunc nuw i8 %2669 to i1
  br i1 %2670, label %2671, label %2675

2671:                                             ; preds = %2665
  %2672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2673 = call i32 @fileno(ptr noundef %2672) #11
  %2674 = call i32 @isatty(i32 noundef %2673) #11
  %.not346 = icmp eq i32 %2674, 0
  br i1 %.not346, label %2675, label %2676

2675:                                             ; preds = %2671, %2665
  br label %2676

2676:                                             ; preds = %2671, %2675
  %.str.5.sink1301 = phi ptr [ @.str.5, %2675 ], [ @.str.2, %2671 ]
  store i32 %2666, ptr %409, align 4, !tbaa !5
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = load i32, ptr @test_count, align 4, !tbaa !5
  %2679 = load i32, ptr %355, align 4, !tbaa !5
  %2680 = call ptr @s2n_strerror(i32 noundef %2679, ptr noundef nonnull @.str.4) #11
  %2681 = load i32, ptr %355, align 4, !tbaa !5
  %2682 = call ptr @s2n_strerror_debug(i32 noundef %2681, ptr noundef nonnull @.str.4) #11
  %2683 = load i32, ptr %409, align 4, !tbaa !5
  %2684 = call ptr @strerror(i32 noundef %2683) #11
  %2685 = load i32, ptr %409, align 4, !tbaa !5
  %2686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2677, ptr noundef nonnull %.str.5.sink1301, i32 noundef %2678, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %2680, ptr noundef %2682, ptr noundef %2684, i32 noundef %2685) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2687:                                             ; preds = %2660
  %2688 = add nsw i32 %2661, 2
  store i32 %2688, ptr @test_count, align 4, !tbaa !5
  %2689 = call ptr @s2n_strerror_debug(i32 noundef 335544398, ptr noundef nonnull @.str.4) #11
  %2690 = icmp eq ptr %2689, null
  br i1 %2690, label %2691, label %2713

2691:                                             ; preds = %2687
  %2692 = load i32, ptr %409, align 4, !tbaa !5
  %2693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2694 = call i32 @s2n_print_stacktrace(ptr noundef %2693) #11
  %2695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2696 = trunc nuw i8 %2695 to i1
  br i1 %2696, label %2697, label %2701

2697:                                             ; preds = %2691
  %2698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2699 = call i32 @fileno(ptr noundef %2698) #11
  %2700 = call i32 @isatty(i32 noundef %2699) #11
  %.not373 = icmp eq i32 %2700, 0
  br i1 %.not373, label %2701, label %2702

2701:                                             ; preds = %2697, %2691
  br label %2702

2702:                                             ; preds = %2697, %2701
  %.str.5.sink1310 = phi ptr [ @.str.5, %2701 ], [ @.str.2, %2697 ]
  store i32 %2692, ptr %409, align 4, !tbaa !5
  %2703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2704 = load i32, ptr @test_count, align 4, !tbaa !5
  %2705 = load i32, ptr %355, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror(i32 noundef %2705, ptr noundef nonnull @.str.4) #11
  %2707 = load i32, ptr %355, align 4, !tbaa !5
  %2708 = call ptr @s2n_strerror_debug(i32 noundef %2707, ptr noundef nonnull @.str.4) #11
  %2709 = load i32, ptr %409, align 4, !tbaa !5
  %2710 = call ptr @strerror(i32 noundef %2709) #11
  %2711 = load i32, ptr %409, align 4, !tbaa !5
  %2712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2703, ptr noundef nonnull %.str.5.sink1310, i32 noundef %2704, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %2706, ptr noundef %2708, ptr noundef %2710, i32 noundef %2711) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2713:                                             ; preds = %2687
  store i32 0, ptr %355, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %409, align 4, !tbaa !5
  %2714 = call i32 @s2n_stuffer_free(ptr noundef nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #11
  %2715 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  %2716 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  %2717 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %2717, ptr %25, align 8, !tbaa !9
  %2718 = load i32, ptr @test_count, align 4, !tbaa !5
  %2719 = add nsw i32 %2718, 1
  store i32 %2719, ptr @test_count, align 4, !tbaa !5
  %2720 = icmp eq ptr %2717, null
  br i1 %2720, label %2721, label %2743

2721:                                             ; preds = %2713
  %2722 = load i32, ptr %409, align 4, !tbaa !5
  %2723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2724 = call i32 @s2n_print_stacktrace(ptr noundef %2723) #11
  %2725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2726 = trunc nuw i8 %2725 to i1
  br i1 %2726, label %2727, label %2731

2727:                                             ; preds = %2721
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = call i32 @fileno(ptr noundef %2728) #11
  %2730 = call i32 @isatty(i32 noundef %2729) #11
  %.not372 = icmp eq i32 %2730, 0
  br i1 %.not372, label %2731, label %2732

2731:                                             ; preds = %2727, %2721
  br label %2732

2732:                                             ; preds = %2727, %2731
  %.str.5.sink1319 = phi ptr [ @.str.5, %2731 ], [ @.str.2, %2727 ]
  store i32 %2722, ptr %409, align 4, !tbaa !5
  %2733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2734 = load i32, ptr @test_count, align 4, !tbaa !5
  %2735 = load i32, ptr %355, align 4, !tbaa !5
  %2736 = call ptr @s2n_strerror(i32 noundef %2735, ptr noundef nonnull @.str.4) #11
  %2737 = load i32, ptr %355, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror_debug(i32 noundef %2737, ptr noundef nonnull @.str.4) #11
  %2739 = load i32, ptr %409, align 4, !tbaa !5
  %2740 = call ptr @strerror(i32 noundef %2739) #11
  %2741 = load i32, ptr %409, align 4, !tbaa !5
  %2742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2733, ptr noundef nonnull %.str.5.sink1319, i32 noundef %2734, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %2736, ptr noundef %2738, ptr noundef %2740, i32 noundef %2741) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2743:                                             ; preds = %2713
  %2744 = getelementptr inbounds i8, ptr %2717, i64 2200
  %2745 = load i8, ptr %2744, align 8
  %2746 = and i8 %2745, -9
  store i8 %2746, ptr %2744, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #11
  %2747 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2747, ptr %26, align 8, !tbaa !9
  %2748 = load i32, ptr @test_count, align 4, !tbaa !5
  %2749 = add nsw i32 %2748, 1
  store i32 %2749, ptr @test_count, align 4, !tbaa !5
  %2750 = icmp eq ptr %2747, null
  br i1 %2750, label %2751, label %2773

2751:                                             ; preds = %2743
  %2752 = load i32, ptr %409, align 4, !tbaa !5
  %2753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2754 = call i32 @s2n_print_stacktrace(ptr noundef %2753) #11
  %2755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2756 = trunc nuw i8 %2755 to i1
  br i1 %2756, label %2757, label %2761

2757:                                             ; preds = %2751
  %2758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2759 = call i32 @fileno(ptr noundef %2758) #11
  %2760 = call i32 @isatty(i32 noundef %2759) #11
  %.not371 = icmp eq i32 %2760, 0
  br i1 %.not371, label %2761, label %2762

2761:                                             ; preds = %2757, %2751
  br label %2762

2762:                                             ; preds = %2757, %2761
  %.str.5.sink1328 = phi ptr [ @.str.5, %2761 ], [ @.str.2, %2757 ]
  store i32 %2752, ptr %409, align 4, !tbaa !5
  %2763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2764 = load i32, ptr @test_count, align 4, !tbaa !5
  %2765 = load i32, ptr %355, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror(i32 noundef %2765, ptr noundef nonnull @.str.4) #11
  %2767 = load i32, ptr %355, align 4, !tbaa !5
  %2768 = call ptr @s2n_strerror_debug(i32 noundef %2767, ptr noundef nonnull @.str.4) #11
  %2769 = load i32, ptr %409, align 4, !tbaa !5
  %2770 = call ptr @strerror(i32 noundef %2769) #11
  %2771 = load i32, ptr %409, align 4, !tbaa !5
  %2772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2763, ptr noundef nonnull %.str.5.sink1328, i32 noundef %2764, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 403, ptr noundef %2766, ptr noundef %2768, ptr noundef %2770, i32 noundef %2771) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2773:                                             ; preds = %2743
  %2774 = getelementptr inbounds i8, ptr %2747, i64 2200
  %2775 = load i8, ptr %2774, align 8
  %2776 = or i8 %2775, 8
  store i8 %2776, ptr %2774, align 8
  %2777 = load i32, ptr %2747, align 8
  %2778 = or i32 %2777, 8
  store i32 %2778, ptr %2747, align 8
  %2779 = load i32, ptr @test_count, align 4, !tbaa !5
  %2780 = add nsw i32 %2779, 1
  store i32 %2780, ptr @test_count, align 4, !tbaa !5
  %2781 = load ptr, ptr %25, align 8, !tbaa !9
  %2782 = call i32 @s2n_client_hello_send(ptr noundef %2781) #11
  %2783 = icmp eq i32 %2782, -1
  br i1 %2783, label %2784, label %2806

2784:                                             ; preds = %2773
  %2785 = load i32, ptr %409, align 4, !tbaa !5
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = call i32 @s2n_print_stacktrace(ptr noundef %2786) #11
  %2788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2789 = trunc nuw i8 %2788 to i1
  br i1 %2789, label %2790, label %2794

2790:                                             ; preds = %2784
  %2791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2792 = call i32 @fileno(ptr noundef %2791) #11
  %2793 = call i32 @isatty(i32 noundef %2792) #11
  %.not370 = icmp eq i32 %2793, 0
  br i1 %.not370, label %2794, label %2795

2794:                                             ; preds = %2790, %2784
  br label %2795

2795:                                             ; preds = %2790, %2794
  %.str.5.sink1337 = phi ptr [ @.str.5, %2794 ], [ @.str.2, %2790 ]
  store i32 %2785, ptr %409, align 4, !tbaa !5
  %2796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2797 = load i32, ptr @test_count, align 4, !tbaa !5
  %2798 = load i32, ptr %355, align 4, !tbaa !5
  %2799 = call ptr @s2n_strerror(i32 noundef %2798, ptr noundef nonnull @.str.4) #11
  %2800 = load i32, ptr %355, align 4, !tbaa !5
  %2801 = call ptr @s2n_strerror_debug(i32 noundef %2800, ptr noundef nonnull @.str.4) #11
  %2802 = load i32, ptr %409, align 4, !tbaa !5
  %2803 = call ptr @strerror(i32 noundef %2802) #11
  %2804 = load i32, ptr %409, align 4, !tbaa !5
  %2805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2796, ptr noundef nonnull %.str.5.sink1337, i32 noundef %2797, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %2799, ptr noundef %2801, ptr noundef %2803, i32 noundef %2804) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2806:                                             ; preds = %2773
  %2807 = load i32, ptr @test_count, align 4, !tbaa !5
  %2808 = add nsw i32 %2807, 1
  store i32 %2808, ptr @test_count, align 4, !tbaa !5
  %2809 = load ptr, ptr %25, align 8, !tbaa !9
  %2810 = getelementptr inbounds i8, ptr %2809, i64 2016
  %2811 = load ptr, ptr %26, align 8, !tbaa !9
  %2812 = getelementptr inbounds i8, ptr %2811, i64 2016
  %2813 = getelementptr inbounds i8, ptr %2809, i64 2044
  %2814 = load i32, ptr %2813, align 4, !tbaa !45
  %2815 = getelementptr inbounds i8, ptr %2809, i64 2040
  %2816 = load i32, ptr %2815, align 8, !tbaa !46
  %2817 = sub i32 %2814, %2816
  %2818 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %2810, ptr noundef nonnull %2812, i32 noundef %2817) #11
  %2819 = icmp eq i32 %2818, -1
  br i1 %2819, label %2820, label %2842

2820:                                             ; preds = %2806
  %2821 = load i32, ptr %409, align 4, !tbaa !5
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = call i32 @s2n_print_stacktrace(ptr noundef %2822) #11
  %2824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2825 = trunc nuw i8 %2824 to i1
  br i1 %2825, label %2826, label %2830

2826:                                             ; preds = %2820
  %2827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2828 = call i32 @fileno(ptr noundef %2827) #11
  %2829 = call i32 @isatty(i32 noundef %2828) #11
  %.not369 = icmp eq i32 %2829, 0
  br i1 %.not369, label %2830, label %2831

2830:                                             ; preds = %2826, %2820
  br label %2831

2831:                                             ; preds = %2826, %2830
  %.str.5.sink1346 = phi ptr [ @.str.5, %2830 ], [ @.str.2, %2826 ]
  store i32 %2821, ptr %409, align 4, !tbaa !5
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = load i32, ptr @test_count, align 4, !tbaa !5
  %2834 = load i32, ptr %355, align 4, !tbaa !5
  %2835 = call ptr @s2n_strerror(i32 noundef %2834, ptr noundef nonnull @.str.4) #11
  %2836 = load i32, ptr %355, align 4, !tbaa !5
  %2837 = call ptr @s2n_strerror_debug(i32 noundef %2836, ptr noundef nonnull @.str.4) #11
  %2838 = load i32, ptr %409, align 4, !tbaa !5
  %2839 = call ptr @strerror(i32 noundef %2838) #11
  %2840 = load i32, ptr %409, align 4, !tbaa !5
  %2841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2832, ptr noundef nonnull %.str.5.sink1346, i32 noundef %2833, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 409, ptr noundef %2835, ptr noundef %2837, ptr noundef %2839, i32 noundef %2840) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2842:                                             ; preds = %2806
  %2843 = load i32, ptr @test_count, align 4, !tbaa !5
  %2844 = add nsw i32 %2843, 1
  store i32 %2844, ptr @test_count, align 4, !tbaa !5
  %2845 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_renegotiation_info_extension, i64 32), align 8, !tbaa !62
  %2846 = load ptr, ptr %26, align 8, !tbaa !9
  %2847 = call i32 %2845(ptr noundef %2846) #11
  %2848 = icmp eq i32 %2847, -1
  br i1 %2848, label %2871, label %2849

2849:                                             ; preds = %2842
  %2850 = load i32, ptr %409, align 4, !tbaa !5
  %2851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2852 = call i32 @s2n_print_stacktrace(ptr noundef %2851) #11
  %2853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2854 = trunc nuw i8 %2853 to i1
  br i1 %2854, label %2855, label %2859

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

2859:                                             ; preds = %2855, %2849
  br label %2860

2860:                                             ; preds = %2855, %2859
  %.str.5.sink1355 = phi ptr [ @.str.5, %2859 ], [ @.str.2, %2855 ]
  store i32 %2850, ptr %409, align 4, !tbaa !5
  %2861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2862 = load i32, ptr @test_count, align 4, !tbaa !5
  %2863 = load i32, ptr %355, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror(i32 noundef %2863, ptr noundef nonnull @.str.4) #11
  %2865 = load i32, ptr %355, align 4, !tbaa !5
  %2866 = call ptr @s2n_strerror_debug(i32 noundef %2865, ptr noundef nonnull @.str.4) #11
  %2867 = load i32, ptr %409, align 4, !tbaa !5
  %2868 = call ptr @strerror(i32 noundef %2867) #11
  %2869 = load i32, ptr %409, align 4, !tbaa !5
  %2870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2861, ptr noundef nonnull %.str.5.sink1355, i32 noundef %2862, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %2864, ptr noundef %2866, ptr noundef %2868, i32 noundef %2869) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2871:                                             ; preds = %2842
  %2872 = load i32, ptr @test_count, align 4, !tbaa !5
  %2873 = add nsw i32 %2872, 1
  store i32 %2873, ptr @test_count, align 4, !tbaa !5
  %2874 = load i32, ptr %355, align 4, !tbaa !5
  %2875 = icmp eq i32 %2874, 335544393
  br i1 %2875, label %2898, label %2876

2876:                                             ; preds = %2871
  %2877 = load i32, ptr %409, align 4, !tbaa !5
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = call i32 @s2n_print_stacktrace(ptr noundef %2878) #11
  %2880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2881 = trunc nuw i8 %2880 to i1
  br i1 %2881, label %2882, label %2886

2882:                                             ; preds = %2876
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = call i32 @fileno(ptr noundef %2883) #11
  %2885 = call i32 @isatty(i32 noundef %2884) #11
  %.not348 = icmp eq i32 %2885, 0
  br i1 %.not348, label %2886, label %2887

2886:                                             ; preds = %2882, %2876
  br label %2887

2887:                                             ; preds = %2882, %2886
  %.str.5.sink1364 = phi ptr [ @.str.5, %2886 ], [ @.str.2, %2882 ]
  store i32 %2877, ptr %409, align 4, !tbaa !5
  %2888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2889 = load i32, ptr @test_count, align 4, !tbaa !5
  %2890 = load i32, ptr %355, align 4, !tbaa !5
  %2891 = call ptr @s2n_strerror(i32 noundef %2890, ptr noundef nonnull @.str.4) #11
  %2892 = load i32, ptr %355, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror_debug(i32 noundef %2892, ptr noundef nonnull @.str.4) #11
  %2894 = load i32, ptr %409, align 4, !tbaa !5
  %2895 = call ptr @strerror(i32 noundef %2894) #11
  %2896 = load i32, ptr %409, align 4, !tbaa !5
  %2897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2888, ptr noundef nonnull %.str.5.sink1364, i32 noundef %2889, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %2891, ptr noundef %2893, ptr noundef %2895, i32 noundef %2896) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2898:                                             ; preds = %2871
  %2899 = add nsw i32 %2872, 2
  store i32 %2899, ptr @test_count, align 4, !tbaa !5
  %2900 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #11
  %2901 = icmp eq ptr %2900, null
  br i1 %2901, label %2902, label %2924

2902:                                             ; preds = %2898
  %2903 = load i32, ptr %409, align 4, !tbaa !5
  %2904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2905 = call i32 @s2n_print_stacktrace(ptr noundef %2904) #11
  %2906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2907 = trunc nuw i8 %2906 to i1
  br i1 %2907, label %2908, label %2912

2908:                                             ; preds = %2902
  %2909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2910 = call i32 @fileno(ptr noundef %2909) #11
  %2911 = call i32 @isatty(i32 noundef %2910) #11
  %.not368 = icmp eq i32 %2911, 0
  br i1 %.not368, label %2912, label %2913

2912:                                             ; preds = %2908, %2902
  br label %2913

2913:                                             ; preds = %2908, %2912
  %.str.5.sink1373 = phi ptr [ @.str.5, %2912 ], [ @.str.2, %2908 ]
  store i32 %2903, ptr %409, align 4, !tbaa !5
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = load i32, ptr @test_count, align 4, !tbaa !5
  %2916 = load i32, ptr %355, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror(i32 noundef %2916, ptr noundef nonnull @.str.4) #11
  %2918 = load i32, ptr %355, align 4, !tbaa !5
  %2919 = call ptr @s2n_strerror_debug(i32 noundef %2918, ptr noundef nonnull @.str.4) #11
  %2920 = load i32, ptr %409, align 4, !tbaa !5
  %2921 = call ptr @strerror(i32 noundef %2920) #11
  %2922 = load i32, ptr %409, align 4, !tbaa !5
  %2923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2914, ptr noundef nonnull %.str.5.sink1373, i32 noundef %2915, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %2917, ptr noundef %2919, ptr noundef %2921, i32 noundef %2922) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2924:                                             ; preds = %2898
  store i32 0, ptr %355, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %409, align 4, !tbaa !5
  %2925 = load i32, ptr @test_count, align 4, !tbaa !5
  %2926 = add nsw i32 %2925, 1
  store i32 %2926, ptr @test_count, align 4, !tbaa !5
  %2927 = load ptr, ptr %26, align 8, !tbaa !9
  %2928 = call i32 @s2n_client_hello_recv(ptr noundef %2927) #11
  %2929 = icmp eq i32 %2928, -1
  br i1 %2929, label %2952, label %2930

2930:                                             ; preds = %2924
  %2931 = load i32, ptr %409, align 4, !tbaa !5
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = call i32 @s2n_print_stacktrace(ptr noundef %2932) #11
  %2934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2935 = trunc nuw i8 %2934 to i1
  br i1 %2935, label %2936, label %2940

2936:                                             ; preds = %2930
  %2937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2938 = call i32 @fileno(ptr noundef %2937) #11
  %2939 = call i32 @isatty(i32 noundef %2938) #11
  %.not349 = icmp eq i32 %2939, 0
  br i1 %.not349, label %2940, label %2941

2940:                                             ; preds = %2936, %2930
  br label %2941

2941:                                             ; preds = %2936, %2940
  %.str.5.sink1382 = phi ptr [ @.str.5, %2940 ], [ @.str.2, %2936 ]
  store i32 %2931, ptr %409, align 4, !tbaa !5
  %2942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2943 = load i32, ptr @test_count, align 4, !tbaa !5
  %2944 = load i32, ptr %355, align 4, !tbaa !5
  %2945 = call ptr @s2n_strerror(i32 noundef %2944, ptr noundef nonnull @.str.4) #11
  %2946 = load i32, ptr %355, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror_debug(i32 noundef %2946, ptr noundef nonnull @.str.4) #11
  %2948 = load i32, ptr %409, align 4, !tbaa !5
  %2949 = call ptr @strerror(i32 noundef %2948) #11
  %2950 = load i32, ptr %409, align 4, !tbaa !5
  %2951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2942, ptr noundef nonnull %.str.5.sink1382, i32 noundef %2943, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %2945, ptr noundef %2947, ptr noundef %2949, i32 noundef %2950) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2952:                                             ; preds = %2924
  %2953 = load i32, ptr @test_count, align 4, !tbaa !5
  %2954 = add nsw i32 %2953, 1
  store i32 %2954, ptr @test_count, align 4, !tbaa !5
  %2955 = load i32, ptr %355, align 4, !tbaa !5
  %2956 = icmp eq i32 %2955, 335544393
  br i1 %2956, label %2979, label %2957

2957:                                             ; preds = %2952
  %2958 = load i32, ptr %409, align 4, !tbaa !5
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = call i32 @s2n_print_stacktrace(ptr noundef %2959) #11
  %2961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2962 = trunc nuw i8 %2961 to i1
  br i1 %2962, label %2963, label %2967

2963:                                             ; preds = %2957
  %2964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2965 = call i32 @fileno(ptr noundef %2964) #11
  %2966 = call i32 @isatty(i32 noundef %2965) #11
  %.not350 = icmp eq i32 %2966, 0
  br i1 %.not350, label %2967, label %2968

2967:                                             ; preds = %2963, %2957
  br label %2968

2968:                                             ; preds = %2963, %2967
  %.str.5.sink1391 = phi ptr [ @.str.5, %2967 ], [ @.str.2, %2963 ]
  store i32 %2958, ptr %409, align 4, !tbaa !5
  %2969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2970 = load i32, ptr @test_count, align 4, !tbaa !5
  %2971 = load i32, ptr %355, align 4, !tbaa !5
  %2972 = call ptr @s2n_strerror(i32 noundef %2971, ptr noundef nonnull @.str.4) #11
  %2973 = load i32, ptr %355, align 4, !tbaa !5
  %2974 = call ptr @s2n_strerror_debug(i32 noundef %2973, ptr noundef nonnull @.str.4) #11
  %2975 = load i32, ptr %409, align 4, !tbaa !5
  %2976 = call ptr @strerror(i32 noundef %2975) #11
  %2977 = load i32, ptr %409, align 4, !tbaa !5
  %2978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2969, ptr noundef nonnull %.str.5.sink1391, i32 noundef %2970, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %2972, ptr noundef %2974, ptr noundef %2976, i32 noundef %2977) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2979:                                             ; preds = %2952
  %2980 = add nsw i32 %2953, 2
  store i32 %2980, ptr @test_count, align 4, !tbaa !5
  %2981 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #11
  %2982 = icmp eq ptr %2981, null
  br i1 %2982, label %2983, label %3005

2983:                                             ; preds = %2979
  %2984 = load i32, ptr %409, align 4, !tbaa !5
  %2985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2986 = call i32 @s2n_print_stacktrace(ptr noundef %2985) #11
  %2987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2988 = trunc nuw i8 %2987 to i1
  br i1 %2988, label %2989, label %2993

2989:                                             ; preds = %2983
  %2990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2991 = call i32 @fileno(ptr noundef %2990) #11
  %2992 = call i32 @isatty(i32 noundef %2991) #11
  %.not367 = icmp eq i32 %2992, 0
  br i1 %.not367, label %2993, label %2994

2993:                                             ; preds = %2989, %2983
  br label %2994

2994:                                             ; preds = %2989, %2993
  %.str.5.sink1400 = phi ptr [ @.str.5, %2993 ], [ @.str.2, %2989 ]
  store i32 %2984, ptr %409, align 4, !tbaa !5
  %2995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2996 = load i32, ptr @test_count, align 4, !tbaa !5
  %2997 = load i32, ptr %355, align 4, !tbaa !5
  %2998 = call ptr @s2n_strerror(i32 noundef %2997, ptr noundef nonnull @.str.4) #11
  %2999 = load i32, ptr %355, align 4, !tbaa !5
  %3000 = call ptr @s2n_strerror_debug(i32 noundef %2999, ptr noundef nonnull @.str.4) #11
  %3001 = load i32, ptr %409, align 4, !tbaa !5
  %3002 = call ptr @strerror(i32 noundef %3001) #11
  %3003 = load i32, ptr %409, align 4, !tbaa !5
  %3004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2995, ptr noundef nonnull %.str.5.sink1400, i32 noundef %2996, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %2998, ptr noundef %3000, ptr noundef %3002, i32 noundef %3003) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3005:                                             ; preds = %2979
  store i32 0, ptr %355, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %409, align 4, !tbaa !5
  %3006 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #11
  %3007 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #11
  %3008 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %3008, ptr %27, align 8, !tbaa !9
  %3009 = load i32, ptr @test_count, align 4, !tbaa !5
  %3010 = add nsw i32 %3009, 1
  store i32 %3010, ptr @test_count, align 4, !tbaa !5
  %3011 = icmp eq ptr %3008, null
  br i1 %3011, label %3012, label %3034

3012:                                             ; preds = %3005
  %3013 = load i32, ptr %409, align 4, !tbaa !5
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = call i32 @s2n_print_stacktrace(ptr noundef %3014) #11
  %3016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3017 = trunc nuw i8 %3016 to i1
  br i1 %3017, label %3018, label %3022

3018:                                             ; preds = %3012
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @fileno(ptr noundef %3019) #11
  %3021 = call i32 @isatty(i32 noundef %3020) #11
  %.not366 = icmp eq i32 %3021, 0
  br i1 %.not366, label %3022, label %3023

3022:                                             ; preds = %3018, %3012
  br label %3023

3023:                                             ; preds = %3018, %3022
  %.str.5.sink1409 = phi ptr [ @.str.5, %3022 ], [ @.str.2, %3018 ]
  store i32 %3013, ptr %409, align 4, !tbaa !5
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = load i32, ptr %355, align 4, !tbaa !5
  %3027 = call ptr @s2n_strerror(i32 noundef %3026, ptr noundef nonnull @.str.4) #11
  %3028 = load i32, ptr %355, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror_debug(i32 noundef %3028, ptr noundef nonnull @.str.4) #11
  %3030 = load i32, ptr %409, align 4, !tbaa !5
  %3031 = call ptr @strerror(i32 noundef %3030) #11
  %3032 = load i32, ptr %409, align 4, !tbaa !5
  %3033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3024, ptr noundef nonnull %.str.5.sink1409, i32 noundef %3025, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 430, ptr noundef %3027, ptr noundef %3029, ptr noundef %3031, i32 noundef %3032) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3034:                                             ; preds = %3005
  %3035 = load i32, ptr %3008, align 8
  %3036 = or i32 %3035, 8
  store i32 %3036, ptr %3008, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #11
  %3037 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %3037, ptr %28, align 8, !tbaa !9
  %3038 = load i32, ptr @test_count, align 4, !tbaa !5
  %3039 = add nsw i32 %3038, 1
  store i32 %3039, ptr @test_count, align 4, !tbaa !5
  %3040 = icmp eq ptr %3037, null
  br i1 %3040, label %3041, label %3063

3041:                                             ; preds = %3034
  %3042 = load i32, ptr %409, align 4, !tbaa !5
  %3043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3044 = call i32 @s2n_print_stacktrace(ptr noundef %3043) #11
  %3045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3046 = trunc nuw i8 %3045 to i1
  br i1 %3046, label %3047, label %3051

3047:                                             ; preds = %3041
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = call i32 @fileno(ptr noundef %3048) #11
  %3050 = call i32 @isatty(i32 noundef %3049) #11
  %.not365 = icmp eq i32 %3050, 0
  br i1 %.not365, label %3051, label %3052

3051:                                             ; preds = %3047, %3041
  br label %3052

3052:                                             ; preds = %3047, %3051
  %.str.5.sink1418 = phi ptr [ @.str.5, %3051 ], [ @.str.2, %3047 ]
  store i32 %3042, ptr %409, align 4, !tbaa !5
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = load i32, ptr @test_count, align 4, !tbaa !5
  %3055 = load i32, ptr %355, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror(i32 noundef %3055, ptr noundef nonnull @.str.4) #11
  %3057 = load i32, ptr %355, align 4, !tbaa !5
  %3058 = call ptr @s2n_strerror_debug(i32 noundef %3057, ptr noundef nonnull @.str.4) #11
  %3059 = load i32, ptr %409, align 4, !tbaa !5
  %3060 = call ptr @strerror(i32 noundef %3059) #11
  %3061 = load i32, ptr %409, align 4, !tbaa !5
  %3062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3053, ptr noundef nonnull %.str.5.sink1418, i32 noundef %3054, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %3056, ptr noundef %3058, ptr noundef %3060, i32 noundef %3061) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3063:                                             ; preds = %3034
  %3064 = add nsw i32 %3038, 2
  store i32 %3064, ptr @test_count, align 4, !tbaa !5
  %3065 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3037, ptr noundef nonnull %178) #11
  %3066 = icmp eq i32 %3065, -1
  br i1 %3066, label %3067, label %3089

3067:                                             ; preds = %3063
  %3068 = load i32, ptr %409, align 4, !tbaa !5
  %3069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3070 = call i32 @s2n_print_stacktrace(ptr noundef %3069) #11
  %3071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3072 = trunc nuw i8 %3071 to i1
  br i1 %3072, label %3073, label %3077

3073:                                             ; preds = %3067
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = call i32 @fileno(ptr noundef %3074) #11
  %3076 = call i32 @isatty(i32 noundef %3075) #11
  %.not364 = icmp eq i32 %3076, 0
  br i1 %.not364, label %3077, label %3078

3077:                                             ; preds = %3073, %3067
  br label %3078

3078:                                             ; preds = %3073, %3077
  %.str.5.sink1427 = phi ptr [ @.str.5, %3077 ], [ @.str.2, %3073 ]
  store i32 %3068, ptr %409, align 4, !tbaa !5
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = load i32, ptr @test_count, align 4, !tbaa !5
  %3081 = load i32, ptr %355, align 4, !tbaa !5
  %3082 = call ptr @s2n_strerror(i32 noundef %3081, ptr noundef nonnull @.str.4) #11
  %3083 = load i32, ptr %355, align 4, !tbaa !5
  %3084 = call ptr @s2n_strerror_debug(i32 noundef %3083, ptr noundef nonnull @.str.4) #11
  %3085 = load i32, ptr %409, align 4, !tbaa !5
  %3086 = call ptr @strerror(i32 noundef %3085) #11
  %3087 = load i32, ptr %409, align 4, !tbaa !5
  %3088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3079, ptr noundef nonnull %.str.5.sink1427, i32 noundef %3080, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %3082, ptr noundef %3084, ptr noundef %3086, i32 noundef %3087) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3089:                                             ; preds = %3063
  %3090 = load i32, ptr %3037, align 8
  %3091 = or i32 %3090, 8
  store i32 %3091, ptr %3037, align 8
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %29) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %29, i8 0, i64 104, i1 false)
  store i8 1, ptr %29, align 8
  %3092 = getelementptr inbounds i8, ptr %29, i64 25
  store i8 -1, ptr %3092, align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #11
  store ptr %29, ptr %30, align 16, !tbaa !9
  %3093 = getelementptr inbounds i8, ptr %30, i64 8
  store ptr @s2n_ecdhe_rsa_with_aes_128_gcm_sha256, ptr %3093, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #11
  store i16 2, ptr %31, align 8, !tbaa !63
  %3094 = getelementptr inbounds i8, ptr %31, i64 8
  store ptr %30, ptr %3094, align 8, !tbaa !65
  %3095 = getelementptr inbounds i8, ptr %31, i64 16
  store i8 0, ptr %3095, align 8, !tbaa !66
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %32) #11
  %3096 = getelementptr inbounds i8, ptr %178, i64 96
  %3097 = load ptr, ptr %3096, align 8, !tbaa !67
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %32, ptr noundef nonnull align 8 dereferenceable(64) %3097, i64 64, i1 false), !tbaa.struct !71
  %3098 = getelementptr inbounds i8, ptr %32, i64 8
  store ptr %31, ptr %3098, align 8, !tbaa !72
  %3099 = getelementptr inbounds i8, ptr %3008, i64 16
  store ptr %32, ptr %3099, align 8, !tbaa !74
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = add nsw i32 %3100, 1
  store i32 %3101, ptr @test_count, align 4, !tbaa !5
  %3102 = call i32 @s2n_client_hello_send(ptr noundef nonnull %3008) #11
  %3103 = icmp eq i32 %3102, -1
  br i1 %3103, label %3104, label %3126

3104:                                             ; preds = %3089
  %3105 = load i32, ptr %409, align 4, !tbaa !5
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3107 = call i32 @s2n_print_stacktrace(ptr noundef %3106) #11
  %3108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3109 = trunc nuw i8 %3108 to i1
  br i1 %3109, label %3110, label %3114

3110:                                             ; preds = %3104
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = call i32 @fileno(ptr noundef %3111) #11
  %3113 = call i32 @isatty(i32 noundef %3112) #11
  %.not363 = icmp eq i32 %3113, 0
  br i1 %.not363, label %3114, label %3115

3114:                                             ; preds = %3110, %3104
  br label %3115

3115:                                             ; preds = %3110, %3114
  %.str.5.sink1436 = phi ptr [ @.str.5, %3114 ], [ @.str.2, %3110 ]
  store i32 %3105, ptr %409, align 4, !tbaa !5
  %3116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = load i32, ptr %355, align 4, !tbaa !5
  %3119 = call ptr @s2n_strerror(i32 noundef %3118, ptr noundef nonnull @.str.4) #11
  %3120 = load i32, ptr %355, align 4, !tbaa !5
  %3121 = call ptr @s2n_strerror_debug(i32 noundef %3120, ptr noundef nonnull @.str.4) #11
  %3122 = load i32, ptr %409, align 4, !tbaa !5
  %3123 = call ptr @strerror(i32 noundef %3122) #11
  %3124 = load i32, ptr %409, align 4, !tbaa !5
  %3125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3116, ptr noundef nonnull %.str.5.sink1436, i32 noundef %3117, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %3119, ptr noundef %3121, ptr noundef %3123, i32 noundef %3124) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3126:                                             ; preds = %3089
  %3127 = load i32, ptr @test_count, align 4, !tbaa !5
  %3128 = add nsw i32 %3127, 1
  store i32 %3128, ptr @test_count, align 4, !tbaa !5
  %3129 = getelementptr inbounds i8, ptr %3008, i64 2016
  %3130 = getelementptr inbounds i8, ptr %3037, i64 2016
  %3131 = getelementptr inbounds i8, ptr %3008, i64 2044
  %3132 = load i32, ptr %3131, align 4, !tbaa !45
  %3133 = getelementptr inbounds i8, ptr %3008, i64 2040
  %3134 = load i32, ptr %3133, align 8, !tbaa !46
  %3135 = sub i32 %3132, %3134
  %3136 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3129, ptr noundef nonnull %3130, i32 noundef %3135) #11
  %3137 = icmp eq i32 %3136, -1
  br i1 %3137, label %3138, label %3160

3138:                                             ; preds = %3126
  %3139 = load i32, ptr %409, align 4, !tbaa !5
  %3140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3141 = call i32 @s2n_print_stacktrace(ptr noundef %3140) #11
  %3142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3143 = trunc nuw i8 %3142 to i1
  br i1 %3143, label %3144, label %3148

3144:                                             ; preds = %3138
  %3145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3146 = call i32 @fileno(ptr noundef %3145) #11
  %3147 = call i32 @isatty(i32 noundef %3146) #11
  %.not362 = icmp eq i32 %3147, 0
  br i1 %.not362, label %3148, label %3149

3148:                                             ; preds = %3144, %3138
  br label %3149

3149:                                             ; preds = %3144, %3148
  %.str.5.sink1445 = phi ptr [ @.str.5, %3148 ], [ @.str.2, %3144 ]
  store i32 %3139, ptr %409, align 4, !tbaa !5
  %3150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3151 = load i32, ptr @test_count, align 4, !tbaa !5
  %3152 = load i32, ptr %355, align 4, !tbaa !5
  %3153 = call ptr @s2n_strerror(i32 noundef %3152, ptr noundef nonnull @.str.4) #11
  %3154 = load i32, ptr %355, align 4, !tbaa !5
  %3155 = call ptr @s2n_strerror_debug(i32 noundef %3154, ptr noundef nonnull @.str.4) #11
  %3156 = load i32, ptr %409, align 4, !tbaa !5
  %3157 = call ptr @strerror(i32 noundef %3156) #11
  %3158 = load i32, ptr %409, align 4, !tbaa !5
  %3159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3150, ptr noundef nonnull %.str.5.sink1445, i32 noundef %3151, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 456, ptr noundef %3153, ptr noundef %3155, ptr noundef %3157, i32 noundef %3158) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3160:                                             ; preds = %3126
  %3161 = load i32, ptr @test_count, align 4, !tbaa !5
  %3162 = add nsw i32 %3161, 1
  store i32 %3162, ptr @test_count, align 4, !tbaa !5
  %3163 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %3037) #11
  %3164 = icmp eq i32 %3163, -1
  br i1 %3164, label %3165, label %3187

3165:                                             ; preds = %3160
  %3166 = load i32, ptr %409, align 4, !tbaa !5
  %3167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3168 = call i32 @s2n_print_stacktrace(ptr noundef %3167) #11
  %3169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3170 = trunc nuw i8 %3169 to i1
  br i1 %3170, label %3171, label %3175

3171:                                             ; preds = %3165
  %3172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3173 = call i32 @fileno(ptr noundef %3172) #11
  %3174 = call i32 @isatty(i32 noundef %3173) #11
  %.not361 = icmp eq i32 %3174, 0
  br i1 %.not361, label %3175, label %3176

3175:                                             ; preds = %3171, %3165
  br label %3176

3176:                                             ; preds = %3171, %3175
  %.str.5.sink1454 = phi ptr [ @.str.5, %3175 ], [ @.str.2, %3171 ]
  store i32 %3166, ptr %409, align 4, !tbaa !5
  %3177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3178 = load i32, ptr @test_count, align 4, !tbaa !5
  %3179 = load i32, ptr %355, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror(i32 noundef %3179, ptr noundef nonnull @.str.4) #11
  %3181 = load i32, ptr %355, align 4, !tbaa !5
  %3182 = call ptr @s2n_strerror_debug(i32 noundef %3181, ptr noundef nonnull @.str.4) #11
  %3183 = load i32, ptr %409, align 4, !tbaa !5
  %3184 = call ptr @strerror(i32 noundef %3183) #11
  %3185 = load i32, ptr %409, align 4, !tbaa !5
  %3186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3177, ptr noundef nonnull %.str.5.sink1454, i32 noundef %3178, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %3180, ptr noundef %3182, ptr noundef %3184, i32 noundef %3185) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3187:                                             ; preds = %3160
  %3188 = getelementptr inbounds i8, ptr %3008, i64 2200
  %3189 = load i8, ptr %3188, align 8
  %3190 = or i8 %3189, 8
  store i8 %3190, ptr %3188, align 8
  %3191 = getelementptr inbounds i8, ptr %3008, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %3191, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.client_verify_data, i64 19, i1 false)
  %3192 = getelementptr inbounds i8, ptr %3008, i64 2168
  store i8 19, ptr %3192, align 8, !tbaa !59
  %3193 = getelementptr inbounds i8, ptr %3037, i64 2200
  %3194 = load i8, ptr %3193, align 8
  %3195 = or i8 %3194, 8
  store i8 %3195, ptr %3193, align 8
  %3196 = getelementptr inbounds i8, ptr %3037, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %3196, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.client_verify_data, i64 19, i1 false)
  %3197 = getelementptr inbounds i8, ptr %3037, i64 2168
  store i8 19, ptr %3197, align 8, !tbaa !59
  %3198 = load i32, ptr @test_count, align 4, !tbaa !5
  %3199 = add nsw i32 %3198, 1
  store i32 %3199, ptr @test_count, align 4, !tbaa !5
  %3200 = call i32 @s2n_client_hello_send(ptr noundef nonnull %3008) #11
  %3201 = icmp eq i32 %3200, -1
  br i1 %3201, label %3202, label %3224

3202:                                             ; preds = %3187
  %3203 = load i32, ptr %409, align 4, !tbaa !5
  %3204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3205 = call i32 @s2n_print_stacktrace(ptr noundef %3204) #11
  %3206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3207 = trunc nuw i8 %3206 to i1
  br i1 %3207, label %3208, label %3212

3208:                                             ; preds = %3202
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3210 = call i32 @fileno(ptr noundef %3209) #11
  %3211 = call i32 @isatty(i32 noundef %3210) #11
  %.not360 = icmp eq i32 %3211, 0
  br i1 %.not360, label %3212, label %3213

3212:                                             ; preds = %3208, %3202
  br label %3213

3213:                                             ; preds = %3208, %3212
  %.str.5.sink1463 = phi ptr [ @.str.5, %3212 ], [ @.str.2, %3208 ]
  store i32 %3203, ptr %409, align 4, !tbaa !5
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = load i32, ptr @test_count, align 4, !tbaa !5
  %3216 = load i32, ptr %355, align 4, !tbaa !5
  %3217 = call ptr @s2n_strerror(i32 noundef %3216, ptr noundef nonnull @.str.4) #11
  %3218 = load i32, ptr %355, align 4, !tbaa !5
  %3219 = call ptr @s2n_strerror_debug(i32 noundef %3218, ptr noundef nonnull @.str.4) #11
  %3220 = load i32, ptr %409, align 4, !tbaa !5
  %3221 = call ptr @strerror(i32 noundef %3220) #11
  %3222 = load i32, ptr %409, align 4, !tbaa !5
  %3223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3214, ptr noundef nonnull %.str.5.sink1463, i32 noundef %3215, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 470, ptr noundef %3217, ptr noundef %3219, ptr noundef %3221, i32 noundef %3222) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3224:                                             ; preds = %3187
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = add nsw i32 %3225, 1
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = load i32, ptr %3131, align 4, !tbaa !45
  %3228 = load i32, ptr %3133, align 8, !tbaa !46
  %3229 = sub i32 %3227, %3228
  %3230 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3129, ptr noundef nonnull %3130, i32 noundef %3229) #11
  %3231 = icmp eq i32 %3230, -1
  br i1 %3231, label %3232, label %3254

3232:                                             ; preds = %3224
  %3233 = load i32, ptr %409, align 4, !tbaa !5
  %3234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3235 = call i32 @s2n_print_stacktrace(ptr noundef %3234) #11
  %3236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3237 = trunc nuw i8 %3236 to i1
  br i1 %3237, label %3238, label %3242

3238:                                             ; preds = %3232
  %3239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3240 = call i32 @fileno(ptr noundef %3239) #11
  %3241 = call i32 @isatty(i32 noundef %3240) #11
  %.not359 = icmp eq i32 %3241, 0
  br i1 %.not359, label %3242, label %3243

3242:                                             ; preds = %3238, %3232
  br label %3243

3243:                                             ; preds = %3238, %3242
  %.str.5.sink1472 = phi ptr [ @.str.5, %3242 ], [ @.str.2, %3238 ]
  store i32 %3233, ptr %409, align 4, !tbaa !5
  %3244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3245 = load i32, ptr @test_count, align 4, !tbaa !5
  %3246 = load i32, ptr %355, align 4, !tbaa !5
  %3247 = call ptr @s2n_strerror(i32 noundef %3246, ptr noundef nonnull @.str.4) #11
  %3248 = load i32, ptr %355, align 4, !tbaa !5
  %3249 = call ptr @s2n_strerror_debug(i32 noundef %3248, ptr noundef nonnull @.str.4) #11
  %3250 = load i32, ptr %409, align 4, !tbaa !5
  %3251 = call ptr @strerror(i32 noundef %3250) #11
  %3252 = load i32, ptr %409, align 4, !tbaa !5
  %3253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3244, ptr noundef nonnull %.str.5.sink1472, i32 noundef %3245, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %3247, ptr noundef %3249, ptr noundef %3251, i32 noundef %3252) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3254:                                             ; preds = %3224
  %3255 = load i32, ptr @test_count, align 4, !tbaa !5
  %3256 = add nsw i32 %3255, 1
  store i32 %3256, ptr @test_count, align 4, !tbaa !5
  %3257 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %3037) #11
  %3258 = icmp eq i32 %3257, -1
  br i1 %3258, label %3281, label %3259

3259:                                             ; preds = %3254
  %3260 = load i32, ptr %409, align 4, !tbaa !5
  %3261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3262 = call i32 @s2n_print_stacktrace(ptr noundef %3261) #11
  %3263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3264 = trunc nuw i8 %3263 to i1
  br i1 %3264, label %3265, label %3269

3265:                                             ; preds = %3259
  %3266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3267 = call i32 @fileno(ptr noundef %3266) #11
  %3268 = call i32 @isatty(i32 noundef %3267) #11
  %.not351 = icmp eq i32 %3268, 0
  br i1 %.not351, label %3269, label %3270

3269:                                             ; preds = %3265, %3259
  br label %3270

3270:                                             ; preds = %3265, %3269
  %.str.5.sink1481 = phi ptr [ @.str.5, %3269 ], [ @.str.2, %3265 ]
  store i32 %3260, ptr %409, align 4, !tbaa !5
  %3271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3272 = load i32, ptr @test_count, align 4, !tbaa !5
  %3273 = load i32, ptr %355, align 4, !tbaa !5
  %3274 = call ptr @s2n_strerror(i32 noundef %3273, ptr noundef nonnull @.str.4) #11
  %3275 = load i32, ptr %355, align 4, !tbaa !5
  %3276 = call ptr @s2n_strerror_debug(i32 noundef %3275, ptr noundef nonnull @.str.4) #11
  %3277 = load i32, ptr %409, align 4, !tbaa !5
  %3278 = call ptr @strerror(i32 noundef %3277) #11
  %3279 = load i32, ptr %409, align 4, !tbaa !5
  %3280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3271, ptr noundef nonnull %.str.5.sink1481, i32 noundef %3272, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %3274, ptr noundef %3276, ptr noundef %3278, i32 noundef %3279) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3281:                                             ; preds = %3254
  %3282 = load i32, ptr @test_count, align 4, !tbaa !5
  %3283 = add nsw i32 %3282, 1
  store i32 %3283, ptr @test_count, align 4, !tbaa !5
  %3284 = load i32, ptr %355, align 4, !tbaa !5
  %3285 = icmp eq i32 %3284, 335544322
  br i1 %3285, label %3308, label %3286

3286:                                             ; preds = %3281
  %3287 = load i32, ptr %409, align 4, !tbaa !5
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = call i32 @s2n_print_stacktrace(ptr noundef %3288) #11
  %3290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3291 = trunc nuw i8 %3290 to i1
  br i1 %3291, label %3292, label %3296

3292:                                             ; preds = %3286
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = call i32 @fileno(ptr noundef %3293) #11
  %3295 = call i32 @isatty(i32 noundef %3294) #11
  %.not352 = icmp eq i32 %3295, 0
  br i1 %.not352, label %3296, label %3297

3296:                                             ; preds = %3292, %3286
  br label %3297

3297:                                             ; preds = %3292, %3296
  %.str.5.sink1490 = phi ptr [ @.str.5, %3296 ], [ @.str.2, %3292 ]
  store i32 %3287, ptr %409, align 4, !tbaa !5
  %3298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3299 = load i32, ptr @test_count, align 4, !tbaa !5
  %3300 = load i32, ptr %355, align 4, !tbaa !5
  %3301 = call ptr @s2n_strerror(i32 noundef %3300, ptr noundef nonnull @.str.4) #11
  %3302 = load i32, ptr %355, align 4, !tbaa !5
  %3303 = call ptr @s2n_strerror_debug(i32 noundef %3302, ptr noundef nonnull @.str.4) #11
  %3304 = load i32, ptr %409, align 4, !tbaa !5
  %3305 = call ptr @strerror(i32 noundef %3304) #11
  %3306 = load i32, ptr %409, align 4, !tbaa !5
  %3307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3298, ptr noundef nonnull %.str.5.sink1490, i32 noundef %3299, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %3301, ptr noundef %3303, ptr noundef %3305, i32 noundef %3306) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3308:                                             ; preds = %3281
  %3309 = add nsw i32 %3282, 2
  store i32 %3309, ptr @test_count, align 4, !tbaa !5
  %3310 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %3311 = icmp eq ptr %3310, null
  br i1 %3311, label %3312, label %3334

3312:                                             ; preds = %3308
  %3313 = load i32, ptr %409, align 4, !tbaa !5
  %3314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3315 = call i32 @s2n_print_stacktrace(ptr noundef %3314) #11
  %3316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3317 = trunc nuw i8 %3316 to i1
  br i1 %3317, label %3318, label %3322

3318:                                             ; preds = %3312
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = call i32 @fileno(ptr noundef %3319) #11
  %3321 = call i32 @isatty(i32 noundef %3320) #11
  %.not358 = icmp eq i32 %3321, 0
  br i1 %.not358, label %3322, label %3323

3322:                                             ; preds = %3318, %3312
  br label %3323

3323:                                             ; preds = %3318, %3322
  %.str.5.sink1499 = phi ptr [ @.str.5, %3322 ], [ @.str.2, %3318 ]
  store i32 %3313, ptr %409, align 4, !tbaa !5
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = load i32, ptr @test_count, align 4, !tbaa !5
  %3326 = load i32, ptr %355, align 4, !tbaa !5
  %3327 = call ptr @s2n_strerror(i32 noundef %3326, ptr noundef nonnull @.str.4) #11
  %3328 = load i32, ptr %355, align 4, !tbaa !5
  %3329 = call ptr @s2n_strerror_debug(i32 noundef %3328, ptr noundef nonnull @.str.4) #11
  %3330 = load i32, ptr %409, align 4, !tbaa !5
  %3331 = call ptr @strerror(i32 noundef %3330) #11
  %3332 = load i32, ptr %409, align 4, !tbaa !5
  %3333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3324, ptr noundef nonnull %.str.5.sink1499, i32 noundef %3325, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %3327, ptr noundef %3329, ptr noundef %3331, i32 noundef %3332) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3334:                                             ; preds = %3308
  store i32 0, ptr %355, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %409, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %29) #11
  %3335 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #11
  %3336 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  %3337 = call i32 @s2n_cleanup() #11
  %3338 = icmp eq i32 %3337, -1
  br i1 %3338, label %3339, label %3361

3339:                                             ; preds = %3334
  %3340 = load i32, ptr %409, align 4, !tbaa !5
  %3341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3342 = call i32 @s2n_print_stacktrace(ptr noundef %3341) #11
  %3343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3344 = trunc nuw i8 %3343 to i1
  br i1 %3344, label %3345, label %3349

3345:                                             ; preds = %3339
  %3346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3347 = call i32 @fileno(ptr noundef %3346) #11
  %3348 = call i32 @isatty(i32 noundef %3347) #11
  %.not357 = icmp eq i32 %3348, 0
  br i1 %.not357, label %3349, label %3350

3349:                                             ; preds = %3345, %3339
  br label %3350

3350:                                             ; preds = %3345, %3349
  %.str.5.sink1508 = phi ptr [ @.str.5, %3349 ], [ @.str.2, %3345 ]
  store i32 %3340, ptr %409, align 4, !tbaa !5
  %3351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3352 = load i32, ptr @test_count, align 4, !tbaa !5
  %3353 = load i32, ptr %355, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror(i32 noundef %3353, ptr noundef nonnull @.str.4) #11
  %3355 = load i32, ptr %355, align 4, !tbaa !5
  %3356 = call ptr @s2n_strerror_debug(i32 noundef %3355, ptr noundef nonnull @.str.4) #11
  %3357 = load i32, ptr %409, align 4, !tbaa !5
  %3358 = call ptr @strerror(i32 noundef %3357) #11
  %3359 = load i32, ptr %409, align 4, !tbaa !5
  %3360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3351, ptr noundef nonnull %.str.5.sink1508, i32 noundef %3352, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 476, ptr noundef %3354, ptr noundef %3356, ptr noundef %3358, i32 noundef %3359) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3361:                                             ; preds = %3334
  %3362 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %3363 = icmp eq i32 %3362, -1
  br i1 %3363, label %3364, label %3386

3364:                                             ; preds = %3361
  %3365 = load i32, ptr %409, align 4, !tbaa !5
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = call i32 @s2n_print_stacktrace(ptr noundef %3366) #11
  %3368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3369 = trunc nuw i8 %3368 to i1
  br i1 %3369, label %3370, label %3374

3370:                                             ; preds = %3364
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3372 = call i32 @fileno(ptr noundef %3371) #11
  %3373 = call i32 @isatty(i32 noundef %3372) #11
  %.not356 = icmp eq i32 %3373, 0
  br i1 %.not356, label %3374, label %3375

3374:                                             ; preds = %3370, %3364
  br label %3375

3375:                                             ; preds = %3370, %3374
  %.str.5.sink1517 = phi ptr [ @.str.5, %3374 ], [ @.str.2, %3370 ]
  store i32 %3365, ptr %409, align 4, !tbaa !5
  %3376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3377 = load i32, ptr @test_count, align 4, !tbaa !5
  %3378 = load i32, ptr %355, align 4, !tbaa !5
  %3379 = call ptr @s2n_strerror(i32 noundef %3378, ptr noundef nonnull @.str.4) #11
  %3380 = load i32, ptr %355, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror_debug(i32 noundef %3380, ptr noundef nonnull @.str.4) #11
  %3382 = load i32, ptr %409, align 4, !tbaa !5
  %3383 = call ptr @strerror(i32 noundef %3382) #11
  %3384 = load i32, ptr %409, align 4, !tbaa !5
  %3385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3376, ptr noundef nonnull %.str.5.sink1517, i32 noundef %3377, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 476, ptr noundef %3379, ptr noundef %3381, ptr noundef %3383, i32 noundef %3384) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3386:                                             ; preds = %3361
  %3387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3388 = trunc nuw i8 %3387 to i1
  br i1 %3388, label %3389, label %3400

3389:                                             ; preds = %3386
  %3390 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3391 = call i32 @fileno(ptr noundef %3390) #11
  %3392 = call i32 @isatty(i32 noundef %3391) #11
  %.not353 = icmp eq i32 %3392, 0
  br i1 %.not353, label %3400, label %3393

3393:                                             ; preds = %3389
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not355 = icmp eq i32 %3394, 0
  %3395 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not355, label %3398, label %3396

3396:                                             ; preds = %3393
  %3397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3395, ptr noundef nonnull @.str.75, i32 noundef %3394) #11
  br label %3407

3398:                                             ; preds = %3393
  %3399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3395, ptr noundef nonnull @.str.76) #11
  br label %3407

3400:                                             ; preds = %3389, %3386
  %3401 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not354 = icmp eq i32 %3401, 0
  %3402 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not354, label %3405, label %3403

3403:                                             ; preds = %3400
  %3404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3402, ptr noundef nonnull @.str.77, i32 noundef %3401) #11
  br label %3407

3405:                                             ; preds = %3400
  %3406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3402, ptr noundef nonnull @.str.78) #11
  br label %3407

3407:                                             ; preds = %3403, %3405, %3396, %3398
  %3408 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #11
  %3409 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  ret i32 0
}

; Function Attrs: 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: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_parse_client_hello(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extension_list_process(i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_rewrite(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, 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 #10

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: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nofree nounwind willreturn memory(argmem: read) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 16}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!19, !7, i64 219}
!19 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !20, i64 160, !21, i64 168, !21, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !22, i64 240, !10, i64 632, !10, i64 640, !23, i64 648, !29, i64 1144, !32, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !34, i64 1776, !34, i64 1816, !34, i64 1856, !34, i64 1896, !6, i64 1936, !21, i64 1944, !7, i64 1952, !34, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !21, i64 2224, !7, i64 2232, !21, i64 2240, !21, i64 2248, !21, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !28, i64 2792, !6, i64 2816, !28, i64 2824, !28, i64 2848, !28, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !28, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !28, i64 4032, !28, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !28, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!20 = !{!"s2n_timer", !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!23 = !{!"s2n_kex_parameters", !24, i64 0, !25, i64 8, !7, i64 24, !25, i64 56, !26, i64 72, !26, i64 184, !7, i64 296, !27, i64 360, !28, i64 448, !28, i64 472}
!24 = !{!"s2n_dh_params", !10, i64 0}
!25 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!26 = !{!"s2n_kem_group_params", !10, i64 0, !27, i64 8, !25, i64 96}
!27 = !{!"s2n_kem_params", !10, i64 0, !28, i64 8, !28, i64 32, !28, i64 56, !12, i64 80}
!28 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!29 = !{!"s2n_handshake_parameters", !30, i64 0, !30, i64 48, !28, i64 96, !6, i64 120, !31, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!30 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!31 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!32 = !{!"s2n_psk_parameters", !6, i64 0, !33, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!33 = !{!"s2n_array", !28, i64 0, !6, i64 24, !6, i64 28}
!34 = !{!"s2n_stuffer", !28, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !34, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !37, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!37 = !{!"s2n_offered_early_data", !10, i64 0}
!38 = !{!"s2n_client_hello", !28, i64 0, !39, i64 24, !28, i64 728, !28, i64 752, !28, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!39 = !{!"", !7, i64 0, !28, i64 672, !17, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !41, i64 48, !12, i64 52}
!41 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!42 = !{!"s2n_ticket_fields", !28, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!19, !7, i64 220}
!45 = !{!19, !6, i64 2044}
!46 = !{!19, !6, i64 2040}
!47 = !{!19, !6, i64 3632}
!48 = !{!19, !10, i64 3624}
!49 = distinct !{!49, !50}
!50 = !{!"llvm.loop.mustprogress"}
!51 = !{!7, !7, i64 0}
!52 = !{!16, !17, i64 0}
!53 = !{!54, !6, i64 8}
!54 = !{!"", !28, i64 0, !17, i64 24, !17, i64 26, !6, i64 28}
!55 = !{!54, !17, i64 24}
!56 = !{!19, !6, i64 2904}
!57 = !{!19, !6, i64 3600}
!58 = !{!16, !10, i64 24}
!59 = !{!19, !7, i64 2168}
!60 = !{!16, !10, i64 8}
!61 = distinct !{!61, !50}
!62 = !{!16, !10, i64 32}
!63 = !{!64, !17, i64 0}
!64 = !{!"s2n_cipher_preferences", !17, i64 0, !10, i64 8, !12, i64 16}
!65 = !{!64, !10, i64 8}
!66 = !{!64, !12, i64 16}
!67 = !{!68, !10, i64 96}
!68 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !69, i64 24, !28, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !21, i64 144, !10, i64 152, !21, i64 160, !21, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !70, i64 304, !17, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !28, i64 448}
!69 = !{!"certs_by_type", !7, i64 0}
!70 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!71 = !{i64 0, i64 1, !51, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 1, !11, i64 57, i64 2, !51}
!72 = !{!73, !10, i64 8}
!73 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!74 = !{!19, !10, i64 16}


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass