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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 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 [55 x i8], align 1
@__const.main.max_record_limit = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [89 x i8], align 1
@__const.main.message = external hidden unnamed_addr constant [13 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.65 = 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 [8 x i8], align 1
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca [8 x i8], align 1
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %struct.s2n_stuffer, align 8
  %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 i64, align 8
  %25 = alloca i32, align 4
  %26 = alloca [13 x i8], align 1
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca [100 x i8], align 16
  %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 ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca %struct.s2n_test_io_pair, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca i32, align 4
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca [5 x i8], align 1
  %67 = alloca %struct.s2n_blob, align 8
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca %struct.s2n_result, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca [128 x i8], align 16
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %87

87:                                               ; preds = %2
  br label %88

88:                                               ; preds = %87
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %89 = load ptr, ptr @stdout, align 8, !tbaa !9
  %90 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %89, ptr noundef @.str, ptr noundef @.str.1) #12
  %91 = load ptr, ptr @stdout, align 8, !tbaa !9
  %92 = call i32 @fflush(ptr noundef %91)
  br label %93

93:                                               ; preds = %88
  %94 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %95 = icmp eq i32 %94, -1
  br i1 %95, label %96, label %147

96:                                               ; preds = %93
  br label %97

97:                                               ; preds = %96
  br label %98

98:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #12
  %99 = call ptr @__errno_location() #13
  %100 = load i32, ptr %99, align 4, !tbaa !5
  store i32 %100, ptr %6, align 4, !tbaa !5
  %101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %102 = call i32 @s2n_print_stacktrace(ptr noundef %101)
  %103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %104 = trunc i8 %103 to i1
  br i1 %104, label %105, label %127

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

110:                                              ; preds = %105
  %111 = load i32, ptr %6, align 4, !tbaa !5
  %112 = call ptr @__errno_location() #13
  store i32 %111, ptr %112, align 4, !tbaa !5
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = load i32, ptr @test_count, align 4, !tbaa !5
  %115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %117 = call ptr @s2n_strerror(i32 noundef %116, ptr noundef @.str.4)
  %118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %119 = load i32, ptr %118, align 4, !tbaa !5
  %120 = call ptr @s2n_strerror_debug(i32 noundef %119, ptr noundef @.str.4)
  %121 = call ptr @__errno_location() #13
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = call ptr @strerror(i32 noundef %122) #12
  %124 = call ptr @__errno_location() #13
  %125 = load i32, ptr %124, align 4, !tbaa !5
  %126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %113, ptr noundef @.str.2, i32 noundef %114, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 73, ptr noundef %117, ptr noundef %120, ptr noundef %123, i32 noundef %125) #12
  br label %144

127:                                              ; preds = %105, %98
  %128 = load i32, ptr %6, align 4, !tbaa !5
  %129 = call ptr @__errno_location() #13
  store i32 %128, ptr %129, align 4, !tbaa !5
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = load i32, ptr @test_count, align 4, !tbaa !5
  %132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = call ptr @s2n_strerror(i32 noundef %133, ptr noundef @.str.4)
  %135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = call ptr @s2n_strerror_debug(i32 noundef %136, ptr noundef @.str.4)
  %138 = call ptr @__errno_location() #13
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = call ptr @strerror(i32 noundef %139) #12
  %141 = call ptr @__errno_location() #13
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %130, ptr noundef @.str.5, i32 noundef %131, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 73, ptr noundef %134, ptr noundef %137, ptr noundef %140, i32 noundef %142) #12
  br label %144

144:                                              ; preds = %127, %110
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #12
  br label %145

145:                                              ; preds = %144
  call void @exit(i32 noundef 1) #14
  unreachable

146:                                              ; No predecessors!
  br label %147

147:                                              ; preds = %146, %93
  br label %148

148:                                              ; preds = %147
  br label %149

149:                                              ; preds = %148
  %150 = load i32, ptr @test_count, align 4, !tbaa !5
  %151 = add nsw i32 %150, 1
  store i32 %151, ptr @test_count, align 4, !tbaa !5
  %152 = call i32 @s2n_enable_atexit()
  %153 = icmp eq i32 %152, -1
  br i1 %153, label %154, label %205

154:                                              ; preds = %149
  br label %155

155:                                              ; preds = %154
  br label %156

156:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #12
  %157 = call ptr @__errno_location() #13
  %158 = load i32, ptr %157, align 4, !tbaa !5
  store i32 %158, ptr %7, align 4, !tbaa !5
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = call i32 @s2n_print_stacktrace(ptr noundef %159)
  %161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %162 = trunc i8 %161 to i1
  br i1 %162, label %163, label %185

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

168:                                              ; preds = %163
  %169 = load i32, ptr %7, align 4, !tbaa !5
  %170 = call ptr @__errno_location() #13
  store i32 %169, ptr %170, align 4, !tbaa !5
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = load i32, ptr @test_count, align 4, !tbaa !5
  %173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %174 = load i32, ptr %173, align 4, !tbaa !5
  %175 = call ptr @s2n_strerror(i32 noundef %174, ptr noundef @.str.4)
  %176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = call ptr @s2n_strerror_debug(i32 noundef %177, ptr noundef @.str.4)
  %179 = call ptr @__errno_location() #13
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = call ptr @strerror(i32 noundef %180) #12
  %182 = call ptr @__errno_location() #13
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %171, ptr noundef @.str.2, i32 noundef %172, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 73, ptr noundef %175, ptr noundef %178, ptr noundef %181, i32 noundef %183) #12
  br label %202

185:                                              ; preds = %163, %156
  %186 = load i32, ptr %7, align 4, !tbaa !5
  %187 = call ptr @__errno_location() #13
  store i32 %186, ptr %187, align 4, !tbaa !5
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = load i32, ptr @test_count, align 4, !tbaa !5
  %190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %191 = load i32, ptr %190, align 4, !tbaa !5
  %192 = call ptr @s2n_strerror(i32 noundef %191, ptr noundef @.str.4)
  %193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = call ptr @s2n_strerror_debug(i32 noundef %194, ptr noundef @.str.4)
  %196 = call ptr @__errno_location() #13
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = call ptr @strerror(i32 noundef %197) #12
  %199 = call ptr @__errno_location() #13
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %188, ptr noundef @.str.5, i32 noundef %189, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 73, ptr noundef %192, ptr noundef %195, ptr noundef %198, i32 noundef %200) #12
  br label %202

202:                                              ; preds = %185, %168
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #12
  br label %203

203:                                              ; preds = %202
  call void @exit(i32 noundef 1) #14
  unreachable

204:                                              ; No predecessors!
  br label %205

205:                                              ; preds = %204, %149
  br label %206

206:                                              ; preds = %205
  br label %207

207:                                              ; preds = %206
  br label %208

208:                                              ; preds = %207
  %209 = call i32 @s2n_init()
  %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 %8) #12
  %214 = call ptr @__errno_location() #13
  %215 = load i32, ptr %214, align 4, !tbaa !5
  store i32 %215, ptr %8, 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) #12
  %223 = call i32 @isatty(i32 noundef %222) #12
  %224 = icmp ne i32 %223, 0
  br i1 %224, label %225, label %242

225:                                              ; preds = %220
  %226 = load i32, ptr %8, align 4, !tbaa !5
  %227 = call ptr @__errno_location() #13
  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() #13
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @strerror(i32 noundef %237) #12
  %239 = call ptr @__errno_location() #13
  %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.7, ptr noundef @.str.1, i32 noundef 73, ptr noundef %232, ptr noundef %235, ptr noundef %238, i32 noundef %240) #12
  br label %259

242:                                              ; preds = %220, %213
  %243 = load i32, ptr %8, align 4, !tbaa !5
  %244 = call ptr @__errno_location() #13
  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() #13
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @strerror(i32 noundef %254) #12
  %256 = call ptr @__errno_location() #13
  %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.7, ptr noundef @.str.1, i32 noundef 73, ptr noundef %249, ptr noundef %252, ptr noundef %255, i32 noundef %257) #12
  br label %259

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

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

261:                                              ; No predecessors!
  br label %262

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

263:                                              ; preds = %262
  br label %264

264:                                              ; preds = %263
  br label %265

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

270:                                              ; preds = %265
  br label %271

271:                                              ; preds = %270
  br label %272

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

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

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

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

318:                                              ; preds = %301, %284
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #12
  br label %319

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

320:                                              ; No predecessors!
  br label %321

321:                                              ; preds = %320, %265
  br label %322

322:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %10, ptr align 1 @__const.main.max_record_limit, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #12
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #12
  store ptr null, ptr %12, align 8, !tbaa !9
  br label %323

323:                                              ; preds = %322
  %324 = load i32, ptr @test_count, align 4, !tbaa !5
  %325 = add nsw i32 %324, 1
  store i32 %325, ptr @test_count, align 4, !tbaa !5
  %326 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %326, ptr %11, align 8, !tbaa !9
  %327 = icmp eq ptr %326, null
  br i1 %327, label %328, label %381

328:                                              ; preds = %323
  br label %329

329:                                              ; preds = %328
  br label %330

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

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

342:                                              ; preds = %337
  %343 = load i32, ptr %13, align 4, !tbaa !5
  %344 = call ptr @__errno_location() #13
  store i32 %343, ptr %344, align 4, !tbaa !5
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = load i32, ptr @test_count, align 4, !tbaa !5
  %347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = call ptr @s2n_strerror(i32 noundef %348, ptr noundef @.str.4)
  %350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = call ptr @s2n_strerror_debug(i32 noundef %351, ptr noundef @.str.4)
  %353 = call ptr @__errno_location() #13
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @strerror(i32 noundef %354) #12
  %356 = call ptr @__errno_location() #13
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %345, ptr noundef @.str.2, i32 noundef %346, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 83, ptr noundef %349, ptr noundef %352, ptr noundef %355, i32 noundef %357) #12
  br label %376

359:                                              ; preds = %337, %330
  %360 = load i32, ptr %13, align 4, !tbaa !5
  %361 = call ptr @__errno_location() #13
  store i32 %360, ptr %361, align 4, !tbaa !5
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call ptr @s2n_strerror(i32 noundef %365, ptr noundef @.str.4)
  %367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror_debug(i32 noundef %368, ptr noundef @.str.4)
  %370 = call ptr @__errno_location() #13
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @strerror(i32 noundef %371) #12
  %373 = call ptr @__errno_location() #13
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %362, ptr noundef @.str.5, i32 noundef %363, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 83, ptr noundef %366, ptr noundef %369, ptr noundef %372, i32 noundef %374) #12
  br label %376

376:                                              ; preds = %359, %342
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #12
  br label %377

377:                                              ; preds = %376
  br label %378

378:                                              ; preds = %377
  call void @exit(i32 noundef 1) #14
  unreachable

379:                                              ; No predecessors!
  br label %380

380:                                              ; preds = %379
  br label %381

381:                                              ; preds = %380, %323
  br label %382

382:                                              ; preds = %381
  br label %383

383:                                              ; preds = %382
  br label %384

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

389:                                              ; preds = %384
  br label %390

390:                                              ; preds = %389
  br label %391

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

398:                                              ; preds = %391
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = call i32 @fileno(ptr noundef %399) #12
  %401 = call i32 @isatty(i32 noundef %400) #12
  %402 = icmp ne i32 %401, 0
  br i1 %402, label %403, label %420

403:                                              ; preds = %398
  %404 = load i32, ptr %14, align 4, !tbaa !5
  %405 = call ptr @__errno_location() #13
  store i32 %404, ptr %405, align 4, !tbaa !5
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = load i32, ptr @test_count, align 4, !tbaa !5
  %408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %409 = load i32, ptr %408, align 4, !tbaa !5
  %410 = call ptr @s2n_strerror(i32 noundef %409, ptr noundef @.str.4)
  %411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %412 = load i32, ptr %411, align 4, !tbaa !5
  %413 = call ptr @s2n_strerror_debug(i32 noundef %412, ptr noundef @.str.4)
  %414 = call ptr @__errno_location() #13
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = call ptr @strerror(i32 noundef %415) #12
  %417 = call ptr @__errno_location() #13
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %406, ptr noundef @.str.2, i32 noundef %407, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 84, ptr noundef %410, ptr noundef %413, ptr noundef %416, i32 noundef %418) #12
  br label %437

420:                                              ; preds = %398, %391
  %421 = load i32, ptr %14, align 4, !tbaa !5
  %422 = call ptr @__errno_location() #13
  store i32 %421, ptr %422, align 4, !tbaa !5
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = load i32, ptr @test_count, align 4, !tbaa !5
  %425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror(i32 noundef %426, ptr noundef @.str.4)
  %428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @s2n_strerror_debug(i32 noundef %429, ptr noundef @.str.4)
  %431 = call ptr @__errno_location() #13
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @strerror(i32 noundef %432) #12
  %434 = call ptr @__errno_location() #13
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %423, ptr noundef @.str.5, i32 noundef %424, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 84, ptr noundef %427, ptr noundef %430, ptr noundef %433, i32 noundef %435) #12
  br label %437

437:                                              ; preds = %420, %403
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #12
  br label %438

438:                                              ; preds = %437
  br label %439

439:                                              ; preds = %438
  call void @exit(i32 noundef 1) #14
  unreachable

440:                                              ; No predecessors!
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441, %384
  br label %443

443:                                              ; preds = %442
  br label %444

444:                                              ; preds = %443
  %445 = load ptr, ptr %11, align 8, !tbaa !9
  %446 = getelementptr inbounds %struct.s2n_connection, ptr %445, i32 0, i32 23
  store i8 34, ptr %446, align 4, !tbaa !15
  %447 = load ptr, ptr %12, align 8, !tbaa !9
  %448 = getelementptr inbounds %struct.s2n_connection, ptr %447, i32 0, i32 23
  store i8 34, ptr %448, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #12
  call void @llvm.memset.p0.i64(ptr align 1 %15, i8 0, i64 8, i1 false)
  br label %449

449:                                              ; preds = %444
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr @test_count, align 4, !tbaa !5
  %452 = load ptr, ptr %11, align 8, !tbaa !9
  %453 = call i32 @s2n_test_init_encryption(ptr noundef %452)
  %454 = icmp eq i32 %453, -1
  br i1 %454, label %455, label %508

455:                                              ; preds = %449
  br label %456

456:                                              ; preds = %455
  br label %457

457:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #12
  %458 = call ptr @__errno_location() #13
  %459 = load i32, ptr %458, align 4, !tbaa !5
  store i32 %459, ptr %16, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = call i32 @s2n_print_stacktrace(ptr noundef %460)
  %462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %463 = trunc i8 %462 to i1
  br i1 %463, label %464, label %486

464:                                              ; preds = %457
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = call i32 @fileno(ptr noundef %465) #12
  %467 = call i32 @isatty(i32 noundef %466) #12
  %468 = icmp ne i32 %467, 0
  br i1 %468, label %469, label %486

469:                                              ; preds = %464
  %470 = load i32, ptr %16, align 4, !tbaa !5
  %471 = call ptr @__errno_location() #13
  store i32 %470, ptr %471, align 4, !tbaa !5
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror(i32 noundef %475, ptr noundef @.str.4)
  %477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror_debug(i32 noundef %478, ptr noundef @.str.4)
  %480 = call ptr @__errno_location() #13
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call ptr @strerror(i32 noundef %481) #12
  %483 = call ptr @__errno_location() #13
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %472, ptr noundef @.str.2, i32 noundef %473, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 90, ptr noundef %476, ptr noundef %479, ptr noundef %482, i32 noundef %484) #12
  br label %503

486:                                              ; preds = %464, %457
  %487 = load i32, ptr %16, align 4, !tbaa !5
  %488 = call ptr @__errno_location() #13
  store i32 %487, ptr %488, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror(i32 noundef %492, ptr noundef @.str.4)
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef @.str.4)
  %497 = call ptr @__errno_location() #13
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call ptr @strerror(i32 noundef %498) #12
  %500 = call ptr @__errno_location() #13
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %489, ptr noundef @.str.5, i32 noundef %490, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 90, ptr noundef %493, ptr noundef %496, ptr noundef %499, i32 noundef %501) #12
  br label %503

503:                                              ; preds = %486, %469
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #12
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  call void @exit(i32 noundef 1) #14
  unreachable

506:                                              ; No predecessors!
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507, %449
  br label %509

509:                                              ; preds = %508
  br label %510

510:                                              ; preds = %509
  br label %511

511:                                              ; preds = %510
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = load ptr, ptr %12, align 8, !tbaa !9
  %515 = call i32 @s2n_test_init_encryption(ptr noundef %514)
  %516 = icmp eq i32 %515, -1
  br i1 %516, label %517, label %570

517:                                              ; preds = %511
  br label %518

518:                                              ; preds = %517
  br label %519

519:                                              ; preds = %518
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #12
  %520 = call ptr @__errno_location() #13
  %521 = load i32, ptr %520, align 4, !tbaa !5
  store i32 %521, ptr %17, align 4, !tbaa !5
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = call i32 @s2n_print_stacktrace(ptr noundef %522)
  %524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %525 = trunc i8 %524 to i1
  br i1 %525, label %526, label %548

526:                                              ; preds = %519
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = call i32 @fileno(ptr noundef %527) #12
  %529 = call i32 @isatty(i32 noundef %528) #12
  %530 = icmp ne i32 %529, 0
  br i1 %530, label %531, label %548

531:                                              ; preds = %526
  %532 = load i32, ptr %17, align 4, !tbaa !5
  %533 = call ptr @__errno_location() #13
  store i32 %532, ptr %533, align 4, !tbaa !5
  %534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %535 = load i32, ptr @test_count, align 4, !tbaa !5
  %536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %537 = load i32, ptr %536, align 4, !tbaa !5
  %538 = call ptr @s2n_strerror(i32 noundef %537, ptr noundef @.str.4)
  %539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = call ptr @s2n_strerror_debug(i32 noundef %540, ptr noundef @.str.4)
  %542 = call ptr @__errno_location() #13
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = call ptr @strerror(i32 noundef %543) #12
  %545 = call ptr @__errno_location() #13
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %534, ptr noundef @.str.2, i32 noundef %535, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 91, ptr noundef %538, ptr noundef %541, ptr noundef %544, i32 noundef %546) #12
  br label %565

548:                                              ; preds = %526, %519
  %549 = load i32, ptr %17, align 4, !tbaa !5
  %550 = call ptr @__errno_location() #13
  store i32 %549, ptr %550, align 4, !tbaa !5
  %551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %552 = load i32, ptr @test_count, align 4, !tbaa !5
  %553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %554 = load i32, ptr %553, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror(i32 noundef %554, ptr noundef @.str.4)
  %556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror_debug(i32 noundef %557, ptr noundef @.str.4)
  %559 = call ptr @__errno_location() #13
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = call ptr @strerror(i32 noundef %560) #12
  %562 = call ptr @__errno_location() #13
  %563 = load i32, ptr %562, align 4, !tbaa !5
  %564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %551, ptr noundef @.str.5, i32 noundef %552, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 91, ptr noundef %555, ptr noundef %558, ptr noundef %561, i32 noundef %563) #12
  br label %565

565:                                              ; preds = %548, %531
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #12
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566
  call void @exit(i32 noundef 1) #14
  unreachable

568:                                              ; No predecessors!
  br label %569

569:                                              ; preds = %568
  br label %570

570:                                              ; preds = %569, %511
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571
  call void @llvm.lifetime.start.p0(i64 40, ptr %18) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr %19) #12
  br label %573

573:                                              ; preds = %572
  %574 = load i32, ptr @test_count, align 4, !tbaa !5
  %575 = add nsw i32 %574, 1
  store i32 %575, ptr @test_count, align 4, !tbaa !5
  %576 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %18, i32 noundef 0)
  %577 = icmp eq i32 %576, -1
  br i1 %577, label %578, label %631

578:                                              ; preds = %573
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #12
  %581 = call ptr @__errno_location() #13
  %582 = load i32, ptr %581, align 4, !tbaa !5
  store i32 %582, ptr %20, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = call i32 @s2n_print_stacktrace(ptr noundef %583)
  %585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %586 = trunc i8 %585 to i1
  br i1 %586, label %587, label %609

587:                                              ; preds = %580
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = call i32 @fileno(ptr noundef %588) #12
  %590 = call i32 @isatty(i32 noundef %589) #12
  %591 = icmp ne i32 %590, 0
  br i1 %591, label %592, label %609

592:                                              ; preds = %587
  %593 = load i32, ptr %20, align 4, !tbaa !5
  %594 = call ptr @__errno_location() #13
  store i32 %593, ptr %594, align 4, !tbaa !5
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = call ptr @s2n_strerror(i32 noundef %598, ptr noundef @.str.4)
  %600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror_debug(i32 noundef %601, ptr noundef @.str.4)
  %603 = call ptr @__errno_location() #13
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call ptr @strerror(i32 noundef %604) #12
  %606 = call ptr @__errno_location() #13
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %595, ptr noundef @.str.2, i32 noundef %596, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 95, ptr noundef %599, ptr noundef %602, ptr noundef %605, i32 noundef %607) #12
  br label %626

609:                                              ; preds = %587, %580
  %610 = load i32, ptr %20, align 4, !tbaa !5
  %611 = call ptr @__errno_location() #13
  store i32 %610, ptr %611, align 4, !tbaa !5
  %612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror(i32 noundef %615, ptr noundef @.str.4)
  %617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef @.str.4)
  %620 = call ptr @__errno_location() #13
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call ptr @strerror(i32 noundef %621) #12
  %623 = call ptr @__errno_location() #13
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %612, ptr noundef @.str.5, i32 noundef %613, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 95, ptr noundef %616, ptr noundef %619, ptr noundef %622, i32 noundef %624) #12
  br label %626

626:                                              ; preds = %609, %592
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #12
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  call void @exit(i32 noundef 1) #14
  unreachable

629:                                              ; No predecessors!
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630, %573
  br label %632

632:                                              ; preds = %631
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  %635 = load i32, ptr @test_count, align 4, !tbaa !5
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr @test_count, align 4, !tbaa !5
  %637 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %19, i32 noundef 0)
  %638 = icmp eq i32 %637, -1
  br i1 %638, label %639, label %692

639:                                              ; preds = %634
  br label %640

640:                                              ; preds = %639
  br label %641

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

648:                                              ; preds = %641
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = call i32 @fileno(ptr noundef %649) #12
  %651 = call i32 @isatty(i32 noundef %650) #12
  %652 = icmp ne i32 %651, 0
  br i1 %652, label %653, label %670

653:                                              ; preds = %648
  %654 = load i32, ptr %21, align 4, !tbaa !5
  %655 = call ptr @__errno_location() #13
  store i32 %654, ptr %655, align 4, !tbaa !5
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = load i32, ptr @test_count, align 4, !tbaa !5
  %658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %659 = load i32, ptr %658, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror(i32 noundef %659, ptr noundef @.str.4)
  %661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %662 = load i32, ptr %661, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror_debug(i32 noundef %662, ptr noundef @.str.4)
  %664 = call ptr @__errno_location() #13
  %665 = load i32, ptr %664, align 4, !tbaa !5
  %666 = call ptr @strerror(i32 noundef %665) #12
  %667 = call ptr @__errno_location() #13
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %656, ptr noundef @.str.2, i32 noundef %657, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 96, ptr noundef %660, ptr noundef %663, ptr noundef %666, i32 noundef %668) #12
  br label %687

670:                                              ; preds = %648, %641
  %671 = load i32, ptr %21, align 4, !tbaa !5
  %672 = call ptr @__errno_location() #13
  store i32 %671, ptr %672, align 4, !tbaa !5
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = load i32, ptr @test_count, align 4, !tbaa !5
  %675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call ptr @s2n_strerror(i32 noundef %676, ptr noundef @.str.4)
  %678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %679 = load i32, ptr %678, align 4, !tbaa !5
  %680 = call ptr @s2n_strerror_debug(i32 noundef %679, ptr noundef @.str.4)
  %681 = call ptr @__errno_location() #13
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = call ptr @strerror(i32 noundef %682) #12
  %684 = call ptr @__errno_location() #13
  %685 = load i32, ptr %684, align 4, !tbaa !5
  %686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %673, ptr noundef @.str.5, i32 noundef %674, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 96, ptr noundef %677, ptr noundef %680, ptr noundef %683, i32 noundef %685) #12
  br label %687

687:                                              ; preds = %670, %653
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #12
  br label %688

688:                                              ; preds = %687
  br label %689

689:                                              ; preds = %688
  call void @exit(i32 noundef 1) #14
  unreachable

690:                                              ; No predecessors!
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691, %634
  br label %693

693:                                              ; preds = %692
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  %696 = load i32, ptr @test_count, align 4, !tbaa !5
  %697 = add nsw i32 %696, 1
  store i32 %697, ptr @test_count, align 4, !tbaa !5
  %698 = load ptr, ptr %11, align 8, !tbaa !9
  %699 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %18, ptr noundef %19, ptr noundef %698)
  %700 = icmp eq i32 %699, -1
  br i1 %700, label %701, label %754

701:                                              ; preds = %695
  br label %702

702:                                              ; preds = %701
  br label %703

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

710:                                              ; preds = %703
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = call i32 @fileno(ptr noundef %711) #12
  %713 = call i32 @isatty(i32 noundef %712) #12
  %714 = icmp ne i32 %713, 0
  br i1 %714, label %715, label %732

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

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

749:                                              ; preds = %732, %715
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #12
  br label %750

750:                                              ; preds = %749
  br label %751

751:                                              ; preds = %750
  call void @exit(i32 noundef 1) #14
  unreachable

752:                                              ; No predecessors!
  br label %753

753:                                              ; preds = %752
  br label %754

754:                                              ; preds = %753, %695
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755
  br label %757

757:                                              ; preds = %756
  %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 = load ptr, ptr %12, align 8, !tbaa !9
  %761 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %19, ptr noundef %18, ptr noundef %760)
  %762 = icmp eq i32 %761, -1
  br i1 %762, label %763, label %816

763:                                              ; preds = %757
  br label %764

764:                                              ; preds = %763
  br label %765

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

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

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

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

811:                                              ; preds = %794, %777
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #12
  br label %812

812:                                              ; preds = %811
  br label %813

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

814:                                              ; No predecessors!
  br label %815

815:                                              ; preds = %814
  br label %816

816:                                              ; preds = %815, %757
  br label %817

817:                                              ; preds = %816
  br label %818

818:                                              ; preds = %817
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #12
  store i64 0, ptr %24, align 8, !tbaa !42
  br label %819

819:                                              ; preds = %833, %818
  %820 = load i64, ptr %24, align 8, !tbaa !42
  %821 = icmp ult i64 %820, 8
  br i1 %821, label %823, label %822

822:                                              ; preds = %819
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #12
  br label %836

823:                                              ; preds = %819
  %824 = load i64, ptr %24, align 8, !tbaa !42
  %825 = getelementptr inbounds [8 x i8], ptr %10, i64 0, i64 %824
  %826 = load i8, ptr %825, align 1, !tbaa !43
  %827 = load ptr, ptr %11, align 8, !tbaa !9
  %828 = getelementptr inbounds %struct.s2n_connection, ptr %827, i32 0, i32 27
  %829 = load ptr, ptr %828, align 8, !tbaa !44
  %830 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %829, i32 0, i32 8
  %831 = load i64, ptr %24, align 8, !tbaa !42
  %832 = getelementptr inbounds [8 x i8], ptr %830, i64 0, i64 %831
  store i8 %826, ptr %832, align 1, !tbaa !43
  br label %833

833:                                              ; preds = %823
  %834 = load i64, ptr %24, align 8, !tbaa !42
  %835 = add i64 %834, 1
  store i64 %835, ptr %24, align 8, !tbaa !42
  br label %819, !llvm.loop !45

836:                                              ; preds = %822
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #12
  call void @llvm.lifetime.start.p0(i64 13, ptr %26) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %26, ptr align 1 @__const.main.message, i64 13, i1 false)
  br label %837

837:                                              ; preds = %836
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = add nsw i32 %838, 1
  store i32 %839, ptr @test_count, align 4, !tbaa !5
  %840 = load ptr, ptr %11, align 8, !tbaa !9
  %841 = getelementptr inbounds [13 x i8], ptr %26, i64 0, i64 0
  %842 = call i64 @s2n_send(ptr noundef %840, ptr noundef %841, i64 noundef 13, ptr noundef %25)
  %843 = icmp eq i64 %842, -1
  br i1 %843, label %844, label %897

844:                                              ; preds = %837
  br label %845

845:                                              ; preds = %844
  br label %846

846:                                              ; preds = %845
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #12
  %847 = call ptr @__errno_location() #13
  %848 = load i32, ptr %847, align 4, !tbaa !5
  store i32 %848, ptr %27, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = call i32 @s2n_print_stacktrace(ptr noundef %849)
  %851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %852 = trunc i8 %851 to i1
  br i1 %852, label %853, label %875

853:                                              ; preds = %846
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = call i32 @fileno(ptr noundef %854) #12
  %856 = call i32 @isatty(i32 noundef %855) #12
  %857 = icmp ne i32 %856, 0
  br i1 %857, label %858, label %875

858:                                              ; preds = %853
  %859 = load i32, ptr %27, align 4, !tbaa !5
  %860 = call ptr @__errno_location() #13
  store i32 %859, ptr %860, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror(i32 noundef %864, ptr noundef @.str.4)
  %866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @s2n_strerror_debug(i32 noundef %867, ptr noundef @.str.4)
  %869 = call ptr @__errno_location() #13
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call ptr @strerror(i32 noundef %870) #12
  %872 = call ptr @__errno_location() #13
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %861, ptr noundef @.str.2, i32 noundef %862, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 109, ptr noundef %865, ptr noundef %868, ptr noundef %871, i32 noundef %873) #12
  br label %892

875:                                              ; preds = %853, %846
  %876 = load i32, ptr %27, align 4, !tbaa !5
  %877 = call ptr @__errno_location() #13
  store i32 %876, ptr %877, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror(i32 noundef %881, ptr noundef @.str.4)
  %883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef @.str.4)
  %886 = call ptr @__errno_location() #13
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call ptr @strerror(i32 noundef %887) #12
  %889 = call ptr @__errno_location() #13
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef @.str.5, i32 noundef %879, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 109, ptr noundef %882, ptr noundef %885, ptr noundef %888, i32 noundef %890) #12
  br label %892

892:                                              ; preds = %875, %858
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #12
  br label %893

893:                                              ; preds = %892
  br label %894

894:                                              ; preds = %893
  call void @exit(i32 noundef 1) #14
  unreachable

895:                                              ; No predecessors!
  br label %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896, %837
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  %901 = load i32, ptr @test_count, align 4, !tbaa !5
  %902 = add nsw i32 %901, 1
  store i32 %902, ptr @test_count, align 4, !tbaa !5
  %903 = load ptr, ptr %11, align 8, !tbaa !9
  %904 = getelementptr inbounds %struct.s2n_connection, ptr %903, i32 0, i32 28
  %905 = getelementptr inbounds %struct.s2n_secrets, ptr %904, i32 0, i32 0
  %906 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %905, i32 0, i32 5
  %907 = getelementptr inbounds [48 x i8], ptr %906, i64 0, i64 0
  %908 = load ptr, ptr %12, align 8, !tbaa !9
  %909 = getelementptr inbounds %struct.s2n_connection, ptr %908, i32 0, i32 28
  %910 = getelementptr inbounds %struct.s2n_secrets, ptr %909, i32 0, i32 0
  %911 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %910, i32 0, i32 5
  %912 = getelementptr inbounds [48 x i8], ptr %911, i64 0, i64 0
  %913 = call i32 @memcmp(ptr noundef %907, ptr noundef %912, i64 noundef 48) #15
  %914 = icmp eq i32 %913, 0
  br i1 %914, label %915, label %968

915:                                              ; preds = %900
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #12
  %918 = call ptr @__errno_location() #13
  %919 = load i32, ptr %918, align 4, !tbaa !5
  store i32 %919, ptr %28, align 4, !tbaa !5
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = call i32 @s2n_print_stacktrace(ptr noundef %920)
  %922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %923 = trunc i8 %922 to i1
  br i1 %923, label %924, label %946

924:                                              ; preds = %917
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = call i32 @fileno(ptr noundef %925) #12
  %927 = call i32 @isatty(i32 noundef %926) #12
  %928 = icmp ne i32 %927, 0
  br i1 %928, label %929, label %946

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

946:                                              ; preds = %924, %917
  %947 = load i32, ptr %28, align 4, !tbaa !5
  %948 = call ptr @__errno_location() #13
  store i32 %947, ptr %948, align 4, !tbaa !5
  %949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %952 = load i32, ptr %951, align 4, !tbaa !5
  %953 = call ptr @s2n_strerror(i32 noundef %952, ptr noundef @.str.4)
  %954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror_debug(i32 noundef %955, ptr noundef @.str.4)
  %957 = call ptr @__errno_location() #13
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = call ptr @strerror(i32 noundef %958) #12
  %960 = call ptr @__errno_location() #13
  %961 = load i32, ptr %960, align 4, !tbaa !5
  %962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %949, ptr noundef @.str.5, i32 noundef %950, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 112, ptr noundef %953, ptr noundef %956, ptr noundef %959, i32 noundef %961) #12
  br label %963

963:                                              ; preds = %946, %929
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #12
  br label %964

964:                                              ; preds = %963
  br label %965

965:                                              ; preds = %964
  call void @exit(i32 noundef 1) #14
  unreachable

966:                                              ; No predecessors!
  br label %967

967:                                              ; preds = %966
  br label %968

968:                                              ; preds = %967, %900
  br label %969

969:                                              ; preds = %968
  br label %970

970:                                              ; preds = %969
  br label %971

971:                                              ; preds = %970
  br label %972

972:                                              ; preds = %971
  %973 = load i32, ptr @test_count, align 4, !tbaa !5
  %974 = add nsw i32 %973, 1
  store i32 %974, ptr @test_count, align 4, !tbaa !5
  %975 = load ptr, ptr %11, align 8, !tbaa !9
  %976 = getelementptr inbounds %struct.s2n_connection, ptr %975, i32 0, i32 27
  %977 = load ptr, ptr %976, align 8, !tbaa !44
  %978 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %977, i32 0, i32 8
  %979 = getelementptr inbounds [8 x i8], ptr %978, i64 0, i64 0
  %980 = getelementptr inbounds [8 x i8], ptr %15, i64 0, i64 0
  %981 = call i32 @memcmp(ptr noundef %979, ptr noundef %980, i64 noundef 8) #15
  %982 = icmp eq i32 %981, 0
  br i1 %982, label %1036, label %983

983:                                              ; preds = %972
  br label %984

984:                                              ; preds = %983
  br label %985

985:                                              ; preds = %984
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #12
  %986 = call ptr @__errno_location() #13
  %987 = load i32, ptr %986, align 4, !tbaa !5
  store i32 %987, ptr %29, align 4, !tbaa !5
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = call i32 @s2n_print_stacktrace(ptr noundef %988)
  %990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %991 = trunc i8 %990 to i1
  br i1 %991, label %992, label %1014

992:                                              ; preds = %985
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = call i32 @fileno(ptr noundef %993) #12
  %995 = call i32 @isatty(i32 noundef %994) #12
  %996 = icmp ne i32 %995, 0
  br i1 %996, label %997, label %1014

997:                                              ; preds = %992
  %998 = load i32, ptr %29, align 4, !tbaa !5
  %999 = call ptr @__errno_location() #13
  store i32 %998, ptr %999, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef @.str.4)
  %1005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call ptr @s2n_strerror_debug(i32 noundef %1006, ptr noundef @.str.4)
  %1008 = call ptr @__errno_location() #13
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = call ptr @strerror(i32 noundef %1009) #12
  %1011 = call ptr @__errno_location() #13
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef @.str.2, i32 noundef %1001, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1004, ptr noundef %1007, ptr noundef %1010, i32 noundef %1012) #12
  br label %1031

1014:                                             ; preds = %992, %985
  %1015 = load i32, ptr %29, align 4, !tbaa !5
  %1016 = call ptr @__errno_location() #13
  store i32 %1015, ptr %1016, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = load i32, ptr @test_count, align 4, !tbaa !5
  %1019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror(i32 noundef %1020, ptr noundef @.str.4)
  %1022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror_debug(i32 noundef %1023, ptr noundef @.str.4)
  %1025 = call ptr @__errno_location() #13
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @strerror(i32 noundef %1026) #12
  %1028 = call ptr @__errno_location() #13
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1017, ptr noundef @.str.5, i32 noundef %1018, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1021, ptr noundef %1024, ptr noundef %1027, i32 noundef %1029) #12
  br label %1031

1031:                                             ; preds = %1014, %997
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #12
  br label %1032

1032:                                             ; preds = %1031
  br label %1033

1033:                                             ; preds = %1032
  call void @exit(i32 noundef 1) #14
  unreachable

1034:                                             ; No predecessors!
  br label %1035

1035:                                             ; preds = %1034
  br label %1036

1036:                                             ; preds = %1035, %972
  br label %1037

1037:                                             ; preds = %1036
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

1039:                                             ; preds = %1038
  br label %1040

1040:                                             ; preds = %1039
  call void @llvm.lifetime.start.p0(i64 100, ptr %30) #12
  br label %1041

1041:                                             ; preds = %1040
  %1042 = load i32, ptr @test_count, align 4, !tbaa !5
  %1043 = add nsw i32 %1042, 1
  store i32 %1043, ptr @test_count, align 4, !tbaa !5
  %1044 = load ptr, ptr %12, align 8, !tbaa !9
  %1045 = getelementptr inbounds [100 x i8], ptr %30, i64 0, i64 0
  %1046 = call i64 @s2n_recv(ptr noundef %1044, ptr noundef %1045, i64 noundef 13, ptr noundef %25)
  %1047 = icmp eq i64 %1046, -1
  br i1 %1047, label %1048, label %1101

1048:                                             ; preds = %1041
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

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

1057:                                             ; preds = %1050
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = call i32 @fileno(ptr noundef %1058) #12
  %1060 = call i32 @isatty(i32 noundef %1059) #12
  %1061 = icmp ne i32 %1060, 0
  br i1 %1061, label %1062, label %1079

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

1079:                                             ; preds = %1057, %1050
  %1080 = load i32, ptr %31, align 4, !tbaa !5
  %1081 = call ptr @__errno_location() #13
  store i32 %1080, ptr %1081, align 4, !tbaa !5
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = load i32, ptr @test_count, align 4, !tbaa !5
  %1084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror(i32 noundef %1085, ptr noundef @.str.4)
  %1087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = call ptr @s2n_strerror_debug(i32 noundef %1088, ptr noundef @.str.4)
  %1090 = call ptr @__errno_location() #13
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = call ptr @strerror(i32 noundef %1091) #12
  %1093 = call ptr @__errno_location() #13
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1082, ptr noundef @.str.5, i32 noundef %1083, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1086, ptr noundef %1089, ptr noundef %1092, i32 noundef %1094) #12
  br label %1096

1096:                                             ; preds = %1079, %1062
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #12
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

1098:                                             ; preds = %1097
  call void @exit(i32 noundef 1) #14
  unreachable

1099:                                             ; No predecessors!
  br label %1100

1100:                                             ; preds = %1099
  br label %1101

1101:                                             ; preds = %1100, %1041
  br label %1102

1102:                                             ; preds = %1101
  br label %1103

1103:                                             ; preds = %1102
  br label %1104

1104:                                             ; preds = %1103
  br label %1105

1105:                                             ; preds = %1104
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = add nsw i32 %1106, 1
  store i32 %1107, ptr @test_count, align 4, !tbaa !5
  %1108 = getelementptr inbounds [100 x i8], ptr %30, i64 0, i64 0
  %1109 = getelementptr inbounds [13 x i8], ptr %26, i64 0, i64 0
  %1110 = call i32 @memcmp(ptr noundef %1108, ptr noundef %1109, i64 noundef 13) #15
  %1111 = icmp eq i32 %1110, 0
  br i1 %1111, label %1165, label %1112

1112:                                             ; preds = %1105
  br label %1113

1113:                                             ; preds = %1112
  br label %1114

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

1121:                                             ; preds = %1114
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = call i32 @fileno(ptr noundef %1122) #12
  %1124 = call i32 @isatty(i32 noundef %1123) #12
  %1125 = icmp ne i32 %1124, 0
  br i1 %1125, label %1126, label %1143

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

1143:                                             ; preds = %1121, %1114
  %1144 = load i32, ptr %32, align 4, !tbaa !5
  %1145 = call ptr @__errno_location() #13
  store i32 %1144, ptr %1145, align 4, !tbaa !5
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = load i32, ptr @test_count, align 4, !tbaa !5
  %1148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = call ptr @s2n_strerror(i32 noundef %1149, ptr noundef @.str.4)
  %1151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror_debug(i32 noundef %1152, ptr noundef @.str.4)
  %1154 = call ptr @__errno_location() #13
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call ptr @strerror(i32 noundef %1155) #12
  %1157 = call ptr @__errno_location() #13
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1146, ptr noundef @.str.5, i32 noundef %1147, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1150, ptr noundef %1153, ptr noundef %1156, i32 noundef %1158) #12
  br label %1160

1160:                                             ; preds = %1143, %1126
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %1161

1161:                                             ; preds = %1160
  br label %1162

1162:                                             ; preds = %1161
  call void @exit(i32 noundef 1) #14
  unreachable

1163:                                             ; No predecessors!
  br label %1164

1164:                                             ; preds = %1163
  br label %1165

1165:                                             ; preds = %1164, %1105
  br label %1166

1166:                                             ; preds = %1165
  br label %1167

1167:                                             ; preds = %1166
  br label %1168

1168:                                             ; preds = %1167
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169
  br label %1171

1171:                                             ; preds = %1170
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = add nsw i32 %1172, 1
  store i32 %1173, ptr @test_count, align 4, !tbaa !5
  %1174 = load ptr, ptr %12, align 8, !tbaa !9
  %1175 = getelementptr inbounds %struct.s2n_connection, ptr %1174, i32 0, i32 28
  %1176 = getelementptr inbounds %struct.s2n_secrets, ptr %1175, i32 0, i32 0
  %1177 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %1176, i32 0, i32 5
  %1178 = getelementptr inbounds [48 x i8], ptr %1177, i64 0, i64 0
  %1179 = load ptr, ptr %11, align 8, !tbaa !9
  %1180 = getelementptr inbounds %struct.s2n_connection, ptr %1179, i32 0, i32 28
  %1181 = getelementptr inbounds %struct.s2n_secrets, ptr %1180, i32 0, i32 0
  %1182 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %1181, i32 0, i32 5
  %1183 = getelementptr inbounds [48 x i8], ptr %1182, i64 0, i64 0
  %1184 = call i32 @memcmp(ptr noundef %1178, ptr noundef %1183, i64 noundef 48) #15
  %1185 = icmp eq i32 %1184, 0
  br i1 %1185, label %1239, label %1186

1186:                                             ; preds = %1171
  br label %1187

1187:                                             ; preds = %1186
  br label %1188

1188:                                             ; preds = %1187
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #12
  %1189 = call ptr @__errno_location() #13
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  store i32 %1190, ptr %33, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = call i32 @s2n_print_stacktrace(ptr noundef %1191)
  %1193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1194 = trunc i8 %1193 to i1
  br i1 %1194, label %1195, label %1217

1195:                                             ; preds = %1188
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = call i32 @fileno(ptr noundef %1196) #12
  %1198 = call i32 @isatty(i32 noundef %1197) #12
  %1199 = icmp ne i32 %1198, 0
  br i1 %1199, label %1200, label %1217

1200:                                             ; preds = %1195
  %1201 = load i32, ptr %33, align 4, !tbaa !5
  %1202 = call ptr @__errno_location() #13
  store i32 %1201, ptr %1202, align 4, !tbaa !5
  %1203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1204 = load i32, ptr @test_count, align 4, !tbaa !5
  %1205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1206 = load i32, ptr %1205, align 4, !tbaa !5
  %1207 = call ptr @s2n_strerror(i32 noundef %1206, ptr noundef @.str.4)
  %1208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1209 = load i32, ptr %1208, align 4, !tbaa !5
  %1210 = call ptr @s2n_strerror_debug(i32 noundef %1209, ptr noundef @.str.4)
  %1211 = call ptr @__errno_location() #13
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call ptr @strerror(i32 noundef %1212) #12
  %1214 = call ptr @__errno_location() #13
  %1215 = load i32, ptr %1214, align 4, !tbaa !5
  %1216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1203, ptr noundef @.str.2, i32 noundef %1204, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 119, ptr noundef %1207, ptr noundef %1210, ptr noundef %1213, i32 noundef %1215) #12
  br label %1234

1217:                                             ; preds = %1195, %1188
  %1218 = load i32, ptr %33, align 4, !tbaa !5
  %1219 = call ptr @__errno_location() #13
  store i32 %1218, ptr %1219, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror(i32 noundef %1223, ptr noundef @.str.4)
  %1225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  %1227 = call ptr @s2n_strerror_debug(i32 noundef %1226, ptr noundef @.str.4)
  %1228 = call ptr @__errno_location() #13
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call ptr @strerror(i32 noundef %1229) #12
  %1231 = call ptr @__errno_location() #13
  %1232 = load i32, ptr %1231, align 4, !tbaa !5
  %1233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1220, ptr noundef @.str.5, i32 noundef %1221, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 119, ptr noundef %1224, ptr noundef %1227, ptr noundef %1230, i32 noundef %1232) #12
  br label %1234

1234:                                             ; preds = %1217, %1200
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #12
  br label %1235

1235:                                             ; preds = %1234
  br label %1236

1236:                                             ; preds = %1235
  call void @exit(i32 noundef 1) #14
  unreachable

1237:                                             ; No predecessors!
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238, %1171
  br label %1240

1240:                                             ; preds = %1239
  br label %1241

1241:                                             ; preds = %1240
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

1244:                                             ; preds = %1243
  br label %1245

1245:                                             ; preds = %1244
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = add nsw i32 %1246, 1
  store i32 %1247, ptr @test_count, align 4, !tbaa !5
  %1248 = load ptr, ptr %12, align 8, !tbaa !9
  %1249 = getelementptr inbounds %struct.s2n_connection, ptr %1248, i32 0, i32 27
  %1250 = load ptr, ptr %1249, align 8, !tbaa !44
  %1251 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1250, i32 0, i32 8
  %1252 = getelementptr inbounds [8 x i8], ptr %1251, i64 0, i64 0
  %1253 = getelementptr inbounds [8 x i8], ptr %15, i64 0, i64 0
  %1254 = call i32 @memcmp(ptr noundef %1252, ptr noundef %1253, i64 noundef 8) #15
  %1255 = icmp eq i32 %1254, 0
  br i1 %1255, label %1309, label %1256

1256:                                             ; preds = %1245
  br label %1257

1257:                                             ; preds = %1256
  br label %1258

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

1265:                                             ; preds = %1258
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = call i32 @fileno(ptr noundef %1266) #12
  %1268 = call i32 @isatty(i32 noundef %1267) #12
  %1269 = icmp ne i32 %1268, 0
  br i1 %1269, label %1270, label %1287

1270:                                             ; preds = %1265
  %1271 = load i32, ptr %34, align 4, !tbaa !5
  %1272 = call ptr @__errno_location() #13
  store i32 %1271, ptr %1272, align 4, !tbaa !5
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror(i32 noundef %1276, ptr noundef @.str.4)
  %1278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @s2n_strerror_debug(i32 noundef %1279, ptr noundef @.str.4)
  %1281 = call ptr @__errno_location() #13
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @strerror(i32 noundef %1282) #12
  %1284 = call ptr @__errno_location() #13
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1273, ptr noundef @.str.2, i32 noundef %1274, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1277, ptr noundef %1280, ptr noundef %1283, i32 noundef %1285) #12
  br label %1304

1287:                                             ; preds = %1265, %1258
  %1288 = load i32, ptr %34, align 4, !tbaa !5
  %1289 = call ptr @__errno_location() #13
  store i32 %1288, ptr %1289, align 4, !tbaa !5
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call ptr @s2n_strerror(i32 noundef %1293, ptr noundef @.str.4)
  %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_debug(i32 noundef %1296, ptr noundef @.str.4)
  %1298 = call ptr @__errno_location() #13
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @strerror(i32 noundef %1299) #12
  %1301 = call ptr @__errno_location() #13
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef @.str.5, i32 noundef %1291, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1294, ptr noundef %1297, ptr noundef %1300, i32 noundef %1302) #12
  br label %1304

1304:                                             ; preds = %1287, %1270
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #12
  br label %1305

1305:                                             ; preds = %1304
  br label %1306

1306:                                             ; preds = %1305
  call void @exit(i32 noundef 1) #14
  unreachable

1307:                                             ; No predecessors!
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

1309:                                             ; preds = %1308, %1245
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  br label %1312

1312:                                             ; preds = %1311
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

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

1320:                                             ; preds = %1314
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #12
  %1323 = call ptr @__errno_location() #13
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  store i32 %1324, ptr %35, 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) #12
  %1332 = call i32 @isatty(i32 noundef %1331) #12
  %1333 = icmp ne i32 %1332, 0
  br i1 %1333, label %1334, label %1351

1334:                                             ; preds = %1329
  %1335 = load i32, ptr %35, align 4, !tbaa !5
  %1336 = call ptr @__errno_location() #13
  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() #13
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #12
  %1348 = call ptr @__errno_location() #13
  %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.24, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1341, ptr noundef %1344, ptr noundef %1347, i32 noundef %1349) #12
  br label %1368

1351:                                             ; preds = %1329, %1322
  %1352 = load i32, ptr %35, align 4, !tbaa !5
  %1353 = call ptr @__errno_location() #13
  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() #13
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @strerror(i32 noundef %1363) #12
  %1365 = call ptr @__errno_location() #13
  %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.24, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1358, ptr noundef %1361, ptr noundef %1364, i32 noundef %1366) #12
  br label %1368

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

1369:                                             ; preds = %1368
  br label %1370

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

1371:                                             ; No predecessors!
  br label %1372

1372:                                             ; preds = %1371
  br label %1373

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

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = add nsw i32 %1377, 1
  store i32 %1378, ptr @test_count, align 4, !tbaa !5
  %1379 = load ptr, ptr %12, align 8, !tbaa !9
  %1380 = call i32 @s2n_connection_free(ptr noundef %1379)
  %1381 = icmp eq i32 %1380, -1
  br i1 %1381, label %1382, label %1435

1382:                                             ; preds = %1376
  br label %1383

1383:                                             ; preds = %1382
  br label %1384

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

1391:                                             ; preds = %1384
  %1392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1393 = call i32 @fileno(ptr noundef %1392) #12
  %1394 = call i32 @isatty(i32 noundef %1393) #12
  %1395 = icmp ne i32 %1394, 0
  br i1 %1395, label %1396, label %1413

1396:                                             ; preds = %1391
  %1397 = load i32, ptr %36, align 4, !tbaa !5
  %1398 = call ptr @__errno_location() #13
  store i32 %1397, ptr %1398, align 4, !tbaa !5
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = load i32, ptr @test_count, align 4, !tbaa !5
  %1401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = call ptr @s2n_strerror(i32 noundef %1402, ptr noundef @.str.4)
  %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_debug(i32 noundef %1405, ptr noundef @.str.4)
  %1407 = call ptr @__errno_location() #13
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call ptr @strerror(i32 noundef %1408) #12
  %1410 = call ptr @__errno_location() #13
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1399, ptr noundef @.str.2, i32 noundef %1400, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1403, ptr noundef %1406, ptr noundef %1409, i32 noundef %1411) #12
  br label %1430

1413:                                             ; preds = %1391, %1384
  %1414 = load i32, ptr %36, align 4, !tbaa !5
  %1415 = call ptr @__errno_location() #13
  store i32 %1414, ptr %1415, align 4, !tbaa !5
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = load i32, ptr @test_count, align 4, !tbaa !5
  %1418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1419 = load i32, ptr %1418, align 4, !tbaa !5
  %1420 = call ptr @s2n_strerror(i32 noundef %1419, ptr noundef @.str.4)
  %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_debug(i32 noundef %1422, ptr noundef @.str.4)
  %1424 = call ptr @__errno_location() #13
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call ptr @strerror(i32 noundef %1425) #12
  %1427 = call ptr @__errno_location() #13
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1416, ptr noundef @.str.5, i32 noundef %1417, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1420, ptr noundef %1423, ptr noundef %1426, i32 noundef %1428) #12
  br label %1430

1430:                                             ; preds = %1413, %1396
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #12
  br label %1431

1431:                                             ; preds = %1430
  br label %1432

1432:                                             ; preds = %1431
  call void @exit(i32 noundef 1) #14
  unreachable

1433:                                             ; No predecessors!
  br label %1434

1434:                                             ; preds = %1433
  br label %1435

1435:                                             ; preds = %1434, %1376
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

1437:                                             ; preds = %1436
  call void @llvm.lifetime.end.p0(i64 100, ptr %30) #12
  call void @llvm.lifetime.end.p0(i64 13, ptr %26) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #12
  %1438 = call i32 @s2n_stuffer_free(ptr noundef %19)
  call void @llvm.lifetime.end.p0(i64 40, ptr %19) #12
  %1439 = call i32 @s2n_stuffer_free(ptr noundef %18)
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #12
  br label %1440

1440:                                             ; preds = %1437
  %1441 = load i32, ptr @test_count, align 4, !tbaa !5
  %1442 = add nsw i32 %1441, 1
  store i32 %1442, ptr @test_count, align 4, !tbaa !5
  %1443 = call i32 (...) @s2n_disable_tls13_in_test()
  %1444 = icmp eq i32 %1443, -1
  br i1 %1444, label %1445, label %1498

1445:                                             ; preds = %1440
  br label %1446

1446:                                             ; preds = %1445
  br label %1447

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

1454:                                             ; preds = %1447
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = call i32 @fileno(ptr noundef %1455) #12
  %1457 = call i32 @isatty(i32 noundef %1456) #12
  %1458 = icmp ne i32 %1457, 0
  br i1 %1458, label %1459, label %1476

1459:                                             ; preds = %1454
  %1460 = load i32, ptr %37, align 4, !tbaa !5
  %1461 = call ptr @__errno_location() #13
  store i32 %1460, ptr %1461, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror(i32 noundef %1465, ptr noundef @.str.4)
  %1467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror_debug(i32 noundef %1468, ptr noundef @.str.4)
  %1470 = call ptr @__errno_location() #13
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call ptr @strerror(i32 noundef %1471) #12
  %1473 = call ptr @__errno_location() #13
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef @.str.2, i32 noundef %1463, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 128, ptr noundef %1466, ptr noundef %1469, ptr noundef %1472, i32 noundef %1474) #12
  br label %1493

1476:                                             ; preds = %1454, %1447
  %1477 = load i32, ptr %37, align 4, !tbaa !5
  %1478 = call ptr @__errno_location() #13
  store i32 %1477, ptr %1478, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1482 = load i32, ptr %1481, align 4, !tbaa !5
  %1483 = call ptr @s2n_strerror(i32 noundef %1482, ptr noundef @.str.4)
  %1484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror_debug(i32 noundef %1485, ptr noundef @.str.4)
  %1487 = call ptr @__errno_location() #13
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call ptr @strerror(i32 noundef %1488) #12
  %1490 = call ptr @__errno_location() #13
  %1491 = load i32, ptr %1490, align 4, !tbaa !5
  %1492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1479, ptr noundef @.str.5, i32 noundef %1480, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 128, ptr noundef %1483, ptr noundef %1486, ptr noundef %1489, i32 noundef %1491) #12
  br label %1493

1493:                                             ; preds = %1476, %1459
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #12
  br label %1494

1494:                                             ; preds = %1493
  br label %1495

1495:                                             ; preds = %1494
  call void @exit(i32 noundef 1) #14
  unreachable

1496:                                             ; No predecessors!
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

1498:                                             ; preds = %1497, %1440
  br label %1499

1499:                                             ; preds = %1498
  br label %1500

1500:                                             ; preds = %1499
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #12
  store ptr null, ptr %38, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #12
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %1501

1501:                                             ; preds = %1500
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = add nsw i32 %1502, 1
  store i32 %1503, ptr @test_count, align 4, !tbaa !5
  %1504 = call noalias ptr @malloc(i64 noundef 12000) #16
  store ptr %1504, ptr %38, align 8, !tbaa !9
  %1505 = icmp eq ptr %1504, null
  br i1 %1505, label %1506, label %1559

1506:                                             ; preds = %1501
  br label %1507

1507:                                             ; preds = %1506
  br label %1508

1508:                                             ; preds = %1507
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #12
  %1509 = call ptr @__errno_location() #13
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  store i32 %1510, ptr %40, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @s2n_print_stacktrace(ptr noundef %1511)
  %1513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1514 = trunc i8 %1513 to i1
  br i1 %1514, label %1515, label %1537

1515:                                             ; preds = %1508
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = call i32 @fileno(ptr noundef %1516) #12
  %1518 = call i32 @isatty(i32 noundef %1517) #12
  %1519 = icmp ne i32 %1518, 0
  br i1 %1519, label %1520, label %1537

1520:                                             ; preds = %1515
  %1521 = load i32, ptr %40, align 4, !tbaa !5
  %1522 = call ptr @__errno_location() #13
  store i32 %1521, ptr %1522, align 4, !tbaa !5
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1526 = load i32, ptr %1525, align 4, !tbaa !5
  %1527 = call ptr @s2n_strerror(i32 noundef %1526, ptr noundef @.str.4)
  %1528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror_debug(i32 noundef %1529, ptr noundef @.str.4)
  %1531 = call ptr @__errno_location() #13
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call ptr @strerror(i32 noundef %1532) #12
  %1534 = call ptr @__errno_location() #13
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1523, ptr noundef @.str.2, i32 noundef %1524, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 132, ptr noundef %1527, ptr noundef %1530, ptr noundef %1533, i32 noundef %1535) #12
  br label %1554

1537:                                             ; preds = %1515, %1508
  %1538 = load i32, ptr %40, align 4, !tbaa !5
  %1539 = call ptr @__errno_location() #13
  store i32 %1538, ptr %1539, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  %1544 = call ptr @s2n_strerror(i32 noundef %1543, ptr noundef @.str.4)
  %1545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror_debug(i32 noundef %1546, ptr noundef @.str.4)
  %1548 = call ptr @__errno_location() #13
  %1549 = load i32, ptr %1548, align 4, !tbaa !5
  %1550 = call ptr @strerror(i32 noundef %1549) #12
  %1551 = call ptr @__errno_location() #13
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1540, ptr noundef @.str.5, i32 noundef %1541, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 132, ptr noundef %1544, ptr noundef %1547, ptr noundef %1550, i32 noundef %1552) #12
  br label %1554

1554:                                             ; preds = %1537, %1520
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #12
  br label %1555

1555:                                             ; preds = %1554
  br label %1556

1556:                                             ; preds = %1555
  call void @exit(i32 noundef 1) #14
  unreachable

1557:                                             ; No predecessors!
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

1559:                                             ; preds = %1558, %1501
  br label %1560

1560:                                             ; preds = %1559
  br label %1561

1561:                                             ; preds = %1560
  br label %1562

1562:                                             ; preds = %1561
  %1563 = load i32, ptr @test_count, align 4, !tbaa !5
  %1564 = add nsw i32 %1563, 1
  store i32 %1564, ptr @test_count, align 4, !tbaa !5
  %1565 = call noalias ptr @malloc(i64 noundef 12000) #16
  store ptr %1565, ptr %39, align 8, !tbaa !9
  %1566 = icmp eq ptr %1565, null
  br i1 %1566, label %1567, label %1620

1567:                                             ; preds = %1562
  br label %1568

1568:                                             ; preds = %1567
  br label %1569

1569:                                             ; preds = %1568
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #12
  %1570 = call ptr @__errno_location() #13
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  store i32 %1571, ptr %41, align 4, !tbaa !5
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = call i32 @s2n_print_stacktrace(ptr noundef %1572)
  %1574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1575 = trunc i8 %1574 to i1
  br i1 %1575, label %1576, label %1598

1576:                                             ; preds = %1569
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @fileno(ptr noundef %1577) #12
  %1579 = call i32 @isatty(i32 noundef %1578) #12
  %1580 = icmp ne i32 %1579, 0
  br i1 %1580, label %1581, label %1598

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

1598:                                             ; preds = %1576, %1569
  %1599 = load i32, ptr %41, align 4, !tbaa !5
  %1600 = call ptr @__errno_location() #13
  store i32 %1599, ptr %1600, align 4, !tbaa !5
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = load i32, ptr @test_count, align 4, !tbaa !5
  %1603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call ptr @s2n_strerror(i32 noundef %1604, ptr noundef @.str.4)
  %1606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror_debug(i32 noundef %1607, ptr noundef @.str.4)
  %1609 = call ptr @__errno_location() #13
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call ptr @strerror(i32 noundef %1610) #12
  %1612 = call ptr @__errno_location() #13
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1601, ptr noundef @.str.5, i32 noundef %1602, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 133, ptr noundef %1605, ptr noundef %1608, ptr noundef %1611, i32 noundef %1613) #12
  br label %1615

1615:                                             ; preds = %1598, %1581
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #12
  br label %1616

1616:                                             ; preds = %1615
  br label %1617

1617:                                             ; preds = %1616
  call void @exit(i32 noundef 1) #14
  unreachable

1618:                                             ; No predecessors!
  br label %1619

1619:                                             ; preds = %1618
  br label %1620

1620:                                             ; preds = %1619, %1562
  br label %1621

1621:                                             ; preds = %1620
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

1623:                                             ; preds = %1622
  %1624 = load i32, ptr @test_count, align 4, !tbaa !5
  %1625 = add nsw i32 %1624, 1
  store i32 %1625, ptr @test_count, align 4, !tbaa !5
  %1626 = call i32 @setenv(ptr noundef @.str.29, ptr noundef @.str.30, i32 noundef 0) #12
  %1627 = icmp eq i32 %1626, -1
  br i1 %1627, label %1628, label %1681

1628:                                             ; preds = %1623
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #12
  %1631 = call ptr @__errno_location() #13
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  store i32 %1632, ptr %42, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = call i32 @s2n_print_stacktrace(ptr noundef %1633)
  %1635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1636 = trunc i8 %1635 to i1
  br i1 %1636, label %1637, label %1659

1637:                                             ; preds = %1630
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @fileno(ptr noundef %1638) #12
  %1640 = call i32 @isatty(i32 noundef %1639) #12
  %1641 = icmp ne i32 %1640, 0
  br i1 %1641, label %1642, label %1659

1642:                                             ; preds = %1637
  %1643 = load i32, ptr %42, align 4, !tbaa !5
  %1644 = call ptr @__errno_location() #13
  store i32 %1643, ptr %1644, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef @.str.4)
  %1650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror_debug(i32 noundef %1651, ptr noundef @.str.4)
  %1653 = call ptr @__errno_location() #13
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call ptr @strerror(i32 noundef %1654) #12
  %1656 = call ptr @__errno_location() #13
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef @.str.2, i32 noundef %1646, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 134, ptr noundef %1649, ptr noundef %1652, ptr noundef %1655, i32 noundef %1657) #12
  br label %1676

1659:                                             ; preds = %1637, %1630
  %1660 = load i32, ptr %42, align 4, !tbaa !5
  %1661 = call ptr @__errno_location() #13
  store i32 %1660, ptr %1661, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror(i32 noundef %1665, ptr noundef @.str.4)
  %1667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef @.str.4)
  %1670 = call ptr @__errno_location() #13
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @strerror(i32 noundef %1671) #12
  %1673 = call ptr @__errno_location() #13
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1662, ptr noundef @.str.5, i32 noundef %1663, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 134, ptr noundef %1666, ptr noundef %1669, ptr noundef %1672, i32 noundef %1674) #12
  br label %1676

1676:                                             ; preds = %1659, %1642
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #12
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

1678:                                             ; preds = %1677
  call void @exit(i32 noundef 1) #14
  unreachable

1679:                                             ; No predecessors!
  br label %1680

1680:                                             ; preds = %1679
  br label %1681

1681:                                             ; preds = %1680, %1623
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #12
  br label %1684

1684:                                             ; preds = %1683
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = add nsw i32 %1685, 1
  store i32 %1686, ptr @test_count, align 4, !tbaa !5
  %1687 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %43)
  %1688 = icmp eq i32 %1687, -1
  br i1 %1688, label %1689, label %1742

1689:                                             ; preds = %1684
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #12
  %1692 = call ptr @__errno_location() #13
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  store i32 %1693, ptr %44, align 4, !tbaa !5
  %1694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1695 = call i32 @s2n_print_stacktrace(ptr noundef %1694)
  %1696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1697 = trunc i8 %1696 to i1
  br i1 %1697, label %1698, label %1720

1698:                                             ; preds = %1691
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = call i32 @fileno(ptr noundef %1699) #12
  %1701 = call i32 @isatty(i32 noundef %1700) #12
  %1702 = icmp ne i32 %1701, 0
  br i1 %1702, label %1703, label %1720

1703:                                             ; preds = %1698
  %1704 = load i32, ptr %44, align 4, !tbaa !5
  %1705 = call ptr @__errno_location() #13
  store i32 %1704, ptr %1705, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror(i32 noundef %1709, ptr noundef @.str.4)
  %1711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call ptr @s2n_strerror_debug(i32 noundef %1712, ptr noundef @.str.4)
  %1714 = call ptr @__errno_location() #13
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call ptr @strerror(i32 noundef %1715) #12
  %1717 = call ptr @__errno_location() #13
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef @.str.2, i32 noundef %1707, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 136, ptr noundef %1710, ptr noundef %1713, ptr noundef %1716, i32 noundef %1718) #12
  br label %1737

1720:                                             ; preds = %1698, %1691
  %1721 = load i32, ptr %44, align 4, !tbaa !5
  %1722 = call ptr @__errno_location() #13
  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() #13
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @strerror(i32 noundef %1732) #12
  %1734 = call ptr @__errno_location() #13
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1723, ptr noundef @.str.5, i32 noundef %1724, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 136, ptr noundef %1727, ptr noundef %1730, ptr noundef %1733, i32 noundef %1735) #12
  br label %1737

1737:                                             ; preds = %1720, %1703
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #12
  br label %1738

1738:                                             ; preds = %1737
  br label %1739

1739:                                             ; preds = %1738
  call void @exit(i32 noundef 1) #14
  unreachable

1740:                                             ; No predecessors!
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741, %1684
  br label %1743

1743:                                             ; preds = %1742
  br label %1744

1744:                                             ; preds = %1743
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #12
  store ptr null, ptr %45, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #12
  store ptr null, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #12
  store ptr null, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #12
  store ptr null, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #12
  store i32 0, ptr %49, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #12
  store ptr null, ptr %50, align 8, !tbaa !9
  br label %1745

1745:                                             ; preds = %1744
  %1746 = load i32, ptr @test_count, align 4, !tbaa !5
  %1747 = add nsw i32 %1746, 1
  store i32 %1747, ptr @test_count, align 4, !tbaa !5
  %1748 = call ptr @s2n_config_new()
  store ptr %1748, ptr %50, align 8, !tbaa !9
  %1749 = icmp eq ptr %1748, null
  br i1 %1749, label %1750, label %1803

1750:                                             ; preds = %1745
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

1752:                                             ; preds = %1751
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #12
  %1753 = call ptr @__errno_location() #13
  %1754 = load i32, ptr %1753, align 4, !tbaa !5
  store i32 %1754, ptr %51, align 4, !tbaa !5
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = call i32 @s2n_print_stacktrace(ptr noundef %1755)
  %1757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1758 = trunc i8 %1757 to i1
  br i1 %1758, label %1759, label %1781

1759:                                             ; preds = %1752
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = call i32 @fileno(ptr noundef %1760) #12
  %1762 = call i32 @isatty(i32 noundef %1761) #12
  %1763 = icmp ne i32 %1762, 0
  br i1 %1763, label %1764, label %1781

1764:                                             ; preds = %1759
  %1765 = load i32, ptr %51, align 4, !tbaa !5
  %1766 = call ptr @__errno_location() #13
  store i32 %1765, ptr %1766, align 4, !tbaa !5
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = load i32, ptr @test_count, align 4, !tbaa !5
  %1769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @s2n_strerror(i32 noundef %1770, ptr noundef @.str.4)
  %1772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror_debug(i32 noundef %1773, ptr noundef @.str.4)
  %1775 = call ptr @__errno_location() #13
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call ptr @strerror(i32 noundef %1776) #12
  %1778 = call ptr @__errno_location() #13
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1767, ptr noundef @.str.2, i32 noundef %1768, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 145, ptr noundef %1771, ptr noundef %1774, ptr noundef %1777, i32 noundef %1779) #12
  br label %1798

1781:                                             ; preds = %1759, %1752
  %1782 = load i32, ptr %51, align 4, !tbaa !5
  %1783 = call ptr @__errno_location() #13
  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() #13
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @strerror(i32 noundef %1793) #12
  %1795 = call ptr @__errno_location() #13
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1784, ptr noundef @.str.5, i32 noundef %1785, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 145, ptr noundef %1788, ptr noundef %1791, ptr noundef %1794, i32 noundef %1796) #12
  br label %1798

1798:                                             ; preds = %1781, %1764
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #12
  br label %1799

1799:                                             ; preds = %1798
  br label %1800

1800:                                             ; preds = %1799
  call void @exit(i32 noundef 1) #14
  unreachable

1801:                                             ; No predecessors!
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

1803:                                             ; preds = %1802, %1745
  br label %1804

1804:                                             ; preds = %1803
  br label %1805

1805:                                             ; preds = %1804
  br label %1806

1806:                                             ; preds = %1805
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = add nsw i32 %1807, 1
  store i32 %1808, ptr @test_count, align 4, !tbaa !5
  %1809 = load ptr, ptr %50, align 8, !tbaa !9
  %1810 = call i32 @s2n_config_set_check_stapled_ocsp_response(ptr noundef %1809, i8 noundef zeroext 0)
  %1811 = icmp eq i32 %1810, -1
  br i1 %1811, label %1812, label %1865

1812:                                             ; preds = %1806
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

1814:                                             ; preds = %1813
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #12
  %1815 = call ptr @__errno_location() #13
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  store i32 %1816, ptr %52, align 4, !tbaa !5
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = call i32 @s2n_print_stacktrace(ptr noundef %1817)
  %1819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1820 = trunc i8 %1819 to i1
  br i1 %1820, label %1821, label %1843

1821:                                             ; preds = %1814
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = call i32 @fileno(ptr noundef %1822) #12
  %1824 = call i32 @isatty(i32 noundef %1823) #12
  %1825 = icmp ne i32 %1824, 0
  br i1 %1825, label %1826, label %1843

1826:                                             ; preds = %1821
  %1827 = load i32, ptr %52, align 4, !tbaa !5
  %1828 = call ptr @__errno_location() #13
  store i32 %1827, ptr %1828, align 4, !tbaa !5
  %1829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1830 = load i32, ptr @test_count, align 4, !tbaa !5
  %1831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call ptr @s2n_strerror(i32 noundef %1832, ptr noundef @.str.4)
  %1834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call ptr @s2n_strerror_debug(i32 noundef %1835, ptr noundef @.str.4)
  %1837 = call ptr @__errno_location() #13
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call ptr @strerror(i32 noundef %1838) #12
  %1840 = call ptr @__errno_location() #13
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1829, ptr noundef @.str.2, i32 noundef %1830, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 146, ptr noundef %1833, ptr noundef %1836, ptr noundef %1839, i32 noundef %1841) #12
  br label %1860

1843:                                             ; preds = %1821, %1814
  %1844 = load i32, ptr %52, align 4, !tbaa !5
  %1845 = call ptr @__errno_location() #13
  store i32 %1844, ptr %1845, align 4, !tbaa !5
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror(i32 noundef %1849, ptr noundef @.str.4)
  %1851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror_debug(i32 noundef %1852, ptr noundef @.str.4)
  %1854 = call ptr @__errno_location() #13
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call ptr @strerror(i32 noundef %1855) #12
  %1857 = call ptr @__errno_location() #13
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1846, ptr noundef @.str.5, i32 noundef %1847, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 146, ptr noundef %1850, ptr noundef %1853, ptr noundef %1856, i32 noundef %1858) #12
  br label %1860

1860:                                             ; preds = %1843, %1826
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #12
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

1862:                                             ; preds = %1861
  call void @exit(i32 noundef 1) #14
  unreachable

1863:                                             ; No predecessors!
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

1865:                                             ; preds = %1864, %1806
  br label %1866

1866:                                             ; preds = %1865
  br label %1867

1867:                                             ; preds = %1866
  br label %1868

1868:                                             ; preds = %1867
  %1869 = load i32, ptr @test_count, align 4, !tbaa !5
  %1870 = add nsw i32 %1869, 1
  store i32 %1870, ptr @test_count, align 4, !tbaa !5
  %1871 = load ptr, ptr %50, align 8, !tbaa !9
  %1872 = call i32 @s2n_config_disable_x509_verification(ptr noundef %1871)
  %1873 = icmp eq i32 %1872, -1
  br i1 %1873, label %1874, label %1927

1874:                                             ; preds = %1868
  br label %1875

1875:                                             ; preds = %1874
  br label %1876

1876:                                             ; preds = %1875
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #12
  %1877 = call ptr @__errno_location() #13
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  store i32 %1878, ptr %53, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = call i32 @s2n_print_stacktrace(ptr noundef %1879)
  %1881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1882 = trunc i8 %1881 to i1
  br i1 %1882, label %1883, label %1905

1883:                                             ; preds = %1876
  %1884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1885 = call i32 @fileno(ptr noundef %1884) #12
  %1886 = call i32 @isatty(i32 noundef %1885) #12
  %1887 = icmp ne i32 %1886, 0
  br i1 %1887, label %1888, label %1905

1888:                                             ; preds = %1883
  %1889 = load i32, ptr %53, align 4, !tbaa !5
  %1890 = call ptr @__errno_location() #13
  store i32 %1889, ptr %1890, align 4, !tbaa !5
  %1891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1892 = load i32, ptr @test_count, align 4, !tbaa !5
  %1893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = call ptr @s2n_strerror(i32 noundef %1894, ptr noundef @.str.4)
  %1896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror_debug(i32 noundef %1897, ptr noundef @.str.4)
  %1899 = call ptr @__errno_location() #13
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call ptr @strerror(i32 noundef %1900) #12
  %1902 = call ptr @__errno_location() #13
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1891, ptr noundef @.str.2, i32 noundef %1892, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 147, ptr noundef %1895, ptr noundef %1898, ptr noundef %1901, i32 noundef %1903) #12
  br label %1922

1905:                                             ; preds = %1883, %1876
  %1906 = load i32, ptr %53, align 4, !tbaa !5
  %1907 = call ptr @__errno_location() #13
  store i32 %1906, ptr %1907, align 4, !tbaa !5
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = load i32, ptr @test_count, align 4, !tbaa !5
  %1910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call ptr @s2n_strerror(i32 noundef %1911, ptr noundef @.str.4)
  %1913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  %1915 = call ptr @s2n_strerror_debug(i32 noundef %1914, ptr noundef @.str.4)
  %1916 = call ptr @__errno_location() #13
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = call ptr @strerror(i32 noundef %1917) #12
  %1919 = call ptr @__errno_location() #13
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  %1921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1908, ptr noundef @.str.5, i32 noundef %1909, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 147, ptr noundef %1912, ptr noundef %1915, ptr noundef %1918, i32 noundef %1920) #12
  br label %1922

1922:                                             ; preds = %1905, %1888
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #12
  br label %1923

1923:                                             ; preds = %1922
  br label %1924

1924:                                             ; preds = %1923
  call void @exit(i32 noundef 1) #14
  unreachable

1925:                                             ; No predecessors!
  br label %1926

1926:                                             ; preds = %1925
  br label %1927

1927:                                             ; preds = %1926, %1868
  br label %1928

1928:                                             ; preds = %1927
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929
  %1931 = load i32, ptr @test_count, align 4, !tbaa !5
  %1932 = add nsw i32 %1931, 1
  store i32 %1932, ptr @test_count, align 4, !tbaa !5
  %1933 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1933, ptr %45, align 8, !tbaa !9
  %1934 = icmp eq ptr %1933, null
  br i1 %1934, label %1935, label %1988

1935:                                             ; preds = %1930
  br label %1936

1936:                                             ; preds = %1935
  br label %1937

1937:                                             ; preds = %1936
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #12
  %1938 = call ptr @__errno_location() #13
  %1939 = load i32, ptr %1938, align 4, !tbaa !5
  store i32 %1939, ptr %54, align 4, !tbaa !5
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = call i32 @s2n_print_stacktrace(ptr noundef %1940)
  %1942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1943 = trunc i8 %1942 to i1
  br i1 %1943, label %1944, label %1966

1944:                                             ; preds = %1937
  %1945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1946 = call i32 @fileno(ptr noundef %1945) #12
  %1947 = call i32 @isatty(i32 noundef %1946) #12
  %1948 = icmp ne i32 %1947, 0
  br i1 %1948, label %1949, label %1966

1949:                                             ; preds = %1944
  %1950 = load i32, ptr %54, align 4, !tbaa !5
  %1951 = call ptr @__errno_location() #13
  store i32 %1950, ptr %1951, align 4, !tbaa !5
  %1952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror(i32 noundef %1955, ptr noundef @.str.4)
  %1957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror_debug(i32 noundef %1958, ptr noundef @.str.4)
  %1960 = call ptr @__errno_location() #13
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call ptr @strerror(i32 noundef %1961) #12
  %1963 = call ptr @__errno_location() #13
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  %1965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1952, ptr noundef @.str.2, i32 noundef %1953, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 148, ptr noundef %1956, ptr noundef %1959, ptr noundef %1962, i32 noundef %1964) #12
  br label %1983

1966:                                             ; preds = %1944, %1937
  %1967 = load i32, ptr %54, align 4, !tbaa !5
  %1968 = call ptr @__errno_location() #13
  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() #13
  %1978 = load i32, ptr %1977, align 4, !tbaa !5
  %1979 = call ptr @strerror(i32 noundef %1978) #12
  %1980 = call ptr @__errno_location() #13
  %1981 = load i32, ptr %1980, align 4, !tbaa !5
  %1982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1969, ptr noundef @.str.5, i32 noundef %1970, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 148, ptr noundef %1973, ptr noundef %1976, ptr noundef %1979, i32 noundef %1981) #12
  br label %1983

1983:                                             ; preds = %1966, %1949
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #12
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984
  call void @exit(i32 noundef 1) #14
  unreachable

1986:                                             ; No predecessors!
  br label %1987

1987:                                             ; preds = %1986
  br label %1988

1988:                                             ; preds = %1987, %1930
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

1990:                                             ; preds = %1989
  br label %1991

1991:                                             ; preds = %1990
  %1992 = load i32, ptr @test_count, align 4, !tbaa !5
  %1993 = add nsw i32 %1992, 1
  store i32 %1993, ptr @test_count, align 4, !tbaa !5
  %1994 = load ptr, ptr %45, align 8, !tbaa !9
  %1995 = load ptr, ptr %50, align 8, !tbaa !9
  %1996 = call i32 @s2n_connection_set_config(ptr noundef %1994, ptr noundef %1995)
  %1997 = icmp eq i32 %1996, -1
  br i1 %1997, label %1998, label %2051

1998:                                             ; preds = %1991
  br label %1999

1999:                                             ; preds = %1998
  br label %2000

2000:                                             ; preds = %1999
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #12
  %2001 = call ptr @__errno_location() #13
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  store i32 %2002, ptr %55, align 4, !tbaa !5
  %2003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2004 = call i32 @s2n_print_stacktrace(ptr noundef %2003)
  %2005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2006 = trunc i8 %2005 to i1
  br i1 %2006, label %2007, label %2029

2007:                                             ; preds = %2000
  %2008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2009 = call i32 @fileno(ptr noundef %2008) #12
  %2010 = call i32 @isatty(i32 noundef %2009) #12
  %2011 = icmp ne i32 %2010, 0
  br i1 %2011, label %2012, label %2029

2012:                                             ; preds = %2007
  %2013 = load i32, ptr %55, align 4, !tbaa !5
  %2014 = call ptr @__errno_location() #13
  store i32 %2013, ptr %2014, align 4, !tbaa !5
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = load i32, ptr @test_count, align 4, !tbaa !5
  %2017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = call ptr @s2n_strerror(i32 noundef %2018, ptr noundef @.str.4)
  %2020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = call ptr @s2n_strerror_debug(i32 noundef %2021, ptr noundef @.str.4)
  %2023 = call ptr @__errno_location() #13
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  %2025 = call ptr @strerror(i32 noundef %2024) #12
  %2026 = call ptr @__errno_location() #13
  %2027 = load i32, ptr %2026, align 4, !tbaa !5
  %2028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2015, ptr noundef @.str.2, i32 noundef %2016, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 149, ptr noundef %2019, ptr noundef %2022, ptr noundef %2025, i32 noundef %2027) #12
  br label %2046

2029:                                             ; preds = %2007, %2000
  %2030 = load i32, ptr %55, align 4, !tbaa !5
  %2031 = call ptr @__errno_location() #13
  store i32 %2030, ptr %2031, align 4, !tbaa !5
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = load i32, ptr @test_count, align 4, !tbaa !5
  %2034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror(i32 noundef %2035, ptr noundef @.str.4)
  %2037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror_debug(i32 noundef %2038, ptr noundef @.str.4)
  %2040 = call ptr @__errno_location() #13
  %2041 = load i32, ptr %2040, align 4, !tbaa !5
  %2042 = call ptr @strerror(i32 noundef %2041) #12
  %2043 = call ptr @__errno_location() #13
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2032, ptr noundef @.str.5, i32 noundef %2033, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 149, ptr noundef %2036, ptr noundef %2039, ptr noundef %2042, i32 noundef %2044) #12
  br label %2046

2046:                                             ; preds = %2029, %2012
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #12
  br label %2047

2047:                                             ; preds = %2046
  br label %2048

2048:                                             ; preds = %2047
  call void @exit(i32 noundef 1) #14
  unreachable

2049:                                             ; No predecessors!
  br label %2050

2050:                                             ; preds = %2049
  br label %2051

2051:                                             ; preds = %2050, %1991
  br label %2052

2052:                                             ; preds = %2051
  br label %2053

2053:                                             ; preds = %2052
  %2054 = load ptr, ptr %45, align 8, !tbaa !9
  %2055 = getelementptr inbounds %struct.s2n_connection, ptr %2054, i32 0, i32 23
  store i8 33, ptr %2055, align 4, !tbaa !15
  %2056 = load ptr, ptr %45, align 8, !tbaa !9
  %2057 = getelementptr inbounds %struct.s2n_connection, ptr %2056, i32 0, i32 22
  store i8 33, ptr %2057, align 1, !tbaa !47
  %2058 = load ptr, ptr %45, align 8, !tbaa !9
  %2059 = getelementptr inbounds %struct.s2n_connection, ptr %2058, i32 0, i32 21
  store i8 33, ptr %2059, align 2, !tbaa !48
  br label %2060

2060:                                             ; preds = %2053
  %2061 = load i32, ptr @test_count, align 4, !tbaa !5
  %2062 = add nsw i32 %2061, 1
  store i32 %2062, ptr @test_count, align 4, !tbaa !5
  %2063 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2063, ptr %46, align 8, !tbaa !9
  %2064 = icmp eq ptr %2063, null
  br i1 %2064, label %2065, label %2118

2065:                                             ; preds = %2060
  br label %2066

2066:                                             ; preds = %2065
  br label %2067

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

2074:                                             ; preds = %2067
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = call i32 @fileno(ptr noundef %2075) #12
  %2077 = call i32 @isatty(i32 noundef %2076) #12
  %2078 = icmp ne i32 %2077, 0
  br i1 %2078, label %2079, label %2096

2079:                                             ; preds = %2074
  %2080 = load i32, ptr %56, align 4, !tbaa !5
  %2081 = call ptr @__errno_location() #13
  store i32 %2080, ptr %2081, align 4, !tbaa !5
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = load i32, ptr @test_count, align 4, !tbaa !5
  %2084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = call ptr @s2n_strerror(i32 noundef %2085, ptr noundef @.str.4)
  %2087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2088 = load i32, ptr %2087, align 4, !tbaa !5
  %2089 = call ptr @s2n_strerror_debug(i32 noundef %2088, ptr noundef @.str.4)
  %2090 = call ptr @__errno_location() #13
  %2091 = load i32, ptr %2090, align 4, !tbaa !5
  %2092 = call ptr @strerror(i32 noundef %2091) #12
  %2093 = call ptr @__errno_location() #13
  %2094 = load i32, ptr %2093, align 4, !tbaa !5
  %2095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2082, ptr noundef @.str.2, i32 noundef %2083, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 154, ptr noundef %2086, ptr noundef %2089, ptr noundef %2092, i32 noundef %2094) #12
  br label %2113

2096:                                             ; preds = %2074, %2067
  %2097 = load i32, ptr %56, align 4, !tbaa !5
  %2098 = call ptr @__errno_location() #13
  store i32 %2097, ptr %2098, align 4, !tbaa !5
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = load i32, ptr @test_count, align 4, !tbaa !5
  %2101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror(i32 noundef %2102, ptr noundef @.str.4)
  %2104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @s2n_strerror_debug(i32 noundef %2105, ptr noundef @.str.4)
  %2107 = call ptr @__errno_location() #13
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call ptr @strerror(i32 noundef %2108) #12
  %2110 = call ptr @__errno_location() #13
  %2111 = load i32, ptr %2110, align 4, !tbaa !5
  %2112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2099, ptr noundef @.str.5, i32 noundef %2100, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 154, ptr noundef %2103, ptr noundef %2106, ptr noundef %2109, i32 noundef %2111) #12
  br label %2113

2113:                                             ; preds = %2096, %2079
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #12
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

2115:                                             ; preds = %2114
  call void @exit(i32 noundef 1) #14
  unreachable

2116:                                             ; No predecessors!
  br label %2117

2117:                                             ; preds = %2116
  br label %2118

2118:                                             ; preds = %2117, %2060
  br label %2119

2119:                                             ; preds = %2118
  br label %2120

2120:                                             ; preds = %2119
  %2121 = load ptr, ptr %46, align 8, !tbaa !9
  %2122 = getelementptr inbounds %struct.s2n_connection, ptr %2121, i32 0, i32 23
  store i8 33, ptr %2122, align 4, !tbaa !15
  %2123 = load ptr, ptr %46, align 8, !tbaa !9
  %2124 = getelementptr inbounds %struct.s2n_connection, ptr %2123, i32 0, i32 22
  store i8 33, ptr %2124, align 1, !tbaa !47
  %2125 = load ptr, ptr %46, align 8, !tbaa !9
  %2126 = getelementptr inbounds %struct.s2n_connection, ptr %2125, i32 0, i32 21
  store i8 33, ptr %2126, align 2, !tbaa !48
  br label %2127

2127:                                             ; preds = %2120
  %2128 = load i32, ptr @test_count, align 4, !tbaa !5
  %2129 = add nsw i32 %2128, 1
  store i32 %2129, ptr @test_count, align 4, !tbaa !5
  %2130 = load ptr, ptr %45, align 8, !tbaa !9
  %2131 = load ptr, ptr %46, align 8, !tbaa !9
  %2132 = call i32 @s2n_connections_set_io_pair(ptr noundef %2130, ptr noundef %2131, ptr noundef %43)
  %2133 = icmp eq i32 %2132, -1
  br i1 %2133, label %2134, label %2187

2134:                                             ; preds = %2127
  br label %2135

2135:                                             ; preds = %2134
  br label %2136

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

2143:                                             ; preds = %2136
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = call i32 @fileno(ptr noundef %2144) #12
  %2146 = call i32 @isatty(i32 noundef %2145) #12
  %2147 = icmp ne i32 %2146, 0
  br i1 %2147, label %2148, label %2165

2148:                                             ; preds = %2143
  %2149 = load i32, ptr %57, align 4, !tbaa !5
  %2150 = call ptr @__errno_location() #13
  store i32 %2149, ptr %2150, align 4, !tbaa !5
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = load i32, ptr @test_count, align 4, !tbaa !5
  %2153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror(i32 noundef %2154, ptr noundef @.str.4)
  %2156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror_debug(i32 noundef %2157, ptr noundef @.str.4)
  %2159 = call ptr @__errno_location() #13
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call ptr @strerror(i32 noundef %2160) #12
  %2162 = call ptr @__errno_location() #13
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2151, ptr noundef @.str.2, i32 noundef %2152, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2155, ptr noundef %2158, ptr noundef %2161, i32 noundef %2163) #12
  br label %2182

2165:                                             ; preds = %2143, %2136
  %2166 = load i32, ptr %57, align 4, !tbaa !5
  %2167 = call ptr @__errno_location() #13
  store i32 %2166, ptr %2167, align 4, !tbaa !5
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = load i32, ptr @test_count, align 4, !tbaa !5
  %2170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror(i32 noundef %2171, ptr noundef @.str.4)
  %2173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = call ptr @s2n_strerror_debug(i32 noundef %2174, ptr noundef @.str.4)
  %2176 = call ptr @__errno_location() #13
  %2177 = load i32, ptr %2176, align 4, !tbaa !5
  %2178 = call ptr @strerror(i32 noundef %2177) #12
  %2179 = call ptr @__errno_location() #13
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  %2181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2168, ptr noundef @.str.5, i32 noundef %2169, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2172, ptr noundef %2175, ptr noundef %2178, i32 noundef %2180) #12
  br label %2182

2182:                                             ; preds = %2165, %2148
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #12
  br label %2183

2183:                                             ; preds = %2182
  br label %2184

2184:                                             ; preds = %2183
  call void @exit(i32 noundef 1) #14
  unreachable

2185:                                             ; No predecessors!
  br label %2186

2186:                                             ; preds = %2185
  br label %2187

2187:                                             ; preds = %2186, %2127
  br label %2188

2188:                                             ; preds = %2187
  br label %2189

2189:                                             ; preds = %2188
  br label %2190

2190:                                             ; preds = %2189
  %2191 = load i32, ptr @test_count, align 4, !tbaa !5
  %2192 = add nsw i32 %2191, 1
  store i32 %2192, ptr @test_count, align 4, !tbaa !5
  %2193 = call ptr @s2n_config_new()
  store ptr %2193, ptr %47, align 8, !tbaa !9
  %2194 = icmp eq ptr %2193, null
  br i1 %2194, label %2195, label %2248

2195:                                             ; preds = %2190
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

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

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

2209:                                             ; preds = %2204
  %2210 = load i32, ptr %58, align 4, !tbaa !5
  %2211 = call ptr @__errno_location() #13
  store i32 %2210, ptr %2211, align 4, !tbaa !5
  %2212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2213 = load i32, ptr @test_count, align 4, !tbaa !5
  %2214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  %2216 = call ptr @s2n_strerror(i32 noundef %2215, ptr noundef @.str.4)
  %2217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @s2n_strerror_debug(i32 noundef %2218, ptr noundef @.str.4)
  %2220 = call ptr @__errno_location() #13
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call ptr @strerror(i32 noundef %2221) #12
  %2223 = call ptr @__errno_location() #13
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2212, ptr noundef @.str.2, i32 noundef %2213, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 161, ptr noundef %2216, ptr noundef %2219, ptr noundef %2222, i32 noundef %2224) #12
  br label %2243

2226:                                             ; preds = %2204, %2197
  %2227 = load i32, ptr %58, align 4, !tbaa !5
  %2228 = call ptr @__errno_location() #13
  store i32 %2227, ptr %2228, align 4, !tbaa !5
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = load i32, ptr @test_count, align 4, !tbaa !5
  %2231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call ptr @s2n_strerror(i32 noundef %2232, ptr noundef @.str.4)
  %2234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror_debug(i32 noundef %2235, ptr noundef @.str.4)
  %2237 = call ptr @__errno_location() #13
  %2238 = load i32, ptr %2237, align 4, !tbaa !5
  %2239 = call ptr @strerror(i32 noundef %2238) #12
  %2240 = call ptr @__errno_location() #13
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2229, ptr noundef @.str.5, i32 noundef %2230, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 161, ptr noundef %2233, ptr noundef %2236, ptr noundef %2239, i32 noundef %2241) #12
  br label %2243

2243:                                             ; preds = %2226, %2209
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #12
  br label %2244

2244:                                             ; preds = %2243
  br label %2245

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

2246:                                             ; No predecessors!
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

2248:                                             ; preds = %2247, %2190
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

2250:                                             ; preds = %2249
  br label %2251

2251:                                             ; preds = %2250
  %2252 = load i32, ptr @test_count, align 4, !tbaa !5
  %2253 = add nsw i32 %2252, 1
  store i32 %2253, ptr @test_count, align 4, !tbaa !5
  %2254 = load ptr, ptr %38, align 8, !tbaa !9
  %2255 = call i32 @s2n_read_test_pem(ptr noundef @.str.39, ptr noundef %2254, i64 noundef 12000)
  %2256 = icmp eq i32 %2255, -1
  br i1 %2256, label %2257, label %2310

2257:                                             ; preds = %2251
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

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

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

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

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

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

2306:                                             ; preds = %2305
  br label %2307

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

2308:                                             ; No predecessors!
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

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

2311:                                             ; preds = %2310
  br label %2312

2312:                                             ; preds = %2311
  br label %2313

2313:                                             ; preds = %2312
  %2314 = load i32, ptr @test_count, align 4, !tbaa !5
  %2315 = add nsw i32 %2314, 1
  store i32 %2315, ptr @test_count, align 4, !tbaa !5
  %2316 = load ptr, ptr %39, align 8, !tbaa !9
  %2317 = call i32 @s2n_read_test_pem(ptr noundef @.str.41, ptr noundef %2316, i64 noundef 12000)
  %2318 = icmp eq i32 %2317, -1
  br i1 %2318, label %2319, label %2372

2319:                                             ; preds = %2313
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

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

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

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

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

2367:                                             ; preds = %2350, %2333
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #12
  br label %2368

2368:                                             ; preds = %2367
  br label %2369

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

2370:                                             ; No predecessors!
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

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

2373:                                             ; preds = %2372
  br label %2374

2374:                                             ; preds = %2373
  br label %2375

2375:                                             ; preds = %2374
  %2376 = load i32, ptr @test_count, align 4, !tbaa !5
  %2377 = add nsw i32 %2376, 1
  store i32 %2377, ptr @test_count, align 4, !tbaa !5
  %2378 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %2378, ptr %48, align 8, !tbaa !9
  %2379 = icmp eq ptr %2378, null
  br i1 %2379, label %2380, label %2433

2380:                                             ; preds = %2375
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

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

2389:                                             ; preds = %2382
  %2390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2391 = call i32 @fileno(ptr noundef %2390) #12
  %2392 = call i32 @isatty(i32 noundef %2391) #12
  %2393 = icmp ne i32 %2392, 0
  br i1 %2393, label %2394, label %2411

2394:                                             ; preds = %2389
  %2395 = load i32, ptr %61, align 4, !tbaa !5
  %2396 = call ptr @__errno_location() #13
  store i32 %2395, ptr %2396, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef @.str.4)
  %2402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror_debug(i32 noundef %2403, ptr noundef @.str.4)
  %2405 = call ptr @__errno_location() #13
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @strerror(i32 noundef %2406) #12
  %2408 = call ptr @__errno_location() #13
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2397, ptr noundef @.str.2, i32 noundef %2398, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2401, ptr noundef %2404, ptr noundef %2407, i32 noundef %2409) #12
  br label %2428

2411:                                             ; preds = %2389, %2382
  %2412 = load i32, ptr %61, align 4, !tbaa !5
  %2413 = call ptr @__errno_location() #13
  store i32 %2412, ptr %2413, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = load i32, ptr @test_count, align 4, !tbaa !5
  %2416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call ptr @s2n_strerror(i32 noundef %2417, ptr noundef @.str.4)
  %2419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror_debug(i32 noundef %2420, ptr noundef @.str.4)
  %2422 = call ptr @__errno_location() #13
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @strerror(i32 noundef %2423) #12
  %2425 = call ptr @__errno_location() #13
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2414, ptr noundef @.str.5, i32 noundef %2415, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2418, ptr noundef %2421, ptr noundef %2424, i32 noundef %2426) #12
  br label %2428

2428:                                             ; preds = %2411, %2394
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #12
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

2430:                                             ; preds = %2429
  call void @exit(i32 noundef 1) #14
  unreachable

2431:                                             ; No predecessors!
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2432, %2375
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435
  %2437 = load i32, ptr @test_count, align 4, !tbaa !5
  %2438 = add nsw i32 %2437, 1
  store i32 %2438, ptr @test_count, align 4, !tbaa !5
  %2439 = load ptr, ptr %48, align 8, !tbaa !9
  %2440 = load ptr, ptr %38, align 8, !tbaa !9
  %2441 = load ptr, ptr %39, align 8, !tbaa !9
  %2442 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %2439, ptr noundef %2440, ptr noundef %2441)
  %2443 = icmp eq i32 %2442, -1
  br i1 %2443, label %2444, label %2497

2444:                                             ; preds = %2436
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

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

2453:                                             ; preds = %2446
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = call i32 @fileno(ptr noundef %2454) #12
  %2456 = call i32 @isatty(i32 noundef %2455) #12
  %2457 = icmp ne i32 %2456, 0
  br i1 %2457, label %2458, label %2475

2458:                                             ; preds = %2453
  %2459 = load i32, ptr %62, align 4, !tbaa !5
  %2460 = call ptr @__errno_location() #13
  store i32 %2459, ptr %2460, align 4, !tbaa !5
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = load i32, ptr @test_count, align 4, !tbaa !5
  %2463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror(i32 noundef %2464, ptr noundef @.str.4)
  %2466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror_debug(i32 noundef %2467, ptr noundef @.str.4)
  %2469 = call ptr @__errno_location() #13
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @strerror(i32 noundef %2470) #12
  %2472 = call ptr @__errno_location() #13
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2461, ptr noundef @.str.2, i32 noundef %2462, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2465, ptr noundef %2468, ptr noundef %2471, i32 noundef %2473) #12
  br label %2492

2475:                                             ; preds = %2453, %2446
  %2476 = load i32, ptr %62, align 4, !tbaa !5
  %2477 = call ptr @__errno_location() #13
  store i32 %2476, ptr %2477, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %2480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror(i32 noundef %2481, ptr noundef @.str.4)
  %2483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror_debug(i32 noundef %2484, ptr noundef @.str.4)
  %2486 = call ptr @__errno_location() #13
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = call ptr @strerror(i32 noundef %2487) #12
  %2489 = call ptr @__errno_location() #13
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2478, ptr noundef @.str.5, i32 noundef %2479, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2482, ptr noundef %2485, ptr noundef %2488, i32 noundef %2490) #12
  br label %2492

2492:                                             ; preds = %2475, %2458
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #12
  br label %2493

2493:                                             ; preds = %2492
  br label %2494

2494:                                             ; preds = %2493
  call void @exit(i32 noundef 1) #14
  unreachable

2495:                                             ; No predecessors!
  br label %2496

2496:                                             ; preds = %2495
  br label %2497

2497:                                             ; preds = %2496, %2436
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = add nsw i32 %2501, 1
  store i32 %2502, ptr @test_count, align 4, !tbaa !5
  %2503 = load ptr, ptr %47, align 8, !tbaa !9
  %2504 = load ptr, ptr %48, align 8, !tbaa !9
  %2505 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2503, ptr noundef %2504)
  %2506 = icmp eq i32 %2505, -1
  br i1 %2506, label %2507, label %2560

2507:                                             ; preds = %2500
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #12
  %2510 = call ptr @__errno_location() #13
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  store i32 %2511, ptr %63, align 4, !tbaa !5
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @s2n_print_stacktrace(ptr noundef %2512)
  %2514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2515 = trunc i8 %2514 to i1
  br i1 %2515, label %2516, label %2538

2516:                                             ; preds = %2509
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = call i32 @fileno(ptr noundef %2517) #12
  %2519 = call i32 @isatty(i32 noundef %2518) #12
  %2520 = icmp ne i32 %2519, 0
  br i1 %2520, label %2521, label %2538

2521:                                             ; preds = %2516
  %2522 = load i32, ptr %63, align 4, !tbaa !5
  %2523 = call ptr @__errno_location() #13
  store i32 %2522, ptr %2523, align 4, !tbaa !5
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = load i32, ptr @test_count, align 4, !tbaa !5
  %2526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror(i32 noundef %2527, ptr noundef @.str.4)
  %2529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef @.str.4)
  %2532 = call ptr @__errno_location() #13
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @strerror(i32 noundef %2533) #12
  %2535 = call ptr @__errno_location() #13
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2524, ptr noundef @.str.2, i32 noundef %2525, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2528, ptr noundef %2531, ptr noundef %2534, i32 noundef %2536) #12
  br label %2555

2538:                                             ; preds = %2516, %2509
  %2539 = load i32, ptr %63, align 4, !tbaa !5
  %2540 = call ptr @__errno_location() #13
  store i32 %2539, ptr %2540, align 4, !tbaa !5
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror(i32 noundef %2544, ptr noundef @.str.4)
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef @.str.4)
  %2549 = call ptr @__errno_location() #13
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @strerror(i32 noundef %2550) #12
  %2552 = call ptr @__errno_location() #13
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2541, ptr noundef @.str.5, i32 noundef %2542, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2545, ptr noundef %2548, ptr noundef %2551, i32 noundef %2553) #12
  br label %2555

2555:                                             ; preds = %2538, %2521
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #12
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

2557:                                             ; preds = %2556
  call void @exit(i32 noundef 1) #14
  unreachable

2558:                                             ; No predecessors!
  br label %2559

2559:                                             ; preds = %2558
  br label %2560

2560:                                             ; preds = %2559, %2500
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

2562:                                             ; preds = %2561
  br label %2563

2563:                                             ; preds = %2562
  %2564 = load i32, ptr @test_count, align 4, !tbaa !5
  %2565 = add nsw i32 %2564, 1
  store i32 %2565, ptr @test_count, align 4, !tbaa !5
  %2566 = load ptr, ptr %46, align 8, !tbaa !9
  %2567 = load ptr, ptr %47, align 8, !tbaa !9
  %2568 = call i32 @s2n_connection_set_config(ptr noundef %2566, ptr noundef %2567)
  %2569 = icmp eq i32 %2568, -1
  br i1 %2569, label %2570, label %2623

2570:                                             ; preds = %2563
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

2572:                                             ; preds = %2571
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #12
  %2573 = call ptr @__errno_location() #13
  %2574 = load i32, ptr %2573, align 4, !tbaa !5
  store i32 %2574, ptr %64, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = call i32 @s2n_print_stacktrace(ptr noundef %2575)
  %2577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2578 = trunc i8 %2577 to i1
  br i1 %2578, label %2579, label %2601

2579:                                             ; preds = %2572
  %2580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2581 = call i32 @fileno(ptr noundef %2580) #12
  %2582 = call i32 @isatty(i32 noundef %2581) #12
  %2583 = icmp ne i32 %2582, 0
  br i1 %2583, label %2584, label %2601

2584:                                             ; preds = %2579
  %2585 = load i32, ptr %64, align 4, !tbaa !5
  %2586 = call ptr @__errno_location() #13
  store i32 %2585, ptr %2586, align 4, !tbaa !5
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = load i32, ptr @test_count, align 4, !tbaa !5
  %2589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror(i32 noundef %2590, ptr noundef @.str.4)
  %2592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call ptr @s2n_strerror_debug(i32 noundef %2593, ptr noundef @.str.4)
  %2595 = call ptr @__errno_location() #13
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @strerror(i32 noundef %2596) #12
  %2598 = call ptr @__errno_location() #13
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2587, ptr noundef @.str.2, i32 noundef %2588, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2591, ptr noundef %2594, ptr noundef %2597, i32 noundef %2599) #12
  br label %2618

2601:                                             ; preds = %2579, %2572
  %2602 = load i32, ptr %64, align 4, !tbaa !5
  %2603 = call ptr @__errno_location() #13
  store i32 %2602, ptr %2603, align 4, !tbaa !5
  %2604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2605 = load i32, ptr @test_count, align 4, !tbaa !5
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror(i32 noundef %2607, ptr noundef @.str.4)
  %2609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @s2n_strerror_debug(i32 noundef %2610, ptr noundef @.str.4)
  %2612 = call ptr @__errno_location() #13
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call ptr @strerror(i32 noundef %2613) #12
  %2615 = call ptr @__errno_location() #13
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2604, ptr noundef @.str.5, i32 noundef %2605, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2608, ptr noundef %2611, ptr noundef %2614, i32 noundef %2616) #12
  br label %2618

2618:                                             ; preds = %2601, %2584
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #12
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

2620:                                             ; preds = %2619
  call void @exit(i32 noundef 1) #14
  unreachable

2621:                                             ; No predecessors!
  br label %2622

2622:                                             ; preds = %2621
  br label %2623

2623:                                             ; preds = %2622, %2563
  br label %2624

2624:                                             ; preds = %2623
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625
  %2627 = load i32, ptr @test_count, align 4, !tbaa !5
  %2628 = add nsw i32 %2627, 1
  store i32 %2628, ptr @test_count, align 4, !tbaa !5
  %2629 = load ptr, ptr %46, align 8, !tbaa !9
  %2630 = load ptr, ptr %45, align 8, !tbaa !9
  %2631 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2629, ptr noundef %2630)
  %2632 = icmp eq i32 %2631, -1
  br i1 %2632, label %2633, label %2686

2633:                                             ; preds = %2626
  br label %2634

2634:                                             ; preds = %2633
  br label %2635

2635:                                             ; preds = %2634
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #12
  %2636 = call ptr @__errno_location() #13
  %2637 = load i32, ptr %2636, align 4, !tbaa !5
  store i32 %2637, ptr %65, align 4, !tbaa !5
  %2638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2639 = call i32 @s2n_print_stacktrace(ptr noundef %2638)
  %2640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2641 = trunc i8 %2640 to i1
  br i1 %2641, label %2642, label %2664

2642:                                             ; preds = %2635
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = call i32 @fileno(ptr noundef %2643) #12
  %2645 = call i32 @isatty(i32 noundef %2644) #12
  %2646 = icmp ne i32 %2645, 0
  br i1 %2646, label %2647, label %2664

2647:                                             ; preds = %2642
  %2648 = load i32, ptr %65, align 4, !tbaa !5
  %2649 = call ptr @__errno_location() #13
  store i32 %2648, ptr %2649, align 4, !tbaa !5
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = load i32, ptr @test_count, align 4, !tbaa !5
  %2652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call ptr @s2n_strerror(i32 noundef %2653, ptr noundef @.str.4)
  %2655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  %2657 = call ptr @s2n_strerror_debug(i32 noundef %2656, ptr noundef @.str.4)
  %2658 = call ptr @__errno_location() #13
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call ptr @strerror(i32 noundef %2659) #12
  %2661 = call ptr @__errno_location() #13
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  %2663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2650, ptr noundef @.str.2, i32 noundef %2651, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 169, ptr noundef %2654, ptr noundef %2657, ptr noundef %2660, i32 noundef %2662) #12
  br label %2681

2664:                                             ; preds = %2642, %2635
  %2665 = load i32, ptr %65, align 4, !tbaa !5
  %2666 = call ptr @__errno_location() #13
  store i32 %2665, ptr %2666, align 4, !tbaa !5
  %2667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2668 = load i32, ptr @test_count, align 4, !tbaa !5
  %2669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror(i32 noundef %2670, ptr noundef @.str.4)
  %2672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @s2n_strerror_debug(i32 noundef %2673, ptr noundef @.str.4)
  %2675 = call ptr @__errno_location() #13
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call ptr @strerror(i32 noundef %2676) #12
  %2678 = call ptr @__errno_location() #13
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2667, ptr noundef @.str.5, i32 noundef %2668, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 169, ptr noundef %2671, ptr noundef %2674, ptr noundef %2677, i32 noundef %2679) #12
  br label %2681

2681:                                             ; preds = %2664, %2647
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #12
  br label %2682

2682:                                             ; preds = %2681
  br label %2683

2683:                                             ; preds = %2682
  call void @exit(i32 noundef 1) #14
  unreachable

2684:                                             ; No predecessors!
  br label %2685

2685:                                             ; preds = %2684
  br label %2686

2686:                                             ; preds = %2685, %2626
  br label %2687

2687:                                             ; preds = %2686
  br label %2688

2688:                                             ; preds = %2687
  call void @llvm.lifetime.start.p0(i64 5, ptr %66) #12
  call void @llvm.memset.p0.i64(ptr align 1 %66, i8 0, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %67) #12
  call void @llvm.memset.p0.i64(ptr align 8 %67, i8 0, i64 24, i1 false)
  br label %2689

2689:                                             ; preds = %2688
  %2690 = load i32, ptr @test_count, align 4, !tbaa !5
  %2691 = add nsw i32 %2690, 1
  store i32 %2691, ptr @test_count, align 4, !tbaa !5
  %2692 = getelementptr inbounds [5 x i8], ptr %66, i64 0, i64 0
  %2693 = call i32 @s2n_blob_init(ptr noundef %67, ptr noundef %2692, i32 noundef 5)
  %2694 = icmp eq i32 %2693, -1
  br i1 %2694, label %2695, label %2748

2695:                                             ; preds = %2689
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #12
  %2698 = call ptr @__errno_location() #13
  %2699 = load i32, ptr %2698, align 4, !tbaa !5
  store i32 %2699, ptr %68, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = call i32 @s2n_print_stacktrace(ptr noundef %2700)
  %2702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2703 = trunc i8 %2702 to i1
  br i1 %2703, label %2704, label %2726

2704:                                             ; preds = %2697
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = call i32 @fileno(ptr noundef %2705) #12
  %2707 = call i32 @isatty(i32 noundef %2706) #12
  %2708 = icmp ne i32 %2707, 0
  br i1 %2708, label %2709, label %2726

2709:                                             ; preds = %2704
  %2710 = load i32, ptr %68, align 4, !tbaa !5
  %2711 = call ptr @__errno_location() #13
  store i32 %2710, ptr %2711, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  %2716 = call ptr @s2n_strerror(i32 noundef %2715, ptr noundef @.str.4)
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror_debug(i32 noundef %2718, ptr noundef @.str.4)
  %2720 = call ptr @__errno_location() #13
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @strerror(i32 noundef %2721) #12
  %2723 = call ptr @__errno_location() #13
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2712, ptr noundef @.str.2, i32 noundef %2713, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 174, ptr noundef %2716, ptr noundef %2719, ptr noundef %2722, i32 noundef %2724) #12
  br label %2743

2726:                                             ; preds = %2704, %2697
  %2727 = load i32, ptr %68, align 4, !tbaa !5
  %2728 = call ptr @__errno_location() #13
  store i32 %2727, ptr %2728, align 4, !tbaa !5
  %2729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2730 = load i32, ptr @test_count, align 4, !tbaa !5
  %2731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror(i32 noundef %2732, ptr noundef @.str.4)
  %2734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = call ptr @s2n_strerror_debug(i32 noundef %2735, ptr noundef @.str.4)
  %2737 = call ptr @__errno_location() #13
  %2738 = load i32, ptr %2737, align 4, !tbaa !5
  %2739 = call ptr @strerror(i32 noundef %2738) #12
  %2740 = call ptr @__errno_location() #13
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2729, ptr noundef @.str.5, i32 noundef %2730, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 174, ptr noundef %2733, ptr noundef %2736, ptr noundef %2739, i32 noundef %2741) #12
  br label %2743

2743:                                             ; preds = %2726, %2709
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #12
  br label %2744

2744:                                             ; preds = %2743
  br label %2745

2745:                                             ; preds = %2744
  call void @exit(i32 noundef 1) #14
  unreachable

2746:                                             ; No predecessors!
  br label %2747

2747:                                             ; preds = %2746
  br label %2748

2748:                                             ; preds = %2747, %2689
  br label %2749

2749:                                             ; preds = %2748
  br label %2750

2750:                                             ; preds = %2749
  br label %2751

2751:                                             ; preds = %2750
  %2752 = load i32, ptr @test_count, align 4, !tbaa !5
  %2753 = add nsw i32 %2752, 1
  store i32 %2753, ptr @test_count, align 4, !tbaa !5
  %2754 = call i32 @s2n_key_update_write(ptr noundef %67)
  %2755 = icmp eq i32 %2754, -1
  br i1 %2755, label %2756, label %2809

2756:                                             ; preds = %2751
  br label %2757

2757:                                             ; preds = %2756
  br label %2758

2758:                                             ; preds = %2757
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #12
  %2759 = call ptr @__errno_location() #13
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  store i32 %2760, ptr %69, align 4, !tbaa !5
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = call i32 @s2n_print_stacktrace(ptr noundef %2761)
  %2763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2764 = trunc i8 %2763 to i1
  br i1 %2764, label %2765, label %2787

2765:                                             ; preds = %2758
  %2766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2767 = call i32 @fileno(ptr noundef %2766) #12
  %2768 = call i32 @isatty(i32 noundef %2767) #12
  %2769 = icmp ne i32 %2768, 0
  br i1 %2769, label %2770, label %2787

2770:                                             ; preds = %2765
  %2771 = load i32, ptr %69, align 4, !tbaa !5
  %2772 = call ptr @__errno_location() #13
  store i32 %2771, ptr %2772, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = load i32, ptr @test_count, align 4, !tbaa !5
  %2775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  %2777 = call ptr @s2n_strerror(i32 noundef %2776, ptr noundef @.str.4)
  %2778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2779 = load i32, ptr %2778, align 4, !tbaa !5
  %2780 = call ptr @s2n_strerror_debug(i32 noundef %2779, ptr noundef @.str.4)
  %2781 = call ptr @__errno_location() #13
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  %2783 = call ptr @strerror(i32 noundef %2782) #12
  %2784 = call ptr @__errno_location() #13
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  %2786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2773, ptr noundef @.str.2, i32 noundef %2774, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 175, ptr noundef %2777, ptr noundef %2780, ptr noundef %2783, i32 noundef %2785) #12
  br label %2804

2787:                                             ; preds = %2765, %2758
  %2788 = load i32, ptr %69, align 4, !tbaa !5
  %2789 = call ptr @__errno_location() #13
  store i32 %2788, ptr %2789, align 4, !tbaa !5
  %2790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2791 = load i32, ptr @test_count, align 4, !tbaa !5
  %2792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror(i32 noundef %2793, ptr noundef @.str.4)
  %2795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @s2n_strerror_debug(i32 noundef %2796, ptr noundef @.str.4)
  %2798 = call ptr @__errno_location() #13
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call ptr @strerror(i32 noundef %2799) #12
  %2801 = call ptr @__errno_location() #13
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2790, ptr noundef @.str.5, i32 noundef %2791, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 175, ptr noundef %2794, ptr noundef %2797, ptr noundef %2800, i32 noundef %2802) #12
  br label %2804

2804:                                             ; preds = %2787, %2770
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #12
  br label %2805

2805:                                             ; preds = %2804
  br label %2806

2806:                                             ; preds = %2805
  call void @exit(i32 noundef 1) #14
  unreachable

2807:                                             ; No predecessors!
  br label %2808

2808:                                             ; preds = %2807
  br label %2809

2809:                                             ; preds = %2808, %2751
  br label %2810

2810:                                             ; preds = %2809
  br label %2811

2811:                                             ; preds = %2810
  br label %2812

2812:                                             ; preds = %2811
  %2813 = load i32, ptr @test_count, align 4, !tbaa !5
  %2814 = add nsw i32 %2813, 1
  store i32 %2814, ptr @test_count, align 4, !tbaa !5
  %2815 = load ptr, ptr %45, align 8, !tbaa !9
  %2816 = call i32 @s2n_record_write(ptr noundef %2815, i8 noundef zeroext 22, ptr noundef %67)
  %2817 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  store i32 %2816, ptr %2817, align 4
  %2818 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  %2819 = load i32, ptr %2818, align 4
  %2820 = call zeroext i1 @s2n_result_is_ok(i32 %2819)
  br i1 %2820, label %2874, label %2821

2821:                                             ; preds = %2812
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

2823:                                             ; preds = %2822
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #12
  %2824 = call ptr @__errno_location() #13
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  store i32 %2825, ptr %71, align 4, !tbaa !5
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = call i32 @s2n_print_stacktrace(ptr noundef %2826)
  %2828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2829 = trunc i8 %2828 to i1
  br i1 %2829, label %2830, label %2852

2830:                                             ; preds = %2823
  %2831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2832 = call i32 @fileno(ptr noundef %2831) #12
  %2833 = call i32 @isatty(i32 noundef %2832) #12
  %2834 = icmp ne i32 %2833, 0
  br i1 %2834, label %2835, label %2852

2835:                                             ; preds = %2830
  %2836 = load i32, ptr %71, align 4, !tbaa !5
  %2837 = call ptr @__errno_location() #13
  store i32 %2836, ptr %2837, align 4, !tbaa !5
  %2838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2839 = load i32, ptr @test_count, align 4, !tbaa !5
  %2840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2841 = load i32, ptr %2840, align 4, !tbaa !5
  %2842 = call ptr @s2n_strerror(i32 noundef %2841, ptr noundef @.str.4)
  %2843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2844 = load i32, ptr %2843, align 4, !tbaa !5
  %2845 = call ptr @s2n_strerror_debug(i32 noundef %2844, ptr noundef @.str.4)
  %2846 = call ptr @__errno_location() #13
  %2847 = load i32, ptr %2846, align 4, !tbaa !5
  %2848 = call ptr @strerror(i32 noundef %2847) #12
  %2849 = call ptr @__errno_location() #13
  %2850 = load i32, ptr %2849, align 4, !tbaa !5
  %2851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2838, ptr noundef @.str.2, i32 noundef %2839, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 176, ptr noundef %2842, ptr noundef %2845, ptr noundef %2848, i32 noundef %2850) #12
  br label %2869

2852:                                             ; preds = %2830, %2823
  %2853 = load i32, ptr %71, align 4, !tbaa !5
  %2854 = call ptr @__errno_location() #13
  store i32 %2853, ptr %2854, align 4, !tbaa !5
  %2855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2858 = load i32, ptr %2857, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror(i32 noundef %2858, ptr noundef @.str.4)
  %2860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  %2862 = call ptr @s2n_strerror_debug(i32 noundef %2861, ptr noundef @.str.4)
  %2863 = call ptr @__errno_location() #13
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call ptr @strerror(i32 noundef %2864) #12
  %2866 = call ptr @__errno_location() #13
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2855, ptr noundef @.str.5, i32 noundef %2856, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 176, ptr noundef %2859, ptr noundef %2862, ptr noundef %2865, i32 noundef %2867) #12
  br label %2869

2869:                                             ; preds = %2852, %2835
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #12
  br label %2870

2870:                                             ; preds = %2869
  br label %2871

2871:                                             ; preds = %2870
  call void @exit(i32 noundef 1) #14
  unreachable

2872:                                             ; No predecessors!
  br label %2873

2873:                                             ; preds = %2872
  br label %2874

2874:                                             ; preds = %2873, %2812
  br label %2875

2875:                                             ; preds = %2874
  br label %2876

2876:                                             ; preds = %2875
  br label %2877

2877:                                             ; preds = %2876
  %2878 = load i32, ptr @test_count, align 4, !tbaa !5
  %2879 = add nsw i32 %2878, 1
  store i32 %2879, ptr @test_count, align 4, !tbaa !5
  %2880 = load ptr, ptr %45, align 8, !tbaa !9
  %2881 = call i32 @s2n_flush(ptr noundef %2880, ptr noundef %49)
  %2882 = icmp eq i32 %2881, -1
  br i1 %2882, label %2883, label %2936

2883:                                             ; preds = %2877
  br label %2884

2884:                                             ; preds = %2883
  br label %2885

2885:                                             ; preds = %2884
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #12
  %2886 = call ptr @__errno_location() #13
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  store i32 %2887, ptr %72, align 4, !tbaa !5
  %2888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2889 = call i32 @s2n_print_stacktrace(ptr noundef %2888)
  %2890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2891 = trunc i8 %2890 to i1
  br i1 %2891, label %2892, label %2914

2892:                                             ; preds = %2885
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = call i32 @fileno(ptr noundef %2893) #12
  %2895 = call i32 @isatty(i32 noundef %2894) #12
  %2896 = icmp ne i32 %2895, 0
  br i1 %2896, label %2897, label %2914

2897:                                             ; preds = %2892
  %2898 = load i32, ptr %72, align 4, !tbaa !5
  %2899 = call ptr @__errno_location() #13
  store i32 %2898, ptr %2899, align 4, !tbaa !5
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = load i32, ptr @test_count, align 4, !tbaa !5
  %2902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @s2n_strerror(i32 noundef %2903, ptr noundef @.str.4)
  %2905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call ptr @s2n_strerror_debug(i32 noundef %2906, ptr noundef @.str.4)
  %2908 = call ptr @__errno_location() #13
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  %2910 = call ptr @strerror(i32 noundef %2909) #12
  %2911 = call ptr @__errno_location() #13
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  %2913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2900, ptr noundef @.str.2, i32 noundef %2901, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 177, ptr noundef %2904, ptr noundef %2907, ptr noundef %2910, i32 noundef %2912) #12
  br label %2931

2914:                                             ; preds = %2892, %2885
  %2915 = load i32, ptr %72, align 4, !tbaa !5
  %2916 = call ptr @__errno_location() #13
  store i32 %2915, ptr %2916, align 4, !tbaa !5
  %2917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2918 = load i32, ptr @test_count, align 4, !tbaa !5
  %2919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror(i32 noundef %2920, ptr noundef @.str.4)
  %2922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2923 = load i32, ptr %2922, align 4, !tbaa !5
  %2924 = call ptr @s2n_strerror_debug(i32 noundef %2923, ptr noundef @.str.4)
  %2925 = call ptr @__errno_location() #13
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  %2927 = call ptr @strerror(i32 noundef %2926) #12
  %2928 = call ptr @__errno_location() #13
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2917, ptr noundef @.str.5, i32 noundef %2918, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 177, ptr noundef %2921, ptr noundef %2924, ptr noundef %2927, i32 noundef %2929) #12
  br label %2931

2931:                                             ; preds = %2914, %2897
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #12
  br label %2932

2932:                                             ; preds = %2931
  br label %2933

2933:                                             ; preds = %2932
  call void @exit(i32 noundef 1) #14
  unreachable

2934:                                             ; No predecessors!
  br label %2935

2935:                                             ; preds = %2934
  br label %2936

2936:                                             ; preds = %2935, %2877
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

2938:                                             ; preds = %2937
  call void @llvm.lifetime.start.p0(i64 128, ptr %73) #12
  br label %2939

2939:                                             ; preds = %2938
  %2940 = load i32, ptr @test_count, align 4, !tbaa !5
  %2941 = add nsw i32 %2940, 1
  store i32 %2941, ptr @test_count, align 4, !tbaa !5
  %2942 = load ptr, ptr %46, align 8, !tbaa !9
  %2943 = call i32 @s2n_connection_set_blinding(ptr noundef %2942, i32 noundef 1)
  %2944 = icmp eq i32 %2943, -1
  br i1 %2944, label %2945, label %2998

2945:                                             ; preds = %2939
  br label %2946

2946:                                             ; preds = %2945
  br label %2947

2947:                                             ; preds = %2946
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #12
  %2948 = call ptr @__errno_location() #13
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  store i32 %2949, ptr %74, align 4, !tbaa !5
  %2950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2951 = call i32 @s2n_print_stacktrace(ptr noundef %2950)
  %2952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2953 = trunc i8 %2952 to i1
  br i1 %2953, label %2954, label %2976

2954:                                             ; preds = %2947
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = call i32 @fileno(ptr noundef %2955) #12
  %2957 = call i32 @isatty(i32 noundef %2956) #12
  %2958 = icmp ne i32 %2957, 0
  br i1 %2958, label %2959, label %2976

2959:                                             ; preds = %2954
  %2960 = load i32, ptr %74, align 4, !tbaa !5
  %2961 = call ptr @__errno_location() #13
  store i32 %2960, ptr %2961, align 4, !tbaa !5
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = load i32, ptr @test_count, align 4, !tbaa !5
  %2964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2965 = load i32, ptr %2964, align 4, !tbaa !5
  %2966 = call ptr @s2n_strerror(i32 noundef %2965, ptr noundef @.str.4)
  %2967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2968 = load i32, ptr %2967, align 4, !tbaa !5
  %2969 = call ptr @s2n_strerror_debug(i32 noundef %2968, ptr noundef @.str.4)
  %2970 = call ptr @__errno_location() #13
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call ptr @strerror(i32 noundef %2971) #12
  %2973 = call ptr @__errno_location() #13
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2962, ptr noundef @.str.2, i32 noundef %2963, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 181, ptr noundef %2966, ptr noundef %2969, ptr noundef %2972, i32 noundef %2974) #12
  br label %2993

2976:                                             ; preds = %2954, %2947
  %2977 = load i32, ptr %74, align 4, !tbaa !5
  %2978 = call ptr @__errno_location() #13
  store i32 %2977, ptr %2978, align 4, !tbaa !5
  %2979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2980 = load i32, ptr @test_count, align 4, !tbaa !5
  %2981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  %2983 = call ptr @s2n_strerror(i32 noundef %2982, ptr noundef @.str.4)
  %2984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2985 = load i32, ptr %2984, align 4, !tbaa !5
  %2986 = call ptr @s2n_strerror_debug(i32 noundef %2985, ptr noundef @.str.4)
  %2987 = call ptr @__errno_location() #13
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  %2989 = call ptr @strerror(i32 noundef %2988) #12
  %2990 = call ptr @__errno_location() #13
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2979, ptr noundef @.str.5, i32 noundef %2980, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 181, ptr noundef %2983, ptr noundef %2986, ptr noundef %2989, i32 noundef %2991) #12
  br label %2993

2993:                                             ; preds = %2976, %2959
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #12
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

2995:                                             ; preds = %2994
  call void @exit(i32 noundef 1) #14
  unreachable

2996:                                             ; No predecessors!
  br label %2997

2997:                                             ; preds = %2996
  br label %2998

2998:                                             ; preds = %2997, %2939
  br label %2999

2999:                                             ; preds = %2998
  br label %3000

3000:                                             ; preds = %2999
  br label %3001

3001:                                             ; preds = %3000
  br label %3002

3002:                                             ; preds = %3001
  br label %3003

3003:                                             ; preds = %3002
  %3004 = load i32, ptr @test_count, align 4, !tbaa !5
  %3005 = add nsw i32 %3004, 1
  store i32 %3005, ptr @test_count, align 4, !tbaa !5
  %3006 = load ptr, ptr %46, align 8, !tbaa !9
  %3007 = getelementptr inbounds [128 x i8], ptr %73, i64 0, i64 0
  %3008 = call i64 @s2n_recv(ptr noundef %3006, ptr noundef %3007, i64 noundef 128, ptr noundef %49)
  %3009 = icmp eq i64 %3008, -1
  br i1 %3009, label %3063, label %3010

3010:                                             ; preds = %3003
  br label %3011

3011:                                             ; preds = %3010
  br label %3012

3012:                                             ; preds = %3011
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #12
  %3013 = call ptr @__errno_location() #13
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  store i32 %3014, ptr %75, align 4, !tbaa !5
  %3015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3016 = call i32 @s2n_print_stacktrace(ptr noundef %3015)
  %3017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3018 = trunc i8 %3017 to i1
  br i1 %3018, label %3019, label %3041

3019:                                             ; preds = %3012
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = call i32 @fileno(ptr noundef %3020) #12
  %3022 = call i32 @isatty(i32 noundef %3021) #12
  %3023 = icmp ne i32 %3022, 0
  br i1 %3023, label %3024, label %3041

3024:                                             ; preds = %3019
  %3025 = load i32, ptr %75, align 4, !tbaa !5
  %3026 = call ptr @__errno_location() #13
  store i32 %3025, ptr %3026, align 4, !tbaa !5
  %3027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3028 = load i32, ptr @test_count, align 4, !tbaa !5
  %3029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call ptr @s2n_strerror(i32 noundef %3030, ptr noundef @.str.4)
  %3032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call ptr @s2n_strerror_debug(i32 noundef %3033, ptr noundef @.str.4)
  %3035 = call ptr @__errno_location() #13
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @strerror(i32 noundef %3036) #12
  %3038 = call ptr @__errno_location() #13
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3027, ptr noundef @.str.2, i32 noundef %3028, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3031, ptr noundef %3034, ptr noundef %3037, i32 noundef %3039) #12
  br label %3058

3041:                                             ; preds = %3019, %3012
  %3042 = load i32, ptr %75, align 4, !tbaa !5
  %3043 = call ptr @__errno_location() #13
  store i32 %3042, ptr %3043, align 4, !tbaa !5
  %3044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3045 = load i32, ptr @test_count, align 4, !tbaa !5
  %3046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call ptr @s2n_strerror(i32 noundef %3047, ptr noundef @.str.4)
  %3049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3050 = load i32, ptr %3049, align 4, !tbaa !5
  %3051 = call ptr @s2n_strerror_debug(i32 noundef %3050, ptr noundef @.str.4)
  %3052 = call ptr @__errno_location() #13
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call ptr @strerror(i32 noundef %3053) #12
  %3055 = call ptr @__errno_location() #13
  %3056 = load i32, ptr %3055, align 4, !tbaa !5
  %3057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3044, ptr noundef @.str.5, i32 noundef %3045, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3048, ptr noundef %3051, ptr noundef %3054, i32 noundef %3056) #12
  br label %3058

3058:                                             ; preds = %3041, %3024
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #12
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059
  call void @exit(i32 noundef 1) #14
  unreachable

3061:                                             ; No predecessors!
  br label %3062

3062:                                             ; preds = %3061
  br label %3063

3063:                                             ; preds = %3062, %3003
  br label %3064

3064:                                             ; preds = %3063
  br label %3065

3065:                                             ; preds = %3064
  br label %3066

3066:                                             ; preds = %3065
  %3067 = load i32, ptr @test_count, align 4, !tbaa !5
  %3068 = add nsw i32 %3067, 1
  store i32 %3068, ptr @test_count, align 4, !tbaa !5
  %3069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3070 = load i32, ptr %3069, align 4, !tbaa !5
  %3071 = icmp eq i32 %3070, 335544322
  br i1 %3071, label %3125, label %3072

3072:                                             ; preds = %3066
  br label %3073

3073:                                             ; preds = %3072
  br label %3074

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

3081:                                             ; preds = %3074
  %3082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3083 = call i32 @fileno(ptr noundef %3082) #12
  %3084 = call i32 @isatty(i32 noundef %3083) #12
  %3085 = icmp ne i32 %3084, 0
  br i1 %3085, label %3086, label %3103

3086:                                             ; preds = %3081
  %3087 = load i32, ptr %76, align 4, !tbaa !5
  %3088 = call ptr @__errno_location() #13
  store i32 %3087, ptr %3088, align 4, !tbaa !5
  %3089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3090 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3092, ptr noundef @.str.4)
  %3094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3095 = load i32, ptr %3094, align 4, !tbaa !5
  %3096 = call ptr @s2n_strerror_debug(i32 noundef %3095, ptr noundef @.str.4)
  %3097 = call ptr @__errno_location() #13
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call ptr @strerror(i32 noundef %3098) #12
  %3100 = call ptr @__errno_location() #13
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  %3102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3089, ptr noundef @.str.2, i32 noundef %3090, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3093, ptr noundef %3096, ptr noundef %3099, i32 noundef %3101) #12
  br label %3120

3103:                                             ; preds = %3081, %3074
  %3104 = load i32, ptr %76, align 4, !tbaa !5
  %3105 = call ptr @__errno_location() #13
  store i32 %3104, ptr %3105, align 4, !tbaa !5
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3107 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3109, ptr noundef @.str.4)
  %3111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3112 = load i32, ptr %3111, align 4, !tbaa !5
  %3113 = call ptr @s2n_strerror_debug(i32 noundef %3112, ptr noundef @.str.4)
  %3114 = call ptr @__errno_location() #13
  %3115 = load i32, ptr %3114, align 4, !tbaa !5
  %3116 = call ptr @strerror(i32 noundef %3115) #12
  %3117 = call ptr @__errno_location() #13
  %3118 = load i32, ptr %3117, align 4, !tbaa !5
  %3119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3106, ptr noundef @.str.5, i32 noundef %3107, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3110, ptr noundef %3113, ptr noundef %3116, i32 noundef %3118) #12
  br label %3120

3120:                                             ; preds = %3103, %3086
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #12
  br label %3121

3121:                                             ; preds = %3120
  br label %3122

3122:                                             ; preds = %3121
  call void @exit(i32 noundef 1) #14
  unreachable

3123:                                             ; No predecessors!
  br label %3124

3124:                                             ; preds = %3123
  br label %3125

3125:                                             ; preds = %3124, %3066
  br label %3126

3126:                                             ; preds = %3125
  br label %3127

3127:                                             ; preds = %3126
  br label %3128

3128:                                             ; preds = %3127
  %3129 = load i32, ptr @test_count, align 4, !tbaa !5
  %3130 = add nsw i32 %3129, 1
  store i32 %3130, ptr @test_count, align 4, !tbaa !5
  %3131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3132 = load i32, ptr %3131, align 4, !tbaa !5
  %3133 = call ptr @s2n_strerror_debug(i32 noundef %3132, ptr noundef @.str.4)
  %3134 = icmp eq ptr %3133, null
  br i1 %3134, label %3135, label %3188

3135:                                             ; preds = %3128
  br label %3136

3136:                                             ; preds = %3135
  br label %3137

3137:                                             ; preds = %3136
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #12
  %3138 = call ptr @__errno_location() #13
  %3139 = load i32, ptr %3138, align 4, !tbaa !5
  store i32 %3139, ptr %77, 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) #12
  %3147 = call i32 @isatty(i32 noundef %3146) #12
  %3148 = icmp ne i32 %3147, 0
  br i1 %3148, label %3149, label %3166

3149:                                             ; preds = %3144
  %3150 = load i32, ptr %77, align 4, !tbaa !5
  %3151 = call ptr @__errno_location() #13
  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() #13
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call ptr @strerror(i32 noundef %3161) #12
  %3163 = call ptr @__errno_location() #13
  %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.55, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3156, ptr noundef %3159, ptr noundef %3162, i32 noundef %3164) #12
  br label %3183

3166:                                             ; preds = %3144, %3137
  %3167 = load i32, ptr %77, align 4, !tbaa !5
  %3168 = call ptr @__errno_location() #13
  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() #13
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call ptr @strerror(i32 noundef %3178) #12
  %3180 = call ptr @__errno_location() #13
  %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.55, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3173, ptr noundef %3176, ptr noundef %3179, i32 noundef %3181) #12
  br label %3183

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

3184:                                             ; preds = %3183
  br label %3185

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

3186:                                             ; No predecessors!
  br label %3187

3187:                                             ; preds = %3186
  br label %3188

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

3189:                                             ; preds = %3188
  br label %3190

3190:                                             ; preds = %3189
  br label %3191

3191:                                             ; preds = %3190
  br label %3192

3192:                                             ; preds = %3191
  br label %3193

3193:                                             ; preds = %3192
  %3194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3194, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3195 = call ptr @__errno_location() #13
  store i32 0, ptr %3195, align 4, !tbaa !5
  br label %3196

3196:                                             ; preds = %3193
  br label %3197

3197:                                             ; preds = %3196
  br label %3198

3198:                                             ; preds = %3197
  br label %3199

3199:                                             ; preds = %3198
  br label %3200

3200:                                             ; preds = %3199
  %3201 = load i32, ptr @test_count, align 4, !tbaa !5
  %3202 = add nsw i32 %3201, 1
  store i32 %3202, ptr @test_count, align 4, !tbaa !5
  %3203 = load ptr, ptr %46, align 8, !tbaa !9
  %3204 = call i32 @s2n_connection_free(ptr noundef %3203)
  %3205 = icmp eq i32 %3204, -1
  br i1 %3205, label %3206, label %3259

3206:                                             ; preds = %3200
  br label %3207

3207:                                             ; preds = %3206
  br label %3208

3208:                                             ; preds = %3207
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #12
  %3209 = call ptr @__errno_location() #13
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  store i32 %3210, ptr %78, align 4, !tbaa !5
  %3211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3212 = call i32 @s2n_print_stacktrace(ptr noundef %3211)
  %3213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3214 = trunc i8 %3213 to i1
  br i1 %3214, label %3215, label %3237

3215:                                             ; preds = %3208
  %3216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3217 = call i32 @fileno(ptr noundef %3216) #12
  %3218 = call i32 @isatty(i32 noundef %3217) #12
  %3219 = icmp ne i32 %3218, 0
  br i1 %3219, label %3220, label %3237

3220:                                             ; preds = %3215
  %3221 = load i32, ptr %78, align 4, !tbaa !5
  %3222 = call ptr @__errno_location() #13
  store i32 %3221, ptr %3222, align 4, !tbaa !5
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = load i32, ptr @test_count, align 4, !tbaa !5
  %3225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3226 = load i32, ptr %3225, align 4, !tbaa !5
  %3227 = call ptr @s2n_strerror(i32 noundef %3226, ptr noundef @.str.4)
  %3228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3229 = load i32, ptr %3228, align 4, !tbaa !5
  %3230 = call ptr @s2n_strerror_debug(i32 noundef %3229, ptr noundef @.str.4)
  %3231 = call ptr @__errno_location() #13
  %3232 = load i32, ptr %3231, align 4, !tbaa !5
  %3233 = call ptr @strerror(i32 noundef %3232) #12
  %3234 = call ptr @__errno_location() #13
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3223, ptr noundef @.str.2, i32 noundef %3224, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3227, ptr noundef %3230, ptr noundef %3233, i32 noundef %3235) #12
  br label %3254

3237:                                             ; preds = %3215, %3208
  %3238 = load i32, ptr %78, align 4, !tbaa !5
  %3239 = call ptr @__errno_location() #13
  store i32 %3238, ptr %3239, align 4, !tbaa !5
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = load i32, ptr @test_count, align 4, !tbaa !5
  %3242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3243 = load i32, ptr %3242, align 4, !tbaa !5
  %3244 = call ptr @s2n_strerror(i32 noundef %3243, ptr noundef @.str.4)
  %3245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3246 = load i32, ptr %3245, align 4, !tbaa !5
  %3247 = call ptr @s2n_strerror_debug(i32 noundef %3246, ptr noundef @.str.4)
  %3248 = call ptr @__errno_location() #13
  %3249 = load i32, ptr %3248, align 4, !tbaa !5
  %3250 = call ptr @strerror(i32 noundef %3249) #12
  %3251 = call ptr @__errno_location() #13
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3240, ptr noundef @.str.5, i32 noundef %3241, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3244, ptr noundef %3247, ptr noundef %3250, i32 noundef %3252) #12
  br label %3254

3254:                                             ; preds = %3237, %3220
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #12
  br label %3255

3255:                                             ; preds = %3254
  br label %3256

3256:                                             ; preds = %3255
  call void @exit(i32 noundef 1) #14
  unreachable

3257:                                             ; No predecessors!
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

3259:                                             ; preds = %3258, %3200
  br label %3260

3260:                                             ; preds = %3259
  br label %3261

3261:                                             ; preds = %3260
  br label %3262

3262:                                             ; preds = %3261
  %3263 = load i32, ptr @test_count, align 4, !tbaa !5
  %3264 = add nsw i32 %3263, 1
  store i32 %3264, ptr @test_count, align 4, !tbaa !5
  %3265 = load ptr, ptr %45, align 8, !tbaa !9
  %3266 = call i32 @s2n_connection_free(ptr noundef %3265)
  %3267 = icmp eq i32 %3266, -1
  br i1 %3267, label %3268, label %3321

3268:                                             ; preds = %3262
  br label %3269

3269:                                             ; preds = %3268
  br label %3270

3270:                                             ; preds = %3269
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #12
  %3271 = call ptr @__errno_location() #13
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  store i32 %3272, ptr %79, align 4, !tbaa !5
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = call i32 @s2n_print_stacktrace(ptr noundef %3273)
  %3275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3276 = trunc i8 %3275 to i1
  br i1 %3276, label %3277, label %3299

3277:                                             ; preds = %3270
  %3278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3279 = call i32 @fileno(ptr noundef %3278) #12
  %3280 = call i32 @isatty(i32 noundef %3279) #12
  %3281 = icmp ne i32 %3280, 0
  br i1 %3281, label %3282, label %3299

3282:                                             ; preds = %3277
  %3283 = load i32, ptr %79, align 4, !tbaa !5
  %3284 = call ptr @__errno_location() #13
  store i32 %3283, ptr %3284, align 4, !tbaa !5
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = load i32, ptr @test_count, align 4, !tbaa !5
  %3287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3288 = load i32, ptr %3287, align 4, !tbaa !5
  %3289 = call ptr @s2n_strerror(i32 noundef %3288, ptr noundef @.str.4)
  %3290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3291 = load i32, ptr %3290, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror_debug(i32 noundef %3291, ptr noundef @.str.4)
  %3293 = call ptr @__errno_location() #13
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @strerror(i32 noundef %3294) #12
  %3296 = call ptr @__errno_location() #13
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3285, ptr noundef @.str.2, i32 noundef %3286, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3289, ptr noundef %3292, ptr noundef %3295, i32 noundef %3297) #12
  br label %3316

3299:                                             ; preds = %3277, %3270
  %3300 = load i32, ptr %79, align 4, !tbaa !5
  %3301 = call ptr @__errno_location() #13
  store i32 %3300, ptr %3301, align 4, !tbaa !5
  %3302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3303 = load i32, ptr @test_count, align 4, !tbaa !5
  %3304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call ptr @s2n_strerror(i32 noundef %3305, ptr noundef @.str.4)
  %3307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = call ptr @s2n_strerror_debug(i32 noundef %3308, ptr noundef @.str.4)
  %3310 = call ptr @__errno_location() #13
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call ptr @strerror(i32 noundef %3311) #12
  %3313 = call ptr @__errno_location() #13
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3302, ptr noundef @.str.5, i32 noundef %3303, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3306, ptr noundef %3309, ptr noundef %3312, i32 noundef %3314) #12
  br label %3316

3316:                                             ; preds = %3299, %3282
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #12
  br label %3317

3317:                                             ; preds = %3316
  br label %3318

3318:                                             ; preds = %3317
  call void @exit(i32 noundef 1) #14
  unreachable

3319:                                             ; No predecessors!
  br label %3320

3320:                                             ; preds = %3319
  br label %3321

3321:                                             ; preds = %3320, %3262
  br label %3322

3322:                                             ; preds = %3321
  br label %3323

3323:                                             ; preds = %3322
  br label %3324

3324:                                             ; preds = %3323
  %3325 = load i32, ptr @test_count, align 4, !tbaa !5
  %3326 = add nsw i32 %3325, 1
  store i32 %3326, ptr @test_count, align 4, !tbaa !5
  %3327 = call i32 @s2n_io_pair_close(ptr noundef %43)
  %3328 = icmp eq i32 %3327, -1
  br i1 %3328, label %3329, label %3382

3329:                                             ; preds = %3324
  br label %3330

3330:                                             ; preds = %3329
  br label %3331

3331:                                             ; preds = %3330
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #12
  %3332 = call ptr @__errno_location() #13
  %3333 = load i32, ptr %3332, align 4, !tbaa !5
  store i32 %3333, ptr %80, align 4, !tbaa !5
  %3334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3335 = call i32 @s2n_print_stacktrace(ptr noundef %3334)
  %3336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3337 = trunc i8 %3336 to i1
  br i1 %3337, label %3338, label %3360

3338:                                             ; preds = %3331
  %3339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3340 = call i32 @fileno(ptr noundef %3339) #12
  %3341 = call i32 @isatty(i32 noundef %3340) #12
  %3342 = icmp ne i32 %3341, 0
  br i1 %3342, label %3343, label %3360

3343:                                             ; preds = %3338
  %3344 = load i32, ptr %80, align 4, !tbaa !5
  %3345 = call ptr @__errno_location() #13
  store i32 %3344, ptr %3345, align 4, !tbaa !5
  %3346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3347 = load i32, ptr @test_count, align 4, !tbaa !5
  %3348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call ptr @s2n_strerror(i32 noundef %3349, ptr noundef @.str.4)
  %3351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call ptr @s2n_strerror_debug(i32 noundef %3352, ptr noundef @.str.4)
  %3354 = call ptr @__errno_location() #13
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = call ptr @strerror(i32 noundef %3355) #12
  %3357 = call ptr @__errno_location() #13
  %3358 = load i32, ptr %3357, align 4, !tbaa !5
  %3359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3346, ptr noundef @.str.2, i32 noundef %3347, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3350, ptr noundef %3353, ptr noundef %3356, i32 noundef %3358) #12
  br label %3377

3360:                                             ; preds = %3338, %3331
  %3361 = load i32, ptr %80, align 4, !tbaa !5
  %3362 = call ptr @__errno_location() #13
  store i32 %3361, ptr %3362, align 4, !tbaa !5
  %3363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3364 = load i32, ptr @test_count, align 4, !tbaa !5
  %3365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  %3367 = call ptr @s2n_strerror(i32 noundef %3366, ptr noundef @.str.4)
  %3368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3369 = load i32, ptr %3368, align 4, !tbaa !5
  %3370 = call ptr @s2n_strerror_debug(i32 noundef %3369, ptr noundef @.str.4)
  %3371 = call ptr @__errno_location() #13
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  %3373 = call ptr @strerror(i32 noundef %3372) #12
  %3374 = call ptr @__errno_location() #13
  %3375 = load i32, ptr %3374, align 4, !tbaa !5
  %3376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3363, ptr noundef @.str.5, i32 noundef %3364, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3367, ptr noundef %3370, ptr noundef %3373, i32 noundef %3375) #12
  br label %3377

3377:                                             ; preds = %3360, %3343
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #12
  br label %3378

3378:                                             ; preds = %3377
  br label %3379

3379:                                             ; preds = %3378
  call void @exit(i32 noundef 1) #14
  unreachable

3380:                                             ; No predecessors!
  br label %3381

3381:                                             ; preds = %3380
  br label %3382

3382:                                             ; preds = %3381, %3324
  br label %3383

3383:                                             ; preds = %3382
  br label %3384

3384:                                             ; preds = %3383
  br label %3385

3385:                                             ; preds = %3384
  %3386 = load i32, ptr @test_count, align 4, !tbaa !5
  %3387 = add nsw i32 %3386, 1
  store i32 %3387, ptr @test_count, align 4, !tbaa !5
  %3388 = load ptr, ptr %48, align 8, !tbaa !9
  %3389 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %3388)
  %3390 = icmp eq i32 %3389, -1
  br i1 %3390, label %3391, label %3444

3391:                                             ; preds = %3385
  br label %3392

3392:                                             ; preds = %3391
  br label %3393

3393:                                             ; preds = %3392
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #12
  %3394 = call ptr @__errno_location() #13
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  store i32 %3395, ptr %81, align 4, !tbaa !5
  %3396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3397 = call i32 @s2n_print_stacktrace(ptr noundef %3396)
  %3398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3399 = trunc i8 %3398 to i1
  br i1 %3399, label %3400, label %3422

3400:                                             ; preds = %3393
  %3401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3402 = call i32 @fileno(ptr noundef %3401) #12
  %3403 = call i32 @isatty(i32 noundef %3402) #12
  %3404 = icmp ne i32 %3403, 0
  br i1 %3404, label %3405, label %3422

3405:                                             ; preds = %3400
  %3406 = load i32, ptr %81, align 4, !tbaa !5
  %3407 = call ptr @__errno_location() #13
  store i32 %3406, ptr %3407, align 4, !tbaa !5
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = load i32, ptr @test_count, align 4, !tbaa !5
  %3410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  %3412 = call ptr @s2n_strerror(i32 noundef %3411, ptr noundef @.str.4)
  %3413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror_debug(i32 noundef %3414, ptr noundef @.str.4)
  %3416 = call ptr @__errno_location() #13
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call ptr @strerror(i32 noundef %3417) #12
  %3419 = call ptr @__errno_location() #13
  %3420 = load i32, ptr %3419, align 4, !tbaa !5
  %3421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3408, ptr noundef @.str.2, i32 noundef %3409, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3412, ptr noundef %3415, ptr noundef %3418, i32 noundef %3420) #12
  br label %3439

3422:                                             ; preds = %3400, %3393
  %3423 = load i32, ptr %81, align 4, !tbaa !5
  %3424 = call ptr @__errno_location() #13
  store i32 %3423, ptr %3424, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = load i32, ptr @test_count, align 4, !tbaa !5
  %3427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3428 = load i32, ptr %3427, align 4, !tbaa !5
  %3429 = call ptr @s2n_strerror(i32 noundef %3428, ptr noundef @.str.4)
  %3430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3431 = load i32, ptr %3430, align 4, !tbaa !5
  %3432 = call ptr @s2n_strerror_debug(i32 noundef %3431, ptr noundef @.str.4)
  %3433 = call ptr @__errno_location() #13
  %3434 = load i32, ptr %3433, align 4, !tbaa !5
  %3435 = call ptr @strerror(i32 noundef %3434) #12
  %3436 = call ptr @__errno_location() #13
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3425, ptr noundef @.str.5, i32 noundef %3426, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3429, ptr noundef %3432, ptr noundef %3435, i32 noundef %3437) #12
  br label %3439

3439:                                             ; preds = %3422, %3405
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #12
  br label %3440

3440:                                             ; preds = %3439
  br label %3441

3441:                                             ; preds = %3440
  call void @exit(i32 noundef 1) #14
  unreachable

3442:                                             ; No predecessors!
  br label %3443

3443:                                             ; preds = %3442
  br label %3444

3444:                                             ; preds = %3443, %3385
  br label %3445

3445:                                             ; preds = %3444
  br label %3446

3446:                                             ; preds = %3445
  br label %3447

3447:                                             ; preds = %3446
  %3448 = load i32, ptr @test_count, align 4, !tbaa !5
  %3449 = add nsw i32 %3448, 1
  store i32 %3449, ptr @test_count, align 4, !tbaa !5
  %3450 = load ptr, ptr %47, align 8, !tbaa !9
  %3451 = call i32 @s2n_config_free(ptr noundef %3450)
  %3452 = icmp eq i32 %3451, -1
  br i1 %3452, label %3453, label %3506

3453:                                             ; preds = %3447
  br label %3454

3454:                                             ; preds = %3453
  br label %3455

3455:                                             ; preds = %3454
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #12
  %3456 = call ptr @__errno_location() #13
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  store i32 %3457, ptr %82, align 4, !tbaa !5
  %3458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3459 = call i32 @s2n_print_stacktrace(ptr noundef %3458)
  %3460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3461 = trunc i8 %3460 to i1
  br i1 %3461, label %3462, label %3484

3462:                                             ; preds = %3455
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = call i32 @fileno(ptr noundef %3463) #12
  %3465 = call i32 @isatty(i32 noundef %3464) #12
  %3466 = icmp ne i32 %3465, 0
  br i1 %3466, label %3467, label %3484

3467:                                             ; preds = %3462
  %3468 = load i32, ptr %82, align 4, !tbaa !5
  %3469 = call ptr @__errno_location() #13
  store i32 %3468, ptr %3469, align 4, !tbaa !5
  %3470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3471 = load i32, ptr @test_count, align 4, !tbaa !5
  %3472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3473 = load i32, ptr %3472, align 4, !tbaa !5
  %3474 = call ptr @s2n_strerror(i32 noundef %3473, ptr noundef @.str.4)
  %3475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3476 = load i32, ptr %3475, align 4, !tbaa !5
  %3477 = call ptr @s2n_strerror_debug(i32 noundef %3476, ptr noundef @.str.4)
  %3478 = call ptr @__errno_location() #13
  %3479 = load i32, ptr %3478, align 4, !tbaa !5
  %3480 = call ptr @strerror(i32 noundef %3479) #12
  %3481 = call ptr @__errno_location() #13
  %3482 = load i32, ptr %3481, align 4, !tbaa !5
  %3483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3470, ptr noundef @.str.2, i32 noundef %3471, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3474, ptr noundef %3477, ptr noundef %3480, i32 noundef %3482) #12
  br label %3501

3484:                                             ; preds = %3462, %3455
  %3485 = load i32, ptr %82, align 4, !tbaa !5
  %3486 = call ptr @__errno_location() #13
  store i32 %3485, ptr %3486, align 4, !tbaa !5
  %3487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3488 = load i32, ptr @test_count, align 4, !tbaa !5
  %3489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3490 = load i32, ptr %3489, align 4, !tbaa !5
  %3491 = call ptr @s2n_strerror(i32 noundef %3490, ptr noundef @.str.4)
  %3492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3493 = load i32, ptr %3492, align 4, !tbaa !5
  %3494 = call ptr @s2n_strerror_debug(i32 noundef %3493, ptr noundef @.str.4)
  %3495 = call ptr @__errno_location() #13
  %3496 = load i32, ptr %3495, align 4, !tbaa !5
  %3497 = call ptr @strerror(i32 noundef %3496) #12
  %3498 = call ptr @__errno_location() #13
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3487, ptr noundef @.str.5, i32 noundef %3488, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3491, ptr noundef %3494, ptr noundef %3497, i32 noundef %3499) #12
  br label %3501

3501:                                             ; preds = %3484, %3467
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #12
  br label %3502

3502:                                             ; preds = %3501
  br label %3503

3503:                                             ; preds = %3502
  call void @exit(i32 noundef 1) #14
  unreachable

3504:                                             ; No predecessors!
  br label %3505

3505:                                             ; preds = %3504
  br label %3506

3506:                                             ; preds = %3505, %3447
  br label %3507

3507:                                             ; preds = %3506
  br label %3508

3508:                                             ; preds = %3507
  br label %3509

3509:                                             ; preds = %3508
  %3510 = load i32, ptr @test_count, align 4, !tbaa !5
  %3511 = add nsw i32 %3510, 1
  store i32 %3511, ptr @test_count, align 4, !tbaa !5
  %3512 = load ptr, ptr %50, align 8, !tbaa !9
  %3513 = call i32 @s2n_config_free(ptr noundef %3512)
  %3514 = icmp eq i32 %3513, -1
  br i1 %3514, label %3515, label %3568

3515:                                             ; preds = %3509
  br label %3516

3516:                                             ; preds = %3515
  br label %3517

3517:                                             ; preds = %3516
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #12
  %3518 = call ptr @__errno_location() #13
  %3519 = load i32, ptr %3518, align 4, !tbaa !5
  store i32 %3519, ptr %83, align 4, !tbaa !5
  %3520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3521 = call i32 @s2n_print_stacktrace(ptr noundef %3520)
  %3522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3523 = trunc i8 %3522 to i1
  br i1 %3523, label %3524, label %3546

3524:                                             ; preds = %3517
  %3525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3526 = call i32 @fileno(ptr noundef %3525) #12
  %3527 = call i32 @isatty(i32 noundef %3526) #12
  %3528 = icmp ne i32 %3527, 0
  br i1 %3528, label %3529, label %3546

3529:                                             ; preds = %3524
  %3530 = load i32, ptr %83, align 4, !tbaa !5
  %3531 = call ptr @__errno_location() #13
  store i32 %3530, ptr %3531, align 4, !tbaa !5
  %3532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3533 = load i32, ptr @test_count, align 4, !tbaa !5
  %3534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  %3536 = call ptr @s2n_strerror(i32 noundef %3535, ptr noundef @.str.4)
  %3537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3538 = load i32, ptr %3537, align 4, !tbaa !5
  %3539 = call ptr @s2n_strerror_debug(i32 noundef %3538, ptr noundef @.str.4)
  %3540 = call ptr @__errno_location() #13
  %3541 = load i32, ptr %3540, align 4, !tbaa !5
  %3542 = call ptr @strerror(i32 noundef %3541) #12
  %3543 = call ptr @__errno_location() #13
  %3544 = load i32, ptr %3543, align 4, !tbaa !5
  %3545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3532, ptr noundef @.str.2, i32 noundef %3533, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 189, ptr noundef %3536, ptr noundef %3539, ptr noundef %3542, i32 noundef %3544) #12
  br label %3563

3546:                                             ; preds = %3524, %3517
  %3547 = load i32, ptr %83, align 4, !tbaa !5
  %3548 = call ptr @__errno_location() #13
  store i32 %3547, ptr %3548, align 4, !tbaa !5
  %3549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3550 = load i32, ptr @test_count, align 4, !tbaa !5
  %3551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3552 = load i32, ptr %3551, align 4, !tbaa !5
  %3553 = call ptr @s2n_strerror(i32 noundef %3552, ptr noundef @.str.4)
  %3554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3555 = load i32, ptr %3554, align 4, !tbaa !5
  %3556 = call ptr @s2n_strerror_debug(i32 noundef %3555, ptr noundef @.str.4)
  %3557 = call ptr @__errno_location() #13
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call ptr @strerror(i32 noundef %3558) #12
  %3560 = call ptr @__errno_location() #13
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3549, ptr noundef @.str.5, i32 noundef %3550, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 189, ptr noundef %3553, ptr noundef %3556, ptr noundef %3559, i32 noundef %3561) #12
  br label %3563

3563:                                             ; preds = %3546, %3529
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #12
  br label %3564

3564:                                             ; preds = %3563
  br label %3565

3565:                                             ; preds = %3564
  call void @exit(i32 noundef 1) #14
  unreachable

3566:                                             ; No predecessors!
  br label %3567

3567:                                             ; preds = %3566
  br label %3568

3568:                                             ; preds = %3567, %3509
  br label %3569

3569:                                             ; preds = %3568
  br label %3570

3570:                                             ; preds = %3569
  %3571 = load ptr, ptr %38, align 8, !tbaa !9
  call void @free(ptr noundef %3571) #12
  %3572 = load ptr, ptr %39, align 8, !tbaa !9
  call void @free(ptr noundef %3572) #12
  call void @llvm.lifetime.end.p0(i64 128, ptr %73) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #12
  call void @llvm.lifetime.end.p0(i64 5, ptr %66) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #12
  br label %3573

3573:                                             ; preds = %3570
  br label %3574

3574:                                             ; preds = %3573
  %3575 = call i32 @s2n_cleanup()
  %3576 = icmp eq i32 %3575, -1
  br i1 %3576, label %3577, label %3630

3577:                                             ; preds = %3574
  br label %3578

3578:                                             ; preds = %3577
  br label %3579

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

3586:                                             ; preds = %3579
  %3587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3588 = call i32 @fileno(ptr noundef %3587) #12
  %3589 = call i32 @isatty(i32 noundef %3588) #12
  %3590 = icmp ne i32 %3589, 0
  br i1 %3590, label %3591, label %3608

3591:                                             ; preds = %3586
  %3592 = load i32, ptr %84, align 4, !tbaa !5
  %3593 = call ptr @__errno_location() #13
  store i32 %3592, ptr %3593, align 4, !tbaa !5
  %3594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3595 = load i32, ptr @test_count, align 4, !tbaa !5
  %3596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3597 = load i32, ptr %3596, align 4, !tbaa !5
  %3598 = call ptr @s2n_strerror(i32 noundef %3597, ptr noundef @.str.4)
  %3599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3600 = load i32, ptr %3599, align 4, !tbaa !5
  %3601 = call ptr @s2n_strerror_debug(i32 noundef %3600, ptr noundef @.str.4)
  %3602 = call ptr @__errno_location() #13
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  %3604 = call ptr @strerror(i32 noundef %3603) #12
  %3605 = call ptr @__errno_location() #13
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  %3607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3594, ptr noundef @.str.2, i32 noundef %3595, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3598, ptr noundef %3601, ptr noundef %3604, i32 noundef %3606) #12
  br label %3625

3608:                                             ; preds = %3586, %3579
  %3609 = load i32, ptr %84, align 4, !tbaa !5
  %3610 = call ptr @__errno_location() #13
  store i32 %3609, ptr %3610, align 4, !tbaa !5
  %3611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3612 = load i32, ptr @test_count, align 4, !tbaa !5
  %3613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3614 = load i32, ptr %3613, align 4, !tbaa !5
  %3615 = call ptr @s2n_strerror(i32 noundef %3614, ptr noundef @.str.4)
  %3616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3617 = load i32, ptr %3616, align 4, !tbaa !5
  %3618 = call ptr @s2n_strerror_debug(i32 noundef %3617, ptr noundef @.str.4)
  %3619 = call ptr @__errno_location() #13
  %3620 = load i32, ptr %3619, align 4, !tbaa !5
  %3621 = call ptr @strerror(i32 noundef %3620) #12
  %3622 = call ptr @__errno_location() #13
  %3623 = load i32, ptr %3622, align 4, !tbaa !5
  %3624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3611, ptr noundef @.str.5, i32 noundef %3612, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3615, ptr noundef %3618, ptr noundef %3621, i32 noundef %3623) #12
  br label %3625

3625:                                             ; preds = %3608, %3591
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #12
  br label %3626

3626:                                             ; preds = %3625
  br label %3627

3627:                                             ; preds = %3626
  call void @exit(i32 noundef 1) #14
  unreachable

3628:                                             ; No predecessors!
  br label %3629

3629:                                             ; preds = %3628
  br label %3630

3630:                                             ; preds = %3629, %3574
  br label %3631

3631:                                             ; preds = %3630
  br label %3632

3632:                                             ; preds = %3631
  br label %3633

3633:                                             ; preds = %3632
  br label %3634

3634:                                             ; preds = %3633
  %3635 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3636 = icmp eq i32 %3635, -1
  br i1 %3636, label %3637, label %3690

3637:                                             ; preds = %3634
  br label %3638

3638:                                             ; preds = %3637
  br label %3639

3639:                                             ; preds = %3638
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #12
  %3640 = call ptr @__errno_location() #13
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  store i32 %3641, ptr %85, align 4, !tbaa !5
  %3642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3643 = call i32 @s2n_print_stacktrace(ptr noundef %3642)
  %3644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3645 = trunc i8 %3644 to i1
  br i1 %3645, label %3646, label %3668

3646:                                             ; preds = %3639
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = call i32 @fileno(ptr noundef %3647) #12
  %3649 = call i32 @isatty(i32 noundef %3648) #12
  %3650 = icmp ne i32 %3649, 0
  br i1 %3650, label %3651, label %3668

3651:                                             ; preds = %3646
  %3652 = load i32, ptr %85, align 4, !tbaa !5
  %3653 = call ptr @__errno_location() #13
  store i32 %3652, ptr %3653, align 4, !tbaa !5
  %3654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3655 = load i32, ptr @test_count, align 4, !tbaa !5
  %3656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3657 = load i32, ptr %3656, align 4, !tbaa !5
  %3658 = call ptr @s2n_strerror(i32 noundef %3657, ptr noundef @.str.4)
  %3659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call ptr @s2n_strerror_debug(i32 noundef %3660, ptr noundef @.str.4)
  %3662 = call ptr @__errno_location() #13
  %3663 = load i32, ptr %3662, align 4, !tbaa !5
  %3664 = call ptr @strerror(i32 noundef %3663) #12
  %3665 = call ptr @__errno_location() #13
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3654, ptr noundef @.str.2, i32 noundef %3655, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3658, ptr noundef %3661, ptr noundef %3664, i32 noundef %3666) #12
  br label %3685

3668:                                             ; preds = %3646, %3639
  %3669 = load i32, ptr %85, align 4, !tbaa !5
  %3670 = call ptr @__errno_location() #13
  store i32 %3669, ptr %3670, align 4, !tbaa !5
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = load i32, ptr @test_count, align 4, !tbaa !5
  %3673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3674 = load i32, ptr %3673, align 4, !tbaa !5
  %3675 = call ptr @s2n_strerror(i32 noundef %3674, ptr noundef @.str.4)
  %3676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3677 = load i32, ptr %3676, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror_debug(i32 noundef %3677, ptr noundef @.str.4)
  %3679 = call ptr @__errno_location() #13
  %3680 = load i32, ptr %3679, align 4, !tbaa !5
  %3681 = call ptr @strerror(i32 noundef %3680) #12
  %3682 = call ptr @__errno_location() #13
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3671, ptr noundef @.str.5, i32 noundef %3672, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3675, ptr noundef %3678, ptr noundef %3681, i32 noundef %3683) #12
  br label %3685

3685:                                             ; preds = %3668, %3651
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #12
  br label %3686

3686:                                             ; preds = %3685
  br label %3687

3687:                                             ; preds = %3686
  call void @exit(i32 noundef 1) #14
  unreachable

3688:                                             ; No predecessors!
  br label %3689

3689:                                             ; preds = %3688
  br label %3690

3690:                                             ; preds = %3689, %3634
  br label %3691

3691:                                             ; preds = %3690
  br label %3692

3692:                                             ; preds = %3691
  %3693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3694 = trunc i8 %3693 to i1
  br i1 %3694, label %3695, label %3711

3695:                                             ; preds = %3692
  %3696 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3697 = call i32 @fileno(ptr noundef %3696) #12
  %3698 = call i32 @isatty(i32 noundef %3697) #12
  %3699 = icmp ne i32 %3698, 0
  br i1 %3699, label %3700, label %3711

3700:                                             ; preds = %3695
  %3701 = load i32, ptr @test_count, align 4, !tbaa !5
  %3702 = icmp ne i32 %3701, 0
  br i1 %3702, label %3703, label %3707

3703:                                             ; preds = %3700
  %3704 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3705 = load i32, ptr @test_count, align 4, !tbaa !5
  %3706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3704, ptr noundef @.str.62, i32 noundef %3705) #12
  br label %3710

3707:                                             ; preds = %3700
  %3708 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3708, ptr noundef @.str.63) #12
  br label %3710

3710:                                             ; preds = %3707, %3703
  br label %3722

3711:                                             ; preds = %3695, %3692
  %3712 = load i32, ptr @test_count, align 4, !tbaa !5
  %3713 = icmp ne i32 %3712, 0
  br i1 %3713, label %3714, label %3718

3714:                                             ; preds = %3711
  %3715 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3716 = load i32, ptr @test_count, align 4, !tbaa !5
  %3717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3715, ptr noundef @.str.64, i32 noundef %3716) #12
  br label %3721

3718:                                             ; preds = %3711
  %3719 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3719, ptr noundef @.str.65) #12
  br label %3721

3721:                                             ; preds = %3718, %3714
  br label %3722

3722:                                             ; preds = %3721, %3710
  store i32 0, ptr %3, align 4
  store i32 1, ptr %86, align 4
  br label %3727

3723:                                             ; No predecessors!
  br label %3724

3724:                                             ; preds = %3723
  br label %3725

3725:                                             ; preds = %3724
  br label %3726

3726:                                             ; preds = %3725
  store i32 0, ptr %86, align 4
  br label %3727

3727:                                             ; preds = %3726, %3722
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #12
  %3728 = load i32, ptr %86, align 4
  switch i32 %3728, label %3731 [
    i32 0, label %3729
    i32 1, label %3729
  ]

3729:                                             ; preds = %3727, %3727
  %3730 = load i32, ptr %3, align 4
  ret i32 %3730

3731:                                             ; preds = %3727
  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_enable_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 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

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

declare i64 @s2n_send(ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

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

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_disable_tls13_in_test(...) #2

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #10

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

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

declare ptr @s2n_config_new() #2

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

declare i32 @s2n_config_disable_x509_verification(ptr noundef) #2

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

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

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #2

declare ptr @s2n_cert_chain_and_key_new() #2

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

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

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

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

declare i32 @s2n_key_update_write(ptr noundef) #2

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

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

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

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

; Function Attrs: nounwind
declare void @free(ptr noundef) #1

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

!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, !7, i64 220}
!16 = !{!"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, !17, i64 160, !18, i64 168, !18, 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, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, 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}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, 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, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, 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}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!18, !18, i64 0}
!43 = !{!7, !7, i64 0}
!44 = !{!16, !10, i64 232}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}
!47 = !{!16, !7, i64 219}
!48 = !{!16, !7, i64 218}


; 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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 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 [55 x i8], align 1
@__const.main.max_record_limit = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [89 x i8], align 1
@__const.main.message = external hidden unnamed_addr constant [13 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [152 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.65 = 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 [8 x i8], align 8
  %4 = alloca %struct.s2n_stuffer, align 8
  %5 = alloca %struct.s2n_stuffer, align 8
  %6 = alloca i32, align 4
  %7 = alloca [13 x i8], align 1
  %8 = alloca [100 x i8], align 16
  %9 = alloca %struct.s2n_test_io_pair, align 4
  %10 = alloca i32, align 4
  %11 = alloca [5 x i8], align 1
  %12 = alloca %struct.s2n_blob, align 8
  %13 = alloca [128 x i8], align 16
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %14 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #14
  %16 = load ptr, ptr @stdout, align 8, !tbaa !9
  %17 = tail call i32 @fflush(ptr noundef %16)
  %18 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #14
  %19 = icmp eq i32 %18, -1
  br i1 %19, label %20, label %44

20:                                               ; preds = %2
  %21 = tail call ptr @__errno_location() #15
  %22 = load i32, ptr %21, align 4, !tbaa !5
  %23 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24 = tail call i32 @s2n_print_stacktrace(ptr noundef %23) #14
  %25 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26 = trunc nuw i8 %25 to i1
  br i1 %26, label %27, label %31

27:                                               ; preds = %20
  %28 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29 = tail call i32 @fileno(ptr noundef %28) #14
  %30 = tail call i32 @isatty(i32 noundef %29) #14
  %.not242 = icmp eq i32 %30, 0
  br i1 %.not242, label %31, label %32

31:                                               ; preds = %27, %20
  br label %32

32:                                               ; preds = %27, %31
  %.str.5.sink = phi ptr [ @.str.5, %31 ], [ @.str.2, %27 ]
  store i32 %22, ptr %21, align 4, !tbaa !5
  %33 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34 = load i32, ptr @test_count, align 4, !tbaa !5
  %35 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36 = load i32, ptr %35, align 4, !tbaa !5
  %37 = tail call ptr @s2n_strerror(i32 noundef %36, ptr noundef nonnull @.str.4) #14
  %38 = load i32, ptr %35, align 4, !tbaa !5
  %39 = tail call ptr @s2n_strerror_debug(i32 noundef %38, ptr noundef nonnull @.str.4) #14
  %40 = load i32, ptr %21, align 4, !tbaa !5
  %41 = tail call ptr @strerror(i32 noundef %40) #14
  %42 = load i32, ptr %21, align 4, !tbaa !5
  %43 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull %.str.5.sink, i32 noundef %34, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %37, ptr noundef %39, ptr noundef %41, i32 noundef %42) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

44:                                               ; preds = %2
  %45 = load i32, ptr @test_count, align 4, !tbaa !5
  %46 = add nsw i32 %45, 1
  store i32 %46, ptr @test_count, align 4, !tbaa !5
  %47 = tail call i32 @s2n_enable_atexit() #14
  %48 = icmp eq i32 %47, -1
  br i1 %48, label %49, label %73

49:                                               ; preds = %44
  %50 = tail call ptr @__errno_location() #15
  %51 = load i32, ptr %50, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = tail call i32 @s2n_print_stacktrace(ptr noundef %52) #14
  %54 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %55 = trunc nuw i8 %54 to i1
  br i1 %55, label %56, label %60

56:                                               ; preds = %49
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = tail call i32 @fileno(ptr noundef %57) #14
  %59 = tail call i32 @isatty(i32 noundef %58) #14
  %.not241 = icmp eq i32 %59, 0
  br i1 %.not241, label %60, label %61

60:                                               ; preds = %56, %49
  br label %61

61:                                               ; preds = %56, %60
  %.str.5.sink254 = phi ptr [ @.str.5, %60 ], [ @.str.2, %56 ]
  store i32 %51, ptr %50, align 4, !tbaa !5
  %62 = load ptr, ptr @stderr, align 8, !tbaa !9
  %63 = load i32, ptr @test_count, align 4, !tbaa !5
  %64 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %65 = load i32, ptr %64, align 4, !tbaa !5
  %66 = tail call ptr @s2n_strerror(i32 noundef %65, ptr noundef nonnull @.str.4) #14
  %67 = load i32, ptr %64, align 4, !tbaa !5
  %68 = tail call ptr @s2n_strerror_debug(i32 noundef %67, ptr noundef nonnull @.str.4) #14
  %69 = load i32, ptr %50, align 4, !tbaa !5
  %70 = tail call ptr @strerror(i32 noundef %69) #14
  %71 = load i32, ptr %50, align 4, !tbaa !5
  %72 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %62, ptr noundef nonnull %.str.5.sink254, i32 noundef %63, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %66, ptr noundef %68, ptr noundef %70, i32 noundef %71) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

73:                                               ; preds = %44
  %74 = tail call i32 @s2n_init() #14
  %75 = icmp eq i32 %74, -1
  br i1 %75, label %76, label %100

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

83:                                               ; preds = %76
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = tail call i32 @fileno(ptr noundef %84) #14
  %86 = tail call i32 @isatty(i32 noundef %85) #14
  %.not240 = icmp eq i32 %86, 0
  br i1 %.not240, label %87, label %88

87:                                               ; preds = %83, %76
  br label %88

88:                                               ; preds = %83, %87
  %.str.5.sink265 = phi ptr [ @.str.5, %87 ], [ @.str.2, %83 ]
  store i32 %78, ptr %77, align 4, !tbaa !5
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = load i32, ptr @test_count, align 4, !tbaa !5
  %91 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %92 = load i32, ptr %91, align 4, !tbaa !5
  %93 = tail call ptr @s2n_strerror(i32 noundef %92, ptr noundef nonnull @.str.4) #14
  %94 = load i32, ptr %91, align 4, !tbaa !5
  %95 = tail call ptr @s2n_strerror_debug(i32 noundef %94, ptr noundef nonnull @.str.4) #14
  %96 = load i32, ptr %77, align 4, !tbaa !5
  %97 = tail call ptr @strerror(i32 noundef %96) #14
  %98 = load i32, ptr %77, align 4, !tbaa !5
  %99 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %89, ptr noundef nonnull %.str.5.sink265, i32 noundef %90, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %93, ptr noundef %95, ptr noundef %97, i32 noundef %98) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

100:                                              ; preds = %73
  %101 = load i32, ptr @test_count, align 4, !tbaa !5
  %102 = add nsw i32 %101, 1
  store i32 %102, ptr @test_count, align 4, !tbaa !5
  %103 = tail call i32 (...) @s2n_enable_tls13_in_test() #14
  %104 = icmp eq i32 %103, -1
  br i1 %104, label %105, label %129

105:                                              ; preds = %100
  %106 = tail call ptr @__errno_location() #15
  %107 = load i32, ptr %106, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = tail call i32 @s2n_print_stacktrace(ptr noundef %108) #14
  %110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %111 = trunc nuw i8 %110 to i1
  br i1 %111, label %112, label %116

112:                                              ; preds = %105
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = tail call i32 @fileno(ptr noundef %113) #14
  %115 = tail call i32 @isatty(i32 noundef %114) #14
  %.not239 = icmp eq i32 %115, 0
  br i1 %.not239, label %116, label %117

116:                                              ; preds = %112, %105
  br label %117

117:                                              ; preds = %112, %116
  %.str.5.sink276 = phi ptr [ @.str.5, %116 ], [ @.str.2, %112 ]
  store i32 %107, ptr %106, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = tail call ptr @s2n_strerror(i32 noundef %121, ptr noundef nonnull @.str.4) #14
  %123 = load i32, ptr %120, align 4, !tbaa !5
  %124 = tail call ptr @s2n_strerror_debug(i32 noundef %123, ptr noundef nonnull @.str.4) #14
  %125 = load i32, ptr %106, align 4, !tbaa !5
  %126 = tail call ptr @strerror(i32 noundef %125) #14
  %127 = load i32, ptr %106, align 4, !tbaa !5
  %128 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef nonnull %.str.5.sink276, i32 noundef %119, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %122, ptr noundef %124, ptr noundef %126, i32 noundef %127) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

129:                                              ; preds = %100
  %130 = load i32, ptr @test_count, align 4, !tbaa !5
  %131 = add nsw i32 %130, 1
  store i32 %131, ptr @test_count, align 4, !tbaa !5
  %132 = tail call ptr @s2n_connection_new(i32 noundef 0) #14
  %133 = icmp eq ptr %132, null
  br i1 %133, label %134, label %158

134:                                              ; preds = %129
  %135 = tail call ptr @__errno_location() #15
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = tail call i32 @s2n_print_stacktrace(ptr noundef %137) #14
  %139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %140 = trunc nuw i8 %139 to i1
  br i1 %140, label %141, label %145

141:                                              ; preds = %134
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = tail call i32 @fileno(ptr noundef %142) #14
  %144 = tail call i32 @isatty(i32 noundef %143) #14
  %.not238 = icmp eq i32 %144, 0
  br i1 %.not238, label %145, label %146

145:                                              ; preds = %141, %134
  br label %146

146:                                              ; preds = %141, %145
  %.str.5.sink287 = phi ptr [ @.str.5, %145 ], [ @.str.2, %141 ]
  store i32 %136, ptr %135, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = tail call ptr @s2n_strerror(i32 noundef %150, ptr noundef nonnull @.str.4) #14
  %152 = load i32, ptr %149, align 4, !tbaa !5
  %153 = tail call ptr @s2n_strerror_debug(i32 noundef %152, ptr noundef nonnull @.str.4) #14
  %154 = load i32, ptr %135, align 4, !tbaa !5
  %155 = tail call ptr @strerror(i32 noundef %154) #14
  %156 = load i32, ptr %135, align 4, !tbaa !5
  %157 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef nonnull %.str.5.sink287, i32 noundef %148, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %151, ptr noundef %153, ptr noundef %155, i32 noundef %156) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

158:                                              ; preds = %129
  %159 = load i32, ptr @test_count, align 4, !tbaa !5
  %160 = add nsw i32 %159, 1
  store i32 %160, ptr @test_count, align 4, !tbaa !5
  %161 = tail call ptr @s2n_connection_new(i32 noundef 1) #14
  %162 = icmp eq ptr %161, null
  br i1 %162, label %163, label %187

163:                                              ; preds = %158
  %164 = tail call ptr @__errno_location() #15
  %165 = load i32, ptr %164, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = tail call i32 @s2n_print_stacktrace(ptr noundef %166) #14
  %168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %169 = trunc nuw i8 %168 to i1
  br i1 %169, label %170, label %174

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

174:                                              ; preds = %170, %163
  br label %175

175:                                              ; preds = %170, %174
  %.str.5.sink298 = phi ptr [ @.str.5, %174 ], [ @.str.2, %170 ]
  store i32 %165, ptr %164, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = load i32, ptr @test_count, align 4, !tbaa !5
  %178 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = tail call ptr @s2n_strerror(i32 noundef %179, ptr noundef nonnull @.str.4) #14
  %181 = load i32, ptr %178, align 4, !tbaa !5
  %182 = tail call ptr @s2n_strerror_debug(i32 noundef %181, ptr noundef nonnull @.str.4) #14
  %183 = load i32, ptr %164, align 4, !tbaa !5
  %184 = tail call ptr @strerror(i32 noundef %183) #14
  %185 = load i32, ptr %164, align 4, !tbaa !5
  %186 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %176, ptr noundef nonnull %.str.5.sink298, i32 noundef %177, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %180, ptr noundef %182, ptr noundef %184, i32 noundef %185) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

187:                                              ; preds = %158
  %188 = getelementptr inbounds i8, ptr %132, i64 220
  store i8 34, ptr %188, align 4, !tbaa !15
  %189 = getelementptr inbounds i8, ptr %161, i64 220
  store i8 34, ptr %189, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #14
  store i64 0, ptr %3, align 8
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr @test_count, align 4, !tbaa !5
  %192 = tail call i32 @s2n_test_init_encryption(ptr noundef nonnull %132)
  %193 = icmp eq i32 %192, -1
  br i1 %193, label %194, label %218

194:                                              ; preds = %187
  %195 = tail call ptr @__errno_location() #15
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %198 = tail call i32 @s2n_print_stacktrace(ptr noundef %197) #14
  %199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %200 = trunc nuw i8 %199 to i1
  br i1 %200, label %201, label %205

201:                                              ; preds = %194
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = tail call i32 @fileno(ptr noundef %202) #14
  %204 = tail call i32 @isatty(i32 noundef %203) #14
  %.not236 = icmp eq i32 %204, 0
  br i1 %.not236, label %205, label %206

205:                                              ; preds = %201, %194
  br label %206

206:                                              ; preds = %201, %205
  %.str.5.sink309 = phi ptr [ @.str.5, %205 ], [ @.str.2, %201 ]
  store i32 %196, ptr %195, align 4, !tbaa !5
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = tail call ptr @s2n_strerror(i32 noundef %210, ptr noundef nonnull @.str.4) #14
  %212 = load i32, ptr %209, align 4, !tbaa !5
  %213 = tail call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef nonnull @.str.4) #14
  %214 = load i32, ptr %195, align 4, !tbaa !5
  %215 = tail call ptr @strerror(i32 noundef %214) #14
  %216 = load i32, ptr %195, align 4, !tbaa !5
  %217 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %207, ptr noundef nonnull %.str.5.sink309, i32 noundef %208, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %211, ptr noundef %213, ptr noundef %215, i32 noundef %216) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

218:                                              ; preds = %187
  %219 = load i32, ptr @test_count, align 4, !tbaa !5
  %220 = add nsw i32 %219, 1
  store i32 %220, ptr @test_count, align 4, !tbaa !5
  %221 = tail call i32 @s2n_test_init_encryption(ptr noundef nonnull %161)
  %222 = icmp eq i32 %221, -1
  br i1 %222, label %223, label %247

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

230:                                              ; preds = %223
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = tail call i32 @fileno(ptr noundef %231) #14
  %233 = tail call i32 @isatty(i32 noundef %232) #14
  %.not235 = icmp eq i32 %233, 0
  br i1 %.not235, label %234, label %235

234:                                              ; preds = %230, %223
  br label %235

235:                                              ; preds = %230, %234
  %.str.5.sink320 = phi ptr [ @.str.5, %234 ], [ @.str.2, %230 ]
  store i32 %225, ptr %224, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = tail call ptr @s2n_strerror(i32 noundef %239, ptr noundef nonnull @.str.4) #14
  %241 = load i32, ptr %238, align 4, !tbaa !5
  %242 = tail call ptr @s2n_strerror_debug(i32 noundef %241, ptr noundef nonnull @.str.4) #14
  %243 = load i32, ptr %224, align 4, !tbaa !5
  %244 = tail call ptr @strerror(i32 noundef %243) #14
  %245 = load i32, ptr %224, align 4, !tbaa !5
  %246 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef nonnull %.str.5.sink320, i32 noundef %237, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %240, ptr noundef %242, ptr noundef %244, i32 noundef %245) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

247:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #14
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #14
  %248 = load i32, ptr @test_count, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr @test_count, align 4, !tbaa !5
  %250 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %4, i32 noundef 0) #14
  %251 = icmp eq i32 %250, -1
  br i1 %251, label %252, label %276

252:                                              ; preds = %247
  %253 = tail call ptr @__errno_location() #15
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = call i32 @s2n_print_stacktrace(ptr noundef %255) #14
  %257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %258 = trunc nuw i8 %257 to i1
  br i1 %258, label %259, label %263

259:                                              ; preds = %252
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = call i32 @fileno(ptr noundef %260) #14
  %262 = call i32 @isatty(i32 noundef %261) #14
  %.not234 = icmp eq i32 %262, 0
  br i1 %.not234, label %263, label %264

263:                                              ; preds = %259, %252
  br label %264

264:                                              ; preds = %259, %263
  %.str.5.sink331 = phi ptr [ @.str.5, %263 ], [ @.str.2, %259 ]
  store i32 %254, ptr %253, align 4, !tbaa !5
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = load i32, ptr @test_count, align 4, !tbaa !5
  %267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror(i32 noundef %268, ptr noundef nonnull @.str.4) #14
  %270 = load i32, ptr %267, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror_debug(i32 noundef %270, ptr noundef nonnull @.str.4) #14
  %272 = load i32, ptr %253, align 4, !tbaa !5
  %273 = call ptr @strerror(i32 noundef %272) #14
  %274 = load i32, ptr %253, align 4, !tbaa !5
  %275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %265, ptr noundef nonnull %.str.5.sink331, i32 noundef %266, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %269, ptr noundef %271, ptr noundef %273, i32 noundef %274) #16
  call void @exit(i32 noundef 1) #17
  unreachable

276:                                              ; preds = %247
  %277 = load i32, ptr @test_count, align 4, !tbaa !5
  %278 = add nsw i32 %277, 1
  store i32 %278, ptr @test_count, align 4, !tbaa !5
  %279 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %5, i32 noundef 0) #14
  %280 = icmp eq i32 %279, -1
  br i1 %280, label %281, label %305

281:                                              ; preds = %276
  %282 = tail call ptr @__errno_location() #15
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = call i32 @s2n_print_stacktrace(ptr noundef %284) #14
  %286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %287 = trunc nuw i8 %286 to i1
  br i1 %287, label %288, label %292

288:                                              ; preds = %281
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = call i32 @fileno(ptr noundef %289) #14
  %291 = call i32 @isatty(i32 noundef %290) #14
  %.not233 = icmp eq i32 %291, 0
  br i1 %.not233, label %292, label %293

292:                                              ; preds = %288, %281
  br label %293

293:                                              ; preds = %288, %292
  %.str.5.sink342 = phi ptr [ @.str.5, %292 ], [ @.str.2, %288 ]
  store i32 %283, ptr %282, align 4, !tbaa !5
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = load i32, ptr @test_count, align 4, !tbaa !5
  %296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call ptr @s2n_strerror(i32 noundef %297, ptr noundef nonnull @.str.4) #14
  %299 = load i32, ptr %296, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef nonnull @.str.4) #14
  %301 = load i32, ptr %282, align 4, !tbaa !5
  %302 = call ptr @strerror(i32 noundef %301) #14
  %303 = load i32, ptr %282, align 4, !tbaa !5
  %304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %294, ptr noundef nonnull %.str.5.sink342, i32 noundef %295, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %298, ptr noundef %300, ptr noundef %302, i32 noundef %303) #16
  call void @exit(i32 noundef 1) #17
  unreachable

305:                                              ; preds = %276
  %306 = load i32, ptr @test_count, align 4, !tbaa !5
  %307 = add nsw i32 %306, 1
  store i32 %307, ptr @test_count, align 4, !tbaa !5
  %308 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %132) #14
  %309 = icmp eq i32 %308, -1
  br i1 %309, label %310, label %334

310:                                              ; preds = %305
  %311 = tail call ptr @__errno_location() #15
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %314 = call i32 @s2n_print_stacktrace(ptr noundef %313) #14
  %315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %316 = trunc nuw i8 %315 to i1
  br i1 %316, label %317, label %321

317:                                              ; preds = %310
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = call i32 @fileno(ptr noundef %318) #14
  %320 = call i32 @isatty(i32 noundef %319) #14
  %.not232 = icmp eq i32 %320, 0
  br i1 %.not232, label %321, label %322

321:                                              ; preds = %317, %310
  br label %322

322:                                              ; preds = %317, %321
  %.str.5.sink353 = phi ptr [ @.str.5, %321 ], [ @.str.2, %317 ]
  store i32 %312, ptr %311, align 4, !tbaa !5
  %323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %324 = load i32, ptr @test_count, align 4, !tbaa !5
  %325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = call ptr @s2n_strerror(i32 noundef %326, ptr noundef nonnull @.str.4) #14
  %328 = load i32, ptr %325, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror_debug(i32 noundef %328, ptr noundef nonnull @.str.4) #14
  %330 = load i32, ptr %311, align 4, !tbaa !5
  %331 = call ptr @strerror(i32 noundef %330) #14
  %332 = load i32, ptr %311, align 4, !tbaa !5
  %333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %323, ptr noundef nonnull %.str.5.sink353, i32 noundef %324, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %327, ptr noundef %329, ptr noundef %331, i32 noundef %332) #16
  call void @exit(i32 noundef 1) #17
  unreachable

334:                                              ; preds = %305
  %335 = load i32, ptr @test_count, align 4, !tbaa !5
  %336 = add nsw i32 %335, 1
  store i32 %336, ptr @test_count, align 4, !tbaa !5
  %337 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %5, ptr noundef nonnull %4, ptr noundef nonnull %161) #14
  %338 = icmp eq i32 %337, -1
  br i1 %338, label %368, label %.preheader

.preheader:                                       ; preds = %334
  %339 = getelementptr inbounds i8, ptr %132, i64 232
  %340 = load i8, ptr @__const.main.max_record_limit, align 1, !tbaa !42
  %341 = load ptr, ptr %339, align 8, !tbaa !43
  %342 = getelementptr inbounds i8, ptr %341, i64 928
  store i8 %340, ptr %342, align 1, !tbaa !42
  %343 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.max_record_limit, i64 1), align 1, !tbaa !42
  %344 = load ptr, ptr %339, align 8, !tbaa !43
  %345 = getelementptr inbounds i8, ptr %344, i64 929
  store i8 %343, ptr %345, align 1, !tbaa !42
  %346 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.max_record_limit, i64 2), align 1, !tbaa !42
  %347 = load ptr, ptr %339, align 8, !tbaa !43
  %348 = getelementptr inbounds i8, ptr %347, i64 930
  store i8 %346, ptr %348, align 1, !tbaa !42
  %349 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.max_record_limit, i64 3), align 1, !tbaa !42
  %350 = load ptr, ptr %339, align 8, !tbaa !43
  %351 = getelementptr inbounds i8, ptr %350, i64 931
  store i8 %349, ptr %351, align 1, !tbaa !42
  %352 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.max_record_limit, i64 4), align 1, !tbaa !42
  %353 = load ptr, ptr %339, align 8, !tbaa !43
  %354 = getelementptr inbounds i8, ptr %353, i64 932
  store i8 %352, ptr %354, align 1, !tbaa !42
  %355 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.max_record_limit, i64 5), align 1, !tbaa !42
  %356 = load ptr, ptr %339, align 8, !tbaa !43
  %357 = getelementptr inbounds i8, ptr %356, i64 933
  store i8 %355, ptr %357, align 1, !tbaa !42
  %358 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.max_record_limit, i64 6), align 1, !tbaa !42
  %359 = load ptr, ptr %339, align 8, !tbaa !43
  %360 = getelementptr inbounds i8, ptr %359, i64 934
  store i8 %358, ptr %360, align 1, !tbaa !42
  %361 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.max_record_limit, i64 7), align 1, !tbaa !42
  %362 = load ptr, ptr %339, align 8, !tbaa !43
  %363 = getelementptr inbounds i8, ptr %362, i64 935
  store i8 %361, ptr %363, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #14
  call void @llvm.lifetime.start.p0(i64 13, ptr nonnull %7) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %7, ptr noundef nonnull align 1 dereferenceable(13) @__const.main.message, i64 13, i1 false)
  %364 = load i32, ptr @test_count, align 4, !tbaa !5
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr @test_count, align 4, !tbaa !5
  %366 = call i64 @s2n_send(ptr noundef nonnull %132, ptr noundef nonnull %7, i64 noundef 13, ptr noundef nonnull %6) #14
  %367 = icmp eq i64 %366, -1
  br i1 %367, label %392, label %416

368:                                              ; preds = %334
  %369 = tail call ptr @__errno_location() #15
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @s2n_print_stacktrace(ptr noundef %371) #14
  %373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %374 = trunc nuw i8 %373 to i1
  br i1 %374, label %375, label %379

375:                                              ; preds = %368
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = call i32 @fileno(ptr noundef %376) #14
  %378 = call i32 @isatty(i32 noundef %377) #14
  %.not231 = icmp eq i32 %378, 0
  br i1 %.not231, label %379, label %380

379:                                              ; preds = %375, %368
  br label %380

380:                                              ; preds = %375, %379
  %.str.5.sink364 = phi ptr [ @.str.5, %379 ], [ @.str.2, %375 ]
  store i32 %370, ptr %369, align 4, !tbaa !5
  %381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @s2n_strerror(i32 noundef %384, ptr noundef nonnull @.str.4) #14
  %386 = load i32, ptr %383, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror_debug(i32 noundef %386, ptr noundef nonnull @.str.4) #14
  %388 = load i32, ptr %369, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #14
  %390 = load i32, ptr %369, align 4, !tbaa !5
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %381, ptr noundef nonnull %.str.5.sink364, i32 noundef %382, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %385, ptr noundef %387, ptr noundef %389, i32 noundef %390) #16
  call void @exit(i32 noundef 1) #17
  unreachable

392:                                              ; preds = %.preheader
  %393 = tail call ptr @__errno_location() #15
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @s2n_print_stacktrace(ptr noundef %395) #14
  %397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %398 = trunc nuw i8 %397 to i1
  br i1 %398, label %399, label %403

399:                                              ; preds = %392
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = call i32 @fileno(ptr noundef %400) #14
  %402 = call i32 @isatty(i32 noundef %401) #14
  %.not230 = icmp eq i32 %402, 0
  br i1 %.not230, label %403, label %404

403:                                              ; preds = %399, %392
  br label %404

404:                                              ; preds = %399, %403
  %.str.5.sink375 = phi ptr [ @.str.5, %403 ], [ @.str.2, %399 ]
  store i32 %394, ptr %393, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %408, ptr noundef nonnull @.str.4) #14
  %410 = load i32, ptr %407, align 4, !tbaa !5
  %411 = call ptr @s2n_strerror_debug(i32 noundef %410, ptr noundef nonnull @.str.4) #14
  %412 = load i32, ptr %393, align 4, !tbaa !5
  %413 = call ptr @strerror(i32 noundef %412) #14
  %414 = load i32, ptr %393, align 4, !tbaa !5
  %415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %405, ptr noundef nonnull %.str.5.sink375, i32 noundef %406, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %409, ptr noundef %411, ptr noundef %413, i32 noundef %414) #16
  call void @exit(i32 noundef 1) #17
  unreachable

416:                                              ; preds = %.preheader
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = add nsw i32 %417, 1
  store i32 %418, ptr @test_count, align 4, !tbaa !5
  %419 = getelementptr inbounds i8, ptr %132, i64 480
  %420 = getelementptr inbounds i8, ptr %161, i64 480
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %419, ptr noundef nonnull dereferenceable(48) %420, i64 48)
  %421 = icmp eq i32 %bcmp, 0
  br i1 %421, label %422, label %446

422:                                              ; preds = %416
  %423 = tail call ptr @__errno_location() #15
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = call i32 @s2n_print_stacktrace(ptr noundef %425) #14
  %427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %428 = trunc nuw i8 %427 to i1
  br i1 %428, label %429, label %433

429:                                              ; preds = %422
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = call i32 @fileno(ptr noundef %430) #14
  %432 = call i32 @isatty(i32 noundef %431) #14
  %.not229 = icmp eq i32 %432, 0
  br i1 %.not229, label %433, label %434

433:                                              ; preds = %429, %422
  br label %434

434:                                              ; preds = %429, %433
  %.str.5.sink386 = phi ptr [ @.str.5, %433 ], [ @.str.2, %429 ]
  store i32 %424, ptr %423, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = call ptr @s2n_strerror(i32 noundef %438, ptr noundef nonnull @.str.4) #14
  %440 = load i32, ptr %437, align 4, !tbaa !5
  %441 = call ptr @s2n_strerror_debug(i32 noundef %440, ptr noundef nonnull @.str.4) #14
  %442 = load i32, ptr %423, align 4, !tbaa !5
  %443 = call ptr @strerror(i32 noundef %442) #14
  %444 = load i32, ptr %423, align 4, !tbaa !5
  %445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %435, ptr noundef nonnull %.str.5.sink386, i32 noundef %436, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %439, ptr noundef %441, ptr noundef %443, i32 noundef %444) #16
  call void @exit(i32 noundef 1) #17
  unreachable

446:                                              ; preds = %416
  %447 = add nsw i32 %417, 2
  store i32 %447, ptr @test_count, align 4, !tbaa !5
  %448 = load ptr, ptr %339, align 8, !tbaa !43
  %449 = getelementptr inbounds i8, ptr %448, i64 928
  %bcmp180 = call i32 @bcmp(ptr noundef nonnull dereferenceable(8) %449, ptr noundef nonnull dereferenceable(8) %3, i64 8)
  %450 = icmp eq i32 %bcmp180, 0
  br i1 %450, label %475, label %451

451:                                              ; preds = %446
  %452 = tail call ptr @__errno_location() #15
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = call i32 @s2n_print_stacktrace(ptr noundef %454) #14
  %456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %457 = trunc nuw i8 %456 to i1
  br i1 %457, label %458, label %462

458:                                              ; preds = %451
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @fileno(ptr noundef %459) #14
  %461 = call i32 @isatty(i32 noundef %460) #14
  %.not = icmp eq i32 %461, 0
  br i1 %.not, label %462, label %463

462:                                              ; preds = %458, %451
  br label %463

463:                                              ; preds = %458, %462
  %.str.5.sink397 = phi ptr [ @.str.5, %462 ], [ @.str.2, %458 ]
  store i32 %453, ptr %452, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = call ptr @s2n_strerror(i32 noundef %467, ptr noundef nonnull @.str.4) #14
  %469 = load i32, ptr %466, align 4, !tbaa !5
  %470 = call ptr @s2n_strerror_debug(i32 noundef %469, ptr noundef nonnull @.str.4) #14
  %471 = load i32, ptr %452, align 4, !tbaa !5
  %472 = call ptr @strerror(i32 noundef %471) #14
  %473 = load i32, ptr %452, align 4, !tbaa !5
  %474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %464, ptr noundef nonnull %.str.5.sink397, i32 noundef %465, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %468, ptr noundef %470, ptr noundef %472, i32 noundef %473) #16
  call void @exit(i32 noundef 1) #17
  unreachable

475:                                              ; preds = %446
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %8) #14
  %476 = add nsw i32 %417, 3
  store i32 %476, ptr @test_count, align 4, !tbaa !5
  %477 = call i64 @s2n_recv(ptr noundef nonnull %161, ptr noundef nonnull %8, i64 noundef 13, ptr noundef nonnull %6) #14
  %478 = icmp eq i64 %477, -1
  br i1 %478, label %479, label %503

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

486:                                              ; preds = %479
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = call i32 @fileno(ptr noundef %487) #14
  %489 = call i32 @isatty(i32 noundef %488) #14
  %.not228 = icmp eq i32 %489, 0
  br i1 %.not228, label %490, label %491

490:                                              ; preds = %486, %479
  br label %491

491:                                              ; preds = %486, %490
  %.str.5.sink408 = phi ptr [ @.str.5, %490 ], [ @.str.2, %486 ]
  store i32 %481, ptr %480, align 4, !tbaa !5
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = load i32, ptr @test_count, align 4, !tbaa !5
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror(i32 noundef %495, ptr noundef nonnull @.str.4) #14
  %497 = load i32, ptr %494, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror_debug(i32 noundef %497, ptr noundef nonnull @.str.4) #14
  %499 = load i32, ptr %480, align 4, !tbaa !5
  %500 = call ptr @strerror(i32 noundef %499) #14
  %501 = load i32, ptr %480, align 4, !tbaa !5
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %492, ptr noundef nonnull %.str.5.sink408, i32 noundef %493, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %496, ptr noundef %498, ptr noundef %500, i32 noundef %501) #16
  call void @exit(i32 noundef 1) #17
  unreachable

503:                                              ; preds = %475
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr @test_count, align 4, !tbaa !5
  %bcmp181 = call i32 @bcmp(ptr noundef nonnull dereferenceable(13) %8, ptr noundef nonnull dereferenceable(13) %7, i64 13)
  %506 = icmp eq i32 %bcmp181, 0
  br i1 %506, label %531, label %507

507:                                              ; preds = %503
  %508 = tail call ptr @__errno_location() #15
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = call i32 @s2n_print_stacktrace(ptr noundef %510) #14
  %512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %513 = trunc nuw i8 %512 to i1
  br i1 %513, label %514, label %518

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

518:                                              ; preds = %514, %507
  br label %519

519:                                              ; preds = %514, %518
  %.str.5.sink419 = phi ptr [ @.str.5, %518 ], [ @.str.2, %514 ]
  store i32 %509, ptr %508, align 4, !tbaa !5
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror(i32 noundef %523, ptr noundef nonnull @.str.4) #14
  %525 = load i32, ptr %522, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef nonnull @.str.4) #14
  %527 = load i32, ptr %508, align 4, !tbaa !5
  %528 = call ptr @strerror(i32 noundef %527) #14
  %529 = load i32, ptr %508, align 4, !tbaa !5
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %520, ptr noundef nonnull %.str.5.sink419, i32 noundef %521, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %524, ptr noundef %526, ptr noundef %528, i32 noundef %529) #16
  call void @exit(i32 noundef 1) #17
  unreachable

531:                                              ; preds = %503
  %532 = add nsw i32 %504, 2
  store i32 %532, ptr @test_count, align 4, !tbaa !5
  %bcmp183 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %420, ptr noundef nonnull dereferenceable(48) %419, i64 48)
  %533 = icmp eq i32 %bcmp183, 0
  br i1 %533, label %558, label %534

534:                                              ; preds = %531
  %535 = tail call ptr @__errno_location() #15
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = call i32 @s2n_print_stacktrace(ptr noundef %537) #14
  %539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %540 = trunc nuw i8 %539 to i1
  br i1 %540, label %541, label %545

541:                                              ; preds = %534
  %542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %543 = call i32 @fileno(ptr noundef %542) #14
  %544 = call i32 @isatty(i32 noundef %543) #14
  %.not184 = icmp eq i32 %544, 0
  br i1 %.not184, label %545, label %546

545:                                              ; preds = %541, %534
  br label %546

546:                                              ; preds = %541, %545
  %.str.5.sink430 = phi ptr [ @.str.5, %545 ], [ @.str.2, %541 ]
  store i32 %536, ptr %535, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = load i32, ptr @test_count, align 4, !tbaa !5
  %549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %550 = load i32, ptr %549, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror(i32 noundef %550, ptr noundef nonnull @.str.4) #14
  %552 = load i32, ptr %549, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror_debug(i32 noundef %552, ptr noundef nonnull @.str.4) #14
  %554 = load i32, ptr %535, align 4, !tbaa !5
  %555 = call ptr @strerror(i32 noundef %554) #14
  %556 = load i32, ptr %535, align 4, !tbaa !5
  %557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %547, ptr noundef nonnull %.str.5.sink430, i32 noundef %548, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %551, ptr noundef %553, ptr noundef %555, i32 noundef %556) #16
  call void @exit(i32 noundef 1) #17
  unreachable

558:                                              ; preds = %531
  %559 = add nsw i32 %504, 3
  store i32 %559, ptr @test_count, align 4, !tbaa !5
  %560 = getelementptr inbounds i8, ptr %161, i64 232
  %561 = load ptr, ptr %560, align 8, !tbaa !43
  %562 = getelementptr inbounds i8, ptr %561, i64 928
  %bcmp185 = call i32 @bcmp(ptr noundef nonnull dereferenceable(8) %562, ptr noundef nonnull dereferenceable(8) %3, i64 8)
  %563 = icmp eq i32 %bcmp185, 0
  br i1 %563, label %588, label %564

564:                                              ; preds = %558
  %565 = tail call ptr @__errno_location() #15
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @s2n_print_stacktrace(ptr noundef %567) #14
  %569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %570 = trunc nuw i8 %569 to i1
  br i1 %570, label %571, label %575

571:                                              ; preds = %564
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @fileno(ptr noundef %572) #14
  %574 = call i32 @isatty(i32 noundef %573) #14
  %.not186 = icmp eq i32 %574, 0
  br i1 %.not186, label %575, label %576

575:                                              ; preds = %571, %564
  br label %576

576:                                              ; preds = %571, %575
  %.str.5.sink441 = phi ptr [ @.str.5, %575 ], [ @.str.2, %571 ]
  store i32 %566, ptr %565, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror(i32 noundef %580, ptr noundef nonnull @.str.4) #14
  %582 = load i32, ptr %579, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror_debug(i32 noundef %582, ptr noundef nonnull @.str.4) #14
  %584 = load i32, ptr %565, align 4, !tbaa !5
  %585 = call ptr @strerror(i32 noundef %584) #14
  %586 = load i32, ptr %565, align 4, !tbaa !5
  %587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef nonnull %.str.5.sink441, i32 noundef %578, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %581, ptr noundef %583, ptr noundef %585, i32 noundef %586) #16
  call void @exit(i32 noundef 1) #17
  unreachable

588:                                              ; preds = %558
  %589 = add nsw i32 %504, 4
  store i32 %589, ptr @test_count, align 4, !tbaa !5
  %590 = call i32 @s2n_connection_free(ptr noundef nonnull %132) #14
  %591 = icmp eq i32 %590, -1
  br i1 %591, label %592, label %616

592:                                              ; preds = %588
  %593 = tail call ptr @__errno_location() #15
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = call i32 @s2n_print_stacktrace(ptr noundef %595) #14
  %597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %598 = trunc nuw i8 %597 to i1
  br i1 %598, label %599, label %603

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

603:                                              ; preds = %599, %592
  br label %604

604:                                              ; preds = %599, %603
  %.str.5.sink452 = phi ptr [ @.str.5, %603 ], [ @.str.2, %599 ]
  store i32 %594, ptr %593, align 4, !tbaa !5
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %608, ptr noundef nonnull @.str.4) #14
  %610 = load i32, ptr %607, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror_debug(i32 noundef %610, ptr noundef nonnull @.str.4) #14
  %612 = load i32, ptr %593, align 4, !tbaa !5
  %613 = call ptr @strerror(i32 noundef %612) #14
  %614 = load i32, ptr %593, align 4, !tbaa !5
  %615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %605, ptr noundef nonnull %.str.5.sink452, i32 noundef %606, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %609, ptr noundef %611, ptr noundef %613, i32 noundef %614) #16
  call void @exit(i32 noundef 1) #17
  unreachable

616:                                              ; preds = %588
  %617 = load i32, ptr @test_count, align 4, !tbaa !5
  %618 = add nsw i32 %617, 1
  store i32 %618, ptr @test_count, align 4, !tbaa !5
  %619 = call i32 @s2n_connection_free(ptr noundef nonnull %161) #14
  %620 = icmp eq i32 %619, -1
  br i1 %620, label %621, label %645

621:                                              ; preds = %616
  %622 = tail call ptr @__errno_location() #15
  %623 = load i32, ptr %622, align 4, !tbaa !5
  %624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %625 = call i32 @s2n_print_stacktrace(ptr noundef %624) #14
  %626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %627 = trunc nuw i8 %626 to i1
  br i1 %627, label %628, label %632

628:                                              ; preds = %621
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = call i32 @fileno(ptr noundef %629) #14
  %631 = call i32 @isatty(i32 noundef %630) #14
  %.not226 = icmp eq i32 %631, 0
  br i1 %.not226, label %632, label %633

632:                                              ; preds = %628, %621
  br label %633

633:                                              ; preds = %628, %632
  %.str.5.sink463 = phi ptr [ @.str.5, %632 ], [ @.str.2, %628 ]
  store i32 %623, ptr %622, align 4, !tbaa !5
  %634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %635 = load i32, ptr @test_count, align 4, !tbaa !5
  %636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = call ptr @s2n_strerror(i32 noundef %637, ptr noundef nonnull @.str.4) #14
  %639 = load i32, ptr %636, align 4, !tbaa !5
  %640 = call ptr @s2n_strerror_debug(i32 noundef %639, ptr noundef nonnull @.str.4) #14
  %641 = load i32, ptr %622, align 4, !tbaa !5
  %642 = call ptr @strerror(i32 noundef %641) #14
  %643 = load i32, ptr %622, align 4, !tbaa !5
  %644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %634, ptr noundef nonnull %.str.5.sink463, i32 noundef %635, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %638, ptr noundef %640, ptr noundef %642, i32 noundef %643) #16
  call void @exit(i32 noundef 1) #17
  unreachable

645:                                              ; preds = %616
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 13, ptr nonnull %7) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #14
  %646 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #14
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #14
  %647 = call i32 @s2n_stuffer_free(ptr noundef nonnull %4) #14
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #14
  %648 = load i32, ptr @test_count, align 4, !tbaa !5
  %649 = add nsw i32 %648, 1
  store i32 %649, ptr @test_count, align 4, !tbaa !5
  %650 = call i32 (...) @s2n_disable_tls13_in_test() #14
  %651 = icmp eq i32 %650, -1
  br i1 %651, label %652, label %676

652:                                              ; preds = %645
  %653 = tail call ptr @__errno_location() #15
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = call i32 @s2n_print_stacktrace(ptr noundef %655) #14
  %657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %658 = trunc nuw i8 %657 to i1
  br i1 %658, label %659, label %663

659:                                              ; preds = %652
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = call i32 @fileno(ptr noundef %660) #14
  %662 = call i32 @isatty(i32 noundef %661) #14
  %.not225 = icmp eq i32 %662, 0
  br i1 %.not225, label %663, label %664

663:                                              ; preds = %659, %652
  br label %664

664:                                              ; preds = %659, %663
  %.str.5.sink474 = phi ptr [ @.str.5, %663 ], [ @.str.2, %659 ]
  store i32 %654, ptr %653, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = load i32, ptr @test_count, align 4, !tbaa !5
  %667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = call ptr @s2n_strerror(i32 noundef %668, ptr noundef nonnull @.str.4) #14
  %670 = load i32, ptr %667, align 4, !tbaa !5
  %671 = call ptr @s2n_strerror_debug(i32 noundef %670, ptr noundef nonnull @.str.4) #14
  %672 = load i32, ptr %653, align 4, !tbaa !5
  %673 = call ptr @strerror(i32 noundef %672) #14
  %674 = load i32, ptr %653, align 4, !tbaa !5
  %675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %665, ptr noundef nonnull %.str.5.sink474, i32 noundef %666, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %669, ptr noundef %671, ptr noundef %673, i32 noundef %674) #16
  call void @exit(i32 noundef 1) #17
  unreachable

676:                                              ; preds = %645
  %677 = load i32, ptr @test_count, align 4, !tbaa !5
  %678 = add nsw i32 %677, 1
  store i32 %678, ptr @test_count, align 4, !tbaa !5
  %679 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #18
  %680 = icmp eq ptr %679, null
  br i1 %680, label %681, label %705

681:                                              ; preds = %676
  %682 = tail call ptr @__errno_location() #15
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = call i32 @s2n_print_stacktrace(ptr noundef %684) #14
  %686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %687 = trunc nuw i8 %686 to i1
  br i1 %687, label %688, label %692

688:                                              ; preds = %681
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = call i32 @fileno(ptr noundef %689) #14
  %691 = call i32 @isatty(i32 noundef %690) #14
  %.not224 = icmp eq i32 %691, 0
  br i1 %.not224, label %692, label %693

692:                                              ; preds = %688, %681
  br label %693

693:                                              ; preds = %688, %692
  %.str.5.sink485 = phi ptr [ @.str.5, %692 ], [ @.str.2, %688 ]
  store i32 %683, ptr %682, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror(i32 noundef %697, ptr noundef nonnull @.str.4) #14
  %699 = load i32, ptr %696, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror_debug(i32 noundef %699, ptr noundef nonnull @.str.4) #14
  %701 = load i32, ptr %682, align 4, !tbaa !5
  %702 = call ptr @strerror(i32 noundef %701) #14
  %703 = load i32, ptr %682, align 4, !tbaa !5
  %704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef nonnull %.str.5.sink485, i32 noundef %695, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %698, ptr noundef %700, ptr noundef %702, i32 noundef %703) #16
  call void @exit(i32 noundef 1) #17
  unreachable

705:                                              ; preds = %676
  %706 = add nsw i32 %677, 2
  store i32 %706, ptr @test_count, align 4, !tbaa !5
  %707 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #18
  %708 = icmp eq ptr %707, null
  br i1 %708, label %709, label %733

709:                                              ; preds = %705
  %710 = tail call ptr @__errno_location() #15
  %711 = load i32, ptr %710, align 4, !tbaa !5
  %712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %713 = call i32 @s2n_print_stacktrace(ptr noundef %712) #14
  %714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %715 = trunc nuw i8 %714 to i1
  br i1 %715, label %716, label %720

716:                                              ; preds = %709
  %717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %718 = call i32 @fileno(ptr noundef %717) #14
  %719 = call i32 @isatty(i32 noundef %718) #14
  %.not223 = icmp eq i32 %719, 0
  br i1 %.not223, label %720, label %721

720:                                              ; preds = %716, %709
  br label %721

721:                                              ; preds = %716, %720
  %.str.5.sink496 = phi ptr [ @.str.5, %720 ], [ @.str.2, %716 ]
  store i32 %711, ptr %710, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = load i32, ptr @test_count, align 4, !tbaa !5
  %724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror(i32 noundef %725, ptr noundef nonnull @.str.4) #14
  %727 = load i32, ptr %724, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror_debug(i32 noundef %727, ptr noundef nonnull @.str.4) #14
  %729 = load i32, ptr %710, align 4, !tbaa !5
  %730 = call ptr @strerror(i32 noundef %729) #14
  %731 = load i32, ptr %710, align 4, !tbaa !5
  %732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %722, ptr noundef nonnull %.str.5.sink496, i32 noundef %723, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %726, ptr noundef %728, ptr noundef %730, i32 noundef %731) #16
  call void @exit(i32 noundef 1) #17
  unreachable

733:                                              ; preds = %705
  %734 = add nsw i32 %677, 3
  store i32 %734, ptr @test_count, align 4, !tbaa !5
  %735 = call i32 @setenv(ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.30, i32 noundef 0) #14
  %736 = icmp eq i32 %735, -1
  br i1 %736, label %737, label %761

737:                                              ; preds = %733
  %738 = tail call ptr @__errno_location() #15
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = call i32 @s2n_print_stacktrace(ptr noundef %740) #14
  %742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %743 = trunc nuw i8 %742 to i1
  br i1 %743, label %744, label %748

744:                                              ; preds = %737
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @fileno(ptr noundef %745) #14
  %747 = call i32 @isatty(i32 noundef %746) #14
  %.not222 = icmp eq i32 %747, 0
  br i1 %.not222, label %748, label %749

748:                                              ; preds = %744, %737
  br label %749

749:                                              ; preds = %744, %748
  %.str.5.sink507 = phi ptr [ @.str.5, %748 ], [ @.str.2, %744 ]
  store i32 %739, ptr %738, align 4, !tbaa !5
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror(i32 noundef %753, ptr noundef nonnull @.str.4) #14
  %755 = load i32, ptr %752, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror_debug(i32 noundef %755, ptr noundef nonnull @.str.4) #14
  %757 = load i32, ptr %738, align 4, !tbaa !5
  %758 = call ptr @strerror(i32 noundef %757) #14
  %759 = load i32, ptr %738, align 4, !tbaa !5
  %760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %750, ptr noundef nonnull %.str.5.sink507, i32 noundef %751, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %754, ptr noundef %756, ptr noundef %758, i32 noundef %759) #16
  call void @exit(i32 noundef 1) #17
  unreachable

761:                                              ; preds = %733
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = add nsw i32 %762, 1
  store i32 %763, ptr @test_count, align 4, !tbaa !5
  %764 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %9) #14
  %765 = icmp eq i32 %764, -1
  br i1 %765, label %766, label %790

766:                                              ; preds = %761
  %767 = tail call ptr @__errno_location() #15
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @s2n_print_stacktrace(ptr noundef %769) #14
  %771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %772 = trunc nuw i8 %771 to i1
  br i1 %772, label %773, label %777

773:                                              ; preds = %766
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @fileno(ptr noundef %774) #14
  %776 = call i32 @isatty(i32 noundef %775) #14
  %.not221 = icmp eq i32 %776, 0
  br i1 %.not221, label %777, label %778

777:                                              ; preds = %773, %766
  br label %778

778:                                              ; preds = %773, %777
  %.str.5.sink518 = phi ptr [ @.str.5, %777 ], [ @.str.2, %773 ]
  store i32 %768, ptr %767, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = load i32, ptr @test_count, align 4, !tbaa !5
  %781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %782 = load i32, ptr %781, align 4, !tbaa !5
  %783 = call ptr @s2n_strerror(i32 noundef %782, ptr noundef nonnull @.str.4) #14
  %784 = load i32, ptr %781, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror_debug(i32 noundef %784, ptr noundef nonnull @.str.4) #14
  %786 = load i32, ptr %767, align 4, !tbaa !5
  %787 = call ptr @strerror(i32 noundef %786) #14
  %788 = load i32, ptr %767, align 4, !tbaa !5
  %789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %779, ptr noundef nonnull %.str.5.sink518, i32 noundef %780, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %783, ptr noundef %785, ptr noundef %787, i32 noundef %788) #16
  call void @exit(i32 noundef 1) #17
  unreachable

790:                                              ; preds = %761
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #14
  store i32 0, ptr %10, align 4, !tbaa !5
  %791 = load i32, ptr @test_count, align 4, !tbaa !5
  %792 = add nsw i32 %791, 1
  store i32 %792, ptr @test_count, align 4, !tbaa !5
  %793 = call ptr @s2n_config_new() #14
  %794 = icmp eq ptr %793, null
  br i1 %794, label %795, label %819

795:                                              ; preds = %790
  %796 = tail call ptr @__errno_location() #15
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = call i32 @s2n_print_stacktrace(ptr noundef %798) #14
  %800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %801 = trunc nuw i8 %800 to i1
  br i1 %801, label %802, label %806

802:                                              ; preds = %795
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = call i32 @fileno(ptr noundef %803) #14
  %805 = call i32 @isatty(i32 noundef %804) #14
  %.not220 = icmp eq i32 %805, 0
  br i1 %.not220, label %806, label %807

806:                                              ; preds = %802, %795
  br label %807

807:                                              ; preds = %802, %806
  %.str.5.sink529 = phi ptr [ @.str.5, %806 ], [ @.str.2, %802 ]
  store i32 %797, ptr %796, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %811 = load i32, ptr %810, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror(i32 noundef %811, ptr noundef nonnull @.str.4) #14
  %813 = load i32, ptr %810, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror_debug(i32 noundef %813, ptr noundef nonnull @.str.4) #14
  %815 = load i32, ptr %796, align 4, !tbaa !5
  %816 = call ptr @strerror(i32 noundef %815) #14
  %817 = load i32, ptr %796, align 4, !tbaa !5
  %818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %808, ptr noundef nonnull %.str.5.sink529, i32 noundef %809, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %812, ptr noundef %814, ptr noundef %816, i32 noundef %817) #16
  call void @exit(i32 noundef 1) #17
  unreachable

819:                                              ; preds = %790
  %820 = load i32, ptr @test_count, align 4, !tbaa !5
  %821 = add nsw i32 %820, 1
  store i32 %821, ptr @test_count, align 4, !tbaa !5
  %822 = call i32 @s2n_config_set_check_stapled_ocsp_response(ptr noundef nonnull %793, i8 noundef zeroext 0) #14
  %823 = icmp eq i32 %822, -1
  br i1 %823, label %824, label %848

824:                                              ; preds = %819
  %825 = tail call ptr @__errno_location() #15
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = call i32 @s2n_print_stacktrace(ptr noundef %827) #14
  %829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %830 = trunc nuw i8 %829 to i1
  br i1 %830, label %831, label %835

831:                                              ; preds = %824
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @fileno(ptr noundef %832) #14
  %834 = call i32 @isatty(i32 noundef %833) #14
  %.not219 = icmp eq i32 %834, 0
  br i1 %.not219, label %835, label %836

835:                                              ; preds = %831, %824
  br label %836

836:                                              ; preds = %831, %835
  %.str.5.sink540 = phi ptr [ @.str.5, %835 ], [ @.str.2, %831 ]
  store i32 %826, ptr %825, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror(i32 noundef %840, ptr noundef nonnull @.str.4) #14
  %842 = load i32, ptr %839, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror_debug(i32 noundef %842, ptr noundef nonnull @.str.4) #14
  %844 = load i32, ptr %825, align 4, !tbaa !5
  %845 = call ptr @strerror(i32 noundef %844) #14
  %846 = load i32, ptr %825, align 4, !tbaa !5
  %847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %837, ptr noundef nonnull %.str.5.sink540, i32 noundef %838, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %841, ptr noundef %843, ptr noundef %845, i32 noundef %846) #16
  call void @exit(i32 noundef 1) #17
  unreachable

848:                                              ; preds = %819
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = add nsw i32 %849, 1
  store i32 %850, ptr @test_count, align 4, !tbaa !5
  %851 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %793) #14
  %852 = icmp eq i32 %851, -1
  br i1 %852, label %853, label %877

853:                                              ; preds = %848
  %854 = tail call ptr @__errno_location() #15
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %857 = call i32 @s2n_print_stacktrace(ptr noundef %856) #14
  %858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %859 = trunc nuw i8 %858 to i1
  br i1 %859, label %860, label %864

860:                                              ; preds = %853
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = call i32 @fileno(ptr noundef %861) #14
  %863 = call i32 @isatty(i32 noundef %862) #14
  %.not218 = icmp eq i32 %863, 0
  br i1 %.not218, label %864, label %865

864:                                              ; preds = %860, %853
  br label %865

865:                                              ; preds = %860, %864
  %.str.5.sink551 = phi ptr [ @.str.5, %864 ], [ @.str.2, %860 ]
  store i32 %855, ptr %854, align 4, !tbaa !5
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror(i32 noundef %869, ptr noundef nonnull @.str.4) #14
  %871 = load i32, ptr %868, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror_debug(i32 noundef %871, ptr noundef nonnull @.str.4) #14
  %873 = load i32, ptr %854, align 4, !tbaa !5
  %874 = call ptr @strerror(i32 noundef %873) #14
  %875 = load i32, ptr %854, align 4, !tbaa !5
  %876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %866, ptr noundef nonnull %.str.5.sink551, i32 noundef %867, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %870, ptr noundef %872, ptr noundef %874, i32 noundef %875) #16
  call void @exit(i32 noundef 1) #17
  unreachable

877:                                              ; preds = %848
  %878 = load i32, ptr @test_count, align 4, !tbaa !5
  %879 = add nsw i32 %878, 1
  store i32 %879, ptr @test_count, align 4, !tbaa !5
  %880 = call ptr @s2n_connection_new(i32 noundef 1) #14
  %881 = icmp eq ptr %880, null
  br i1 %881, label %882, label %906

882:                                              ; preds = %877
  %883 = tail call ptr @__errno_location() #15
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %886 = call i32 @s2n_print_stacktrace(ptr noundef %885) #14
  %887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %888 = trunc nuw i8 %887 to i1
  br i1 %888, label %889, label %893

889:                                              ; preds = %882
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = call i32 @fileno(ptr noundef %890) #14
  %892 = call i32 @isatty(i32 noundef %891) #14
  %.not217 = icmp eq i32 %892, 0
  br i1 %.not217, label %893, label %894

893:                                              ; preds = %889, %882
  br label %894

894:                                              ; preds = %889, %893
  %.str.5.sink562 = phi ptr [ @.str.5, %893 ], [ @.str.2, %889 ]
  store i32 %884, ptr %883, 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 nonnull @.str.4) #14
  %900 = load i32, ptr %897, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror_debug(i32 noundef %900, ptr noundef nonnull @.str.4) #14
  %902 = load i32, ptr %883, align 4, !tbaa !5
  %903 = call ptr @strerror(i32 noundef %902) #14
  %904 = load i32, ptr %883, align 4, !tbaa !5
  %905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %895, ptr noundef nonnull %.str.5.sink562, i32 noundef %896, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %899, ptr noundef %901, ptr noundef %903, i32 noundef %904) #16
  call void @exit(i32 noundef 1) #17
  unreachable

906:                                              ; preds = %877
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = add nsw i32 %907, 1
  store i32 %908, ptr @test_count, align 4, !tbaa !5
  %909 = call i32 @s2n_connection_set_config(ptr noundef nonnull %880, ptr noundef nonnull %793) #14
  %910 = icmp eq i32 %909, -1
  br i1 %910, label %911, label %935

911:                                              ; preds = %906
  %912 = tail call ptr @__errno_location() #15
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = call i32 @s2n_print_stacktrace(ptr noundef %914) #14
  %916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %917 = trunc nuw i8 %916 to i1
  br i1 %917, label %918, label %922

918:                                              ; preds = %911
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = call i32 @fileno(ptr noundef %919) #14
  %921 = call i32 @isatty(i32 noundef %920) #14
  %.not216 = icmp eq i32 %921, 0
  br i1 %.not216, label %922, label %923

922:                                              ; preds = %918, %911
  br label %923

923:                                              ; preds = %918, %922
  %.str.5.sink573 = phi ptr [ @.str.5, %922 ], [ @.str.2, %918 ]
  store i32 %913, ptr %912, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror(i32 noundef %927, ptr noundef nonnull @.str.4) #14
  %929 = load i32, ptr %926, align 4, !tbaa !5
  %930 = call ptr @s2n_strerror_debug(i32 noundef %929, ptr noundef nonnull @.str.4) #14
  %931 = load i32, ptr %912, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #14
  %933 = load i32, ptr %912, align 4, !tbaa !5
  %934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %924, ptr noundef nonnull %.str.5.sink573, i32 noundef %925, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %928, ptr noundef %930, ptr noundef %932, i32 noundef %933) #16
  call void @exit(i32 noundef 1) #17
  unreachable

935:                                              ; preds = %906
  %936 = getelementptr inbounds i8, ptr %880, i64 220
  store i8 33, ptr %936, align 4, !tbaa !15
  %937 = getelementptr inbounds i8, ptr %880, i64 219
  store i8 33, ptr %937, align 1, !tbaa !44
  %938 = getelementptr inbounds i8, ptr %880, i64 218
  store i8 33, ptr %938, align 2, !tbaa !45
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = add nsw i32 %939, 1
  store i32 %940, ptr @test_count, align 4, !tbaa !5
  %941 = call ptr @s2n_connection_new(i32 noundef 0) #14
  %942 = icmp eq ptr %941, null
  br i1 %942, label %943, label %967

943:                                              ; preds = %935
  %944 = tail call ptr @__errno_location() #15
  %945 = load i32, ptr %944, align 4, !tbaa !5
  %946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %947 = call i32 @s2n_print_stacktrace(ptr noundef %946) #14
  %948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %949 = trunc nuw i8 %948 to i1
  br i1 %949, label %950, label %954

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

954:                                              ; preds = %950, %943
  br label %955

955:                                              ; preds = %950, %954
  %.str.5.sink584 = phi ptr [ @.str.5, %954 ], [ @.str.2, %950 ]
  store i32 %945, ptr %944, align 4, !tbaa !5
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = load i32, ptr @test_count, align 4, !tbaa !5
  %958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %959 = load i32, ptr %958, align 4, !tbaa !5
  %960 = call ptr @s2n_strerror(i32 noundef %959, ptr noundef nonnull @.str.4) #14
  %961 = load i32, ptr %958, align 4, !tbaa !5
  %962 = call ptr @s2n_strerror_debug(i32 noundef %961, ptr noundef nonnull @.str.4) #14
  %963 = load i32, ptr %944, align 4, !tbaa !5
  %964 = call ptr @strerror(i32 noundef %963) #14
  %965 = load i32, ptr %944, align 4, !tbaa !5
  %966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %956, ptr noundef nonnull %.str.5.sink584, i32 noundef %957, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %960, ptr noundef %962, ptr noundef %964, i32 noundef %965) #16
  call void @exit(i32 noundef 1) #17
  unreachable

967:                                              ; preds = %935
  %968 = getelementptr inbounds i8, ptr %941, i64 220
  store i8 33, ptr %968, align 4, !tbaa !15
  %969 = getelementptr inbounds i8, ptr %941, i64 219
  store i8 33, ptr %969, align 1, !tbaa !44
  %970 = getelementptr inbounds i8, ptr %941, i64 218
  store i8 33, ptr %970, align 2, !tbaa !45
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = add nsw i32 %971, 1
  store i32 %972, ptr @test_count, align 4, !tbaa !5
  %973 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %880, ptr noundef nonnull %941, ptr noundef nonnull %9) #14
  %974 = icmp eq i32 %973, -1
  br i1 %974, label %975, label %999

975:                                              ; preds = %967
  %976 = tail call ptr @__errno_location() #15
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @s2n_print_stacktrace(ptr noundef %978) #14
  %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 = %975
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = call i32 @fileno(ptr noundef %983) #14
  %985 = call i32 @isatty(i32 noundef %984) #14
  %.not214 = icmp eq i32 %985, 0
  br i1 %.not214, label %986, label %987

986:                                              ; preds = %982, %975
  br label %987

987:                                              ; preds = %982, %986
  %.str.5.sink595 = phi ptr [ @.str.5, %986 ], [ @.str.2, %982 ]
  store i32 %977, ptr %976, align 4, !tbaa !5
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = load i32, ptr @test_count, align 4, !tbaa !5
  %990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = call ptr @s2n_strerror(i32 noundef %991, ptr noundef nonnull @.str.4) #14
  %993 = load i32, ptr %990, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror_debug(i32 noundef %993, ptr noundef nonnull @.str.4) #14
  %995 = load i32, ptr %976, align 4, !tbaa !5
  %996 = call ptr @strerror(i32 noundef %995) #14
  %997 = load i32, ptr %976, align 4, !tbaa !5
  %998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %988, ptr noundef nonnull %.str.5.sink595, i32 noundef %989, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %992, ptr noundef %994, ptr noundef %996, i32 noundef %997) #16
  call void @exit(i32 noundef 1) #17
  unreachable

999:                                              ; preds = %967
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = add nsw i32 %1000, 1
  store i32 %1001, ptr @test_count, align 4, !tbaa !5
  %1002 = call ptr @s2n_config_new() #14
  %1003 = icmp eq ptr %1002, null
  br i1 %1003, label %1004, label %1028

1004:                                             ; preds = %999
  %1005 = tail call ptr @__errno_location() #15
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = call i32 @s2n_print_stacktrace(ptr noundef %1007) #14
  %1009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1010 = trunc nuw i8 %1009 to i1
  br i1 %1010, label %1011, label %1015

1011:                                             ; preds = %1004
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = call i32 @fileno(ptr noundef %1012) #14
  %1014 = call i32 @isatty(i32 noundef %1013) #14
  %.not213 = icmp eq i32 %1014, 0
  br i1 %.not213, label %1015, label %1016

1015:                                             ; preds = %1011, %1004
  br label %1016

1016:                                             ; preds = %1011, %1015
  %.str.5.sink606 = phi ptr [ @.str.5, %1015 ], [ @.str.2, %1011 ]
  store i32 %1006, ptr %1005, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = load i32, ptr @test_count, align 4, !tbaa !5
  %1019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror(i32 noundef %1020, ptr noundef nonnull @.str.4) #14
  %1022 = load i32, ptr %1019, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror_debug(i32 noundef %1022, ptr noundef nonnull @.str.4) #14
  %1024 = load i32, ptr %1005, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #14
  %1026 = load i32, ptr %1005, align 4, !tbaa !5
  %1027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1017, ptr noundef nonnull %.str.5.sink606, i32 noundef %1018, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1021, ptr noundef %1023, ptr noundef %1025, i32 noundef %1026) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1028:                                             ; preds = %999
  %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 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.39, ptr noundef nonnull %679, i64 noundef 12000) #14
  %1032 = icmp eq i32 %1031, -1
  br i1 %1032, label %1033, label %1057

1033:                                             ; preds = %1028
  %1034 = tail call ptr @__errno_location() #15
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = call i32 @s2n_print_stacktrace(ptr noundef %1036) #14
  %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 = %1033
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = call i32 @fileno(ptr noundef %1041) #14
  %1043 = call i32 @isatty(i32 noundef %1042) #14
  %.not212 = icmp eq i32 %1043, 0
  br i1 %.not212, label %1044, label %1045

1044:                                             ; preds = %1040, %1033
  br label %1045

1045:                                             ; preds = %1040, %1044
  %.str.5.sink617 = phi ptr [ @.str.5, %1044 ], [ @.str.2, %1040 ]
  store i32 %1035, ptr %1034, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = load i32, ptr @test_count, align 4, !tbaa !5
  %1048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror(i32 noundef %1049, ptr noundef nonnull @.str.4) #14
  %1051 = load i32, ptr %1048, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror_debug(i32 noundef %1051, ptr noundef nonnull @.str.4) #14
  %1053 = load i32, ptr %1034, align 4, !tbaa !5
  %1054 = call ptr @strerror(i32 noundef %1053) #14
  %1055 = load i32, ptr %1034, align 4, !tbaa !5
  %1056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1046, ptr noundef nonnull %.str.5.sink617, i32 noundef %1047, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1050, ptr noundef %1052, ptr noundef %1054, i32 noundef %1055) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1057:                                             ; preds = %1028
  %1058 = load i32, ptr @test_count, align 4, !tbaa !5
  %1059 = add nsw i32 %1058, 1
  store i32 %1059, ptr @test_count, align 4, !tbaa !5
  %1060 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.41, ptr noundef nonnull %707, i64 noundef 12000) #14
  %1061 = icmp eq i32 %1060, -1
  br i1 %1061, label %1062, label %1086

1062:                                             ; preds = %1057
  %1063 = tail call ptr @__errno_location() #15
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = call i32 @s2n_print_stacktrace(ptr noundef %1065) #14
  %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 = %1062
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = call i32 @fileno(ptr noundef %1070) #14
  %1072 = call i32 @isatty(i32 noundef %1071) #14
  %.not211 = icmp eq i32 %1072, 0
  br i1 %.not211, label %1073, label %1074

1073:                                             ; preds = %1069, %1062
  br label %1074

1074:                                             ; preds = %1069, %1073
  %.str.5.sink628 = phi ptr [ @.str.5, %1073 ], [ @.str.2, %1069 ]
  store i32 %1064, ptr %1063, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror(i32 noundef %1078, ptr noundef nonnull @.str.4) #14
  %1080 = load i32, ptr %1077, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror_debug(i32 noundef %1080, ptr noundef nonnull @.str.4) #14
  %1082 = load i32, ptr %1063, align 4, !tbaa !5
  %1083 = call ptr @strerror(i32 noundef %1082) #14
  %1084 = load i32, ptr %1063, align 4, !tbaa !5
  %1085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef nonnull %.str.5.sink628, i32 noundef %1076, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %1079, ptr noundef %1081, ptr noundef %1083, i32 noundef %1084) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1086:                                             ; preds = %1057
  %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 = call ptr @s2n_cert_chain_and_key_new() #14
  %1090 = icmp eq ptr %1089, null
  br i1 %1090, label %1091, label %1115

1091:                                             ; preds = %1086
  %1092 = tail call ptr @__errno_location() #15
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = call i32 @s2n_print_stacktrace(ptr noundef %1094) #14
  %1096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1097 = trunc nuw i8 %1096 to i1
  br i1 %1097, label %1098, label %1102

1098:                                             ; preds = %1091
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = call i32 @fileno(ptr noundef %1099) #14
  %1101 = call i32 @isatty(i32 noundef %1100) #14
  %.not210 = icmp eq i32 %1101, 0
  br i1 %.not210, label %1102, label %1103

1102:                                             ; preds = %1098, %1091
  br label %1103

1103:                                             ; preds = %1098, %1102
  %.str.5.sink639 = phi ptr [ @.str.5, %1102 ], [ @.str.2, %1098 ]
  store i32 %1093, ptr %1092, align 4, !tbaa !5
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = load i32, ptr @test_count, align 4, !tbaa !5
  %1106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror(i32 noundef %1107, ptr noundef nonnull @.str.4) #14
  %1109 = load i32, ptr %1106, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror_debug(i32 noundef %1109, ptr noundef nonnull @.str.4) #14
  %1111 = load i32, ptr %1092, align 4, !tbaa !5
  %1112 = call ptr @strerror(i32 noundef %1111) #14
  %1113 = load i32, ptr %1092, align 4, !tbaa !5
  %1114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1104, ptr noundef nonnull %.str.5.sink639, i32 noundef %1105, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 164, ptr noundef %1108, ptr noundef %1110, ptr noundef %1112, i32 noundef %1113) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1115:                                             ; preds = %1086
  %1116 = load i32, ptr @test_count, align 4, !tbaa !5
  %1117 = add nsw i32 %1116, 1
  store i32 %1117, ptr @test_count, align 4, !tbaa !5
  %1118 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %1089, ptr noundef nonnull %679, ptr noundef nonnull %707) #14
  %1119 = icmp eq i32 %1118, -1
  br i1 %1119, label %1120, label %1144

1120:                                             ; preds = %1115
  %1121 = tail call ptr @__errno_location() #15
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = call i32 @s2n_print_stacktrace(ptr noundef %1123) #14
  %1125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1126 = trunc nuw i8 %1125 to i1
  br i1 %1126, label %1127, label %1131

1127:                                             ; preds = %1120
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = call i32 @fileno(ptr noundef %1128) #14
  %1130 = call i32 @isatty(i32 noundef %1129) #14
  %.not209 = icmp eq i32 %1130, 0
  br i1 %.not209, label %1131, label %1132

1131:                                             ; preds = %1127, %1120
  br label %1132

1132:                                             ; preds = %1127, %1131
  %.str.5.sink650 = phi ptr [ @.str.5, %1131 ], [ @.str.2, %1127 ]
  store i32 %1122, ptr %1121, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = load i32, ptr @test_count, align 4, !tbaa !5
  %1135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror(i32 noundef %1136, ptr noundef nonnull @.str.4) #14
  %1138 = load i32, ptr %1135, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror_debug(i32 noundef %1138, ptr noundef nonnull @.str.4) #14
  %1140 = load i32, ptr %1121, align 4, !tbaa !5
  %1141 = call ptr @strerror(i32 noundef %1140) #14
  %1142 = load i32, ptr %1121, align 4, !tbaa !5
  %1143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1133, ptr noundef nonnull %.str.5.sink650, i32 noundef %1134, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %1137, ptr noundef %1139, ptr noundef %1141, i32 noundef %1142) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1144:                                             ; preds = %1115
  %1145 = load i32, ptr @test_count, align 4, !tbaa !5
  %1146 = add nsw i32 %1145, 1
  store i32 %1146, ptr @test_count, align 4, !tbaa !5
  %1147 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1002, ptr noundef nonnull %1089) #14
  %1148 = icmp eq i32 %1147, -1
  br i1 %1148, label %1149, label %1173

1149:                                             ; preds = %1144
  %1150 = tail call ptr @__errno_location() #15
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @s2n_print_stacktrace(ptr noundef %1152) #14
  %1154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1155 = trunc nuw i8 %1154 to i1
  br i1 %1155, label %1156, label %1160

1156:                                             ; preds = %1149
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @fileno(ptr noundef %1157) #14
  %1159 = call i32 @isatty(i32 noundef %1158) #14
  %.not208 = icmp eq i32 %1159, 0
  br i1 %.not208, label %1160, label %1161

1160:                                             ; preds = %1156, %1149
  br label %1161

1161:                                             ; preds = %1156, %1160
  %.str.5.sink661 = phi ptr [ @.str.5, %1160 ], [ @.str.2, %1156 ]
  store i32 %1151, ptr %1150, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef nonnull @.str.4) #14
  %1167 = load i32, ptr %1164, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef nonnull @.str.4) #14
  %1169 = load i32, ptr %1150, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #14
  %1171 = load i32, ptr %1150, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef nonnull %.str.5.sink661, i32 noundef %1163, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1166, ptr noundef %1168, ptr noundef %1170, i32 noundef %1171) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1173:                                             ; preds = %1144
  %1174 = load i32, ptr @test_count, align 4, !tbaa !5
  %1175 = add nsw i32 %1174, 1
  store i32 %1175, ptr @test_count, align 4, !tbaa !5
  %1176 = call i32 @s2n_connection_set_config(ptr noundef nonnull %941, ptr noundef nonnull %1002) #14
  %1177 = icmp eq i32 %1176, -1
  br i1 %1177, label %1178, label %1202

1178:                                             ; preds = %1173
  %1179 = tail call ptr @__errno_location() #15
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = call i32 @s2n_print_stacktrace(ptr noundef %1181) #14
  %1183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1184 = trunc nuw i8 %1183 to i1
  br i1 %1184, label %1185, label %1189

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

1189:                                             ; preds = %1185, %1178
  br label %1190

1190:                                             ; preds = %1185, %1189
  %.str.5.sink672 = phi ptr [ @.str.5, %1189 ], [ @.str.2, %1185 ]
  store i32 %1180, ptr %1179, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror(i32 noundef %1194, ptr noundef nonnull @.str.4) #14
  %1196 = load i32, ptr %1193, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror_debug(i32 noundef %1196, ptr noundef nonnull @.str.4) #14
  %1198 = load i32, ptr %1179, align 4, !tbaa !5
  %1199 = call ptr @strerror(i32 noundef %1198) #14
  %1200 = load i32, ptr %1179, align 4, !tbaa !5
  %1201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef nonnull %.str.5.sink672, i32 noundef %1192, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1195, ptr noundef %1197, ptr noundef %1199, i32 noundef %1200) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1202:                                             ; preds = %1173
  %1203 = load i32, ptr @test_count, align 4, !tbaa !5
  %1204 = add nsw i32 %1203, 1
  store i32 %1204, ptr @test_count, align 4, !tbaa !5
  %1205 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %941, ptr noundef nonnull %880) #14
  %1206 = icmp eq i32 %1205, -1
  br i1 %1206, label %1207, label %1231

1207:                                             ; preds = %1202
  %1208 = tail call ptr @__errno_location() #15
  %1209 = load i32, ptr %1208, align 4, !tbaa !5
  %1210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1211 = call i32 @s2n_print_stacktrace(ptr noundef %1210) #14
  %1212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1213 = trunc nuw i8 %1212 to i1
  br i1 %1213, label %1214, label %1218

1214:                                             ; preds = %1207
  %1215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1216 = call i32 @fileno(ptr noundef %1215) #14
  %1217 = call i32 @isatty(i32 noundef %1216) #14
  %.not206 = icmp eq i32 %1217, 0
  br i1 %.not206, label %1218, label %1219

1218:                                             ; preds = %1214, %1207
  br label %1219

1219:                                             ; preds = %1214, %1218
  %.str.5.sink683 = phi ptr [ @.str.5, %1218 ], [ @.str.2, %1214 ]
  store i32 %1209, ptr %1208, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror(i32 noundef %1223, ptr noundef nonnull @.str.4) #14
  %1225 = load i32, ptr %1222, align 4, !tbaa !5
  %1226 = call ptr @s2n_strerror_debug(i32 noundef %1225, ptr noundef nonnull @.str.4) #14
  %1227 = load i32, ptr %1208, align 4, !tbaa !5
  %1228 = call ptr @strerror(i32 noundef %1227) #14
  %1229 = load i32, ptr %1208, align 4, !tbaa !5
  %1230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1220, ptr noundef nonnull %.str.5.sink683, i32 noundef %1221, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1224, ptr noundef %1226, ptr noundef %1228, i32 noundef %1229) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1231:                                             ; preds = %1202
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %11) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %11, i8 0, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, i8 0, i64 24, i1 false)
  %1232 = load i32, ptr @test_count, align 4, !tbaa !5
  %1233 = add nsw i32 %1232, 1
  store i32 %1233, ptr @test_count, align 4, !tbaa !5
  %1234 = call i32 @s2n_blob_init(ptr noundef nonnull %12, ptr noundef nonnull %11, i32 noundef 5) #14
  %1235 = icmp eq i32 %1234, -1
  br i1 %1235, label %1236, label %1260

1236:                                             ; preds = %1231
  %1237 = tail call ptr @__errno_location() #15
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = call i32 @s2n_print_stacktrace(ptr noundef %1239) #14
  %1241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1242 = trunc nuw i8 %1241 to i1
  br i1 %1242, label %1243, label %1247

1243:                                             ; preds = %1236
  %1244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1245 = call i32 @fileno(ptr noundef %1244) #14
  %1246 = call i32 @isatty(i32 noundef %1245) #14
  %.not205 = icmp eq i32 %1246, 0
  br i1 %.not205, label %1247, label %1248

1247:                                             ; preds = %1243, %1236
  br label %1248

1248:                                             ; preds = %1243, %1247
  %.str.5.sink694 = phi ptr [ @.str.5, %1247 ], [ @.str.2, %1243 ]
  store i32 %1238, ptr %1237, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = call ptr @s2n_strerror(i32 noundef %1252, ptr noundef nonnull @.str.4) #14
  %1254 = load i32, ptr %1251, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror_debug(i32 noundef %1254, ptr noundef nonnull @.str.4) #14
  %1256 = load i32, ptr %1237, align 4, !tbaa !5
  %1257 = call ptr @strerror(i32 noundef %1256) #14
  %1258 = load i32, ptr %1237, align 4, !tbaa !5
  %1259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1249, ptr noundef nonnull %.str.5.sink694, i32 noundef %1250, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1253, ptr noundef %1255, ptr noundef %1257, i32 noundef %1258) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1260:                                             ; preds = %1231
  %1261 = load i32, ptr @test_count, align 4, !tbaa !5
  %1262 = add nsw i32 %1261, 1
  store i32 %1262, ptr @test_count, align 4, !tbaa !5
  %1263 = call i32 @s2n_key_update_write(ptr noundef nonnull %12) #14
  %1264 = icmp eq i32 %1263, -1
  br i1 %1264, label %1265, label %1289

1265:                                             ; preds = %1260
  %1266 = tail call ptr @__errno_location() #15
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = call i32 @s2n_print_stacktrace(ptr noundef %1268) #14
  %1270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1271 = trunc nuw i8 %1270 to i1
  br i1 %1271, label %1272, label %1276

1272:                                             ; preds = %1265
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = call i32 @fileno(ptr noundef %1273) #14
  %1275 = call i32 @isatty(i32 noundef %1274) #14
  %.not204 = icmp eq i32 %1275, 0
  br i1 %.not204, label %1276, label %1277

1276:                                             ; preds = %1272, %1265
  br label %1277

1277:                                             ; preds = %1272, %1276
  %.str.5.sink705 = phi ptr [ @.str.5, %1276 ], [ @.str.2, %1272 ]
  store i32 %1267, ptr %1266, align 4, !tbaa !5
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = call ptr @s2n_strerror(i32 noundef %1281, ptr noundef nonnull @.str.4) #14
  %1283 = load i32, ptr %1280, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror_debug(i32 noundef %1283, ptr noundef nonnull @.str.4) #14
  %1285 = load i32, ptr %1266, align 4, !tbaa !5
  %1286 = call ptr @strerror(i32 noundef %1285) #14
  %1287 = load i32, ptr %1266, align 4, !tbaa !5
  %1288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1278, ptr noundef nonnull %.str.5.sink705, i32 noundef %1279, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1282, ptr noundef %1284, ptr noundef %1286, i32 noundef %1287) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1289:                                             ; preds = %1260
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = add nsw i32 %1290, 1
  store i32 %1291, ptr @test_count, align 4, !tbaa !5
  %1292 = call i32 @s2n_record_write(ptr noundef nonnull %880, i8 noundef zeroext 22, ptr noundef nonnull %12) #14
  %1293 = call zeroext i1 @s2n_result_is_ok(i32 %1292)
  br i1 %1293, label %1318, label %1294

1294:                                             ; preds = %1289
  %1295 = tail call ptr @__errno_location() #15
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1298 = call i32 @s2n_print_stacktrace(ptr noundef %1297) #14
  %1299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1300 = trunc nuw i8 %1299 to i1
  br i1 %1300, label %1301, label %1305

1301:                                             ; preds = %1294
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = call i32 @fileno(ptr noundef %1302) #14
  %1304 = call i32 @isatty(i32 noundef %1303) #14
  %.not187 = icmp eq i32 %1304, 0
  br i1 %.not187, label %1305, label %1306

1305:                                             ; preds = %1301, %1294
  br label %1306

1306:                                             ; preds = %1301, %1305
  %.str.5.sink716 = phi ptr [ @.str.5, %1305 ], [ @.str.2, %1301 ]
  store i32 %1296, ptr %1295, align 4, !tbaa !5
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = load i32, ptr @test_count, align 4, !tbaa !5
  %1309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = call ptr @s2n_strerror(i32 noundef %1310, ptr noundef nonnull @.str.4) #14
  %1312 = load i32, ptr %1309, align 4, !tbaa !5
  %1313 = call ptr @s2n_strerror_debug(i32 noundef %1312, ptr noundef nonnull @.str.4) #14
  %1314 = load i32, ptr %1295, align 4, !tbaa !5
  %1315 = call ptr @strerror(i32 noundef %1314) #14
  %1316 = load i32, ptr %1295, align 4, !tbaa !5
  %1317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1307, ptr noundef nonnull %.str.5.sink716, i32 noundef %1308, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1311, ptr noundef %1313, ptr noundef %1315, i32 noundef %1316) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1318:                                             ; preds = %1289
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr @test_count, align 4, !tbaa !5
  %1321 = call i32 @s2n_flush(ptr noundef nonnull %880, ptr noundef nonnull %10) #14
  %1322 = icmp eq i32 %1321, -1
  br i1 %1322, label %1323, label %1347

1323:                                             ; preds = %1318
  %1324 = tail call ptr @__errno_location() #15
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = call i32 @s2n_print_stacktrace(ptr noundef %1326) #14
  %1328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1329 = trunc nuw i8 %1328 to i1
  br i1 %1329, label %1330, label %1334

1330:                                             ; preds = %1323
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = call i32 @fileno(ptr noundef %1331) #14
  %1333 = call i32 @isatty(i32 noundef %1332) #14
  %.not203 = icmp eq i32 %1333, 0
  br i1 %.not203, label %1334, label %1335

1334:                                             ; preds = %1330, %1323
  br label %1335

1335:                                             ; preds = %1330, %1334
  %.str.5.sink727 = phi ptr [ @.str.5, %1334 ], [ @.str.2, %1330 ]
  store i32 %1325, ptr %1324, align 4, !tbaa !5
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1339 = load i32, ptr %1338, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror(i32 noundef %1339, ptr noundef nonnull @.str.4) #14
  %1341 = load i32, ptr %1338, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror_debug(i32 noundef %1341, ptr noundef nonnull @.str.4) #14
  %1343 = load i32, ptr %1324, align 4, !tbaa !5
  %1344 = call ptr @strerror(i32 noundef %1343) #14
  %1345 = load i32, ptr %1324, align 4, !tbaa !5
  %1346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1336, ptr noundef nonnull %.str.5.sink727, i32 noundef %1337, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1340, ptr noundef %1342, ptr noundef %1344, i32 noundef %1345) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1347:                                             ; preds = %1318
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %13) #14
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr @test_count, align 4, !tbaa !5
  %1350 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %941, i32 noundef 1) #14
  %1351 = icmp eq i32 %1350, -1
  br i1 %1351, label %1352, label %1376

1352:                                             ; preds = %1347
  %1353 = tail call ptr @__errno_location() #15
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = call i32 @s2n_print_stacktrace(ptr noundef %1355) #14
  %1357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1358 = trunc nuw i8 %1357 to i1
  br i1 %1358, label %1359, label %1363

1359:                                             ; preds = %1352
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = call i32 @fileno(ptr noundef %1360) #14
  %1362 = call i32 @isatty(i32 noundef %1361) #14
  %.not202 = icmp eq i32 %1362, 0
  br i1 %.not202, label %1363, label %1364

1363:                                             ; preds = %1359, %1352
  br label %1364

1364:                                             ; preds = %1359, %1363
  %.str.5.sink738 = phi ptr [ @.str.5, %1363 ], [ @.str.2, %1359 ]
  store i32 %1354, ptr %1353, align 4, !tbaa !5
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror(i32 noundef %1368, ptr noundef nonnull @.str.4) #14
  %1370 = load i32, ptr %1367, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror_debug(i32 noundef %1370, ptr noundef nonnull @.str.4) #14
  %1372 = load i32, ptr %1353, align 4, !tbaa !5
  %1373 = call ptr @strerror(i32 noundef %1372) #14
  %1374 = load i32, ptr %1353, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1365, ptr noundef nonnull %.str.5.sink738, i32 noundef %1366, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1369, ptr noundef %1371, ptr noundef %1373, i32 noundef %1374) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1376:                                             ; preds = %1347
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = add nsw i32 %1377, 1
  store i32 %1378, ptr @test_count, align 4, !tbaa !5
  %1379 = call i64 @s2n_recv(ptr noundef nonnull %941, ptr noundef nonnull %13, i64 noundef 128, ptr noundef nonnull %10) #14
  %1380 = icmp eq i64 %1379, -1
  br i1 %1380, label %1405, label %1381

1381:                                             ; preds = %1376
  %1382 = tail call ptr @__errno_location() #15
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @s2n_print_stacktrace(ptr noundef %1384) #14
  %1386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1387 = trunc nuw i8 %1386 to i1
  br i1 %1387, label %1388, label %1392

1388:                                             ; preds = %1381
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @fileno(ptr noundef %1389) #14
  %1391 = call i32 @isatty(i32 noundef %1390) #14
  %.not188 = icmp eq i32 %1391, 0
  br i1 %.not188, label %1392, label %1393

1392:                                             ; preds = %1388, %1381
  br label %1393

1393:                                             ; preds = %1388, %1392
  %.str.5.sink749 = phi ptr [ @.str.5, %1392 ], [ @.str.2, %1388 ]
  store i32 %1383, ptr %1382, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = call ptr @s2n_strerror(i32 noundef %1397, ptr noundef nonnull @.str.4) #14
  %1399 = load i32, ptr %1396, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror_debug(i32 noundef %1399, ptr noundef nonnull @.str.4) #14
  %1401 = load i32, ptr %1382, align 4, !tbaa !5
  %1402 = call ptr @strerror(i32 noundef %1401) #14
  %1403 = load i32, ptr %1382, align 4, !tbaa !5
  %1404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1394, ptr noundef nonnull %.str.5.sink749, i32 noundef %1395, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1398, ptr noundef %1400, ptr noundef %1402, i32 noundef %1403) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1405:                                             ; preds = %1376
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = icmp eq i32 %1409, 335544322
  br i1 %1410, label %1434, label %1411

1411:                                             ; preds = %1405
  %1412 = tail call ptr @__errno_location() #15
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1415 = call i32 @s2n_print_stacktrace(ptr noundef %1414) #14
  %1416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1417 = trunc nuw i8 %1416 to i1
  br i1 %1417, label %1418, label %1422

1418:                                             ; preds = %1411
  %1419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1420 = call i32 @fileno(ptr noundef %1419) #14
  %1421 = call i32 @isatty(i32 noundef %1420) #14
  %.not189 = icmp eq i32 %1421, 0
  br i1 %.not189, label %1422, label %1423

1422:                                             ; preds = %1418, %1411
  br label %1423

1423:                                             ; preds = %1418, %1422
  %.str.5.sink760 = phi ptr [ @.str.5, %1422 ], [ @.str.2, %1418 ]
  store i32 %1413, ptr %1412, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = load i32, ptr @test_count, align 4, !tbaa !5
  %1426 = load i32, ptr %1408, align 4, !tbaa !5
  %1427 = call ptr @s2n_strerror(i32 noundef %1426, ptr noundef nonnull @.str.4) #14
  %1428 = load i32, ptr %1408, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror_debug(i32 noundef %1428, ptr noundef nonnull @.str.4) #14
  %1430 = load i32, ptr %1412, align 4, !tbaa !5
  %1431 = call ptr @strerror(i32 noundef %1430) #14
  %1432 = load i32, ptr %1412, align 4, !tbaa !5
  %1433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1424, ptr noundef nonnull %.str.5.sink760, i32 noundef %1425, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1427, ptr noundef %1429, ptr noundef %1431, i32 noundef %1432) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1434:                                             ; preds = %1405
  %1435 = add nsw i32 %1406, 2
  store i32 %1435, ptr @test_count, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #14
  %1437 = icmp eq ptr %1436, null
  br i1 %1437, label %1438, label %1461

1438:                                             ; preds = %1434
  %1439 = tail call ptr @__errno_location() #15
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = call i32 @s2n_print_stacktrace(ptr noundef %1441) #14
  %1443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1444 = trunc nuw i8 %1443 to i1
  br i1 %1444, label %1445, label %1449

1445:                                             ; preds = %1438
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = call i32 @fileno(ptr noundef %1446) #14
  %1448 = call i32 @isatty(i32 noundef %1447) #14
  %.not201 = icmp eq i32 %1448, 0
  br i1 %.not201, label %1449, label %1450

1449:                                             ; preds = %1445, %1438
  br label %1450

1450:                                             ; preds = %1445, %1449
  %.str.5.sink769 = phi ptr [ @.str.5, %1449 ], [ @.str.2, %1445 ]
  store i32 %1440, ptr %1439, align 4, !tbaa !5
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = load i32, ptr @test_count, align 4, !tbaa !5
  %1453 = load i32, ptr %1408, align 4, !tbaa !5
  %1454 = call ptr @s2n_strerror(i32 noundef %1453, ptr noundef nonnull @.str.4) #14
  %1455 = load i32, ptr %1408, align 4, !tbaa !5
  %1456 = call ptr @s2n_strerror_debug(i32 noundef %1455, ptr noundef nonnull @.str.4) #14
  %1457 = load i32, ptr %1439, align 4, !tbaa !5
  %1458 = call ptr @strerror(i32 noundef %1457) #14
  %1459 = load i32, ptr %1439, align 4, !tbaa !5
  %1460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1451, ptr noundef nonnull %.str.5.sink769, i32 noundef %1452, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1454, ptr noundef %1456, ptr noundef %1458, i32 noundef %1459) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1461:                                             ; preds = %1434
  store i32 0, ptr %1408, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  %1462 = tail call ptr @__errno_location() #15
  store i32 0, ptr %1462, align 4, !tbaa !5
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = add nsw i32 %1463, 1
  store i32 %1464, ptr @test_count, align 4, !tbaa !5
  %1465 = call i32 @s2n_connection_free(ptr noundef nonnull %941) #14
  %1466 = icmp eq i32 %1465, -1
  br i1 %1466, label %1467, label %1489

1467:                                             ; preds = %1461
  %1468 = load i32, ptr %1462, align 4, !tbaa !5
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = call i32 @s2n_print_stacktrace(ptr noundef %1469) #14
  %1471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1472 = trunc nuw i8 %1471 to i1
  br i1 %1472, label %1473, label %1477

1473:                                             ; preds = %1467
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = call i32 @fileno(ptr noundef %1474) #14
  %1476 = call i32 @isatty(i32 noundef %1475) #14
  %.not200 = icmp eq i32 %1476, 0
  br i1 %.not200, label %1477, label %1478

1477:                                             ; preds = %1473, %1467
  br label %1478

1478:                                             ; preds = %1473, %1477
  %.str.5.sink778 = phi ptr [ @.str.5, %1477 ], [ @.str.2, %1473 ]
  store i32 %1468, ptr %1462, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = load i32, ptr %1408, align 4, !tbaa !5
  %1482 = call ptr @s2n_strerror(i32 noundef %1481, ptr noundef nonnull @.str.4) #14
  %1483 = load i32, ptr %1408, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror_debug(i32 noundef %1483, ptr noundef nonnull @.str.4) #14
  %1485 = load i32, ptr %1462, align 4, !tbaa !5
  %1486 = call ptr @strerror(i32 noundef %1485) #14
  %1487 = load i32, ptr %1462, align 4, !tbaa !5
  %1488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1479, ptr noundef nonnull %.str.5.sink778, i32 noundef %1480, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %1482, ptr noundef %1484, ptr noundef %1486, i32 noundef %1487) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1489:                                             ; preds = %1461
  %1490 = load i32, ptr @test_count, align 4, !tbaa !5
  %1491 = add nsw i32 %1490, 1
  store i32 %1491, ptr @test_count, align 4, !tbaa !5
  %1492 = call i32 @s2n_connection_free(ptr noundef nonnull %880) #14
  %1493 = icmp eq i32 %1492, -1
  br i1 %1493, label %1494, label %1516

1494:                                             ; preds = %1489
  %1495 = load i32, ptr %1462, align 4, !tbaa !5
  %1496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1497 = call i32 @s2n_print_stacktrace(ptr noundef %1496) #14
  %1498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1499 = trunc nuw i8 %1498 to i1
  br i1 %1499, label %1500, label %1504

1500:                                             ; preds = %1494
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = call i32 @fileno(ptr noundef %1501) #14
  %1503 = call i32 @isatty(i32 noundef %1502) #14
  %.not199 = icmp eq i32 %1503, 0
  br i1 %.not199, label %1504, label %1505

1504:                                             ; preds = %1500, %1494
  br label %1505

1505:                                             ; preds = %1500, %1504
  %.str.5.sink787 = phi ptr [ @.str.5, %1504 ], [ @.str.2, %1500 ]
  store i32 %1495, ptr %1462, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = load i32, ptr @test_count, align 4, !tbaa !5
  %1508 = load i32, ptr %1408, align 4, !tbaa !5
  %1509 = call ptr @s2n_strerror(i32 noundef %1508, ptr noundef nonnull @.str.4) #14
  %1510 = load i32, ptr %1408, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror_debug(i32 noundef %1510, ptr noundef nonnull @.str.4) #14
  %1512 = load i32, ptr %1462, align 4, !tbaa !5
  %1513 = call ptr @strerror(i32 noundef %1512) #14
  %1514 = load i32, ptr %1462, align 4, !tbaa !5
  %1515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1506, ptr noundef nonnull %.str.5.sink787, i32 noundef %1507, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1509, ptr noundef %1511, ptr noundef %1513, i32 noundef %1514) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1516:                                             ; preds = %1489
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = add nsw i32 %1517, 1
  store i32 %1518, ptr @test_count, align 4, !tbaa !5
  %1519 = call i32 @s2n_io_pair_close(ptr noundef nonnull %9) #14
  %1520 = icmp eq i32 %1519, -1
  br i1 %1520, label %1521, label %1543

1521:                                             ; preds = %1516
  %1522 = load i32, ptr %1462, align 4, !tbaa !5
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = call i32 @s2n_print_stacktrace(ptr noundef %1523) #14
  %1525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1526 = trunc nuw i8 %1525 to i1
  br i1 %1526, label %1527, label %1531

1527:                                             ; preds = %1521
  %1528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1529 = call i32 @fileno(ptr noundef %1528) #14
  %1530 = call i32 @isatty(i32 noundef %1529) #14
  %.not198 = icmp eq i32 %1530, 0
  br i1 %.not198, label %1531, label %1532

1531:                                             ; preds = %1527, %1521
  br label %1532

1532:                                             ; preds = %1527, %1531
  %.str.5.sink796 = phi ptr [ @.str.5, %1531 ], [ @.str.2, %1527 ]
  store i32 %1522, ptr %1462, align 4, !tbaa !5
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = load i32, ptr @test_count, align 4, !tbaa !5
  %1535 = load i32, ptr %1408, align 4, !tbaa !5
  %1536 = call ptr @s2n_strerror(i32 noundef %1535, ptr noundef nonnull @.str.4) #14
  %1537 = load i32, ptr %1408, align 4, !tbaa !5
  %1538 = call ptr @s2n_strerror_debug(i32 noundef %1537, ptr noundef nonnull @.str.4) #14
  %1539 = load i32, ptr %1462, align 4, !tbaa !5
  %1540 = call ptr @strerror(i32 noundef %1539) #14
  %1541 = load i32, ptr %1462, align 4, !tbaa !5
  %1542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1533, ptr noundef nonnull %.str.5.sink796, i32 noundef %1534, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1536, ptr noundef %1538, ptr noundef %1540, i32 noundef %1541) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1543:                                             ; preds = %1516
  %1544 = load i32, ptr @test_count, align 4, !tbaa !5
  %1545 = add nsw i32 %1544, 1
  store i32 %1545, ptr @test_count, align 4, !tbaa !5
  %1546 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %1089) #14
  %1547 = icmp eq i32 %1546, -1
  br i1 %1547, label %1548, label %1570

1548:                                             ; preds = %1543
  %1549 = load i32, ptr %1462, align 4, !tbaa !5
  %1550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1551 = call i32 @s2n_print_stacktrace(ptr noundef %1550) #14
  %1552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1553 = trunc nuw i8 %1552 to i1
  br i1 %1553, label %1554, label %1558

1554:                                             ; preds = %1548
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = call i32 @fileno(ptr noundef %1555) #14
  %1557 = call i32 @isatty(i32 noundef %1556) #14
  %.not197 = icmp eq i32 %1557, 0
  br i1 %.not197, label %1558, label %1559

1558:                                             ; preds = %1554, %1548
  br label %1559

1559:                                             ; preds = %1554, %1558
  %.str.5.sink805 = phi ptr [ @.str.5, %1558 ], [ @.str.2, %1554 ]
  store i32 %1549, ptr %1462, align 4, !tbaa !5
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = load i32, ptr @test_count, align 4, !tbaa !5
  %1562 = load i32, ptr %1408, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror(i32 noundef %1562, ptr noundef nonnull @.str.4) #14
  %1564 = load i32, ptr %1408, align 4, !tbaa !5
  %1565 = call ptr @s2n_strerror_debug(i32 noundef %1564, ptr noundef nonnull @.str.4) #14
  %1566 = load i32, ptr %1462, align 4, !tbaa !5
  %1567 = call ptr @strerror(i32 noundef %1566) #14
  %1568 = load i32, ptr %1462, align 4, !tbaa !5
  %1569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1560, ptr noundef nonnull %.str.5.sink805, i32 noundef %1561, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1563, ptr noundef %1565, ptr noundef %1567, i32 noundef %1568) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1570:                                             ; preds = %1543
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = add nsw i32 %1571, 1
  store i32 %1572, ptr @test_count, align 4, !tbaa !5
  %1573 = call i32 @s2n_config_free(ptr noundef nonnull %1002) #14
  %1574 = icmp eq i32 %1573, -1
  br i1 %1574, label %1575, label %1597

1575:                                             ; preds = %1570
  %1576 = load i32, ptr %1462, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @s2n_print_stacktrace(ptr noundef %1577) #14
  %1579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1580 = trunc nuw i8 %1579 to i1
  br i1 %1580, label %1581, label %1585

1581:                                             ; preds = %1575
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = call i32 @fileno(ptr noundef %1582) #14
  %1584 = call i32 @isatty(i32 noundef %1583) #14
  %.not196 = icmp eq i32 %1584, 0
  br i1 %.not196, label %1585, label %1586

1585:                                             ; preds = %1581, %1575
  br label %1586

1586:                                             ; preds = %1581, %1585
  %.str.5.sink814 = phi ptr [ @.str.5, %1585 ], [ @.str.2, %1581 ]
  store i32 %1576, ptr %1462, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = load i32, ptr @test_count, align 4, !tbaa !5
  %1589 = load i32, ptr %1408, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror(i32 noundef %1589, ptr noundef nonnull @.str.4) #14
  %1591 = load i32, ptr %1408, align 4, !tbaa !5
  %1592 = call ptr @s2n_strerror_debug(i32 noundef %1591, ptr noundef nonnull @.str.4) #14
  %1593 = load i32, ptr %1462, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #14
  %1595 = load i32, ptr %1462, align 4, !tbaa !5
  %1596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1587, ptr noundef nonnull %.str.5.sink814, i32 noundef %1588, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1590, ptr noundef %1592, ptr noundef %1594, i32 noundef %1595) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1597:                                             ; preds = %1570
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = add nsw i32 %1598, 1
  store i32 %1599, ptr @test_count, align 4, !tbaa !5
  %1600 = call i32 @s2n_config_free(ptr noundef nonnull %793) #14
  %1601 = icmp eq i32 %1600, -1
  br i1 %1601, label %1602, label %1624

1602:                                             ; preds = %1597
  %1603 = load i32, ptr %1462, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @s2n_print_stacktrace(ptr noundef %1604) #14
  %1606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1607 = trunc nuw i8 %1606 to i1
  br i1 %1607, label %1608, label %1612

1608:                                             ; preds = %1602
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @fileno(ptr noundef %1609) #14
  %1611 = call i32 @isatty(i32 noundef %1610) #14
  %.not195 = icmp eq i32 %1611, 0
  br i1 %.not195, label %1612, label %1613

1612:                                             ; preds = %1608, %1602
  br label %1613

1613:                                             ; preds = %1608, %1612
  %.str.5.sink823 = phi ptr [ @.str.5, %1612 ], [ @.str.2, %1608 ]
  store i32 %1603, ptr %1462, align 4, !tbaa !5
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = load i32, ptr %1408, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror(i32 noundef %1616, ptr noundef nonnull @.str.4) #14
  %1618 = load i32, ptr %1408, align 4, !tbaa !5
  %1619 = call ptr @s2n_strerror_debug(i32 noundef %1618, ptr noundef nonnull @.str.4) #14
  %1620 = load i32, ptr %1462, align 4, !tbaa !5
  %1621 = call ptr @strerror(i32 noundef %1620) #14
  %1622 = load i32, ptr %1462, align 4, !tbaa !5
  %1623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1614, ptr noundef nonnull %.str.5.sink823, i32 noundef %1615, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %1617, ptr noundef %1619, ptr noundef %1621, i32 noundef %1622) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1624:                                             ; preds = %1597
  call void @free(ptr noundef nonnull %679) #14
  call void @free(ptr noundef nonnull %707) #14
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #14
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  %1625 = call i32 @s2n_cleanup() #14
  %1626 = icmp eq i32 %1625, -1
  br i1 %1626, label %1627, label %1649

1627:                                             ; preds = %1624
  %1628 = load i32, ptr %1462, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = call i32 @s2n_print_stacktrace(ptr noundef %1629) #14
  %1631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1632 = trunc nuw i8 %1631 to i1
  br i1 %1632, label %1633, label %1637

1633:                                             ; preds = %1627
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = call i32 @fileno(ptr noundef %1634) #14
  %1636 = call i32 @isatty(i32 noundef %1635) #14
  %.not194 = icmp eq i32 %1636, 0
  br i1 %.not194, label %1637, label %1638

1637:                                             ; preds = %1633, %1627
  br label %1638

1638:                                             ; preds = %1633, %1637
  %.str.5.sink832 = phi ptr [ @.str.5, %1637 ], [ @.str.2, %1633 ]
  store i32 %1628, ptr %1462, align 4, !tbaa !5
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = load i32, ptr %1408, align 4, !tbaa !5
  %1642 = call ptr @s2n_strerror(i32 noundef %1641, ptr noundef nonnull @.str.4) #14
  %1643 = load i32, ptr %1408, align 4, !tbaa !5
  %1644 = call ptr @s2n_strerror_debug(i32 noundef %1643, ptr noundef nonnull @.str.4) #14
  %1645 = load i32, ptr %1462, align 4, !tbaa !5
  %1646 = call ptr @strerror(i32 noundef %1645) #14
  %1647 = load i32, ptr %1462, align 4, !tbaa !5
  %1648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1639, ptr noundef nonnull %.str.5.sink832, i32 noundef %1640, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1642, ptr noundef %1644, ptr noundef %1646, i32 noundef %1647) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1649:                                             ; preds = %1624
  %1650 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #14
  %1651 = icmp eq i32 %1650, -1
  br i1 %1651, label %1652, label %1674

1652:                                             ; preds = %1649
  %1653 = load i32, ptr %1462, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @s2n_print_stacktrace(ptr noundef %1654) #14
  %1656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1657 = trunc nuw i8 %1656 to i1
  br i1 %1657, label %1658, label %1662

1658:                                             ; preds = %1652
  %1659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1660 = call i32 @fileno(ptr noundef %1659) #14
  %1661 = call i32 @isatty(i32 noundef %1660) #14
  %.not193 = icmp eq i32 %1661, 0
  br i1 %.not193, label %1662, label %1663

1662:                                             ; preds = %1658, %1652
  br label %1663

1663:                                             ; preds = %1658, %1662
  %.str.5.sink841 = phi ptr [ @.str.5, %1662 ], [ @.str.2, %1658 ]
  store i32 %1653, ptr %1462, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = load i32, ptr %1408, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror(i32 noundef %1666, ptr noundef nonnull @.str.4) #14
  %1668 = load i32, ptr %1408, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef nonnull @.str.4) #14
  %1670 = load i32, ptr %1462, align 4, !tbaa !5
  %1671 = call ptr @strerror(i32 noundef %1670) #14
  %1672 = load i32, ptr %1462, align 4, !tbaa !5
  %1673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1664, ptr noundef nonnull %.str.5.sink841, i32 noundef %1665, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1667, ptr noundef %1669, ptr noundef %1671, i32 noundef %1672) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1674:                                             ; preds = %1649
  %1675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1676 = trunc nuw i8 %1675 to i1
  br i1 %1676, label %1677, label %1688

1677:                                             ; preds = %1674
  %1678 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1679 = call i32 @fileno(ptr noundef %1678) #14
  %1680 = call i32 @isatty(i32 noundef %1679) #14
  %.not190 = icmp eq i32 %1680, 0
  br i1 %.not190, label %1688, label %1681

1681:                                             ; preds = %1677
  %1682 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not192 = icmp eq i32 %1682, 0
  %1683 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not192, label %1686, label %1684

1684:                                             ; preds = %1681
  %1685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1683, ptr noundef nonnull @.str.62, i32 noundef %1682) #14
  br label %1695

1686:                                             ; preds = %1681
  %1687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1683, ptr noundef nonnull @.str.63) #14
  br label %1695

1688:                                             ; preds = %1677, %1674
  %1689 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not191 = icmp eq i32 %1689, 0
  %1690 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not191, label %1693, label %1691

1691:                                             ; preds = %1688
  %1692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1690, ptr noundef nonnull @.str.64, i32 noundef %1689) #14
  br label %1695

1693:                                             ; preds = %1688
  %1694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1690, ptr noundef nonnull @.str.65) #14
  br label %1695

1695:                                             ; preds = %1691, %1693, %1684, %1686
  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_enable_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 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

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i64 @s2n_send(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10

; Function Attrs: nounwind
declare i32 @setenv(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

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

declare i32 @s2n_config_disable_x509_verification(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_key_update_write(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_flush(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #12

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 #13

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 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #13 = { nofree nounwind willreturn memory(argmem: read) }
attributes #14 = { nounwind }
attributes #15 = { nounwind willreturn memory(none) }
attributes #16 = { cold nounwind }
attributes #17 = { noreturn nounwind }
attributes #18 = { nounwind allocsize(0) }

!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, !7, i64 220}
!16 = !{!"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, !17, i64 160, !18, i64 168, !18, 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, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, 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}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, 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, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, 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}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!7, !7, i64 0}
!43 = !{!16, !10, i64 232}
!44 = !{!16, !7, i64 219}
!45 = !{!16, !7, i64 218}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass