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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [74 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 [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [155 x i8], align 1
@__const.main.test_secret = external hidden unnamed_addr constant [48 x i8], align 16
@__const.main.supported_versions = external hidden unnamed_addr constant [4 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca [48 x i8], align 16
  %8 = alloca [4 x i8], align 1
  %9 = alloca ptr, align 8
  %10 = alloca %struct.s2n_result, align 4
  %11 = alloca i32, align 4
  %12 = alloca i64, align 8
  %13 = alloca i32, align 4
  %14 = alloca [48 x i8], align 16
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca [48 x i8], align 16
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca [48 x i8], align 16
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca [48 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 i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca [48 x i8], align 16
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca %struct.s2n_result, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i64, align 8
  %53 = alloca i8, align 1
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca ptr, align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca %struct.s2n_test_io_pair, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca [48 x i8], align 16
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca [48 x i8], align 16
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca %struct.s2n_result, align 4
  %78 = alloca %struct.s2n_result, align 4
  %79 = alloca %struct.s2n_result, align 4
  %80 = alloca %struct.s2n_result, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %1, align 4
  br label %85

85:                                               ; preds = %0
  br label %86

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

91:                                               ; preds = %86
  %92 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %93 = icmp eq i32 %92, -1
  br i1 %93, label %94, label %145

94:                                               ; preds = %91
  br label %95

95:                                               ; preds = %94
  br label %96

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

103:                                              ; preds = %96
  %104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %105 = call i32 @fileno(ptr noundef %104) #11
  %106 = call i32 @isatty(i32 noundef %105) #11
  %107 = icmp ne i32 %106, 0
  br i1 %107, label %108, label %125

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

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

142:                                              ; preds = %125, %108
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #11
  br label %143

143:                                              ; preds = %142
  call void @exit(i32 noundef 1) #13
  unreachable

144:                                              ; No predecessors!
  br label %145

145:                                              ; preds = %144, %91
  br label %146

146:                                              ; preds = %145
  br label %147

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

152:                                              ; preds = %147
  br label %153

153:                                              ; preds = %152
  br label %154

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

161:                                              ; preds = %154
  %162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %163 = call i32 @fileno(ptr noundef %162) #11
  %164 = call i32 @isatty(i32 noundef %163) #11
  %165 = icmp ne i32 %164, 0
  br i1 %165, label %166, label %183

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

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

200:                                              ; preds = %183, %166
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #11
  br label %201

201:                                              ; preds = %200
  call void @exit(i32 noundef 1) #13
  unreachable

202:                                              ; No predecessors!
  br label %203

203:                                              ; preds = %202, %147
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204
  br label %206

206:                                              ; preds = %205
  %207 = call i32 @s2n_init()
  %208 = icmp eq i32 %207, -1
  br i1 %208, label %209, label %260

209:                                              ; preds = %206
  br label %210

210:                                              ; preds = %209
  br label %211

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

218:                                              ; preds = %211
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @fileno(ptr noundef %219) #11
  %221 = call i32 @isatty(i32 noundef %220) #11
  %222 = icmp ne i32 %221, 0
  br i1 %222, label %223, label %240

223:                                              ; preds = %218
  %224 = load i32, ptr %4, align 4, !tbaa !5
  %225 = call ptr @__errno_location() #12
  store i32 %224, ptr %225, align 4, !tbaa !5
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = load i32, ptr @test_count, align 4, !tbaa !5
  %228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror(i32 noundef %229, ptr noundef @.str.4)
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror_debug(i32 noundef %232, ptr noundef @.str.4)
  %234 = call ptr @__errno_location() #12
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call ptr @strerror(i32 noundef %235) #11
  %237 = call ptr @__errno_location() #12
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %226, ptr noundef @.str.2, i32 noundef %227, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 24, ptr noundef %230, ptr noundef %233, ptr noundef %236, i32 noundef %238) #11
  br label %257

240:                                              ; preds = %218, %211
  %241 = load i32, ptr %4, align 4, !tbaa !5
  %242 = call ptr @__errno_location() #12
  store i32 %241, ptr %242, align 4, !tbaa !5
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror(i32 noundef %246, ptr noundef @.str.4)
  %248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror_debug(i32 noundef %249, ptr noundef @.str.4)
  %251 = call ptr @__errno_location() #12
  %252 = load i32, ptr %251, align 4, !tbaa !5
  %253 = call ptr @strerror(i32 noundef %252) #11
  %254 = call ptr @__errno_location() #12
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %243, ptr noundef @.str.5, i32 noundef %244, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 24, ptr noundef %247, ptr noundef %250, ptr noundef %253, i32 noundef %255) #11
  br label %257

257:                                              ; preds = %240, %223
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #11
  br label %258

258:                                              ; preds = %257
  call void @exit(i32 noundef 1) #13
  unreachable

259:                                              ; No predecessors!
  br label %260

260:                                              ; preds = %259, %206
  br label %261

261:                                              ; preds = %260
  br label %262

262:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #11
  store ptr null, ptr %5, align 8, !tbaa !9
  br label %263

263:                                              ; preds = %262
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = add nsw i32 %264, 1
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %5, ptr noundef @.str.8, ptr noundef @.str.9)
  %267 = icmp eq i32 %266, -1
  br i1 %267, label %268, label %321

268:                                              ; preds = %263
  br label %269

269:                                              ; preds = %268
  br label %270

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

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

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

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

316:                                              ; preds = %299, %282
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %317

317:                                              ; preds = %316
  br label %318

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

319:                                              ; No predecessors!
  br label %320

320:                                              ; preds = %319
  br label %321

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

322:                                              ; preds = %321
  br label %323

323:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 48, ptr %7) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const.main.test_secret, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %8, ptr align 1 @__const.main.supported_versions, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #11
  %324 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %324, ptr %9, align 8, !tbaa !9
  br label %325

325:                                              ; preds = %323
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr @test_count, align 4, !tbaa !5
  %328 = load ptr, ptr %9, align 8, !tbaa !9
  %329 = call i32 @s2n_skip_handshake(ptr noundef %328)
  %330 = getelementptr inbounds %struct.s2n_result, ptr %10, i32 0, i32 0
  store i32 %329, ptr %330, align 4
  %331 = getelementptr inbounds %struct.s2n_result, ptr %10, i32 0, i32 0
  %332 = load i32, ptr %331, align 4
  %333 = call zeroext i1 @s2n_result_is_ok(i32 %332)
  br i1 %333, label %387, label %334

334:                                              ; preds = %325
  br label %335

335:                                              ; preds = %334
  br label %336

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

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

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

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

382:                                              ; preds = %365, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %383

383:                                              ; preds = %382
  br label %384

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

385:                                              ; No predecessors!
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386, %325
  br label %388

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #11
  store i64 48, ptr %12, align 8, !tbaa !15
  %391 = load i64, ptr %12, align 8, !tbaa !15
  %392 = icmp ne i64 %391, 0
  br i1 %392, label %393, label %456

393:                                              ; preds = %390
  %394 = load ptr, ptr %9, align 8, !tbaa !9
  %395 = getelementptr inbounds %struct.s2n_connection, ptr %394, i32 0, i32 28
  %396 = getelementptr inbounds %struct.s2n_secrets, ptr %395, i32 0, i32 0
  %397 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %396, i32 0, i32 1
  %398 = getelementptr inbounds [48 x i8], ptr %397, i64 0, i64 0
  %399 = getelementptr inbounds [48 x i8], ptr %7, i64 0, i64 0
  %400 = load i64, ptr %12, align 8, !tbaa !15
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %398, ptr align 16 %399, i64 %400, i1 false)
  %401 = icmp eq ptr %398, null
  br i1 %401, label %402, label %455

402:                                              ; preds = %393
  br label %403

403:                                              ; preds = %402
  br label %404

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

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

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

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

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

451:                                              ; preds = %450
  br label %452

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

453:                                              ; No predecessors!
  br label %454

454:                                              ; preds = %453
  br label %455

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

456:                                              ; preds = %455, %390
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #11
  br label %457

457:                                              ; preds = %456
  br label %458

458:                                              ; preds = %457
  call void @llvm.lifetime.start.p0(i64 48, ptr %14) #11
  call void @llvm.memset.p0.i64(ptr align 16 %14, i8 0, i64 48, i1 false)
  br label %459

459:                                              ; preds = %458
  br label %460

460:                                              ; preds = %459
  br label %461

461:                                              ; preds = %460
  %462 = load i32, ptr @test_count, align 4, !tbaa !5
  %463 = add nsw i32 %462, 1
  store i32 %463, ptr @test_count, align 4, !tbaa !5
  %464 = load ptr, ptr %9, align 8, !tbaa !9
  %465 = call i32 @s2n_connection_get_master_secret(ptr noundef %464, ptr noundef null, i64 noundef 0)
  %466 = icmp eq i32 %465, -1
  br i1 %466, label %520, label %467

467:                                              ; preds = %461
  br label %468

468:                                              ; preds = %467
  br label %469

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

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

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

498:                                              ; preds = %476, %469
  %499 = load i32, ptr %15, align 4, !tbaa !5
  %500 = call ptr @__errno_location() #12
  store i32 %499, ptr %500, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %504 = load i32, ptr %503, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror(i32 noundef %504, ptr noundef @.str.4)
  %506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = call ptr @s2n_strerror_debug(i32 noundef %507, ptr noundef @.str.4)
  %509 = call ptr @__errno_location() #12
  %510 = load i32, ptr %509, align 4, !tbaa !5
  %511 = call ptr @strerror(i32 noundef %510) #11
  %512 = call ptr @__errno_location() #12
  %513 = load i32, ptr %512, align 4, !tbaa !5
  %514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %501, ptr noundef @.str.5, i32 noundef %502, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 57, ptr noundef %505, ptr noundef %508, ptr noundef %511, i32 noundef %513) #11
  br label %515

515:                                              ; preds = %498, %481
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %516

516:                                              ; preds = %515
  br label %517

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

518:                                              ; No predecessors!
  br label %519

519:                                              ; preds = %518
  br label %520

520:                                              ; preds = %519, %461
  br label %521

521:                                              ; preds = %520
  br label %522

522:                                              ; preds = %521
  br label %523

523:                                              ; preds = %522
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = add nsw i32 %524, 1
  store i32 %525, ptr @test_count, align 4, !tbaa !5
  %526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = icmp eq i32 %527, 402653193
  br i1 %528, label %582, label %529

529:                                              ; preds = %523
  br label %530

530:                                              ; preds = %529
  br label %531

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

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

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

560:                                              ; preds = %538, %531
  %561 = load i32, ptr %16, align 4, !tbaa !5
  %562 = call ptr @__errno_location() #12
  store i32 %561, ptr %562, align 4, !tbaa !5
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = call ptr @s2n_strerror(i32 noundef %566, ptr noundef @.str.4)
  %568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = call ptr @s2n_strerror_debug(i32 noundef %569, ptr noundef @.str.4)
  %571 = call ptr @__errno_location() #12
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @strerror(i32 noundef %572) #11
  %574 = call ptr @__errno_location() #12
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %563, ptr noundef @.str.5, i32 noundef %564, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 57, ptr noundef %567, ptr noundef %570, ptr noundef %573, i32 noundef %575) #11
  br label %577

577:                                              ; preds = %560, %543
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %578

578:                                              ; preds = %577
  br label %579

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

580:                                              ; No predecessors!
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581, %523
  br label %583

583:                                              ; preds = %582
  br label %584

584:                                              ; preds = %583
  br label %585

585:                                              ; preds = %584
  %586 = load i32, ptr @test_count, align 4, !tbaa !5
  %587 = add nsw i32 %586, 1
  store i32 %587, ptr @test_count, align 4, !tbaa !5
  %588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = call ptr @s2n_strerror_debug(i32 noundef %589, ptr noundef @.str.4)
  %591 = icmp eq ptr %590, null
  br i1 %591, label %592, label %645

592:                                              ; preds = %585
  br label %593

593:                                              ; preds = %592
  br label %594

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

601:                                              ; preds = %594
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = call i32 @fileno(ptr noundef %602) #11
  %604 = call i32 @isatty(i32 noundef %603) #11
  %605 = icmp ne i32 %604, 0
  br i1 %605, label %606, label %623

606:                                              ; preds = %601
  %607 = load i32, ptr %17, align 4, !tbaa !5
  %608 = call ptr @__errno_location() #12
  store i32 %607, ptr %608, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef @.str.4)
  %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_debug(i32 noundef %615, ptr noundef @.str.4)
  %617 = call ptr @__errno_location() #12
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @strerror(i32 noundef %618) #11
  %620 = call ptr @__errno_location() #12
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %609, ptr noundef @.str.2, i32 noundef %610, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 57, ptr noundef %613, ptr noundef %616, ptr noundef %619, i32 noundef %621) #11
  br label %640

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

640:                                              ; preds = %623, %606
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641
  call void @exit(i32 noundef 1) #13
  unreachable

643:                                              ; No predecessors!
  br label %644

644:                                              ; preds = %643
  br label %645

645:                                              ; preds = %644, %585
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  br label %649

649:                                              ; preds = %648
  br label %650

650:                                              ; preds = %649
  %651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %651, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %652 = call ptr @__errno_location() #12
  store i32 0, ptr %652, align 4, !tbaa !5
  br label %653

653:                                              ; preds = %650
  br label %654

654:                                              ; preds = %653
  br label %655

655:                                              ; preds = %654
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  br label %658

658:                                              ; preds = %657
  br label %659

659:                                              ; preds = %658
  %660 = load i32, ptr @test_count, align 4, !tbaa !5
  %661 = add nsw i32 %660, 1
  store i32 %661, ptr @test_count, align 4, !tbaa !5
  %662 = getelementptr inbounds [48 x i8], ptr %14, i64 0, i64 0
  %663 = call i32 @s2n_connection_get_master_secret(ptr noundef null, ptr noundef %662, i64 noundef 0)
  %664 = icmp eq i32 %663, -1
  br i1 %664, label %718, label %665

665:                                              ; preds = %659
  br label %666

666:                                              ; preds = %665
  br label %667

667:                                              ; preds = %666
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %668 = call ptr @__errno_location() #12
  %669 = load i32, ptr %668, align 4, !tbaa !5
  store i32 %669, ptr %18, align 4, !tbaa !5
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @s2n_print_stacktrace(ptr noundef %670)
  %672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %673 = trunc i8 %672 to i1
  br i1 %673, label %674, label %696

674:                                              ; preds = %667
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = call i32 @fileno(ptr noundef %675) #11
  %677 = call i32 @isatty(i32 noundef %676) #11
  %678 = icmp ne i32 %677, 0
  br i1 %678, label %679, label %696

679:                                              ; preds = %674
  %680 = load i32, ptr %18, align 4, !tbaa !5
  %681 = call ptr @__errno_location() #12
  store i32 %680, ptr %681, align 4, !tbaa !5
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = load i32, ptr @test_count, align 4, !tbaa !5
  %684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %685 = load i32, ptr %684, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror(i32 noundef %685, ptr noundef @.str.4)
  %687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call ptr @s2n_strerror_debug(i32 noundef %688, ptr noundef @.str.4)
  %690 = call ptr @__errno_location() #12
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call ptr @strerror(i32 noundef %691) #11
  %693 = call ptr @__errno_location() #12
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %682, ptr noundef @.str.2, i32 noundef %683, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 60, ptr noundef %686, ptr noundef %689, ptr noundef %692, i32 noundef %694) #11
  br label %713

696:                                              ; preds = %674, %667
  %697 = load i32, ptr %18, align 4, !tbaa !5
  %698 = call ptr @__errno_location() #12
  store i32 %697, ptr %698, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = load i32, ptr @test_count, align 4, !tbaa !5
  %701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror(i32 noundef %702, ptr noundef @.str.4)
  %704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror_debug(i32 noundef %705, ptr noundef @.str.4)
  %707 = call ptr @__errno_location() #12
  %708 = load i32, ptr %707, align 4, !tbaa !5
  %709 = call ptr @strerror(i32 noundef %708) #11
  %710 = call ptr @__errno_location() #12
  %711 = load i32, ptr %710, align 4, !tbaa !5
  %712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %699, ptr noundef @.str.5, i32 noundef %700, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 60, ptr noundef %703, ptr noundef %706, ptr noundef %709, i32 noundef %711) #11
  br label %713

713:                                              ; preds = %696, %679
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %714

714:                                              ; preds = %713
  br label %715

715:                                              ; preds = %714
  call void @exit(i32 noundef 1) #13
  unreachable

716:                                              ; No predecessors!
  br label %717

717:                                              ; preds = %716
  br label %718

718:                                              ; preds = %717, %659
  br label %719

719:                                              ; preds = %718
  br label %720

720:                                              ; preds = %719
  br label %721

721:                                              ; preds = %720
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = add nsw i32 %722, 1
  store i32 %723, 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 = icmp eq i32 %725, 402653193
  br i1 %726, label %780, label %727

727:                                              ; preds = %721
  br label %728

728:                                              ; preds = %727
  br label %729

729:                                              ; preds = %728
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %730 = call ptr @__errno_location() #12
  %731 = load i32, ptr %730, align 4, !tbaa !5
  store i32 %731, ptr %19, align 4, !tbaa !5
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = call i32 @s2n_print_stacktrace(ptr noundef %732)
  %734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %735 = trunc i8 %734 to i1
  br i1 %735, label %736, label %758

736:                                              ; preds = %729
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = call i32 @fileno(ptr noundef %737) #11
  %739 = call i32 @isatty(i32 noundef %738) #11
  %740 = icmp ne i32 %739, 0
  br i1 %740, label %741, label %758

741:                                              ; preds = %736
  %742 = load i32, ptr %19, align 4, !tbaa !5
  %743 = call ptr @__errno_location() #12
  store i32 %742, ptr %743, align 4, !tbaa !5
  %744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %747 = load i32, ptr %746, align 4, !tbaa !5
  %748 = call ptr @s2n_strerror(i32 noundef %747, ptr noundef @.str.4)
  %749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror_debug(i32 noundef %750, ptr noundef @.str.4)
  %752 = call ptr @__errno_location() #12
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @strerror(i32 noundef %753) #11
  %755 = call ptr @__errno_location() #12
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %744, ptr noundef @.str.2, i32 noundef %745, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 60, ptr noundef %748, ptr noundef %751, ptr noundef %754, i32 noundef %756) #11
  br label %775

758:                                              ; preds = %736, %729
  %759 = load i32, ptr %19, align 4, !tbaa !5
  %760 = call ptr @__errno_location() #12
  store i32 %759, ptr %760, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror(i32 noundef %764, ptr noundef @.str.4)
  %766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef @.str.4)
  %769 = call ptr @__errno_location() #12
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call ptr @strerror(i32 noundef %770) #11
  %772 = call ptr @__errno_location() #12
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef @.str.5, i32 noundef %762, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 60, ptr noundef %765, ptr noundef %768, ptr noundef %771, i32 noundef %773) #11
  br label %775

775:                                              ; preds = %758, %741
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %776

776:                                              ; preds = %775
  br label %777

777:                                              ; preds = %776
  call void @exit(i32 noundef 1) #13
  unreachable

778:                                              ; No predecessors!
  br label %779

779:                                              ; preds = %778
  br label %780

780:                                              ; preds = %779, %721
  br label %781

781:                                              ; preds = %780
  br label %782

782:                                              ; preds = %781
  br label %783

783:                                              ; preds = %782
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr @test_count, align 4, !tbaa !5
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror_debug(i32 noundef %787, ptr noundef @.str.4)
  %789 = icmp eq ptr %788, null
  br i1 %789, label %790, label %843

790:                                              ; preds = %783
  br label %791

791:                                              ; preds = %790
  br label %792

792:                                              ; preds = %791
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %793 = call ptr @__errno_location() #12
  %794 = load i32, ptr %793, align 4, !tbaa !5
  store i32 %794, ptr %20, align 4, !tbaa !5
  %795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %796 = call i32 @s2n_print_stacktrace(ptr noundef %795)
  %797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %798 = trunc i8 %797 to i1
  br i1 %798, label %799, label %821

799:                                              ; preds = %792
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = call i32 @fileno(ptr noundef %800) #11
  %802 = call i32 @isatty(i32 noundef %801) #11
  %803 = icmp ne i32 %802, 0
  br i1 %803, label %804, label %821

804:                                              ; preds = %799
  %805 = load i32, ptr %20, align 4, !tbaa !5
  %806 = call ptr @__errno_location() #12
  store i32 %805, ptr %806, align 4, !tbaa !5
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror(i32 noundef %810, ptr noundef @.str.4)
  %812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror_debug(i32 noundef %813, ptr noundef @.str.4)
  %815 = call ptr @__errno_location() #12
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call ptr @strerror(i32 noundef %816) #11
  %818 = call ptr @__errno_location() #12
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %807, ptr noundef @.str.2, i32 noundef %808, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 60, ptr noundef %811, ptr noundef %814, ptr noundef %817, i32 noundef %819) #11
  br label %838

821:                                              ; preds = %799, %792
  %822 = load i32, ptr %20, align 4, !tbaa !5
  %823 = call ptr @__errno_location() #12
  store i32 %822, ptr %823, align 4, !tbaa !5
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror(i32 noundef %827, ptr noundef @.str.4)
  %829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = call ptr @s2n_strerror_debug(i32 noundef %830, ptr noundef @.str.4)
  %832 = call ptr @__errno_location() #12
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = call ptr @strerror(i32 noundef %833) #11
  %835 = call ptr @__errno_location() #12
  %836 = load i32, ptr %835, align 4, !tbaa !5
  %837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %824, ptr noundef @.str.5, i32 noundef %825, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 60, ptr noundef %828, ptr noundef %831, ptr noundef %834, i32 noundef %836) #11
  br label %838

838:                                              ; preds = %821, %804
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %839

839:                                              ; preds = %838
  br label %840

840:                                              ; preds = %839
  call void @exit(i32 noundef 1) #13
  unreachable

841:                                              ; No predecessors!
  br label %842

842:                                              ; preds = %841
  br label %843

843:                                              ; preds = %842, %783
  br label %844

844:                                              ; preds = %843
  br label %845

845:                                              ; preds = %844
  br label %846

846:                                              ; preds = %845
  br label %847

847:                                              ; preds = %846
  br label %848

848:                                              ; preds = %847
  %849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %849, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %850 = call ptr @__errno_location() #12
  store i32 0, ptr %850, align 4, !tbaa !5
  br label %851

851:                                              ; preds = %848
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852
  br label %854

854:                                              ; preds = %853
  call void @llvm.lifetime.end.p0(i64 48, ptr %14) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr %21) #11
  call void @llvm.memset.p0.i64(ptr align 16 %21, i8 0, i64 48, i1 false)
  br label %855

855:                                              ; preds = %854
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = add nsw i32 %856, 1
  store i32 %857, ptr @test_count, align 4, !tbaa !5
  %858 = load ptr, ptr %9, align 8, !tbaa !9
  %859 = getelementptr inbounds [48 x i8], ptr %21, i64 0, i64 0
  %860 = call i32 @s2n_connection_get_master_secret(ptr noundef %858, ptr noundef %859, i64 noundef 48)
  %861 = icmp eq i32 %860, -1
  br i1 %861, label %862, label %915

862:                                              ; preds = %855
  br label %863

863:                                              ; preds = %862
  br label %864

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

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

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

893:                                              ; preds = %871, %864
  %894 = load i32, ptr %22, align 4, !tbaa !5
  %895 = call ptr @__errno_location() #12
  store i32 %894, ptr %895, align 4, !tbaa !5
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror(i32 noundef %899, ptr noundef @.str.4)
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror_debug(i32 noundef %902, ptr noundef @.str.4)
  %904 = call ptr @__errno_location() #12
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @strerror(i32 noundef %905) #11
  %907 = call ptr @__errno_location() #12
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %896, ptr noundef @.str.5, i32 noundef %897, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 66, ptr noundef %900, ptr noundef %903, ptr noundef %906, i32 noundef %908) #11
  br label %910

910:                                              ; preds = %893, %876
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %911

911:                                              ; preds = %910
  br label %912

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

913:                                              ; No predecessors!
  br label %914

914:                                              ; preds = %913
  br label %915

915:                                              ; preds = %914, %855
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  br label %918

918:                                              ; preds = %917
  br label %919

919:                                              ; preds = %918
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr @test_count, align 4, !tbaa !5
  %922 = getelementptr inbounds [48 x i8], ptr %7, i64 0, i64 0
  %923 = getelementptr inbounds [48 x i8], ptr %21, i64 0, i64 0
  %924 = call i32 @memcmp(ptr noundef %922, ptr noundef %923, i64 noundef 48) #14
  %925 = icmp eq i32 %924, 0
  br i1 %925, label %979, label %926

926:                                              ; preds = %919
  br label %927

927:                                              ; preds = %926
  br label %928

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

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

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

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

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

975:                                              ; preds = %974
  br label %976

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

977:                                              ; No predecessors!
  br label %978

978:                                              ; preds = %977
  br label %979

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

980:                                              ; preds = %979
  br label %981

981:                                              ; preds = %980
  br label %982

982:                                              ; preds = %981
  br label %983

983:                                              ; preds = %982
  call void @llvm.lifetime.end.p0(i64 48, ptr %21) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr %24) #11
  call void @llvm.memset.p0.i64(ptr align 16 %24, i8 0, i64 48, i1 false)
  %984 = load ptr, ptr %9, align 8, !tbaa !9
  %985 = getelementptr inbounds %struct.s2n_connection, ptr %984, i32 0, i32 23
  store i8 34, ptr %985, align 4, !tbaa !17
  br label %986

986:                                              ; preds = %983
  br label %987

987:                                              ; preds = %986
  br label %988

988:                                              ; preds = %987
  %989 = load i32, ptr @test_count, align 4, !tbaa !5
  %990 = add nsw i32 %989, 1
  store i32 %990, ptr @test_count, align 4, !tbaa !5
  %991 = load ptr, ptr %9, align 8, !tbaa !9
  %992 = getelementptr inbounds [48 x i8], ptr %24, i64 0, i64 0
  %993 = call i32 @s2n_connection_get_master_secret(ptr noundef %991, ptr noundef %992, i64 noundef 48)
  %994 = icmp eq i32 %993, -1
  br i1 %994, label %1048, label %995

995:                                              ; preds = %988
  br label %996

996:                                              ; preds = %995
  br label %997

997:                                              ; preds = %996
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %998 = call ptr @__errno_location() #12
  %999 = load i32, ptr %998, align 4, !tbaa !5
  store i32 %999, ptr %25, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = call i32 @s2n_print_stacktrace(ptr noundef %1000)
  %1002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1003 = trunc i8 %1002 to i1
  br i1 %1003, label %1004, label %1026

1004:                                             ; preds = %997
  %1005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1006 = call i32 @fileno(ptr noundef %1005) #11
  %1007 = call i32 @isatty(i32 noundef %1006) #11
  %1008 = icmp ne i32 %1007, 0
  br i1 %1008, label %1009, label %1026

1009:                                             ; preds = %1004
  %1010 = load i32, ptr %25, align 4, !tbaa !5
  %1011 = call ptr @__errno_location() #12
  store i32 %1010, ptr %1011, align 4, !tbaa !5
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = load i32, ptr @test_count, align 4, !tbaa !5
  %1014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1015 = load i32, ptr %1014, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror(i32 noundef %1015, ptr noundef @.str.4)
  %1017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror_debug(i32 noundef %1018, ptr noundef @.str.4)
  %1020 = call ptr @__errno_location() #12
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = call ptr @strerror(i32 noundef %1021) #11
  %1023 = call ptr @__errno_location() #12
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1012, ptr noundef @.str.2, i32 noundef %1013, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1016, ptr noundef %1019, ptr noundef %1022, i32 noundef %1024) #11
  br label %1043

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

1043:                                             ; preds = %1026, %1009
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %1044

1044:                                             ; preds = %1043
  br label %1045

1045:                                             ; preds = %1044
  call void @exit(i32 noundef 1) #13
  unreachable

1046:                                             ; No predecessors!
  br label %1047

1047:                                             ; preds = %1046
  br label %1048

1048:                                             ; preds = %1047, %988
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050
  %1052 = load i32, ptr @test_count, align 4, !tbaa !5
  %1053 = add nsw i32 %1052, 1
  store i32 %1053, ptr @test_count, align 4, !tbaa !5
  %1054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = icmp eq i32 %1055, 469762112
  br i1 %1056, label %1110, label %1057

1057:                                             ; preds = %1051
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

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

1066:                                             ; preds = %1059
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = call i32 @fileno(ptr noundef %1067) #11
  %1069 = call i32 @isatty(i32 noundef %1068) #11
  %1070 = icmp ne i32 %1069, 0
  br i1 %1070, label %1071, label %1088

1071:                                             ; preds = %1066
  %1072 = load i32, ptr %26, align 4, !tbaa !5
  %1073 = call ptr @__errno_location() #12
  store i32 %1072, ptr %1073, align 4, !tbaa !5
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = load i32, ptr @test_count, align 4, !tbaa !5
  %1076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror(i32 noundef %1077, ptr noundef @.str.4)
  %1079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror_debug(i32 noundef %1080, ptr noundef @.str.4)
  %1082 = call ptr @__errno_location() #12
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = call ptr @strerror(i32 noundef %1083) #11
  %1085 = call ptr @__errno_location() #12
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1074, ptr noundef @.str.2, i32 noundef %1075, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1078, ptr noundef %1081, ptr noundef %1084, i32 noundef %1086) #11
  br label %1105

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

1105:                                             ; preds = %1088, %1071
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106
  call void @exit(i32 noundef 1) #13
  unreachable

1108:                                             ; No predecessors!
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

1110:                                             ; preds = %1109, %1051
  br label %1111

1111:                                             ; preds = %1110
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = add nsw i32 %1114, 1
  store i32 %1115, ptr @test_count, align 4, !tbaa !5
  %1116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror_debug(i32 noundef %1117, ptr noundef @.str.4)
  %1119 = icmp eq ptr %1118, null
  br i1 %1119, label %1120, label %1173

1120:                                             ; preds = %1113
  br label %1121

1121:                                             ; preds = %1120
  br label %1122

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

1129:                                             ; preds = %1122
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @fileno(ptr noundef %1130) #11
  %1132 = call i32 @isatty(i32 noundef %1131) #11
  %1133 = icmp ne i32 %1132, 0
  br i1 %1133, label %1134, label %1151

1134:                                             ; preds = %1129
  %1135 = load i32, ptr %27, align 4, !tbaa !5
  %1136 = call ptr @__errno_location() #12
  store i32 %1135, ptr %1136, align 4, !tbaa !5
  %1137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1138 = load i32, ptr @test_count, align 4, !tbaa !5
  %1139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror(i32 noundef %1140, ptr noundef @.str.4)
  %1142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror_debug(i32 noundef %1143, ptr noundef @.str.4)
  %1145 = call ptr @__errno_location() #12
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call ptr @strerror(i32 noundef %1146) #11
  %1148 = call ptr @__errno_location() #12
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1137, ptr noundef @.str.2, i32 noundef %1138, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1141, ptr noundef %1144, ptr noundef %1147, i32 noundef %1149) #11
  br label %1168

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

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

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169
  call void @exit(i32 noundef 1) #13
  unreachable

1171:                                             ; No predecessors!
  br label %1172

1172:                                             ; preds = %1171
  br label %1173

1173:                                             ; preds = %1172, %1113
  br label %1174

1174:                                             ; preds = %1173
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

1178:                                             ; preds = %1177
  %1179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1179, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1180 = call ptr @__errno_location() #12
  store i32 0, ptr %1180, align 4, !tbaa !5
  br label %1181

1181:                                             ; preds = %1178
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

1183:                                             ; preds = %1182
  br label %1184

1184:                                             ; preds = %1183
  %1185 = load ptr, ptr %9, align 8, !tbaa !9
  %1186 = getelementptr inbounds %struct.s2n_connection, ptr %1185, i32 0, i32 23
  store i8 33, ptr %1186, align 4, !tbaa !17
  br label %1187

1187:                                             ; preds = %1184
  %1188 = load i32, ptr @test_count, align 4, !tbaa !5
  %1189 = add nsw i32 %1188, 1
  store i32 %1189, ptr @test_count, align 4, !tbaa !5
  %1190 = load ptr, ptr %9, align 8, !tbaa !9
  %1191 = getelementptr inbounds [48 x i8], ptr %24, i64 0, i64 0
  %1192 = call i32 @s2n_connection_get_master_secret(ptr noundef %1190, ptr noundef %1191, i64 noundef 48)
  %1193 = icmp eq i32 %1192, -1
  br i1 %1193, label %1194, label %1247

1194:                                             ; preds = %1187
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

1196:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %1197 = call ptr @__errno_location() #12
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  store i32 %1198, ptr %28, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = call i32 @s2n_print_stacktrace(ptr noundef %1199)
  %1201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1202 = trunc i8 %1201 to i1
  br i1 %1202, label %1203, label %1225

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @fileno(ptr noundef %1204) #11
  %1206 = call i32 @isatty(i32 noundef %1205) #11
  %1207 = icmp ne i32 %1206, 0
  br i1 %1207, label %1208, label %1225

1208:                                             ; preds = %1203
  %1209 = load i32, ptr %28, align 4, !tbaa !5
  %1210 = call ptr @__errno_location() #12
  store i32 %1209, ptr %1210, align 4, !tbaa !5
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = load i32, ptr @test_count, align 4, !tbaa !5
  %1213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef @.str.4)
  %1216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror_debug(i32 noundef %1217, ptr noundef @.str.4)
  %1219 = call ptr @__errno_location() #12
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @strerror(i32 noundef %1220) #11
  %1222 = call ptr @__errno_location() #12
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1211, ptr noundef @.str.2, i32 noundef %1212, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1215, ptr noundef %1218, ptr noundef %1221, i32 noundef %1223) #11
  br label %1242

1225:                                             ; preds = %1203, %1196
  %1226 = load i32, ptr %28, align 4, !tbaa !5
  %1227 = call ptr @__errno_location() #12
  store i32 %1226, ptr %1227, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror(i32 noundef %1231, ptr noundef @.str.4)
  %1233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror_debug(i32 noundef %1234, ptr noundef @.str.4)
  %1236 = call ptr @__errno_location() #12
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @strerror(i32 noundef %1237) #11
  %1239 = call ptr @__errno_location() #12
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef @.str.5, i32 noundef %1229, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1232, ptr noundef %1235, ptr noundef %1238, i32 noundef %1240) #11
  br label %1242

1242:                                             ; preds = %1225, %1208
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

1244:                                             ; preds = %1243
  call void @exit(i32 noundef 1) #13
  unreachable

1245:                                             ; No predecessors!
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246, %1187
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  br label %1250

1250:                                             ; preds = %1249
  br label %1251

1251:                                             ; preds = %1250
  %1252 = load i32, ptr @test_count, align 4, !tbaa !5
  %1253 = add nsw i32 %1252, 1
  store i32 %1253, ptr @test_count, align 4, !tbaa !5
  %1254 = getelementptr inbounds [48 x i8], ptr %7, i64 0, i64 0
  %1255 = getelementptr inbounds [48 x i8], ptr %24, i64 0, i64 0
  %1256 = call i32 @memcmp(ptr noundef %1254, ptr noundef %1255, i64 noundef 48) #14
  %1257 = icmp eq i32 %1256, 0
  br i1 %1257, label %1311, label %1258

1258:                                             ; preds = %1251
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

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

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

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

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

1306:                                             ; preds = %1289, %1272
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1307

1307:                                             ; preds = %1306
  br label %1308

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

1309:                                             ; No predecessors!
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310, %1251
  br label %1312

1312:                                             ; preds = %1311
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314
  call void @llvm.lifetime.end.p0(i64 48, ptr %24) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr %30) #11
  call void @llvm.memset.p0.i64(ptr align 16 %30, i8 0, i64 48, i1 false)
  br label %1316

1316:                                             ; preds = %1315
  br label %1317

1317:                                             ; preds = %1316
  br label %1318

1318:                                             ; preds = %1317
  %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 = load ptr, ptr %9, align 8, !tbaa !9
  %1322 = getelementptr inbounds [48 x i8], ptr %30, i64 0, i64 0
  %1323 = call i32 @s2n_connection_get_master_secret(ptr noundef %1321, ptr noundef %1322, i64 noundef 0)
  %1324 = icmp eq i32 %1323, -1
  br i1 %1324, label %1378, label %1325

1325:                                             ; preds = %1318
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

1327:                                             ; preds = %1326
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  %1328 = call ptr @__errno_location() #12
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  store i32 %1329, ptr %31, align 4, !tbaa !5
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @s2n_print_stacktrace(ptr noundef %1330)
  %1332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1333 = trunc i8 %1332 to i1
  br i1 %1333, label %1334, label %1356

1334:                                             ; preds = %1327
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = call i32 @fileno(ptr noundef %1335) #11
  %1337 = call i32 @isatty(i32 noundef %1336) #11
  %1338 = icmp ne i32 %1337, 0
  br i1 %1338, label %1339, label %1356

1339:                                             ; preds = %1334
  %1340 = load i32, ptr %31, align 4, !tbaa !5
  %1341 = call ptr @__errno_location() #12
  store i32 %1340, ptr %1341, align 4, !tbaa !5
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = load i32, ptr @test_count, align 4, !tbaa !5
  %1344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror(i32 noundef %1345, ptr noundef @.str.4)
  %1347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror_debug(i32 noundef %1348, ptr noundef @.str.4)
  %1350 = call ptr @__errno_location() #12
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call ptr @strerror(i32 noundef %1351) #11
  %1353 = call ptr @__errno_location() #12
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1342, ptr noundef @.str.2, i32 noundef %1343, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1346, ptr noundef %1349, ptr noundef %1352, i32 noundef %1354) #11
  br label %1373

1356:                                             ; preds = %1334, %1327
  %1357 = load i32, ptr %31, align 4, !tbaa !5
  %1358 = call ptr @__errno_location() #12
  store i32 %1357, ptr %1358, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @s2n_strerror(i32 noundef %1362, ptr noundef @.str.4)
  %1364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror_debug(i32 noundef %1365, ptr noundef @.str.4)
  %1367 = call ptr @__errno_location() #12
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @strerror(i32 noundef %1368) #11
  %1370 = call ptr @__errno_location() #12
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1359, ptr noundef @.str.5, i32 noundef %1360, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1363, ptr noundef %1366, ptr noundef %1369, i32 noundef %1371) #11
  br label %1373

1373:                                             ; preds = %1356, %1339
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374
  call void @exit(i32 noundef 1) #13
  unreachable

1376:                                             ; No predecessors!
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

1378:                                             ; preds = %1377, %1318
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

1380:                                             ; preds = %1379
  br label %1381

1381:                                             ; preds = %1380
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = add nsw i32 %1382, 1
  store i32 %1383, ptr @test_count, align 4, !tbaa !5
  %1384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = icmp eq i32 %1385, 469762120
  br i1 %1386, label %1440, label %1387

1387:                                             ; preds = %1381
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

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

1396:                                             ; preds = %1389
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = call i32 @fileno(ptr noundef %1397) #11
  %1399 = call i32 @isatty(i32 noundef %1398) #11
  %1400 = icmp ne i32 %1399, 0
  br i1 %1400, label %1401, label %1418

1401:                                             ; preds = %1396
  %1402 = load i32, ptr %32, align 4, !tbaa !5
  %1403 = call ptr @__errno_location() #12
  store i32 %1402, ptr %1403, align 4, !tbaa !5
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror(i32 noundef %1407, ptr noundef @.str.4)
  %1409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call ptr @s2n_strerror_debug(i32 noundef %1410, ptr noundef @.str.4)
  %1412 = call ptr @__errno_location() #12
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call ptr @strerror(i32 noundef %1413) #11
  %1415 = call ptr @__errno_location() #12
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  %1417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1404, ptr noundef @.str.2, i32 noundef %1405, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1408, ptr noundef %1411, ptr noundef %1414, i32 noundef %1416) #11
  br label %1435

1418:                                             ; preds = %1396, %1389
  %1419 = load i32, ptr %32, align 4, !tbaa !5
  %1420 = call ptr @__errno_location() #12
  store i32 %1419, ptr %1420, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror_debug(i32 noundef %1427, ptr noundef @.str.4)
  %1429 = call ptr @__errno_location() #12
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @strerror(i32 noundef %1430) #11
  %1432 = call ptr @__errno_location() #12
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1421, ptr noundef @.str.5, i32 noundef %1422, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1425, ptr noundef %1428, ptr noundef %1431, i32 noundef %1433) #11
  br label %1435

1435:                                             ; preds = %1418, %1401
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

1437:                                             ; preds = %1436
  call void @exit(i32 noundef 1) #13
  unreachable

1438:                                             ; No predecessors!
  br label %1439

1439:                                             ; preds = %1438
  br label %1440

1440:                                             ; preds = %1439, %1381
  br label %1441

1441:                                             ; preds = %1440
  br label %1442

1442:                                             ; preds = %1441
  br label %1443

1443:                                             ; preds = %1442
  %1444 = load i32, ptr @test_count, align 4, !tbaa !5
  %1445 = add nsw i32 %1444, 1
  store i32 %1445, ptr @test_count, align 4, !tbaa !5
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror_debug(i32 noundef %1447, ptr noundef @.str.4)
  %1449 = icmp eq ptr %1448, null
  br i1 %1449, label %1450, label %1503

1450:                                             ; preds = %1443
  br label %1451

1451:                                             ; preds = %1450
  br label %1452

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

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

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

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

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

1499:                                             ; preds = %1498
  br label %1500

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

1501:                                             ; No predecessors!
  br label %1502

1502:                                             ; preds = %1501
  br label %1503

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

1504:                                             ; preds = %1503
  br label %1505

1505:                                             ; preds = %1504
  br label %1506

1506:                                             ; preds = %1505
  br label %1507

1507:                                             ; preds = %1506
  br label %1508

1508:                                             ; preds = %1507
  %1509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1509, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1510 = call ptr @__errno_location() #12
  store i32 0, ptr %1510, align 4, !tbaa !5
  br label %1511

1511:                                             ; preds = %1508
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

1514:                                             ; preds = %1513
  br label %1515

1515:                                             ; preds = %1514
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

1517:                                             ; preds = %1516
  %1518 = load i32, ptr @test_count, align 4, !tbaa !5
  %1519 = add nsw i32 %1518, 1
  store i32 %1519, ptr @test_count, align 4, !tbaa !5
  %1520 = load ptr, ptr %9, align 8, !tbaa !9
  %1521 = getelementptr inbounds [48 x i8], ptr %30, i64 0, i64 0
  %1522 = call i32 @s2n_connection_get_master_secret(ptr noundef %1520, ptr noundef %1521, i64 noundef 1)
  %1523 = icmp eq i32 %1522, -1
  br i1 %1523, label %1577, label %1524

1524:                                             ; preds = %1517
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1527 = call ptr @__errno_location() #12
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  store i32 %1528, ptr %34, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = call i32 @s2n_print_stacktrace(ptr noundef %1529)
  %1531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1532 = trunc i8 %1531 to i1
  br i1 %1532, label %1533, label %1555

1533:                                             ; preds = %1526
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @fileno(ptr noundef %1534) #11
  %1536 = call i32 @isatty(i32 noundef %1535) #11
  %1537 = icmp ne i32 %1536, 0
  br i1 %1537, label %1538, label %1555

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

1555:                                             ; preds = %1533, %1526
  %1556 = load i32, ptr %34, align 4, !tbaa !5
  %1557 = call ptr @__errno_location() #12
  store i32 %1556, ptr %1557, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = load i32, ptr @test_count, align 4, !tbaa !5
  %1560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call ptr @s2n_strerror(i32 noundef %1561, ptr noundef @.str.4)
  %1563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = call ptr @s2n_strerror_debug(i32 noundef %1564, ptr noundef @.str.4)
  %1566 = call ptr @__errno_location() #12
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call ptr @strerror(i32 noundef %1567) #11
  %1569 = call ptr @__errno_location() #12
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1558, ptr noundef @.str.5, i32 noundef %1559, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1562, ptr noundef %1565, ptr noundef %1568, i32 noundef %1570) #11
  br label %1572

1572:                                             ; preds = %1555, %1538
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1573

1573:                                             ; preds = %1572
  br label %1574

1574:                                             ; preds = %1573
  call void @exit(i32 noundef 1) #13
  unreachable

1575:                                             ; No predecessors!
  br label %1576

1576:                                             ; preds = %1575
  br label %1577

1577:                                             ; preds = %1576, %1517
  br label %1578

1578:                                             ; preds = %1577
  br label %1579

1579:                                             ; preds = %1578
  br label %1580

1580:                                             ; preds = %1579
  %1581 = load i32, ptr @test_count, align 4, !tbaa !5
  %1582 = add nsw i32 %1581, 1
  store i32 %1582, ptr @test_count, align 4, !tbaa !5
  %1583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  %1585 = icmp eq i32 %1584, 469762120
  br i1 %1585, label %1639, label %1586

1586:                                             ; preds = %1580
  br label %1587

1587:                                             ; preds = %1586
  br label %1588

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

1595:                                             ; preds = %1588
  %1596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1597 = call i32 @fileno(ptr noundef %1596) #11
  %1598 = call i32 @isatty(i32 noundef %1597) #11
  %1599 = icmp ne i32 %1598, 0
  br i1 %1599, label %1600, label %1617

1600:                                             ; preds = %1595
  %1601 = load i32, ptr %35, align 4, !tbaa !5
  %1602 = call ptr @__errno_location() #12
  store i32 %1601, ptr %1602, align 4, !tbaa !5
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror(i32 noundef %1606, ptr noundef @.str.4)
  %1608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call ptr @s2n_strerror_debug(i32 noundef %1609, ptr noundef @.str.4)
  %1611 = call ptr @__errno_location() #12
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call ptr @strerror(i32 noundef %1612) #11
  %1614 = call ptr @__errno_location() #12
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  %1616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1603, ptr noundef @.str.2, i32 noundef %1604, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1607, ptr noundef %1610, ptr noundef %1613, i32 noundef %1615) #11
  br label %1634

1617:                                             ; preds = %1595, %1588
  %1618 = load i32, ptr %35, align 4, !tbaa !5
  %1619 = call ptr @__errno_location() #12
  store i32 %1618, ptr %1619, align 4, !tbaa !5
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = load i32, ptr @test_count, align 4, !tbaa !5
  %1622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror(i32 noundef %1623, ptr noundef @.str.4)
  %1625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call ptr @s2n_strerror_debug(i32 noundef %1626, ptr noundef @.str.4)
  %1628 = call ptr @__errno_location() #12
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = call ptr @strerror(i32 noundef %1629) #11
  %1631 = call ptr @__errno_location() #12
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1620, ptr noundef @.str.5, i32 noundef %1621, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1624, ptr noundef %1627, ptr noundef %1630, i32 noundef %1632) #11
  br label %1634

1634:                                             ; preds = %1617, %1600
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635
  call void @exit(i32 noundef 1) #13
  unreachable

1637:                                             ; No predecessors!
  br label %1638

1638:                                             ; preds = %1637
  br label %1639

1639:                                             ; preds = %1638, %1580
  br label %1640

1640:                                             ; preds = %1639
  br label %1641

1641:                                             ; preds = %1640
  br label %1642

1642:                                             ; preds = %1641
  %1643 = load i32, ptr @test_count, align 4, !tbaa !5
  %1644 = add nsw i32 %1643, 1
  store i32 %1644, ptr @test_count, align 4, !tbaa !5
  %1645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = call ptr @s2n_strerror_debug(i32 noundef %1646, ptr noundef @.str.4)
  %1648 = icmp eq ptr %1647, null
  br i1 %1648, label %1649, label %1702

1649:                                             ; preds = %1642
  br label %1650

1650:                                             ; preds = %1649
  br label %1651

1651:                                             ; preds = %1650
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1652 = call ptr @__errno_location() #12
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  store i32 %1653, ptr %36, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @s2n_print_stacktrace(ptr noundef %1654)
  %1656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1657 = trunc i8 %1656 to i1
  br i1 %1657, label %1658, label %1680

1658:                                             ; preds = %1651
  %1659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1660 = call i32 @fileno(ptr noundef %1659) #11
  %1661 = call i32 @isatty(i32 noundef %1660) #11
  %1662 = icmp ne i32 %1661, 0
  br i1 %1662, label %1663, label %1680

1663:                                             ; preds = %1658
  %1664 = load i32, ptr %36, align 4, !tbaa !5
  %1665 = call ptr @__errno_location() #12
  store i32 %1664, ptr %1665, align 4, !tbaa !5
  %1666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %1670 = call ptr @s2n_strerror(i32 noundef %1669, ptr noundef @.str.4)
  %1671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1672 = load i32, ptr %1671, align 4, !tbaa !5
  %1673 = call ptr @s2n_strerror_debug(i32 noundef %1672, ptr noundef @.str.4)
  %1674 = call ptr @__errno_location() #12
  %1675 = load i32, ptr %1674, align 4, !tbaa !5
  %1676 = call ptr @strerror(i32 noundef %1675) #11
  %1677 = call ptr @__errno_location() #12
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  %1679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1666, ptr noundef @.str.2, i32 noundef %1667, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1670, ptr noundef %1673, ptr noundef %1676, i32 noundef %1678) #11
  br label %1697

1680:                                             ; preds = %1658, %1651
  %1681 = load i32, ptr %36, align 4, !tbaa !5
  %1682 = call ptr @__errno_location() #12
  store i32 %1681, ptr %1682, align 4, !tbaa !5
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  %1687 = call ptr @s2n_strerror(i32 noundef %1686, ptr noundef @.str.4)
  %1688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  %1690 = call ptr @s2n_strerror_debug(i32 noundef %1689, ptr noundef @.str.4)
  %1691 = call ptr @__errno_location() #12
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = call ptr @strerror(i32 noundef %1692) #11
  %1694 = call ptr @__errno_location() #12
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1683, ptr noundef @.str.5, i32 noundef %1684, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1687, ptr noundef %1690, ptr noundef %1693, i32 noundef %1695) #11
  br label %1697

1697:                                             ; preds = %1680, %1663
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1698

1698:                                             ; preds = %1697
  br label %1699

1699:                                             ; preds = %1698
  call void @exit(i32 noundef 1) #13
  unreachable

1700:                                             ; No predecessors!
  br label %1701

1701:                                             ; preds = %1700
  br label %1702

1702:                                             ; preds = %1701, %1642
  br label %1703

1703:                                             ; preds = %1702
  br label %1704

1704:                                             ; preds = %1703
  br label %1705

1705:                                             ; preds = %1704
  br label %1706

1706:                                             ; preds = %1705
  br label %1707

1707:                                             ; preds = %1706
  %1708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1708, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1709 = call ptr @__errno_location() #12
  store i32 0, ptr %1709, align 4, !tbaa !5
  br label %1710

1710:                                             ; preds = %1707
  br label %1711

1711:                                             ; preds = %1710
  br label %1712

1712:                                             ; preds = %1711
  br label %1713

1713:                                             ; preds = %1712
  br label %1714

1714:                                             ; preds = %1713
  br label %1715

1715:                                             ; preds = %1714
  br label %1716

1716:                                             ; preds = %1715
  %1717 = load i32, ptr @test_count, align 4, !tbaa !5
  %1718 = add nsw i32 %1717, 1
  store i32 %1718, ptr @test_count, align 4, !tbaa !5
  %1719 = load ptr, ptr %9, align 8, !tbaa !9
  %1720 = getelementptr inbounds [48 x i8], ptr %30, i64 0, i64 0
  %1721 = call i32 @s2n_connection_get_master_secret(ptr noundef %1719, ptr noundef %1720, i64 noundef 47)
  %1722 = icmp eq i32 %1721, -1
  br i1 %1722, label %1776, label %1723

1723:                                             ; preds = %1716
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1726 = call ptr @__errno_location() #12
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  store i32 %1727, ptr %37, align 4, !tbaa !5
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = call i32 @s2n_print_stacktrace(ptr noundef %1728)
  %1730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1731 = trunc i8 %1730 to i1
  br i1 %1731, label %1732, label %1754

1732:                                             ; preds = %1725
  %1733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1734 = call i32 @fileno(ptr noundef %1733) #11
  %1735 = call i32 @isatty(i32 noundef %1734) #11
  %1736 = icmp ne i32 %1735, 0
  br i1 %1736, label %1737, label %1754

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

1754:                                             ; preds = %1732, %1725
  %1755 = load i32, ptr %37, align 4, !tbaa !5
  %1756 = call ptr @__errno_location() #12
  store i32 %1755, ptr %1756, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = call ptr @s2n_strerror(i32 noundef %1760, ptr noundef @.str.4)
  %1762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror_debug(i32 noundef %1763, ptr noundef @.str.4)
  %1765 = call ptr @__errno_location() #12
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @strerror(i32 noundef %1766) #11
  %1768 = call ptr @__errno_location() #12
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1757, ptr noundef @.str.5, i32 noundef %1758, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1761, ptr noundef %1764, ptr noundef %1767, i32 noundef %1769) #11
  br label %1771

1771:                                             ; preds = %1754, %1737
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1772

1772:                                             ; preds = %1771
  br label %1773

1773:                                             ; preds = %1772
  call void @exit(i32 noundef 1) #13
  unreachable

1774:                                             ; No predecessors!
  br label %1775

1775:                                             ; preds = %1774
  br label %1776

1776:                                             ; preds = %1775, %1716
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777
  br label %1779

1779:                                             ; preds = %1778
  %1780 = load i32, ptr @test_count, align 4, !tbaa !5
  %1781 = add nsw i32 %1780, 1
  store i32 %1781, ptr @test_count, align 4, !tbaa !5
  %1782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = icmp eq i32 %1783, 469762120
  br i1 %1784, label %1838, label %1785

1785:                                             ; preds = %1779
  br label %1786

1786:                                             ; preds = %1785
  br label %1787

1787:                                             ; preds = %1786
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1788 = call ptr @__errno_location() #12
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  store i32 %1789, ptr %38, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = call i32 @s2n_print_stacktrace(ptr noundef %1790)
  %1792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1793 = trunc i8 %1792 to i1
  br i1 %1793, label %1794, label %1816

1794:                                             ; preds = %1787
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = call i32 @fileno(ptr noundef %1795) #11
  %1797 = call i32 @isatty(i32 noundef %1796) #11
  %1798 = icmp ne i32 %1797, 0
  br i1 %1798, label %1799, label %1816

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

1816:                                             ; preds = %1794, %1787
  %1817 = load i32, ptr %38, align 4, !tbaa !5
  %1818 = call ptr @__errno_location() #12
  store i32 %1817, ptr %1818, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = load i32, ptr @test_count, align 4, !tbaa !5
  %1821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = call ptr @s2n_strerror(i32 noundef %1822, ptr noundef @.str.4)
  %1824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror_debug(i32 noundef %1825, ptr noundef @.str.4)
  %1827 = call ptr @__errno_location() #12
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @strerror(i32 noundef %1828) #11
  %1830 = call ptr @__errno_location() #12
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1819, ptr noundef @.str.5, i32 noundef %1820, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1823, ptr noundef %1826, ptr noundef %1829, i32 noundef %1831) #11
  br label %1833

1833:                                             ; preds = %1816, %1799
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1834

1834:                                             ; preds = %1833
  br label %1835

1835:                                             ; preds = %1834
  call void @exit(i32 noundef 1) #13
  unreachable

1836:                                             ; No predecessors!
  br label %1837

1837:                                             ; preds = %1836
  br label %1838

1838:                                             ; preds = %1837, %1779
  br label %1839

1839:                                             ; preds = %1838
  br label %1840

1840:                                             ; preds = %1839
  br label %1841

1841:                                             ; preds = %1840
  %1842 = load i32, ptr @test_count, align 4, !tbaa !5
  %1843 = add nsw i32 %1842, 1
  store i32 %1843, ptr @test_count, align 4, !tbaa !5
  %1844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1845 = load i32, ptr %1844, align 4, !tbaa !5
  %1846 = call ptr @s2n_strerror_debug(i32 noundef %1845, ptr noundef @.str.4)
  %1847 = icmp eq ptr %1846, null
  br i1 %1847, label %1848, label %1901

1848:                                             ; preds = %1841
  br label %1849

1849:                                             ; preds = %1848
  br label %1850

1850:                                             ; preds = %1849
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1851 = call ptr @__errno_location() #12
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  store i32 %1852, ptr %39, align 4, !tbaa !5
  %1853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1854 = call i32 @s2n_print_stacktrace(ptr noundef %1853)
  %1855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1856 = trunc i8 %1855 to i1
  br i1 %1856, label %1857, label %1879

1857:                                             ; preds = %1850
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = call i32 @fileno(ptr noundef %1858) #11
  %1860 = call i32 @isatty(i32 noundef %1859) #11
  %1861 = icmp ne i32 %1860, 0
  br i1 %1861, label %1862, label %1879

1862:                                             ; preds = %1857
  %1863 = load i32, ptr %39, align 4, !tbaa !5
  %1864 = call ptr @__errno_location() #12
  store i32 %1863, ptr %1864, align 4, !tbaa !5
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = load i32, ptr @test_count, align 4, !tbaa !5
  %1867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1868 = load i32, ptr %1867, align 4, !tbaa !5
  %1869 = call ptr @s2n_strerror(i32 noundef %1868, ptr noundef @.str.4)
  %1870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror_debug(i32 noundef %1871, ptr noundef @.str.4)
  %1873 = call ptr @__errno_location() #12
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = call ptr @strerror(i32 noundef %1874) #11
  %1876 = call ptr @__errno_location() #12
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1865, ptr noundef @.str.2, i32 noundef %1866, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1869, ptr noundef %1872, ptr noundef %1875, i32 noundef %1877) #11
  br label %1896

1879:                                             ; preds = %1857, %1850
  %1880 = load i32, ptr %39, align 4, !tbaa !5
  %1881 = call ptr @__errno_location() #12
  store i32 %1880, ptr %1881, align 4, !tbaa !5
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = load i32, ptr @test_count, align 4, !tbaa !5
  %1884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @s2n_strerror(i32 noundef %1885, ptr noundef @.str.4)
  %1887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call ptr @s2n_strerror_debug(i32 noundef %1888, ptr noundef @.str.4)
  %1890 = call ptr @__errno_location() #12
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = call ptr @strerror(i32 noundef %1891) #11
  %1893 = call ptr @__errno_location() #12
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1882, ptr noundef @.str.5, i32 noundef %1883, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1886, ptr noundef %1889, ptr noundef %1892, i32 noundef %1894) #11
  br label %1896

1896:                                             ; preds = %1879, %1862
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1897

1897:                                             ; preds = %1896
  br label %1898

1898:                                             ; preds = %1897
  call void @exit(i32 noundef 1) #13
  unreachable

1899:                                             ; No predecessors!
  br label %1900

1900:                                             ; preds = %1899
  br label %1901

1901:                                             ; preds = %1900, %1841
  br label %1902

1902:                                             ; preds = %1901
  br label %1903

1903:                                             ; preds = %1902
  br label %1904

1904:                                             ; preds = %1903
  br label %1905

1905:                                             ; preds = %1904
  br label %1906

1906:                                             ; preds = %1905
  %1907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1907, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1908 = call ptr @__errno_location() #12
  store i32 0, ptr %1908, align 4, !tbaa !5
  br label %1909

1909:                                             ; preds = %1906
  br label %1910

1910:                                             ; preds = %1909
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

1912:                                             ; preds = %1911
  br label %1913

1913:                                             ; preds = %1912
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = add nsw i32 %1914, 1
  store i32 %1915, ptr @test_count, align 4, !tbaa !5
  %1916 = load ptr, ptr %9, align 8, !tbaa !9
  %1917 = getelementptr inbounds [48 x i8], ptr %30, i64 0, i64 0
  %1918 = call i32 @s2n_connection_get_master_secret(ptr noundef %1916, ptr noundef %1917, i64 noundef 48)
  %1919 = icmp eq i32 %1918, -1
  br i1 %1919, label %1920, label %1973

1920:                                             ; preds = %1913
  br label %1921

1921:                                             ; preds = %1920
  br label %1922

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

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

1934:                                             ; preds = %1929
  %1935 = load i32, ptr %40, align 4, !tbaa !5
  %1936 = call ptr @__errno_location() #12
  store i32 %1935, ptr %1936, align 4, !tbaa !5
  %1937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1938 = load i32, ptr @test_count, align 4, !tbaa !5
  %1939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call ptr @s2n_strerror(i32 noundef %1940, ptr noundef @.str.4)
  %1942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = call ptr @s2n_strerror_debug(i32 noundef %1943, ptr noundef @.str.4)
  %1945 = call ptr @__errno_location() #12
  %1946 = load i32, ptr %1945, align 4, !tbaa !5
  %1947 = call ptr @strerror(i32 noundef %1946) #11
  %1948 = call ptr @__errno_location() #12
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1937, ptr noundef @.str.2, i32 noundef %1938, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 100, ptr noundef %1941, ptr noundef %1944, ptr noundef %1947, i32 noundef %1949) #11
  br label %1968

1951:                                             ; preds = %1929, %1922
  %1952 = load i32, ptr %40, align 4, !tbaa !5
  %1953 = call ptr @__errno_location() #12
  store i32 %1952, ptr %1953, align 4, !tbaa !5
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = load i32, ptr @test_count, align 4, !tbaa !5
  %1956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @s2n_strerror(i32 noundef %1957, ptr noundef @.str.4)
  %1959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call ptr @s2n_strerror_debug(i32 noundef %1960, ptr noundef @.str.4)
  %1962 = call ptr @__errno_location() #12
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call ptr @strerror(i32 noundef %1963) #11
  %1965 = call ptr @__errno_location() #12
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1954, ptr noundef @.str.5, i32 noundef %1955, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 100, ptr noundef %1958, ptr noundef %1961, ptr noundef %1964, i32 noundef %1966) #11
  br label %1968

1968:                                             ; preds = %1951, %1934
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1969

1969:                                             ; preds = %1968
  br label %1970

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

1971:                                             ; No predecessors!
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

1973:                                             ; preds = %1972, %1913
  br label %1974

1974:                                             ; preds = %1973
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

1976:                                             ; preds = %1975
  br label %1977

1977:                                             ; preds = %1976
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = add nsw i32 %1978, 1
  store i32 %1979, ptr @test_count, align 4, !tbaa !5
  %1980 = getelementptr inbounds [48 x i8], ptr %7, i64 0, i64 0
  %1981 = getelementptr inbounds [48 x i8], ptr %30, i64 0, i64 0
  %1982 = call i32 @memcmp(ptr noundef %1980, ptr noundef %1981, i64 noundef 48) #14
  %1983 = icmp eq i32 %1982, 0
  br i1 %1983, label %2037, label %1984

1984:                                             ; preds = %1977
  br label %1985

1985:                                             ; preds = %1984
  br label %1986

1986:                                             ; preds = %1985
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1987 = call ptr @__errno_location() #12
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  store i32 %1988, ptr %41, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = call i32 @s2n_print_stacktrace(ptr noundef %1989)
  %1991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1992 = trunc i8 %1991 to i1
  br i1 %1992, label %1993, label %2015

1993:                                             ; preds = %1986
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @fileno(ptr noundef %1994) #11
  %1996 = call i32 @isatty(i32 noundef %1995) #11
  %1997 = icmp ne i32 %1996, 0
  br i1 %1997, label %1998, label %2015

1998:                                             ; preds = %1993
  %1999 = load i32, ptr %41, align 4, !tbaa !5
  %2000 = call ptr @__errno_location() #12
  store i32 %1999, ptr %2000, align 4, !tbaa !5
  %2001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2002 = load i32, ptr @test_count, align 4, !tbaa !5
  %2003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2004 = load i32, ptr %2003, align 4, !tbaa !5
  %2005 = call ptr @s2n_strerror(i32 noundef %2004, ptr noundef @.str.4)
  %2006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2007 = load i32, ptr %2006, align 4, !tbaa !5
  %2008 = call ptr @s2n_strerror_debug(i32 noundef %2007, ptr noundef @.str.4)
  %2009 = call ptr @__errno_location() #12
  %2010 = load i32, ptr %2009, align 4, !tbaa !5
  %2011 = call ptr @strerror(i32 noundef %2010) #11
  %2012 = call ptr @__errno_location() #12
  %2013 = load i32, ptr %2012, align 4, !tbaa !5
  %2014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2001, ptr noundef @.str.2, i32 noundef %2002, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2005, ptr noundef %2008, ptr noundef %2011, i32 noundef %2013) #11
  br label %2032

2015:                                             ; preds = %1993, %1986
  %2016 = load i32, ptr %41, align 4, !tbaa !5
  %2017 = call ptr @__errno_location() #12
  store i32 %2016, ptr %2017, align 4, !tbaa !5
  %2018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2019 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2021, ptr noundef @.str.4)
  %2023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  %2025 = call ptr @s2n_strerror_debug(i32 noundef %2024, ptr noundef @.str.4)
  %2026 = call ptr @__errno_location() #12
  %2027 = load i32, ptr %2026, align 4, !tbaa !5
  %2028 = call ptr @strerror(i32 noundef %2027) #11
  %2029 = call ptr @__errno_location() #12
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  %2031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2018, ptr noundef @.str.5, i32 noundef %2019, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2022, ptr noundef %2025, ptr noundef %2028, i32 noundef %2030) #11
  br label %2032

2032:                                             ; preds = %2015, %1998
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %2033

2033:                                             ; preds = %2032
  br label %2034

2034:                                             ; preds = %2033
  call void @exit(i32 noundef 1) #13
  unreachable

2035:                                             ; No predecessors!
  br label %2036

2036:                                             ; preds = %2035
  br label %2037

2037:                                             ; preds = %2036, %1977
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

2039:                                             ; preds = %2038
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040
  br label %2042

2042:                                             ; preds = %2041
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = add nsw i32 %2043, 1
  store i32 %2044, ptr @test_count, align 4, !tbaa !5
  %2045 = load ptr, ptr %9, align 8, !tbaa !9
  %2046 = getelementptr inbounds [48 x i8], ptr %30, i64 0, i64 0
  %2047 = call i32 @s2n_connection_get_master_secret(ptr noundef %2045, ptr noundef %2046, i64 noundef 49)
  %2048 = icmp eq i32 %2047, -1
  br i1 %2048, label %2049, label %2102

2049:                                             ; preds = %2042
  br label %2050

2050:                                             ; preds = %2049
  br label %2051

2051:                                             ; preds = %2050
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %2052 = call ptr @__errno_location() #12
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  store i32 %2053, ptr %42, align 4, !tbaa !5
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = call i32 @s2n_print_stacktrace(ptr noundef %2054)
  %2056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2057 = trunc i8 %2056 to i1
  br i1 %2057, label %2058, label %2080

2058:                                             ; preds = %2051
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = call i32 @fileno(ptr noundef %2059) #11
  %2061 = call i32 @isatty(i32 noundef %2060) #11
  %2062 = icmp ne i32 %2061, 0
  br i1 %2062, label %2063, label %2080

2063:                                             ; preds = %2058
  %2064 = load i32, ptr %42, align 4, !tbaa !5
  %2065 = call ptr @__errno_location() #12
  store i32 %2064, ptr %2065, align 4, !tbaa !5
  %2066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2067 = load i32, ptr @test_count, align 4, !tbaa !5
  %2068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2069 = load i32, ptr %2068, align 4, !tbaa !5
  %2070 = call ptr @s2n_strerror(i32 noundef %2069, ptr noundef @.str.4)
  %2071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2072 = load i32, ptr %2071, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror_debug(i32 noundef %2072, ptr noundef @.str.4)
  %2074 = call ptr @__errno_location() #12
  %2075 = load i32, ptr %2074, align 4, !tbaa !5
  %2076 = call ptr @strerror(i32 noundef %2075) #11
  %2077 = call ptr @__errno_location() #12
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2066, ptr noundef @.str.2, i32 noundef %2067, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2070, ptr noundef %2073, ptr noundef %2076, i32 noundef %2078) #11
  br label %2097

2080:                                             ; preds = %2058, %2051
  %2081 = load i32, ptr %42, align 4, !tbaa !5
  %2082 = call ptr @__errno_location() #12
  store i32 %2081, ptr %2082, align 4, !tbaa !5
  %2083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2084 = load i32, ptr @test_count, align 4, !tbaa !5
  %2085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2086 = load i32, ptr %2085, align 4, !tbaa !5
  %2087 = call ptr @s2n_strerror(i32 noundef %2086, ptr noundef @.str.4)
  %2088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2089 = load i32, ptr %2088, align 4, !tbaa !5
  %2090 = call ptr @s2n_strerror_debug(i32 noundef %2089, ptr noundef @.str.4)
  %2091 = call ptr @__errno_location() #12
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call ptr @strerror(i32 noundef %2092) #11
  %2094 = call ptr @__errno_location() #12
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2083, ptr noundef @.str.5, i32 noundef %2084, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2087, ptr noundef %2090, ptr noundef %2093, i32 noundef %2095) #11
  br label %2097

2097:                                             ; preds = %2080, %2063
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %2098

2098:                                             ; preds = %2097
  br label %2099

2099:                                             ; preds = %2098
  call void @exit(i32 noundef 1) #13
  unreachable

2100:                                             ; No predecessors!
  br label %2101

2101:                                             ; preds = %2100
  br label %2102

2102:                                             ; preds = %2101, %2042
  br label %2103

2103:                                             ; preds = %2102
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105
  %2107 = load i32, ptr @test_count, align 4, !tbaa !5
  %2108 = add nsw i32 %2107, 1
  store i32 %2108, ptr @test_count, align 4, !tbaa !5
  %2109 = getelementptr inbounds [48 x i8], ptr %7, i64 0, i64 0
  %2110 = getelementptr inbounds [48 x i8], ptr %30, i64 0, i64 0
  %2111 = call i32 @memcmp(ptr noundef %2109, ptr noundef %2110, i64 noundef 48) #14
  %2112 = icmp eq i32 %2111, 0
  br i1 %2112, label %2166, label %2113

2113:                                             ; preds = %2106
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

2115:                                             ; preds = %2114
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %2116 = call ptr @__errno_location() #12
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  store i32 %2117, ptr %43, align 4, !tbaa !5
  %2118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2119 = call i32 @s2n_print_stacktrace(ptr noundef %2118)
  %2120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2121 = trunc i8 %2120 to i1
  br i1 %2121, label %2122, label %2144

2122:                                             ; preds = %2115
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = call i32 @fileno(ptr noundef %2123) #11
  %2125 = call i32 @isatty(i32 noundef %2124) #11
  %2126 = icmp ne i32 %2125, 0
  br i1 %2126, label %2127, label %2144

2127:                                             ; preds = %2122
  %2128 = load i32, ptr %43, align 4, !tbaa !5
  %2129 = call ptr @__errno_location() #12
  store i32 %2128, ptr %2129, align 4, !tbaa !5
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = load i32, ptr @test_count, align 4, !tbaa !5
  %2132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror(i32 noundef %2133, ptr noundef @.str.4)
  %2135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call ptr @s2n_strerror_debug(i32 noundef %2136, ptr noundef @.str.4)
  %2138 = call ptr @__errno_location() #12
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call ptr @strerror(i32 noundef %2139) #11
  %2141 = call ptr @__errno_location() #12
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2130, ptr noundef @.str.2, i32 noundef %2131, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2134, ptr noundef %2137, ptr noundef %2140, i32 noundef %2142) #11
  br label %2161

2144:                                             ; preds = %2122, %2115
  %2145 = load i32, ptr %43, align 4, !tbaa !5
  %2146 = call ptr @__errno_location() #12
  store i32 %2145, ptr %2146, align 4, !tbaa !5
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = load i32, ptr @test_count, align 4, !tbaa !5
  %2149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror(i32 noundef %2150, ptr noundef @.str.4)
  %2152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror_debug(i32 noundef %2153, ptr noundef @.str.4)
  %2155 = call ptr @__errno_location() #12
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call ptr @strerror(i32 noundef %2156) #11
  %2158 = call ptr @__errno_location() #12
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2147, ptr noundef @.str.5, i32 noundef %2148, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2151, ptr noundef %2154, ptr noundef %2157, i32 noundef %2159) #11
  br label %2161

2161:                                             ; preds = %2144, %2127
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %2162

2162:                                             ; preds = %2161
  br label %2163

2163:                                             ; preds = %2162
  call void @exit(i32 noundef 1) #13
  unreachable

2164:                                             ; No predecessors!
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165, %2106
  br label %2167

2167:                                             ; preds = %2166
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

2170:                                             ; preds = %2169
  call void @llvm.lifetime.end.p0(i64 48, ptr %30) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr %44) #11
  call void @llvm.memset.p0.i64(ptr align 16 %44, i8 0, i64 48, i1 false)
  %2171 = load ptr, ptr %9, align 8, !tbaa !9
  %2172 = getelementptr inbounds %struct.s2n_connection, ptr %2171, i32 0, i32 52
  %2173 = getelementptr inbounds %struct.s2n_handshake, ptr %2172, i32 0, i32 7
  store i32 0, ptr %2173, align 8, !tbaa !43
  br label %2174

2174:                                             ; preds = %2170
  br label %2175

2175:                                             ; preds = %2174
  br label %2176

2176:                                             ; preds = %2175
  %2177 = load i32, ptr @test_count, align 4, !tbaa !5
  %2178 = add nsw i32 %2177, 1
  store i32 %2178, ptr @test_count, align 4, !tbaa !5
  %2179 = load ptr, ptr %9, align 8, !tbaa !9
  %2180 = getelementptr inbounds [48 x i8], ptr %44, i64 0, i64 0
  %2181 = call i32 @s2n_connection_get_master_secret(ptr noundef %2179, ptr noundef %2180, i64 noundef 48)
  %2182 = icmp eq i32 %2181, -1
  br i1 %2182, label %2236, label %2183

2183:                                             ; preds = %2176
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %2186 = call ptr @__errno_location() #12
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  store i32 %2187, ptr %45, align 4, !tbaa !5
  %2188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2189 = call i32 @s2n_print_stacktrace(ptr noundef %2188)
  %2190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2191 = trunc i8 %2190 to i1
  br i1 %2191, label %2192, label %2214

2192:                                             ; preds = %2185
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = call i32 @fileno(ptr noundef %2193) #11
  %2195 = call i32 @isatty(i32 noundef %2194) #11
  %2196 = icmp ne i32 %2195, 0
  br i1 %2196, label %2197, label %2214

2197:                                             ; preds = %2192
  %2198 = load i32, ptr %45, align 4, !tbaa !5
  %2199 = call ptr @__errno_location() #12
  store i32 %2198, ptr %2199, align 4, !tbaa !5
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = load i32, ptr @test_count, align 4, !tbaa !5
  %2202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call ptr @s2n_strerror(i32 noundef %2203, ptr noundef @.str.4)
  %2205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2206 = load i32, ptr %2205, align 4, !tbaa !5
  %2207 = call ptr @s2n_strerror_debug(i32 noundef %2206, ptr noundef @.str.4)
  %2208 = call ptr @__errno_location() #12
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  %2210 = call ptr @strerror(i32 noundef %2209) #11
  %2211 = call ptr @__errno_location() #12
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2200, ptr noundef @.str.2, i32 noundef %2201, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2204, ptr noundef %2207, ptr noundef %2210, i32 noundef %2212) #11
  br label %2231

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

2231:                                             ; preds = %2214, %2197
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %2232

2232:                                             ; preds = %2231
  br label %2233

2233:                                             ; preds = %2232
  call void @exit(i32 noundef 1) #13
  unreachable

2234:                                             ; No predecessors!
  br label %2235

2235:                                             ; preds = %2234
  br label %2236

2236:                                             ; preds = %2235, %2176
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237
  br label %2239

2239:                                             ; preds = %2238
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = add nsw i32 %2240, 1
  store i32 %2241, ptr @test_count, align 4, !tbaa !5
  %2242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = icmp eq i32 %2243, 469762124
  br i1 %2244, label %2298, label %2245

2245:                                             ; preds = %2239
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

2247:                                             ; preds = %2246
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %2248 = call ptr @__errno_location() #12
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  store i32 %2249, ptr %46, align 4, !tbaa !5
  %2250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2251 = call i32 @s2n_print_stacktrace(ptr noundef %2250)
  %2252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2253 = trunc i8 %2252 to i1
  br i1 %2253, label %2254, label %2276

2254:                                             ; preds = %2247
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = call i32 @fileno(ptr noundef %2255) #11
  %2257 = call i32 @isatty(i32 noundef %2256) #11
  %2258 = icmp ne i32 %2257, 0
  br i1 %2258, label %2259, label %2276

2259:                                             ; preds = %2254
  %2260 = load i32, ptr %46, align 4, !tbaa !5
  %2261 = call ptr @__errno_location() #12
  store i32 %2260, ptr %2261, align 4, !tbaa !5
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = load i32, ptr @test_count, align 4, !tbaa !5
  %2264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef @.str.4)
  %2267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2268 = load i32, ptr %2267, align 4, !tbaa !5
  %2269 = call ptr @s2n_strerror_debug(i32 noundef %2268, ptr noundef @.str.4)
  %2270 = call ptr @__errno_location() #12
  %2271 = load i32, ptr %2270, align 4, !tbaa !5
  %2272 = call ptr @strerror(i32 noundef %2271) #11
  %2273 = call ptr @__errno_location() #12
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2262, ptr noundef @.str.2, i32 noundef %2263, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2266, ptr noundef %2269, ptr noundef %2272, i32 noundef %2274) #11
  br label %2293

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

2293:                                             ; preds = %2276, %2259
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %2294

2294:                                             ; preds = %2293
  br label %2295

2295:                                             ; preds = %2294
  call void @exit(i32 noundef 1) #13
  unreachable

2296:                                             ; No predecessors!
  br label %2297

2297:                                             ; preds = %2296
  br label %2298

2298:                                             ; preds = %2297, %2239
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  %2302 = load i32, ptr @test_count, align 4, !tbaa !5
  %2303 = add nsw i32 %2302, 1
  store i32 %2303, ptr @test_count, align 4, !tbaa !5
  %2304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call ptr @s2n_strerror_debug(i32 noundef %2305, ptr noundef @.str.4)
  %2307 = icmp eq ptr %2306, null
  br i1 %2307, label %2308, label %2361

2308:                                             ; preds = %2301
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

2310:                                             ; preds = %2309
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %2311 = call ptr @__errno_location() #12
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  store i32 %2312, ptr %47, align 4, !tbaa !5
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = call i32 @s2n_print_stacktrace(ptr noundef %2313)
  %2315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2316 = trunc i8 %2315 to i1
  br i1 %2316, label %2317, label %2339

2317:                                             ; preds = %2310
  %2318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2319 = call i32 @fileno(ptr noundef %2318) #11
  %2320 = call i32 @isatty(i32 noundef %2319) #11
  %2321 = icmp ne i32 %2320, 0
  br i1 %2321, label %2322, label %2339

2322:                                             ; preds = %2317
  %2323 = load i32, ptr %47, align 4, !tbaa !5
  %2324 = call ptr @__errno_location() #12
  store i32 %2323, ptr %2324, align 4, !tbaa !5
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = load i32, ptr @test_count, align 4, !tbaa !5
  %2327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call ptr @s2n_strerror(i32 noundef %2328, ptr noundef @.str.4)
  %2330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  %2332 = call ptr @s2n_strerror_debug(i32 noundef %2331, ptr noundef @.str.4)
  %2333 = call ptr @__errno_location() #12
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = call ptr @strerror(i32 noundef %2334) #11
  %2336 = call ptr @__errno_location() #12
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2325, ptr noundef @.str.2, i32 noundef %2326, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2329, ptr noundef %2332, ptr noundef %2335, i32 noundef %2337) #11
  br label %2356

2339:                                             ; preds = %2317, %2310
  %2340 = load i32, ptr %47, align 4, !tbaa !5
  %2341 = call ptr @__errno_location() #12
  store i32 %2340, ptr %2341, align 4, !tbaa !5
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = load i32, ptr @test_count, align 4, !tbaa !5
  %2344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call ptr @s2n_strerror(i32 noundef %2345, ptr noundef @.str.4)
  %2347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call ptr @s2n_strerror_debug(i32 noundef %2348, ptr noundef @.str.4)
  %2350 = call ptr @__errno_location() #12
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call ptr @strerror(i32 noundef %2351) #11
  %2353 = call ptr @__errno_location() #12
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2342, ptr noundef @.str.5, i32 noundef %2343, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2346, ptr noundef %2349, ptr noundef %2352, i32 noundef %2354) #11
  br label %2356

2356:                                             ; preds = %2339, %2322
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %2357

2357:                                             ; preds = %2356
  br label %2358

2358:                                             ; preds = %2357
  call void @exit(i32 noundef 1) #13
  unreachable

2359:                                             ; No predecessors!
  br label %2360

2360:                                             ; preds = %2359
  br label %2361

2361:                                             ; preds = %2360, %2301
  br label %2362

2362:                                             ; preds = %2361
  br label %2363

2363:                                             ; preds = %2362
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364
  br label %2366

2366:                                             ; preds = %2365
  %2367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2367, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2368 = call ptr @__errno_location() #12
  store i32 0, ptr %2368, align 4, !tbaa !5
  br label %2369

2369:                                             ; preds = %2366
  br label %2370

2370:                                             ; preds = %2369
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

2372:                                             ; preds = %2371
  br label %2373

2373:                                             ; preds = %2372
  %2374 = load i32, ptr @test_count, align 4, !tbaa !5
  %2375 = add nsw i32 %2374, 1
  store i32 %2375, ptr @test_count, align 4, !tbaa !5
  %2376 = load ptr, ptr %9, align 8, !tbaa !9
  %2377 = call i32 @s2n_skip_handshake(ptr noundef %2376)
  %2378 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  store i32 %2377, ptr %2378, align 4
  %2379 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  %2380 = load i32, ptr %2379, align 4
  %2381 = call zeroext i1 @s2n_result_is_ok(i32 %2380)
  br i1 %2381, label %2435, label %2382

2382:                                             ; preds = %2373
  br label %2383

2383:                                             ; preds = %2382
  br label %2384

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

2391:                                             ; preds = %2384
  %2392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2393 = call i32 @fileno(ptr noundef %2392) #11
  %2394 = call i32 @isatty(i32 noundef %2393) #11
  %2395 = icmp ne i32 %2394, 0
  br i1 %2395, label %2396, label %2413

2396:                                             ; preds = %2391
  %2397 = load i32, ptr %49, align 4, !tbaa !5
  %2398 = call ptr @__errno_location() #12
  store i32 %2397, ptr %2398, align 4, !tbaa !5
  %2399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2400 = load i32, ptr @test_count, align 4, !tbaa !5
  %2401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call ptr @s2n_strerror(i32 noundef %2402, ptr noundef @.str.4)
  %2404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call ptr @s2n_strerror_debug(i32 noundef %2405, ptr noundef @.str.4)
  %2407 = call ptr @__errno_location() #12
  %2408 = load i32, ptr %2407, align 4, !tbaa !5
  %2409 = call ptr @strerror(i32 noundef %2408) #11
  %2410 = call ptr @__errno_location() #12
  %2411 = load i32, ptr %2410, align 4, !tbaa !5
  %2412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2399, ptr noundef @.str.2, i32 noundef %2400, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2403, ptr noundef %2406, ptr noundef %2409, i32 noundef %2411) #11
  br label %2430

2413:                                             ; preds = %2391, %2384
  %2414 = load i32, ptr %49, align 4, !tbaa !5
  %2415 = call ptr @__errno_location() #12
  store i32 %2414, ptr %2415, align 4, !tbaa !5
  %2416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2417 = load i32, ptr @test_count, align 4, !tbaa !5
  %2418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror(i32 noundef %2419, ptr noundef @.str.4)
  %2421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @s2n_strerror_debug(i32 noundef %2422, ptr noundef @.str.4)
  %2424 = call ptr @__errno_location() #12
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call ptr @strerror(i32 noundef %2425) #11
  %2427 = call ptr @__errno_location() #12
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  %2429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2416, ptr noundef @.str.5, i32 noundef %2417, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2420, ptr noundef %2423, ptr noundef %2426, i32 noundef %2428) #11
  br label %2430

2430:                                             ; preds = %2413, %2396
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %2431

2431:                                             ; preds = %2430
  br label %2432

2432:                                             ; preds = %2431
  call void @exit(i32 noundef 1) #13
  unreachable

2433:                                             ; No predecessors!
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434, %2373
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

2438:                                             ; preds = %2437
  %2439 = load i32, ptr @test_count, align 4, !tbaa !5
  %2440 = add nsw i32 %2439, 1
  store i32 %2440, ptr @test_count, align 4, !tbaa !5
  %2441 = load ptr, ptr %9, align 8, !tbaa !9
  %2442 = getelementptr inbounds [48 x i8], ptr %44, i64 0, i64 0
  %2443 = call i32 @s2n_connection_get_master_secret(ptr noundef %2441, ptr noundef %2442, i64 noundef 48)
  %2444 = icmp eq i32 %2443, -1
  br i1 %2444, label %2445, label %2498

2445:                                             ; preds = %2438
  br label %2446

2446:                                             ; preds = %2445
  br label %2447

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

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

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

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

2493:                                             ; preds = %2476, %2459
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %2494

2494:                                             ; preds = %2493
  br label %2495

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

2496:                                             ; No predecessors!
  br label %2497

2497:                                             ; preds = %2496
  br label %2498

2498:                                             ; preds = %2497, %2438
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

2502:                                             ; preds = %2501
  %2503 = load i32, ptr @test_count, align 4, !tbaa !5
  %2504 = add nsw i32 %2503, 1
  store i32 %2504, ptr @test_count, align 4, !tbaa !5
  %2505 = getelementptr inbounds [48 x i8], ptr %7, i64 0, i64 0
  %2506 = getelementptr inbounds [48 x i8], ptr %44, i64 0, i64 0
  %2507 = call i32 @memcmp(ptr noundef %2505, ptr noundef %2506, i64 noundef 48) #14
  %2508 = icmp eq i32 %2507, 0
  br i1 %2508, label %2562, label %2509

2509:                                             ; preds = %2502
  br label %2510

2510:                                             ; preds = %2509
  br label %2511

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

2518:                                             ; preds = %2511
  %2519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2520 = call i32 @fileno(ptr noundef %2519) #11
  %2521 = call i32 @isatty(i32 noundef %2520) #11
  %2522 = icmp ne i32 %2521, 0
  br i1 %2522, label %2523, label %2540

2523:                                             ; preds = %2518
  %2524 = load i32, ptr %51, align 4, !tbaa !5
  %2525 = call ptr @__errno_location() #12
  store i32 %2524, ptr %2525, align 4, !tbaa !5
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = load i32, ptr @test_count, align 4, !tbaa !5
  %2528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2529 = load i32, ptr %2528, align 4, !tbaa !5
  %2530 = call ptr @s2n_strerror(i32 noundef %2529, ptr noundef @.str.4)
  %2531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2532 = load i32, ptr %2531, align 4, !tbaa !5
  %2533 = call ptr @s2n_strerror_debug(i32 noundef %2532, ptr noundef @.str.4)
  %2534 = call ptr @__errno_location() #12
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = call ptr @strerror(i32 noundef %2535) #11
  %2537 = call ptr @__errno_location() #12
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2526, ptr noundef @.str.2, i32 noundef %2527, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2530, ptr noundef %2533, ptr noundef %2536, i32 noundef %2538) #11
  br label %2557

2540:                                             ; preds = %2518, %2511
  %2541 = load i32, ptr %51, align 4, !tbaa !5
  %2542 = call ptr @__errno_location() #12
  store i32 %2541, ptr %2542, align 4, !tbaa !5
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2544 = load i32, ptr @test_count, align 4, !tbaa !5
  %2545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2546 = load i32, ptr %2545, align 4, !tbaa !5
  %2547 = call ptr @s2n_strerror(i32 noundef %2546, ptr noundef @.str.4)
  %2548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call ptr @s2n_strerror_debug(i32 noundef %2549, ptr noundef @.str.4)
  %2551 = call ptr @__errno_location() #12
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call ptr @strerror(i32 noundef %2552) #11
  %2554 = call ptr @__errno_location() #12
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2543, ptr noundef @.str.5, i32 noundef %2544, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2547, ptr noundef %2550, ptr noundef %2553, i32 noundef %2555) #11
  br label %2557

2557:                                             ; preds = %2540, %2523
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2558

2558:                                             ; preds = %2557
  br label %2559

2559:                                             ; preds = %2558
  call void @exit(i32 noundef 1) #13
  unreachable

2560:                                             ; No predecessors!
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

2562:                                             ; preds = %2561, %2502
  br label %2563

2563:                                             ; preds = %2562
  br label %2564

2564:                                             ; preds = %2563
  br label %2565

2565:                                             ; preds = %2564
  br label %2566

2566:                                             ; preds = %2565
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #11
  store i64 0, ptr %52, align 8, !tbaa !15
  br label %2567

2567:                                             ; preds = %3674, %2566
  %2568 = load i64, ptr %52, align 8, !tbaa !15
  %2569 = icmp ult i64 %2568, 4
  br i1 %2569, label %2571, label %2570

2570:                                             ; preds = %2567
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #11
  br label %3677

2571:                                             ; preds = %2567
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #11
  %2572 = load i64, ptr %52, align 8, !tbaa !15
  %2573 = getelementptr inbounds [4 x i8], ptr %8, i64 0, i64 %2572
  %2574 = load i8, ptr %2573, align 1, !tbaa !44
  store i8 %2574, ptr %53, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  %2575 = call ptr @s2n_config_new()
  store ptr %2575, ptr %54, align 8, !tbaa !9
  br label %2576

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

2581:                                             ; preds = %2576
  br label %2582

2582:                                             ; preds = %2581
  br label %2583

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

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

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

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

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

2630:                                             ; preds = %2629
  br label %2631

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

2632:                                             ; No predecessors!
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

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

2635:                                             ; preds = %2634
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

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

2644:                                             ; preds = %2637
  br label %2645

2645:                                             ; preds = %2644
  br label %2646

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

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

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

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

2692:                                             ; preds = %2675, %2658
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2693

2693:                                             ; preds = %2692
  br label %2694

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

2695:                                             ; No predecessors!
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

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

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698
  br label %2700

2700:                                             ; preds = %2699
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = add nsw i32 %2701, 1
  store i32 %2702, ptr @test_count, align 4, !tbaa !5
  %2703 = load ptr, ptr %54, align 8, !tbaa !9
  %2704 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %2703)
  %2705 = icmp eq i32 %2704, -1
  br i1 %2705, label %2706, label %2759

2706:                                             ; preds = %2700
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

2708:                                             ; preds = %2707
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2709 = call ptr @__errno_location() #12
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  store i32 %2710, ptr %57, align 4, !tbaa !5
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = call i32 @s2n_print_stacktrace(ptr noundef %2711)
  %2713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2714 = trunc i8 %2713 to i1
  br i1 %2714, label %2715, label %2737

2715:                                             ; preds = %2708
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = call i32 @fileno(ptr noundef %2716) #11
  %2718 = call i32 @isatty(i32 noundef %2717) #11
  %2719 = icmp ne i32 %2718, 0
  br i1 %2719, label %2720, label %2737

2720:                                             ; preds = %2715
  %2721 = load i32, ptr %57, align 4, !tbaa !5
  %2722 = call ptr @__errno_location() #12
  store i32 %2721, ptr %2722, align 4, !tbaa !5
  %2723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2724 = load i32, ptr @test_count, align 4, !tbaa !5
  %2725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2726 = load i32, ptr %2725, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror(i32 noundef %2726, ptr noundef @.str.4)
  %2728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2729 = load i32, ptr %2728, align 4, !tbaa !5
  %2730 = call ptr @s2n_strerror_debug(i32 noundef %2729, ptr noundef @.str.4)
  %2731 = call ptr @__errno_location() #12
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call ptr @strerror(i32 noundef %2732) #11
  %2734 = call ptr @__errno_location() #12
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2723, ptr noundef @.str.2, i32 noundef %2724, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2727, ptr noundef %2730, ptr noundef %2733, i32 noundef %2735) #11
  br label %2754

2737:                                             ; preds = %2715, %2708
  %2738 = load i32, ptr %57, align 4, !tbaa !5
  %2739 = call ptr @__errno_location() #12
  store i32 %2738, ptr %2739, align 4, !tbaa !5
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = load i32, ptr @test_count, align 4, !tbaa !5
  %2742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call ptr @s2n_strerror(i32 noundef %2743, ptr noundef @.str.4)
  %2745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2746 = load i32, ptr %2745, align 4, !tbaa !5
  %2747 = call ptr @s2n_strerror_debug(i32 noundef %2746, ptr noundef @.str.4)
  %2748 = call ptr @__errno_location() #12
  %2749 = load i32, ptr %2748, align 4, !tbaa !5
  %2750 = call ptr @strerror(i32 noundef %2749) #11
  %2751 = call ptr @__errno_location() #12
  %2752 = load i32, ptr %2751, align 4, !tbaa !5
  %2753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2740, ptr noundef @.str.5, i32 noundef %2741, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2744, ptr noundef %2747, ptr noundef %2750, i32 noundef %2752) #11
  br label %2754

2754:                                             ; preds = %2737, %2720
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2755

2755:                                             ; preds = %2754
  br label %2756

2756:                                             ; preds = %2755
  call void @exit(i32 noundef 1) #13
  unreachable

2757:                                             ; No predecessors!
  br label %2758

2758:                                             ; preds = %2757
  br label %2759

2759:                                             ; preds = %2758, %2700
  br label %2760

2760:                                             ; preds = %2759
  br label %2761

2761:                                             ; preds = %2760
  br label %2762

2762:                                             ; preds = %2761
  %2763 = load i32, ptr @test_count, align 4, !tbaa !5
  %2764 = add nsw i32 %2763, 1
  store i32 %2764, ptr @test_count, align 4, !tbaa !5
  %2765 = load ptr, ptr %54, align 8, !tbaa !9
  %2766 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2765, ptr noundef @.str.31)
  %2767 = icmp eq i32 %2766, -1
  br i1 %2767, label %2768, label %2821

2768:                                             ; preds = %2762
  br label %2769

2769:                                             ; preds = %2768
  br label %2770

2770:                                             ; preds = %2769
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2771 = call ptr @__errno_location() #12
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  store i32 %2772, ptr %58, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = call i32 @s2n_print_stacktrace(ptr noundef %2773)
  %2775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2776 = trunc i8 %2775 to i1
  br i1 %2776, label %2777, label %2799

2777:                                             ; preds = %2770
  %2778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2779 = call i32 @fileno(ptr noundef %2778) #11
  %2780 = call i32 @isatty(i32 noundef %2779) #11
  %2781 = icmp ne i32 %2780, 0
  br i1 %2781, label %2782, label %2799

2782:                                             ; preds = %2777
  %2783 = load i32, ptr %58, align 4, !tbaa !5
  %2784 = call ptr @__errno_location() #12
  store i32 %2783, ptr %2784, align 4, !tbaa !5
  %2785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2786 = load i32, ptr @test_count, align 4, !tbaa !5
  %2787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror(i32 noundef %2788, ptr noundef @.str.4)
  %2790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2791 = load i32, ptr %2790, align 4, !tbaa !5
  %2792 = call ptr @s2n_strerror_debug(i32 noundef %2791, ptr noundef @.str.4)
  %2793 = call ptr @__errno_location() #12
  %2794 = load i32, ptr %2793, align 4, !tbaa !5
  %2795 = call ptr @strerror(i32 noundef %2794) #11
  %2796 = call ptr @__errno_location() #12
  %2797 = load i32, ptr %2796, align 4, !tbaa !5
  %2798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2785, ptr noundef @.str.2, i32 noundef %2786, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2789, ptr noundef %2792, ptr noundef %2795, i32 noundef %2797) #11
  br label %2816

2799:                                             ; preds = %2777, %2770
  %2800 = load i32, ptr %58, align 4, !tbaa !5
  %2801 = call ptr @__errno_location() #12
  store i32 %2800, ptr %2801, align 4, !tbaa !5
  %2802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2803 = load i32, ptr @test_count, align 4, !tbaa !5
  %2804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call ptr @s2n_strerror(i32 noundef %2805, ptr noundef @.str.4)
  %2807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call ptr @s2n_strerror_debug(i32 noundef %2808, ptr noundef @.str.4)
  %2810 = call ptr @__errno_location() #12
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = call ptr @strerror(i32 noundef %2811) #11
  %2813 = call ptr @__errno_location() #12
  %2814 = load i32, ptr %2813, align 4, !tbaa !5
  %2815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2802, ptr noundef @.str.5, i32 noundef %2803, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2806, ptr noundef %2809, ptr noundef %2812, i32 noundef %2814) #11
  br label %2816

2816:                                             ; preds = %2799, %2782
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2817

2817:                                             ; preds = %2816
  br label %2818

2818:                                             ; preds = %2817
  call void @exit(i32 noundef 1) #13
  unreachable

2819:                                             ; No predecessors!
  br label %2820

2820:                                             ; preds = %2819
  br label %2821

2821:                                             ; preds = %2820, %2762
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

2823:                                             ; preds = %2822
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  %2824 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2824, ptr %59, align 8, !tbaa !9
  br label %2825

2825:                                             ; preds = %2823
  %2826 = load i32, ptr @test_count, align 4, !tbaa !5
  %2827 = add nsw i32 %2826, 1
  store i32 %2827, ptr @test_count, align 4, !tbaa !5
  %2828 = load ptr, ptr %59, align 8, !tbaa !9
  %2829 = icmp eq ptr %2828, null
  br i1 %2829, label %2830, label %2883

2830:                                             ; preds = %2825
  br label %2831

2831:                                             ; preds = %2830
  br label %2832

2832:                                             ; preds = %2831
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %2833 = call ptr @__errno_location() #12
  %2834 = load i32, ptr %2833, align 4, !tbaa !5
  store i32 %2834, ptr %60, align 4, !tbaa !5
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2836 = call i32 @s2n_print_stacktrace(ptr noundef %2835)
  %2837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2838 = trunc i8 %2837 to i1
  br i1 %2838, label %2839, label %2861

2839:                                             ; preds = %2832
  %2840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2841 = call i32 @fileno(ptr noundef %2840) #11
  %2842 = call i32 @isatty(i32 noundef %2841) #11
  %2843 = icmp ne i32 %2842, 0
  br i1 %2843, label %2844, label %2861

2844:                                             ; preds = %2839
  %2845 = load i32, ptr %60, align 4, !tbaa !5
  %2846 = call ptr @__errno_location() #12
  store i32 %2845, ptr %2846, align 4, !tbaa !5
  %2847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2848 = load i32, ptr @test_count, align 4, !tbaa !5
  %2849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2850 = load i32, ptr %2849, align 4, !tbaa !5
  %2851 = call ptr @s2n_strerror(i32 noundef %2850, ptr noundef @.str.4)
  %2852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2853 = load i32, ptr %2852, align 4, !tbaa !5
  %2854 = call ptr @s2n_strerror_debug(i32 noundef %2853, ptr noundef @.str.4)
  %2855 = call ptr @__errno_location() #12
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  %2857 = call ptr @strerror(i32 noundef %2856) #11
  %2858 = call ptr @__errno_location() #12
  %2859 = load i32, ptr %2858, align 4, !tbaa !5
  %2860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2847, ptr noundef @.str.2, i32 noundef %2848, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2851, ptr noundef %2854, ptr noundef %2857, i32 noundef %2859) #11
  br label %2878

2861:                                             ; preds = %2839, %2832
  %2862 = load i32, ptr %60, align 4, !tbaa !5
  %2863 = call ptr @__errno_location() #12
  store i32 %2862, ptr %2863, align 4, !tbaa !5
  %2864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2865 = load i32, ptr @test_count, align 4, !tbaa !5
  %2866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call ptr @s2n_strerror(i32 noundef %2867, ptr noundef @.str.4)
  %2869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  %2871 = call ptr @s2n_strerror_debug(i32 noundef %2870, ptr noundef @.str.4)
  %2872 = call ptr @__errno_location() #12
  %2873 = load i32, ptr %2872, align 4, !tbaa !5
  %2874 = call ptr @strerror(i32 noundef %2873) #11
  %2875 = call ptr @__errno_location() #12
  %2876 = load i32, ptr %2875, align 4, !tbaa !5
  %2877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2864, ptr noundef @.str.5, i32 noundef %2865, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2868, ptr noundef %2871, ptr noundef %2874, i32 noundef %2876) #11
  br label %2878

2878:                                             ; preds = %2861, %2844
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2879

2879:                                             ; preds = %2878
  br label %2880

2880:                                             ; preds = %2879
  call void @exit(i32 noundef 1) #13
  unreachable

2881:                                             ; No predecessors!
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

2883:                                             ; preds = %2882, %2825
  br label %2884

2884:                                             ; preds = %2883
  br label %2885

2885:                                             ; preds = %2884
  br label %2886

2886:                                             ; preds = %2885
  %2887 = load i32, ptr @test_count, align 4, !tbaa !5
  %2888 = add nsw i32 %2887, 1
  store i32 %2888, ptr @test_count, align 4, !tbaa !5
  %2889 = load ptr, ptr %59, align 8, !tbaa !9
  %2890 = load ptr, ptr %54, align 8, !tbaa !9
  %2891 = call i32 @s2n_connection_set_config(ptr noundef %2889, ptr noundef %2890)
  %2892 = icmp eq i32 %2891, -1
  br i1 %2892, label %2893, label %2946

2893:                                             ; preds = %2886
  br label %2894

2894:                                             ; preds = %2893
  br label %2895

2895:                                             ; preds = %2894
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2896 = call ptr @__errno_location() #12
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  store i32 %2897, ptr %61, align 4, !tbaa !5
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = call i32 @s2n_print_stacktrace(ptr noundef %2898)
  %2900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2901 = trunc i8 %2900 to i1
  br i1 %2901, label %2902, label %2924

2902:                                             ; preds = %2895
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = call i32 @fileno(ptr noundef %2903) #11
  %2905 = call i32 @isatty(i32 noundef %2904) #11
  %2906 = icmp ne i32 %2905, 0
  br i1 %2906, label %2907, label %2924

2907:                                             ; preds = %2902
  %2908 = load i32, ptr %61, align 4, !tbaa !5
  %2909 = call ptr @__errno_location() #12
  store i32 %2908, ptr %2909, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = load i32, ptr @test_count, align 4, !tbaa !5
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror(i32 noundef %2913, ptr noundef @.str.4)
  %2915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror_debug(i32 noundef %2916, ptr noundef @.str.4)
  %2918 = call ptr @__errno_location() #12
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @strerror(i32 noundef %2919) #11
  %2921 = call ptr @__errno_location() #12
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2910, ptr noundef @.str.2, i32 noundef %2911, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2914, ptr noundef %2917, ptr noundef %2920, i32 noundef %2922) #11
  br label %2941

2924:                                             ; preds = %2902, %2895
  %2925 = load i32, ptr %61, align 4, !tbaa !5
  %2926 = call ptr @__errno_location() #12
  store i32 %2925, ptr %2926, align 4, !tbaa !5
  %2927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2928 = load i32, ptr @test_count, align 4, !tbaa !5
  %2929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call ptr @s2n_strerror(i32 noundef %2930, ptr noundef @.str.4)
  %2932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call ptr @s2n_strerror_debug(i32 noundef %2933, ptr noundef @.str.4)
  %2935 = call ptr @__errno_location() #12
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call ptr @strerror(i32 noundef %2936) #11
  %2938 = call ptr @__errno_location() #12
  %2939 = load i32, ptr %2938, align 4, !tbaa !5
  %2940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2927, ptr noundef @.str.5, i32 noundef %2928, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2931, ptr noundef %2934, ptr noundef %2937, i32 noundef %2939) #11
  br label %2941

2941:                                             ; preds = %2924, %2907
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942
  call void @exit(i32 noundef 1) #13
  unreachable

2944:                                             ; No predecessors!
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

2946:                                             ; preds = %2945, %2886
  br label %2947

2947:                                             ; preds = %2946
  br label %2948

2948:                                             ; preds = %2947
  %2949 = load i8, ptr %53, align 1, !tbaa !44
  %2950 = load ptr, ptr %59, align 8, !tbaa !9
  %2951 = getelementptr inbounds %struct.s2n_connection, ptr %2950, i32 0, i32 21
  store i8 %2949, ptr %2951, align 2, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  %2952 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2952, ptr %62, align 8, !tbaa !9
  br label %2953

2953:                                             ; preds = %2948
  %2954 = load i32, ptr @test_count, align 4, !tbaa !5
  %2955 = add nsw i32 %2954, 1
  store i32 %2955, ptr @test_count, align 4, !tbaa !5
  %2956 = load ptr, ptr %62, align 8, !tbaa !9
  %2957 = icmp eq ptr %2956, null
  br i1 %2957, label %2958, label %3011

2958:                                             ; preds = %2953
  br label %2959

2959:                                             ; preds = %2958
  br label %2960

2960:                                             ; preds = %2959
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2961 = call ptr @__errno_location() #12
  %2962 = load i32, ptr %2961, align 4, !tbaa !5
  store i32 %2962, ptr %63, align 4, !tbaa !5
  %2963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2964 = call i32 @s2n_print_stacktrace(ptr noundef %2963)
  %2965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2966 = trunc i8 %2965 to i1
  br i1 %2966, label %2967, label %2989

2967:                                             ; preds = %2960
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = call i32 @fileno(ptr noundef %2968) #11
  %2970 = call i32 @isatty(i32 noundef %2969) #11
  %2971 = icmp ne i32 %2970, 0
  br i1 %2971, label %2972, label %2989

2972:                                             ; preds = %2967
  %2973 = load i32, ptr %63, align 4, !tbaa !5
  %2974 = call ptr @__errno_location() #12
  store i32 %2973, ptr %2974, align 4, !tbaa !5
  %2975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2976 = load i32, ptr @test_count, align 4, !tbaa !5
  %2977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = call ptr @s2n_strerror(i32 noundef %2978, ptr noundef @.str.4)
  %2980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  %2982 = call ptr @s2n_strerror_debug(i32 noundef %2981, ptr noundef @.str.4)
  %2983 = call ptr @__errno_location() #12
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call ptr @strerror(i32 noundef %2984) #11
  %2986 = call ptr @__errno_location() #12
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2975, ptr noundef @.str.2, i32 noundef %2976, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2979, ptr noundef %2982, ptr noundef %2985, i32 noundef %2987) #11
  br label %3006

2989:                                             ; preds = %2967, %2960
  %2990 = load i32, ptr %63, align 4, !tbaa !5
  %2991 = call ptr @__errno_location() #12
  store i32 %2990, ptr %2991, align 4, !tbaa !5
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = load i32, ptr @test_count, align 4, !tbaa !5
  %2994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  %2996 = call ptr @s2n_strerror(i32 noundef %2995, ptr noundef @.str.4)
  %2997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  %2999 = call ptr @s2n_strerror_debug(i32 noundef %2998, ptr noundef @.str.4)
  %3000 = call ptr @__errno_location() #12
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call ptr @strerror(i32 noundef %3001) #11
  %3003 = call ptr @__errno_location() #12
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2992, ptr noundef @.str.5, i32 noundef %2993, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2996, ptr noundef %2999, ptr noundef %3002, i32 noundef %3004) #11
  br label %3006

3006:                                             ; preds = %2989, %2972
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %3007

3007:                                             ; preds = %3006
  br label %3008

3008:                                             ; preds = %3007
  call void @exit(i32 noundef 1) #13
  unreachable

3009:                                             ; No predecessors!
  br label %3010

3010:                                             ; preds = %3009
  br label %3011

3011:                                             ; preds = %3010, %2953
  br label %3012

3012:                                             ; preds = %3011
  br label %3013

3013:                                             ; preds = %3012
  br label %3014

3014:                                             ; preds = %3013
  %3015 = load i32, ptr @test_count, align 4, !tbaa !5
  %3016 = add nsw i32 %3015, 1
  store i32 %3016, ptr @test_count, align 4, !tbaa !5
  %3017 = load ptr, ptr %62, align 8, !tbaa !9
  %3018 = load ptr, ptr %54, align 8, !tbaa !9
  %3019 = call i32 @s2n_connection_set_config(ptr noundef %3017, ptr noundef %3018)
  %3020 = icmp eq i32 %3019, -1
  br i1 %3020, label %3021, label %3074

3021:                                             ; preds = %3014
  br label %3022

3022:                                             ; preds = %3021
  br label %3023

3023:                                             ; preds = %3022
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %3024 = call ptr @__errno_location() #12
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  store i32 %3025, ptr %64, align 4, !tbaa !5
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = call i32 @s2n_print_stacktrace(ptr noundef %3026)
  %3028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3029 = trunc i8 %3028 to i1
  br i1 %3029, label %3030, label %3052

3030:                                             ; preds = %3023
  %3031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3032 = call i32 @fileno(ptr noundef %3031) #11
  %3033 = call i32 @isatty(i32 noundef %3032) #11
  %3034 = icmp ne i32 %3033, 0
  br i1 %3034, label %3035, label %3052

3035:                                             ; preds = %3030
  %3036 = load i32, ptr %64, align 4, !tbaa !5
  %3037 = call ptr @__errno_location() #12
  store i32 %3036, ptr %3037, align 4, !tbaa !5
  %3038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3039 = load i32, ptr @test_count, align 4, !tbaa !5
  %3040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3041 = load i32, ptr %3040, align 4, !tbaa !5
  %3042 = call ptr @s2n_strerror(i32 noundef %3041, ptr noundef @.str.4)
  %3043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = call ptr @s2n_strerror_debug(i32 noundef %3044, ptr noundef @.str.4)
  %3046 = call ptr @__errno_location() #12
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call ptr @strerror(i32 noundef %3047) #11
  %3049 = call ptr @__errno_location() #12
  %3050 = load i32, ptr %3049, align 4, !tbaa !5
  %3051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3038, ptr noundef @.str.2, i32 noundef %3039, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3042, ptr noundef %3045, ptr noundef %3048, i32 noundef %3050) #11
  br label %3069

3052:                                             ; preds = %3030, %3023
  %3053 = load i32, ptr %64, align 4, !tbaa !5
  %3054 = call ptr @__errno_location() #12
  store i32 %3053, ptr %3054, align 4, !tbaa !5
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = load i32, ptr @test_count, align 4, !tbaa !5
  %3057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call ptr @s2n_strerror(i32 noundef %3058, ptr noundef @.str.4)
  %3060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3061 = load i32, ptr %3060, align 4, !tbaa !5
  %3062 = call ptr @s2n_strerror_debug(i32 noundef %3061, ptr noundef @.str.4)
  %3063 = call ptr @__errno_location() #12
  %3064 = load i32, ptr %3063, align 4, !tbaa !5
  %3065 = call ptr @strerror(i32 noundef %3064) #11
  %3066 = call ptr @__errno_location() #12
  %3067 = load i32, ptr %3066, align 4, !tbaa !5
  %3068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3055, ptr noundef @.str.5, i32 noundef %3056, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3059, ptr noundef %3062, ptr noundef %3065, i32 noundef %3067) #11
  br label %3069

3069:                                             ; preds = %3052, %3035
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070
  call void @exit(i32 noundef 1) #13
  unreachable

3072:                                             ; No predecessors!
  br label %3073

3073:                                             ; preds = %3072
  br label %3074

3074:                                             ; preds = %3073, %3014
  br label %3075

3075:                                             ; preds = %3074
  br label %3076

3076:                                             ; preds = %3075
  %3077 = load ptr, ptr %62, align 8, !tbaa !9
  %3078 = getelementptr inbounds %struct.s2n_connection, ptr %3077, i32 0, i32 28
  %3079 = getelementptr inbounds %struct.s2n_secrets, ptr %3078, i32 0, i32 0
  %3080 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %3079, i32 0, i32 1
  %3081 = getelementptr inbounds [48 x i8], ptr %3080, i64 0, i64 0
  call void @llvm.memset.p0.i64(ptr align 8 %3081, i8 1, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #11
  call void @llvm.memset.p0.i64(ptr align 4 %65, i8 0, i64 8, i1 false)
  br label %3082

3082:                                             ; preds = %3076
  %3083 = load i32, ptr @test_count, align 4, !tbaa !5
  %3084 = add nsw i32 %3083, 1
  store i32 %3084, ptr @test_count, align 4, !tbaa !5
  %3085 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %65)
  %3086 = icmp eq i32 %3085, -1
  br i1 %3086, label %3087, label %3140

3087:                                             ; preds = %3082
  br label %3088

3088:                                             ; preds = %3087
  br label %3089

3089:                                             ; preds = %3088
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %3090 = call ptr @__errno_location() #12
  %3091 = load i32, ptr %3090, align 4, !tbaa !5
  store i32 %3091, ptr %66, align 4, !tbaa !5
  %3092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3093 = call i32 @s2n_print_stacktrace(ptr noundef %3092)
  %3094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3095 = trunc i8 %3094 to i1
  br i1 %3095, label %3096, label %3118

3096:                                             ; preds = %3089
  %3097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3098 = call i32 @fileno(ptr noundef %3097) #11
  %3099 = call i32 @isatty(i32 noundef %3098) #11
  %3100 = icmp ne i32 %3099, 0
  br i1 %3100, label %3101, label %3118

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

3118:                                             ; preds = %3096, %3089
  %3119 = load i32, ptr %66, align 4, !tbaa !5
  %3120 = call ptr @__errno_location() #12
  store i32 %3119, ptr %3120, align 4, !tbaa !5
  %3121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3122 = load i32, ptr @test_count, align 4, !tbaa !5
  %3123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = call ptr @s2n_strerror(i32 noundef %3124, ptr noundef @.str.4)
  %3126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror_debug(i32 noundef %3127, ptr noundef @.str.4)
  %3129 = call ptr @__errno_location() #12
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call ptr @strerror(i32 noundef %3130) #11
  %3132 = call ptr @__errno_location() #12
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3121, ptr noundef @.str.5, i32 noundef %3122, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 146, ptr noundef %3125, ptr noundef %3128, ptr noundef %3131, i32 noundef %3133) #11
  br label %3135

3135:                                             ; preds = %3118, %3101
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %3136

3136:                                             ; preds = %3135
  br label %3137

3137:                                             ; preds = %3136
  call void @exit(i32 noundef 1) #13
  unreachable

3138:                                             ; No predecessors!
  br label %3139

3139:                                             ; preds = %3138
  br label %3140

3140:                                             ; preds = %3139, %3082
  br label %3141

3141:                                             ; preds = %3140
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

3143:                                             ; preds = %3142
  %3144 = load i32, ptr @test_count, align 4, !tbaa !5
  %3145 = add nsw i32 %3144, 1
  store i32 %3145, ptr @test_count, align 4, !tbaa !5
  %3146 = load ptr, ptr %59, align 8, !tbaa !9
  %3147 = load ptr, ptr %62, align 8, !tbaa !9
  %3148 = call i32 @s2n_connections_set_io_pair(ptr noundef %3146, ptr noundef %3147, ptr noundef %65)
  %3149 = icmp eq i32 %3148, -1
  br i1 %3149, label %3150, label %3203

3150:                                             ; preds = %3143
  br label %3151

3151:                                             ; preds = %3150
  br label %3152

3152:                                             ; preds = %3151
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %3153 = call ptr @__errno_location() #12
  %3154 = load i32, ptr %3153, align 4, !tbaa !5
  store i32 %3154, ptr %67, align 4, !tbaa !5
  %3155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3156 = call i32 @s2n_print_stacktrace(ptr noundef %3155)
  %3157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3158 = trunc i8 %3157 to i1
  br i1 %3158, label %3159, label %3181

3159:                                             ; preds = %3152
  %3160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3161 = call i32 @fileno(ptr noundef %3160) #11
  %3162 = call i32 @isatty(i32 noundef %3161) #11
  %3163 = icmp ne i32 %3162, 0
  br i1 %3163, label %3164, label %3181

3164:                                             ; preds = %3159
  %3165 = load i32, ptr %67, align 4, !tbaa !5
  %3166 = call ptr @__errno_location() #12
  store i32 %3165, ptr %3166, align 4, !tbaa !5
  %3167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3168 = load i32, ptr @test_count, align 4, !tbaa !5
  %3169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3170 = load i32, ptr %3169, align 4, !tbaa !5
  %3171 = call ptr @s2n_strerror(i32 noundef %3170, ptr noundef @.str.4)
  %3172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3173 = load i32, ptr %3172, align 4, !tbaa !5
  %3174 = call ptr @s2n_strerror_debug(i32 noundef %3173, ptr noundef @.str.4)
  %3175 = call ptr @__errno_location() #12
  %3176 = load i32, ptr %3175, align 4, !tbaa !5
  %3177 = call ptr @strerror(i32 noundef %3176) #11
  %3178 = call ptr @__errno_location() #12
  %3179 = load i32, ptr %3178, align 4, !tbaa !5
  %3180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3167, ptr noundef @.str.2, i32 noundef %3168, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 147, ptr noundef %3171, ptr noundef %3174, ptr noundef %3177, i32 noundef %3179) #11
  br label %3198

3181:                                             ; preds = %3159, %3152
  %3182 = load i32, ptr %67, align 4, !tbaa !5
  %3183 = call ptr @__errno_location() #12
  store i32 %3182, ptr %3183, align 4, !tbaa !5
  %3184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3185 = load i32, ptr @test_count, align 4, !tbaa !5
  %3186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3187 = load i32, ptr %3186, align 4, !tbaa !5
  %3188 = call ptr @s2n_strerror(i32 noundef %3187, ptr noundef @.str.4)
  %3189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3190 = load i32, ptr %3189, align 4, !tbaa !5
  %3191 = call ptr @s2n_strerror_debug(i32 noundef %3190, ptr noundef @.str.4)
  %3192 = call ptr @__errno_location() #12
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call ptr @strerror(i32 noundef %3193) #11
  %3195 = call ptr @__errno_location() #12
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3184, ptr noundef @.str.5, i32 noundef %3185, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 147, ptr noundef %3188, ptr noundef %3191, ptr noundef %3194, i32 noundef %3196) #11
  br label %3198

3198:                                             ; preds = %3181, %3164
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %3199

3199:                                             ; preds = %3198
  br label %3200

3200:                                             ; preds = %3199
  call void @exit(i32 noundef 1) #13
  unreachable

3201:                                             ; No predecessors!
  br label %3202

3202:                                             ; preds = %3201
  br label %3203

3203:                                             ; preds = %3202, %3143
  br label %3204

3204:                                             ; preds = %3203
  br label %3205

3205:                                             ; preds = %3204
  br label %3206

3206:                                             ; preds = %3205
  %3207 = load i32, ptr @test_count, align 4, !tbaa !5
  %3208 = add nsw i32 %3207, 1
  store i32 %3208, ptr @test_count, align 4, !tbaa !5
  %3209 = load ptr, ptr %62, align 8, !tbaa !9
  %3210 = load ptr, ptr %59, align 8, !tbaa !9
  %3211 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3209, ptr noundef %3210)
  %3212 = icmp eq i32 %3211, -1
  br i1 %3212, label %3213, label %3266

3213:                                             ; preds = %3206
  br label %3214

3214:                                             ; preds = %3213
  br label %3215

3215:                                             ; preds = %3214
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %3216 = call ptr @__errno_location() #12
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  store i32 %3217, ptr %68, align 4, !tbaa !5
  %3218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3219 = call i32 @s2n_print_stacktrace(ptr noundef %3218)
  %3220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3221 = trunc i8 %3220 to i1
  br i1 %3221, label %3222, label %3244

3222:                                             ; preds = %3215
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = call i32 @fileno(ptr noundef %3223) #11
  %3225 = call i32 @isatty(i32 noundef %3224) #11
  %3226 = icmp ne i32 %3225, 0
  br i1 %3226, label %3227, label %3244

3227:                                             ; preds = %3222
  %3228 = load i32, ptr %68, align 4, !tbaa !5
  %3229 = call ptr @__errno_location() #12
  store i32 %3228, ptr %3229, align 4, !tbaa !5
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = load i32, ptr @test_count, align 4, !tbaa !5
  %3232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = call ptr @s2n_strerror(i32 noundef %3233, ptr noundef @.str.4)
  %3235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  %3237 = call ptr @s2n_strerror_debug(i32 noundef %3236, ptr noundef @.str.4)
  %3238 = call ptr @__errno_location() #12
  %3239 = load i32, ptr %3238, align 4, !tbaa !5
  %3240 = call ptr @strerror(i32 noundef %3239) #11
  %3241 = call ptr @__errno_location() #12
  %3242 = load i32, ptr %3241, align 4, !tbaa !5
  %3243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3230, ptr noundef @.str.2, i32 noundef %3231, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3234, ptr noundef %3237, ptr noundef %3240, i32 noundef %3242) #11
  br label %3261

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

3261:                                             ; preds = %3244, %3227
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %3262

3262:                                             ; preds = %3261
  br label %3263

3263:                                             ; preds = %3262
  call void @exit(i32 noundef 1) #13
  unreachable

3264:                                             ; No predecessors!
  br label %3265

3265:                                             ; preds = %3264
  br label %3266

3266:                                             ; preds = %3265, %3206
  br label %3267

3267:                                             ; preds = %3266
  br label %3268

3268:                                             ; preds = %3267
  br label %3269

3269:                                             ; preds = %3268
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = add nsw i32 %3270, 1
  store i32 %3271, ptr @test_count, align 4, !tbaa !5
  %3272 = load ptr, ptr %62, align 8, !tbaa !9
  %3273 = getelementptr inbounds %struct.s2n_connection, ptr %3272, i32 0, i32 23
  %3274 = load i8, ptr %3273, align 4, !tbaa !17
  %3275 = zext i8 %3274 to i32
  %3276 = load i8, ptr %53, align 1, !tbaa !44
  %3277 = zext i8 %3276 to i32
  %3278 = icmp eq i32 %3275, %3277
  br i1 %3278, label %3332, label %3279

3279:                                             ; preds = %3269
  br label %3280

3280:                                             ; preds = %3279
  br label %3281

3281:                                             ; preds = %3280
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %3282 = call ptr @__errno_location() #12
  %3283 = load i32, ptr %3282, align 4, !tbaa !5
  store i32 %3283, ptr %69, align 4, !tbaa !5
  %3284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3285 = call i32 @s2n_print_stacktrace(ptr noundef %3284)
  %3286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3287 = trunc i8 %3286 to i1
  br i1 %3287, label %3288, label %3310

3288:                                             ; preds = %3281
  %3289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3290 = call i32 @fileno(ptr noundef %3289) #11
  %3291 = call i32 @isatty(i32 noundef %3290) #11
  %3292 = icmp ne i32 %3291, 0
  br i1 %3292, label %3293, label %3310

3293:                                             ; preds = %3288
  %3294 = load i32, ptr %69, align 4, !tbaa !5
  %3295 = call ptr @__errno_location() #12
  store i32 %3294, ptr %3295, align 4, !tbaa !5
  %3296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3297 = load i32, ptr @test_count, align 4, !tbaa !5
  %3298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call ptr @s2n_strerror(i32 noundef %3299, ptr noundef @.str.4)
  %3301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3302 = load i32, ptr %3301, align 4, !tbaa !5
  %3303 = call ptr @s2n_strerror_debug(i32 noundef %3302, ptr noundef @.str.4)
  %3304 = call ptr @__errno_location() #12
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call ptr @strerror(i32 noundef %3305) #11
  %3307 = call ptr @__errno_location() #12
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3296, ptr noundef @.str.2, i32 noundef %3297, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 149, ptr noundef %3300, ptr noundef %3303, ptr noundef %3306, i32 noundef %3308) #11
  br label %3327

3310:                                             ; preds = %3288, %3281
  %3311 = load i32, ptr %69, align 4, !tbaa !5
  %3312 = call ptr @__errno_location() #12
  store i32 %3311, ptr %3312, align 4, !tbaa !5
  %3313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3314 = load i32, ptr @test_count, align 4, !tbaa !5
  %3315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  %3317 = call ptr @s2n_strerror(i32 noundef %3316, ptr noundef @.str.4)
  %3318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  %3320 = call ptr @s2n_strerror_debug(i32 noundef %3319, ptr noundef @.str.4)
  %3321 = call ptr @__errno_location() #12
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call ptr @strerror(i32 noundef %3322) #11
  %3324 = call ptr @__errno_location() #12
  %3325 = load i32, ptr %3324, align 4, !tbaa !5
  %3326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3313, ptr noundef @.str.5, i32 noundef %3314, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 149, ptr noundef %3317, ptr noundef %3320, ptr noundef %3323, i32 noundef %3325) #11
  br label %3327

3327:                                             ; preds = %3310, %3293
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

3329:                                             ; preds = %3328
  call void @exit(i32 noundef 1) #13
  unreachable

3330:                                             ; No predecessors!
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

3332:                                             ; preds = %3331, %3269
  br label %3333

3333:                                             ; preds = %3332
  br label %3334

3334:                                             ; preds = %3333
  call void @llvm.lifetime.start.p0(i64 48, ptr %70) #11
  call void @llvm.memset.p0.i64(ptr align 16 %70, i8 0, i64 48, i1 false)
  br label %3335

3335:                                             ; preds = %3334
  %3336 = load i32, ptr @test_count, align 4, !tbaa !5
  %3337 = add nsw i32 %3336, 1
  store i32 %3337, ptr @test_count, align 4, !tbaa !5
  %3338 = load ptr, ptr %62, align 8, !tbaa !9
  %3339 = getelementptr inbounds [48 x i8], ptr %70, i64 0, i64 0
  %3340 = call i32 @s2n_connection_get_master_secret(ptr noundef %3338, ptr noundef %3339, i64 noundef 48)
  %3341 = icmp eq i32 %3340, -1
  br i1 %3341, label %3342, label %3395

3342:                                             ; preds = %3335
  br label %3343

3343:                                             ; preds = %3342
  br label %3344

3344:                                             ; preds = %3343
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %3345 = call ptr @__errno_location() #12
  %3346 = load i32, ptr %3345, align 4, !tbaa !5
  store i32 %3346, ptr %71, align 4, !tbaa !5
  %3347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3348 = call i32 @s2n_print_stacktrace(ptr noundef %3347)
  %3349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3350 = trunc i8 %3349 to i1
  br i1 %3350, label %3351, label %3373

3351:                                             ; preds = %3344
  %3352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3353 = call i32 @fileno(ptr noundef %3352) #11
  %3354 = call i32 @isatty(i32 noundef %3353) #11
  %3355 = icmp ne i32 %3354, 0
  br i1 %3355, label %3356, label %3373

3356:                                             ; preds = %3351
  %3357 = load i32, ptr %71, align 4, !tbaa !5
  %3358 = call ptr @__errno_location() #12
  store i32 %3357, ptr %3358, align 4, !tbaa !5
  %3359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3360 = load i32, ptr @test_count, align 4, !tbaa !5
  %3361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call ptr @s2n_strerror(i32 noundef %3362, ptr noundef @.str.4)
  %3364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3365 = load i32, ptr %3364, align 4, !tbaa !5
  %3366 = call ptr @s2n_strerror_debug(i32 noundef %3365, ptr noundef @.str.4)
  %3367 = call ptr @__errno_location() #12
  %3368 = load i32, ptr %3367, align 4, !tbaa !5
  %3369 = call ptr @strerror(i32 noundef %3368) #11
  %3370 = call ptr @__errno_location() #12
  %3371 = load i32, ptr %3370, align 4, !tbaa !5
  %3372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3359, ptr noundef @.str.2, i32 noundef %3360, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3363, ptr noundef %3366, ptr noundef %3369, i32 noundef %3371) #11
  br label %3390

3373:                                             ; preds = %3351, %3344
  %3374 = load i32, ptr %71, align 4, !tbaa !5
  %3375 = call ptr @__errno_location() #12
  store i32 %3374, ptr %3375, align 4, !tbaa !5
  %3376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3377 = load i32, ptr @test_count, align 4, !tbaa !5
  %3378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call ptr @s2n_strerror(i32 noundef %3379, ptr noundef @.str.4)
  %3381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call ptr @s2n_strerror_debug(i32 noundef %3382, ptr noundef @.str.4)
  %3384 = call ptr @__errno_location() #12
  %3385 = load i32, ptr %3384, align 4, !tbaa !5
  %3386 = call ptr @strerror(i32 noundef %3385) #11
  %3387 = call ptr @__errno_location() #12
  %3388 = load i32, ptr %3387, align 4, !tbaa !5
  %3389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3376, ptr noundef @.str.5, i32 noundef %3377, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3380, ptr noundef %3383, ptr noundef %3386, i32 noundef %3388) #11
  br label %3390

3390:                                             ; preds = %3373, %3356
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %3391

3391:                                             ; preds = %3390
  br label %3392

3392:                                             ; preds = %3391
  call void @exit(i32 noundef 1) #13
  unreachable

3393:                                             ; No predecessors!
  br label %3394

3394:                                             ; preds = %3393
  br label %3395

3395:                                             ; preds = %3394, %3335
  br label %3396

3396:                                             ; preds = %3395
  br label %3397

3397:                                             ; preds = %3396
  br label %3398

3398:                                             ; preds = %3397
  br label %3399

3399:                                             ; preds = %3398
  %3400 = load i32, ptr @test_count, align 4, !tbaa !5
  %3401 = add nsw i32 %3400, 1
  store i32 %3401, ptr @test_count, align 4, !tbaa !5
  %3402 = load ptr, ptr %62, align 8, !tbaa !9
  %3403 = getelementptr inbounds %struct.s2n_connection, ptr %3402, i32 0, i32 28
  %3404 = getelementptr inbounds %struct.s2n_secrets, ptr %3403, i32 0, i32 0
  %3405 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %3404, i32 0, i32 1
  %3406 = getelementptr inbounds [48 x i8], ptr %3405, i64 0, i64 0
  %3407 = getelementptr inbounds [48 x i8], ptr %70, i64 0, i64 0
  %3408 = call i32 @memcmp(ptr noundef %3406, ptr noundef %3407, i64 noundef 48) #14
  %3409 = icmp eq i32 %3408, 0
  br i1 %3409, label %3463, label %3410

3410:                                             ; preds = %3399
  br label %3411

3411:                                             ; preds = %3410
  br label %3412

3412:                                             ; preds = %3411
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %3413 = call ptr @__errno_location() #12
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  store i32 %3414, ptr %72, align 4, !tbaa !5
  %3415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3416 = call i32 @s2n_print_stacktrace(ptr noundef %3415)
  %3417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3418 = trunc i8 %3417 to i1
  br i1 %3418, label %3419, label %3441

3419:                                             ; preds = %3412
  %3420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3421 = call i32 @fileno(ptr noundef %3420) #11
  %3422 = call i32 @isatty(i32 noundef %3421) #11
  %3423 = icmp ne i32 %3422, 0
  br i1 %3423, label %3424, label %3441

3424:                                             ; preds = %3419
  %3425 = load i32, ptr %72, align 4, !tbaa !5
  %3426 = call ptr @__errno_location() #12
  store i32 %3425, ptr %3426, align 4, !tbaa !5
  %3427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3428 = load i32, ptr @test_count, align 4, !tbaa !5
  %3429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3430 = load i32, ptr %3429, align 4, !tbaa !5
  %3431 = call ptr @s2n_strerror(i32 noundef %3430, ptr noundef @.str.4)
  %3432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3433 = load i32, ptr %3432, align 4, !tbaa !5
  %3434 = call ptr @s2n_strerror_debug(i32 noundef %3433, ptr noundef @.str.4)
  %3435 = call ptr @__errno_location() #12
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call ptr @strerror(i32 noundef %3436) #11
  %3438 = call ptr @__errno_location() #12
  %3439 = load i32, ptr %3438, align 4, !tbaa !5
  %3440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3427, ptr noundef @.str.2, i32 noundef %3428, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3431, ptr noundef %3434, ptr noundef %3437, i32 noundef %3439) #11
  br label %3458

3441:                                             ; preds = %3419, %3412
  %3442 = load i32, ptr %72, align 4, !tbaa !5
  %3443 = call ptr @__errno_location() #12
  store i32 %3442, ptr %3443, align 4, !tbaa !5
  %3444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3445 = load i32, ptr @test_count, align 4, !tbaa !5
  %3446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  %3448 = call ptr @s2n_strerror(i32 noundef %3447, ptr noundef @.str.4)
  %3449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3450 = load i32, ptr %3449, align 4, !tbaa !5
  %3451 = call ptr @s2n_strerror_debug(i32 noundef %3450, ptr noundef @.str.4)
  %3452 = call ptr @__errno_location() #12
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call ptr @strerror(i32 noundef %3453) #11
  %3455 = call ptr @__errno_location() #12
  %3456 = load i32, ptr %3455, align 4, !tbaa !5
  %3457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3444, ptr noundef @.str.5, i32 noundef %3445, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3448, ptr noundef %3451, ptr noundef %3454, i32 noundef %3456) #11
  br label %3458

3458:                                             ; preds = %3441, %3424
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %3459

3459:                                             ; preds = %3458
  br label %3460

3460:                                             ; preds = %3459
  call void @exit(i32 noundef 1) #13
  unreachable

3461:                                             ; No predecessors!
  br label %3462

3462:                                             ; preds = %3461
  br label %3463

3463:                                             ; preds = %3462, %3399
  br label %3464

3464:                                             ; preds = %3463
  br label %3465

3465:                                             ; preds = %3464
  br label %3466

3466:                                             ; preds = %3465
  br label %3467

3467:                                             ; preds = %3466
  call void @llvm.lifetime.start.p0(i64 48, ptr %73) #11
  call void @llvm.memset.p0.i64(ptr align 16 %73, i8 0, i64 48, i1 false)
  br label %3468

3468:                                             ; preds = %3467
  %3469 = load i32, ptr @test_count, align 4, !tbaa !5
  %3470 = add nsw i32 %3469, 1
  store i32 %3470, ptr @test_count, align 4, !tbaa !5
  %3471 = load ptr, ptr %59, align 8, !tbaa !9
  %3472 = getelementptr inbounds [48 x i8], ptr %73, i64 0, i64 0
  %3473 = call i32 @s2n_connection_get_master_secret(ptr noundef %3471, ptr noundef %3472, i64 noundef 48)
  %3474 = icmp eq i32 %3473, -1
  br i1 %3474, label %3475, label %3528

3475:                                             ; preds = %3468
  br label %3476

3476:                                             ; preds = %3475
  br label %3477

3477:                                             ; preds = %3476
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #11
  %3478 = call ptr @__errno_location() #12
  %3479 = load i32, ptr %3478, align 4, !tbaa !5
  store i32 %3479, ptr %74, align 4, !tbaa !5
  %3480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3481 = call i32 @s2n_print_stacktrace(ptr noundef %3480)
  %3482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3483 = trunc i8 %3482 to i1
  br i1 %3483, label %3484, label %3506

3484:                                             ; preds = %3477
  %3485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3486 = call i32 @fileno(ptr noundef %3485) #11
  %3487 = call i32 @isatty(i32 noundef %3486) #11
  %3488 = icmp ne i32 %3487, 0
  br i1 %3488, label %3489, label %3506

3489:                                             ; preds = %3484
  %3490 = load i32, ptr %74, align 4, !tbaa !5
  %3491 = call ptr @__errno_location() #12
  store i32 %3490, ptr %3491, align 4, !tbaa !5
  %3492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3493 = load i32, ptr @test_count, align 4, !tbaa !5
  %3494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3495 = load i32, ptr %3494, align 4, !tbaa !5
  %3496 = call ptr @s2n_strerror(i32 noundef %3495, ptr noundef @.str.4)
  %3497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3498 = load i32, ptr %3497, align 4, !tbaa !5
  %3499 = call ptr @s2n_strerror_debug(i32 noundef %3498, ptr noundef @.str.4)
  %3500 = call ptr @__errno_location() #12
  %3501 = load i32, ptr %3500, align 4, !tbaa !5
  %3502 = call ptr @strerror(i32 noundef %3501) #11
  %3503 = call ptr @__errno_location() #12
  %3504 = load i32, ptr %3503, align 4, !tbaa !5
  %3505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3492, ptr noundef @.str.2, i32 noundef %3493, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3496, ptr noundef %3499, ptr noundef %3502, i32 noundef %3504) #11
  br label %3523

3506:                                             ; preds = %3484, %3477
  %3507 = load i32, ptr %74, align 4, !tbaa !5
  %3508 = call ptr @__errno_location() #12
  store i32 %3507, ptr %3508, align 4, !tbaa !5
  %3509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3510 = load i32, ptr @test_count, align 4, !tbaa !5
  %3511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3512 = load i32, ptr %3511, align 4, !tbaa !5
  %3513 = call ptr @s2n_strerror(i32 noundef %3512, ptr noundef @.str.4)
  %3514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3515 = load i32, ptr %3514, align 4, !tbaa !5
  %3516 = call ptr @s2n_strerror_debug(i32 noundef %3515, ptr noundef @.str.4)
  %3517 = call ptr @__errno_location() #12
  %3518 = load i32, ptr %3517, align 4, !tbaa !5
  %3519 = call ptr @strerror(i32 noundef %3518) #11
  %3520 = call ptr @__errno_location() #12
  %3521 = load i32, ptr %3520, align 4, !tbaa !5
  %3522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3509, ptr noundef @.str.5, i32 noundef %3510, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3513, ptr noundef %3516, ptr noundef %3519, i32 noundef %3521) #11
  br label %3523

3523:                                             ; preds = %3506, %3489
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3524

3524:                                             ; preds = %3523
  br label %3525

3525:                                             ; preds = %3524
  call void @exit(i32 noundef 1) #13
  unreachable

3526:                                             ; No predecessors!
  br label %3527

3527:                                             ; preds = %3526
  br label %3528

3528:                                             ; preds = %3527, %3468
  br label %3529

3529:                                             ; preds = %3528
  br label %3530

3530:                                             ; preds = %3529
  br label %3531

3531:                                             ; preds = %3530
  br label %3532

3532:                                             ; preds = %3531
  %3533 = load i32, ptr @test_count, align 4, !tbaa !5
  %3534 = add nsw i32 %3533, 1
  store i32 %3534, ptr @test_count, align 4, !tbaa !5
  %3535 = load ptr, ptr %59, align 8, !tbaa !9
  %3536 = getelementptr inbounds %struct.s2n_connection, ptr %3535, i32 0, i32 28
  %3537 = getelementptr inbounds %struct.s2n_secrets, ptr %3536, i32 0, i32 0
  %3538 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %3537, i32 0, i32 1
  %3539 = getelementptr inbounds [48 x i8], ptr %3538, i64 0, i64 0
  %3540 = getelementptr inbounds [48 x i8], ptr %73, i64 0, i64 0
  %3541 = call i32 @memcmp(ptr noundef %3539, ptr noundef %3540, i64 noundef 48) #14
  %3542 = icmp eq i32 %3541, 0
  br i1 %3542, label %3596, label %3543

3543:                                             ; preds = %3532
  br label %3544

3544:                                             ; preds = %3543
  br label %3545

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

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

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

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

3591:                                             ; preds = %3574, %3557
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %3592

3592:                                             ; preds = %3591
  br label %3593

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

3594:                                             ; No predecessors!
  br label %3595

3595:                                             ; preds = %3594
  br label %3596

3596:                                             ; preds = %3595, %3532
  br label %3597

3597:                                             ; preds = %3596
  br label %3598

3598:                                             ; preds = %3597
  br label %3599

3599:                                             ; preds = %3598
  br label %3600

3600:                                             ; preds = %3599
  br label %3601

3601:                                             ; preds = %3600
  br label %3602

3602:                                             ; preds = %3601
  %3603 = load i32, ptr @test_count, align 4, !tbaa !5
  %3604 = add nsw i32 %3603, 1
  store i32 %3604, ptr @test_count, align 4, !tbaa !5
  %3605 = getelementptr inbounds [48 x i8], ptr %70, i64 0, i64 0
  %3606 = getelementptr inbounds [48 x i8], ptr %73, i64 0, i64 0
  %3607 = call i32 @memcmp(ptr noundef %3605, ptr noundef %3606, i64 noundef 48) #14
  %3608 = icmp eq i32 %3607, 0
  br i1 %3608, label %3662, label %3609

3609:                                             ; preds = %3602
  br label %3610

3610:                                             ; preds = %3609
  br label %3611

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

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

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

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

3657:                                             ; preds = %3640, %3623
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3658

3658:                                             ; preds = %3657
  br label %3659

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

3660:                                             ; No predecessors!
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

3662:                                             ; preds = %3661, %3602
  br label %3663

3663:                                             ; preds = %3662
  br label %3664

3664:                                             ; preds = %3663
  br label %3665

3665:                                             ; preds = %3664
  br label %3666

3666:                                             ; preds = %3665
  call void @llvm.lifetime.end.p0(i64 48, ptr %73) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %70) #11
  %3667 = call i32 @s2n_io_pair_close(ptr noundef %65)
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #11
  %3668 = call i32 @s2n_connection_ptr_free(ptr noundef %62)
  %3669 = getelementptr inbounds %struct.s2n_result, ptr %77, i32 0, i32 0
  store i32 %3668, ptr %3669, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  %3670 = call i32 @s2n_connection_ptr_free(ptr noundef %59)
  %3671 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  store i32 %3670, ptr %3671, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  %3672 = call i32 @s2n_config_ptr_free(ptr noundef %54)
  %3673 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  store i32 %3672, ptr %3673, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #11
  br label %3674

3674:                                             ; preds = %3666
  %3675 = load i64, ptr %52, align 8, !tbaa !15
  %3676 = add i64 %3675, 1
  store i64 %3676, ptr %52, align 8, !tbaa !15
  br label %2567, !llvm.loop !46

3677:                                             ; preds = %2570
  %3678 = call i32 @s2n_connection_ptr_free(ptr noundef %9)
  %3679 = getelementptr inbounds %struct.s2n_result, ptr %80, i32 0, i32 0
  store i32 %3678, ptr %3679, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %7) #11
  br label %3680

3680:                                             ; preds = %3677
  br label %3681

3681:                                             ; preds = %3680
  %3682 = call i32 @s2n_cleanup()
  %3683 = icmp eq i32 %3682, -1
  br i1 %3683, label %3684, label %3737

3684:                                             ; preds = %3681
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

3686:                                             ; preds = %3685
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %3687 = call ptr @__errno_location() #12
  %3688 = load i32, ptr %3687, align 4, !tbaa !5
  store i32 %3688, ptr %81, align 4, !tbaa !5
  %3689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3690 = call i32 @s2n_print_stacktrace(ptr noundef %3689)
  %3691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3692 = trunc i8 %3691 to i1
  br i1 %3692, label %3693, label %3715

3693:                                             ; preds = %3686
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = call i32 @fileno(ptr noundef %3694) #11
  %3696 = call i32 @isatty(i32 noundef %3695) #11
  %3697 = icmp ne i32 %3696, 0
  br i1 %3697, label %3698, label %3715

3698:                                             ; preds = %3693
  %3699 = load i32, ptr %81, align 4, !tbaa !5
  %3700 = call ptr @__errno_location() #12
  store i32 %3699, ptr %3700, align 4, !tbaa !5
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = load i32, ptr @test_count, align 4, !tbaa !5
  %3703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror(i32 noundef %3704, ptr noundef @.str.4)
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror_debug(i32 noundef %3707, ptr noundef @.str.4)
  %3709 = call ptr @__errno_location() #12
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @strerror(i32 noundef %3710) #11
  %3712 = call ptr @__errno_location() #12
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3701, ptr noundef @.str.2, i32 noundef %3702, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3705, ptr noundef %3708, ptr noundef %3711, i32 noundef %3713) #11
  br label %3732

3715:                                             ; preds = %3693, %3686
  %3716 = load i32, ptr %81, align 4, !tbaa !5
  %3717 = call ptr @__errno_location() #12
  store i32 %3716, ptr %3717, align 4, !tbaa !5
  %3718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3719 = load i32, ptr @test_count, align 4, !tbaa !5
  %3720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror(i32 noundef %3721, ptr noundef @.str.4)
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef @.str.4)
  %3726 = call ptr @__errno_location() #12
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @strerror(i32 noundef %3727) #11
  %3729 = call ptr @__errno_location() #12
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3718, ptr noundef @.str.5, i32 noundef %3719, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3722, ptr noundef %3725, ptr noundef %3728, i32 noundef %3730) #11
  br label %3732

3732:                                             ; preds = %3715, %3698
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %3733

3733:                                             ; preds = %3732
  br label %3734

3734:                                             ; preds = %3733
  call void @exit(i32 noundef 1) #13
  unreachable

3735:                                             ; No predecessors!
  br label %3736

3736:                                             ; preds = %3735
  br label %3737

3737:                                             ; preds = %3736, %3681
  br label %3738

3738:                                             ; preds = %3737
  br label %3739

3739:                                             ; preds = %3738
  br label %3740

3740:                                             ; preds = %3739
  br label %3741

3741:                                             ; preds = %3740
  %3742 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3743 = icmp eq i32 %3742, -1
  br i1 %3743, label %3744, label %3797

3744:                                             ; preds = %3741
  br label %3745

3745:                                             ; preds = %3744
  br label %3746

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

3753:                                             ; preds = %3746
  %3754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3755 = call i32 @fileno(ptr noundef %3754) #11
  %3756 = call i32 @isatty(i32 noundef %3755) #11
  %3757 = icmp ne i32 %3756, 0
  br i1 %3757, label %3758, label %3775

3758:                                             ; preds = %3753
  %3759 = load i32, ptr %82, align 4, !tbaa !5
  %3760 = call ptr @__errno_location() #12
  store i32 %3759, ptr %3760, align 4, !tbaa !5
  %3761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3762 = load i32, ptr @test_count, align 4, !tbaa !5
  %3763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call ptr @s2n_strerror(i32 noundef %3764, ptr noundef @.str.4)
  %3766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call ptr @s2n_strerror_debug(i32 noundef %3767, ptr noundef @.str.4)
  %3769 = call ptr @__errno_location() #12
  %3770 = load i32, ptr %3769, align 4, !tbaa !5
  %3771 = call ptr @strerror(i32 noundef %3770) #11
  %3772 = call ptr @__errno_location() #12
  %3773 = load i32, ptr %3772, align 4, !tbaa !5
  %3774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3761, ptr noundef @.str.2, i32 noundef %3762, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3765, ptr noundef %3768, ptr noundef %3771, i32 noundef %3773) #11
  br label %3792

3775:                                             ; preds = %3753, %3746
  %3776 = load i32, ptr %82, align 4, !tbaa !5
  %3777 = call ptr @__errno_location() #12
  store i32 %3776, ptr %3777, align 4, !tbaa !5
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = load i32, ptr @test_count, align 4, !tbaa !5
  %3780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3781 = load i32, ptr %3780, align 4, !tbaa !5
  %3782 = call ptr @s2n_strerror(i32 noundef %3781, ptr noundef @.str.4)
  %3783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  %3785 = call ptr @s2n_strerror_debug(i32 noundef %3784, ptr noundef @.str.4)
  %3786 = call ptr @__errno_location() #12
  %3787 = load i32, ptr %3786, align 4, !tbaa !5
  %3788 = call ptr @strerror(i32 noundef %3787) #11
  %3789 = call ptr @__errno_location() #12
  %3790 = load i32, ptr %3789, align 4, !tbaa !5
  %3791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3778, ptr noundef @.str.5, i32 noundef %3779, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3782, ptr noundef %3785, ptr noundef %3788, i32 noundef %3790) #11
  br label %3792

3792:                                             ; preds = %3775, %3758
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3793

3793:                                             ; preds = %3792
  br label %3794

3794:                                             ; preds = %3793
  call void @exit(i32 noundef 1) #13
  unreachable

3795:                                             ; No predecessors!
  br label %3796

3796:                                             ; preds = %3795
  br label %3797

3797:                                             ; preds = %3796, %3741
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798
  %3800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3801 = trunc i8 %3800 to i1
  br i1 %3801, label %3802, label %3818

3802:                                             ; preds = %3799
  %3803 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3804 = call i32 @fileno(ptr noundef %3803) #11
  %3805 = call i32 @isatty(i32 noundef %3804) #11
  %3806 = icmp ne i32 %3805, 0
  br i1 %3806, label %3807, label %3818

3807:                                             ; preds = %3802
  %3808 = load i32, ptr @test_count, align 4, !tbaa !5
  %3809 = icmp ne i32 %3808, 0
  br i1 %3809, label %3810, label %3814

3810:                                             ; preds = %3807
  %3811 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3812 = load i32, ptr @test_count, align 4, !tbaa !5
  %3813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3811, ptr noundef @.str.48, i32 noundef %3812) #11
  br label %3817

3814:                                             ; preds = %3807
  %3815 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3815, ptr noundef @.str.49) #11
  br label %3817

3817:                                             ; preds = %3814, %3810
  br label %3829

3818:                                             ; preds = %3802, %3799
  %3819 = load i32, ptr @test_count, align 4, !tbaa !5
  %3820 = icmp ne i32 %3819, 0
  br i1 %3820, label %3821, label %3825

3821:                                             ; preds = %3818
  %3822 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3823 = load i32, ptr @test_count, align 4, !tbaa !5
  %3824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3822, ptr noundef @.str.50, i32 noundef %3823) #11
  br label %3828

3825:                                             ; preds = %3818
  %3826 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3826, ptr noundef @.str.51) #11
  br label %3828

3828:                                             ; preds = %3825, %3821
  br label %3829

3829:                                             ; preds = %3828, %3817
  store i32 0, ptr %1, align 4
  store i32 1, ptr %83, align 4
  br label %3834

3830:                                             ; No predecessors!
  br label %3831

3831:                                             ; preds = %3830
  br label %3832

3832:                                             ; preds = %3831
  br label %3833

3833:                                             ; preds = %3832
  store i32 0, ptr %83, align 4
  br label %3834

3834:                                             ; preds = %3833, %3829
  %3835 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %5)
  %3836 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  store i32 %3835, ptr %3836, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #11
  %3837 = load i32, ptr %83, align 4
  switch i32 %3837, label %3840 [
    i32 0, label %3838
    i32 1, label %3838
  ]

3838:                                             ; preds = %3834, %3834
  %3839 = load i32, ptr %1, align 4
  ret i32 %3839

3840:                                             ; preds = %3834
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

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

; 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

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

declare i32 @s2n_skip_handshake(ptr noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #7

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

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

declare void @s2n_debug_info_reset() #2

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

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #2

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

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

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

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

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

declare i32 @s2n_cleanup() #2

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

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

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


; 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_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 [74 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 [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [155 x i8], align 1
@__const.main.test_secret = external hidden unnamed_addr constant [48 x i8], align 16
@__const.main.supported_versions = external hidden unnamed_addr constant [4 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 {
  %1 = alloca ptr, align 8
  %2 = alloca ptr, align 8
  %3 = alloca [48 x i8], align 16
  %4 = alloca [48 x i8], align 16
  %5 = alloca [48 x i8], align 16
  %6 = alloca [48 x i8], align 16
  %7 = alloca [48 x i8], align 16
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %struct.s2n_test_io_pair, align 8
  %12 = alloca [48 x i8], align 16
  %13 = alloca [48 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) #12
  %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) #12
  %19 = icmp eq i32 %18, -1
  br i1 %19, label %20, label %44

20:                                               ; preds = %0
  %21 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %30 = tail call i32 @isatty(i32 noundef %29) #12
  %.not194 = icmp eq i32 %30, 0
  br i1 %.not194, 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) #12
  %38 = load i32, ptr %35, align 4, !tbaa !5
  %39 = tail call ptr @s2n_strerror_debug(i32 noundef %38, ptr noundef nonnull @.str.4) #12
  %40 = load i32, ptr %21, align 4, !tbaa !5
  %41 = tail call ptr @strerror(i32 noundef %40) #12
  %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 24, ptr noundef %37, ptr noundef %39, ptr noundef %41, i32 noundef %42) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

44:                                               ; preds = %0
  %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() #12
  %48 = icmp eq i32 %47, -1
  br i1 %48, label %49, label %73

49:                                               ; preds = %44
  %50 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %59 = tail call i32 @isatty(i32 noundef %58) #12
  %.not193 = icmp eq i32 %59, 0
  br i1 %.not193, label %60, label %61

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

61:                                               ; preds = %56, %60
  %.str.5.sink206 = 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) #12
  %67 = load i32, ptr %64, align 4, !tbaa !5
  %68 = tail call ptr @s2n_strerror_debug(i32 noundef %67, ptr noundef nonnull @.str.4) #12
  %69 = load i32, ptr %50, align 4, !tbaa !5
  %70 = tail call ptr @strerror(i32 noundef %69) #12
  %71 = load i32, ptr %50, align 4, !tbaa !5
  %72 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %62, ptr noundef nonnull %.str.5.sink206, i32 noundef %63, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 24, ptr noundef %66, ptr noundef %68, ptr noundef %70, i32 noundef %71) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

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

76:                                               ; preds = %73
  %77 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %86 = tail call i32 @isatty(i32 noundef %85) #12
  %.not192 = icmp eq i32 %86, 0
  br i1 %.not192, label %87, label %88

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

88:                                               ; preds = %83, %87
  %.str.5.sink217 = 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) #12
  %94 = load i32, ptr %91, align 4, !tbaa !5
  %95 = tail call ptr @s2n_strerror_debug(i32 noundef %94, ptr noundef nonnull @.str.4) #12
  %96 = load i32, ptr %77, align 4, !tbaa !5
  %97 = tail call ptr @strerror(i32 noundef %96) #12
  %98 = load i32, ptr %77, align 4, !tbaa !5
  %99 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %89, ptr noundef nonnull %.str.5.sink217, i32 noundef %90, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 24, ptr noundef %93, ptr noundef %95, ptr noundef %97, i32 noundef %98) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

100:                                              ; preds = %73
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1) #12
  store ptr null, ptr %1, align 8, !tbaa !9
  %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 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %1, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9) #12
  %104 = icmp eq i32 %103, -1
  br i1 %104, label %105, label %129

105:                                              ; preds = %100
  %106 = tail call ptr @__errno_location() #13
  %107 = load i32, ptr %106, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = call i32 @s2n_print_stacktrace(ptr noundef %108) #12
  %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 = call i32 @fileno(ptr noundef %113) #12
  %115 = call i32 @isatty(i32 noundef %114) #12
  %.not191 = icmp eq i32 %115, 0
  br i1 %.not191, label %116, label %117

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

117:                                              ; preds = %112, %116
  %.str.5.sink228 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = call ptr @s2n_strerror(i32 noundef %121, ptr noundef nonnull @.str.4) #12
  %123 = load i32, ptr %120, align 4, !tbaa !5
  %124 = call ptr @s2n_strerror_debug(i32 noundef %123, ptr noundef nonnull @.str.4) #12
  %125 = load i32, ptr %106, align 4, !tbaa !5
  %126 = call ptr @strerror(i32 noundef %125) #12
  %127 = load i32, ptr %106, align 4, !tbaa !5
  %128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef nonnull %.str.5.sink228, i32 noundef %119, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 29, ptr noundef %122, ptr noundef %124, ptr noundef %126, i32 noundef %127) #14
  call void @exit(i32 noundef 1) #15
  unreachable

129:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #12
  %130 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %130, ptr %2, align 8, !tbaa !9
  %131 = load i32, ptr @test_count, align 4, !tbaa !5
  %132 = add nsw i32 %131, 1
  store i32 %132, ptr @test_count, align 4, !tbaa !5
  %133 = call i32 @s2n_skip_handshake(ptr noundef %130) #12
  %134 = call zeroext i1 @s2n_result_is_ok(i32 %133)
  br i1 %134, label %159, label %135

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

142:                                              ; preds = %135
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = call i32 @fileno(ptr noundef %143) #12
  %145 = call i32 @isatty(i32 noundef %144) #12
  %.not = icmp eq i32 %145, 0
  br i1 %.not, label %146, label %147

146:                                              ; preds = %142, %135
  br label %147

147:                                              ; preds = %142, %146
  %.str.5.sink239 = phi ptr [ @.str.5, %146 ], [ @.str.2, %142 ]
  store i32 %137, ptr %136, align 4, !tbaa !5
  %148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %152 = call ptr @s2n_strerror(i32 noundef %151, ptr noundef nonnull @.str.4) #12
  %153 = load i32, ptr %150, align 4, !tbaa !5
  %154 = call ptr @s2n_strerror_debug(i32 noundef %153, ptr noundef nonnull @.str.4) #12
  %155 = load i32, ptr %136, align 4, !tbaa !5
  %156 = call ptr @strerror(i32 noundef %155) #12
  %157 = load i32, ptr %136, align 4, !tbaa !5
  %158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %148, ptr noundef nonnull %.str.5.sink239, i32 noundef %149, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %152, ptr noundef %154, ptr noundef %156, i32 noundef %157) #14
  call void @exit(i32 noundef 1) #15
  unreachable

159:                                              ; preds = %129
  %160 = getelementptr inbounds i8, ptr %130, i64 288
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %160, ptr noundef nonnull align 16 dereferenceable(48) @__const.main.test_secret, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %3, i8 0, i64 48, i1 false)
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr @test_count, align 4, !tbaa !5
  %163 = call i32 @s2n_connection_get_master_secret(ptr noundef %130, ptr noundef null, i64 noundef 0) #12
  %164 = icmp eq i32 %163, -1
  br i1 %164, label %189, label %165

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

172:                                              ; preds = %165
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = call i32 @fileno(ptr noundef %173) #12
  %175 = call i32 @isatty(i32 noundef %174) #12
  %.not130 = icmp eq i32 %175, 0
  br i1 %.not130, label %176, label %177

176:                                              ; preds = %172, %165
  br label %177

177:                                              ; preds = %172, %176
  %.str.5.sink250 = phi ptr [ @.str.5, %176 ], [ @.str.2, %172 ]
  store i32 %167, ptr %166, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call ptr @s2n_strerror(i32 noundef %181, ptr noundef nonnull @.str.4) #12
  %183 = load i32, ptr %180, align 4, !tbaa !5
  %184 = call ptr @s2n_strerror_debug(i32 noundef %183, ptr noundef nonnull @.str.4) #12
  %185 = load i32, ptr %166, align 4, !tbaa !5
  %186 = call ptr @strerror(i32 noundef %185) #12
  %187 = load i32, ptr %166, align 4, !tbaa !5
  %188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef nonnull %.str.5.sink250, i32 noundef %179, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %182, ptr noundef %184, ptr noundef %186, i32 noundef %187) #14
  call void @exit(i32 noundef 1) #15
  unreachable

189:                                              ; preds = %159
  %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %193 = load i32, ptr %192, align 4, !tbaa !5
  %194 = icmp eq i32 %193, 402653193
  br i1 %194, label %218, label %195

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

202:                                              ; preds = %195
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = call i32 @fileno(ptr noundef %203) #12
  %205 = call i32 @isatty(i32 noundef %204) #12
  %.not131 = icmp eq i32 %205, 0
  br i1 %.not131, label %206, label %207

206:                                              ; preds = %202, %195
  br label %207

207:                                              ; preds = %202, %206
  %.str.5.sink261 = phi ptr [ @.str.5, %206 ], [ @.str.2, %202 ]
  store i32 %197, ptr %196, align 4, !tbaa !5
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = load i32, ptr @test_count, align 4, !tbaa !5
  %210 = load i32, ptr %192, align 4, !tbaa !5
  %211 = call ptr @s2n_strerror(i32 noundef %210, ptr noundef nonnull @.str.4) #12
  %212 = load i32, ptr %192, align 4, !tbaa !5
  %213 = call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef nonnull @.str.4) #12
  %214 = load i32, ptr %196, align 4, !tbaa !5
  %215 = call ptr @strerror(i32 noundef %214) #12
  %216 = load i32, ptr %196, align 4, !tbaa !5
  %217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %208, ptr noundef nonnull %.str.5.sink261, i32 noundef %209, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %211, ptr noundef %213, ptr noundef %215, i32 noundef %216) #14
  call void @exit(i32 noundef 1) #15
  unreachable

218:                                              ; preds = %189
  %219 = add nsw i32 %190, 2
  store i32 %219, ptr @test_count, align 4, !tbaa !5
  %220 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %221 = icmp eq ptr %220, null
  br i1 %221, label %222, label %245

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

229:                                              ; preds = %222
  %230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %231 = call i32 @fileno(ptr noundef %230) #12
  %232 = call i32 @isatty(i32 noundef %231) #12
  %.not190 = icmp eq i32 %232, 0
  br i1 %.not190, label %233, label %234

233:                                              ; preds = %229, %222
  br label %234

234:                                              ; preds = %229, %233
  %.str.5.sink270 = phi ptr [ @.str.5, %233 ], [ @.str.2, %229 ]
  store i32 %224, ptr %223, align 4, !tbaa !5
  %235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = load i32, ptr %192, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror(i32 noundef %237, ptr noundef nonnull @.str.4) #12
  %239 = load i32, ptr %192, align 4, !tbaa !5
  %240 = call ptr @s2n_strerror_debug(i32 noundef %239, ptr noundef nonnull @.str.4) #12
  %241 = load i32, ptr %223, align 4, !tbaa !5
  %242 = call ptr @strerror(i32 noundef %241) #12
  %243 = load i32, ptr %223, align 4, !tbaa !5
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %235, ptr noundef nonnull %.str.5.sink270, i32 noundef %236, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %238, ptr noundef %240, ptr noundef %242, i32 noundef %243) #14
  call void @exit(i32 noundef 1) #15
  unreachable

245:                                              ; preds = %218
  store i32 0, ptr %192, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %246 = tail call ptr @__errno_location() #13
  store i32 0, ptr %246, align 4, !tbaa !5
  %247 = load i32, ptr @test_count, align 4, !tbaa !5
  %248 = add nsw i32 %247, 1
  store i32 %248, ptr @test_count, align 4, !tbaa !5
  %249 = call i32 @s2n_connection_get_master_secret(ptr noundef null, ptr noundef nonnull %3, i64 noundef 0) #12
  %250 = icmp eq i32 %249, -1
  br i1 %250, label %273, label %251

251:                                              ; preds = %245
  %252 = load i32, ptr %246, align 4, !tbaa !5
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = call i32 @s2n_print_stacktrace(ptr noundef %253) #12
  %255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %256 = trunc nuw i8 %255 to i1
  br i1 %256, label %257, label %261

257:                                              ; preds = %251
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = call i32 @fileno(ptr noundef %258) #12
  %260 = call i32 @isatty(i32 noundef %259) #12
  %.not132 = icmp eq i32 %260, 0
  br i1 %.not132, label %261, label %262

261:                                              ; preds = %257, %251
  br label %262

262:                                              ; preds = %257, %261
  %.str.5.sink279 = phi ptr [ @.str.5, %261 ], [ @.str.2, %257 ]
  store i32 %252, ptr %246, align 4, !tbaa !5
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = load i32, ptr %192, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror(i32 noundef %265, ptr noundef nonnull @.str.4) #12
  %267 = load i32, ptr %192, align 4, !tbaa !5
  %268 = call ptr @s2n_strerror_debug(i32 noundef %267, ptr noundef nonnull @.str.4) #12
  %269 = load i32, ptr %246, align 4, !tbaa !5
  %270 = call ptr @strerror(i32 noundef %269) #12
  %271 = load i32, ptr %246, align 4, !tbaa !5
  %272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef nonnull %.str.5.sink279, i32 noundef %264, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %266, ptr noundef %268, ptr noundef %270, i32 noundef %271) #14
  call void @exit(i32 noundef 1) #15
  unreachable

273:                                              ; preds = %245
  %274 = load i32, ptr @test_count, align 4, !tbaa !5
  %275 = add nsw i32 %274, 1
  store i32 %275, ptr @test_count, align 4, !tbaa !5
  %276 = load i32, ptr %192, align 4, !tbaa !5
  %277 = icmp eq i32 %276, 402653193
  br i1 %277, label %300, label %278

278:                                              ; preds = %273
  %279 = load i32, ptr %246, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 @s2n_print_stacktrace(ptr noundef %280) #12
  %282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %283 = trunc nuw i8 %282 to i1
  br i1 %283, label %284, label %288

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

288:                                              ; preds = %284, %278
  br label %289

289:                                              ; preds = %284, %288
  %.str.5.sink288 = phi ptr [ @.str.5, %288 ], [ @.str.2, %284 ]
  store i32 %279, ptr %246, align 4, !tbaa !5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = load i32, ptr %192, align 4, !tbaa !5
  %293 = call ptr @s2n_strerror(i32 noundef %292, ptr noundef nonnull @.str.4) #12
  %294 = load i32, ptr %192, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror_debug(i32 noundef %294, ptr noundef nonnull @.str.4) #12
  %296 = load i32, ptr %246, align 4, !tbaa !5
  %297 = call ptr @strerror(i32 noundef %296) #12
  %298 = load i32, ptr %246, align 4, !tbaa !5
  %299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %290, ptr noundef nonnull %.str.5.sink288, i32 noundef %291, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %293, ptr noundef %295, ptr noundef %297, i32 noundef %298) #14
  call void @exit(i32 noundef 1) #15
  unreachable

300:                                              ; preds = %273
  %301 = add nsw i32 %274, 2
  store i32 %301, ptr @test_count, align 4, !tbaa !5
  %302 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %303 = icmp eq ptr %302, null
  br i1 %303, label %304, label %326

304:                                              ; preds = %300
  %305 = load i32, ptr %246, align 4, !tbaa !5
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = call i32 @s2n_print_stacktrace(ptr noundef %306) #12
  %308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %309 = trunc nuw i8 %308 to i1
  br i1 %309, label %310, label %314

310:                                              ; preds = %304
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = call i32 @fileno(ptr noundef %311) #12
  %313 = call i32 @isatty(i32 noundef %312) #12
  %.not189 = icmp eq i32 %313, 0
  br i1 %.not189, label %314, label %315

314:                                              ; preds = %310, %304
  br label %315

315:                                              ; preds = %310, %314
  %.str.5.sink297 = phi ptr [ @.str.5, %314 ], [ @.str.2, %310 ]
  store i32 %305, ptr %246, align 4, !tbaa !5
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = load i32, ptr @test_count, align 4, !tbaa !5
  %318 = load i32, ptr %192, align 4, !tbaa !5
  %319 = call ptr @s2n_strerror(i32 noundef %318, ptr noundef nonnull @.str.4) #12
  %320 = load i32, ptr %192, align 4, !tbaa !5
  %321 = call ptr @s2n_strerror_debug(i32 noundef %320, ptr noundef nonnull @.str.4) #12
  %322 = load i32, ptr %246, align 4, !tbaa !5
  %323 = call ptr @strerror(i32 noundef %322) #12
  %324 = load i32, ptr %246, align 4, !tbaa !5
  %325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %316, ptr noundef nonnull %.str.5.sink297, i32 noundef %317, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %319, ptr noundef %321, ptr noundef %323, i32 noundef %324) #14
  call void @exit(i32 noundef 1) #15
  unreachable

326:                                              ; preds = %300
  store i32 0, ptr %192, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %246, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) #12
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %4) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %4, i8 0, i64 48, i1 false)
  %327 = load i32, ptr @test_count, align 4, !tbaa !5
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr @test_count, align 4, !tbaa !5
  %329 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %130, ptr noundef nonnull %4, i64 noundef 48) #12
  %330 = icmp eq i32 %329, -1
  br i1 %330, label %331, label %353

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

337:                                              ; preds = %331
  %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
  %.not188 = icmp eq i32 %340, 0
  br i1 %.not188, label %341, label %342

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

342:                                              ; preds = %337, %341
  %.str.5.sink306 = phi ptr [ @.str.5, %341 ], [ @.str.2, %337 ]
  store i32 %332, ptr %246, align 4, !tbaa !5
  %343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %344 = load i32, ptr @test_count, align 4, !tbaa !5
  %345 = load i32, ptr %192, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror(i32 noundef %345, ptr noundef nonnull @.str.4) #12
  %347 = load i32, ptr %192, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror_debug(i32 noundef %347, ptr noundef nonnull @.str.4) #12
  %349 = load i32, ptr %246, align 4, !tbaa !5
  %350 = call ptr @strerror(i32 noundef %349) #12
  %351 = load i32, ptr %246, align 4, !tbaa !5
  %352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %343, ptr noundef nonnull %.str.5.sink306, i32 noundef %344, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %346, ptr noundef %348, ptr noundef %350, i32 noundef %351) #14
  call void @exit(i32 noundef 1) #15
  unreachable

353:                                              ; preds = %326
  %354 = load i32, ptr @test_count, align 4, !tbaa !5
  %355 = add nsw i32 %354, 1
  store i32 %355, ptr @test_count, align 4, !tbaa !5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) @__const.main.test_secret, ptr noundef nonnull dereferenceable(48) %4, i64 48)
  %356 = icmp eq i32 %bcmp, 0
  br i1 %356, label %379, label %357

357:                                              ; preds = %353
  %358 = load i32, ptr %246, align 4, !tbaa !5
  %359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %360 = call i32 @s2n_print_stacktrace(ptr noundef %359) #12
  %361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %362 = trunc nuw i8 %361 to i1
  br i1 %362, label %363, label %367

363:                                              ; preds = %357
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = call i32 @fileno(ptr noundef %364) #12
  %366 = call i32 @isatty(i32 noundef %365) #12
  %.not134 = icmp eq i32 %366, 0
  br i1 %.not134, label %367, label %368

367:                                              ; preds = %363, %357
  br label %368

368:                                              ; preds = %363, %367
  %.str.5.sink315 = phi ptr [ @.str.5, %367 ], [ @.str.2, %363 ]
  store i32 %358, ptr %246, align 4, !tbaa !5
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = load i32, ptr %192, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror(i32 noundef %371, ptr noundef nonnull @.str.4) #12
  %373 = load i32, ptr %192, align 4, !tbaa !5
  %374 = call ptr @s2n_strerror_debug(i32 noundef %373, ptr noundef nonnull @.str.4) #12
  %375 = load i32, ptr %246, align 4, !tbaa !5
  %376 = call ptr @strerror(i32 noundef %375) #12
  %377 = load i32, ptr %246, align 4, !tbaa !5
  %378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %369, ptr noundef nonnull %.str.5.sink315, i32 noundef %370, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %372, ptr noundef %374, ptr noundef %376, i32 noundef %377) #14
  call void @exit(i32 noundef 1) #15
  unreachable

379:                                              ; preds = %353
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %4) #12
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %5, i8 0, i64 48, i1 false)
  %380 = getelementptr inbounds i8, ptr %130, i64 220
  store i8 34, ptr %380, align 4, !tbaa !15
  %381 = add nsw i32 %354, 2
  store i32 %381, ptr @test_count, align 4, !tbaa !5
  %382 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %130, ptr noundef nonnull %5, i64 noundef 48) #12
  %383 = icmp eq i32 %382, -1
  br i1 %383, label %406, label %384

384:                                              ; preds = %379
  %385 = load i32, ptr %246, align 4, !tbaa !5
  %386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %387 = call i32 @s2n_print_stacktrace(ptr noundef %386) #12
  %388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %389 = trunc nuw i8 %388 to i1
  br i1 %389, label %390, label %394

390:                                              ; preds = %384
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = call i32 @fileno(ptr noundef %391) #12
  %393 = call i32 @isatty(i32 noundef %392) #12
  %.not135 = icmp eq i32 %393, 0
  br i1 %.not135, label %394, label %395

394:                                              ; preds = %390, %384
  br label %395

395:                                              ; preds = %390, %394
  %.str.5.sink324 = phi ptr [ @.str.5, %394 ], [ @.str.2, %390 ]
  store i32 %385, ptr %246, align 4, !tbaa !5
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = load i32, ptr %192, align 4, !tbaa !5
  %399 = call ptr @s2n_strerror(i32 noundef %398, ptr noundef nonnull @.str.4) #12
  %400 = load i32, ptr %192, align 4, !tbaa !5
  %401 = call ptr @s2n_strerror_debug(i32 noundef %400, ptr noundef nonnull @.str.4) #12
  %402 = load i32, ptr %246, align 4, !tbaa !5
  %403 = call ptr @strerror(i32 noundef %402) #12
  %404 = load i32, ptr %246, align 4, !tbaa !5
  %405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %396, ptr noundef nonnull %.str.5.sink324, i32 noundef %397, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %399, ptr noundef %401, ptr noundef %403, i32 noundef %404) #14
  call void @exit(i32 noundef 1) #15
  unreachable

406:                                              ; preds = %379
  %407 = load i32, ptr @test_count, align 4, !tbaa !5
  %408 = add nsw i32 %407, 1
  store i32 %408, ptr @test_count, align 4, !tbaa !5
  %409 = load i32, ptr %192, align 4, !tbaa !5
  %410 = icmp eq i32 %409, 469762112
  br i1 %410, label %433, label %411

411:                                              ; preds = %406
  %412 = load i32, ptr %246, align 4, !tbaa !5
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = call i32 @s2n_print_stacktrace(ptr noundef %413) #12
  %415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %416 = trunc nuw i8 %415 to i1
  br i1 %416, label %417, label %421

417:                                              ; preds = %411
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = call i32 @fileno(ptr noundef %418) #12
  %420 = call i32 @isatty(i32 noundef %419) #12
  %.not136 = icmp eq i32 %420, 0
  br i1 %.not136, label %421, label %422

421:                                              ; preds = %417, %411
  br label %422

422:                                              ; preds = %417, %421
  %.str.5.sink333 = phi ptr [ @.str.5, %421 ], [ @.str.2, %417 ]
  store i32 %412, ptr %246, align 4, !tbaa !5
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = load i32, ptr @test_count, align 4, !tbaa !5
  %425 = load i32, ptr %192, align 4, !tbaa !5
  %426 = call ptr @s2n_strerror(i32 noundef %425, ptr noundef nonnull @.str.4) #12
  %427 = load i32, ptr %192, align 4, !tbaa !5
  %428 = call ptr @s2n_strerror_debug(i32 noundef %427, ptr noundef nonnull @.str.4) #12
  %429 = load i32, ptr %246, align 4, !tbaa !5
  %430 = call ptr @strerror(i32 noundef %429) #12
  %431 = load i32, ptr %246, align 4, !tbaa !5
  %432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %423, ptr noundef nonnull %.str.5.sink333, i32 noundef %424, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %426, ptr noundef %428, ptr noundef %430, i32 noundef %431) #14
  call void @exit(i32 noundef 1) #15
  unreachable

433:                                              ; preds = %406
  %434 = add nsw i32 %407, 2
  store i32 %434, ptr @test_count, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #12
  %436 = icmp eq ptr %435, null
  br i1 %436, label %437, label %459

437:                                              ; preds = %433
  %438 = load i32, ptr %246, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = call i32 @s2n_print_stacktrace(ptr noundef %439) #12
  %441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %442 = trunc nuw i8 %441 to i1
  br i1 %442, label %443, label %447

443:                                              ; preds = %437
  %444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %445 = call i32 @fileno(ptr noundef %444) #12
  %446 = call i32 @isatty(i32 noundef %445) #12
  %.not187 = icmp eq i32 %446, 0
  br i1 %.not187, label %447, label %448

447:                                              ; preds = %443, %437
  br label %448

448:                                              ; preds = %443, %447
  %.str.5.sink342 = phi ptr [ @.str.5, %447 ], [ @.str.2, %443 ]
  store i32 %438, ptr %246, align 4, !tbaa !5
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = load i32, ptr %192, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror(i32 noundef %451, ptr noundef nonnull @.str.4) #12
  %453 = load i32, ptr %192, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror_debug(i32 noundef %453, ptr noundef nonnull @.str.4) #12
  %455 = load i32, ptr %246, align 4, !tbaa !5
  %456 = call ptr @strerror(i32 noundef %455) #12
  %457 = load i32, ptr %246, align 4, !tbaa !5
  %458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %449, ptr noundef nonnull %.str.5.sink342, i32 noundef %450, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %452, ptr noundef %454, ptr noundef %456, i32 noundef %457) #14
  call void @exit(i32 noundef 1) #15
  unreachable

459:                                              ; preds = %433
  store i32 0, ptr %192, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %246, align 4, !tbaa !5
  store i8 33, ptr %380, align 4, !tbaa !15
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = add nsw i32 %460, 1
  store i32 %461, ptr @test_count, align 4, !tbaa !5
  %462 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %130, ptr noundef nonnull %5, i64 noundef 48) #12
  %463 = icmp eq i32 %462, -1
  br i1 %463, label %464, label %486

464:                                              ; preds = %459
  %465 = load i32, ptr %246, align 4, !tbaa !5
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = call i32 @s2n_print_stacktrace(ptr noundef %466) #12
  %468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %469 = trunc nuw i8 %468 to i1
  br i1 %469, label %470, label %474

470:                                              ; preds = %464
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = call i32 @fileno(ptr noundef %471) #12
  %473 = call i32 @isatty(i32 noundef %472) #12
  %.not186 = icmp eq i32 %473, 0
  br i1 %.not186, label %474, label %475

474:                                              ; preds = %470, %464
  br label %475

475:                                              ; preds = %470, %474
  %.str.5.sink351 = phi ptr [ @.str.5, %474 ], [ @.str.2, %470 ]
  store i32 %465, ptr %246, align 4, !tbaa !5
  %476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %477 = load i32, ptr @test_count, align 4, !tbaa !5
  %478 = load i32, ptr %192, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror(i32 noundef %478, ptr noundef nonnull @.str.4) #12
  %480 = load i32, ptr %192, align 4, !tbaa !5
  %481 = call ptr @s2n_strerror_debug(i32 noundef %480, ptr noundef nonnull @.str.4) #12
  %482 = load i32, ptr %246, align 4, !tbaa !5
  %483 = call ptr @strerror(i32 noundef %482) #12
  %484 = load i32, ptr %246, align 4, !tbaa !5
  %485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %476, ptr noundef nonnull %.str.5.sink351, i32 noundef %477, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %479, ptr noundef %481, ptr noundef %483, i32 noundef %484) #14
  call void @exit(i32 noundef 1) #15
  unreachable

486:                                              ; preds = %459
  %487 = load i32, ptr @test_count, align 4, !tbaa !5
  %488 = add nsw i32 %487, 1
  store i32 %488, ptr @test_count, align 4, !tbaa !5
  %bcmp137 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) @__const.main.test_secret, ptr noundef nonnull dereferenceable(48) %5, i64 48)
  %489 = icmp eq i32 %bcmp137, 0
  br i1 %489, label %512, label %490

490:                                              ; preds = %486
  %491 = load i32, ptr %246, align 4, !tbaa !5
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = call i32 @s2n_print_stacktrace(ptr noundef %492) #12
  %494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %495 = trunc nuw i8 %494 to i1
  br i1 %495, label %496, label %500

496:                                              ; preds = %490
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = call i32 @fileno(ptr noundef %497) #12
  %499 = call i32 @isatty(i32 noundef %498) #12
  %.not138 = icmp eq i32 %499, 0
  br i1 %.not138, label %500, label %501

500:                                              ; preds = %496, %490
  br label %501

501:                                              ; preds = %496, %500
  %.str.5.sink360 = phi ptr [ @.str.5, %500 ], [ @.str.2, %496 ]
  store i32 %491, ptr %246, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = load i32, ptr %192, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror(i32 noundef %504, ptr noundef nonnull @.str.4) #12
  %506 = load i32, ptr %192, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror_debug(i32 noundef %506, ptr noundef nonnull @.str.4) #12
  %508 = load i32, ptr %246, align 4, !tbaa !5
  %509 = call ptr @strerror(i32 noundef %508) #12
  %510 = load i32, ptr %246, align 4, !tbaa !5
  %511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %502, ptr noundef nonnull %.str.5.sink360, i32 noundef %503, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %505, ptr noundef %507, ptr noundef %509, i32 noundef %510) #14
  call void @exit(i32 noundef 1) #15
  unreachable

512:                                              ; preds = %486
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #12
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %6, i8 0, i64 48, i1 false)
  %513 = add nsw i32 %487, 2
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %130, ptr noundef nonnull %6, i64 noundef 0) #12
  %515 = icmp eq i32 %514, -1
  br i1 %515, label %538, label %516

516:                                              ; preds = %512
  %517 = load i32, ptr %246, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = call i32 @s2n_print_stacktrace(ptr noundef %518) #12
  %520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %521 = trunc nuw i8 %520 to i1
  br i1 %521, label %522, label %526

522:                                              ; preds = %516
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = call i32 @fileno(ptr noundef %523) #12
  %525 = call i32 @isatty(i32 noundef %524) #12
  %.not139 = icmp eq i32 %525, 0
  br i1 %.not139, label %526, label %527

526:                                              ; preds = %522, %516
  br label %527

527:                                              ; preds = %522, %526
  %.str.5.sink369 = phi ptr [ @.str.5, %526 ], [ @.str.2, %522 ]
  store i32 %517, ptr %246, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = load i32, ptr @test_count, align 4, !tbaa !5
  %530 = load i32, ptr %192, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror(i32 noundef %530, ptr noundef nonnull @.str.4) #12
  %532 = load i32, ptr %192, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror_debug(i32 noundef %532, ptr noundef nonnull @.str.4) #12
  %534 = load i32, ptr %246, align 4, !tbaa !5
  %535 = call ptr @strerror(i32 noundef %534) #12
  %536 = load i32, ptr %246, align 4, !tbaa !5
  %537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %528, ptr noundef nonnull %.str.5.sink369, i32 noundef %529, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %531, ptr noundef %533, ptr noundef %535, i32 noundef %536) #14
  call void @exit(i32 noundef 1) #15
  unreachable

538:                                              ; preds = %512
  %539 = load i32, ptr @test_count, align 4, !tbaa !5
  %540 = add nsw i32 %539, 1
  store i32 %540, ptr @test_count, align 4, !tbaa !5
  %541 = load i32, ptr %192, align 4, !tbaa !5
  %542 = icmp eq i32 %541, 469762120
  br i1 %542, label %565, label %543

543:                                              ; preds = %538
  %544 = load i32, ptr %246, align 4, !tbaa !5
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = call i32 @s2n_print_stacktrace(ptr noundef %545) #12
  %547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %548 = trunc nuw i8 %547 to i1
  br i1 %548, label %549, label %553

549:                                              ; preds = %543
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = call i32 @fileno(ptr noundef %550) #12
  %552 = call i32 @isatty(i32 noundef %551) #12
  %.not140 = icmp eq i32 %552, 0
  br i1 %.not140, label %553, label %554

553:                                              ; preds = %549, %543
  br label %554

554:                                              ; preds = %549, %553
  %.str.5.sink378 = phi ptr [ @.str.5, %553 ], [ @.str.2, %549 ]
  store i32 %544, ptr %246, align 4, !tbaa !5
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = load i32, ptr @test_count, align 4, !tbaa !5
  %557 = load i32, ptr %192, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror(i32 noundef %557, ptr noundef nonnull @.str.4) #12
  %559 = load i32, ptr %192, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror_debug(i32 noundef %559, ptr noundef nonnull @.str.4) #12
  %561 = load i32, ptr %246, align 4, !tbaa !5
  %562 = call ptr @strerror(i32 noundef %561) #12
  %563 = load i32, ptr %246, align 4, !tbaa !5
  %564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %555, ptr noundef nonnull %.str.5.sink378, i32 noundef %556, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %558, ptr noundef %560, ptr noundef %562, i32 noundef %563) #14
  call void @exit(i32 noundef 1) #15
  unreachable

565:                                              ; preds = %538
  %566 = add nsw i32 %539, 2
  store i32 %566, ptr @test_count, align 4, !tbaa !5
  %567 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %568 = icmp eq ptr %567, null
  br i1 %568, label %569, label %591

569:                                              ; preds = %565
  %570 = load i32, ptr %246, align 4, !tbaa !5
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = call i32 @s2n_print_stacktrace(ptr noundef %571) #12
  %573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %574 = trunc nuw i8 %573 to i1
  br i1 %574, label %575, label %579

575:                                              ; preds = %569
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = call i32 @fileno(ptr noundef %576) #12
  %578 = call i32 @isatty(i32 noundef %577) #12
  %.not185 = icmp eq i32 %578, 0
  br i1 %.not185, label %579, label %580

579:                                              ; preds = %575, %569
  br label %580

580:                                              ; preds = %575, %579
  %.str.5.sink387 = phi ptr [ @.str.5, %579 ], [ @.str.2, %575 ]
  store i32 %570, ptr %246, align 4, !tbaa !5
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = load i32, ptr %192, align 4, !tbaa !5
  %584 = call ptr @s2n_strerror(i32 noundef %583, ptr noundef nonnull @.str.4) #12
  %585 = load i32, ptr %192, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror_debug(i32 noundef %585, ptr noundef nonnull @.str.4) #12
  %587 = load i32, ptr %246, align 4, !tbaa !5
  %588 = call ptr @strerror(i32 noundef %587) #12
  %589 = load i32, ptr %246, align 4, !tbaa !5
  %590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %581, ptr noundef nonnull %.str.5.sink387, i32 noundef %582, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %584, ptr noundef %586, ptr noundef %588, i32 noundef %589) #14
  call void @exit(i32 noundef 1) #15
  unreachable

591:                                              ; preds = %565
  store i32 0, ptr %192, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %246, align 4, !tbaa !5
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = add nsw i32 %592, 1
  store i32 %593, ptr @test_count, align 4, !tbaa !5
  %594 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %130, ptr noundef nonnull %6, i64 noundef 1) #12
  %595 = icmp eq i32 %594, -1
  br i1 %595, label %618, label %596

596:                                              ; preds = %591
  %597 = load i32, ptr %246, align 4, !tbaa !5
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = call i32 @s2n_print_stacktrace(ptr noundef %598) #12
  %600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %601 = trunc nuw i8 %600 to i1
  br i1 %601, label %602, label %606

602:                                              ; preds = %596
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = call i32 @fileno(ptr noundef %603) #12
  %605 = call i32 @isatty(i32 noundef %604) #12
  %.not141 = icmp eq i32 %605, 0
  br i1 %.not141, label %606, label %607

606:                                              ; preds = %602, %596
  br label %607

607:                                              ; preds = %602, %606
  %.str.5.sink396 = phi ptr [ @.str.5, %606 ], [ @.str.2, %602 ]
  store i32 %597, ptr %246, align 4, !tbaa !5
  %608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %609 = load i32, ptr @test_count, align 4, !tbaa !5
  %610 = load i32, ptr %192, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror(i32 noundef %610, ptr noundef nonnull @.str.4) #12
  %612 = load i32, ptr %192, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror_debug(i32 noundef %612, ptr noundef nonnull @.str.4) #12
  %614 = load i32, ptr %246, align 4, !tbaa !5
  %615 = call ptr @strerror(i32 noundef %614) #12
  %616 = load i32, ptr %246, align 4, !tbaa !5
  %617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %608, ptr noundef nonnull %.str.5.sink396, i32 noundef %609, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %611, ptr noundef %613, ptr noundef %615, i32 noundef %616) #14
  call void @exit(i32 noundef 1) #15
  unreachable

618:                                              ; preds = %591
  %619 = load i32, ptr @test_count, align 4, !tbaa !5
  %620 = add nsw i32 %619, 1
  store i32 %620, ptr @test_count, align 4, !tbaa !5
  %621 = load i32, ptr %192, align 4, !tbaa !5
  %622 = icmp eq i32 %621, 469762120
  br i1 %622, label %645, label %623

623:                                              ; preds = %618
  %624 = load i32, ptr %246, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @s2n_print_stacktrace(ptr noundef %625) #12
  %627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %628 = trunc nuw i8 %627 to i1
  br i1 %628, label %629, label %633

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

633:                                              ; preds = %629, %623
  br label %634

634:                                              ; preds = %629, %633
  %.str.5.sink405 = phi ptr [ @.str.5, %633 ], [ @.str.2, %629 ]
  store i32 %624, ptr %246, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = load i32, ptr %192, align 4, !tbaa !5
  %638 = call ptr @s2n_strerror(i32 noundef %637, ptr noundef nonnull @.str.4) #12
  %639 = load i32, ptr %192, align 4, !tbaa !5
  %640 = call ptr @s2n_strerror_debug(i32 noundef %639, ptr noundef nonnull @.str.4) #12
  %641 = load i32, ptr %246, align 4, !tbaa !5
  %642 = call ptr @strerror(i32 noundef %641) #12
  %643 = load i32, ptr %246, align 4, !tbaa !5
  %644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef nonnull %.str.5.sink405, i32 noundef %636, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %638, ptr noundef %640, ptr noundef %642, i32 noundef %643) #14
  call void @exit(i32 noundef 1) #15
  unreachable

645:                                              ; preds = %618
  %646 = add nsw i32 %619, 2
  store i32 %646, ptr @test_count, align 4, !tbaa !5
  %647 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %648 = icmp eq ptr %647, null
  br i1 %648, label %649, label %671

649:                                              ; preds = %645
  %650 = load i32, ptr %246, align 4, !tbaa !5
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = call i32 @s2n_print_stacktrace(ptr noundef %651) #12
  %653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %654 = trunc nuw i8 %653 to i1
  br i1 %654, label %655, label %659

655:                                              ; preds = %649
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = call i32 @fileno(ptr noundef %656) #12
  %658 = call i32 @isatty(i32 noundef %657) #12
  %.not184 = icmp eq i32 %658, 0
  br i1 %.not184, label %659, label %660

659:                                              ; preds = %655, %649
  br label %660

660:                                              ; preds = %655, %659
  %.str.5.sink414 = phi ptr [ @.str.5, %659 ], [ @.str.2, %655 ]
  store i32 %650, ptr %246, align 4, !tbaa !5
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = load i32, ptr @test_count, align 4, !tbaa !5
  %663 = load i32, ptr %192, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror(i32 noundef %663, ptr noundef nonnull @.str.4) #12
  %665 = load i32, ptr %192, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror_debug(i32 noundef %665, ptr noundef nonnull @.str.4) #12
  %667 = load i32, ptr %246, align 4, !tbaa !5
  %668 = call ptr @strerror(i32 noundef %667) #12
  %669 = load i32, ptr %246, align 4, !tbaa !5
  %670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %661, ptr noundef nonnull %.str.5.sink414, i32 noundef %662, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %664, ptr noundef %666, ptr noundef %668, i32 noundef %669) #14
  call void @exit(i32 noundef 1) #15
  unreachable

671:                                              ; preds = %645
  store i32 0, ptr %192, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %246, align 4, !tbaa !5
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr @test_count, align 4, !tbaa !5
  %674 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %130, ptr noundef nonnull %6, i64 noundef 47) #12
  %675 = icmp eq i32 %674, -1
  br i1 %675, label %698, label %676

676:                                              ; preds = %671
  %677 = load i32, ptr %246, align 4, !tbaa !5
  %678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %679 = call i32 @s2n_print_stacktrace(ptr noundef %678) #12
  %680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %681 = trunc nuw i8 %680 to i1
  br i1 %681, label %682, label %686

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

686:                                              ; preds = %682, %676
  br label %687

687:                                              ; preds = %682, %686
  %.str.5.sink423 = phi ptr [ @.str.5, %686 ], [ @.str.2, %682 ]
  store i32 %677, ptr %246, align 4, !tbaa !5
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = load i32, ptr @test_count, align 4, !tbaa !5
  %690 = load i32, ptr %192, align 4, !tbaa !5
  %691 = call ptr @s2n_strerror(i32 noundef %690, ptr noundef nonnull @.str.4) #12
  %692 = load i32, ptr %192, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror_debug(i32 noundef %692, ptr noundef nonnull @.str.4) #12
  %694 = load i32, ptr %246, align 4, !tbaa !5
  %695 = call ptr @strerror(i32 noundef %694) #12
  %696 = load i32, ptr %246, align 4, !tbaa !5
  %697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %688, ptr noundef nonnull %.str.5.sink423, i32 noundef %689, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %691, ptr noundef %693, ptr noundef %695, i32 noundef %696) #14
  call void @exit(i32 noundef 1) #15
  unreachable

698:                                              ; preds = %671
  %699 = load i32, ptr @test_count, align 4, !tbaa !5
  %700 = add nsw i32 %699, 1
  store i32 %700, ptr @test_count, align 4, !tbaa !5
  %701 = load i32, ptr %192, align 4, !tbaa !5
  %702 = icmp eq i32 %701, 469762120
  br i1 %702, label %725, label %703

703:                                              ; preds = %698
  %704 = load i32, ptr %246, align 4, !tbaa !5
  %705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %706 = call i32 @s2n_print_stacktrace(ptr noundef %705) #12
  %707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %708 = trunc nuw i8 %707 to i1
  br i1 %708, label %709, label %713

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

713:                                              ; preds = %709, %703
  br label %714

714:                                              ; preds = %709, %713
  %.str.5.sink432 = phi ptr [ @.str.5, %713 ], [ @.str.2, %709 ]
  store i32 %704, ptr %246, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = load i32, ptr @test_count, align 4, !tbaa !5
  %717 = load i32, ptr %192, align 4, !tbaa !5
  %718 = call ptr @s2n_strerror(i32 noundef %717, ptr noundef nonnull @.str.4) #12
  %719 = load i32, ptr %192, align 4, !tbaa !5
  %720 = call ptr @s2n_strerror_debug(i32 noundef %719, ptr noundef nonnull @.str.4) #12
  %721 = load i32, ptr %246, align 4, !tbaa !5
  %722 = call ptr @strerror(i32 noundef %721) #12
  %723 = load i32, ptr %246, align 4, !tbaa !5
  %724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %715, ptr noundef nonnull %.str.5.sink432, i32 noundef %716, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %718, ptr noundef %720, ptr noundef %722, i32 noundef %723) #14
  call void @exit(i32 noundef 1) #15
  unreachable

725:                                              ; preds = %698
  %726 = add nsw i32 %699, 2
  store i32 %726, ptr @test_count, align 4, !tbaa !5
  %727 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %728 = icmp eq ptr %727, null
  br i1 %728, label %729, label %751

729:                                              ; preds = %725
  %730 = load i32, ptr %246, align 4, !tbaa !5
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = call i32 @s2n_print_stacktrace(ptr noundef %731) #12
  %733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %734 = trunc nuw i8 %733 to i1
  br i1 %734, label %735, label %739

735:                                              ; preds = %729
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = call i32 @fileno(ptr noundef %736) #12
  %738 = call i32 @isatty(i32 noundef %737) #12
  %.not183 = icmp eq i32 %738, 0
  br i1 %.not183, label %739, label %740

739:                                              ; preds = %735, %729
  br label %740

740:                                              ; preds = %735, %739
  %.str.5.sink441 = phi ptr [ @.str.5, %739 ], [ @.str.2, %735 ]
  store i32 %730, ptr %246, align 4, !tbaa !5
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = load i32, ptr @test_count, align 4, !tbaa !5
  %743 = load i32, ptr %192, align 4, !tbaa !5
  %744 = call ptr @s2n_strerror(i32 noundef %743, ptr noundef nonnull @.str.4) #12
  %745 = load i32, ptr %192, align 4, !tbaa !5
  %746 = call ptr @s2n_strerror_debug(i32 noundef %745, ptr noundef nonnull @.str.4) #12
  %747 = load i32, ptr %246, align 4, !tbaa !5
  %748 = call ptr @strerror(i32 noundef %747) #12
  %749 = load i32, ptr %246, align 4, !tbaa !5
  %750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %741, ptr noundef nonnull %.str.5.sink441, i32 noundef %742, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %744, ptr noundef %746, ptr noundef %748, i32 noundef %749) #14
  call void @exit(i32 noundef 1) #15
  unreachable

751:                                              ; preds = %725
  store i32 0, ptr %192, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %246, align 4, !tbaa !5
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr @test_count, align 4, !tbaa !5
  %754 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %130, ptr noundef nonnull %6, i64 noundef 48) #12
  %755 = icmp eq i32 %754, -1
  br i1 %755, label %756, label %778

756:                                              ; preds = %751
  %757 = load i32, ptr %246, align 4, !tbaa !5
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = call i32 @s2n_print_stacktrace(ptr noundef %758) #12
  %760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %761 = trunc nuw i8 %760 to i1
  br i1 %761, label %762, label %766

762:                                              ; preds = %756
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = call i32 @fileno(ptr noundef %763) #12
  %765 = call i32 @isatty(i32 noundef %764) #12
  %.not182 = icmp eq i32 %765, 0
  br i1 %.not182, label %766, label %767

766:                                              ; preds = %762, %756
  br label %767

767:                                              ; preds = %762, %766
  %.str.5.sink450 = phi ptr [ @.str.5, %766 ], [ @.str.2, %762 ]
  store i32 %757, ptr %246, align 4, !tbaa !5
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = load i32, ptr %192, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror(i32 noundef %770, ptr noundef nonnull @.str.4) #12
  %772 = load i32, ptr %192, align 4, !tbaa !5
  %773 = call ptr @s2n_strerror_debug(i32 noundef %772, ptr noundef nonnull @.str.4) #12
  %774 = load i32, ptr %246, align 4, !tbaa !5
  %775 = call ptr @strerror(i32 noundef %774) #12
  %776 = load i32, ptr %246, align 4, !tbaa !5
  %777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef nonnull %.str.5.sink450, i32 noundef %769, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %771, ptr noundef %773, ptr noundef %775, i32 noundef %776) #14
  call void @exit(i32 noundef 1) #15
  unreachable

778:                                              ; preds = %751
  %779 = load i32, ptr @test_count, align 4, !tbaa !5
  %780 = add nsw i32 %779, 1
  store i32 %780, ptr @test_count, align 4, !tbaa !5
  %bcmp145 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) @__const.main.test_secret, ptr noundef nonnull dereferenceable(48) %6, i64 48)
  %781 = icmp eq i32 %bcmp145, 0
  br i1 %781, label %804, label %782

782:                                              ; preds = %778
  %783 = load i32, ptr %246, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @s2n_print_stacktrace(ptr noundef %784) #12
  %786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %787 = trunc nuw i8 %786 to i1
  br i1 %787, label %788, label %792

788:                                              ; preds = %782
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = call i32 @fileno(ptr noundef %789) #12
  %791 = call i32 @isatty(i32 noundef %790) #12
  %.not146 = icmp eq i32 %791, 0
  br i1 %.not146, label %792, label %793

792:                                              ; preds = %788, %782
  br label %793

793:                                              ; preds = %788, %792
  %.str.5.sink459 = phi ptr [ @.str.5, %792 ], [ @.str.2, %788 ]
  store i32 %783, ptr %246, align 4, !tbaa !5
  %794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %795 = load i32, ptr @test_count, align 4, !tbaa !5
  %796 = load i32, ptr %192, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror(i32 noundef %796, ptr noundef nonnull @.str.4) #12
  %798 = load i32, ptr %192, align 4, !tbaa !5
  %799 = call ptr @s2n_strerror_debug(i32 noundef %798, ptr noundef nonnull @.str.4) #12
  %800 = load i32, ptr %246, align 4, !tbaa !5
  %801 = call ptr @strerror(i32 noundef %800) #12
  %802 = load i32, ptr %246, align 4, !tbaa !5
  %803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %794, ptr noundef nonnull %.str.5.sink459, i32 noundef %795, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %797, ptr noundef %799, ptr noundef %801, i32 noundef %802) #14
  call void @exit(i32 noundef 1) #15
  unreachable

804:                                              ; preds = %778
  %805 = add nsw i32 %779, 2
  store i32 %805, ptr @test_count, align 4, !tbaa !5
  %806 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %130, ptr noundef nonnull %6, i64 noundef 49) #12
  %807 = icmp eq i32 %806, -1
  br i1 %807, label %808, label %830

808:                                              ; preds = %804
  %809 = load i32, ptr %246, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @s2n_print_stacktrace(ptr noundef %810) #12
  %812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %813 = trunc nuw i8 %812 to i1
  br i1 %813, label %814, label %818

814:                                              ; preds = %808
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = call i32 @fileno(ptr noundef %815) #12
  %817 = call i32 @isatty(i32 noundef %816) #12
  %.not181 = icmp eq i32 %817, 0
  br i1 %.not181, label %818, label %819

818:                                              ; preds = %814, %808
  br label %819

819:                                              ; preds = %814, %818
  %.str.5.sink468 = phi ptr [ @.str.5, %818 ], [ @.str.2, %814 ]
  store i32 %809, ptr %246, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = load i32, ptr %192, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror(i32 noundef %822, ptr noundef nonnull @.str.4) #12
  %824 = load i32, ptr %192, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror_debug(i32 noundef %824, ptr noundef nonnull @.str.4) #12
  %826 = load i32, ptr %246, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #12
  %828 = load i32, ptr %246, align 4, !tbaa !5
  %829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %820, ptr noundef nonnull %.str.5.sink468, i32 noundef %821, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %823, ptr noundef %825, ptr noundef %827, i32 noundef %828) #14
  call void @exit(i32 noundef 1) #15
  unreachable

830:                                              ; preds = %804
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = add nsw i32 %831, 1
  store i32 %832, ptr @test_count, align 4, !tbaa !5
  %bcmp147 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) @__const.main.test_secret, ptr noundef nonnull dereferenceable(48) %6, i64 48)
  %833 = icmp eq i32 %bcmp147, 0
  br i1 %833, label %856, label %834

834:                                              ; preds = %830
  %835 = load i32, ptr %246, align 4, !tbaa !5
  %836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %837 = call i32 @s2n_print_stacktrace(ptr noundef %836) #12
  %838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %839 = trunc nuw i8 %838 to i1
  br i1 %839, label %840, label %844

840:                                              ; preds = %834
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = call i32 @fileno(ptr noundef %841) #12
  %843 = call i32 @isatty(i32 noundef %842) #12
  %.not148 = icmp eq i32 %843, 0
  br i1 %.not148, label %844, label %845

844:                                              ; preds = %840, %834
  br label %845

845:                                              ; preds = %840, %844
  %.str.5.sink477 = phi ptr [ @.str.5, %844 ], [ @.str.2, %840 ]
  store i32 %835, ptr %246, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = load i32, ptr @test_count, align 4, !tbaa !5
  %848 = load i32, ptr %192, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror(i32 noundef %848, ptr noundef nonnull @.str.4) #12
  %850 = load i32, ptr %192, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror_debug(i32 noundef %850, ptr noundef nonnull @.str.4) #12
  %852 = load i32, ptr %246, align 4, !tbaa !5
  %853 = call ptr @strerror(i32 noundef %852) #12
  %854 = load i32, ptr %246, align 4, !tbaa !5
  %855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef nonnull %.str.5.sink477, i32 noundef %847, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %849, ptr noundef %851, ptr noundef %853, i32 noundef %854) #14
  call void @exit(i32 noundef 1) #15
  unreachable

856:                                              ; preds = %830
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #12
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %7, i8 0, i64 48, i1 false)
  %857 = getelementptr inbounds i8, ptr %130, i64 2176
  store i32 0, ptr %857, align 8, !tbaa !42
  %858 = add nsw i32 %831, 2
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %130, ptr noundef nonnull %7, i64 noundef 48) #12
  %860 = icmp eq i32 %859, -1
  br i1 %860, label %883, label %861

861:                                              ; preds = %856
  %862 = load i32, ptr %246, align 4, !tbaa !5
  %863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %864 = call i32 @s2n_print_stacktrace(ptr noundef %863) #12
  %865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %866 = trunc nuw i8 %865 to i1
  br i1 %866, label %867, label %871

867:                                              ; preds = %861
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @fileno(ptr noundef %868) #12
  %870 = call i32 @isatty(i32 noundef %869) #12
  %.not149 = icmp eq i32 %870, 0
  br i1 %.not149, label %871, label %872

871:                                              ; preds = %867, %861
  br label %872

872:                                              ; preds = %867, %871
  %.str.5.sink486 = phi ptr [ @.str.5, %871 ], [ @.str.2, %867 ]
  store i32 %862, ptr %246, align 4, !tbaa !5
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = load i32, ptr @test_count, align 4, !tbaa !5
  %875 = load i32, ptr %192, align 4, !tbaa !5
  %876 = call ptr @s2n_strerror(i32 noundef %875, ptr noundef nonnull @.str.4) #12
  %877 = load i32, ptr %192, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror_debug(i32 noundef %877, ptr noundef nonnull @.str.4) #12
  %879 = load i32, ptr %246, align 4, !tbaa !5
  %880 = call ptr @strerror(i32 noundef %879) #12
  %881 = load i32, ptr %246, align 4, !tbaa !5
  %882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %873, ptr noundef nonnull %.str.5.sink486, i32 noundef %874, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %876, ptr noundef %878, ptr noundef %880, i32 noundef %881) #14
  call void @exit(i32 noundef 1) #15
  unreachable

883:                                              ; preds = %856
  %884 = load i32, ptr @test_count, align 4, !tbaa !5
  %885 = add nsw i32 %884, 1
  store i32 %885, ptr @test_count, align 4, !tbaa !5
  %886 = load i32, ptr %192, align 4, !tbaa !5
  %887 = icmp eq i32 %886, 469762124
  br i1 %887, label %910, label %888

888:                                              ; preds = %883
  %889 = load i32, ptr %246, align 4, !tbaa !5
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = call i32 @s2n_print_stacktrace(ptr noundef %890) #12
  %892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %893 = trunc nuw i8 %892 to i1
  br i1 %893, label %894, label %898

894:                                              ; preds = %888
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = call i32 @fileno(ptr noundef %895) #12
  %897 = call i32 @isatty(i32 noundef %896) #12
  %.not150 = icmp eq i32 %897, 0
  br i1 %.not150, label %898, label %899

898:                                              ; preds = %894, %888
  br label %899

899:                                              ; preds = %894, %898
  %.str.5.sink495 = phi ptr [ @.str.5, %898 ], [ @.str.2, %894 ]
  store i32 %889, ptr %246, align 4, !tbaa !5
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = load i32, ptr @test_count, align 4, !tbaa !5
  %902 = load i32, ptr %192, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror(i32 noundef %902, ptr noundef nonnull @.str.4) #12
  %904 = load i32, ptr %192, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror_debug(i32 noundef %904, ptr noundef nonnull @.str.4) #12
  %906 = load i32, ptr %246, align 4, !tbaa !5
  %907 = call ptr @strerror(i32 noundef %906) #12
  %908 = load i32, ptr %246, align 4, !tbaa !5
  %909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %900, ptr noundef nonnull %.str.5.sink495, i32 noundef %901, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %903, ptr noundef %905, ptr noundef %907, i32 noundef %908) #14
  call void @exit(i32 noundef 1) #15
  unreachable

910:                                              ; preds = %883
  %911 = add nsw i32 %884, 2
  store i32 %911, ptr @test_count, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror_debug(i32 noundef 469762124, ptr noundef nonnull @.str.4) #12
  %913 = icmp eq ptr %912, null
  br i1 %913, label %914, label %936

914:                                              ; preds = %910
  %915 = load i32, ptr %246, align 4, !tbaa !5
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = call i32 @s2n_print_stacktrace(ptr noundef %916) #12
  %918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %919 = trunc nuw i8 %918 to i1
  br i1 %919, label %920, label %924

920:                                              ; preds = %914
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = call i32 @fileno(ptr noundef %921) #12
  %923 = call i32 @isatty(i32 noundef %922) #12
  %.not180 = icmp eq i32 %923, 0
  br i1 %.not180, label %924, label %925

924:                                              ; preds = %920, %914
  br label %925

925:                                              ; preds = %920, %924
  %.str.5.sink504 = phi ptr [ @.str.5, %924 ], [ @.str.2, %920 ]
  store i32 %915, ptr %246, align 4, !tbaa !5
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = load i32, ptr %192, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror(i32 noundef %928, ptr noundef nonnull @.str.4) #12
  %930 = load i32, ptr %192, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror_debug(i32 noundef %930, ptr noundef nonnull @.str.4) #12
  %932 = load i32, ptr %246, align 4, !tbaa !5
  %933 = call ptr @strerror(i32 noundef %932) #12
  %934 = load i32, ptr %246, align 4, !tbaa !5
  %935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %926, ptr noundef nonnull %.str.5.sink504, i32 noundef %927, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %929, ptr noundef %931, ptr noundef %933, i32 noundef %934) #14
  call void @exit(i32 noundef 1) #15
  unreachable

936:                                              ; preds = %910
  store i32 0, ptr %192, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %246, align 4, !tbaa !5
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = add nsw i32 %937, 1
  store i32 %938, ptr @test_count, align 4, !tbaa !5
  %939 = call i32 @s2n_skip_handshake(ptr noundef nonnull %130) #12
  %940 = call zeroext i1 @s2n_result_is_ok(i32 %939)
  br i1 %940, label %963, label %941

941:                                              ; preds = %936
  %942 = load i32, ptr %246, align 4, !tbaa !5
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = call i32 @s2n_print_stacktrace(ptr noundef %943) #12
  %945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %946 = trunc nuw i8 %945 to i1
  br i1 %946, label %947, label %951

947:                                              ; preds = %941
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @fileno(ptr noundef %948) #12
  %950 = call i32 @isatty(i32 noundef %949) #12
  %.not151 = icmp eq i32 %950, 0
  br i1 %.not151, label %951, label %952

951:                                              ; preds = %947, %941
  br label %952

952:                                              ; preds = %947, %951
  %.str.5.sink513 = phi ptr [ @.str.5, %951 ], [ @.str.2, %947 ]
  store i32 %942, ptr %246, align 4, !tbaa !5
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = load i32, ptr %192, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror(i32 noundef %955, ptr noundef nonnull @.str.4) #12
  %957 = load i32, ptr %192, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror_debug(i32 noundef %957, ptr noundef nonnull @.str.4) #12
  %959 = load i32, ptr %246, align 4, !tbaa !5
  %960 = call ptr @strerror(i32 noundef %959) #12
  %961 = load i32, ptr %246, align 4, !tbaa !5
  %962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %953, ptr noundef nonnull %.str.5.sink513, i32 noundef %954, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %956, ptr noundef %958, ptr noundef %960, i32 noundef %961) #14
  call void @exit(i32 noundef 1) #15
  unreachable

963:                                              ; preds = %936
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = add nsw i32 %964, 1
  store i32 %965, ptr @test_count, align 4, !tbaa !5
  %966 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %130, ptr noundef nonnull %7, i64 noundef 48) #12
  %967 = icmp eq i32 %966, -1
  br i1 %967, label %968, label %990

968:                                              ; preds = %963
  %969 = load i32, ptr %246, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = call i32 @s2n_print_stacktrace(ptr noundef %970) #12
  %972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %973 = trunc nuw i8 %972 to i1
  br i1 %973, label %974, label %978

974:                                              ; preds = %968
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = call i32 @fileno(ptr noundef %975) #12
  %977 = call i32 @isatty(i32 noundef %976) #12
  %.not179 = icmp eq i32 %977, 0
  br i1 %.not179, label %978, label %979

978:                                              ; preds = %974, %968
  br label %979

979:                                              ; preds = %974, %978
  %.str.5.sink522 = phi ptr [ @.str.5, %978 ], [ @.str.2, %974 ]
  store i32 %969, ptr %246, align 4, !tbaa !5
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = load i32, ptr %192, align 4, !tbaa !5
  %983 = call ptr @s2n_strerror(i32 noundef %982, ptr noundef nonnull @.str.4) #12
  %984 = load i32, ptr %192, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror_debug(i32 noundef %984, ptr noundef nonnull @.str.4) #12
  %986 = load i32, ptr %246, align 4, !tbaa !5
  %987 = call ptr @strerror(i32 noundef %986) #12
  %988 = load i32, ptr %246, align 4, !tbaa !5
  %989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %980, ptr noundef nonnull %.str.5.sink522, i32 noundef %981, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %983, ptr noundef %985, ptr noundef %987, i32 noundef %988) #14
  call void @exit(i32 noundef 1) #15
  unreachable

990:                                              ; preds = %963
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = add nsw i32 %991, 1
  store i32 %992, ptr @test_count, align 4, !tbaa !5
  %bcmp152 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) @__const.main.test_secret, ptr noundef nonnull dereferenceable(48) %7, i64 48)
  %993 = icmp eq i32 %bcmp152, 0
  br i1 %993, label %1016, label %994

994:                                              ; preds = %990
  %995 = load i32, ptr %246, align 4, !tbaa !5
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = call i32 @s2n_print_stacktrace(ptr noundef %996) #12
  %998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %999 = trunc nuw i8 %998 to i1
  br i1 %999, label %1000, label %1004

1000:                                             ; preds = %994
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = call i32 @fileno(ptr noundef %1001) #12
  %1003 = call i32 @isatty(i32 noundef %1002) #12
  %.not153 = icmp eq i32 %1003, 0
  br i1 %.not153, label %1004, label %1005

1004:                                             ; preds = %1000, %994
  br label %1005

1005:                                             ; preds = %1000, %1004
  %.str.5.sink531 = phi ptr [ @.str.5, %1004 ], [ @.str.2, %1000 ]
  store i32 %995, ptr %246, align 4, !tbaa !5
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = load i32, ptr %192, align 4, !tbaa !5
  %1009 = call ptr @s2n_strerror(i32 noundef %1008, ptr noundef nonnull @.str.4) #12
  %1010 = load i32, ptr %192, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror_debug(i32 noundef %1010, ptr noundef nonnull @.str.4) #12
  %1012 = load i32, ptr %246, align 4, !tbaa !5
  %1013 = call ptr @strerror(i32 noundef %1012) #12
  %1014 = load i32, ptr %246, align 4, !tbaa !5
  %1015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1006, ptr noundef nonnull %.str.5.sink531, i32 noundef %1007, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %1009, ptr noundef %1011, ptr noundef %1013, i32 noundef %1014) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1016:                                             ; preds = %990
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #12
  br label %1021

1017:                                             ; preds = %1493
  %1018 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %2) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #12
  %1019 = call i32 @s2n_cleanup() #12
  %1020 = icmp eq i32 %1019, -1
  br i1 %1020, label %1499, label %1521

1021:                                             ; preds = %1016, %1493
  %.0195 = phi i64 [ 0, %1016 ], [ %1498, %1493 ]
  %1022 = getelementptr inbounds [4 x i8], ptr @__const.main.supported_versions, i64 0, i64 %.0195
  %1023 = load i8, ptr %1022, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #12
  %1024 = call ptr @s2n_config_new() #12
  store ptr %1024, ptr %8, align 8, !tbaa !9
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = add nsw i32 %1025, 1
  store i32 %1026, ptr @test_count, align 4, !tbaa !5
  %1027 = icmp eq ptr %1024, null
  br i1 %1027, label %1028, label %1050

1028:                                             ; preds = %1021
  %1029 = load i32, ptr %246, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = call i32 @s2n_print_stacktrace(ptr noundef %1030) #12
  %1032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1033 = trunc nuw i8 %1032 to i1
  br i1 %1033, label %1034, label %1038

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

1038:                                             ; preds = %1034, %1028
  br label %1039

1039:                                             ; preds = %1034, %1038
  %.str.5.sink540 = phi ptr [ @.str.5, %1038 ], [ @.str.2, %1034 ]
  store i32 %1029, ptr %246, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = load i32, ptr %192, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror(i32 noundef %1042, ptr noundef nonnull @.str.4) #12
  %1044 = load i32, ptr %192, align 4, !tbaa !5
  %1045 = call ptr @s2n_strerror_debug(i32 noundef %1044, ptr noundef nonnull @.str.4) #12
  %1046 = load i32, ptr %246, align 4, !tbaa !5
  %1047 = call ptr @strerror(i32 noundef %1046) #12
  %1048 = load i32, ptr %246, align 4, !tbaa !5
  %1049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1040, ptr noundef nonnull %.str.5.sink540, i32 noundef %1041, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %1043, ptr noundef %1045, ptr noundef %1047, i32 noundef %1048) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1050:                                             ; preds = %1021
  %1051 = add nsw i32 %1025, 2
  store i32 %1051, ptr @test_count, align 4, !tbaa !5
  %1052 = load ptr, ptr %1, align 8, !tbaa !9
  %1053 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1024, ptr noundef %1052) #12
  %1054 = icmp eq i32 %1053, -1
  br i1 %1054, label %1055, label %1077

1055:                                             ; preds = %1050
  %1056 = load i32, ptr %246, align 4, !tbaa !5
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @s2n_print_stacktrace(ptr noundef %1057) #12
  %1059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1060 = trunc nuw i8 %1059 to i1
  br i1 %1060, label %1061, label %1065

1061:                                             ; preds = %1055
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = call i32 @fileno(ptr noundef %1062) #12
  %1064 = call i32 @isatty(i32 noundef %1063) #12
  %.not177 = icmp eq i32 %1064, 0
  br i1 %.not177, label %1065, label %1066

1065:                                             ; preds = %1061, %1055
  br label %1066

1066:                                             ; preds = %1061, %1065
  %.str.5.sink549 = phi ptr [ @.str.5, %1065 ], [ @.str.2, %1061 ]
  store i32 %1056, ptr %246, align 4, !tbaa !5
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = load i32, ptr @test_count, align 4, !tbaa !5
  %1069 = load i32, ptr %192, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror(i32 noundef %1069, ptr noundef nonnull @.str.4) #12
  %1071 = load i32, ptr %192, align 4, !tbaa !5
  %1072 = call ptr @s2n_strerror_debug(i32 noundef %1071, ptr noundef nonnull @.str.4) #12
  %1073 = load i32, ptr %246, align 4, !tbaa !5
  %1074 = call ptr @strerror(i32 noundef %1073) #12
  %1075 = load i32, ptr %246, align 4, !tbaa !5
  %1076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1067, ptr noundef nonnull %.str.5.sink549, i32 noundef %1068, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1070, ptr noundef %1072, ptr noundef %1074, i32 noundef %1075) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1077:                                             ; preds = %1050
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = add nsw i32 %1078, 1
  store i32 %1079, ptr @test_count, align 4, !tbaa !5
  %1080 = load ptr, ptr %8, align 8, !tbaa !9
  %1081 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %1080) #12
  %1082 = icmp eq i32 %1081, -1
  br i1 %1082, label %1083, label %1105

1083:                                             ; preds = %1077
  %1084 = load i32, ptr %246, align 4, !tbaa !5
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = call i32 @s2n_print_stacktrace(ptr noundef %1085) #12
  %1087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1088 = trunc nuw i8 %1087 to i1
  br i1 %1088, label %1089, label %1093

1089:                                             ; preds = %1083
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = call i32 @fileno(ptr noundef %1090) #12
  %1092 = call i32 @isatty(i32 noundef %1091) #12
  %.not176 = icmp eq i32 %1092, 0
  br i1 %.not176, label %1093, label %1094

1093:                                             ; preds = %1089, %1083
  br label %1094

1094:                                             ; preds = %1089, %1093
  %.str.5.sink558 = phi ptr [ @.str.5, %1093 ], [ @.str.2, %1089 ]
  store i32 %1084, ptr %246, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = load i32, ptr %192, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror(i32 noundef %1097, ptr noundef nonnull @.str.4) #12
  %1099 = load i32, ptr %192, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef nonnull @.str.4) #12
  %1101 = load i32, ptr %246, align 4, !tbaa !5
  %1102 = call ptr @strerror(i32 noundef %1101) #12
  %1103 = load i32, ptr %246, align 4, !tbaa !5
  %1104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1095, ptr noundef nonnull %.str.5.sink558, i32 noundef %1096, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1098, ptr noundef %1100, ptr noundef %1102, i32 noundef %1103) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1105:                                             ; preds = %1077
  %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 = load ptr, ptr %8, align 8, !tbaa !9
  %1109 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1108, ptr noundef nonnull @.str.31) #12
  %1110 = icmp eq i32 %1109, -1
  br i1 %1110, label %1111, label %1133

1111:                                             ; preds = %1105
  %1112 = load i32, ptr %246, align 4, !tbaa !5
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = call i32 @s2n_print_stacktrace(ptr noundef %1113) #12
  %1115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1116 = trunc nuw i8 %1115 to i1
  br i1 %1116, label %1117, label %1121

1117:                                             ; preds = %1111
  %1118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1119 = call i32 @fileno(ptr noundef %1118) #12
  %1120 = call i32 @isatty(i32 noundef %1119) #12
  %.not175 = icmp eq i32 %1120, 0
  br i1 %.not175, label %1121, label %1122

1121:                                             ; preds = %1117, %1111
  br label %1122

1122:                                             ; preds = %1117, %1121
  %.str.5.sink567 = phi ptr [ @.str.5, %1121 ], [ @.str.2, %1117 ]
  store i32 %1112, ptr %246, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = load i32, ptr %192, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef nonnull @.str.4) #12
  %1127 = load i32, ptr %192, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror_debug(i32 noundef %1127, ptr noundef nonnull @.str.4) #12
  %1129 = load i32, ptr %246, align 4, !tbaa !5
  %1130 = call ptr @strerror(i32 noundef %1129) #12
  %1131 = load i32, ptr %246, align 4, !tbaa !5
  %1132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1123, ptr noundef nonnull %.str.5.sink567, i32 noundef %1124, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %1126, ptr noundef %1128, ptr noundef %1130, i32 noundef %1131) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1133:                                             ; preds = %1105
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #12
  %1134 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1134, ptr %9, align 8, !tbaa !9
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %1136 = add nsw i32 %1135, 1
  store i32 %1136, ptr @test_count, align 4, !tbaa !5
  %1137 = icmp eq ptr %1134, null
  br i1 %1137, label %1138, label %1160

1138:                                             ; preds = %1133
  %1139 = load i32, ptr %246, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @s2n_print_stacktrace(ptr noundef %1140) #12
  %1142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1143 = trunc nuw i8 %1142 to i1
  br i1 %1143, label %1144, label %1148

1144:                                             ; preds = %1138
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @fileno(ptr noundef %1145) #12
  %1147 = call i32 @isatty(i32 noundef %1146) #12
  %.not174 = icmp eq i32 %1147, 0
  br i1 %.not174, label %1148, label %1149

1148:                                             ; preds = %1144, %1138
  br label %1149

1149:                                             ; preds = %1144, %1148
  %.str.5.sink576 = phi ptr [ @.str.5, %1148 ], [ @.str.2, %1144 ]
  store i32 %1139, ptr %246, align 4, !tbaa !5
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = load i32, ptr %192, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror(i32 noundef %1152, ptr noundef nonnull @.str.4) #12
  %1154 = load i32, ptr %192, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror_debug(i32 noundef %1154, ptr noundef nonnull @.str.4) #12
  %1156 = load i32, ptr %246, align 4, !tbaa !5
  %1157 = call ptr @strerror(i32 noundef %1156) #12
  %1158 = load i32, ptr %246, align 4, !tbaa !5
  %1159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1150, ptr noundef nonnull %.str.5.sink576, i32 noundef %1151, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1153, ptr noundef %1155, ptr noundef %1157, i32 noundef %1158) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1160:                                             ; preds = %1133
  %1161 = add nsw i32 %1135, 2
  store i32 %1161, ptr @test_count, align 4, !tbaa !5
  %1162 = load ptr, ptr %8, align 8, !tbaa !9
  %1163 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1134, ptr noundef %1162) #12
  %1164 = icmp eq i32 %1163, -1
  br i1 %1164, label %1165, label %1187

1165:                                             ; preds = %1160
  %1166 = load i32, ptr %246, align 4, !tbaa !5
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = call i32 @s2n_print_stacktrace(ptr noundef %1167) #12
  %1169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1170 = trunc nuw i8 %1169 to i1
  br i1 %1170, label %1171, label %1175

1171:                                             ; preds = %1165
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = call i32 @fileno(ptr noundef %1172) #12
  %1174 = call i32 @isatty(i32 noundef %1173) #12
  %.not173 = icmp eq i32 %1174, 0
  br i1 %.not173, label %1175, label %1176

1175:                                             ; preds = %1171, %1165
  br label %1176

1176:                                             ; preds = %1171, %1175
  %.str.5.sink585 = phi ptr [ @.str.5, %1175 ], [ @.str.2, %1171 ]
  store i32 %1166, ptr %246, align 4, !tbaa !5
  %1177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1178 = load i32, ptr @test_count, align 4, !tbaa !5
  %1179 = load i32, ptr %192, align 4, !tbaa !5
  %1180 = call ptr @s2n_strerror(i32 noundef %1179, ptr noundef nonnull @.str.4) #12
  %1181 = load i32, ptr %192, align 4, !tbaa !5
  %1182 = call ptr @s2n_strerror_debug(i32 noundef %1181, ptr noundef nonnull @.str.4) #12
  %1183 = load i32, ptr %246, align 4, !tbaa !5
  %1184 = call ptr @strerror(i32 noundef %1183) #12
  %1185 = load i32, ptr %246, align 4, !tbaa !5
  %1186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1177, ptr noundef nonnull %.str.5.sink585, i32 noundef %1178, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1180, ptr noundef %1182, ptr noundef %1184, i32 noundef %1185) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1187:                                             ; preds = %1160
  %1188 = load ptr, ptr %9, align 8, !tbaa !9
  %1189 = getelementptr inbounds i8, ptr %1188, i64 218
  store i8 %1023, ptr %1189, align 2, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  %1190 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1190, ptr %10, align 8, !tbaa !9
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = add nsw i32 %1191, 1
  store i32 %1192, ptr @test_count, align 4, !tbaa !5
  %1193 = icmp eq ptr %1190, null
  br i1 %1193, label %1194, label %1216

1194:                                             ; preds = %1187
  %1195 = load i32, ptr %246, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = call i32 @s2n_print_stacktrace(ptr noundef %1196) #12
  %1198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1199 = trunc nuw i8 %1198 to i1
  br i1 %1199, label %1200, label %1204

1200:                                             ; preds = %1194
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = call i32 @fileno(ptr noundef %1201) #12
  %1203 = call i32 @isatty(i32 noundef %1202) #12
  %.not172 = icmp eq i32 %1203, 0
  br i1 %.not172, label %1204, label %1205

1204:                                             ; preds = %1200, %1194
  br label %1205

1205:                                             ; preds = %1200, %1204
  %.str.5.sink594 = phi ptr [ @.str.5, %1204 ], [ @.str.2, %1200 ]
  store i32 %1195, ptr %246, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = load i32, ptr %192, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror(i32 noundef %1208, ptr noundef nonnull @.str.4) #12
  %1210 = load i32, ptr %192, align 4, !tbaa !5
  %1211 = call ptr @s2n_strerror_debug(i32 noundef %1210, ptr noundef nonnull @.str.4) #12
  %1212 = load i32, ptr %246, align 4, !tbaa !5
  %1213 = call ptr @strerror(i32 noundef %1212) #12
  %1214 = load i32, ptr %246, align 4, !tbaa !5
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1206, ptr noundef nonnull %.str.5.sink594, i32 noundef %1207, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1209, ptr noundef %1211, ptr noundef %1213, i32 noundef %1214) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1216:                                             ; preds = %1187
  %1217 = add nsw i32 %1191, 2
  store i32 %1217, ptr @test_count, align 4, !tbaa !5
  %1218 = load ptr, ptr %8, align 8, !tbaa !9
  %1219 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1190, ptr noundef %1218) #12
  %1220 = icmp eq i32 %1219, -1
  br i1 %1220, label %1221, label %1243

1221:                                             ; preds = %1216
  %1222 = load i32, ptr %246, align 4, !tbaa !5
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = call i32 @s2n_print_stacktrace(ptr noundef %1223) #12
  %1225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1226 = trunc nuw i8 %1225 to i1
  br i1 %1226, label %1227, label %1231

1227:                                             ; preds = %1221
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @fileno(ptr noundef %1228) #12
  %1230 = call i32 @isatty(i32 noundef %1229) #12
  %.not171 = icmp eq i32 %1230, 0
  br i1 %.not171, label %1231, label %1232

1231:                                             ; preds = %1227, %1221
  br label %1232

1232:                                             ; preds = %1227, %1231
  %.str.5.sink603 = phi ptr [ @.str.5, %1231 ], [ @.str.2, %1227 ]
  store i32 %1222, ptr %246, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = load i32, ptr %192, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef nonnull @.str.4) #12
  %1237 = load i32, ptr %192, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef nonnull @.str.4) #12
  %1239 = load i32, ptr %246, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #12
  %1241 = load i32, ptr %246, align 4, !tbaa !5
  %1242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1233, ptr noundef nonnull %.str.5.sink603, i32 noundef %1234, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1236, ptr noundef %1238, ptr noundef %1240, i32 noundef %1241) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1243:                                             ; preds = %1216
  %1244 = load ptr, ptr %10, align 8, !tbaa !9
  %1245 = getelementptr inbounds i8, ptr %1244, i64 288
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %1245, i8 1, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  store i64 0, ptr %11, align 8
  %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 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #12
  %1249 = icmp eq i32 %1248, -1
  br i1 %1249, label %1250, label %1272

1250:                                             ; preds = %1243
  %1251 = load i32, ptr %246, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @s2n_print_stacktrace(ptr noundef %1252) #12
  %1254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1255 = trunc nuw i8 %1254 to i1
  br i1 %1255, label %1256, label %1260

1256:                                             ; preds = %1250
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @fileno(ptr noundef %1257) #12
  %1259 = call i32 @isatty(i32 noundef %1258) #12
  %.not170 = icmp eq i32 %1259, 0
  br i1 %.not170, label %1260, label %1261

1260:                                             ; preds = %1256, %1250
  br label %1261

1261:                                             ; preds = %1256, %1260
  %.str.5.sink612 = phi ptr [ @.str.5, %1260 ], [ @.str.2, %1256 ]
  store i32 %1251, ptr %246, align 4, !tbaa !5
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = load i32, ptr @test_count, align 4, !tbaa !5
  %1264 = load i32, ptr %192, align 4, !tbaa !5
  %1265 = call ptr @s2n_strerror(i32 noundef %1264, ptr noundef nonnull @.str.4) #12
  %1266 = load i32, ptr %192, align 4, !tbaa !5
  %1267 = call ptr @s2n_strerror_debug(i32 noundef %1266, ptr noundef nonnull @.str.4) #12
  %1268 = load i32, ptr %246, align 4, !tbaa !5
  %1269 = call ptr @strerror(i32 noundef %1268) #12
  %1270 = load i32, ptr %246, align 4, !tbaa !5
  %1271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1262, ptr noundef nonnull %.str.5.sink612, i32 noundef %1263, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %1265, ptr noundef %1267, ptr noundef %1269, i32 noundef %1270) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1272:                                             ; preds = %1243
  %1273 = load i32, ptr @test_count, align 4, !tbaa !5
  %1274 = add nsw i32 %1273, 1
  store i32 %1274, ptr @test_count, align 4, !tbaa !5
  %1275 = load ptr, ptr %9, align 8, !tbaa !9
  %1276 = load ptr, ptr %10, align 8, !tbaa !9
  %1277 = call i32 @s2n_connections_set_io_pair(ptr noundef %1275, ptr noundef %1276, ptr noundef nonnull %11) #12
  %1278 = icmp eq i32 %1277, -1
  br i1 %1278, label %1279, label %1301

1279:                                             ; preds = %1272
  %1280 = load i32, ptr %246, align 4, !tbaa !5
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = call i32 @s2n_print_stacktrace(ptr noundef %1281) #12
  %1283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1284 = trunc nuw i8 %1283 to i1
  br i1 %1284, label %1285, label %1289

1285:                                             ; preds = %1279
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = call i32 @fileno(ptr noundef %1286) #12
  %1288 = call i32 @isatty(i32 noundef %1287) #12
  %.not169 = icmp eq i32 %1288, 0
  br i1 %.not169, label %1289, label %1290

1289:                                             ; preds = %1285, %1279
  br label %1290

1290:                                             ; preds = %1285, %1289
  %.str.5.sink621 = phi ptr [ @.str.5, %1289 ], [ @.str.2, %1285 ]
  store i32 %1280, ptr %246, align 4, !tbaa !5
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = load i32, ptr @test_count, align 4, !tbaa !5
  %1293 = load i32, ptr %192, align 4, !tbaa !5
  %1294 = call ptr @s2n_strerror(i32 noundef %1293, ptr noundef nonnull @.str.4) #12
  %1295 = load i32, ptr %192, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror_debug(i32 noundef %1295, ptr noundef nonnull @.str.4) #12
  %1297 = load i32, ptr %246, align 4, !tbaa !5
  %1298 = call ptr @strerror(i32 noundef %1297) #12
  %1299 = load i32, ptr %246, align 4, !tbaa !5
  %1300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1291, ptr noundef nonnull %.str.5.sink621, i32 noundef %1292, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1294, ptr noundef %1296, ptr noundef %1298, i32 noundef %1299) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1301:                                             ; preds = %1272
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = add nsw i32 %1302, 1
  store i32 %1303, ptr @test_count, align 4, !tbaa !5
  %1304 = load ptr, ptr %10, align 8, !tbaa !9
  %1305 = load ptr, ptr %9, align 8, !tbaa !9
  %1306 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1304, ptr noundef %1305) #12
  %1307 = icmp eq i32 %1306, -1
  br i1 %1307, label %1308, label %1330

1308:                                             ; preds = %1301
  %1309 = load i32, ptr %246, align 4, !tbaa !5
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = call i32 @s2n_print_stacktrace(ptr noundef %1310) #12
  %1312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1313 = trunc nuw i8 %1312 to i1
  br i1 %1313, label %1314, label %1318

1314:                                             ; preds = %1308
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = call i32 @fileno(ptr noundef %1315) #12
  %1317 = call i32 @isatty(i32 noundef %1316) #12
  %.not168 = icmp eq i32 %1317, 0
  br i1 %.not168, label %1318, label %1319

1318:                                             ; preds = %1314, %1308
  br label %1319

1319:                                             ; preds = %1314, %1318
  %.str.5.sink630 = phi ptr [ @.str.5, %1318 ], [ @.str.2, %1314 ]
  store i32 %1309, ptr %246, align 4, !tbaa !5
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = load i32, ptr %192, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror(i32 noundef %1322, ptr noundef nonnull @.str.4) #12
  %1324 = load i32, ptr %192, align 4, !tbaa !5
  %1325 = call ptr @s2n_strerror_debug(i32 noundef %1324, ptr noundef nonnull @.str.4) #12
  %1326 = load i32, ptr %246, align 4, !tbaa !5
  %1327 = call ptr @strerror(i32 noundef %1326) #12
  %1328 = load i32, ptr %246, align 4, !tbaa !5
  %1329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1320, ptr noundef nonnull %.str.5.sink630, i32 noundef %1321, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1323, ptr noundef %1325, ptr noundef %1327, i32 noundef %1328) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1330:                                             ; preds = %1301
  %1331 = load i32, ptr @test_count, align 4, !tbaa !5
  %1332 = add nsw i32 %1331, 1
  store i32 %1332, ptr @test_count, align 4, !tbaa !5
  %1333 = load ptr, ptr %10, align 8, !tbaa !9
  %1334 = getelementptr inbounds i8, ptr %1333, i64 220
  %1335 = load i8, ptr %1334, align 4, !tbaa !15
  %1336 = icmp eq i8 %1335, %1023
  br i1 %1336, label %1359, label %1337

1337:                                             ; preds = %1330
  %1338 = load i32, ptr %246, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = call i32 @s2n_print_stacktrace(ptr noundef %1339) #12
  %1341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1342 = trunc nuw i8 %1341 to i1
  br i1 %1342, label %1343, label %1347

1343:                                             ; preds = %1337
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = call i32 @fileno(ptr noundef %1344) #12
  %1346 = call i32 @isatty(i32 noundef %1345) #12
  %.not159 = icmp eq i32 %1346, 0
  br i1 %.not159, label %1347, label %1348

1347:                                             ; preds = %1343, %1337
  br label %1348

1348:                                             ; preds = %1343, %1347
  %.str.5.sink639 = phi ptr [ @.str.5, %1347 ], [ @.str.2, %1343 ]
  store i32 %1338, ptr %246, align 4, !tbaa !5
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = load i32, ptr @test_count, align 4, !tbaa !5
  %1351 = load i32, ptr %192, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror(i32 noundef %1351, ptr noundef nonnull @.str.4) #12
  %1353 = load i32, ptr %192, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror_debug(i32 noundef %1353, ptr noundef nonnull @.str.4) #12
  %1355 = load i32, ptr %246, align 4, !tbaa !5
  %1356 = call ptr @strerror(i32 noundef %1355) #12
  %1357 = load i32, ptr %246, align 4, !tbaa !5
  %1358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1349, ptr noundef nonnull %.str.5.sink639, i32 noundef %1350, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1352, ptr noundef %1354, ptr noundef %1356, i32 noundef %1357) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1359:                                             ; preds = %1330
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %12) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %12, i8 0, i64 48, i1 false)
  %1360 = add nsw i32 %1331, 2
  store i32 %1360, ptr @test_count, align 4, !tbaa !5
  %1361 = call i32 @s2n_connection_get_master_secret(ptr noundef nonnull %1333, ptr noundef nonnull %12, i64 noundef 48) #12
  %1362 = icmp eq i32 %1361, -1
  br i1 %1362, label %1363, label %1385

1363:                                             ; preds = %1359
  %1364 = load i32, ptr %246, align 4, !tbaa !5
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = call i32 @s2n_print_stacktrace(ptr noundef %1365) #12
  %1367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1368 = trunc nuw i8 %1367 to i1
  br i1 %1368, label %1369, label %1373

1369:                                             ; preds = %1363
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = call i32 @fileno(ptr noundef %1370) #12
  %1372 = call i32 @isatty(i32 noundef %1371) #12
  %.not167 = icmp eq i32 %1372, 0
  br i1 %.not167, label %1373, label %1374

1373:                                             ; preds = %1369, %1363
  br label %1374

1374:                                             ; preds = %1369, %1373
  %.str.5.sink648 = phi ptr [ @.str.5, %1373 ], [ @.str.2, %1369 ]
  store i32 %1364, ptr %246, align 4, !tbaa !5
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = load i32, ptr %192, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror(i32 noundef %1377, ptr noundef nonnull @.str.4) #12
  %1379 = load i32, ptr %192, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror_debug(i32 noundef %1379, ptr noundef nonnull @.str.4) #12
  %1381 = load i32, ptr %246, align 4, !tbaa !5
  %1382 = call ptr @strerror(i32 noundef %1381) #12
  %1383 = load i32, ptr %246, align 4, !tbaa !5
  %1384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1375, ptr noundef nonnull %.str.5.sink648, i32 noundef %1376, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1378, ptr noundef %1380, ptr noundef %1382, i32 noundef %1383) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1385:                                             ; preds = %1359
  %1386 = load i32, ptr @test_count, align 4, !tbaa !5
  %1387 = add nsw i32 %1386, 1
  store i32 %1387, ptr @test_count, align 4, !tbaa !5
  %1388 = load ptr, ptr %10, align 8, !tbaa !9
  %1389 = getelementptr inbounds i8, ptr %1388, i64 288
  %bcmp160 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %1389, ptr noundef nonnull dereferenceable(48) %12, i64 48)
  %1390 = icmp eq i32 %bcmp160, 0
  br i1 %1390, label %1413, label %1391

1391:                                             ; preds = %1385
  %1392 = load i32, ptr %246, align 4, !tbaa !5
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = call i32 @s2n_print_stacktrace(ptr noundef %1393) #12
  %1395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1396 = trunc nuw i8 %1395 to i1
  br i1 %1396, label %1397, label %1401

1397:                                             ; preds = %1391
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = call i32 @fileno(ptr noundef %1398) #12
  %1400 = call i32 @isatty(i32 noundef %1399) #12
  %.not161 = icmp eq i32 %1400, 0
  br i1 %.not161, label %1401, label %1402

1401:                                             ; preds = %1397, %1391
  br label %1402

1402:                                             ; preds = %1397, %1401
  %.str.5.sink657 = phi ptr [ @.str.5, %1401 ], [ @.str.2, %1397 ]
  store i32 %1392, ptr %246, align 4, !tbaa !5
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = load i32, ptr @test_count, align 4, !tbaa !5
  %1405 = load i32, ptr %192, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror(i32 noundef %1405, ptr noundef nonnull @.str.4) #12
  %1407 = load i32, ptr %192, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror_debug(i32 noundef %1407, ptr noundef nonnull @.str.4) #12
  %1409 = load i32, ptr %246, align 4, !tbaa !5
  %1410 = call ptr @strerror(i32 noundef %1409) #12
  %1411 = load i32, ptr %246, align 4, !tbaa !5
  %1412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1403, ptr noundef nonnull %.str.5.sink657, i32 noundef %1404, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1406, ptr noundef %1408, ptr noundef %1410, i32 noundef %1411) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1413:                                             ; preds = %1385
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %13, i8 0, i64 48, i1 false)
  %1414 = add nsw i32 %1386, 2
  store i32 %1414, ptr @test_count, align 4, !tbaa !5
  %1415 = load ptr, ptr %9, align 8, !tbaa !9
  %1416 = call i32 @s2n_connection_get_master_secret(ptr noundef %1415, ptr noundef nonnull %13, i64 noundef 48) #12
  %1417 = icmp eq i32 %1416, -1
  br i1 %1417, label %1418, label %1440

1418:                                             ; preds = %1413
  %1419 = load i32, ptr %246, align 4, !tbaa !5
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = call i32 @s2n_print_stacktrace(ptr noundef %1420) #12
  %1422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1423 = trunc nuw i8 %1422 to i1
  br i1 %1423, label %1424, label %1428

1424:                                             ; preds = %1418
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = call i32 @fileno(ptr noundef %1425) #12
  %1427 = call i32 @isatty(i32 noundef %1426) #12
  %.not166 = icmp eq i32 %1427, 0
  br i1 %.not166, label %1428, label %1429

1428:                                             ; preds = %1424, %1418
  br label %1429

1429:                                             ; preds = %1424, %1428
  %.str.5.sink666 = phi ptr [ @.str.5, %1428 ], [ @.str.2, %1424 ]
  store i32 %1419, ptr %246, align 4, !tbaa !5
  %1430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1431 = load i32, ptr @test_count, align 4, !tbaa !5
  %1432 = load i32, ptr %192, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror(i32 noundef %1432, ptr noundef nonnull @.str.4) #12
  %1434 = load i32, ptr %192, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror_debug(i32 noundef %1434, ptr noundef nonnull @.str.4) #12
  %1436 = load i32, ptr %246, align 4, !tbaa !5
  %1437 = call ptr @strerror(i32 noundef %1436) #12
  %1438 = load i32, ptr %246, align 4, !tbaa !5
  %1439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1430, ptr noundef nonnull %.str.5.sink666, i32 noundef %1431, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1433, ptr noundef %1435, ptr noundef %1437, i32 noundef %1438) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1440:                                             ; preds = %1413
  %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 = load ptr, ptr %9, align 8, !tbaa !9
  %1444 = getelementptr inbounds i8, ptr %1443, i64 288
  %bcmp162 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %1444, ptr noundef nonnull dereferenceable(48) %13, i64 48)
  %1445 = icmp eq i32 %bcmp162, 0
  br i1 %1445, label %1468, label %1446

1446:                                             ; preds = %1440
  %1447 = load i32, ptr %246, align 4, !tbaa !5
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = call i32 @s2n_print_stacktrace(ptr noundef %1448) #12
  %1450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1451 = trunc nuw i8 %1450 to i1
  br i1 %1451, label %1452, label %1456

1452:                                             ; preds = %1446
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = call i32 @fileno(ptr noundef %1453) #12
  %1455 = call i32 @isatty(i32 noundef %1454) #12
  %.not163 = icmp eq i32 %1455, 0
  br i1 %.not163, label %1456, label %1457

1456:                                             ; preds = %1452, %1446
  br label %1457

1457:                                             ; preds = %1452, %1456
  %.str.5.sink675 = phi ptr [ @.str.5, %1456 ], [ @.str.2, %1452 ]
  store i32 %1447, ptr %246, align 4, !tbaa !5
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = load i32, ptr @test_count, align 4, !tbaa !5
  %1460 = load i32, ptr %192, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror(i32 noundef %1460, ptr noundef nonnull @.str.4) #12
  %1462 = load i32, ptr %192, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror_debug(i32 noundef %1462, ptr noundef nonnull @.str.4) #12
  %1464 = load i32, ptr %246, align 4, !tbaa !5
  %1465 = call ptr @strerror(i32 noundef %1464) #12
  %1466 = load i32, ptr %246, align 4, !tbaa !5
  %1467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1458, ptr noundef nonnull %.str.5.sink675, i32 noundef %1459, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %1461, ptr noundef %1463, ptr noundef %1465, i32 noundef %1466) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1468:                                             ; preds = %1440
  %1469 = add nsw i32 %1441, 2
  store i32 %1469, ptr @test_count, align 4, !tbaa !5
  %bcmp164 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %12, ptr noundef nonnull dereferenceable(48) %13, i64 48)
  %1470 = icmp eq i32 %bcmp164, 0
  br i1 %1470, label %1493, label %1471

1471:                                             ; preds = %1468
  %1472 = load i32, ptr %246, align 4, !tbaa !5
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @s2n_print_stacktrace(ptr noundef %1473) #12
  %1475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1476 = trunc nuw i8 %1475 to i1
  br i1 %1476, label %1477, label %1481

1477:                                             ; preds = %1471
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @fileno(ptr noundef %1478) #12
  %1480 = call i32 @isatty(i32 noundef %1479) #12
  %.not165 = icmp eq i32 %1480, 0
  br i1 %.not165, label %1481, label %1482

1481:                                             ; preds = %1477, %1471
  br label %1482

1482:                                             ; preds = %1477, %1481
  %.str.5.sink684 = phi ptr [ @.str.5, %1481 ], [ @.str.2, %1477 ]
  store i32 %1472, ptr %246, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = load i32, ptr %192, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror(i32 noundef %1485, ptr noundef nonnull @.str.4) #12
  %1487 = load i32, ptr %192, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef nonnull @.str.4) #12
  %1489 = load i32, ptr %246, align 4, !tbaa !5
  %1490 = call ptr @strerror(i32 noundef %1489) #12
  %1491 = load i32, ptr %246, align 4, !tbaa !5
  %1492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1483, ptr noundef nonnull %.str.5.sink684, i32 noundef %1484, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1486, ptr noundef %1488, ptr noundef %1490, i32 noundef %1491) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1493:                                             ; preds = %1468
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #12
  %1494 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  %1495 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  %1496 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #12
  %1497 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  %1498 = add nuw nsw i64 %.0195, 1
  %exitcond.not = icmp eq i64 %1498, 4
  br i1 %exitcond.not, label %1017, label %1021, !llvm.loop !45

1499:                                             ; preds = %1017
  %1500 = load i32, ptr %246, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = call i32 @s2n_print_stacktrace(ptr noundef %1501) #12
  %1503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1504 = trunc nuw i8 %1503 to i1
  br i1 %1504, label %1505, label %1509

1505:                                             ; preds = %1499
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @fileno(ptr noundef %1506) #12
  %1508 = call i32 @isatty(i32 noundef %1507) #12
  %.not158 = icmp eq i32 %1508, 0
  br i1 %.not158, label %1509, label %1510

1509:                                             ; preds = %1505, %1499
  br label %1510

1510:                                             ; preds = %1505, %1509
  %.str.5.sink693 = phi ptr [ @.str.5, %1509 ], [ @.str.2, %1505 ]
  store i32 %1500, ptr %246, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = load i32, ptr %192, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror(i32 noundef %1513, ptr noundef nonnull @.str.4) #12
  %1515 = load i32, ptr %192, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror_debug(i32 noundef %1515, ptr noundef nonnull @.str.4) #12
  %1517 = load i32, ptr %246, align 4, !tbaa !5
  %1518 = call ptr @strerror(i32 noundef %1517) #12
  %1519 = load i32, ptr %246, align 4, !tbaa !5
  %1520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1511, ptr noundef nonnull %.str.5.sink693, i32 noundef %1512, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1514, ptr noundef %1516, ptr noundef %1518, i32 noundef %1519) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1521:                                             ; preds = %1017
  %1522 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %1523 = icmp eq i32 %1522, -1
  br i1 %1523, label %1524, label %1546

1524:                                             ; preds = %1521
  %1525 = load i32, ptr %246, align 4, !tbaa !5
  %1526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1527 = call i32 @s2n_print_stacktrace(ptr noundef %1526) #12
  %1528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1529 = trunc nuw i8 %1528 to i1
  br i1 %1529, label %1530, label %1534

1530:                                             ; preds = %1524
  %1531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1532 = call i32 @fileno(ptr noundef %1531) #12
  %1533 = call i32 @isatty(i32 noundef %1532) #12
  %.not157 = icmp eq i32 %1533, 0
  br i1 %.not157, label %1534, label %1535

1534:                                             ; preds = %1530, %1524
  br label %1535

1535:                                             ; preds = %1530, %1534
  %.str.5.sink702 = phi ptr [ @.str.5, %1534 ], [ @.str.2, %1530 ]
  store i32 %1525, ptr %246, align 4, !tbaa !5
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1537 = load i32, ptr @test_count, align 4, !tbaa !5
  %1538 = load i32, ptr %192, align 4, !tbaa !5
  %1539 = call ptr @s2n_strerror(i32 noundef %1538, ptr noundef nonnull @.str.4) #12
  %1540 = load i32, ptr %192, align 4, !tbaa !5
  %1541 = call ptr @s2n_strerror_debug(i32 noundef %1540, ptr noundef nonnull @.str.4) #12
  %1542 = load i32, ptr %246, align 4, !tbaa !5
  %1543 = call ptr @strerror(i32 noundef %1542) #12
  %1544 = load i32, ptr %246, align 4, !tbaa !5
  %1545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1536, ptr noundef nonnull %.str.5.sink702, i32 noundef %1537, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1539, ptr noundef %1541, ptr noundef %1543, i32 noundef %1544) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1546:                                             ; preds = %1521
  %1547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1548 = trunc nuw i8 %1547 to i1
  br i1 %1548, label %1549, label %1560

1549:                                             ; preds = %1546
  %1550 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1551 = call i32 @fileno(ptr noundef %1550) #12
  %1552 = call i32 @isatty(i32 noundef %1551) #12
  %.not154 = icmp eq i32 %1552, 0
  br i1 %.not154, label %1560, label %1553

1553:                                             ; preds = %1549
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not156 = icmp eq i32 %1554, 0
  %1555 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not156, label %1558, label %1556

1556:                                             ; preds = %1553
  %1557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1555, ptr noundef nonnull @.str.48, i32 noundef %1554) #12
  br label %1567

1558:                                             ; preds = %1553
  %1559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1555, ptr noundef nonnull @.str.49) #12
  br label %1567

1560:                                             ; preds = %1549, %1546
  %1561 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not155 = icmp eq i32 %1561, 0
  %1562 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not155, label %1565, label %1563

1563:                                             ; preds = %1560
  %1564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1562, ptr noundef nonnull @.str.50, i32 noundef %1561) #12
  br label %1567

1565:                                             ; preds = %1560
  %1566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1562, ptr noundef nonnull @.str.51) #12
  br label %1567

1567:                                             ; preds = %1563, %1565, %1556, %1558
  %1568 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %1) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1) #12
  ret i32 0
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; 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

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_skip_handshake(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #10

declare i32 @s2n_connection_get_master_secret(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!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 = !{!16, !6, i64 2176}
!43 = !{!7, !7, i64 0}
!44 = !{!16, !7, i64 218}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LoopRotatePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass