; LLVM IR from aws/s2n-tls :: tests/unit (s2n_tls13_compute_shared_secret_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_ecc_evp_params = type { ptr, ptr }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon.0, i32 }
%union.anon.0 = 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_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_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_ecc_preferences = type { i8, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@s2n_errno = external thread_local global i32, align 4
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [95 x i8], align 1
@stderr = external global ptr, align 8
@.str.31 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [52 x i8], align 1

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_tls13_compute_shared_secret(ptr noundef, ptr noundef) #4

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #4 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %struct.s2n_ecc_evp_params, align 8
  %25 = alloca %struct.s2n_blob, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca %struct.s2n_blob, align 8
  %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 ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca %struct.s2n_blob, align 8
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca ptr, align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca %struct.s2n_blob, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %struct.s2n_blob, align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %75

75:                                               ; preds = %2
  br label %76

76:                                               ; preds = %75
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %77 = load ptr, ptr @stdout, align 8, !tbaa !9
  %78 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %77, ptr noundef @.str.29, ptr noundef @.str.30) #10
  %79 = load ptr, ptr @stdout, align 8, !tbaa !9
  %80 = call i32 @fflush(ptr noundef %79)
  br label %81

81:                                               ; preds = %76
  %82 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %83 = icmp eq i32 %82, -1
  br i1 %83, label %84, label %135

84:                                               ; preds = %81
  br label %85

85:                                               ; preds = %84
  br label %86

86:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %87 = call ptr @__errno_location() #11
  %88 = load i32, ptr %87, align 4, !tbaa !5
  store i32 %88, ptr %6, align 4, !tbaa !5
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = call i32 @s2n_print_stacktrace(ptr noundef %89)
  %91 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %92 = trunc i8 %91 to i1
  br i1 %92, label %93, label %115

93:                                               ; preds = %86
  %94 = load ptr, ptr @stderr, align 8, !tbaa !9
  %95 = call i32 @fileno(ptr noundef %94) #10
  %96 = call i32 @isatty(i32 noundef %95) #10
  %97 = icmp ne i32 %96, 0
  br i1 %97, label %98, label %115

98:                                               ; preds = %93
  %99 = load i32, ptr %6, align 4, !tbaa !5
  %100 = call ptr @__errno_location() #11
  store i32 %99, ptr %100, align 4, !tbaa !5
  %101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %102 = load i32, ptr @test_count, align 4, !tbaa !5
  %103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %104 = load i32, ptr %103, align 4, !tbaa !5
  %105 = call ptr @s2n_strerror(i32 noundef %104, ptr noundef @.str.33)
  %106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %107 = load i32, ptr %106, align 4, !tbaa !5
  %108 = call ptr @s2n_strerror_debug(i32 noundef %107, ptr noundef @.str.33)
  %109 = call ptr @__errno_location() #11
  %110 = load i32, ptr %109, align 4, !tbaa !5
  %111 = call ptr @strerror(i32 noundef %110) #10
  %112 = call ptr @__errno_location() #11
  %113 = load i32, ptr %112, align 4, !tbaa !5
  %114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %101, ptr noundef @.str.31, i32 noundef %102, ptr noundef @.str.32, ptr noundef @.str.30, i32 noundef 27, ptr noundef %105, ptr noundef %108, ptr noundef %111, i32 noundef %113) #10
  br label %132

115:                                              ; preds = %93, %86
  %116 = load i32, ptr %6, align 4, !tbaa !5
  %117 = call ptr @__errno_location() #11
  store i32 %116, ptr %117, 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 @.str.33)
  %123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %124 = load i32, ptr %123, align 4, !tbaa !5
  %125 = call ptr @s2n_strerror_debug(i32 noundef %124, ptr noundef @.str.33)
  %126 = call ptr @__errno_location() #11
  %127 = load i32, ptr %126, align 4, !tbaa !5
  %128 = call ptr @strerror(i32 noundef %127) #10
  %129 = call ptr @__errno_location() #11
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef @.str.34, i32 noundef %119, ptr noundef @.str.32, ptr noundef @.str.30, i32 noundef 27, ptr noundef %122, ptr noundef %125, ptr noundef %128, i32 noundef %130) #10
  br label %132

132:                                              ; preds = %115, %98
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %133

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

134:                                              ; No predecessors!
  br label %135

135:                                              ; preds = %134, %81
  br label %136

136:                                              ; preds = %135
  br label %137

137:                                              ; preds = %136
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = add nsw i32 %138, 1
  store i32 %139, ptr @test_count, align 4, !tbaa !5
  %140 = call i32 @s2n_enable_atexit()
  %141 = icmp eq i32 %140, -1
  br i1 %141, label %142, label %193

142:                                              ; preds = %137
  br label %143

143:                                              ; preds = %142
  br label %144

144:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %145 = call ptr @__errno_location() #11
  %146 = load i32, ptr %145, align 4, !tbaa !5
  store i32 %146, ptr %7, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = call i32 @s2n_print_stacktrace(ptr noundef %147)
  %149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %150 = trunc i8 %149 to i1
  br i1 %150, label %151, label %173

151:                                              ; preds = %144
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = call i32 @fileno(ptr noundef %152) #10
  %154 = call i32 @isatty(i32 noundef %153) #10
  %155 = icmp ne i32 %154, 0
  br i1 %155, label %156, label %173

156:                                              ; preds = %151
  %157 = load i32, ptr %7, align 4, !tbaa !5
  %158 = call ptr @__errno_location() #11
  store i32 %157, ptr %158, align 4, !tbaa !5
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = load i32, ptr @test_count, align 4, !tbaa !5
  %161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %162 = load i32, ptr %161, align 4, !tbaa !5
  %163 = call ptr @s2n_strerror(i32 noundef %162, ptr noundef @.str.33)
  %164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %165 = load i32, ptr %164, align 4, !tbaa !5
  %166 = call ptr @s2n_strerror_debug(i32 noundef %165, ptr noundef @.str.33)
  %167 = call ptr @__errno_location() #11
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %169 = call ptr @strerror(i32 noundef %168) #10
  %170 = call ptr @__errno_location() #11
  %171 = load i32, ptr %170, align 4, !tbaa !5
  %172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %159, ptr noundef @.str.31, i32 noundef %160, ptr noundef @.str.35, ptr noundef @.str.30, i32 noundef 27, ptr noundef %163, ptr noundef %166, ptr noundef %169, i32 noundef %171) #10
  br label %190

173:                                              ; preds = %151, %144
  %174 = load i32, ptr %7, align 4, !tbaa !5
  %175 = call ptr @__errno_location() #11
  store i32 %174, ptr %175, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = load i32, ptr @test_count, align 4, !tbaa !5
  %178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = call ptr @s2n_strerror(i32 noundef %179, ptr noundef @.str.33)
  %181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = call ptr @s2n_strerror_debug(i32 noundef %182, ptr noundef @.str.33)
  %184 = call ptr @__errno_location() #11
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %186 = call ptr @strerror(i32 noundef %185) #10
  %187 = call ptr @__errno_location() #11
  %188 = load i32, ptr %187, align 4, !tbaa !5
  %189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %176, ptr noundef @.str.34, i32 noundef %177, ptr noundef @.str.35, ptr noundef @.str.30, i32 noundef 27, ptr noundef %180, ptr noundef %183, ptr noundef %186, i32 noundef %188) #10
  br label %190

190:                                              ; preds = %173, %156
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %191

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

192:                                              ; No predecessors!
  br label %193

193:                                              ; preds = %192, %137
  br label %194

194:                                              ; preds = %193
  br label %195

195:                                              ; preds = %194
  br label %196

196:                                              ; preds = %195
  %197 = call i32 @s2n_init()
  %198 = icmp eq i32 %197, -1
  br i1 %198, label %199, label %250

199:                                              ; preds = %196
  br label %200

200:                                              ; preds = %199
  br label %201

201:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %202 = call ptr @__errno_location() #11
  %203 = load i32, ptr %202, align 4, !tbaa !5
  store i32 %203, ptr %8, align 4, !tbaa !5
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = call i32 @s2n_print_stacktrace(ptr noundef %204)
  %206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %207 = trunc i8 %206 to i1
  br i1 %207, label %208, label %230

208:                                              ; preds = %201
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = call i32 @fileno(ptr noundef %209) #10
  %211 = call i32 @isatty(i32 noundef %210) #10
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %213, label %230

213:                                              ; preds = %208
  %214 = load i32, ptr %8, align 4, !tbaa !5
  %215 = call ptr @__errno_location() #11
  store i32 %214, ptr %215, align 4, !tbaa !5
  %216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %217 = load i32, ptr @test_count, align 4, !tbaa !5
  %218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %219 = load i32, ptr %218, align 4, !tbaa !5
  %220 = call ptr @s2n_strerror(i32 noundef %219, ptr noundef @.str.33)
  %221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %223 = call ptr @s2n_strerror_debug(i32 noundef %222, ptr noundef @.str.33)
  %224 = call ptr @__errno_location() #11
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = call ptr @strerror(i32 noundef %225) #10
  %227 = call ptr @__errno_location() #11
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %216, ptr noundef @.str.31, i32 noundef %217, ptr noundef @.str.36, ptr noundef @.str.30, i32 noundef 27, ptr noundef %220, ptr noundef %223, ptr noundef %226, i32 noundef %228) #10
  br label %247

230:                                              ; preds = %208, %201
  %231 = load i32, ptr %8, align 4, !tbaa !5
  %232 = call ptr @__errno_location() #11
  store i32 %231, ptr %232, align 4, !tbaa !5
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = load i32, ptr @test_count, align 4, !tbaa !5
  %235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = call ptr @s2n_strerror(i32 noundef %236, ptr noundef @.str.33)
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call ptr @s2n_strerror_debug(i32 noundef %239, ptr noundef @.str.33)
  %241 = call ptr @__errno_location() #11
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = call ptr @strerror(i32 noundef %242) #10
  %244 = call ptr @__errno_location() #11
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %233, ptr noundef @.str.34, i32 noundef %234, ptr noundef @.str.36, ptr noundef @.str.30, i32 noundef 27, ptr noundef %237, ptr noundef %240, ptr noundef %243, i32 noundef %245) #10
  br label %247

247:                                              ; preds = %230, %213
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %248

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

249:                                              ; No predecessors!
  br label %250

250:                                              ; preds = %249, %196
  br label %251

251:                                              ; preds = %250
  br label %252

252:                                              ; preds = %251
  %253 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %253, label %401, label %254

254:                                              ; preds = %252
  br label %255

255:                                              ; preds = %254
  br label %256

256:                                              ; preds = %255
  %257 = call i32 @s2n_cleanup()
  %258 = icmp eq i32 %257, -1
  br i1 %258, label %259, label %310

259:                                              ; preds = %256
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #10
  %262 = call ptr @__errno_location() #11
  %263 = load i32, ptr %262, align 4, !tbaa !5
  store i32 %263, ptr %9, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = call i32 @s2n_print_stacktrace(ptr noundef %264)
  %266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %267 = trunc i8 %266 to i1
  br i1 %267, label %268, label %290

268:                                              ; preds = %261
  %269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %270 = call i32 @fileno(ptr noundef %269) #10
  %271 = call i32 @isatty(i32 noundef %270) #10
  %272 = icmp ne i32 %271, 0
  br i1 %272, label %273, label %290

273:                                              ; preds = %268
  %274 = load i32, ptr %9, align 4, !tbaa !5
  %275 = call ptr @__errno_location() #11
  store i32 %274, ptr %275, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = load i32, ptr @test_count, align 4, !tbaa !5
  %278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call ptr @s2n_strerror(i32 noundef %279, ptr noundef @.str.33)
  %281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call ptr @s2n_strerror_debug(i32 noundef %282, ptr noundef @.str.33)
  %284 = call ptr @__errno_location() #11
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call ptr @strerror(i32 noundef %285) #10
  %287 = call ptr @__errno_location() #11
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %276, ptr noundef @.str.31, i32 noundef %277, ptr noundef @.str.37, ptr noundef @.str.30, i32 noundef 30, ptr noundef %280, ptr noundef %283, ptr noundef %286, i32 noundef %288) #10
  br label %307

290:                                              ; preds = %268, %261
  %291 = load i32, ptr %9, align 4, !tbaa !5
  %292 = call ptr @__errno_location() #11
  store i32 %291, ptr %292, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @s2n_strerror(i32 noundef %296, ptr noundef @.str.33)
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef @.str.33)
  %301 = call ptr @__errno_location() #11
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @strerror(i32 noundef %302) #10
  %304 = call ptr @__errno_location() #11
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %293, ptr noundef @.str.34, i32 noundef %294, ptr noundef @.str.37, ptr noundef @.str.30, i32 noundef 30, ptr noundef %297, ptr noundef %300, ptr noundef %303, i32 noundef %305) #10
  br label %307

307:                                              ; preds = %290, %273
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %308

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

309:                                              ; No predecessors!
  br label %310

310:                                              ; preds = %309, %256
  br label %311

311:                                              ; preds = %310
  br label %312

312:                                              ; preds = %311
  br label %313

313:                                              ; preds = %312
  %314 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %315 = icmp eq i32 %314, -1
  br i1 %315, label %316, label %367

316:                                              ; preds = %313
  br label %317

317:                                              ; preds = %316
  br label %318

318:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  %319 = call ptr @__errno_location() #11
  %320 = load i32, ptr %319, align 4, !tbaa !5
  store i32 %320, ptr %10, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = call i32 @s2n_print_stacktrace(ptr noundef %321)
  %323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %324 = trunc i8 %323 to i1
  br i1 %324, label %325, label %347

325:                                              ; preds = %318
  %326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %327 = call i32 @fileno(ptr noundef %326) #10
  %328 = call i32 @isatty(i32 noundef %327) #10
  %329 = icmp ne i32 %328, 0
  br i1 %329, label %330, label %347

330:                                              ; preds = %325
  %331 = load i32, ptr %10, align 4, !tbaa !5
  %332 = call ptr @__errno_location() #11
  store i32 %331, ptr %332, align 4, !tbaa !5
  %333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %334 = load i32, ptr @test_count, align 4, !tbaa !5
  %335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %336 = load i32, ptr %335, align 4, !tbaa !5
  %337 = call ptr @s2n_strerror(i32 noundef %336, ptr noundef @.str.33)
  %338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %339 = load i32, ptr %338, align 4, !tbaa !5
  %340 = call ptr @s2n_strerror_debug(i32 noundef %339, ptr noundef @.str.33)
  %341 = call ptr @__errno_location() #11
  %342 = load i32, ptr %341, align 4, !tbaa !5
  %343 = call ptr @strerror(i32 noundef %342) #10
  %344 = call ptr @__errno_location() #11
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %333, ptr noundef @.str.31, i32 noundef %334, ptr noundef @.str.38, ptr noundef @.str.30, i32 noundef 30, ptr noundef %337, ptr noundef %340, ptr noundef %343, i32 noundef %345) #10
  br label %364

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

364:                                              ; preds = %347, %330
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %365

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

366:                                              ; No predecessors!
  br label %367

367:                                              ; preds = %366, %313
  br label %368

368:                                              ; preds = %367
  %369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %370 = trunc i8 %369 to i1
  br i1 %370, label %371, label %387

371:                                              ; preds = %368
  %372 = load ptr, ptr @stdout, align 8, !tbaa !9
  %373 = call i32 @fileno(ptr noundef %372) #10
  %374 = call i32 @isatty(i32 noundef %373) #10
  %375 = icmp ne i32 %374, 0
  br i1 %375, label %376, label %387

376:                                              ; preds = %371
  %377 = load i32, ptr @test_count, align 4, !tbaa !5
  %378 = icmp ne i32 %377, 0
  br i1 %378, label %379, label %383

379:                                              ; preds = %376
  %380 = load ptr, ptr @stdout, align 8, !tbaa !9
  %381 = load i32, ptr @test_count, align 4, !tbaa !5
  %382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %380, ptr noundef @.str.39, i32 noundef %381) #10
  br label %386

383:                                              ; preds = %376
  %384 = load ptr, ptr @stdout, align 8, !tbaa !9
  %385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef @.str.40) #10
  br label %386

386:                                              ; preds = %383, %379
  br label %398

387:                                              ; preds = %371, %368
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = icmp ne i32 %388, 0
  br i1 %389, label %390, label %394

390:                                              ; preds = %387
  %391 = load ptr, ptr @stdout, align 8, !tbaa !9
  %392 = load i32, ptr @test_count, align 4, !tbaa !5
  %393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %391, ptr noundef @.str.41, i32 noundef %392) #10
  br label %397

394:                                              ; preds = %387
  %395 = load ptr, ptr @stdout, align 8, !tbaa !9
  %396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %395, ptr noundef @.str.42) #10
  br label %397

397:                                              ; preds = %394, %390
  br label %398

398:                                              ; preds = %397, %386
  store i32 0, ptr %3, align 4
  br label %3671

399:                                              ; No predecessors!
  br label %400

400:                                              ; preds = %399
  br label %401

401:                                              ; preds = %400, %252
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %402

402:                                              ; preds = %401
  %403 = load i32, ptr @test_count, align 4, !tbaa !5
  %404 = add nsw i32 %403, 1
  store i32 %404, ptr @test_count, align 4, !tbaa !5
  %405 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %11, ptr noundef @.str.43, ptr noundef @.str.44)
  %406 = icmp eq i32 %405, -1
  br i1 %406, label %407, label %460

407:                                              ; preds = %402
  br label %408

408:                                              ; preds = %407
  br label %409

409:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  %410 = call ptr @__errno_location() #11
  %411 = load i32, ptr %410, align 4, !tbaa !5
  store i32 %411, ptr %12, align 4, !tbaa !5
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = call i32 @s2n_print_stacktrace(ptr noundef %412)
  %414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %415 = trunc i8 %414 to i1
  br i1 %415, label %416, label %438

416:                                              ; preds = %409
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = call i32 @fileno(ptr noundef %417) #10
  %419 = call i32 @isatty(i32 noundef %418) #10
  %420 = icmp ne i32 %419, 0
  br i1 %420, label %421, label %438

421:                                              ; preds = %416
  %422 = load i32, ptr %12, align 4, !tbaa !5
  %423 = call ptr @__errno_location() #11
  store i32 %422, ptr %423, align 4, !tbaa !5
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = load i32, ptr @test_count, align 4, !tbaa !5
  %426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = call ptr @s2n_strerror(i32 noundef %427, ptr noundef @.str.33)
  %429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = call ptr @s2n_strerror_debug(i32 noundef %430, ptr noundef @.str.33)
  %432 = call ptr @__errno_location() #11
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @strerror(i32 noundef %433) #10
  %435 = call ptr @__errno_location() #11
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %424, ptr noundef @.str.31, i32 noundef %425, ptr noundef @.str.45, ptr noundef @.str.30, i32 noundef 35, ptr noundef %428, ptr noundef %431, ptr noundef %434, i32 noundef %436) #10
  br label %455

438:                                              ; preds = %416, %409
  %439 = load i32, ptr %12, align 4, !tbaa !5
  %440 = call ptr @__errno_location() #11
  store i32 %439, ptr %440, align 4, !tbaa !5
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = load i32, ptr @test_count, align 4, !tbaa !5
  %443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %444 = load i32, ptr %443, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror(i32 noundef %444, ptr noundef @.str.33)
  %446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = call ptr @s2n_strerror_debug(i32 noundef %447, ptr noundef @.str.33)
  %449 = call ptr @__errno_location() #11
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = call ptr @strerror(i32 noundef %450) #10
  %452 = call ptr @__errno_location() #11
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %441, ptr noundef @.str.34, i32 noundef %442, ptr noundef @.str.45, ptr noundef @.str.30, i32 noundef 35, ptr noundef %445, ptr noundef %448, ptr noundef %451, i32 noundef %453) #10
  br label %455

455:                                              ; preds = %438, %421
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %456

456:                                              ; preds = %455
  br label %457

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

458:                                              ; No predecessors!
  br label %459

459:                                              ; preds = %458
  br label %460

460:                                              ; preds = %459, %402
  br label %461

461:                                              ; preds = %460
  br label %462

462:                                              ; preds = %461
  br label %463

463:                                              ; preds = %462
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = add nsw i32 %464, 1
  store i32 %465, ptr @test_count, align 4, !tbaa !5
  %466 = load ptr, ptr %11, align 8, !tbaa !9
  %467 = icmp eq ptr %466, null
  br i1 %467, label %468, label %521

468:                                              ; preds = %463
  br label %469

469:                                              ; preds = %468
  br label %470

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

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

482:                                              ; preds = %477
  %483 = load i32, ptr %13, align 4, !tbaa !5
  %484 = call ptr @__errno_location() #11
  store i32 %483, ptr %484, align 4, !tbaa !5
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror(i32 noundef %488, ptr noundef @.str.33)
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror_debug(i32 noundef %491, ptr noundef @.str.33)
  %493 = call ptr @__errno_location() #11
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @strerror(i32 noundef %494) #10
  %496 = call ptr @__errno_location() #11
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %485, ptr noundef @.str.31, i32 noundef %486, ptr noundef @.str.46, ptr noundef @.str.30, i32 noundef 36, ptr noundef %489, ptr noundef %492, ptr noundef %495, i32 noundef %497) #10
  br label %516

499:                                              ; preds = %477, %470
  %500 = load i32, ptr %13, align 4, !tbaa !5
  %501 = call ptr @__errno_location() #11
  store i32 %500, ptr %501, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror(i32 noundef %505, ptr noundef @.str.33)
  %507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror_debug(i32 noundef %508, ptr noundef @.str.33)
  %510 = call ptr @__errno_location() #11
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = call ptr @strerror(i32 noundef %511) #10
  %513 = call ptr @__errno_location() #11
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %502, ptr noundef @.str.34, i32 noundef %503, ptr noundef @.str.46, ptr noundef @.str.30, i32 noundef 36, ptr noundef %506, ptr noundef %509, ptr noundef %512, i32 noundef %514) #10
  br label %516

516:                                              ; preds = %499, %482
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %517

517:                                              ; preds = %516
  br label %518

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

519:                                              ; No predecessors!
  br label %520

520:                                              ; preds = %519
  br label %521

521:                                              ; preds = %520, %463
  br label %522

522:                                              ; preds = %521
  br label %523

523:                                              ; preds = %522
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  %524 = call ptr @s2n_config_new()
  store ptr %524, ptr %14, align 8, !tbaa !9
  br label %525

525:                                              ; preds = %523
  %526 = load i32, ptr @test_count, align 4, !tbaa !5
  %527 = add nsw i32 %526, 1
  store i32 %527, ptr @test_count, align 4, !tbaa !5
  %528 = load ptr, ptr %14, align 8, !tbaa !9
  %529 = icmp eq ptr %528, null
  br i1 %529, label %530, label %583

530:                                              ; preds = %525
  br label %531

531:                                              ; preds = %530
  br label %532

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

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

544:                                              ; preds = %539
  %545 = load i32, ptr %15, align 4, !tbaa !5
  %546 = call ptr @__errno_location() #11
  store i32 %545, ptr %546, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = load i32, ptr @test_count, align 4, !tbaa !5
  %549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %550 = load i32, ptr %549, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror(i32 noundef %550, ptr noundef @.str.33)
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror_debug(i32 noundef %553, ptr noundef @.str.33)
  %555 = call ptr @__errno_location() #11
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #10
  %558 = call ptr @__errno_location() #11
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %547, ptr noundef @.str.31, i32 noundef %548, ptr noundef @.str.47, ptr noundef @.str.30, i32 noundef 39, ptr noundef %551, ptr noundef %554, ptr noundef %557, i32 noundef %559) #10
  br label %578

561:                                              ; preds = %539, %532
  %562 = load i32, ptr %15, align 4, !tbaa !5
  %563 = call ptr @__errno_location() #11
  store i32 %562, ptr %563, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = load i32, ptr @test_count, align 4, !tbaa !5
  %566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = call ptr @s2n_strerror(i32 noundef %567, ptr noundef @.str.33)
  %569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %570 = load i32, ptr %569, align 4, !tbaa !5
  %571 = call ptr @s2n_strerror_debug(i32 noundef %570, ptr noundef @.str.33)
  %572 = call ptr @__errno_location() #11
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @strerror(i32 noundef %573) #10
  %575 = call ptr @__errno_location() #11
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %564, ptr noundef @.str.34, i32 noundef %565, ptr noundef @.str.47, ptr noundef @.str.30, i32 noundef 39, ptr noundef %568, ptr noundef %571, ptr noundef %574, i32 noundef %576) #10
  br label %578

578:                                              ; preds = %561, %544
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %579

579:                                              ; preds = %578
  br label %580

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

581:                                              ; No predecessors!
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582, %525
  br label %584

584:                                              ; preds = %583
  br label %585

585:                                              ; preds = %584
  br label %586

586:                                              ; preds = %585
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = add nsw i32 %587, 1
  store i32 %588, ptr @test_count, align 4, !tbaa !5
  %589 = load ptr, ptr %14, align 8, !tbaa !9
  %590 = load ptr, ptr %11, align 8, !tbaa !9
  %591 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %589, ptr noundef %590)
  %592 = icmp eq i32 %591, -1
  br i1 %592, label %593, label %646

593:                                              ; preds = %586
  br label %594

594:                                              ; preds = %593
  br label %595

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

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

607:                                              ; preds = %602
  %608 = load i32, ptr %16, align 4, !tbaa !5
  %609 = call ptr @__errno_location() #11
  store i32 %608, ptr %609, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror(i32 noundef %613, ptr noundef @.str.33)
  %615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror_debug(i32 noundef %616, ptr noundef @.str.33)
  %618 = call ptr @__errno_location() #11
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call ptr @strerror(i32 noundef %619) #10
  %621 = call ptr @__errno_location() #11
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef @.str.31, i32 noundef %611, ptr noundef @.str.48, ptr noundef @.str.30, i32 noundef 40, ptr noundef %614, ptr noundef %617, ptr noundef %620, i32 noundef %622) #10
  br label %641

624:                                              ; preds = %602, %595
  %625 = load i32, ptr %16, align 4, !tbaa !5
  %626 = call ptr @__errno_location() #11
  store i32 %625, ptr %626, align 4, !tbaa !5
  %627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %628 = load i32, ptr @test_count, align 4, !tbaa !5
  %629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %630 = load i32, ptr %629, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror(i32 noundef %630, ptr noundef @.str.33)
  %632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror_debug(i32 noundef %633, ptr noundef @.str.33)
  %635 = call ptr @__errno_location() #11
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call ptr @strerror(i32 noundef %636) #10
  %638 = call ptr @__errno_location() #11
  %639 = load i32, ptr %638, align 4, !tbaa !5
  %640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %627, ptr noundef @.str.34, i32 noundef %628, ptr noundef @.str.48, ptr noundef @.str.30, i32 noundef 40, ptr noundef %631, ptr noundef %634, ptr noundef %637, i32 noundef %639) #10
  br label %641

641:                                              ; preds = %624, %607
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %642

642:                                              ; preds = %641
  br label %643

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

644:                                              ; No predecessors!
  br label %645

645:                                              ; preds = %644
  br label %646

646:                                              ; preds = %645, %586
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  br label %649

649:                                              ; preds = %648
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = add nsw i32 %650, 1
  store i32 %651, ptr @test_count, align 4, !tbaa !5
  %652 = load ptr, ptr %14, align 8, !tbaa !9
  %653 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %652, ptr noundef @.str.49)
  %654 = icmp eq i32 %653, -1
  br i1 %654, label %655, label %708

655:                                              ; preds = %649
  br label %656

656:                                              ; preds = %655
  br label %657

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

664:                                              ; preds = %657
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = call i32 @fileno(ptr noundef %665) #10
  %667 = call i32 @isatty(i32 noundef %666) #10
  %668 = icmp ne i32 %667, 0
  br i1 %668, label %669, label %686

669:                                              ; preds = %664
  %670 = load i32, ptr %17, align 4, !tbaa !5
  %671 = call ptr @__errno_location() #11
  store i32 %670, ptr %671, align 4, !tbaa !5
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror(i32 noundef %675, ptr noundef @.str.33)
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror_debug(i32 noundef %678, ptr noundef @.str.33)
  %680 = call ptr @__errno_location() #11
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @strerror(i32 noundef %681) #10
  %683 = call ptr @__errno_location() #11
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %672, ptr noundef @.str.31, i32 noundef %673, ptr noundef @.str.50, ptr noundef @.str.30, i32 noundef 41, ptr noundef %676, ptr noundef %679, ptr noundef %682, i32 noundef %684) #10
  br label %703

686:                                              ; preds = %664, %657
  %687 = load i32, ptr %17, align 4, !tbaa !5
  %688 = call ptr @__errno_location() #11
  store i32 %687, ptr %688, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror(i32 noundef %692, ptr noundef @.str.33)
  %694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef @.str.33)
  %697 = call ptr @__errno_location() #11
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #10
  %700 = call ptr @__errno_location() #11
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef @.str.34, i32 noundef %690, ptr noundef @.str.50, ptr noundef @.str.30, i32 noundef 41, ptr noundef %693, ptr noundef %696, ptr noundef %699, i32 noundef %701) #10
  br label %703

703:                                              ; preds = %686, %669
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %704

704:                                              ; preds = %703
  br label %705

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

706:                                              ; No predecessors!
  br label %707

707:                                              ; preds = %706
  br label %708

708:                                              ; preds = %707, %649
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  store ptr null, ptr %18, align 8, !tbaa !9
  br label %711

711:                                              ; preds = %710
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %714, ptr %18, align 8, !tbaa !9
  %715 = icmp eq ptr %714, null
  br i1 %715, label %716, label %769

716:                                              ; preds = %711
  br label %717

717:                                              ; preds = %716
  br label %718

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

725:                                              ; preds = %718
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @fileno(ptr noundef %726) #10
  %728 = call i32 @isatty(i32 noundef %727) #10
  %729 = icmp ne i32 %728, 0
  br i1 %729, label %730, label %747

730:                                              ; preds = %725
  %731 = load i32, ptr %19, align 4, !tbaa !5
  %732 = call ptr @__errno_location() #11
  store i32 %731, ptr %732, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef @.str.33)
  %738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror_debug(i32 noundef %739, ptr noundef @.str.33)
  %741 = call ptr @__errno_location() #11
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #10
  %744 = call ptr @__errno_location() #11
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef @.str.31, i32 noundef %734, ptr noundef @.str.51, ptr noundef @.str.30, i32 noundef 49, ptr noundef %737, ptr noundef %740, ptr noundef %743, i32 noundef %745) #10
  br label %764

747:                                              ; preds = %725, %718
  %748 = load i32, ptr %19, align 4, !tbaa !5
  %749 = call ptr @__errno_location() #11
  store i32 %748, ptr %749, align 4, !tbaa !5
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror(i32 noundef %753, ptr noundef @.str.33)
  %755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror_debug(i32 noundef %756, ptr noundef @.str.33)
  %758 = call ptr @__errno_location() #11
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #10
  %761 = call ptr @__errno_location() #11
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %750, ptr noundef @.str.34, i32 noundef %751, ptr noundef @.str.51, ptr noundef @.str.30, i32 noundef 49, ptr noundef %754, ptr noundef %757, ptr noundef %760, i32 noundef %762) #10
  br label %764

764:                                              ; preds = %747, %730
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %765

765:                                              ; preds = %764
  br label %766

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

767:                                              ; No predecessors!
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768, %711
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770
  %772 = load ptr, ptr %18, align 8, !tbaa !9
  %773 = getelementptr inbounds %struct.s2n_connection, ptr %772, i32 0, i32 23
  store i8 34, ptr %773, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  store ptr null, ptr %20, align 8, !tbaa !9
  br label %774

774:                                              ; preds = %771
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = add nsw i32 %775, 1
  store i32 %776, ptr @test_count, align 4, !tbaa !5
  %777 = load ptr, ptr %18, align 8, !tbaa !9
  %778 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %777, ptr noundef %20)
  %779 = icmp eq i32 %778, -1
  br i1 %779, label %780, label %833

780:                                              ; preds = %774
  br label %781

781:                                              ; preds = %780
  br label %782

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

789:                                              ; preds = %782
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = call i32 @fileno(ptr noundef %790) #10
  %792 = call i32 @isatty(i32 noundef %791) #10
  %793 = icmp ne i32 %792, 0
  br i1 %793, label %794, label %811

794:                                              ; preds = %789
  %795 = load i32, ptr %21, align 4, !tbaa !5
  %796 = call ptr @__errno_location() #11
  store i32 %795, ptr %796, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call ptr @s2n_strerror(i32 noundef %800, ptr noundef @.str.33)
  %802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror_debug(i32 noundef %803, ptr noundef @.str.33)
  %805 = call ptr @__errno_location() #11
  %806 = load i32, ptr %805, align 4, !tbaa !5
  %807 = call ptr @strerror(i32 noundef %806) #10
  %808 = call ptr @__errno_location() #11
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %797, ptr noundef @.str.31, i32 noundef %798, ptr noundef @.str.52, ptr noundef @.str.30, i32 noundef 54, ptr noundef %801, ptr noundef %804, ptr noundef %807, i32 noundef %809) #10
  br label %828

811:                                              ; preds = %789, %782
  %812 = load i32, ptr %21, align 4, !tbaa !5
  %813 = call ptr @__errno_location() #11
  store i32 %812, ptr %813, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = load i32, ptr @test_count, align 4, !tbaa !5
  %816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = call ptr @s2n_strerror(i32 noundef %817, ptr noundef @.str.33)
  %819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror_debug(i32 noundef %820, ptr noundef @.str.33)
  %822 = call ptr @__errno_location() #11
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @strerror(i32 noundef %823) #10
  %825 = call ptr @__errno_location() #11
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %814, ptr noundef @.str.34, i32 noundef %815, ptr noundef @.str.52, ptr noundef @.str.30, i32 noundef 54, ptr noundef %818, ptr noundef %821, ptr noundef %824, i32 noundef %826) #10
  br label %828

828:                                              ; preds = %811, %794
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %829

829:                                              ; preds = %828
  br label %830

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

831:                                              ; No predecessors!
  br label %832

832:                                              ; preds = %831
  br label %833

833:                                              ; preds = %832, %774
  br label %834

834:                                              ; preds = %833
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr @test_count, align 4, !tbaa !5
  %839 = load ptr, ptr %20, align 8, !tbaa !9
  %840 = icmp eq ptr %839, null
  br i1 %840, label %841, label %894

841:                                              ; preds = %836
  br label %842

842:                                              ; preds = %841
  br label %843

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

850:                                              ; preds = %843
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = call i32 @fileno(ptr noundef %851) #10
  %853 = call i32 @isatty(i32 noundef %852) #10
  %854 = icmp ne i32 %853, 0
  br i1 %854, label %855, label %872

855:                                              ; preds = %850
  %856 = load i32, ptr %22, align 4, !tbaa !5
  %857 = call ptr @__errno_location() #11
  store i32 %856, ptr %857, align 4, !tbaa !5
  %858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %859 = load i32, ptr @test_count, align 4, !tbaa !5
  %860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror(i32 noundef %861, ptr noundef @.str.33)
  %863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror_debug(i32 noundef %864, ptr noundef @.str.33)
  %866 = call ptr @__errno_location() #11
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @strerror(i32 noundef %867) #10
  %869 = call ptr @__errno_location() #11
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %858, ptr noundef @.str.31, i32 noundef %859, ptr noundef @.str.53, ptr noundef @.str.30, i32 noundef 55, ptr noundef %862, ptr noundef %865, ptr noundef %868, i32 noundef %870) #10
  br label %889

872:                                              ; preds = %850, %843
  %873 = load i32, ptr %22, align 4, !tbaa !5
  %874 = call ptr @__errno_location() #11
  store i32 %873, ptr %874, align 4, !tbaa !5
  %875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = call ptr @s2n_strerror(i32 noundef %878, ptr noundef @.str.33)
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror_debug(i32 noundef %881, ptr noundef @.str.33)
  %883 = call ptr @__errno_location() #11
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @strerror(i32 noundef %884) #10
  %886 = call ptr @__errno_location() #11
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %875, ptr noundef @.str.34, i32 noundef %876, ptr noundef @.str.53, ptr noundef @.str.30, i32 noundef 55, ptr noundef %879, ptr noundef %882, ptr noundef %885, i32 noundef %887) #10
  br label %889

889:                                              ; preds = %872, %855
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %890

890:                                              ; preds = %889
  br label %891

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

892:                                              ; No predecessors!
  br label %893

893:                                              ; preds = %892
  br label %894

894:                                              ; preds = %893, %836
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  %897 = load ptr, ptr %20, align 8, !tbaa !9
  %898 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %897, i32 0, i32 1
  %899 = load ptr, ptr %898, align 8, !tbaa !42
  %900 = getelementptr inbounds ptr, ptr %899, i64 0
  %901 = load ptr, ptr %900, align 8, !tbaa !9
  %902 = load ptr, ptr %18, align 8, !tbaa !9
  %903 = getelementptr inbounds %struct.s2n_connection, ptr %902, i32 0, i32 31
  %904 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %903, i32 0, i32 3
  %905 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %904, i32 0, i32 0
  store ptr %901, ptr %905, align 8, !tbaa !44
  br label %906

906:                                              ; preds = %896
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = add nsw i32 %907, 1
  store i32 %908, ptr @test_count, align 4, !tbaa !5
  %909 = load ptr, ptr %18, align 8, !tbaa !9
  %910 = getelementptr inbounds %struct.s2n_connection, ptr %909, i32 0, i32 31
  %911 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %910, i32 0, i32 3
  %912 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %911)
  %913 = icmp eq i32 %912, -1
  br i1 %913, label %914, label %967

914:                                              ; preds = %906
  br label %915

915:                                              ; preds = %914
  br label %916

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

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

928:                                              ; preds = %923
  %929 = load i32, ptr %23, align 4, !tbaa !5
  %930 = call ptr @__errno_location() #11
  store i32 %929, ptr %930, align 4, !tbaa !5
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = load i32, ptr @test_count, align 4, !tbaa !5
  %933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = call ptr @s2n_strerror(i32 noundef %934, ptr noundef @.str.33)
  %936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %937 = load i32, ptr %936, align 4, !tbaa !5
  %938 = call ptr @s2n_strerror_debug(i32 noundef %937, ptr noundef @.str.33)
  %939 = call ptr @__errno_location() #11
  %940 = load i32, ptr %939, align 4, !tbaa !5
  %941 = call ptr @strerror(i32 noundef %940) #10
  %942 = call ptr @__errno_location() #11
  %943 = load i32, ptr %942, align 4, !tbaa !5
  %944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %931, ptr noundef @.str.31, i32 noundef %932, ptr noundef @.str.54, ptr noundef @.str.30, i32 noundef 59, ptr noundef %935, ptr noundef %938, ptr noundef %941, i32 noundef %943) #10
  br label %962

945:                                              ; preds = %923, %916
  %946 = load i32, ptr %23, align 4, !tbaa !5
  %947 = call ptr @__errno_location() #11
  store i32 %946, ptr %947, align 4, !tbaa !5
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = load i32, ptr @test_count, align 4, !tbaa !5
  %950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call ptr @s2n_strerror(i32 noundef %951, ptr noundef @.str.33)
  %953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror_debug(i32 noundef %954, ptr noundef @.str.33)
  %956 = call ptr @__errno_location() #11
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call ptr @strerror(i32 noundef %957) #10
  %959 = call ptr @__errno_location() #11
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %948, ptr noundef @.str.34, i32 noundef %949, ptr noundef @.str.54, ptr noundef @.str.30, i32 noundef 59, ptr noundef %952, ptr noundef %955, ptr noundef %958, i32 noundef %960) #10
  br label %962

962:                                              ; preds = %945, %928
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %963

963:                                              ; preds = %962
  br label %964

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

965:                                              ; No predecessors!
  br label %966

966:                                              ; preds = %965
  br label %967

967:                                              ; preds = %966, %906
  br label %968

968:                                              ; preds = %967
  br label %969

969:                                              ; preds = %968
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #10
  call void @llvm.memset.p0.i64(ptr align 8 %24, i8 0, i64 16, i1 false)
  %970 = load ptr, ptr %18, align 8, !tbaa !9
  %971 = getelementptr inbounds %struct.s2n_connection, ptr %970, i32 0, i32 31
  %972 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %971, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %972, ptr align 8 %24, i64 16, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #10
  call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 24, i1 false)
  br label %973

973:                                              ; preds = %969
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  %976 = load i32, ptr @test_count, align 4, !tbaa !5
  %977 = add nsw i32 %976, 1
  store i32 %977, ptr @test_count, align 4, !tbaa !5
  %978 = load ptr, ptr %18, align 8, !tbaa !9
  %979 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef %978, ptr noundef %25)
  %980 = icmp eq i32 %979, -1
  br i1 %980, label %1034, label %981

981:                                              ; preds = %975
  br label %982

982:                                              ; preds = %981
  br label %983

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

990:                                              ; preds = %983
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = call i32 @fileno(ptr noundef %991) #10
  %993 = call i32 @isatty(i32 noundef %992) #10
  %994 = icmp ne i32 %993, 0
  br i1 %994, label %995, label %1012

995:                                              ; preds = %990
  %996 = load i32, ptr %26, align 4, !tbaa !5
  %997 = call ptr @__errno_location() #11
  store i32 %996, ptr %997, align 4, !tbaa !5
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror(i32 noundef %1001, ptr noundef @.str.33)
  %1003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef @.str.33)
  %1006 = call ptr @__errno_location() #11
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @strerror(i32 noundef %1007) #10
  %1009 = call ptr @__errno_location() #11
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %998, ptr noundef @.str.31, i32 noundef %999, ptr noundef @.str.55, ptr noundef @.str.30, i32 noundef 65, ptr noundef %1002, ptr noundef %1005, ptr noundef %1008, i32 noundef %1010) #10
  br label %1029

1012:                                             ; preds = %990, %983
  %1013 = load i32, ptr %26, align 4, !tbaa !5
  %1014 = call ptr @__errno_location() #11
  store i32 %1013, ptr %1014, align 4, !tbaa !5
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1018, ptr noundef @.str.33)
  %1020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = call ptr @s2n_strerror_debug(i32 noundef %1021, ptr noundef @.str.33)
  %1023 = call ptr @__errno_location() #11
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #10
  %1026 = call ptr @__errno_location() #11
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1015, ptr noundef @.str.34, i32 noundef %1016, ptr noundef @.str.55, ptr noundef @.str.30, i32 noundef 65, ptr noundef %1019, ptr noundef %1022, ptr noundef %1025, i32 noundef %1027) #10
  br label %1029

1029:                                             ; preds = %1012, %995
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %1030

1030:                                             ; preds = %1029
  br label %1031

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

1032:                                             ; No predecessors!
  br label %1033

1033:                                             ; preds = %1032
  br label %1034

1034:                                             ; preds = %1033, %975
  br label %1035

1035:                                             ; preds = %1034
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr @test_count, align 4, !tbaa !5
  %1040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = icmp eq i32 %1041, 402653193
  br i1 %1042, label %1096, label %1043

1043:                                             ; preds = %1037
  br label %1044

1044:                                             ; preds = %1043
  br label %1045

1045:                                             ; preds = %1044
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %1046 = call ptr @__errno_location() #11
  %1047 = load i32, ptr %1046, align 4, !tbaa !5
  store i32 %1047, ptr %27, align 4, !tbaa !5
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = call i32 @s2n_print_stacktrace(ptr noundef %1048)
  %1050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1051 = trunc i8 %1050 to i1
  br i1 %1051, label %1052, label %1074

1052:                                             ; preds = %1045
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = call i32 @fileno(ptr noundef %1053) #10
  %1055 = call i32 @isatty(i32 noundef %1054) #10
  %1056 = icmp ne i32 %1055, 0
  br i1 %1056, label %1057, label %1074

1057:                                             ; preds = %1052
  %1058 = load i32, ptr %27, align 4, !tbaa !5
  %1059 = call ptr @__errno_location() #11
  store i32 %1058, ptr %1059, align 4, !tbaa !5
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror(i32 noundef %1063, ptr noundef @.str.33)
  %1065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1066 = load i32, ptr %1065, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror_debug(i32 noundef %1066, ptr noundef @.str.33)
  %1068 = call ptr @__errno_location() #11
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = call ptr @strerror(i32 noundef %1069) #10
  %1071 = call ptr @__errno_location() #11
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1060, ptr noundef @.str.31, i32 noundef %1061, ptr noundef @.str.56, ptr noundef @.str.30, i32 noundef 65, ptr noundef %1064, ptr noundef %1067, ptr noundef %1070, i32 noundef %1072) #10
  br label %1091

1074:                                             ; preds = %1052, %1045
  %1075 = load i32, ptr %27, align 4, !tbaa !5
  %1076 = call ptr @__errno_location() #11
  store i32 %1075, ptr %1076, align 4, !tbaa !5
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1080, ptr noundef @.str.33)
  %1082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror_debug(i32 noundef %1083, ptr noundef @.str.33)
  %1085 = call ptr @__errno_location() #11
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #10
  %1088 = call ptr @__errno_location() #11
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  %1090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1077, ptr noundef @.str.34, i32 noundef %1078, ptr noundef @.str.56, ptr noundef @.str.30, i32 noundef 65, ptr noundef %1081, ptr noundef %1084, ptr noundef %1087, i32 noundef %1089) #10
  br label %1091

1091:                                             ; preds = %1074, %1057
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1092

1092:                                             ; preds = %1091
  br label %1093

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

1094:                                             ; No predecessors!
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

1096:                                             ; preds = %1095, %1037
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

1098:                                             ; preds = %1097
  br label %1099

1099:                                             ; preds = %1098
  %1100 = load i32, ptr @test_count, align 4, !tbaa !5
  %1101 = add nsw i32 %1100, 1
  store i32 %1101, ptr @test_count, align 4, !tbaa !5
  %1102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  %1104 = call ptr @s2n_strerror_debug(i32 noundef %1103, ptr noundef @.str.33)
  %1105 = icmp eq ptr %1104, null
  br i1 %1105, label %1106, label %1159

1106:                                             ; preds = %1099
  br label %1107

1107:                                             ; preds = %1106
  br label %1108

1108:                                             ; preds = %1107
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %1109 = call ptr @__errno_location() #11
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  store i32 %1110, ptr %28, align 4, !tbaa !5
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = call i32 @s2n_print_stacktrace(ptr noundef %1111)
  %1113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1114 = trunc i8 %1113 to i1
  br i1 %1114, label %1115, label %1137

1115:                                             ; preds = %1108
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = call i32 @fileno(ptr noundef %1116) #10
  %1118 = call i32 @isatty(i32 noundef %1117) #10
  %1119 = icmp ne i32 %1118, 0
  br i1 %1119, label %1120, label %1137

1120:                                             ; preds = %1115
  %1121 = load i32, ptr %28, align 4, !tbaa !5
  %1122 = call ptr @__errno_location() #11
  store i32 %1121, ptr %1122, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1126 = load i32, ptr %1125, align 4, !tbaa !5
  %1127 = call ptr @s2n_strerror(i32 noundef %1126, ptr noundef @.str.33)
  %1128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1129 = load i32, ptr %1128, align 4, !tbaa !5
  %1130 = call ptr @s2n_strerror_debug(i32 noundef %1129, ptr noundef @.str.33)
  %1131 = call ptr @__errno_location() #11
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  %1133 = call ptr @strerror(i32 noundef %1132) #10
  %1134 = call ptr @__errno_location() #11
  %1135 = load i32, ptr %1134, align 4, !tbaa !5
  %1136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1123, ptr noundef @.str.31, i32 noundef %1124, ptr noundef @.str.57, ptr noundef @.str.30, i32 noundef 65, ptr noundef %1127, ptr noundef %1130, ptr noundef %1133, i32 noundef %1135) #10
  br label %1154

1137:                                             ; preds = %1115, %1108
  %1138 = load i32, ptr %28, align 4, !tbaa !5
  %1139 = call ptr @__errno_location() #11
  store i32 %1138, ptr %1139, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1143, ptr noundef @.str.33)
  %1145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror_debug(i32 noundef %1146, ptr noundef @.str.33)
  %1148 = call ptr @__errno_location() #11
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = call ptr @strerror(i32 noundef %1149) #10
  %1151 = call ptr @__errno_location() #11
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1140, ptr noundef @.str.34, i32 noundef %1141, ptr noundef @.str.57, ptr noundef @.str.30, i32 noundef 65, ptr noundef %1144, ptr noundef %1147, ptr noundef %1150, i32 noundef %1152) #10
  br label %1154

1154:                                             ; preds = %1137, %1120
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1155

1155:                                             ; preds = %1154
  br label %1156

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

1157:                                             ; No predecessors!
  br label %1158

1158:                                             ; preds = %1157
  br label %1159

1159:                                             ; preds = %1158, %1099
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

1161:                                             ; preds = %1160
  br label %1162

1162:                                             ; preds = %1161
  br label %1163

1163:                                             ; preds = %1162
  br label %1164

1164:                                             ; preds = %1163
  %1165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1165, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1166 = call ptr @__errno_location() #11
  store i32 0, ptr %1166, align 4, !tbaa !5
  br label %1167

1167:                                             ; preds = %1164
  br label %1168

1168:                                             ; preds = %1167
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169
  br label %1171

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

1177:                                             ; preds = %1171
  br label %1178

1178:                                             ; preds = %1177
  br label %1179

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

1186:                                             ; preds = %1179
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = call i32 @fileno(ptr noundef %1187) #10
  %1189 = call i32 @isatty(i32 noundef %1188) #10
  %1190 = icmp ne i32 %1189, 0
  br i1 %1190, label %1191, label %1208

1191:                                             ; preds = %1186
  %1192 = load i32, ptr %29, align 4, !tbaa !5
  %1193 = call ptr @__errno_location() #11
  store i32 %1192, ptr %1193, align 4, !tbaa !5
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = load i32, ptr @test_count, align 4, !tbaa !5
  %1196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror(i32 noundef %1197, ptr noundef @.str.33)
  %1199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call ptr @s2n_strerror_debug(i32 noundef %1200, ptr noundef @.str.33)
  %1202 = call ptr @__errno_location() #11
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = call ptr @strerror(i32 noundef %1203) #10
  %1205 = call ptr @__errno_location() #11
  %1206 = load i32, ptr %1205, align 4, !tbaa !5
  %1207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1194, ptr noundef @.str.31, i32 noundef %1195, ptr noundef @.str.58, ptr noundef @.str.30, i32 noundef 67, ptr noundef %1198, ptr noundef %1201, ptr noundef %1204, i32 noundef %1206) #10
  br label %1225

1208:                                             ; preds = %1186, %1179
  %1209 = load i32, ptr %29, align 4, !tbaa !5
  %1210 = call ptr @__errno_location() #11
  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.33)
  %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.33)
  %1219 = call ptr @__errno_location() #11
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @strerror(i32 noundef %1220) #10
  %1222 = call ptr @__errno_location() #11
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1211, ptr noundef @.str.34, i32 noundef %1212, ptr noundef @.str.58, ptr noundef @.str.30, i32 noundef 67, ptr noundef %1215, ptr noundef %1218, ptr noundef %1221, i32 noundef %1223) #10
  br label %1225

1225:                                             ; preds = %1208, %1191
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1226

1226:                                             ; preds = %1225
  br label %1227

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

1228:                                             ; No predecessors!
  br label %1229

1229:                                             ; preds = %1228
  br label %1230

1230:                                             ; preds = %1229, %1171
  br label %1231

1231:                                             ; preds = %1230
  br label %1232

1232:                                             ; preds = %1231
  %1233 = call i32 @s2n_free(ptr noundef %25)
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  br label %1234

1234:                                             ; preds = %1232
  %1235 = load i32, ptr @test_count, align 4, !tbaa !5
  %1236 = add nsw i32 %1235, 1
  store i32 %1236, ptr @test_count, align 4, !tbaa !5
  %1237 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1237, ptr %18, align 8, !tbaa !9
  %1238 = icmp eq ptr %1237, null
  br i1 %1238, label %1239, label %1292

1239:                                             ; preds = %1234
  br label %1240

1240:                                             ; preds = %1239
  br label %1241

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

1248:                                             ; preds = %1241
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = call i32 @fileno(ptr noundef %1249) #10
  %1251 = call i32 @isatty(i32 noundef %1250) #10
  %1252 = icmp ne i32 %1251, 0
  br i1 %1252, label %1253, label %1270

1253:                                             ; preds = %1248
  %1254 = load i32, ptr %30, align 4, !tbaa !5
  %1255 = call ptr @__errno_location() #11
  store i32 %1254, ptr %1255, align 4, !tbaa !5
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %1258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror(i32 noundef %1259, ptr noundef @.str.33)
  %1261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1262 = load i32, ptr %1261, align 4, !tbaa !5
  %1263 = call ptr @s2n_strerror_debug(i32 noundef %1262, ptr noundef @.str.33)
  %1264 = call ptr @__errno_location() #11
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = call ptr @strerror(i32 noundef %1265) #10
  %1267 = call ptr @__errno_location() #11
  %1268 = load i32, ptr %1267, align 4, !tbaa !5
  %1269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1256, ptr noundef @.str.31, i32 noundef %1257, ptr noundef @.str.51, ptr noundef @.str.30, i32 noundef 74, ptr noundef %1260, ptr noundef %1263, ptr noundef %1266, i32 noundef %1268) #10
  br label %1287

1270:                                             ; preds = %1248, %1241
  %1271 = load i32, ptr %30, align 4, !tbaa !5
  %1272 = call ptr @__errno_location() #11
  store i32 %1271, ptr %1272, align 4, !tbaa !5
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror(i32 noundef %1276, ptr noundef @.str.33)
  %1278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @s2n_strerror_debug(i32 noundef %1279, ptr noundef @.str.33)
  %1281 = call ptr @__errno_location() #11
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @strerror(i32 noundef %1282) #10
  %1284 = call ptr @__errno_location() #11
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1273, ptr noundef @.str.34, i32 noundef %1274, ptr noundef @.str.51, ptr noundef @.str.30, i32 noundef 74, ptr noundef %1277, ptr noundef %1280, ptr noundef %1283, i32 noundef %1285) #10
  br label %1287

1287:                                             ; preds = %1270, %1253
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1288

1288:                                             ; preds = %1287
  br label %1289

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

1290:                                             ; No predecessors!
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

1292:                                             ; preds = %1291, %1234
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

1294:                                             ; preds = %1293
  %1295 = load ptr, ptr %18, align 8, !tbaa !9
  %1296 = getelementptr inbounds %struct.s2n_connection, ptr %1295, i32 0, i32 23
  store i8 34, ptr %1296, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  store ptr null, ptr %31, align 8, !tbaa !9
  br label %1297

1297:                                             ; preds = %1294
  %1298 = load i32, ptr @test_count, align 4, !tbaa !5
  %1299 = add nsw i32 %1298, 1
  store i32 %1299, ptr @test_count, align 4, !tbaa !5
  %1300 = load ptr, ptr %18, align 8, !tbaa !9
  %1301 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %1300, ptr noundef %31)
  %1302 = icmp eq i32 %1301, -1
  br i1 %1302, label %1303, label %1356

1303:                                             ; preds = %1297
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

1305:                                             ; preds = %1304
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1306 = call ptr @__errno_location() #11
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  store i32 %1307, ptr %32, align 4, !tbaa !5
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @s2n_print_stacktrace(ptr noundef %1308)
  %1310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1311 = trunc i8 %1310 to i1
  br i1 %1311, label %1312, label %1334

1312:                                             ; preds = %1305
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = call i32 @fileno(ptr noundef %1313) #10
  %1315 = call i32 @isatty(i32 noundef %1314) #10
  %1316 = icmp ne i32 %1315, 0
  br i1 %1316, label %1317, label %1334

1317:                                             ; preds = %1312
  %1318 = load i32, ptr %32, align 4, !tbaa !5
  %1319 = call ptr @__errno_location() #11
  store i32 %1318, ptr %1319, align 4, !tbaa !5
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror(i32 noundef %1323, ptr noundef @.str.33)
  %1325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror_debug(i32 noundef %1326, ptr noundef @.str.33)
  %1328 = call ptr @__errno_location() #11
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #10
  %1331 = call ptr @__errno_location() #11
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1320, ptr noundef @.str.31, i32 noundef %1321, ptr noundef @.str.52, ptr noundef @.str.30, i32 noundef 79, ptr noundef %1324, ptr noundef %1327, ptr noundef %1330, i32 noundef %1332) #10
  br label %1351

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

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

1352:                                             ; preds = %1351
  br label %1353

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

1354:                                             ; No predecessors!
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355, %1297
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  br label %1359

1359:                                             ; preds = %1358
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = add nsw i32 %1360, 1
  store i32 %1361, ptr @test_count, align 4, !tbaa !5
  %1362 = load ptr, ptr %31, align 8, !tbaa !9
  %1363 = icmp eq ptr %1362, null
  br i1 %1363, label %1364, label %1417

1364:                                             ; preds = %1359
  br label %1365

1365:                                             ; preds = %1364
  br label %1366

1366:                                             ; preds = %1365
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1367 = call ptr @__errno_location() #11
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  store i32 %1368, ptr %33, align 4, !tbaa !5
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = call i32 @s2n_print_stacktrace(ptr noundef %1369)
  %1371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1372 = trunc i8 %1371 to i1
  br i1 %1372, label %1373, label %1395

1373:                                             ; preds = %1366
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = call i32 @fileno(ptr noundef %1374) #10
  %1376 = call i32 @isatty(i32 noundef %1375) #10
  %1377 = icmp ne i32 %1376, 0
  br i1 %1377, label %1378, label %1395

1378:                                             ; preds = %1373
  %1379 = load i32, ptr %33, align 4, !tbaa !5
  %1380 = call ptr @__errno_location() #11
  store i32 %1379, ptr %1380, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef @.str.33)
  %1386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call ptr @s2n_strerror_debug(i32 noundef %1387, ptr noundef @.str.33)
  %1389 = call ptr @__errno_location() #11
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call ptr @strerror(i32 noundef %1390) #10
  %1392 = call ptr @__errno_location() #11
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1381, ptr noundef @.str.31, i32 noundef %1382, ptr noundef @.str.53, ptr noundef @.str.30, i32 noundef 80, ptr noundef %1385, ptr noundef %1388, ptr noundef %1391, i32 noundef %1393) #10
  br label %1412

1395:                                             ; preds = %1373, %1366
  %1396 = load i32, ptr %33, align 4, !tbaa !5
  %1397 = call ptr @__errno_location() #11
  store i32 %1396, ptr %1397, align 4, !tbaa !5
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror(i32 noundef %1401, ptr noundef @.str.33)
  %1403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror_debug(i32 noundef %1404, ptr noundef @.str.33)
  %1406 = call ptr @__errno_location() #11
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #10
  %1409 = call ptr @__errno_location() #11
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1398, ptr noundef @.str.34, i32 noundef %1399, ptr noundef @.str.53, ptr noundef @.str.30, i32 noundef 80, ptr noundef %1402, ptr noundef %1405, ptr noundef %1408, i32 noundef %1410) #10
  br label %1412

1412:                                             ; preds = %1395, %1378
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1413

1413:                                             ; preds = %1412
  br label %1414

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

1415:                                             ; No predecessors!
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

1417:                                             ; preds = %1416, %1359
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

1419:                                             ; preds = %1418
  %1420 = load ptr, ptr %31, align 8, !tbaa !9
  %1421 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1420, i32 0, i32 1
  %1422 = load ptr, ptr %1421, align 8, !tbaa !42
  %1423 = getelementptr inbounds ptr, ptr %1422, i64 0
  %1424 = load ptr, ptr %1423, align 8, !tbaa !9
  %1425 = load ptr, ptr %18, align 8, !tbaa !9
  %1426 = getelementptr inbounds %struct.s2n_connection, ptr %1425, i32 0, i32 31
  %1427 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1426, i32 0, i32 3
  %1428 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1427, i32 0, i32 0
  store ptr %1424, ptr %1428, align 8, !tbaa !44
  br label %1429

1429:                                             ; preds = %1419
  %1430 = load i32, ptr @test_count, align 4, !tbaa !5
  %1431 = add nsw i32 %1430, 1
  store i32 %1431, ptr @test_count, align 4, !tbaa !5
  %1432 = load ptr, ptr %18, align 8, !tbaa !9
  %1433 = getelementptr inbounds %struct.s2n_connection, ptr %1432, i32 0, i32 31
  %1434 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1433, i32 0, i32 3
  %1435 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %1434)
  %1436 = icmp eq i32 %1435, -1
  br i1 %1436, label %1437, label %1490

1437:                                             ; preds = %1429
  br label %1438

1438:                                             ; preds = %1437
  br label %1439

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

1446:                                             ; preds = %1439
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = call i32 @fileno(ptr noundef %1447) #10
  %1449 = call i32 @isatty(i32 noundef %1448) #10
  %1450 = icmp ne i32 %1449, 0
  br i1 %1450, label %1451, label %1468

1451:                                             ; preds = %1446
  %1452 = load i32, ptr %34, align 4, !tbaa !5
  %1453 = call ptr @__errno_location() #11
  store i32 %1452, ptr %1453, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = load i32, ptr @test_count, align 4, !tbaa !5
  %1456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @s2n_strerror(i32 noundef %1457, ptr noundef @.str.33)
  %1459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror_debug(i32 noundef %1460, ptr noundef @.str.33)
  %1462 = call ptr @__errno_location() #11
  %1463 = load i32, ptr %1462, align 4, !tbaa !5
  %1464 = call ptr @strerror(i32 noundef %1463) #10
  %1465 = call ptr @__errno_location() #11
  %1466 = load i32, ptr %1465, align 4, !tbaa !5
  %1467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1454, ptr noundef @.str.31, i32 noundef %1455, ptr noundef @.str.54, ptr noundef @.str.30, i32 noundef 84, ptr noundef %1458, ptr noundef %1461, ptr noundef %1464, i32 noundef %1466) #10
  br label %1485

1468:                                             ; preds = %1446, %1439
  %1469 = load i32, ptr %34, align 4, !tbaa !5
  %1470 = call ptr @__errno_location() #11
  store i32 %1469, ptr %1470, align 4, !tbaa !5
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = load i32, ptr @test_count, align 4, !tbaa !5
  %1473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @s2n_strerror(i32 noundef %1474, ptr noundef @.str.33)
  %1476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call ptr @s2n_strerror_debug(i32 noundef %1477, ptr noundef @.str.33)
  %1479 = call ptr @__errno_location() #11
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call ptr @strerror(i32 noundef %1480) #10
  %1482 = call ptr @__errno_location() #11
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1471, ptr noundef @.str.34, i32 noundef %1472, ptr noundef @.str.54, ptr noundef @.str.30, i32 noundef 84, ptr noundef %1475, ptr noundef %1478, ptr noundef %1481, i32 noundef %1483) #10
  br label %1485

1485:                                             ; preds = %1468, %1451
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

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

1488:                                             ; No predecessors!
  br label %1489

1489:                                             ; preds = %1488
  br label %1490

1490:                                             ; preds = %1489, %1429
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491
  %1493 = load ptr, ptr %31, align 8, !tbaa !9
  %1494 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1493, i32 0, i32 1
  %1495 = load ptr, ptr %1494, align 8, !tbaa !42
  %1496 = getelementptr inbounds ptr, ptr %1495, i64 0
  %1497 = load ptr, ptr %1496, align 8, !tbaa !9
  %1498 = load ptr, ptr %18, align 8, !tbaa !9
  %1499 = getelementptr inbounds %struct.s2n_connection, ptr %1498, i32 0, i32 31
  %1500 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1499, i32 0, i32 1
  %1501 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1500, i32 0, i32 0
  store ptr %1497, ptr %1501, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #10
  call void @llvm.memset.p0.i64(ptr align 8 %35, i8 0, i64 24, i1 false)
  br label %1502

1502:                                             ; preds = %1492
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503
  %1505 = load i32, ptr @test_count, align 4, !tbaa !5
  %1506 = add nsw i32 %1505, 1
  store i32 %1506, ptr @test_count, align 4, !tbaa !5
  %1507 = load ptr, ptr %18, align 8, !tbaa !9
  %1508 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef %1507, ptr noundef %35)
  %1509 = icmp eq i32 %1508, -1
  br i1 %1509, label %1563, label %1510

1510:                                             ; preds = %1504
  br label %1511

1511:                                             ; preds = %1510
  br label %1512

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

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

1524:                                             ; preds = %1519
  %1525 = load i32, ptr %36, align 4, !tbaa !5
  %1526 = call ptr @__errno_location() #11
  store i32 %1525, ptr %1526, align 4, !tbaa !5
  %1527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1528 = load i32, ptr @test_count, align 4, !tbaa !5
  %1529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = call ptr @s2n_strerror(i32 noundef %1530, ptr noundef @.str.33)
  %1532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = call ptr @s2n_strerror_debug(i32 noundef %1533, ptr noundef @.str.33)
  %1535 = call ptr @__errno_location() #11
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  %1537 = call ptr @strerror(i32 noundef %1536) #10
  %1538 = call ptr @__errno_location() #11
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1527, ptr noundef @.str.31, i32 noundef %1528, ptr noundef @.str.55, ptr noundef @.str.30, i32 noundef 91, ptr noundef %1531, ptr noundef %1534, ptr noundef %1537, i32 noundef %1539) #10
  br label %1558

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

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

1559:                                             ; preds = %1558
  br label %1560

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

1561:                                             ; No predecessors!
  br label %1562

1562:                                             ; preds = %1561
  br label %1563

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

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564
  br label %1566

1566:                                             ; preds = %1565
  %1567 = load i32, ptr @test_count, align 4, !tbaa !5
  %1568 = add nsw i32 %1567, 1
  store i32 %1568, ptr @test_count, align 4, !tbaa !5
  %1569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = icmp eq i32 %1570, 402653193
  br i1 %1571, label %1625, label %1572

1572:                                             ; preds = %1566
  br label %1573

1573:                                             ; preds = %1572
  br label %1574

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

1581:                                             ; preds = %1574
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = call i32 @fileno(ptr noundef %1582) #10
  %1584 = call i32 @isatty(i32 noundef %1583) #10
  %1585 = icmp ne i32 %1584, 0
  br i1 %1585, label %1586, label %1603

1586:                                             ; preds = %1581
  %1587 = load i32, ptr %37, align 4, !tbaa !5
  %1588 = call ptr @__errno_location() #11
  store i32 %1587, ptr %1588, align 4, !tbaa !5
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = load i32, ptr @test_count, align 4, !tbaa !5
  %1591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1592 = load i32, ptr %1591, align 4, !tbaa !5
  %1593 = call ptr @s2n_strerror(i32 noundef %1592, ptr noundef @.str.33)
  %1594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call ptr @s2n_strerror_debug(i32 noundef %1595, ptr noundef @.str.33)
  %1597 = call ptr @__errno_location() #11
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = call ptr @strerror(i32 noundef %1598) #10
  %1600 = call ptr @__errno_location() #11
  %1601 = load i32, ptr %1600, align 4, !tbaa !5
  %1602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1589, ptr noundef @.str.31, i32 noundef %1590, ptr noundef @.str.56, ptr noundef @.str.30, i32 noundef 91, ptr noundef %1593, ptr noundef %1596, ptr noundef %1599, i32 noundef %1601) #10
  br label %1620

1603:                                             ; preds = %1581, %1574
  %1604 = load i32, ptr %37, align 4, !tbaa !5
  %1605 = call ptr @__errno_location() #11
  store i32 %1604, ptr %1605, align 4, !tbaa !5
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1609, ptr noundef @.str.33)
  %1611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror_debug(i32 noundef %1612, ptr noundef @.str.33)
  %1614 = call ptr @__errno_location() #11
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  %1616 = call ptr @strerror(i32 noundef %1615) #10
  %1617 = call ptr @__errno_location() #11
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  %1619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1606, ptr noundef @.str.34, i32 noundef %1607, ptr noundef @.str.56, ptr noundef @.str.30, i32 noundef 91, ptr noundef %1610, ptr noundef %1613, ptr noundef %1616, i32 noundef %1618) #10
  br label %1620

1620:                                             ; preds = %1603, %1586
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1621

1621:                                             ; preds = %1620
  br label %1622

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

1623:                                             ; No predecessors!
  br label %1624

1624:                                             ; preds = %1623
  br label %1625

1625:                                             ; preds = %1624, %1566
  br label %1626

1626:                                             ; preds = %1625
  br label %1627

1627:                                             ; preds = %1626
  br label %1628

1628:                                             ; preds = %1627
  %1629 = load i32, ptr @test_count, align 4, !tbaa !5
  %1630 = add nsw i32 %1629, 1
  store i32 %1630, ptr @test_count, align 4, !tbaa !5
  %1631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call ptr @s2n_strerror_debug(i32 noundef %1632, ptr noundef @.str.33)
  %1634 = icmp eq ptr %1633, null
  br i1 %1634, label %1635, label %1688

1635:                                             ; preds = %1628
  br label %1636

1636:                                             ; preds = %1635
  br label %1637

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

1644:                                             ; preds = %1637
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = call i32 @fileno(ptr noundef %1645) #10
  %1647 = call i32 @isatty(i32 noundef %1646) #10
  %1648 = icmp ne i32 %1647, 0
  br i1 %1648, label %1649, label %1666

1649:                                             ; preds = %1644
  %1650 = load i32, ptr %38, align 4, !tbaa !5
  %1651 = call ptr @__errno_location() #11
  store i32 %1650, ptr %1651, align 4, !tbaa !5
  %1652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1653 = load i32, ptr @test_count, align 4, !tbaa !5
  %1654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = call ptr @s2n_strerror(i32 noundef %1655, ptr noundef @.str.33)
  %1657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror_debug(i32 noundef %1658, ptr noundef @.str.33)
  %1660 = call ptr @__errno_location() #11
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  %1662 = call ptr @strerror(i32 noundef %1661) #10
  %1663 = call ptr @__errno_location() #11
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1652, ptr noundef @.str.31, i32 noundef %1653, ptr noundef @.str.57, ptr noundef @.str.30, i32 noundef 91, ptr noundef %1656, ptr noundef %1659, ptr noundef %1662, i32 noundef %1664) #10
  br label %1683

1666:                                             ; preds = %1644, %1637
  %1667 = load i32, ptr %38, align 4, !tbaa !5
  %1668 = call ptr @__errno_location() #11
  store i32 %1667, ptr %1668, align 4, !tbaa !5
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1672, ptr noundef @.str.33)
  %1674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1675 = load i32, ptr %1674, align 4, !tbaa !5
  %1676 = call ptr @s2n_strerror_debug(i32 noundef %1675, ptr noundef @.str.33)
  %1677 = call ptr @__errno_location() #11
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  %1679 = call ptr @strerror(i32 noundef %1678) #10
  %1680 = call ptr @__errno_location() #11
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1669, ptr noundef @.str.34, i32 noundef %1670, ptr noundef @.str.57, ptr noundef @.str.30, i32 noundef 91, ptr noundef %1673, ptr noundef %1676, ptr noundef %1679, i32 noundef %1681) #10
  br label %1683

1683:                                             ; preds = %1666, %1649
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1684

1684:                                             ; preds = %1683
  br label %1685

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

1686:                                             ; No predecessors!
  br label %1687

1687:                                             ; preds = %1686
  br label %1688

1688:                                             ; preds = %1687, %1628
  br label %1689

1689:                                             ; preds = %1688
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690
  br label %1692

1692:                                             ; preds = %1691
  br label %1693

1693:                                             ; preds = %1692
  %1694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1694, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1695 = call ptr @__errno_location() #11
  store i32 0, ptr %1695, align 4, !tbaa !5
  br label %1696

1696:                                             ; preds = %1693
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

1698:                                             ; preds = %1697
  br label %1699

1699:                                             ; preds = %1698
  br label %1700

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

1706:                                             ; preds = %1700
  br label %1707

1707:                                             ; preds = %1706
  br label %1708

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

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

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

1737:                                             ; preds = %1715, %1708
  %1738 = load i32, ptr %39, align 4, !tbaa !5
  %1739 = call ptr @__errno_location() #11
  store i32 %1738, ptr %1739, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror(i32 noundef %1743, ptr noundef @.str.33)
  %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.33)
  %1748 = call ptr @__errno_location() #11
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call ptr @strerror(i32 noundef %1749) #10
  %1751 = call ptr @__errno_location() #11
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1740, ptr noundef @.str.34, i32 noundef %1741, ptr noundef @.str.58, ptr noundef @.str.30, i32 noundef 93, ptr noundef %1744, ptr noundef %1747, ptr noundef %1750, i32 noundef %1752) #10
  br label %1754

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

1755:                                             ; preds = %1754
  br label %1756

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

1757:                                             ; No predecessors!
  br label %1758

1758:                                             ; preds = %1757
  br label %1759

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

1760:                                             ; preds = %1759
  br label %1761

1761:                                             ; preds = %1760
  %1762 = call i32 @s2n_free(ptr noundef %35)
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br label %1763

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

1768:                                             ; preds = %1763
  br label %1769

1769:                                             ; preds = %1768
  br label %1770

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

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

1782:                                             ; preds = %1777
  %1783 = load i32, ptr %40, align 4, !tbaa !5
  %1784 = call ptr @__errno_location() #11
  store i32 %1783, ptr %1784, align 4, !tbaa !5
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = load i32, ptr @test_count, align 4, !tbaa !5
  %1787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  %1789 = call ptr @s2n_strerror(i32 noundef %1788, ptr noundef @.str.33)
  %1790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1791 = load i32, ptr %1790, align 4, !tbaa !5
  %1792 = call ptr @s2n_strerror_debug(i32 noundef %1791, ptr noundef @.str.33)
  %1793 = call ptr @__errno_location() #11
  %1794 = load i32, ptr %1793, align 4, !tbaa !5
  %1795 = call ptr @strerror(i32 noundef %1794) #10
  %1796 = call ptr @__errno_location() #11
  %1797 = load i32, ptr %1796, align 4, !tbaa !5
  %1798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1785, ptr noundef @.str.31, i32 noundef %1786, ptr noundef @.str.51, ptr noundef @.str.30, i32 noundef 100, ptr noundef %1789, ptr noundef %1792, ptr noundef %1795, i32 noundef %1797) #10
  br label %1816

1799:                                             ; preds = %1777, %1770
  %1800 = load i32, ptr %40, align 4, !tbaa !5
  %1801 = call ptr @__errno_location() #11
  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.33)
  %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.33)
  %1810 = call ptr @__errno_location() #11
  %1811 = load i32, ptr %1810, align 4, !tbaa !5
  %1812 = call ptr @strerror(i32 noundef %1811) #10
  %1813 = call ptr @__errno_location() #11
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1802, ptr noundef @.str.34, i32 noundef %1803, ptr noundef @.str.51, ptr noundef @.str.30, i32 noundef 100, ptr noundef %1806, ptr noundef %1809, ptr noundef %1812, i32 noundef %1814) #10
  br label %1816

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

1817:                                             ; preds = %1816
  br label %1818

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

1819:                                             ; No predecessors!
  br label %1820

1820:                                             ; preds = %1819
  br label %1821

1821:                                             ; preds = %1820, %1763
  br label %1822

1822:                                             ; preds = %1821
  br label %1823

1823:                                             ; preds = %1822
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  store ptr null, ptr %41, align 8, !tbaa !9
  br label %1824

1824:                                             ; preds = %1823
  %1825 = load i32, ptr @test_count, align 4, !tbaa !5
  %1826 = add nsw i32 %1825, 1
  store i32 %1826, ptr @test_count, align 4, !tbaa !5
  %1827 = load ptr, ptr %18, align 8, !tbaa !9
  %1828 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %1827, ptr noundef %41)
  %1829 = icmp eq i32 %1828, -1
  br i1 %1829, label %1830, label %1883

1830:                                             ; preds = %1824
  br label %1831

1831:                                             ; preds = %1830
  br label %1832

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

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

1844:                                             ; preds = %1839
  %1845 = load i32, ptr %42, align 4, !tbaa !5
  %1846 = call ptr @__errno_location() #11
  store i32 %1845, ptr %1846, align 4, !tbaa !5
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = load i32, ptr @test_count, align 4, !tbaa !5
  %1849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror(i32 noundef %1850, ptr noundef @.str.33)
  %1852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = call ptr @s2n_strerror_debug(i32 noundef %1853, ptr noundef @.str.33)
  %1855 = call ptr @__errno_location() #11
  %1856 = load i32, ptr %1855, align 4, !tbaa !5
  %1857 = call ptr @strerror(i32 noundef %1856) #10
  %1858 = call ptr @__errno_location() #11
  %1859 = load i32, ptr %1858, align 4, !tbaa !5
  %1860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1847, ptr noundef @.str.31, i32 noundef %1848, ptr noundef @.str.52, ptr noundef @.str.30, i32 noundef 103, ptr noundef %1851, ptr noundef %1854, ptr noundef %1857, i32 noundef %1859) #10
  br label %1878

1861:                                             ; preds = %1839, %1832
  %1862 = load i32, ptr %42, align 4, !tbaa !5
  %1863 = call ptr @__errno_location() #11
  store i32 %1862, ptr %1863, align 4, !tbaa !5
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = load i32, ptr @test_count, align 4, !tbaa !5
  %1866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call ptr @s2n_strerror(i32 noundef %1867, ptr noundef @.str.33)
  %1869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = call ptr @s2n_strerror_debug(i32 noundef %1870, ptr noundef @.str.33)
  %1872 = call ptr @__errno_location() #11
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  %1874 = call ptr @strerror(i32 noundef %1873) #10
  %1875 = call ptr @__errno_location() #11
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1864, ptr noundef @.str.34, i32 noundef %1865, ptr noundef @.str.52, ptr noundef @.str.30, i32 noundef 103, ptr noundef %1868, ptr noundef %1871, ptr noundef %1874, i32 noundef %1876) #10
  br label %1878

1878:                                             ; preds = %1861, %1844
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1879

1879:                                             ; preds = %1878
  br label %1880

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

1881:                                             ; No predecessors!
  br label %1882

1882:                                             ; preds = %1881
  br label %1883

1883:                                             ; preds = %1882, %1824
  br label %1884

1884:                                             ; preds = %1883
  br label %1885

1885:                                             ; preds = %1884
  br label %1886

1886:                                             ; preds = %1885
  %1887 = load i32, ptr @test_count, align 4, !tbaa !5
  %1888 = add nsw i32 %1887, 1
  store i32 %1888, ptr @test_count, align 4, !tbaa !5
  %1889 = load ptr, ptr %41, align 8, !tbaa !9
  %1890 = icmp eq ptr %1889, null
  br i1 %1890, label %1891, label %1944

1891:                                             ; preds = %1886
  br label %1892

1892:                                             ; preds = %1891
  br label %1893

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

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

1905:                                             ; preds = %1900
  %1906 = load i32, ptr %43, align 4, !tbaa !5
  %1907 = call ptr @__errno_location() #11
  store i32 %1906, ptr %1907, align 4, !tbaa !5
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = load i32, ptr @test_count, align 4, !tbaa !5
  %1910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call ptr @s2n_strerror(i32 noundef %1911, ptr noundef @.str.33)
  %1913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  %1915 = call ptr @s2n_strerror_debug(i32 noundef %1914, ptr noundef @.str.33)
  %1916 = call ptr @__errno_location() #11
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = call ptr @strerror(i32 noundef %1917) #10
  %1919 = call ptr @__errno_location() #11
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  %1921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1908, ptr noundef @.str.31, i32 noundef %1909, ptr noundef @.str.53, ptr noundef @.str.30, i32 noundef 104, ptr noundef %1912, ptr noundef %1915, ptr noundef %1918, i32 noundef %1920) #10
  br label %1939

1922:                                             ; preds = %1900, %1893
  %1923 = load i32, ptr %43, align 4, !tbaa !5
  %1924 = call ptr @__errno_location() #11
  store i32 %1923, ptr %1924, align 4, !tbaa !5
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = load i32, ptr @test_count, align 4, !tbaa !5
  %1927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror(i32 noundef %1928, ptr noundef @.str.33)
  %1930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1931 = load i32, ptr %1930, align 4, !tbaa !5
  %1932 = call ptr @s2n_strerror_debug(i32 noundef %1931, ptr noundef @.str.33)
  %1933 = call ptr @__errno_location() #11
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = call ptr @strerror(i32 noundef %1934) #10
  %1936 = call ptr @__errno_location() #11
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1925, ptr noundef @.str.34, i32 noundef %1926, ptr noundef @.str.53, ptr noundef @.str.30, i32 noundef 104, ptr noundef %1929, ptr noundef %1932, ptr noundef %1935, i32 noundef %1937) #10
  br label %1939

1939:                                             ; preds = %1922, %1905
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1940

1940:                                             ; preds = %1939
  br label %1941

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

1942:                                             ; No predecessors!
  br label %1943

1943:                                             ; preds = %1942
  br label %1944

1944:                                             ; preds = %1943, %1886
  br label %1945

1945:                                             ; preds = %1944
  br label %1946

1946:                                             ; preds = %1945
  %1947 = load ptr, ptr %18, align 8, !tbaa !9
  %1948 = getelementptr inbounds %struct.s2n_connection, ptr %1947, i32 0, i32 23
  store i8 34, ptr %1948, align 4, !tbaa !15
  %1949 = load ptr, ptr %41, align 8, !tbaa !9
  %1950 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1949, i32 0, i32 1
  %1951 = load ptr, ptr %1950, align 8, !tbaa !42
  %1952 = getelementptr inbounds ptr, ptr %1951, i64 0
  %1953 = load ptr, ptr %1952, align 8, !tbaa !9
  %1954 = load ptr, ptr %18, align 8, !tbaa !9
  %1955 = getelementptr inbounds %struct.s2n_connection, ptr %1954, i32 0, i32 31
  %1956 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1955, i32 0, i32 3
  %1957 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1956, i32 0, i32 0
  store ptr %1953, ptr %1957, align 8, !tbaa !44
  br label %1958

1958:                                             ; preds = %1946
  %1959 = load i32, ptr @test_count, align 4, !tbaa !5
  %1960 = add nsw i32 %1959, 1
  store i32 %1960, ptr @test_count, align 4, !tbaa !5
  %1961 = load ptr, ptr %18, align 8, !tbaa !9
  %1962 = getelementptr inbounds %struct.s2n_connection, ptr %1961, i32 0, i32 31
  %1963 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1962, i32 0, i32 3
  %1964 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %1963)
  %1965 = icmp eq i32 %1964, -1
  br i1 %1965, label %1966, label %2019

1966:                                             ; preds = %1958
  br label %1967

1967:                                             ; preds = %1966
  br label %1968

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

1975:                                             ; preds = %1968
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = call i32 @fileno(ptr noundef %1976) #10
  %1978 = call i32 @isatty(i32 noundef %1977) #10
  %1979 = icmp ne i32 %1978, 0
  br i1 %1979, label %1980, label %1997

1980:                                             ; preds = %1975
  %1981 = load i32, ptr %44, align 4, !tbaa !5
  %1982 = call ptr @__errno_location() #11
  store i32 %1981, ptr %1982, align 4, !tbaa !5
  %1983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1984 = load i32, ptr @test_count, align 4, !tbaa !5
  %1985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = call ptr @s2n_strerror(i32 noundef %1986, ptr noundef @.str.33)
  %1988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call ptr @s2n_strerror_debug(i32 noundef %1989, ptr noundef @.str.33)
  %1991 = call ptr @__errno_location() #11
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  %1993 = call ptr @strerror(i32 noundef %1992) #10
  %1994 = call ptr @__errno_location() #11
  %1995 = load i32, ptr %1994, align 4, !tbaa !5
  %1996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1983, ptr noundef @.str.31, i32 noundef %1984, ptr noundef @.str.54, ptr noundef @.str.30, i32 noundef 110, ptr noundef %1987, ptr noundef %1990, ptr noundef %1993, i32 noundef %1995) #10
  br label %2014

1997:                                             ; preds = %1975, %1968
  %1998 = load i32, ptr %44, align 4, !tbaa !5
  %1999 = call ptr @__errno_location() #11
  store i32 %1998, ptr %1999, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror(i32 noundef %2003, ptr noundef @.str.33)
  %2005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror_debug(i32 noundef %2006, ptr noundef @.str.33)
  %2008 = call ptr @__errno_location() #11
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call ptr @strerror(i32 noundef %2009) #10
  %2011 = call ptr @__errno_location() #11
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2000, ptr noundef @.str.34, i32 noundef %2001, ptr noundef @.str.54, ptr noundef @.str.30, i32 noundef 110, ptr noundef %2004, ptr noundef %2007, ptr noundef %2010, i32 noundef %2012) #10
  br label %2014

2014:                                             ; preds = %1997, %1980
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %2015

2015:                                             ; preds = %2014
  br label %2016

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

2017:                                             ; No predecessors!
  br label %2018

2018:                                             ; preds = %2017
  br label %2019

2019:                                             ; preds = %2018, %1958
  br label %2020

2020:                                             ; preds = %2019
  br label %2021

2021:                                             ; preds = %2020
  %2022 = load ptr, ptr %41, align 8, !tbaa !9
  %2023 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2022, i32 0, i32 1
  %2024 = load ptr, ptr %2023, align 8, !tbaa !42
  %2025 = getelementptr inbounds ptr, ptr %2024, i64 0
  %2026 = load ptr, ptr %2025, align 8, !tbaa !9
  %2027 = load ptr, ptr %18, align 8, !tbaa !9
  %2028 = getelementptr inbounds %struct.s2n_connection, ptr %2027, i32 0, i32 31
  %2029 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2028, i32 0, i32 1
  %2030 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2029, i32 0, i32 0
  store ptr %2026, ptr %2030, align 8, !tbaa !46
  br label %2031

2031:                                             ; preds = %2021
  %2032 = load i32, ptr @test_count, align 4, !tbaa !5
  %2033 = add nsw i32 %2032, 1
  store i32 %2033, ptr @test_count, align 4, !tbaa !5
  %2034 = load ptr, ptr %18, align 8, !tbaa !9
  %2035 = getelementptr inbounds %struct.s2n_connection, ptr %2034, i32 0, i32 31
  %2036 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2035, i32 0, i32 1
  %2037 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %2036)
  %2038 = icmp eq i32 %2037, -1
  br i1 %2038, label %2039, label %2092

2039:                                             ; preds = %2031
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  %2042 = call ptr @__errno_location() #11
  %2043 = load i32, ptr %2042, align 4, !tbaa !5
  store i32 %2043, ptr %45, align 4, !tbaa !5
  %2044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2045 = call i32 @s2n_print_stacktrace(ptr noundef %2044)
  %2046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2047 = trunc i8 %2046 to i1
  br i1 %2047, label %2048, label %2070

2048:                                             ; preds = %2041
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = call i32 @fileno(ptr noundef %2049) #10
  %2051 = call i32 @isatty(i32 noundef %2050) #10
  %2052 = icmp ne i32 %2051, 0
  br i1 %2052, label %2053, label %2070

2053:                                             ; preds = %2048
  %2054 = load i32, ptr %45, align 4, !tbaa !5
  %2055 = call ptr @__errno_location() #11
  store i32 %2054, ptr %2055, align 4, !tbaa !5
  %2056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2057 = load i32, ptr @test_count, align 4, !tbaa !5
  %2058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2059 = load i32, ptr %2058, align 4, !tbaa !5
  %2060 = call ptr @s2n_strerror(i32 noundef %2059, ptr noundef @.str.33)
  %2061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror_debug(i32 noundef %2062, ptr noundef @.str.33)
  %2064 = call ptr @__errno_location() #11
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call ptr @strerror(i32 noundef %2065) #10
  %2067 = call ptr @__errno_location() #11
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  %2069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2056, ptr noundef @.str.31, i32 noundef %2057, ptr noundef @.str.59, ptr noundef @.str.30, i32 noundef 116, ptr noundef %2060, ptr noundef %2063, ptr noundef %2066, i32 noundef %2068) #10
  br label %2087

2070:                                             ; preds = %2048, %2041
  %2071 = load i32, ptr %45, align 4, !tbaa !5
  %2072 = call ptr @__errno_location() #11
  store i32 %2071, ptr %2072, align 4, !tbaa !5
  %2073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2074 = load i32, ptr @test_count, align 4, !tbaa !5
  %2075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror(i32 noundef %2076, ptr noundef @.str.33)
  %2078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call ptr @s2n_strerror_debug(i32 noundef %2079, ptr noundef @.str.33)
  %2081 = call ptr @__errno_location() #11
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call ptr @strerror(i32 noundef %2082) #10
  %2084 = call ptr @__errno_location() #11
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2073, ptr noundef @.str.34, i32 noundef %2074, ptr noundef @.str.59, ptr noundef @.str.30, i32 noundef 116, ptr noundef %2077, ptr noundef %2080, ptr noundef %2083, i32 noundef %2085) #10
  br label %2087

2087:                                             ; preds = %2070, %2053
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %2088

2088:                                             ; preds = %2087
  br label %2089

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

2090:                                             ; No predecessors!
  br label %2091

2091:                                             ; preds = %2090
  br label %2092

2092:                                             ; preds = %2091, %2031
  br label %2093

2093:                                             ; preds = %2092
  br label %2094

2094:                                             ; preds = %2093
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #10
  call void @llvm.memset.p0.i64(ptr align 8 %46, i8 0, i64 24, i1 false)
  br label %2095

2095:                                             ; preds = %2094
  %2096 = load i32, ptr @test_count, align 4, !tbaa !5
  %2097 = add nsw i32 %2096, 1
  store i32 %2097, ptr @test_count, align 4, !tbaa !5
  %2098 = load ptr, ptr %18, align 8, !tbaa !9
  %2099 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef %2098, ptr noundef %46)
  %2100 = icmp eq i32 %2099, -1
  br i1 %2100, label %2101, label %2154

2101:                                             ; preds = %2095
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %2104 = call ptr @__errno_location() #11
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  store i32 %2105, ptr %47, align 4, !tbaa !5
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = call i32 @s2n_print_stacktrace(ptr noundef %2106)
  %2108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2109 = trunc i8 %2108 to i1
  br i1 %2109, label %2110, label %2132

2110:                                             ; preds = %2103
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = call i32 @fileno(ptr noundef %2111) #10
  %2113 = call i32 @isatty(i32 noundef %2112) #10
  %2114 = icmp ne i32 %2113, 0
  br i1 %2114, label %2115, label %2132

2115:                                             ; preds = %2110
  %2116 = load i32, ptr %47, align 4, !tbaa !5
  %2117 = call ptr @__errno_location() #11
  store i32 %2116, ptr %2117, align 4, !tbaa !5
  %2118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2119 = load i32, ptr @test_count, align 4, !tbaa !5
  %2120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2121 = load i32, ptr %2120, align 4, !tbaa !5
  %2122 = call ptr @s2n_strerror(i32 noundef %2121, ptr noundef @.str.33)
  %2123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2124 = load i32, ptr %2123, align 4, !tbaa !5
  %2125 = call ptr @s2n_strerror_debug(i32 noundef %2124, ptr noundef @.str.33)
  %2126 = call ptr @__errno_location() #11
  %2127 = load i32, ptr %2126, align 4, !tbaa !5
  %2128 = call ptr @strerror(i32 noundef %2127) #10
  %2129 = call ptr @__errno_location() #11
  %2130 = load i32, ptr %2129, align 4, !tbaa !5
  %2131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2118, ptr noundef @.str.31, i32 noundef %2119, ptr noundef @.str.60, ptr noundef @.str.30, i32 noundef 118, ptr noundef %2122, ptr noundef %2125, ptr noundef %2128, i32 noundef %2130) #10
  br label %2149

2132:                                             ; preds = %2110, %2103
  %2133 = load i32, ptr %47, align 4, !tbaa !5
  %2134 = call ptr @__errno_location() #11
  store i32 %2133, ptr %2134, align 4, !tbaa !5
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = load i32, ptr @test_count, align 4, !tbaa !5
  %2137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2138 = load i32, ptr %2137, align 4, !tbaa !5
  %2139 = call ptr @s2n_strerror(i32 noundef %2138, ptr noundef @.str.33)
  %2140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2141 = load i32, ptr %2140, align 4, !tbaa !5
  %2142 = call ptr @s2n_strerror_debug(i32 noundef %2141, ptr noundef @.str.33)
  %2143 = call ptr @__errno_location() #11
  %2144 = load i32, ptr %2143, align 4, !tbaa !5
  %2145 = call ptr @strerror(i32 noundef %2144) #10
  %2146 = call ptr @__errno_location() #11
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2135, ptr noundef @.str.34, i32 noundef %2136, ptr noundef @.str.60, ptr noundef @.str.30, i32 noundef 118, ptr noundef %2139, ptr noundef %2142, ptr noundef %2145, i32 noundef %2147) #10
  br label %2149

2149:                                             ; preds = %2132, %2115
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %2150

2150:                                             ; preds = %2149
  br label %2151

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

2152:                                             ; No predecessors!
  br label %2153

2153:                                             ; preds = %2152
  br label %2154

2154:                                             ; preds = %2153, %2095
  br label %2155

2155:                                             ; preds = %2154
  br label %2156

2156:                                             ; preds = %2155
  br label %2157

2157:                                             ; preds = %2156
  %2158 = load i32, ptr @test_count, align 4, !tbaa !5
  %2159 = add nsw i32 %2158, 1
  store i32 %2159, ptr @test_count, align 4, !tbaa !5
  %2160 = load ptr, ptr %18, align 8, !tbaa !9
  %2161 = call i32 @s2n_connection_free(ptr noundef %2160)
  %2162 = icmp eq i32 %2161, -1
  br i1 %2162, label %2163, label %2216

2163:                                             ; preds = %2157
  br label %2164

2164:                                             ; preds = %2163
  br label %2165

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

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

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

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

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

2212:                                             ; preds = %2211
  br label %2213

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

2214:                                             ; No predecessors!
  br label %2215

2215:                                             ; preds = %2214
  br label %2216

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

2217:                                             ; preds = %2216
  br label %2218

2218:                                             ; preds = %2217
  %2219 = call i32 @s2n_free(ptr noundef %46)
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  %2220 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2220, ptr %18, align 8, !tbaa !9
  br label %2221

2221:                                             ; preds = %2218
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = add nsw i32 %2222, 1
  store i32 %2223, ptr @test_count, align 4, !tbaa !5
  %2224 = load ptr, ptr %18, align 8, !tbaa !9
  %2225 = icmp eq ptr %2224, null
  br i1 %2225, label %2226, label %2279

2226:                                             ; preds = %2221
  br label %2227

2227:                                             ; preds = %2226
  br label %2228

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

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

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

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

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

2275:                                             ; preds = %2274
  br label %2276

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

2277:                                             ; No predecessors!
  br label %2278

2278:                                             ; preds = %2277
  br label %2279

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

2280:                                             ; preds = %2279
  br label %2281

2281:                                             ; preds = %2280
  br label %2282

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

2289:                                             ; preds = %2282
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

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

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

2303:                                             ; preds = %2298
  %2304 = load i32, ptr %50, align 4, !tbaa !5
  %2305 = call ptr @__errno_location() #11
  store i32 %2304, ptr %2305, align 4, !tbaa !5
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = load i32, ptr @test_count, align 4, !tbaa !5
  %2308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call ptr @s2n_strerror(i32 noundef %2309, ptr noundef @.str.33)
  %2311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call ptr @s2n_strerror_debug(i32 noundef %2312, ptr noundef @.str.33)
  %2314 = call ptr @__errno_location() #11
  %2315 = load i32, ptr %2314, align 4, !tbaa !5
  %2316 = call ptr @strerror(i32 noundef %2315) #10
  %2317 = call ptr @__errno_location() #11
  %2318 = load i32, ptr %2317, align 4, !tbaa !5
  %2319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2306, ptr noundef @.str.31, i32 noundef %2307, ptr noundef @.str.62, ptr noundef @.str.30, i32 noundef 127, ptr noundef %2310, ptr noundef %2313, ptr noundef %2316, i32 noundef %2318) #10
  br label %2337

2320:                                             ; preds = %2298, %2291
  %2321 = load i32, ptr %50, align 4, !tbaa !5
  %2322 = call ptr @__errno_location() #11
  store i32 %2321, ptr %2322, align 4, !tbaa !5
  %2323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2324 = load i32, ptr @test_count, align 4, !tbaa !5
  %2325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2326 = load i32, ptr %2325, align 4, !tbaa !5
  %2327 = call ptr @s2n_strerror(i32 noundef %2326, ptr noundef @.str.33)
  %2328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2329 = load i32, ptr %2328, align 4, !tbaa !5
  %2330 = call ptr @s2n_strerror_debug(i32 noundef %2329, ptr noundef @.str.33)
  %2331 = call ptr @__errno_location() #11
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  %2333 = call ptr @strerror(i32 noundef %2332) #10
  %2334 = call ptr @__errno_location() #11
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2323, ptr noundef @.str.34, i32 noundef %2324, ptr noundef @.str.62, ptr noundef @.str.30, i32 noundef 127, ptr noundef %2327, ptr noundef %2330, ptr noundef %2333, i32 noundef %2335) #10
  br label %2337

2337:                                             ; preds = %2320, %2303
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2338

2338:                                             ; preds = %2337
  br label %2339

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

2340:                                             ; No predecessors!
  br label %2341

2341:                                             ; preds = %2340
  br label %2342

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

2343:                                             ; preds = %2342
  br label %2344

2344:                                             ; preds = %2343
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #10
  %2345 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2345, ptr %51, align 8, !tbaa !9
  br label %2346

2346:                                             ; preds = %2344
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = add nsw i32 %2347, 1
  store i32 %2348, ptr @test_count, align 4, !tbaa !5
  %2349 = load ptr, ptr %51, align 8, !tbaa !9
  %2350 = icmp eq ptr %2349, null
  br i1 %2350, label %2351, label %2404

2351:                                             ; preds = %2346
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

2353:                                             ; preds = %2352
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2354 = call ptr @__errno_location() #11
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  store i32 %2355, ptr %52, align 4, !tbaa !5
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = call i32 @s2n_print_stacktrace(ptr noundef %2356)
  %2358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2359 = trunc i8 %2358 to i1
  br i1 %2359, label %2360, label %2382

2360:                                             ; preds = %2353
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = call i32 @fileno(ptr noundef %2361) #10
  %2363 = call i32 @isatty(i32 noundef %2362) #10
  %2364 = icmp ne i32 %2363, 0
  br i1 %2364, label %2365, label %2382

2365:                                             ; preds = %2360
  %2366 = load i32, ptr %52, align 4, !tbaa !5
  %2367 = call ptr @__errno_location() #11
  store i32 %2366, ptr %2367, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2371 = load i32, ptr %2370, align 4, !tbaa !5
  %2372 = call ptr @s2n_strerror(i32 noundef %2371, ptr noundef @.str.33)
  %2373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2374 = load i32, ptr %2373, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror_debug(i32 noundef %2374, ptr noundef @.str.33)
  %2376 = call ptr @__errno_location() #11
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call ptr @strerror(i32 noundef %2377) #10
  %2379 = call ptr @__errno_location() #11
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2368, ptr noundef @.str.31, i32 noundef %2369, ptr noundef @.str.63, ptr noundef @.str.30, i32 noundef 130, ptr noundef %2372, ptr noundef %2375, ptr noundef %2378, i32 noundef %2380) #10
  br label %2399

2382:                                             ; preds = %2360, %2353
  %2383 = load i32, ptr %52, align 4, !tbaa !5
  %2384 = call ptr @__errno_location() #11
  store i32 %2383, ptr %2384, align 4, !tbaa !5
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = load i32, ptr @test_count, align 4, !tbaa !5
  %2387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2388 = load i32, ptr %2387, align 4, !tbaa !5
  %2389 = call ptr @s2n_strerror(i32 noundef %2388, ptr noundef @.str.33)
  %2390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2391 = load i32, ptr %2390, align 4, !tbaa !5
  %2392 = call ptr @s2n_strerror_debug(i32 noundef %2391, ptr noundef @.str.33)
  %2393 = call ptr @__errno_location() #11
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = call ptr @strerror(i32 noundef %2394) #10
  %2396 = call ptr @__errno_location() #11
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  %2398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2385, ptr noundef @.str.34, i32 noundef %2386, ptr noundef @.str.63, ptr noundef @.str.30, i32 noundef 130, ptr noundef %2389, ptr noundef %2392, ptr noundef %2395, i32 noundef %2397) #10
  br label %2399

2399:                                             ; preds = %2382, %2365
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2400

2400:                                             ; preds = %2399
  br label %2401

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

2402:                                             ; No predecessors!
  br label %2403

2403:                                             ; preds = %2402
  br label %2404

2404:                                             ; preds = %2403, %2346
  br label %2405

2405:                                             ; preds = %2404
  br label %2406

2406:                                             ; preds = %2405
  br label %2407

2407:                                             ; preds = %2406
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = add nsw i32 %2408, 1
  store i32 %2409, ptr @test_count, align 4, !tbaa !5
  %2410 = load ptr, ptr %51, align 8, !tbaa !9
  %2411 = load ptr, ptr %14, align 8, !tbaa !9
  %2412 = call i32 @s2n_connection_set_config(ptr noundef %2410, ptr noundef %2411)
  %2413 = icmp eq i32 %2412, -1
  br i1 %2413, label %2414, label %2467

2414:                                             ; preds = %2407
  br label %2415

2415:                                             ; preds = %2414
  br label %2416

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

2423:                                             ; preds = %2416
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = call i32 @fileno(ptr noundef %2424) #10
  %2426 = call i32 @isatty(i32 noundef %2425) #10
  %2427 = icmp ne i32 %2426, 0
  br i1 %2427, label %2428, label %2445

2428:                                             ; preds = %2423
  %2429 = load i32, ptr %53, align 4, !tbaa !5
  %2430 = call ptr @__errno_location() #11
  store i32 %2429, ptr %2430, align 4, !tbaa !5
  %2431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2432 = load i32, ptr @test_count, align 4, !tbaa !5
  %2433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2434 = load i32, ptr %2433, align 4, !tbaa !5
  %2435 = call ptr @s2n_strerror(i32 noundef %2434, ptr noundef @.str.33)
  %2436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2437 = load i32, ptr %2436, align 4, !tbaa !5
  %2438 = call ptr @s2n_strerror_debug(i32 noundef %2437, ptr noundef @.str.33)
  %2439 = call ptr @__errno_location() #11
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  %2441 = call ptr @strerror(i32 noundef %2440) #10
  %2442 = call ptr @__errno_location() #11
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2431, ptr noundef @.str.31, i32 noundef %2432, ptr noundef @.str.64, ptr noundef @.str.30, i32 noundef 131, ptr noundef %2435, ptr noundef %2438, ptr noundef %2441, i32 noundef %2443) #10
  br label %2462

2445:                                             ; preds = %2423, %2416
  %2446 = load i32, ptr %53, align 4, !tbaa !5
  %2447 = call ptr @__errno_location() #11
  store i32 %2446, ptr %2447, align 4, !tbaa !5
  %2448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2449 = load i32, ptr @test_count, align 4, !tbaa !5
  %2450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2451 = load i32, ptr %2450, align 4, !tbaa !5
  %2452 = call ptr @s2n_strerror(i32 noundef %2451, ptr noundef @.str.33)
  %2453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2454 = load i32, ptr %2453, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror_debug(i32 noundef %2454, ptr noundef @.str.33)
  %2456 = call ptr @__errno_location() #11
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call ptr @strerror(i32 noundef %2457) #10
  %2459 = call ptr @__errno_location() #11
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2448, ptr noundef @.str.34, i32 noundef %2449, ptr noundef @.str.64, ptr noundef @.str.30, i32 noundef 131, ptr noundef %2452, ptr noundef %2455, ptr noundef %2458, i32 noundef %2460) #10
  br label %2462

2462:                                             ; preds = %2445, %2428
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2463

2463:                                             ; preds = %2462
  br label %2464

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

2465:                                             ; No predecessors!
  br label %2466

2466:                                             ; preds = %2465
  br label %2467

2467:                                             ; preds = %2466, %2407
  br label %2468

2468:                                             ; preds = %2467
  br label %2469

2469:                                             ; preds = %2468
  br label %2470

2470:                                             ; preds = %2469
  %2471 = load i32, ptr @test_count, align 4, !tbaa !5
  %2472 = add nsw i32 %2471, 1
  store i32 %2472, ptr @test_count, align 4, !tbaa !5
  %2473 = load ptr, ptr %18, align 8, !tbaa !9
  %2474 = call i32 @s2n_client_hello_send(ptr noundef %2473)
  %2475 = icmp eq i32 %2474, -1
  br i1 %2475, label %2476, label %2529

2476:                                             ; preds = %2470
  br label %2477

2477:                                             ; preds = %2476
  br label %2478

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

2485:                                             ; preds = %2478
  %2486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2487 = call i32 @fileno(ptr noundef %2486) #10
  %2488 = call i32 @isatty(i32 noundef %2487) #10
  %2489 = icmp ne i32 %2488, 0
  br i1 %2489, label %2490, label %2507

2490:                                             ; preds = %2485
  %2491 = load i32, ptr %54, align 4, !tbaa !5
  %2492 = call ptr @__errno_location() #11
  store i32 %2491, ptr %2492, align 4, !tbaa !5
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = load i32, ptr @test_count, align 4, !tbaa !5
  %2495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror(i32 noundef %2496, ptr noundef @.str.33)
  %2498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @s2n_strerror_debug(i32 noundef %2499, ptr noundef @.str.33)
  %2501 = call ptr @__errno_location() #11
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call ptr @strerror(i32 noundef %2502) #10
  %2504 = call ptr @__errno_location() #11
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2493, ptr noundef @.str.31, i32 noundef %2494, ptr noundef @.str.65, ptr noundef @.str.30, i32 noundef 133, ptr noundef %2497, ptr noundef %2500, ptr noundef %2503, i32 noundef %2505) #10
  br label %2524

2507:                                             ; preds = %2485, %2478
  %2508 = load i32, ptr %54, align 4, !tbaa !5
  %2509 = call ptr @__errno_location() #11
  store i32 %2508, ptr %2509, align 4, !tbaa !5
  %2510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2511 = load i32, ptr @test_count, align 4, !tbaa !5
  %2512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2513 = load i32, ptr %2512, align 4, !tbaa !5
  %2514 = call ptr @s2n_strerror(i32 noundef %2513, ptr noundef @.str.33)
  %2515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call ptr @s2n_strerror_debug(i32 noundef %2516, ptr noundef @.str.33)
  %2518 = call ptr @__errno_location() #11
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call ptr @strerror(i32 noundef %2519) #10
  %2521 = call ptr @__errno_location() #11
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2510, ptr noundef @.str.34, i32 noundef %2511, ptr noundef @.str.65, ptr noundef @.str.30, i32 noundef 133, ptr noundef %2514, ptr noundef %2517, ptr noundef %2520, i32 noundef %2522) #10
  br label %2524

2524:                                             ; preds = %2507, %2490
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2525

2525:                                             ; preds = %2524
  br label %2526

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

2527:                                             ; No predecessors!
  br label %2528

2528:                                             ; preds = %2527
  br label %2529

2529:                                             ; preds = %2528, %2470
  br label %2530

2530:                                             ; preds = %2529
  br label %2531

2531:                                             ; preds = %2530
  br label %2532

2532:                                             ; preds = %2531
  %2533 = load i32, ptr @test_count, align 4, !tbaa !5
  %2534 = add nsw i32 %2533, 1
  store i32 %2534, ptr @test_count, align 4, !tbaa !5
  %2535 = load ptr, ptr %18, align 8, !tbaa !9
  %2536 = getelementptr inbounds %struct.s2n_connection, ptr %2535, i32 0, i32 52
  %2537 = getelementptr inbounds %struct.s2n_handshake, ptr %2536, i32 0, i32 0
  %2538 = load ptr, ptr %51, align 8, !tbaa !9
  %2539 = getelementptr inbounds %struct.s2n_connection, ptr %2538, i32 0, i32 52
  %2540 = getelementptr inbounds %struct.s2n_handshake, ptr %2539, i32 0, i32 0
  %2541 = load ptr, ptr %18, align 8, !tbaa !9
  %2542 = getelementptr inbounds %struct.s2n_connection, ptr %2541, i32 0, i32 52
  %2543 = getelementptr inbounds %struct.s2n_handshake, ptr %2542, i32 0, i32 0
  %2544 = getelementptr inbounds %struct.s2n_stuffer, ptr %2543, i32 0, i32 2
  %2545 = load i32, ptr %2544, align 4, !tbaa !47
  %2546 = load ptr, ptr %18, align 8, !tbaa !9
  %2547 = getelementptr inbounds %struct.s2n_connection, ptr %2546, i32 0, i32 52
  %2548 = getelementptr inbounds %struct.s2n_handshake, ptr %2547, i32 0, i32 0
  %2549 = getelementptr inbounds %struct.s2n_stuffer, ptr %2548, i32 0, i32 1
  %2550 = load i32, ptr %2549, align 8, !tbaa !48
  %2551 = sub i32 %2545, %2550
  %2552 = call i32 @s2n_stuffer_copy(ptr noundef %2537, ptr noundef %2540, i32 noundef %2551)
  %2553 = icmp eq i32 %2552, -1
  br i1 %2553, label %2554, label %2607

2554:                                             ; preds = %2532
  br label %2555

2555:                                             ; preds = %2554
  br label %2556

2556:                                             ; preds = %2555
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  %2557 = call ptr @__errno_location() #11
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  store i32 %2558, ptr %55, align 4, !tbaa !5
  %2559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2560 = call i32 @s2n_print_stacktrace(ptr noundef %2559)
  %2561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2562 = trunc i8 %2561 to i1
  br i1 %2562, label %2563, label %2585

2563:                                             ; preds = %2556
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = call i32 @fileno(ptr noundef %2564) #10
  %2566 = call i32 @isatty(i32 noundef %2565) #10
  %2567 = icmp ne i32 %2566, 0
  br i1 %2567, label %2568, label %2585

2568:                                             ; preds = %2563
  %2569 = load i32, ptr %55, align 4, !tbaa !5
  %2570 = call ptr @__errno_location() #11
  store i32 %2569, ptr %2570, align 4, !tbaa !5
  %2571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2572 = load i32, ptr @test_count, align 4, !tbaa !5
  %2573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2574 = load i32, ptr %2573, align 4, !tbaa !5
  %2575 = call ptr @s2n_strerror(i32 noundef %2574, ptr noundef @.str.33)
  %2576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2577 = load i32, ptr %2576, align 4, !tbaa !5
  %2578 = call ptr @s2n_strerror_debug(i32 noundef %2577, ptr noundef @.str.33)
  %2579 = call ptr @__errno_location() #11
  %2580 = load i32, ptr %2579, align 4, !tbaa !5
  %2581 = call ptr @strerror(i32 noundef %2580) #10
  %2582 = call ptr @__errno_location() #11
  %2583 = load i32, ptr %2582, align 4, !tbaa !5
  %2584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2571, ptr noundef @.str.31, i32 noundef %2572, ptr noundef @.str.66, ptr noundef @.str.30, i32 noundef 135, ptr noundef %2575, ptr noundef %2578, ptr noundef %2581, i32 noundef %2583) #10
  br label %2602

2585:                                             ; preds = %2563, %2556
  %2586 = load i32, ptr %55, align 4, !tbaa !5
  %2587 = call ptr @__errno_location() #11
  store i32 %2586, ptr %2587, align 4, !tbaa !5
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = load i32, ptr @test_count, align 4, !tbaa !5
  %2590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2591 = load i32, ptr %2590, align 4, !tbaa !5
  %2592 = call ptr @s2n_strerror(i32 noundef %2591, ptr noundef @.str.33)
  %2593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2594 = load i32, ptr %2593, align 4, !tbaa !5
  %2595 = call ptr @s2n_strerror_debug(i32 noundef %2594, ptr noundef @.str.33)
  %2596 = call ptr @__errno_location() #11
  %2597 = load i32, ptr %2596, align 4, !tbaa !5
  %2598 = call ptr @strerror(i32 noundef %2597) #10
  %2599 = call ptr @__errno_location() #11
  %2600 = load i32, ptr %2599, align 4, !tbaa !5
  %2601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2588, ptr noundef @.str.34, i32 noundef %2589, ptr noundef @.str.66, ptr noundef @.str.30, i32 noundef 135, ptr noundef %2592, ptr noundef %2595, ptr noundef %2598, i32 noundef %2600) #10
  br label %2602

2602:                                             ; preds = %2585, %2568
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2603

2603:                                             ; preds = %2602
  br label %2604

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

2605:                                             ; No predecessors!
  br label %2606

2606:                                             ; preds = %2605
  br label %2607

2607:                                             ; preds = %2606, %2532
  br label %2608

2608:                                             ; preds = %2607
  br label %2609

2609:                                             ; preds = %2608
  br label %2610

2610:                                             ; preds = %2609
  %2611 = load i32, ptr @test_count, align 4, !tbaa !5
  %2612 = add nsw i32 %2611, 1
  store i32 %2612, ptr @test_count, align 4, !tbaa !5
  %2613 = load ptr, ptr %51, align 8, !tbaa !9
  %2614 = call i32 @s2n_client_hello_recv(ptr noundef %2613)
  %2615 = icmp eq i32 %2614, -1
  br i1 %2615, label %2616, label %2669

2616:                                             ; preds = %2610
  br label %2617

2617:                                             ; preds = %2616
  br label %2618

2618:                                             ; preds = %2617
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2619 = call ptr @__errno_location() #11
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  store i32 %2620, ptr %56, align 4, !tbaa !5
  %2621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2622 = call i32 @s2n_print_stacktrace(ptr noundef %2621)
  %2623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2624 = trunc i8 %2623 to i1
  br i1 %2624, label %2625, label %2647

2625:                                             ; preds = %2618
  %2626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2627 = call i32 @fileno(ptr noundef %2626) #10
  %2628 = call i32 @isatty(i32 noundef %2627) #10
  %2629 = icmp ne i32 %2628, 0
  br i1 %2629, label %2630, label %2647

2630:                                             ; preds = %2625
  %2631 = load i32, ptr %56, align 4, !tbaa !5
  %2632 = call ptr @__errno_location() #11
  store i32 %2631, ptr %2632, align 4, !tbaa !5
  %2633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2634 = load i32, ptr @test_count, align 4, !tbaa !5
  %2635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2636 = load i32, ptr %2635, align 4, !tbaa !5
  %2637 = call ptr @s2n_strerror(i32 noundef %2636, ptr noundef @.str.33)
  %2638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2639 = load i32, ptr %2638, align 4, !tbaa !5
  %2640 = call ptr @s2n_strerror_debug(i32 noundef %2639, ptr noundef @.str.33)
  %2641 = call ptr @__errno_location() #11
  %2642 = load i32, ptr %2641, align 4, !tbaa !5
  %2643 = call ptr @strerror(i32 noundef %2642) #10
  %2644 = call ptr @__errno_location() #11
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2633, ptr noundef @.str.31, i32 noundef %2634, ptr noundef @.str.67, ptr noundef @.str.30, i32 noundef 136, ptr noundef %2637, ptr noundef %2640, ptr noundef %2643, i32 noundef %2645) #10
  br label %2664

2647:                                             ; preds = %2625, %2618
  %2648 = load i32, ptr %56, align 4, !tbaa !5
  %2649 = call ptr @__errno_location() #11
  store i32 %2648, ptr %2649, align 4, !tbaa !5
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = load i32, ptr @test_count, align 4, !tbaa !5
  %2652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call ptr @s2n_strerror(i32 noundef %2653, ptr noundef @.str.33)
  %2655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  %2657 = call ptr @s2n_strerror_debug(i32 noundef %2656, ptr noundef @.str.33)
  %2658 = call ptr @__errno_location() #11
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call ptr @strerror(i32 noundef %2659) #10
  %2661 = call ptr @__errno_location() #11
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  %2663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2650, ptr noundef @.str.34, i32 noundef %2651, ptr noundef @.str.67, ptr noundef @.str.30, i32 noundef 136, ptr noundef %2654, ptr noundef %2657, ptr noundef %2660, i32 noundef %2662) #10
  br label %2664

2664:                                             ; preds = %2647, %2630
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2665

2665:                                             ; preds = %2664
  br label %2666

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

2667:                                             ; No predecessors!
  br label %2668

2668:                                             ; preds = %2667
  br label %2669

2669:                                             ; preds = %2668, %2610
  br label %2670

2670:                                             ; preds = %2669
  br label %2671

2671:                                             ; preds = %2670
  br label %2672

2672:                                             ; preds = %2671
  %2673 = load i32, ptr @test_count, align 4, !tbaa !5
  %2674 = add nsw i32 %2673, 1
  store i32 %2674, ptr @test_count, align 4, !tbaa !5
  %2675 = load ptr, ptr %51, align 8, !tbaa !9
  %2676 = call i32 @s2n_server_hello_send(ptr noundef %2675)
  %2677 = icmp eq i32 %2676, -1
  br i1 %2677, label %2678, label %2731

2678:                                             ; preds = %2672
  br label %2679

2679:                                             ; preds = %2678
  br label %2680

2680:                                             ; preds = %2679
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  %2681 = call ptr @__errno_location() #11
  %2682 = load i32, ptr %2681, align 4, !tbaa !5
  store i32 %2682, ptr %57, align 4, !tbaa !5
  %2683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2684 = call i32 @s2n_print_stacktrace(ptr noundef %2683)
  %2685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2686 = trunc i8 %2685 to i1
  br i1 %2686, label %2687, label %2709

2687:                                             ; preds = %2680
  %2688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2689 = call i32 @fileno(ptr noundef %2688) #10
  %2690 = call i32 @isatty(i32 noundef %2689) #10
  %2691 = icmp ne i32 %2690, 0
  br i1 %2691, label %2692, label %2709

2692:                                             ; preds = %2687
  %2693 = load i32, ptr %57, align 4, !tbaa !5
  %2694 = call ptr @__errno_location() #11
  store i32 %2693, ptr %2694, align 4, !tbaa !5
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = load i32, ptr @test_count, align 4, !tbaa !5
  %2697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = call ptr @s2n_strerror(i32 noundef %2698, ptr noundef @.str.33)
  %2700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  %2702 = call ptr @s2n_strerror_debug(i32 noundef %2701, ptr noundef @.str.33)
  %2703 = call ptr @__errno_location() #11
  %2704 = load i32, ptr %2703, align 4, !tbaa !5
  %2705 = call ptr @strerror(i32 noundef %2704) #10
  %2706 = call ptr @__errno_location() #11
  %2707 = load i32, ptr %2706, align 4, !tbaa !5
  %2708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2695, ptr noundef @.str.31, i32 noundef %2696, ptr noundef @.str.68, ptr noundef @.str.30, i32 noundef 138, ptr noundef %2699, ptr noundef %2702, ptr noundef %2705, i32 noundef %2707) #10
  br label %2726

2709:                                             ; preds = %2687, %2680
  %2710 = load i32, ptr %57, align 4, !tbaa !5
  %2711 = call ptr @__errno_location() #11
  store i32 %2710, ptr %2711, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  %2716 = call ptr @s2n_strerror(i32 noundef %2715, ptr noundef @.str.33)
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror_debug(i32 noundef %2718, ptr noundef @.str.33)
  %2720 = call ptr @__errno_location() #11
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @strerror(i32 noundef %2721) #10
  %2723 = call ptr @__errno_location() #11
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2712, ptr noundef @.str.34, i32 noundef %2713, ptr noundef @.str.68, ptr noundef @.str.30, i32 noundef 138, ptr noundef %2716, ptr noundef %2719, ptr noundef %2722, i32 noundef %2724) #10
  br label %2726

2726:                                             ; preds = %2709, %2692
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2727

2727:                                             ; preds = %2726
  br label %2728

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

2729:                                             ; No predecessors!
  br label %2730

2730:                                             ; preds = %2729
  br label %2731

2731:                                             ; preds = %2730, %2672
  br label %2732

2732:                                             ; preds = %2731
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

2734:                                             ; preds = %2733
  %2735 = load i32, ptr @test_count, align 4, !tbaa !5
  %2736 = add nsw i32 %2735, 1
  store i32 %2736, ptr @test_count, align 4, !tbaa !5
  %2737 = load ptr, ptr %51, align 8, !tbaa !9
  %2738 = getelementptr inbounds %struct.s2n_connection, ptr %2737, i32 0, i32 52
  %2739 = getelementptr inbounds %struct.s2n_handshake, ptr %2738, i32 0, i32 0
  %2740 = load ptr, ptr %18, align 8, !tbaa !9
  %2741 = getelementptr inbounds %struct.s2n_connection, ptr %2740, i32 0, i32 52
  %2742 = getelementptr inbounds %struct.s2n_handshake, ptr %2741, i32 0, i32 0
  %2743 = load ptr, ptr %51, align 8, !tbaa !9
  %2744 = getelementptr inbounds %struct.s2n_connection, ptr %2743, i32 0, i32 52
  %2745 = getelementptr inbounds %struct.s2n_handshake, ptr %2744, i32 0, i32 0
  %2746 = getelementptr inbounds %struct.s2n_stuffer, ptr %2745, i32 0, i32 2
  %2747 = load i32, ptr %2746, align 4, !tbaa !47
  %2748 = load ptr, ptr %51, align 8, !tbaa !9
  %2749 = getelementptr inbounds %struct.s2n_connection, ptr %2748, i32 0, i32 52
  %2750 = getelementptr inbounds %struct.s2n_handshake, ptr %2749, i32 0, i32 0
  %2751 = getelementptr inbounds %struct.s2n_stuffer, ptr %2750, i32 0, i32 1
  %2752 = load i32, ptr %2751, align 8, !tbaa !48
  %2753 = sub i32 %2747, %2752
  %2754 = call i32 @s2n_stuffer_copy(ptr noundef %2739, ptr noundef %2742, i32 noundef %2753)
  %2755 = icmp eq i32 %2754, -1
  br i1 %2755, label %2756, label %2809

2756:                                             ; preds = %2734
  br label %2757

2757:                                             ; preds = %2756
  br label %2758

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

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

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

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

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

2805:                                             ; preds = %2804
  br label %2806

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

2807:                                             ; No predecessors!
  br label %2808

2808:                                             ; preds = %2807
  br label %2809

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

2810:                                             ; preds = %2809
  br label %2811

2811:                                             ; preds = %2810
  br label %2812

2812:                                             ; preds = %2811
  %2813 = load i32, ptr @test_count, align 4, !tbaa !5
  %2814 = add nsw i32 %2813, 1
  store i32 %2814, ptr @test_count, align 4, !tbaa !5
  %2815 = load ptr, ptr %18, align 8, !tbaa !9
  %2816 = call i32 @s2n_server_hello_recv(ptr noundef %2815)
  %2817 = icmp eq i32 %2816, -1
  br i1 %2817, label %2818, label %2871

2818:                                             ; preds = %2812
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

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

2827:                                             ; preds = %2820
  %2828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2829 = call i32 @fileno(ptr noundef %2828) #10
  %2830 = call i32 @isatty(i32 noundef %2829) #10
  %2831 = icmp ne i32 %2830, 0
  br i1 %2831, label %2832, label %2849

2832:                                             ; preds = %2827
  %2833 = load i32, ptr %59, align 4, !tbaa !5
  %2834 = call ptr @__errno_location() #11
  store i32 %2833, ptr %2834, align 4, !tbaa !5
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2836 = load i32, ptr @test_count, align 4, !tbaa !5
  %2837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call ptr @s2n_strerror(i32 noundef %2838, ptr noundef @.str.33)
  %2840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2841 = load i32, ptr %2840, align 4, !tbaa !5
  %2842 = call ptr @s2n_strerror_debug(i32 noundef %2841, ptr noundef @.str.33)
  %2843 = call ptr @__errno_location() #11
  %2844 = load i32, ptr %2843, align 4, !tbaa !5
  %2845 = call ptr @strerror(i32 noundef %2844) #10
  %2846 = call ptr @__errno_location() #11
  %2847 = load i32, ptr %2846, align 4, !tbaa !5
  %2848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2835, ptr noundef @.str.31, i32 noundef %2836, ptr noundef @.str.70, ptr noundef @.str.30, i32 noundef 141, ptr noundef %2839, ptr noundef %2842, ptr noundef %2845, i32 noundef %2847) #10
  br label %2866

2849:                                             ; preds = %2827, %2820
  %2850 = load i32, ptr %59, align 4, !tbaa !5
  %2851 = call ptr @__errno_location() #11
  store i32 %2850, ptr %2851, align 4, !tbaa !5
  %2852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2853 = load i32, ptr @test_count, align 4, !tbaa !5
  %2854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2855 = load i32, ptr %2854, align 4, !tbaa !5
  %2856 = call ptr @s2n_strerror(i32 noundef %2855, ptr noundef @.str.33)
  %2857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2858 = load i32, ptr %2857, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror_debug(i32 noundef %2858, ptr noundef @.str.33)
  %2860 = call ptr @__errno_location() #11
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  %2862 = call ptr @strerror(i32 noundef %2861) #10
  %2863 = call ptr @__errno_location() #11
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2852, ptr noundef @.str.34, i32 noundef %2853, ptr noundef @.str.70, ptr noundef @.str.30, i32 noundef 141, ptr noundef %2856, ptr noundef %2859, ptr noundef %2862, i32 noundef %2864) #10
  br label %2866

2866:                                             ; preds = %2849, %2832
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2867

2867:                                             ; preds = %2866
  br label %2868

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

2869:                                             ; No predecessors!
  br label %2870

2870:                                             ; preds = %2869
  br label %2871

2871:                                             ; preds = %2870, %2812
  br label %2872

2872:                                             ; preds = %2871
  br label %2873

2873:                                             ; preds = %2872
  call void @llvm.lifetime.start.p0(i64 24, ptr %60) #10
  call void @llvm.memset.p0.i64(ptr align 8 %60, i8 0, i64 24, i1 false)
  br label %2874

2874:                                             ; preds = %2873
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = add nsw i32 %2875, 1
  store i32 %2876, ptr @test_count, align 4, !tbaa !5
  %2877 = load ptr, ptr %18, align 8, !tbaa !9
  %2878 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef %2877, ptr noundef %60)
  %2879 = icmp eq i32 %2878, -1
  br i1 %2879, label %2880, label %2933

2880:                                             ; preds = %2874
  br label %2881

2881:                                             ; preds = %2880
  br label %2882

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

2889:                                             ; preds = %2882
  %2890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2891 = call i32 @fileno(ptr noundef %2890) #10
  %2892 = call i32 @isatty(i32 noundef %2891) #10
  %2893 = icmp ne i32 %2892, 0
  br i1 %2893, label %2894, label %2911

2894:                                             ; preds = %2889
  %2895 = load i32, ptr %61, align 4, !tbaa !5
  %2896 = call ptr @__errno_location() #11
  store i32 %2895, ptr %2896, align 4, !tbaa !5
  %2897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2898 = load i32, ptr @test_count, align 4, !tbaa !5
  %2899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  %2901 = call ptr @s2n_strerror(i32 noundef %2900, ptr noundef @.str.33)
  %2902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @s2n_strerror_debug(i32 noundef %2903, ptr noundef @.str.33)
  %2905 = call ptr @__errno_location() #11
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call ptr @strerror(i32 noundef %2906) #10
  %2908 = call ptr @__errno_location() #11
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  %2910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2897, ptr noundef @.str.31, i32 noundef %2898, ptr noundef @.str.60, ptr noundef @.str.30, i32 noundef 144, ptr noundef %2901, ptr noundef %2904, ptr noundef %2907, i32 noundef %2909) #10
  br label %2928

2911:                                             ; preds = %2889, %2882
  %2912 = load i32, ptr %61, align 4, !tbaa !5
  %2913 = call ptr @__errno_location() #11
  store i32 %2912, ptr %2913, align 4, !tbaa !5
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = load i32, ptr @test_count, align 4, !tbaa !5
  %2916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call ptr @s2n_strerror(i32 noundef %2917, ptr noundef @.str.33)
  %2919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror_debug(i32 noundef %2920, ptr noundef @.str.33)
  %2922 = call ptr @__errno_location() #11
  %2923 = load i32, ptr %2922, align 4, !tbaa !5
  %2924 = call ptr @strerror(i32 noundef %2923) #10
  %2925 = call ptr @__errno_location() #11
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  %2927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2914, ptr noundef @.str.34, i32 noundef %2915, ptr noundef @.str.60, ptr noundef @.str.30, i32 noundef 144, ptr noundef %2918, ptr noundef %2921, ptr noundef %2924, i32 noundef %2926) #10
  br label %2928

2928:                                             ; preds = %2911, %2894
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2929

2929:                                             ; preds = %2928
  br label %2930

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

2931:                                             ; No predecessors!
  br label %2932

2932:                                             ; preds = %2931
  br label %2933

2933:                                             ; preds = %2932, %2874
  br label %2934

2934:                                             ; preds = %2933
  br label %2935

2935:                                             ; preds = %2934
  br label %2936

2936:                                             ; preds = %2935
  %2937 = load i32, ptr @test_count, align 4, !tbaa !5
  %2938 = add nsw i32 %2937, 1
  store i32 %2938, ptr @test_count, align 4, !tbaa !5
  %2939 = getelementptr inbounds %struct.s2n_blob, ptr %60, i32 0, i32 1
  %2940 = load i32, ptr %2939, align 8, !tbaa !49
  %2941 = icmp ugt i32 %2940, 0
  br i1 %2941, label %2995, label %2942

2942:                                             ; preds = %2936
  br label %2943

2943:                                             ; preds = %2942
  br label %2944

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

2951:                                             ; preds = %2944
  %2952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2953 = call i32 @fileno(ptr noundef %2952) #10
  %2954 = call i32 @isatty(i32 noundef %2953) #10
  %2955 = icmp ne i32 %2954, 0
  br i1 %2955, label %2956, label %2973

2956:                                             ; preds = %2951
  %2957 = load i32, ptr %62, align 4, !tbaa !5
  %2958 = call ptr @__errno_location() #11
  store i32 %2957, ptr %2958, align 4, !tbaa !5
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = load i32, ptr @test_count, align 4, !tbaa !5
  %2961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2962 = load i32, ptr %2961, align 4, !tbaa !5
  %2963 = call ptr @s2n_strerror(i32 noundef %2962, ptr noundef @.str.33)
  %2964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2965 = load i32, ptr %2964, align 4, !tbaa !5
  %2966 = call ptr @s2n_strerror_debug(i32 noundef %2965, ptr noundef @.str.33)
  %2967 = call ptr @__errno_location() #11
  %2968 = load i32, ptr %2967, align 4, !tbaa !5
  %2969 = call ptr @strerror(i32 noundef %2968) #10
  %2970 = call ptr @__errno_location() #11
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2959, ptr noundef @.str.31, i32 noundef %2960, ptr noundef @.str.71, ptr noundef @.str.30, i32 noundef 145, ptr noundef %2963, ptr noundef %2966, ptr noundef %2969, i32 noundef %2971) #10
  br label %2990

2973:                                             ; preds = %2951, %2944
  %2974 = load i32, ptr %62, align 4, !tbaa !5
  %2975 = call ptr @__errno_location() #11
  store i32 %2974, ptr %2975, align 4, !tbaa !5
  %2976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2977 = load i32, ptr @test_count, align 4, !tbaa !5
  %2978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = call ptr @s2n_strerror(i32 noundef %2979, ptr noundef @.str.33)
  %2981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  %2983 = call ptr @s2n_strerror_debug(i32 noundef %2982, ptr noundef @.str.33)
  %2984 = call ptr @__errno_location() #11
  %2985 = load i32, ptr %2984, align 4, !tbaa !5
  %2986 = call ptr @strerror(i32 noundef %2985) #10
  %2987 = call ptr @__errno_location() #11
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  %2989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2976, ptr noundef @.str.34, i32 noundef %2977, ptr noundef @.str.71, ptr noundef @.str.30, i32 noundef 145, ptr noundef %2980, ptr noundef %2983, ptr noundef %2986, i32 noundef %2988) #10
  br label %2990

2990:                                             ; preds = %2973, %2956
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2991

2991:                                             ; preds = %2990
  br label %2992

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

2993:                                             ; No predecessors!
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

2995:                                             ; preds = %2994, %2936
  br label %2996

2996:                                             ; preds = %2995
  br label %2997

2997:                                             ; preds = %2996
  call void @llvm.lifetime.start.p0(i64 24, ptr %63) #10
  call void @llvm.memset.p0.i64(ptr align 8 %63, i8 0, i64 24, i1 false)
  br label %2998

2998:                                             ; preds = %2997
  %2999 = load i32, ptr @test_count, align 4, !tbaa !5
  %3000 = add nsw i32 %2999, 1
  store i32 %3000, ptr @test_count, align 4, !tbaa !5
  %3001 = load ptr, ptr %51, align 8, !tbaa !9
  %3002 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef %3001, ptr noundef %63)
  %3003 = icmp eq i32 %3002, -1
  br i1 %3003, label %3004, label %3057

3004:                                             ; preds = %2998
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

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

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

3018:                                             ; preds = %3013
  %3019 = load i32, ptr %64, align 4, !tbaa !5
  %3020 = call ptr @__errno_location() #11
  store i32 %3019, ptr %3020, align 4, !tbaa !5
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = load i32, ptr @test_count, align 4, !tbaa !5
  %3023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3024 = load i32, ptr %3023, align 4, !tbaa !5
  %3025 = call ptr @s2n_strerror(i32 noundef %3024, ptr noundef @.str.33)
  %3026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror_debug(i32 noundef %3027, ptr noundef @.str.33)
  %3029 = call ptr @__errno_location() #11
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call ptr @strerror(i32 noundef %3030) #10
  %3032 = call ptr @__errno_location() #11
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3021, ptr noundef @.str.31, i32 noundef %3022, ptr noundef @.str.72, ptr noundef @.str.30, i32 noundef 148, ptr noundef %3025, ptr noundef %3028, ptr noundef %3031, i32 noundef %3033) #10
  br label %3052

3035:                                             ; preds = %3013, %3006
  %3036 = load i32, ptr %64, align 4, !tbaa !5
  %3037 = call ptr @__errno_location() #11
  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.33)
  %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.33)
  %3046 = call ptr @__errno_location() #11
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call ptr @strerror(i32 noundef %3047) #10
  %3049 = call ptr @__errno_location() #11
  %3050 = load i32, ptr %3049, align 4, !tbaa !5
  %3051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3038, ptr noundef @.str.34, i32 noundef %3039, ptr noundef @.str.72, ptr noundef @.str.30, i32 noundef 148, ptr noundef %3042, ptr noundef %3045, ptr noundef %3048, i32 noundef %3050) #10
  br label %3052

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

3053:                                             ; preds = %3052
  br label %3054

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

3055:                                             ; No predecessors!
  br label %3056

3056:                                             ; preds = %3055
  br label %3057

3057:                                             ; preds = %3056, %2998
  br label %3058

3058:                                             ; preds = %3057
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059
  %3061 = load i32, ptr @test_count, align 4, !tbaa !5
  %3062 = add nsw i32 %3061, 1
  store i32 %3062, ptr @test_count, align 4, !tbaa !5
  %3063 = getelementptr inbounds %struct.s2n_blob, ptr %63, i32 0, i32 1
  %3064 = load i32, ptr %3063, align 8, !tbaa !49
  %3065 = icmp ugt i32 %3064, 0
  br i1 %3065, label %3119, label %3066

3066:                                             ; preds = %3060
  br label %3067

3067:                                             ; preds = %3066
  br label %3068

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

3075:                                             ; preds = %3068
  %3076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3077 = call i32 @fileno(ptr noundef %3076) #10
  %3078 = call i32 @isatty(i32 noundef %3077) #10
  %3079 = icmp ne i32 %3078, 0
  br i1 %3079, label %3080, label %3097

3080:                                             ; preds = %3075
  %3081 = load i32, ptr %65, align 4, !tbaa !5
  %3082 = call ptr @__errno_location() #11
  store i32 %3081, ptr %3082, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = load i32, ptr @test_count, align 4, !tbaa !5
  %3085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3086 = load i32, ptr %3085, align 4, !tbaa !5
  %3087 = call ptr @s2n_strerror(i32 noundef %3086, ptr noundef @.str.33)
  %3088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3089 = load i32, ptr %3088, align 4, !tbaa !5
  %3090 = call ptr @s2n_strerror_debug(i32 noundef %3089, ptr noundef @.str.33)
  %3091 = call ptr @__errno_location() #11
  %3092 = load i32, ptr %3091, align 4, !tbaa !5
  %3093 = call ptr @strerror(i32 noundef %3092) #10
  %3094 = call ptr @__errno_location() #11
  %3095 = load i32, ptr %3094, align 4, !tbaa !5
  %3096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3083, ptr noundef @.str.31, i32 noundef %3084, ptr noundef @.str.73, ptr noundef @.str.30, i32 noundef 149, ptr noundef %3087, ptr noundef %3090, ptr noundef %3093, i32 noundef %3095) #10
  br label %3114

3097:                                             ; preds = %3075, %3068
  %3098 = load i32, ptr %65, align 4, !tbaa !5
  %3099 = call ptr @__errno_location() #11
  store i32 %3098, ptr %3099, align 4, !tbaa !5
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = load i32, ptr @test_count, align 4, !tbaa !5
  %3102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3103 = load i32, ptr %3102, align 4, !tbaa !5
  %3104 = call ptr @s2n_strerror(i32 noundef %3103, ptr noundef @.str.33)
  %3105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = call ptr @s2n_strerror_debug(i32 noundef %3106, ptr noundef @.str.33)
  %3108 = call ptr @__errno_location() #11
  %3109 = load i32, ptr %3108, align 4, !tbaa !5
  %3110 = call ptr @strerror(i32 noundef %3109) #10
  %3111 = call ptr @__errno_location() #11
  %3112 = load i32, ptr %3111, align 4, !tbaa !5
  %3113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3100, ptr noundef @.str.34, i32 noundef %3101, ptr noundef @.str.73, ptr noundef @.str.30, i32 noundef 149, ptr noundef %3104, ptr noundef %3107, ptr noundef %3110, i32 noundef %3112) #10
  br label %3114

3114:                                             ; preds = %3097, %3080
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %3115

3115:                                             ; preds = %3114
  br label %3116

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

3117:                                             ; No predecessors!
  br label %3118

3118:                                             ; preds = %3117
  br label %3119

3119:                                             ; preds = %3118, %3060
  br label %3120

3120:                                             ; preds = %3119
  br label %3121

3121:                                             ; preds = %3120
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122
  %3124 = load i32, ptr @test_count, align 4, !tbaa !5
  %3125 = add nsw i32 %3124, 1
  store i32 %3125, ptr @test_count, align 4, !tbaa !5
  %3126 = getelementptr inbounds %struct.s2n_blob, ptr %63, i32 0, i32 1
  %3127 = load i32, ptr %3126, align 8, !tbaa !49
  %3128 = getelementptr inbounds %struct.s2n_blob, ptr %60, i32 0, i32 1
  %3129 = load i32, ptr %3128, align 8, !tbaa !49
  %3130 = icmp eq i32 %3127, %3129
  br i1 %3130, label %3184, label %3131

3131:                                             ; preds = %3123
  br label %3132

3132:                                             ; preds = %3131
  br label %3133

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

3140:                                             ; preds = %3133
  %3141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3142 = call i32 @fileno(ptr noundef %3141) #10
  %3143 = call i32 @isatty(i32 noundef %3142) #10
  %3144 = icmp ne i32 %3143, 0
  br i1 %3144, label %3145, label %3162

3145:                                             ; preds = %3140
  %3146 = load i32, ptr %66, align 4, !tbaa !5
  %3147 = call ptr @__errno_location() #11
  store i32 %3146, ptr %3147, align 4, !tbaa !5
  %3148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3149 = load i32, ptr @test_count, align 4, !tbaa !5
  %3150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  %3152 = call ptr @s2n_strerror(i32 noundef %3151, ptr noundef @.str.33)
  %3153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3154 = load i32, ptr %3153, align 4, !tbaa !5
  %3155 = call ptr @s2n_strerror_debug(i32 noundef %3154, ptr noundef @.str.33)
  %3156 = call ptr @__errno_location() #11
  %3157 = load i32, ptr %3156, align 4, !tbaa !5
  %3158 = call ptr @strerror(i32 noundef %3157) #10
  %3159 = call ptr @__errno_location() #11
  %3160 = load i32, ptr %3159, align 4, !tbaa !5
  %3161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3148, ptr noundef @.str.31, i32 noundef %3149, ptr noundef @.str.74, ptr noundef @.str.30, i32 noundef 151, ptr noundef %3152, ptr noundef %3155, ptr noundef %3158, i32 noundef %3160) #10
  br label %3179

3162:                                             ; preds = %3140, %3133
  %3163 = load i32, ptr %66, align 4, !tbaa !5
  %3164 = call ptr @__errno_location() #11
  store i32 %3163, ptr %3164, align 4, !tbaa !5
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = load i32, ptr @test_count, align 4, !tbaa !5
  %3167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3168 = load i32, ptr %3167, align 4, !tbaa !5
  %3169 = call ptr @s2n_strerror(i32 noundef %3168, ptr noundef @.str.33)
  %3170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3171 = load i32, ptr %3170, align 4, !tbaa !5
  %3172 = call ptr @s2n_strerror_debug(i32 noundef %3171, ptr noundef @.str.33)
  %3173 = call ptr @__errno_location() #11
  %3174 = load i32, ptr %3173, align 4, !tbaa !5
  %3175 = call ptr @strerror(i32 noundef %3174) #10
  %3176 = call ptr @__errno_location() #11
  %3177 = load i32, ptr %3176, align 4, !tbaa !5
  %3178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3165, ptr noundef @.str.34, i32 noundef %3166, ptr noundef @.str.74, ptr noundef @.str.30, i32 noundef 151, ptr noundef %3169, ptr noundef %3172, ptr noundef %3175, i32 noundef %3177) #10
  br label %3179

3179:                                             ; preds = %3162, %3145
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %3180

3180:                                             ; preds = %3179
  br label %3181

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

3182:                                             ; No predecessors!
  br label %3183

3183:                                             ; preds = %3182
  br label %3184

3184:                                             ; preds = %3183, %3123
  br label %3185

3185:                                             ; preds = %3184
  br label %3186

3186:                                             ; preds = %3185
  br label %3187

3187:                                             ; preds = %3186
  %3188 = getelementptr inbounds %struct.s2n_blob, ptr %63, i32 0, i32 1
  %3189 = load i32, ptr %3188, align 8, !tbaa !49
  %3190 = icmp ne i32 %3189, 0
  br i1 %3190, label %3191, label %3260

3191:                                             ; preds = %3187
  br label %3192

3192:                                             ; preds = %3191
  %3193 = load i32, ptr @test_count, align 4, !tbaa !5
  %3194 = add nsw i32 %3193, 1
  store i32 %3194, ptr @test_count, align 4, !tbaa !5
  %3195 = getelementptr inbounds %struct.s2n_blob, ptr %63, i32 0, i32 0
  %3196 = load ptr, ptr %3195, align 8, !tbaa !50
  %3197 = getelementptr inbounds %struct.s2n_blob, ptr %60, i32 0, i32 0
  %3198 = load ptr, ptr %3197, align 8, !tbaa !50
  %3199 = getelementptr inbounds %struct.s2n_blob, ptr %63, i32 0, i32 1
  %3200 = load i32, ptr %3199, align 8, !tbaa !49
  %3201 = zext i32 %3200 to i64
  %3202 = call i32 @memcmp(ptr noundef %3196, ptr noundef %3198, i64 noundef %3201) #13
  %3203 = icmp eq i32 %3202, 0
  br i1 %3203, label %3257, label %3204

3204:                                             ; preds = %3192
  br label %3205

3205:                                             ; preds = %3204
  br label %3206

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

3213:                                             ; preds = %3206
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = call i32 @fileno(ptr noundef %3214) #10
  %3216 = call i32 @isatty(i32 noundef %3215) #10
  %3217 = icmp ne i32 %3216, 0
  br i1 %3217, label %3218, label %3235

3218:                                             ; preds = %3213
  %3219 = load i32, ptr %67, align 4, !tbaa !5
  %3220 = call ptr @__errno_location() #11
  store i32 %3219, ptr %3220, align 4, !tbaa !5
  %3221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3222 = load i32, ptr @test_count, align 4, !tbaa !5
  %3223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  %3225 = call ptr @s2n_strerror(i32 noundef %3224, ptr noundef @.str.33)
  %3226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = call ptr @s2n_strerror_debug(i32 noundef %3227, ptr noundef @.str.33)
  %3229 = call ptr @__errno_location() #11
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  %3231 = call ptr @strerror(i32 noundef %3230) #10
  %3232 = call ptr @__errno_location() #11
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3221, ptr noundef @.str.31, i32 noundef %3222, ptr noundef @.str.75, ptr noundef @.str.30, i32 noundef 151, ptr noundef %3225, ptr noundef %3228, ptr noundef %3231, i32 noundef %3233) #10
  br label %3252

3235:                                             ; preds = %3213, %3206
  %3236 = load i32, ptr %67, align 4, !tbaa !5
  %3237 = call ptr @__errno_location() #11
  store i32 %3236, ptr %3237, align 4, !tbaa !5
  %3238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3239 = load i32, ptr @test_count, align 4, !tbaa !5
  %3240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3241 = load i32, ptr %3240, align 4, !tbaa !5
  %3242 = call ptr @s2n_strerror(i32 noundef %3241, ptr noundef @.str.33)
  %3243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3244 = load i32, ptr %3243, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror_debug(i32 noundef %3244, ptr noundef @.str.33)
  %3246 = call ptr @__errno_location() #11
  %3247 = load i32, ptr %3246, align 4, !tbaa !5
  %3248 = call ptr @strerror(i32 noundef %3247) #10
  %3249 = call ptr @__errno_location() #11
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3238, ptr noundef @.str.34, i32 noundef %3239, ptr noundef @.str.75, ptr noundef @.str.30, i32 noundef 151, ptr noundef %3242, ptr noundef %3245, ptr noundef %3248, i32 noundef %3250) #10
  br label %3252

3252:                                             ; preds = %3235, %3218
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %3253

3253:                                             ; preds = %3252
  br label %3254

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

3255:                                             ; No predecessors!
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

3257:                                             ; preds = %3256, %3192
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

3259:                                             ; preds = %3258
  br label %3260

3260:                                             ; preds = %3259, %3187
  br label %3261

3261:                                             ; preds = %3260
  br label %3262

3262:                                             ; preds = %3261
  br label %3263

3263:                                             ; preds = %3262
  br label %3264

3264:                                             ; preds = %3263
  br label %3265

3265:                                             ; preds = %3264
  %3266 = load i32, ptr @test_count, align 4, !tbaa !5
  %3267 = add nsw i32 %3266, 1
  store i32 %3267, ptr @test_count, align 4, !tbaa !5
  %3268 = load ptr, ptr %18, align 8, !tbaa !9
  %3269 = call i32 @s2n_connection_free(ptr noundef %3268)
  %3270 = icmp eq i32 %3269, -1
  br i1 %3270, label %3271, label %3324

3271:                                             ; preds = %3265
  br label %3272

3272:                                             ; preds = %3271
  br label %3273

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

3280:                                             ; preds = %3273
  %3281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3282 = call i32 @fileno(ptr noundef %3281) #10
  %3283 = call i32 @isatty(i32 noundef %3282) #10
  %3284 = icmp ne i32 %3283, 0
  br i1 %3284, label %3285, label %3302

3285:                                             ; preds = %3280
  %3286 = load i32, ptr %68, align 4, !tbaa !5
  %3287 = call ptr @__errno_location() #11
  store i32 %3286, ptr %3287, align 4, !tbaa !5
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = load i32, ptr @test_count, align 4, !tbaa !5
  %3290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3291 = load i32, ptr %3290, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror(i32 noundef %3291, ptr noundef @.str.33)
  %3293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @s2n_strerror_debug(i32 noundef %3294, ptr noundef @.str.33)
  %3296 = call ptr @__errno_location() #11
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call ptr @strerror(i32 noundef %3297) #10
  %3299 = call ptr @__errno_location() #11
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  %3301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3288, ptr noundef @.str.31, i32 noundef %3289, ptr noundef @.str.58, ptr noundef @.str.30, i32 noundef 153, ptr noundef %3292, ptr noundef %3295, ptr noundef %3298, i32 noundef %3300) #10
  br label %3319

3302:                                             ; preds = %3280, %3273
  %3303 = load i32, ptr %68, align 4, !tbaa !5
  %3304 = call ptr @__errno_location() #11
  store i32 %3303, ptr %3304, align 4, !tbaa !5
  %3305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3306 = load i32, ptr @test_count, align 4, !tbaa !5
  %3307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = call ptr @s2n_strerror(i32 noundef %3308, ptr noundef @.str.33)
  %3310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call ptr @s2n_strerror_debug(i32 noundef %3311, ptr noundef @.str.33)
  %3313 = call ptr @__errno_location() #11
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call ptr @strerror(i32 noundef %3314) #10
  %3316 = call ptr @__errno_location() #11
  %3317 = load i32, ptr %3316, align 4, !tbaa !5
  %3318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3305, ptr noundef @.str.34, i32 noundef %3306, ptr noundef @.str.58, ptr noundef @.str.30, i32 noundef 153, ptr noundef %3309, ptr noundef %3312, ptr noundef %3315, i32 noundef %3317) #10
  br label %3319

3319:                                             ; preds = %3302, %3285
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %3320

3320:                                             ; preds = %3319
  br label %3321

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

3322:                                             ; No predecessors!
  br label %3323

3323:                                             ; preds = %3322
  br label %3324

3324:                                             ; preds = %3323, %3265
  br label %3325

3325:                                             ; preds = %3324
  br label %3326

3326:                                             ; preds = %3325
  br label %3327

3327:                                             ; preds = %3326
  %3328 = load i32, ptr @test_count, align 4, !tbaa !5
  %3329 = add nsw i32 %3328, 1
  store i32 %3329, ptr @test_count, align 4, !tbaa !5
  %3330 = load ptr, ptr %51, align 8, !tbaa !9
  %3331 = call i32 @s2n_connection_free(ptr noundef %3330)
  %3332 = icmp eq i32 %3331, -1
  br i1 %3332, label %3333, label %3386

3333:                                             ; preds = %3327
  br label %3334

3334:                                             ; preds = %3333
  br label %3335

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

3342:                                             ; preds = %3335
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @fileno(ptr noundef %3343) #10
  %3345 = call i32 @isatty(i32 noundef %3344) #10
  %3346 = icmp ne i32 %3345, 0
  br i1 %3346, label %3347, label %3364

3347:                                             ; preds = %3342
  %3348 = load i32, ptr %69, align 4, !tbaa !5
  %3349 = call ptr @__errno_location() #11
  store i32 %3348, ptr %3349, align 4, !tbaa !5
  %3350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3353 = load i32, ptr %3352, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror(i32 noundef %3353, ptr noundef @.str.33)
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror_debug(i32 noundef %3356, ptr noundef @.str.33)
  %3358 = call ptr @__errno_location() #11
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #10
  %3361 = call ptr @__errno_location() #11
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3350, ptr noundef @.str.31, i32 noundef %3351, ptr noundef @.str.76, ptr noundef @.str.30, i32 noundef 154, ptr noundef %3354, ptr noundef %3357, ptr noundef %3360, i32 noundef %3362) #10
  br label %3381

3364:                                             ; preds = %3342, %3335
  %3365 = load i32, ptr %69, align 4, !tbaa !5
  %3366 = call ptr @__errno_location() #11
  store i32 %3365, ptr %3366, align 4, !tbaa !5
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = load i32, ptr @test_count, align 4, !tbaa !5
  %3369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3370 = load i32, ptr %3369, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror(i32 noundef %3370, ptr noundef @.str.33)
  %3372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror_debug(i32 noundef %3373, ptr noundef @.str.33)
  %3375 = call ptr @__errno_location() #11
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call ptr @strerror(i32 noundef %3376) #10
  %3378 = call ptr @__errno_location() #11
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3367, ptr noundef @.str.34, i32 noundef %3368, ptr noundef @.str.76, ptr noundef @.str.30, i32 noundef 154, ptr noundef %3371, ptr noundef %3374, ptr noundef %3377, i32 noundef %3379) #10
  br label %3381

3381:                                             ; preds = %3364, %3347
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %3382

3382:                                             ; preds = %3381
  br label %3383

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

3384:                                             ; No predecessors!
  br label %3385

3385:                                             ; preds = %3384
  br label %3386

3386:                                             ; preds = %3385, %3327
  br label %3387

3387:                                             ; preds = %3386
  br label %3388

3388:                                             ; preds = %3387
  %3389 = call i32 @s2n_free(ptr noundef %63)
  call void @llvm.lifetime.end.p0(i64 24, ptr %63) #10
  %3390 = call i32 @s2n_free(ptr noundef %60)
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  br label %3391

3391:                                             ; preds = %3388
  %3392 = load i32, ptr @test_count, align 4, !tbaa !5
  %3393 = add nsw i32 %3392, 1
  store i32 %3393, ptr @test_count, align 4, !tbaa !5
  %3394 = load ptr, ptr %11, align 8, !tbaa !9
  %3395 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %3394)
  %3396 = icmp eq i32 %3395, -1
  br i1 %3396, label %3397, label %3450

3397:                                             ; preds = %3391
  br label %3398

3398:                                             ; preds = %3397
  br label %3399

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

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

3411:                                             ; preds = %3406
  %3412 = load i32, ptr %70, align 4, !tbaa !5
  %3413 = call ptr @__errno_location() #11
  store i32 %3412, ptr %3413, align 4, !tbaa !5
  %3414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3415 = load i32, ptr @test_count, align 4, !tbaa !5
  %3416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call ptr @s2n_strerror(i32 noundef %3417, ptr noundef @.str.33)
  %3419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3420 = load i32, ptr %3419, align 4, !tbaa !5
  %3421 = call ptr @s2n_strerror_debug(i32 noundef %3420, ptr noundef @.str.33)
  %3422 = call ptr @__errno_location() #11
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  %3424 = call ptr @strerror(i32 noundef %3423) #10
  %3425 = call ptr @__errno_location() #11
  %3426 = load i32, ptr %3425, align 4, !tbaa !5
  %3427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3414, ptr noundef @.str.31, i32 noundef %3415, ptr noundef @.str.77, ptr noundef @.str.30, i32 noundef 157, ptr noundef %3418, ptr noundef %3421, ptr noundef %3424, i32 noundef %3426) #10
  br label %3445

3428:                                             ; preds = %3406, %3399
  %3429 = load i32, ptr %70, align 4, !tbaa !5
  %3430 = call ptr @__errno_location() #11
  store i32 %3429, ptr %3430, align 4, !tbaa !5
  %3431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3432 = load i32, ptr @test_count, align 4, !tbaa !5
  %3433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3434 = load i32, ptr %3433, align 4, !tbaa !5
  %3435 = call ptr @s2n_strerror(i32 noundef %3434, ptr noundef @.str.33)
  %3436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call ptr @s2n_strerror_debug(i32 noundef %3437, ptr noundef @.str.33)
  %3439 = call ptr @__errno_location() #11
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call ptr @strerror(i32 noundef %3440) #10
  %3442 = call ptr @__errno_location() #11
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3431, ptr noundef @.str.34, i32 noundef %3432, ptr noundef @.str.77, ptr noundef @.str.30, i32 noundef 157, ptr noundef %3435, ptr noundef %3438, ptr noundef %3441, i32 noundef %3443) #10
  br label %3445

3445:                                             ; preds = %3428, %3411
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %3446

3446:                                             ; preds = %3445
  br label %3447

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

3448:                                             ; No predecessors!
  br label %3449

3449:                                             ; preds = %3448
  br label %3450

3450:                                             ; preds = %3449, %3391
  br label %3451

3451:                                             ; preds = %3450
  br label %3452

3452:                                             ; preds = %3451
  br label %3453

3453:                                             ; preds = %3452
  %3454 = load i32, ptr @test_count, align 4, !tbaa !5
  %3455 = add nsw i32 %3454, 1
  store i32 %3455, ptr @test_count, align 4, !tbaa !5
  %3456 = load ptr, ptr %14, align 8, !tbaa !9
  %3457 = call i32 @s2n_config_free(ptr noundef %3456)
  %3458 = icmp eq i32 %3457, -1
  br i1 %3458, label %3459, label %3512

3459:                                             ; preds = %3453
  br label %3460

3460:                                             ; preds = %3459
  br label %3461

3461:                                             ; preds = %3460
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %3462 = call ptr @__errno_location() #11
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  store i32 %3463, ptr %71, align 4, !tbaa !5
  %3464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3465 = call i32 @s2n_print_stacktrace(ptr noundef %3464)
  %3466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3467 = trunc i8 %3466 to i1
  br i1 %3467, label %3468, label %3490

3468:                                             ; preds = %3461
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = call i32 @fileno(ptr noundef %3469) #10
  %3471 = call i32 @isatty(i32 noundef %3470) #10
  %3472 = icmp ne i32 %3471, 0
  br i1 %3472, label %3473, label %3490

3473:                                             ; preds = %3468
  %3474 = load i32, ptr %71, align 4, !tbaa !5
  %3475 = call ptr @__errno_location() #11
  store i32 %3474, ptr %3475, align 4, !tbaa !5
  %3476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3477 = load i32, ptr @test_count, align 4, !tbaa !5
  %3478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3479 = load i32, ptr %3478, align 4, !tbaa !5
  %3480 = call ptr @s2n_strerror(i32 noundef %3479, ptr noundef @.str.33)
  %3481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3482 = load i32, ptr %3481, align 4, !tbaa !5
  %3483 = call ptr @s2n_strerror_debug(i32 noundef %3482, ptr noundef @.str.33)
  %3484 = call ptr @__errno_location() #11
  %3485 = load i32, ptr %3484, align 4, !tbaa !5
  %3486 = call ptr @strerror(i32 noundef %3485) #10
  %3487 = call ptr @__errno_location() #11
  %3488 = load i32, ptr %3487, align 4, !tbaa !5
  %3489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3476, ptr noundef @.str.31, i32 noundef %3477, ptr noundef @.str.78, ptr noundef @.str.30, i32 noundef 158, ptr noundef %3480, ptr noundef %3483, ptr noundef %3486, i32 noundef %3488) #10
  br label %3507

3490:                                             ; preds = %3468, %3461
  %3491 = load i32, ptr %71, align 4, !tbaa !5
  %3492 = call ptr @__errno_location() #11
  store i32 %3491, ptr %3492, align 4, !tbaa !5
  %3493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3494 = load i32, ptr @test_count, align 4, !tbaa !5
  %3495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3496 = load i32, ptr %3495, align 4, !tbaa !5
  %3497 = call ptr @s2n_strerror(i32 noundef %3496, ptr noundef @.str.33)
  %3498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call ptr @s2n_strerror_debug(i32 noundef %3499, ptr noundef @.str.33)
  %3501 = call ptr @__errno_location() #11
  %3502 = load i32, ptr %3501, align 4, !tbaa !5
  %3503 = call ptr @strerror(i32 noundef %3502) #10
  %3504 = call ptr @__errno_location() #11
  %3505 = load i32, ptr %3504, align 4, !tbaa !5
  %3506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3493, ptr noundef @.str.34, i32 noundef %3494, ptr noundef @.str.78, ptr noundef @.str.30, i32 noundef 158, ptr noundef %3497, ptr noundef %3500, ptr noundef %3503, i32 noundef %3505) #10
  br label %3507

3507:                                             ; preds = %3490, %3473
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3508

3508:                                             ; preds = %3507
  br label %3509

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

3510:                                             ; No predecessors!
  br label %3511

3511:                                             ; preds = %3510
  br label %3512

3512:                                             ; preds = %3511, %3453
  br label %3513

3513:                                             ; preds = %3512
  br label %3514

3514:                                             ; preds = %3513
  br label %3515

3515:                                             ; preds = %3514
  br label %3516

3516:                                             ; preds = %3515
  %3517 = call i32 @s2n_cleanup()
  %3518 = icmp eq i32 %3517, -1
  br i1 %3518, label %3519, label %3572

3519:                                             ; preds = %3516
  br label %3520

3520:                                             ; preds = %3519
  br label %3521

3521:                                             ; preds = %3520
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %3522 = call ptr @__errno_location() #11
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  store i32 %3523, ptr %72, align 4, !tbaa !5
  %3524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3525 = call i32 @s2n_print_stacktrace(ptr noundef %3524)
  %3526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3527 = trunc i8 %3526 to i1
  br i1 %3527, label %3528, label %3550

3528:                                             ; preds = %3521
  %3529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3530 = call i32 @fileno(ptr noundef %3529) #10
  %3531 = call i32 @isatty(i32 noundef %3530) #10
  %3532 = icmp ne i32 %3531, 0
  br i1 %3532, label %3533, label %3550

3533:                                             ; preds = %3528
  %3534 = load i32, ptr %72, align 4, !tbaa !5
  %3535 = call ptr @__errno_location() #11
  store i32 %3534, ptr %3535, align 4, !tbaa !5
  %3536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3537 = load i32, ptr @test_count, align 4, !tbaa !5
  %3538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3539 = load i32, ptr %3538, align 4, !tbaa !5
  %3540 = call ptr @s2n_strerror(i32 noundef %3539, ptr noundef @.str.33)
  %3541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call ptr @s2n_strerror_debug(i32 noundef %3542, ptr noundef @.str.33)
  %3544 = call ptr @__errno_location() #11
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = call ptr @strerror(i32 noundef %3545) #10
  %3547 = call ptr @__errno_location() #11
  %3548 = load i32, ptr %3547, align 4, !tbaa !5
  %3549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3536, ptr noundef @.str.31, i32 noundef %3537, ptr noundef @.str.37, ptr noundef @.str.30, i32 noundef 160, ptr noundef %3540, ptr noundef %3543, ptr noundef %3546, i32 noundef %3548) #10
  br label %3567

3550:                                             ; preds = %3528, %3521
  %3551 = load i32, ptr %72, align 4, !tbaa !5
  %3552 = call ptr @__errno_location() #11
  store i32 %3551, ptr %3552, align 4, !tbaa !5
  %3553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3554 = load i32, ptr @test_count, align 4, !tbaa !5
  %3555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3556 = load i32, ptr %3555, align 4, !tbaa !5
  %3557 = call ptr @s2n_strerror(i32 noundef %3556, ptr noundef @.str.33)
  %3558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call ptr @s2n_strerror_debug(i32 noundef %3559, ptr noundef @.str.33)
  %3561 = call ptr @__errno_location() #11
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call ptr @strerror(i32 noundef %3562) #10
  %3564 = call ptr @__errno_location() #11
  %3565 = load i32, ptr %3564, align 4, !tbaa !5
  %3566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3553, ptr noundef @.str.34, i32 noundef %3554, ptr noundef @.str.37, ptr noundef @.str.30, i32 noundef 160, ptr noundef %3557, ptr noundef %3560, ptr noundef %3563, i32 noundef %3565) #10
  br label %3567

3567:                                             ; preds = %3550, %3533
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %3568

3568:                                             ; preds = %3567
  br label %3569

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

3570:                                             ; No predecessors!
  br label %3571

3571:                                             ; preds = %3570
  br label %3572

3572:                                             ; preds = %3571, %3516
  br label %3573

3573:                                             ; preds = %3572
  br label %3574

3574:                                             ; preds = %3573
  br label %3575

3575:                                             ; preds = %3574
  br label %3576

3576:                                             ; preds = %3575
  %3577 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3578 = icmp eq i32 %3577, -1
  br i1 %3578, label %3579, label %3632

3579:                                             ; preds = %3576
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

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

3588:                                             ; preds = %3581
  %3589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3590 = call i32 @fileno(ptr noundef %3589) #10
  %3591 = call i32 @isatty(i32 noundef %3590) #10
  %3592 = icmp ne i32 %3591, 0
  br i1 %3592, label %3593, label %3610

3593:                                             ; preds = %3588
  %3594 = load i32, ptr %73, align 4, !tbaa !5
  %3595 = call ptr @__errno_location() #11
  store i32 %3594, ptr %3595, align 4, !tbaa !5
  %3596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3597 = load i32, ptr @test_count, align 4, !tbaa !5
  %3598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3599 = load i32, ptr %3598, align 4, !tbaa !5
  %3600 = call ptr @s2n_strerror(i32 noundef %3599, ptr noundef @.str.33)
  %3601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3602 = load i32, ptr %3601, align 4, !tbaa !5
  %3603 = call ptr @s2n_strerror_debug(i32 noundef %3602, ptr noundef @.str.33)
  %3604 = call ptr @__errno_location() #11
  %3605 = load i32, ptr %3604, align 4, !tbaa !5
  %3606 = call ptr @strerror(i32 noundef %3605) #10
  %3607 = call ptr @__errno_location() #11
  %3608 = load i32, ptr %3607, align 4, !tbaa !5
  %3609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3596, ptr noundef @.str.31, i32 noundef %3597, ptr noundef @.str.38, ptr noundef @.str.30, i32 noundef 160, ptr noundef %3600, ptr noundef %3603, ptr noundef %3606, i32 noundef %3608) #10
  br label %3627

3610:                                             ; preds = %3588, %3581
  %3611 = load i32, ptr %73, align 4, !tbaa !5
  %3612 = call ptr @__errno_location() #11
  store i32 %3611, ptr %3612, align 4, !tbaa !5
  %3613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3614 = load i32, ptr @test_count, align 4, !tbaa !5
  %3615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3616 = load i32, ptr %3615, align 4, !tbaa !5
  %3617 = call ptr @s2n_strerror(i32 noundef %3616, ptr noundef @.str.33)
  %3618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3619 = load i32, ptr %3618, align 4, !tbaa !5
  %3620 = call ptr @s2n_strerror_debug(i32 noundef %3619, ptr noundef @.str.33)
  %3621 = call ptr @__errno_location() #11
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call ptr @strerror(i32 noundef %3622) #10
  %3624 = call ptr @__errno_location() #11
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3613, ptr noundef @.str.34, i32 noundef %3614, ptr noundef @.str.38, ptr noundef @.str.30, i32 noundef 160, ptr noundef %3617, ptr noundef %3620, ptr noundef %3623, i32 noundef %3625) #10
  br label %3627

3627:                                             ; preds = %3610, %3593
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3628

3628:                                             ; preds = %3627
  br label %3629

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

3630:                                             ; No predecessors!
  br label %3631

3631:                                             ; preds = %3630
  br label %3632

3632:                                             ; preds = %3631, %3576
  br label %3633

3633:                                             ; preds = %3632
  br label %3634

3634:                                             ; preds = %3633
  %3635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3636 = trunc i8 %3635 to i1
  br i1 %3636, label %3637, label %3653

3637:                                             ; preds = %3634
  %3638 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3639 = call i32 @fileno(ptr noundef %3638) #10
  %3640 = call i32 @isatty(i32 noundef %3639) #10
  %3641 = icmp ne i32 %3640, 0
  br i1 %3641, label %3642, label %3653

3642:                                             ; preds = %3637
  %3643 = load i32, ptr @test_count, align 4, !tbaa !5
  %3644 = icmp ne i32 %3643, 0
  br i1 %3644, label %3645, label %3649

3645:                                             ; preds = %3642
  %3646 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3647 = load i32, ptr @test_count, align 4, !tbaa !5
  %3648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3646, ptr noundef @.str.39, i32 noundef %3647) #10
  br label %3652

3649:                                             ; preds = %3642
  %3650 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3650, ptr noundef @.str.40) #10
  br label %3652

3652:                                             ; preds = %3649, %3645
  br label %3664

3653:                                             ; preds = %3637, %3634
  %3654 = load i32, ptr @test_count, align 4, !tbaa !5
  %3655 = icmp ne i32 %3654, 0
  br i1 %3655, label %3656, label %3660

3656:                                             ; preds = %3653
  %3657 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3658 = load i32, ptr @test_count, align 4, !tbaa !5
  %3659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3657, ptr noundef @.str.41, i32 noundef %3658) #10
  br label %3663

3660:                                             ; preds = %3653
  %3661 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3661, ptr noundef @.str.42) #10
  br label %3663

3663:                                             ; preds = %3660, %3656
  br label %3664

3664:                                             ; preds = %3663, %3652
  store i32 0, ptr %3, align 4
  store i32 1, ptr %74, align 4
  br label %3669

3665:                                             ; No predecessors!
  br label %3666

3666:                                             ; preds = %3665
  br label %3667

3667:                                             ; preds = %3666
  br label %3668

3668:                                             ; preds = %3667
  store i32 0, ptr %74, align 4
  br label %3669

3669:                                             ; preds = %3668, %3664
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  %3670 = load i32, ptr %74, align 4
  switch i32 %3670, label %3673 [
    i32 0, label %3671
    i32 1, label %3671
  ]

3671:                                             ; preds = %3669, %3669, %398
  %3672 = load i32, ptr %3, align 4
  ret i32 %3672

3673:                                             ; preds = %3669
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_cleanup() #2

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

declare ptr @s2n_config_new() #2

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

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

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_ecc_evp_generate_ephemeral_key(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) #8

declare i32 @s2n_free(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_connection_free(ptr noundef) #2

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

declare i32 @s2n_client_hello_send(ptr noundef) #2

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

declare i32 @s2n_client_hello_recv(ptr noundef) #2

declare i32 @s2n_server_hello_send(ptr noundef) #2

declare i32 @s2n_server_hello_recv(ptr noundef) #2

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !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 = !{!43, !10, i64 8}
!43 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!44 = !{!16, !10, i64 704}
!45 = !{i64 0, i64 8, !9, i64 8, i64 8, !9}
!46 = !{!16, !10, i64 656}
!47 = !{!16, !6, i64 2044}
!48 = !{!16, !6, i64 2040}
!49 = !{!25, !6, i64 8}
!50 = !{!25, !10, i64 0}


; 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_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [95 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.31 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [52 x i8], align 1

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

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

declare i32 @s2n_connection_get_ecc_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_tls13_compute_shared_secret(ptr noundef, ptr noundef) local_unnamed_addr #4

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

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

25:                                               ; preds = %18
  %26 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27 = tail call i32 @fileno(ptr noundef %26) #10
  %28 = tail call i32 @isatty(i32 noundef %27) #10
  %.not232 = icmp eq i32 %28, 0
  br i1 %.not232, label %29, label %30

29:                                               ; preds = %25, %18
  br label %30

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

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

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

54:                                               ; preds = %47
  %55 = load ptr, ptr @stderr, align 8, !tbaa !9
  %56 = tail call i32 @fileno(ptr noundef %55) #10
  %57 = tail call i32 @isatty(i32 noundef %56) #10
  %.not231 = icmp eq i32 %57, 0
  br i1 %.not231, label %58, label %59

58:                                               ; preds = %54, %47
  br label %59

59:                                               ; preds = %54, %58
  %.str.34.sink243 = phi ptr [ @.str.34, %58 ], [ @.str.31, %54 ]
  store i32 %49, ptr %48, align 4, !tbaa !5
  %60 = load ptr, ptr @stderr, align 8, !tbaa !9
  %61 = load i32, ptr @test_count, align 4, !tbaa !5
  %62 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %63 = load i32, ptr %62, align 4, !tbaa !5
  %64 = tail call ptr @s2n_strerror(i32 noundef %63, ptr noundef nonnull @.str.33) #10
  %65 = load i32, ptr %62, align 4, !tbaa !5
  %66 = tail call ptr @s2n_strerror_debug(i32 noundef %65, ptr noundef nonnull @.str.33) #10
  %67 = load i32, ptr %48, align 4, !tbaa !5
  %68 = tail call ptr @strerror(i32 noundef %67) #10
  %69 = load i32, ptr %48, align 4, !tbaa !5
  %70 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %60, ptr noundef nonnull %.str.34.sink243, i32 noundef %61, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.30, i32 noundef 27, ptr noundef %64, ptr noundef %66, ptr noundef %68, i32 noundef %69) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

71:                                               ; preds = %42
  %72 = tail call i32 @s2n_init() #10
  %73 = icmp eq i32 %72, -1
  br i1 %73, label %74, label %98

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

81:                                               ; preds = %74
  %82 = load ptr, ptr @stderr, align 8, !tbaa !9
  %83 = tail call i32 @fileno(ptr noundef %82) #10
  %84 = tail call i32 @isatty(i32 noundef %83) #10
  %.not230 = icmp eq i32 %84, 0
  br i1 %.not230, label %85, label %86

85:                                               ; preds = %81, %74
  br label %86

86:                                               ; preds = %81, %85
  %.str.34.sink254 = phi ptr [ @.str.34, %85 ], [ @.str.31, %81 ]
  store i32 %76, ptr %75, align 4, !tbaa !5
  %87 = load ptr, ptr @stderr, align 8, !tbaa !9
  %88 = load i32, ptr @test_count, align 4, !tbaa !5
  %89 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %90 = load i32, ptr %89, align 4, !tbaa !5
  %91 = tail call ptr @s2n_strerror(i32 noundef %90, ptr noundef nonnull @.str.33) #10
  %92 = load i32, ptr %89, align 4, !tbaa !5
  %93 = tail call ptr @s2n_strerror_debug(i32 noundef %92, ptr noundef nonnull @.str.33) #10
  %94 = load i32, ptr %75, align 4, !tbaa !5
  %95 = tail call ptr @strerror(i32 noundef %94) #10
  %96 = load i32, ptr %75, align 4, !tbaa !5
  %97 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %87, ptr noundef nonnull %.str.34.sink254, i32 noundef %88, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.30, i32 noundef 27, ptr noundef %91, ptr noundef %93, ptr noundef %95, i32 noundef %96) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

98:                                               ; preds = %71
  %99 = tail call zeroext i1 (...) @s2n_is_tls13_fully_supported() #10
  br i1 %99, label %175, label %100

100:                                              ; preds = %98
  %101 = tail call i32 @s2n_cleanup() #10
  %102 = icmp eq i32 %101, -1
  br i1 %102, label %103, label %127

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

110:                                              ; preds = %103
  %111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %112 = tail call i32 @fileno(ptr noundef %111) #10
  %113 = tail call i32 @isatty(i32 noundef %112) #10
  %.not173 = icmp eq i32 %113, 0
  br i1 %.not173, label %114, label %115

114:                                              ; preds = %110, %103
  br label %115

115:                                              ; preds = %110, %114
  %.str.34.sink265 = phi ptr [ @.str.34, %114 ], [ @.str.31, %110 ]
  store i32 %105, ptr %104, align 4, !tbaa !5
  %116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %117 = load i32, ptr @test_count, align 4, !tbaa !5
  %118 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %119 = load i32, ptr %118, align 4, !tbaa !5
  %120 = tail call ptr @s2n_strerror(i32 noundef %119, ptr noundef nonnull @.str.33) #10
  %121 = load i32, ptr %118, align 4, !tbaa !5
  %122 = tail call ptr @s2n_strerror_debug(i32 noundef %121, ptr noundef nonnull @.str.33) #10
  %123 = load i32, ptr %104, align 4, !tbaa !5
  %124 = tail call ptr @strerror(i32 noundef %123) #10
  %125 = load i32, ptr %104, align 4, !tbaa !5
  %126 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %116, ptr noundef nonnull %.str.34.sink265, i32 noundef %117, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.30, i32 noundef 30, ptr noundef %120, ptr noundef %122, ptr noundef %124, i32 noundef %125) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

127:                                              ; preds = %100
  %128 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %129 = icmp eq i32 %128, -1
  br i1 %129, label %130, label %154

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

137:                                              ; preds = %130
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = tail call i32 @fileno(ptr noundef %138) #10
  %140 = tail call i32 @isatty(i32 noundef %139) #10
  %.not172 = icmp eq i32 %140, 0
  br i1 %.not172, label %141, label %142

141:                                              ; preds = %137, %130
  br label %142

142:                                              ; preds = %137, %141
  %.str.34.sink276 = phi ptr [ @.str.34, %141 ], [ @.str.31, %137 ]
  store i32 %132, ptr %131, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = load i32, ptr @test_count, align 4, !tbaa !5
  %145 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = tail call ptr @s2n_strerror(i32 noundef %146, ptr noundef nonnull @.str.33) #10
  %148 = load i32, ptr %145, align 4, !tbaa !5
  %149 = tail call ptr @s2n_strerror_debug(i32 noundef %148, ptr noundef nonnull @.str.33) #10
  %150 = load i32, ptr %131, align 4, !tbaa !5
  %151 = tail call ptr @strerror(i32 noundef %150) #10
  %152 = load i32, ptr %131, align 4, !tbaa !5
  %153 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %143, ptr noundef nonnull %.str.34.sink276, i32 noundef %144, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.30, i32 noundef 30, ptr noundef %147, ptr noundef %149, ptr noundef %151, i32 noundef %152) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

154:                                              ; preds = %127
  %155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %156 = trunc nuw i8 %155 to i1
  br i1 %156, label %157, label %168

157:                                              ; preds = %154
  %158 = load ptr, ptr @stdout, align 8, !tbaa !9
  %159 = tail call i32 @fileno(ptr noundef %158) #10
  %160 = tail call i32 @isatty(i32 noundef %159) #10
  %.not = icmp eq i32 %160, 0
  br i1 %.not, label %168, label %161

161:                                              ; preds = %157
  %162 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not171 = icmp eq i32 %162, 0
  %163 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not171, label %166, label %164

164:                                              ; preds = %161
  %165 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef nonnull @.str.39, i32 noundef %162) #10
  br label %1602

166:                                              ; preds = %161
  %167 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef nonnull @.str.40) #10
  br label %1602

168:                                              ; preds = %157, %154
  %169 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not170 = icmp eq i32 %169, 0
  %170 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not170, label %173, label %171

171:                                              ; preds = %168
  %172 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %170, ptr noundef nonnull @.str.41, i32 noundef %169) #10
  br label %1602

173:                                              ; preds = %168
  %174 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %170, ptr noundef nonnull @.str.42) #10
  br label %1602

175:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #10
  store ptr null, ptr %3, align 8, !tbaa !9
  %176 = load i32, ptr @test_count, align 4, !tbaa !5
  %177 = add nsw i32 %176, 1
  store i32 %177, ptr @test_count, align 4, !tbaa !5
  %178 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.44) #10
  %179 = icmp eq i32 %178, -1
  br i1 %179, label %180, label %204

180:                                              ; preds = %175
  %181 = tail call ptr @__errno_location() #11
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %184 = call i32 @s2n_print_stacktrace(ptr noundef %183) #10
  %185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %186 = trunc nuw i8 %185 to i1
  br i1 %186, label %187, label %191

187:                                              ; preds = %180
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = call i32 @fileno(ptr noundef %188) #10
  %190 = call i32 @isatty(i32 noundef %189) #10
  %.not229 = icmp eq i32 %190, 0
  br i1 %.not229, label %191, label %192

191:                                              ; preds = %187, %180
  br label %192

192:                                              ; preds = %187, %191
  %.str.34.sink287 = phi ptr [ @.str.34, %191 ], [ @.str.31, %187 ]
  store i32 %182, ptr %181, align 4, !tbaa !5
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = load i32, ptr @test_count, align 4, !tbaa !5
  %195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = call ptr @s2n_strerror(i32 noundef %196, ptr noundef nonnull @.str.33) #10
  %198 = load i32, ptr %195, align 4, !tbaa !5
  %199 = call ptr @s2n_strerror_debug(i32 noundef %198, ptr noundef nonnull @.str.33) #10
  %200 = load i32, ptr %181, align 4, !tbaa !5
  %201 = call ptr @strerror(i32 noundef %200) #10
  %202 = load i32, ptr %181, align 4, !tbaa !5
  %203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %193, ptr noundef nonnull %.str.34.sink287, i32 noundef %194, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.30, i32 noundef 35, ptr noundef %197, ptr noundef %199, ptr noundef %201, i32 noundef %202) #12
  call void @exit(i32 noundef 1) #13
  unreachable

204:                                              ; preds = %175
  %205 = load i32, ptr @test_count, align 4, !tbaa !5
  %206 = add nsw i32 %205, 1
  store i32 %206, ptr @test_count, align 4, !tbaa !5
  %207 = load ptr, ptr %3, align 8, !tbaa !9
  %208 = icmp eq ptr %207, null
  br i1 %208, label %209, label %233

209:                                              ; preds = %204
  %210 = tail call ptr @__errno_location() #11
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = call i32 @s2n_print_stacktrace(ptr noundef %212) #10
  %214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %215 = trunc nuw i8 %214 to i1
  br i1 %215, label %216, label %220

216:                                              ; preds = %209
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = call i32 @fileno(ptr noundef %217) #10
  %219 = call i32 @isatty(i32 noundef %218) #10
  %.not228 = icmp eq i32 %219, 0
  br i1 %.not228, label %220, label %221

220:                                              ; preds = %216, %209
  br label %221

221:                                              ; preds = %216, %220
  %.str.34.sink298 = phi ptr [ @.str.34, %220 ], [ @.str.31, %216 ]
  store i32 %211, ptr %210, align 4, !tbaa !5
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = load i32, ptr @test_count, align 4, !tbaa !5
  %224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = call ptr @s2n_strerror(i32 noundef %225, ptr noundef nonnull @.str.33) #10
  %227 = load i32, ptr %224, align 4, !tbaa !5
  %228 = call ptr @s2n_strerror_debug(i32 noundef %227, ptr noundef nonnull @.str.33) #10
  %229 = load i32, ptr %210, align 4, !tbaa !5
  %230 = call ptr @strerror(i32 noundef %229) #10
  %231 = load i32, ptr %210, align 4, !tbaa !5
  %232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %222, ptr noundef nonnull %.str.34.sink298, i32 noundef %223, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.30, i32 noundef 36, ptr noundef %226, ptr noundef %228, ptr noundef %230, i32 noundef %231) #12
  call void @exit(i32 noundef 1) #13
  unreachable

233:                                              ; preds = %204
  %234 = call ptr @s2n_config_new() #10
  %235 = load i32, ptr @test_count, align 4, !tbaa !5
  %236 = add nsw i32 %235, 1
  store i32 %236, ptr @test_count, align 4, !tbaa !5
  %237 = icmp eq ptr %234, null
  br i1 %237, label %238, label %262

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

245:                                              ; preds = %238
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = call i32 @fileno(ptr noundef %246) #10
  %248 = call i32 @isatty(i32 noundef %247) #10
  %.not227 = icmp eq i32 %248, 0
  br i1 %.not227, label %249, label %250

249:                                              ; preds = %245, %238
  br label %250

250:                                              ; preds = %245, %249
  %.str.34.sink309 = phi ptr [ @.str.34, %249 ], [ @.str.31, %245 ]
  store i32 %240, ptr %239, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = load i32, ptr @test_count, align 4, !tbaa !5
  %253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @s2n_strerror(i32 noundef %254, ptr noundef nonnull @.str.33) #10
  %256 = load i32, ptr %253, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror_debug(i32 noundef %256, ptr noundef nonnull @.str.33) #10
  %258 = load i32, ptr %239, align 4, !tbaa !5
  %259 = call ptr @strerror(i32 noundef %258) #10
  %260 = load i32, ptr %239, align 4, !tbaa !5
  %261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %251, ptr noundef nonnull %.str.34.sink309, i32 noundef %252, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.30, i32 noundef 39, ptr noundef %255, ptr noundef %257, ptr noundef %259, i32 noundef %260) #12
  call void @exit(i32 noundef 1) #13
  unreachable

262:                                              ; preds = %233
  %263 = add nsw i32 %235, 2
  store i32 %263, ptr @test_count, align 4, !tbaa !5
  %264 = load ptr, ptr %3, align 8, !tbaa !9
  %265 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %234, ptr noundef %264) #10
  %266 = icmp eq i32 %265, -1
  br i1 %266, label %267, label %291

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

274:                                              ; preds = %267
  %275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %276 = call i32 @fileno(ptr noundef %275) #10
  %277 = call i32 @isatty(i32 noundef %276) #10
  %.not226 = icmp eq i32 %277, 0
  br i1 %.not226, label %278, label %279

278:                                              ; preds = %274, %267
  br label %279

279:                                              ; preds = %274, %278
  %.str.34.sink320 = phi ptr [ @.str.34, %278 ], [ @.str.31, %274 ]
  store i32 %269, ptr %268, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = load i32, ptr @test_count, align 4, !tbaa !5
  %282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call ptr @s2n_strerror(i32 noundef %283, ptr noundef nonnull @.str.33) #10
  %285 = load i32, ptr %282, align 4, !tbaa !5
  %286 = call ptr @s2n_strerror_debug(i32 noundef %285, ptr noundef nonnull @.str.33) #10
  %287 = load i32, ptr %268, align 4, !tbaa !5
  %288 = call ptr @strerror(i32 noundef %287) #10
  %289 = load i32, ptr %268, align 4, !tbaa !5
  %290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef nonnull %.str.34.sink320, i32 noundef %281, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.30, i32 noundef 40, ptr noundef %284, ptr noundef %286, ptr noundef %288, i32 noundef %289) #12
  call void @exit(i32 noundef 1) #13
  unreachable

291:                                              ; preds = %262
  %292 = load i32, ptr @test_count, align 4, !tbaa !5
  %293 = add nsw i32 %292, 1
  store i32 %293, ptr @test_count, align 4, !tbaa !5
  %294 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %234, ptr noundef nonnull @.str.49) #10
  %295 = icmp eq i32 %294, -1
  br i1 %295, label %296, label %320

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

303:                                              ; preds = %296
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @fileno(ptr noundef %304) #10
  %306 = call i32 @isatty(i32 noundef %305) #10
  %.not225 = icmp eq i32 %306, 0
  br i1 %.not225, label %307, label %308

307:                                              ; preds = %303, %296
  br label %308

308:                                              ; preds = %303, %307
  %.str.34.sink331 = phi ptr [ @.str.34, %307 ], [ @.str.31, %303 ]
  store i32 %298, ptr %297, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = call ptr @s2n_strerror(i32 noundef %312, ptr noundef nonnull @.str.33) #10
  %314 = load i32, ptr %311, align 4, !tbaa !5
  %315 = call ptr @s2n_strerror_debug(i32 noundef %314, ptr noundef nonnull @.str.33) #10
  %316 = load i32, ptr %297, align 4, !tbaa !5
  %317 = call ptr @strerror(i32 noundef %316) #10
  %318 = load i32, ptr %297, align 4, !tbaa !5
  %319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef nonnull %.str.34.sink331, i32 noundef %310, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.30, i32 noundef 41, ptr noundef %313, ptr noundef %315, ptr noundef %317, i32 noundef %318) #12
  call void @exit(i32 noundef 1) #13
  unreachable

320:                                              ; preds = %291
  %321 = load i32, ptr @test_count, align 4, !tbaa !5
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr @test_count, align 4, !tbaa !5
  %323 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %324 = icmp eq ptr %323, null
  br i1 %324, label %325, label %349

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

332:                                              ; preds = %325
  %333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %334 = call i32 @fileno(ptr noundef %333) #10
  %335 = call i32 @isatty(i32 noundef %334) #10
  %.not224 = icmp eq i32 %335, 0
  br i1 %.not224, label %336, label %337

336:                                              ; preds = %332, %325
  br label %337

337:                                              ; preds = %332, %336
  %.str.34.sink342 = phi ptr [ @.str.34, %336 ], [ @.str.31, %332 ]
  store i32 %327, ptr %326, align 4, !tbaa !5
  %338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %339 = load i32, ptr @test_count, align 4, !tbaa !5
  %340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = call ptr @s2n_strerror(i32 noundef %341, ptr noundef nonnull @.str.33) #10
  %343 = load i32, ptr %340, align 4, !tbaa !5
  %344 = call ptr @s2n_strerror_debug(i32 noundef %343, ptr noundef nonnull @.str.33) #10
  %345 = load i32, ptr %326, align 4, !tbaa !5
  %346 = call ptr @strerror(i32 noundef %345) #10
  %347 = load i32, ptr %326, align 4, !tbaa !5
  %348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %338, ptr noundef nonnull %.str.34.sink342, i32 noundef %339, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.30, i32 noundef 49, ptr noundef %342, ptr noundef %344, ptr noundef %346, i32 noundef %347) #12
  call void @exit(i32 noundef 1) #13
  unreachable

349:                                              ; preds = %320
  %350 = getelementptr inbounds i8, ptr %323, i64 220
  store i8 34, ptr %350, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #10
  store ptr null, ptr %4, align 8, !tbaa !9
  %351 = load i32, ptr @test_count, align 4, !tbaa !5
  %352 = add nsw i32 %351, 1
  store i32 %352, ptr @test_count, align 4, !tbaa !5
  %353 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %323, ptr noundef nonnull %4) #10
  %354 = icmp eq i32 %353, -1
  br i1 %354, label %355, label %379

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

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

366:                                              ; preds = %362, %355
  br label %367

367:                                              ; preds = %362, %366
  %.str.34.sink353 = phi ptr [ @.str.34, %366 ], [ @.str.31, %362 ]
  store i32 %357, ptr %356, 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 nonnull @.str.33) #10
  %373 = load i32, ptr %370, align 4, !tbaa !5
  %374 = call ptr @s2n_strerror_debug(i32 noundef %373, ptr noundef nonnull @.str.33) #10
  %375 = load i32, ptr %356, align 4, !tbaa !5
  %376 = call ptr @strerror(i32 noundef %375) #10
  %377 = load i32, ptr %356, align 4, !tbaa !5
  %378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef nonnull %.str.34.sink353, i32 noundef %369, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.30, i32 noundef 54, ptr noundef %372, ptr noundef %374, ptr noundef %376, i32 noundef %377) #12
  call void @exit(i32 noundef 1) #13
  unreachable

379:                                              ; preds = %349
  %380 = load i32, ptr @test_count, align 4, !tbaa !5
  %381 = add nsw i32 %380, 1
  store i32 %381, ptr @test_count, align 4, !tbaa !5
  %382 = load ptr, ptr %4, align 8, !tbaa !9
  %383 = icmp eq ptr %382, null
  br i1 %383, label %384, label %408

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

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

395:                                              ; preds = %391, %384
  br label %396

396:                                              ; preds = %391, %395
  %.str.34.sink364 = phi ptr [ @.str.34, %395 ], [ @.str.31, %391 ]
  store i32 %386, ptr %385, align 4, !tbaa !5
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = load i32, ptr @test_count, align 4, !tbaa !5
  %399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = call ptr @s2n_strerror(i32 noundef %400, ptr noundef nonnull @.str.33) #10
  %402 = load i32, ptr %399, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror_debug(i32 noundef %402, ptr noundef nonnull @.str.33) #10
  %404 = load i32, ptr %385, align 4, !tbaa !5
  %405 = call ptr @strerror(i32 noundef %404) #10
  %406 = load i32, ptr %385, align 4, !tbaa !5
  %407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %397, ptr noundef nonnull %.str.34.sink364, i32 noundef %398, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.30, i32 noundef 55, ptr noundef %401, ptr noundef %403, ptr noundef %405, i32 noundef %406) #12
  call void @exit(i32 noundef 1) #13
  unreachable

408:                                              ; preds = %379
  %409 = getelementptr inbounds i8, ptr %382, i64 8
  %410 = load ptr, ptr %409, align 8, !tbaa !42
  %411 = load ptr, ptr %410, align 8, !tbaa !9
  %412 = getelementptr inbounds i8, ptr %323, i64 704
  store ptr %411, ptr %412, align 8, !tbaa !44
  %413 = add nsw i32 %380, 2
  store i32 %413, ptr @test_count, align 4, !tbaa !5
  %414 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %412) #10
  %415 = icmp eq i32 %414, -1
  br i1 %415, label %416, label %440

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

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

427:                                              ; preds = %423, %416
  br label %428

428:                                              ; preds = %423, %427
  %.str.34.sink375 = phi ptr [ @.str.34, %427 ], [ @.str.31, %423 ]
  store i32 %418, ptr %417, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror(i32 noundef %432, ptr noundef nonnull @.str.33) #10
  %434 = load i32, ptr %431, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror_debug(i32 noundef %434, ptr noundef nonnull @.str.33) #10
  %436 = load i32, ptr %417, align 4, !tbaa !5
  %437 = call ptr @strerror(i32 noundef %436) #10
  %438 = load i32, ptr %417, align 4, !tbaa !5
  %439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %429, ptr noundef nonnull %.str.34.sink375, i32 noundef %430, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.30, i32 noundef 59, ptr noundef %433, ptr noundef %435, ptr noundef %437, i32 noundef %438) #12
  call void @exit(i32 noundef 1) #13
  unreachable

440:                                              ; preds = %408
  %441 = getelementptr inbounds i8, ptr %323, i64 656
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %441, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  %442 = load i32, ptr @test_count, align 4, !tbaa !5
  %443 = add nsw i32 %442, 1
  store i32 %443, ptr @test_count, align 4, !tbaa !5
  %444 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef nonnull %323, ptr noundef nonnull %5)
  %445 = icmp eq i32 %444, -1
  br i1 %445, label %470, label %446

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

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

457:                                              ; preds = %453, %446
  br label %458

458:                                              ; preds = %453, %457
  %.str.34.sink386 = phi ptr [ @.str.34, %457 ], [ @.str.31, %453 ]
  store i32 %448, ptr %447, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror(i32 noundef %462, ptr noundef nonnull @.str.33) #10
  %464 = load i32, ptr %461, align 4, !tbaa !5
  %465 = call ptr @s2n_strerror_debug(i32 noundef %464, ptr noundef nonnull @.str.33) #10
  %466 = load i32, ptr %447, align 4, !tbaa !5
  %467 = call ptr @strerror(i32 noundef %466) #10
  %468 = load i32, ptr %447, align 4, !tbaa !5
  %469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %459, ptr noundef nonnull %.str.34.sink386, i32 noundef %460, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.30, i32 noundef 65, ptr noundef %463, ptr noundef %465, ptr noundef %467, i32 noundef %468) #12
  call void @exit(i32 noundef 1) #13
  unreachable

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

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

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

487:                                              ; preds = %483, %476
  br label %488

488:                                              ; preds = %483, %487
  %.str.34.sink397 = phi ptr [ @.str.34, %487 ], [ @.str.31, %483 ]
  store i32 %478, ptr %477, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = load i32, ptr %473, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror(i32 noundef %491, ptr noundef nonnull @.str.33) #10
  %493 = load i32, ptr %473, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror_debug(i32 noundef %493, ptr noundef nonnull @.str.33) #10
  %495 = load i32, ptr %477, align 4, !tbaa !5
  %496 = call ptr @strerror(i32 noundef %495) #10
  %497 = load i32, ptr %477, align 4, !tbaa !5
  %498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %489, ptr noundef nonnull %.str.34.sink397, i32 noundef %490, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.30, i32 noundef 65, ptr noundef %492, ptr noundef %494, ptr noundef %496, i32 noundef %497) #12
  call void @exit(i32 noundef 1) #13
  unreachable

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

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

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

514:                                              ; preds = %510, %503
  br label %515

515:                                              ; preds = %510, %514
  %.str.34.sink406 = phi ptr [ @.str.34, %514 ], [ @.str.31, %510 ]
  store i32 %505, ptr %504, align 4, !tbaa !5
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %518 = load i32, ptr %473, align 4, !tbaa !5
  %519 = call ptr @s2n_strerror(i32 noundef %518, ptr noundef nonnull @.str.33) #10
  %520 = load i32, ptr %473, align 4, !tbaa !5
  %521 = call ptr @s2n_strerror_debug(i32 noundef %520, ptr noundef nonnull @.str.33) #10
  %522 = load i32, ptr %504, align 4, !tbaa !5
  %523 = call ptr @strerror(i32 noundef %522) #10
  %524 = load i32, ptr %504, align 4, !tbaa !5
  %525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %516, ptr noundef nonnull %.str.34.sink406, i32 noundef %517, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.30, i32 noundef 65, ptr noundef %519, ptr noundef %521, ptr noundef %523, i32 noundef %524) #12
  call void @exit(i32 noundef 1) #13
  unreachable

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

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

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

542:                                              ; preds = %538, %532
  br label %543

543:                                              ; preds = %538, %542
  %.str.34.sink415 = phi ptr [ @.str.34, %542 ], [ @.str.31, %538 ]
  store i32 %533, ptr %527, align 4, !tbaa !5
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = load i32, ptr @test_count, align 4, !tbaa !5
  %546 = load i32, ptr %473, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror(i32 noundef %546, ptr noundef nonnull @.str.33) #10
  %548 = load i32, ptr %473, align 4, !tbaa !5
  %549 = call ptr @s2n_strerror_debug(i32 noundef %548, ptr noundef nonnull @.str.33) #10
  %550 = load i32, ptr %527, align 4, !tbaa !5
  %551 = call ptr @strerror(i32 noundef %550) #10
  %552 = load i32, ptr %527, align 4, !tbaa !5
  %553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %544, ptr noundef nonnull %.str.34.sink415, i32 noundef %545, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.30, i32 noundef 67, ptr noundef %547, ptr noundef %549, ptr noundef %551, i32 noundef %552) #12
  call void @exit(i32 noundef 1) #13
  unreachable

554:                                              ; preds = %526
  %555 = call i32 @s2n_free(ptr noundef nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #10
  %556 = load i32, ptr @test_count, align 4, !tbaa !5
  %557 = add nsw i32 %556, 1
  store i32 %557, ptr @test_count, align 4, !tbaa !5
  %558 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %559 = icmp eq ptr %558, null
  br i1 %559, label %560, label %582

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

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

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

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

582:                                              ; preds = %554
  %583 = getelementptr inbounds i8, ptr %558, i64 220
  store i8 34, ptr %583, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %558, ptr noundef nonnull %6) #10
  %587 = icmp eq i32 %586, -1
  br i1 %587, label %588, label %610

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

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

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

599:                                              ; preds = %594, %598
  %.str.34.sink433 = phi ptr [ @.str.34, %598 ], [ @.str.31, %594 ]
  store i32 %589, ptr %527, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = load i32, ptr @test_count, align 4, !tbaa !5
  %602 = load i32, ptr %473, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror(i32 noundef %602, ptr noundef nonnull @.str.33) #10
  %604 = load i32, ptr %473, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror_debug(i32 noundef %604, ptr noundef nonnull @.str.33) #10
  %606 = load i32, ptr %527, align 4, !tbaa !5
  %607 = call ptr @strerror(i32 noundef %606) #10
  %608 = load i32, ptr %527, align 4, !tbaa !5
  %609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %600, ptr noundef nonnull %.str.34.sink433, i32 noundef %601, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.30, i32 noundef 79, ptr noundef %603, ptr noundef %605, ptr noundef %607, i32 noundef %608) #12
  call void @exit(i32 noundef 1) #13
  unreachable

610:                                              ; preds = %582
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr @test_count, align 4, !tbaa !5
  %613 = load ptr, ptr %6, align 8, !tbaa !9
  %614 = icmp eq ptr %613, null
  br i1 %614, label %615, label %637

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

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

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

626:                                              ; preds = %621, %625
  %.str.34.sink442 = phi ptr [ @.str.34, %625 ], [ @.str.31, %621 ]
  store i32 %616, ptr %527, align 4, !tbaa !5
  %627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %628 = load i32, ptr @test_count, align 4, !tbaa !5
  %629 = load i32, ptr %473, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror(i32 noundef %629, ptr noundef nonnull @.str.33) #10
  %631 = load i32, ptr %473, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror_debug(i32 noundef %631, ptr noundef nonnull @.str.33) #10
  %633 = load i32, ptr %527, align 4, !tbaa !5
  %634 = call ptr @strerror(i32 noundef %633) #10
  %635 = load i32, ptr %527, align 4, !tbaa !5
  %636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %627, ptr noundef nonnull %.str.34.sink442, i32 noundef %628, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.30, i32 noundef 80, ptr noundef %630, ptr noundef %632, ptr noundef %634, i32 noundef %635) #12
  call void @exit(i32 noundef 1) #13
  unreachable

637:                                              ; preds = %610
  %638 = getelementptr inbounds i8, ptr %613, i64 8
  %639 = load ptr, ptr %638, align 8, !tbaa !42
  %640 = load ptr, ptr %639, align 8, !tbaa !9
  %641 = getelementptr inbounds i8, ptr %558, i64 704
  store ptr %640, ptr %641, align 8, !tbaa !44
  %642 = add nsw i32 %611, 2
  store i32 %642, ptr @test_count, align 4, !tbaa !5
  %643 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %641) #10
  %644 = icmp eq i32 %643, -1
  br i1 %644, label %645, label %667

645:                                              ; preds = %637
  %646 = load i32, ptr %527, align 4, !tbaa !5
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @s2n_print_stacktrace(ptr noundef %647) #10
  %649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %650 = trunc nuw i8 %649 to i1
  br i1 %650, label %651, label %655

651:                                              ; preds = %645
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = call i32 @fileno(ptr noundef %652) #10
  %654 = call i32 @isatty(i32 noundef %653) #10
  %.not215 = icmp eq i32 %654, 0
  br i1 %.not215, label %655, label %656

655:                                              ; preds = %651, %645
  br label %656

656:                                              ; preds = %651, %655
  %.str.34.sink451 = phi ptr [ @.str.34, %655 ], [ @.str.31, %651 ]
  store i32 %646, ptr %527, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = load i32, ptr %473, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror(i32 noundef %659, ptr noundef nonnull @.str.33) #10
  %661 = load i32, ptr %473, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror_debug(i32 noundef %661, ptr noundef nonnull @.str.33) #10
  %663 = load i32, ptr %527, align 4, !tbaa !5
  %664 = call ptr @strerror(i32 noundef %663) #10
  %665 = load i32, ptr %527, align 4, !tbaa !5
  %666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef nonnull %.str.34.sink451, i32 noundef %658, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.30, i32 noundef 84, ptr noundef %660, ptr noundef %662, ptr noundef %664, i32 noundef %665) #12
  call void @exit(i32 noundef 1) #13
  unreachable

667:                                              ; preds = %637
  %668 = load ptr, ptr %6, align 8, !tbaa !9
  %669 = getelementptr inbounds i8, ptr %668, i64 8
  %670 = load ptr, ptr %669, align 8, !tbaa !42
  %671 = load ptr, ptr %670, align 8, !tbaa !9
  %672 = getelementptr inbounds i8, ptr %558, i64 656
  store ptr %671, ptr %672, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false)
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = add nsw i32 %673, 1
  store i32 %674, ptr @test_count, align 4, !tbaa !5
  %675 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef nonnull %558, ptr noundef nonnull %7)
  %676 = icmp eq i32 %675, -1
  br i1 %676, label %699, label %677

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

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

687:                                              ; preds = %683, %677
  br label %688

688:                                              ; preds = %683, %687
  %.str.34.sink460 = phi ptr [ @.str.34, %687 ], [ @.str.31, %683 ]
  store i32 %678, ptr %527, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = load i32, ptr %473, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror(i32 noundef %691, ptr noundef nonnull @.str.33) #10
  %693 = load i32, ptr %473, align 4, !tbaa !5
  %694 = call ptr @s2n_strerror_debug(i32 noundef %693, ptr noundef nonnull @.str.33) #10
  %695 = load i32, ptr %527, align 4, !tbaa !5
  %696 = call ptr @strerror(i32 noundef %695) #10
  %697 = load i32, ptr %527, align 4, !tbaa !5
  %698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef nonnull %.str.34.sink460, i32 noundef %690, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.30, i32 noundef 91, ptr noundef %692, ptr noundef %694, ptr noundef %696, i32 noundef %697) #12
  call void @exit(i32 noundef 1) #13
  unreachable

699:                                              ; preds = %667
  %700 = load i32, ptr @test_count, align 4, !tbaa !5
  %701 = add nsw i32 %700, 1
  store i32 %701, ptr @test_count, align 4, !tbaa !5
  %702 = load i32, ptr %473, align 4, !tbaa !5
  %703 = icmp eq i32 %702, 402653193
  br i1 %703, label %726, label %704

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

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

714:                                              ; preds = %710, %704
  br label %715

715:                                              ; preds = %710, %714
  %.str.34.sink469 = phi ptr [ @.str.34, %714 ], [ @.str.31, %710 ]
  store i32 %705, ptr %527, align 4, !tbaa !5
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = load i32, ptr %473, align 4, !tbaa !5
  %719 = call ptr @s2n_strerror(i32 noundef %718, ptr noundef nonnull @.str.33) #10
  %720 = load i32, ptr %473, align 4, !tbaa !5
  %721 = call ptr @s2n_strerror_debug(i32 noundef %720, ptr noundef nonnull @.str.33) #10
  %722 = load i32, ptr %527, align 4, !tbaa !5
  %723 = call ptr @strerror(i32 noundef %722) #10
  %724 = load i32, ptr %527, align 4, !tbaa !5
  %725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %716, ptr noundef nonnull %.str.34.sink469, i32 noundef %717, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.30, i32 noundef 91, ptr noundef %719, ptr noundef %721, ptr noundef %723, i32 noundef %724) #12
  call void @exit(i32 noundef 1) #13
  unreachable

726:                                              ; preds = %699
  %727 = add nsw i32 %700, 2
  store i32 %727, ptr @test_count, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.33) #10
  %729 = icmp eq ptr %728, null
  br i1 %729, label %730, label %752

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

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

740:                                              ; preds = %736, %730
  br label %741

741:                                              ; preds = %736, %740
  %.str.34.sink478 = phi ptr [ @.str.34, %740 ], [ @.str.31, %736 ]
  store i32 %731, ptr %527, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = load i32, ptr %473, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror(i32 noundef %744, ptr noundef nonnull @.str.33) #10
  %746 = load i32, ptr %473, align 4, !tbaa !5
  %747 = call ptr @s2n_strerror_debug(i32 noundef %746, ptr noundef nonnull @.str.33) #10
  %748 = load i32, ptr %527, align 4, !tbaa !5
  %749 = call ptr @strerror(i32 noundef %748) #10
  %750 = load i32, ptr %527, align 4, !tbaa !5
  %751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %742, ptr noundef nonnull %.str.34.sink478, i32 noundef %743, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.30, i32 noundef 91, ptr noundef %745, ptr noundef %747, ptr noundef %749, i32 noundef %750) #12
  call void @exit(i32 noundef 1) #13
  unreachable

752:                                              ; preds = %726
  store i32 0, ptr %473, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %527, align 4, !tbaa !5
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = add nsw i32 %753, 1
  store i32 %754, ptr @test_count, align 4, !tbaa !5
  %755 = call i32 @s2n_connection_free(ptr noundef nonnull %558) #10
  %756 = icmp eq i32 %755, -1
  br i1 %756, label %757, label %779

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

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

767:                                              ; preds = %763, %757
  br label %768

768:                                              ; preds = %763, %767
  %.str.34.sink487 = phi ptr [ @.str.34, %767 ], [ @.str.31, %763 ]
  store i32 %758, ptr %527, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = load i32, ptr %473, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror(i32 noundef %771, ptr noundef nonnull @.str.33) #10
  %773 = load i32, ptr %473, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror_debug(i32 noundef %773, ptr noundef nonnull @.str.33) #10
  %775 = load i32, ptr %527, align 4, !tbaa !5
  %776 = call ptr @strerror(i32 noundef %775) #10
  %777 = load i32, ptr %527, align 4, !tbaa !5
  %778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %769, ptr noundef nonnull %.str.34.sink487, i32 noundef %770, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.30, i32 noundef 93, ptr noundef %772, ptr noundef %774, ptr noundef %776, i32 noundef %777) #12
  call void @exit(i32 noundef 1) #13
  unreachable

779:                                              ; preds = %752
  %780 = call i32 @s2n_free(ptr noundef nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = add nsw i32 %781, 1
  store i32 %782, ptr @test_count, align 4, !tbaa !5
  %783 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %784 = icmp eq ptr %783, null
  br i1 %784, label %785, label %807

785:                                              ; preds = %779
  %786 = load i32, ptr %527, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = call i32 @s2n_print_stacktrace(ptr noundef %787) #10
  %789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %790 = trunc nuw i8 %789 to i1
  br i1 %790, label %791, label %795

791:                                              ; preds = %785
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = call i32 @fileno(ptr noundef %792) #10
  %794 = call i32 @isatty(i32 noundef %793) #10
  %.not212 = icmp eq i32 %794, 0
  br i1 %.not212, label %795, label %796

795:                                              ; preds = %791, %785
  br label %796

796:                                              ; preds = %791, %795
  %.str.34.sink496 = phi ptr [ @.str.34, %795 ], [ @.str.31, %791 ]
  store i32 %786, ptr %527, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = load i32, ptr %473, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror(i32 noundef %799, ptr noundef nonnull @.str.33) #10
  %801 = load i32, ptr %473, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror_debug(i32 noundef %801, ptr noundef nonnull @.str.33) #10
  %803 = load i32, ptr %527, align 4, !tbaa !5
  %804 = call ptr @strerror(i32 noundef %803) #10
  %805 = load i32, ptr %527, align 4, !tbaa !5
  %806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %797, ptr noundef nonnull %.str.34.sink496, i32 noundef %798, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.30, i32 noundef 100, ptr noundef %800, ptr noundef %802, ptr noundef %804, i32 noundef %805) #12
  call void @exit(i32 noundef 1) #13
  unreachable

807:                                              ; preds = %779
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  store ptr null, ptr %8, align 8, !tbaa !9
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = add nsw i32 %808, 1
  store i32 %809, ptr @test_count, align 4, !tbaa !5
  %810 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %783, ptr noundef nonnull %8) #10
  %811 = icmp eq i32 %810, -1
  br i1 %811, label %812, label %834

812:                                              ; preds = %807
  %813 = load i32, ptr %527, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = call i32 @s2n_print_stacktrace(ptr noundef %814) #10
  %816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %817 = trunc nuw i8 %816 to i1
  br i1 %817, label %818, label %822

818:                                              ; preds = %812
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = call i32 @fileno(ptr noundef %819) #10
  %821 = call i32 @isatty(i32 noundef %820) #10
  %.not211 = icmp eq i32 %821, 0
  br i1 %.not211, label %822, label %823

822:                                              ; preds = %818, %812
  br label %823

823:                                              ; preds = %818, %822
  %.str.34.sink505 = phi ptr [ @.str.34, %822 ], [ @.str.31, %818 ]
  store i32 %813, ptr %527, align 4, !tbaa !5
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = load i32, ptr %473, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror(i32 noundef %826, ptr noundef nonnull @.str.33) #10
  %828 = load i32, ptr %473, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror_debug(i32 noundef %828, ptr noundef nonnull @.str.33) #10
  %830 = load i32, ptr %527, align 4, !tbaa !5
  %831 = call ptr @strerror(i32 noundef %830) #10
  %832 = load i32, ptr %527, align 4, !tbaa !5
  %833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %824, ptr noundef nonnull %.str.34.sink505, i32 noundef %825, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.30, i32 noundef 103, ptr noundef %827, ptr noundef %829, ptr noundef %831, i32 noundef %832) #12
  call void @exit(i32 noundef 1) #13
  unreachable

834:                                              ; preds = %807
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = add nsw i32 %835, 1
  store i32 %836, ptr @test_count, align 4, !tbaa !5
  %837 = load ptr, ptr %8, align 8, !tbaa !9
  %838 = icmp eq ptr %837, null
  br i1 %838, label %839, label %861

839:                                              ; preds = %834
  %840 = load i32, ptr %527, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = call i32 @s2n_print_stacktrace(ptr noundef %841) #10
  %843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %844 = trunc nuw i8 %843 to i1
  br i1 %844, label %845, label %849

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

849:                                              ; preds = %845, %839
  br label %850

850:                                              ; preds = %845, %849
  %.str.34.sink514 = phi ptr [ @.str.34, %849 ], [ @.str.31, %845 ]
  store i32 %840, ptr %527, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = load i32, ptr %473, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror(i32 noundef %853, ptr noundef nonnull @.str.33) #10
  %855 = load i32, ptr %473, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror_debug(i32 noundef %855, ptr noundef nonnull @.str.33) #10
  %857 = load i32, ptr %527, align 4, !tbaa !5
  %858 = call ptr @strerror(i32 noundef %857) #10
  %859 = load i32, ptr %527, align 4, !tbaa !5
  %860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %851, ptr noundef nonnull %.str.34.sink514, i32 noundef %852, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.30, i32 noundef 104, ptr noundef %854, ptr noundef %856, ptr noundef %858, i32 noundef %859) #12
  call void @exit(i32 noundef 1) #13
  unreachable

861:                                              ; preds = %834
  %862 = getelementptr inbounds i8, ptr %783, i64 220
  store i8 34, ptr %862, align 4, !tbaa !15
  %863 = getelementptr inbounds i8, ptr %837, i64 8
  %864 = load ptr, ptr %863, align 8, !tbaa !42
  %865 = load ptr, ptr %864, align 8, !tbaa !9
  %866 = getelementptr inbounds i8, ptr %783, i64 704
  store ptr %865, ptr %866, align 8, !tbaa !44
  %867 = add nsw i32 %835, 2
  store i32 %867, ptr @test_count, align 4, !tbaa !5
  %868 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %866) #10
  %869 = icmp eq i32 %868, -1
  br i1 %869, label %870, label %892

870:                                              ; preds = %861
  %871 = load i32, ptr %527, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = call i32 @s2n_print_stacktrace(ptr noundef %872) #10
  %874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %875 = trunc nuw i8 %874 to i1
  br i1 %875, label %876, label %880

876:                                              ; preds = %870
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @fileno(ptr noundef %877) #10
  %879 = call i32 @isatty(i32 noundef %878) #10
  %.not209 = icmp eq i32 %879, 0
  br i1 %.not209, label %880, label %881

880:                                              ; preds = %876, %870
  br label %881

881:                                              ; preds = %876, %880
  %.str.34.sink523 = phi ptr [ @.str.34, %880 ], [ @.str.31, %876 ]
  store i32 %871, ptr %527, align 4, !tbaa !5
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = load i32, ptr @test_count, align 4, !tbaa !5
  %884 = load i32, ptr %473, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror(i32 noundef %884, ptr noundef nonnull @.str.33) #10
  %886 = load i32, ptr %473, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror_debug(i32 noundef %886, ptr noundef nonnull @.str.33) #10
  %888 = load i32, ptr %527, align 4, !tbaa !5
  %889 = call ptr @strerror(i32 noundef %888) #10
  %890 = load i32, ptr %527, align 4, !tbaa !5
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %882, ptr noundef nonnull %.str.34.sink523, i32 noundef %883, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.30, i32 noundef 110, ptr noundef %885, ptr noundef %887, ptr noundef %889, i32 noundef %890) #12
  call void @exit(i32 noundef 1) #13
  unreachable

892:                                              ; preds = %861
  %893 = load ptr, ptr %8, align 8, !tbaa !9
  %894 = getelementptr inbounds i8, ptr %893, i64 8
  %895 = load ptr, ptr %894, align 8, !tbaa !42
  %896 = load ptr, ptr %895, align 8, !tbaa !9
  %897 = getelementptr inbounds i8, ptr %783, i64 656
  store ptr %896, ptr %897, align 8, !tbaa !45
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = add nsw i32 %898, 1
  store i32 %899, ptr @test_count, align 4, !tbaa !5
  %900 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %897) #10
  %901 = icmp eq i32 %900, -1
  br i1 %901, label %902, label %924

902:                                              ; preds = %892
  %903 = load i32, ptr %527, align 4, !tbaa !5
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = call i32 @s2n_print_stacktrace(ptr noundef %904) #10
  %906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %907 = trunc nuw i8 %906 to i1
  br i1 %907, label %908, label %912

908:                                              ; preds = %902
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = call i32 @fileno(ptr noundef %909) #10
  %911 = call i32 @isatty(i32 noundef %910) #10
  %.not208 = icmp eq i32 %911, 0
  br i1 %.not208, label %912, label %913

912:                                              ; preds = %908, %902
  br label %913

913:                                              ; preds = %908, %912
  %.str.34.sink532 = phi ptr [ @.str.34, %912 ], [ @.str.31, %908 ]
  store i32 %903, ptr %527, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %916 = load i32, ptr %473, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef nonnull @.str.33) #10
  %918 = load i32, ptr %473, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror_debug(i32 noundef %918, ptr noundef nonnull @.str.33) #10
  %920 = load i32, ptr %527, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #10
  %922 = load i32, ptr %527, align 4, !tbaa !5
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef nonnull %.str.34.sink532, i32 noundef %915, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.30, i32 noundef 116, ptr noundef %917, ptr noundef %919, ptr noundef %921, i32 noundef %922) #12
  call void @exit(i32 noundef 1) #13
  unreachable

924:                                              ; preds = %892
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, i8 0, i64 24, i1 false)
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = add nsw i32 %925, 1
  store i32 %926, ptr @test_count, align 4, !tbaa !5
  %927 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef nonnull %783, ptr noundef nonnull %9)
  %928 = icmp eq i32 %927, -1
  br i1 %928, label %929, label %951

929:                                              ; preds = %924
  %930 = load i32, ptr %527, align 4, !tbaa !5
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = call i32 @s2n_print_stacktrace(ptr noundef %931) #10
  %933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %934 = trunc nuw i8 %933 to i1
  br i1 %934, label %935, label %939

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

939:                                              ; preds = %935, %929
  br label %940

940:                                              ; preds = %935, %939
  %.str.34.sink541 = phi ptr [ @.str.34, %939 ], [ @.str.31, %935 ]
  store i32 %930, ptr %527, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = load i32, ptr %473, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror(i32 noundef %943, ptr noundef nonnull @.str.33) #10
  %945 = load i32, ptr %473, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror_debug(i32 noundef %945, ptr noundef nonnull @.str.33) #10
  %947 = load i32, ptr %527, align 4, !tbaa !5
  %948 = call ptr @strerror(i32 noundef %947) #10
  %949 = load i32, ptr %527, align 4, !tbaa !5
  %950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef nonnull %.str.34.sink541, i32 noundef %942, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.30, i32 noundef 118, ptr noundef %944, ptr noundef %946, ptr noundef %948, i32 noundef %949) #12
  call void @exit(i32 noundef 1) #13
  unreachable

951:                                              ; preds = %924
  %952 = load i32, ptr @test_count, align 4, !tbaa !5
  %953 = add nsw i32 %952, 1
  store i32 %953, ptr @test_count, align 4, !tbaa !5
  %954 = call i32 @s2n_connection_free(ptr noundef nonnull %783) #10
  %955 = icmp eq i32 %954, -1
  br i1 %955, label %956, label %978

956:                                              ; preds = %951
  %957 = load i32, ptr %527, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @s2n_print_stacktrace(ptr noundef %958) #10
  %960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %961 = trunc nuw i8 %960 to i1
  br i1 %961, label %962, label %966

962:                                              ; preds = %956
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @fileno(ptr noundef %963) #10
  %965 = call i32 @isatty(i32 noundef %964) #10
  %.not206 = icmp eq i32 %965, 0
  br i1 %.not206, label %966, label %967

966:                                              ; preds = %962, %956
  br label %967

967:                                              ; preds = %962, %966
  %.str.34.sink550 = phi ptr [ @.str.34, %966 ], [ @.str.31, %962 ]
  store i32 %957, ptr %527, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = load i32, ptr %473, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror(i32 noundef %970, ptr noundef nonnull @.str.33) #10
  %972 = load i32, ptr %473, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror_debug(i32 noundef %972, ptr noundef nonnull @.str.33) #10
  %974 = load i32, ptr %527, align 4, !tbaa !5
  %975 = call ptr @strerror(i32 noundef %974) #10
  %976 = load i32, ptr %527, align 4, !tbaa !5
  %977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %968, ptr noundef nonnull %.str.34.sink550, i32 noundef %969, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.30, i32 noundef 120, ptr noundef %971, ptr noundef %973, ptr noundef %975, i32 noundef %976) #12
  call void @exit(i32 noundef 1) #13
  unreachable

978:                                              ; preds = %951
  %979 = call i32 @s2n_free(ptr noundef nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  %980 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = add nsw i32 %981, 1
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = icmp eq ptr %980, null
  br i1 %983, label %984, label %1006

984:                                              ; preds = %978
  %985 = load i32, ptr %527, align 4, !tbaa !5
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = call i32 @s2n_print_stacktrace(ptr noundef %986) #10
  %988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %989 = trunc nuw i8 %988 to i1
  br i1 %989, label %990, label %994

990:                                              ; preds = %984
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = call i32 @fileno(ptr noundef %991) #10
  %993 = call i32 @isatty(i32 noundef %992) #10
  %.not205 = icmp eq i32 %993, 0
  br i1 %.not205, label %994, label %995

994:                                              ; preds = %990, %984
  br label %995

995:                                              ; preds = %990, %994
  %.str.34.sink559 = phi ptr [ @.str.34, %994 ], [ @.str.31, %990 ]
  store i32 %985, ptr %527, align 4, !tbaa !5
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = load i32, ptr @test_count, align 4, !tbaa !5
  %998 = load i32, ptr %473, align 4, !tbaa !5
  %999 = call ptr @s2n_strerror(i32 noundef %998, ptr noundef nonnull @.str.33) #10
  %1000 = load i32, ptr %473, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror_debug(i32 noundef %1000, ptr noundef nonnull @.str.33) #10
  %1002 = load i32, ptr %527, align 4, !tbaa !5
  %1003 = call ptr @strerror(i32 noundef %1002) #10
  %1004 = load i32, ptr %527, align 4, !tbaa !5
  %1005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %996, ptr noundef nonnull %.str.34.sink559, i32 noundef %997, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.30, i32 noundef 126, ptr noundef %999, ptr noundef %1001, ptr noundef %1003, i32 noundef %1004) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1006:                                             ; preds = %978
  %1007 = add nsw i32 %981, 2
  store i32 %1007, ptr @test_count, align 4, !tbaa !5
  %1008 = call i32 @s2n_connection_set_config(ptr noundef nonnull %980, ptr noundef nonnull %234) #10
  %1009 = icmp eq i32 %1008, -1
  br i1 %1009, label %1010, label %1032

1010:                                             ; preds = %1006
  %1011 = load i32, ptr %527, align 4, !tbaa !5
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = call i32 @s2n_print_stacktrace(ptr noundef %1012) #10
  %1014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1015 = trunc nuw i8 %1014 to i1
  br i1 %1015, label %1016, label %1020

1016:                                             ; preds = %1010
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @fileno(ptr noundef %1017) #10
  %1019 = call i32 @isatty(i32 noundef %1018) #10
  %.not204 = icmp eq i32 %1019, 0
  br i1 %.not204, label %1020, label %1021

1020:                                             ; preds = %1016, %1010
  br label %1021

1021:                                             ; preds = %1016, %1020
  %.str.34.sink568 = phi ptr [ @.str.34, %1020 ], [ @.str.31, %1016 ]
  store i32 %1011, ptr %527, align 4, !tbaa !5
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = load i32, ptr @test_count, align 4, !tbaa !5
  %1024 = load i32, ptr %473, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror(i32 noundef %1024, ptr noundef nonnull @.str.33) #10
  %1026 = load i32, ptr %473, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef nonnull @.str.33) #10
  %1028 = load i32, ptr %527, align 4, !tbaa !5
  %1029 = call ptr @strerror(i32 noundef %1028) #10
  %1030 = load i32, ptr %527, align 4, !tbaa !5
  %1031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1022, ptr noundef nonnull %.str.34.sink568, i32 noundef %1023, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.30, i32 noundef 127, ptr noundef %1025, ptr noundef %1027, ptr noundef %1029, i32 noundef %1030) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1032:                                             ; preds = %1006
  %1033 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %1034 = load i32, ptr @test_count, align 4, !tbaa !5
  %1035 = add nsw i32 %1034, 1
  store i32 %1035, ptr @test_count, align 4, !tbaa !5
  %1036 = icmp eq ptr %1033, null
  br i1 %1036, label %1037, label %1059

1037:                                             ; preds = %1032
  %1038 = load i32, ptr %527, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = call i32 @s2n_print_stacktrace(ptr noundef %1039) #10
  %1041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1042 = trunc nuw i8 %1041 to i1
  br i1 %1042, label %1043, label %1047

1043:                                             ; preds = %1037
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = call i32 @fileno(ptr noundef %1044) #10
  %1046 = call i32 @isatty(i32 noundef %1045) #10
  %.not203 = icmp eq i32 %1046, 0
  br i1 %.not203, label %1047, label %1048

1047:                                             ; preds = %1043, %1037
  br label %1048

1048:                                             ; preds = %1043, %1047
  %.str.34.sink577 = phi ptr [ @.str.34, %1047 ], [ @.str.31, %1043 ]
  store i32 %1038, ptr %527, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = load i32, ptr %473, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror(i32 noundef %1051, ptr noundef nonnull @.str.33) #10
  %1053 = load i32, ptr %473, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror_debug(i32 noundef %1053, ptr noundef nonnull @.str.33) #10
  %1055 = load i32, ptr %527, align 4, !tbaa !5
  %1056 = call ptr @strerror(i32 noundef %1055) #10
  %1057 = load i32, ptr %527, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef nonnull %.str.34.sink577, i32 noundef %1050, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.30, i32 noundef 130, ptr noundef %1052, ptr noundef %1054, ptr noundef %1056, i32 noundef %1057) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1059:                                             ; preds = %1032
  %1060 = add nsw i32 %1034, 2
  store i32 %1060, ptr @test_count, align 4, !tbaa !5
  %1061 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1033, ptr noundef nonnull %234) #10
  %1062 = icmp eq i32 %1061, -1
  br i1 %1062, label %1063, label %1085

1063:                                             ; preds = %1059
  %1064 = load i32, ptr %527, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = call i32 @s2n_print_stacktrace(ptr noundef %1065) #10
  %1067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1068 = trunc nuw i8 %1067 to i1
  br i1 %1068, label %1069, label %1073

1069:                                             ; preds = %1063
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = call i32 @fileno(ptr noundef %1070) #10
  %1072 = call i32 @isatty(i32 noundef %1071) #10
  %.not202 = icmp eq i32 %1072, 0
  br i1 %.not202, label %1073, label %1074

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

1074:                                             ; preds = %1069, %1073
  %.str.34.sink586 = phi ptr [ @.str.34, %1073 ], [ @.str.31, %1069 ]
  store i32 %1064, ptr %527, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = load i32, ptr %473, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror(i32 noundef %1077, ptr noundef nonnull @.str.33) #10
  %1079 = load i32, ptr %473, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef nonnull @.str.33) #10
  %1081 = load i32, ptr %527, align 4, !tbaa !5
  %1082 = call ptr @strerror(i32 noundef %1081) #10
  %1083 = load i32, ptr %527, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef nonnull %.str.34.sink586, i32 noundef %1076, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.30, i32 noundef 131, ptr noundef %1078, ptr noundef %1080, ptr noundef %1082, i32 noundef %1083) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1085:                                             ; preds = %1059
  %1086 = load i32, ptr @test_count, align 4, !tbaa !5
  %1087 = add nsw i32 %1086, 1
  store i32 %1087, ptr @test_count, align 4, !tbaa !5
  %1088 = call i32 @s2n_client_hello_send(ptr noundef nonnull %980) #10
  %1089 = icmp eq i32 %1088, -1
  br i1 %1089, label %1090, label %1112

1090:                                             ; preds = %1085
  %1091 = load i32, ptr %527, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @s2n_print_stacktrace(ptr noundef %1092) #10
  %1094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1095 = trunc nuw i8 %1094 to i1
  br i1 %1095, label %1096, label %1100

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

1100:                                             ; preds = %1096, %1090
  br label %1101

1101:                                             ; preds = %1096, %1100
  %.str.34.sink595 = phi ptr [ @.str.34, %1100 ], [ @.str.31, %1096 ]
  store i32 %1091, ptr %527, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = load i32, ptr %473, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef nonnull @.str.33) #10
  %1106 = load i32, ptr %473, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror_debug(i32 noundef %1106, ptr noundef nonnull @.str.33) #10
  %1108 = load i32, ptr %527, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #10
  %1110 = load i32, ptr %527, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef nonnull %.str.34.sink595, i32 noundef %1103, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.30, i32 noundef 133, ptr noundef %1105, ptr noundef %1107, ptr noundef %1109, i32 noundef %1110) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1112:                                             ; preds = %1085
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = add nsw i32 %1113, 1
  store i32 %1114, ptr @test_count, align 4, !tbaa !5
  %1115 = getelementptr inbounds i8, ptr %980, i64 2016
  %1116 = getelementptr inbounds i8, ptr %1033, i64 2016
  %1117 = getelementptr inbounds i8, ptr %980, i64 2044
  %1118 = load i32, ptr %1117, align 4, !tbaa !46
  %1119 = getelementptr inbounds i8, ptr %980, i64 2040
  %1120 = load i32, ptr %1119, align 8, !tbaa !47
  %1121 = sub i32 %1118, %1120
  %1122 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1115, ptr noundef nonnull %1116, i32 noundef %1121) #10
  %1123 = icmp eq i32 %1122, -1
  br i1 %1123, label %1124, label %1146

1124:                                             ; preds = %1112
  %1125 = load i32, ptr %527, align 4, !tbaa !5
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = call i32 @s2n_print_stacktrace(ptr noundef %1126) #10
  %1128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1129 = trunc nuw i8 %1128 to i1
  br i1 %1129, label %1130, label %1134

1130:                                             ; preds = %1124
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = call i32 @fileno(ptr noundef %1131) #10
  %1133 = call i32 @isatty(i32 noundef %1132) #10
  %.not200 = icmp eq i32 %1133, 0
  br i1 %.not200, label %1134, label %1135

1134:                                             ; preds = %1130, %1124
  br label %1135

1135:                                             ; preds = %1130, %1134
  %.str.34.sink604 = phi ptr [ @.str.34, %1134 ], [ @.str.31, %1130 ]
  store i32 %1125, ptr %527, align 4, !tbaa !5
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1137 = load i32, ptr @test_count, align 4, !tbaa !5
  %1138 = load i32, ptr %473, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror(i32 noundef %1138, ptr noundef nonnull @.str.33) #10
  %1140 = load i32, ptr %473, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror_debug(i32 noundef %1140, ptr noundef nonnull @.str.33) #10
  %1142 = load i32, ptr %527, align 4, !tbaa !5
  %1143 = call ptr @strerror(i32 noundef %1142) #10
  %1144 = load i32, ptr %527, align 4, !tbaa !5
  %1145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1136, ptr noundef nonnull %.str.34.sink604, i32 noundef %1137, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.30, i32 noundef 135, ptr noundef %1139, ptr noundef %1141, ptr noundef %1143, i32 noundef %1144) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1146:                                             ; preds = %1112
  %1147 = load i32, ptr @test_count, align 4, !tbaa !5
  %1148 = add nsw i32 %1147, 1
  store i32 %1148, ptr @test_count, align 4, !tbaa !5
  %1149 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %1033) #10
  %1150 = icmp eq i32 %1149, -1
  br i1 %1150, label %1151, label %1173

1151:                                             ; preds = %1146
  %1152 = load i32, ptr %527, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = call i32 @s2n_print_stacktrace(ptr noundef %1153) #10
  %1155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1156 = trunc nuw i8 %1155 to i1
  br i1 %1156, label %1157, label %1161

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

1161:                                             ; preds = %1157, %1151
  br label %1162

1162:                                             ; preds = %1157, %1161
  %.str.34.sink613 = phi ptr [ @.str.34, %1161 ], [ @.str.31, %1157 ]
  store i32 %1152, ptr %527, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = load i32, ptr @test_count, align 4, !tbaa !5
  %1165 = load i32, ptr %473, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef nonnull @.str.33) #10
  %1167 = load i32, ptr %473, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef nonnull @.str.33) #10
  %1169 = load i32, ptr %527, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #10
  %1171 = load i32, ptr %527, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1163, ptr noundef nonnull %.str.34.sink613, i32 noundef %1164, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.30, i32 noundef 136, ptr noundef %1166, ptr noundef %1168, ptr noundef %1170, i32 noundef %1171) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1173:                                             ; preds = %1146
  %1174 = load i32, ptr @test_count, align 4, !tbaa !5
  %1175 = add nsw i32 %1174, 1
  store i32 %1175, ptr @test_count, align 4, !tbaa !5
  %1176 = call i32 @s2n_server_hello_send(ptr noundef nonnull %1033) #10
  %1177 = icmp eq i32 %1176, -1
  br i1 %1177, label %1178, label %1200

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

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

1188:                                             ; preds = %1184, %1178
  br label %1189

1189:                                             ; preds = %1184, %1188
  %.str.34.sink622 = phi ptr [ @.str.34, %1188 ], [ @.str.31, %1184 ]
  store i32 %1179, ptr %527, align 4, !tbaa !5
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = load i32, ptr %473, align 4, !tbaa !5
  %1193 = call ptr @s2n_strerror(i32 noundef %1192, ptr noundef nonnull @.str.33) #10
  %1194 = load i32, ptr %473, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror_debug(i32 noundef %1194, ptr noundef nonnull @.str.33) #10
  %1196 = load i32, ptr %527, align 4, !tbaa !5
  %1197 = call ptr @strerror(i32 noundef %1196) #10
  %1198 = load i32, ptr %527, align 4, !tbaa !5
  %1199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1190, ptr noundef nonnull %.str.34.sink622, i32 noundef %1191, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.30, i32 noundef 138, ptr noundef %1193, ptr noundef %1195, ptr noundef %1197, i32 noundef %1198) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1200:                                             ; preds = %1173
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = add nsw i32 %1201, 1
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = getelementptr inbounds i8, ptr %1033, i64 2044
  %1204 = load i32, ptr %1203, align 4, !tbaa !46
  %1205 = getelementptr inbounds i8, ptr %1033, i64 2040
  %1206 = load i32, ptr %1205, align 8, !tbaa !47
  %1207 = sub i32 %1204, %1206
  %1208 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1116, ptr noundef nonnull %1115, i32 noundef %1207) #10
  %1209 = icmp eq i32 %1208, -1
  br i1 %1209, label %1210, label %1232

1210:                                             ; preds = %1200
  %1211 = load i32, ptr %527, align 4, !tbaa !5
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = call i32 @s2n_print_stacktrace(ptr noundef %1212) #10
  %1214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1215 = trunc nuw i8 %1214 to i1
  br i1 %1215, label %1216, label %1220

1216:                                             ; preds = %1210
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = call i32 @fileno(ptr noundef %1217) #10
  %1219 = call i32 @isatty(i32 noundef %1218) #10
  %.not197 = icmp eq i32 %1219, 0
  br i1 %.not197, label %1220, label %1221

1220:                                             ; preds = %1216, %1210
  br label %1221

1221:                                             ; preds = %1216, %1220
  %.str.34.sink631 = phi ptr [ @.str.34, %1220 ], [ @.str.31, %1216 ]
  store i32 %1211, ptr %527, align 4, !tbaa !5
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = load i32, ptr @test_count, align 4, !tbaa !5
  %1224 = load i32, ptr %473, align 4, !tbaa !5
  %1225 = call ptr @s2n_strerror(i32 noundef %1224, ptr noundef nonnull @.str.33) #10
  %1226 = load i32, ptr %473, align 4, !tbaa !5
  %1227 = call ptr @s2n_strerror_debug(i32 noundef %1226, ptr noundef nonnull @.str.33) #10
  %1228 = load i32, ptr %527, align 4, !tbaa !5
  %1229 = call ptr @strerror(i32 noundef %1228) #10
  %1230 = load i32, ptr %527, align 4, !tbaa !5
  %1231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1222, ptr noundef nonnull %.str.34.sink631, i32 noundef %1223, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.30, i32 noundef 140, ptr noundef %1225, ptr noundef %1227, ptr noundef %1229, i32 noundef %1230) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1232:                                             ; preds = %1200
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = add nsw i32 %1233, 1
  store i32 %1234, ptr @test_count, align 4, !tbaa !5
  %1235 = call i32 @s2n_server_hello_recv(ptr noundef nonnull %980) #10
  %1236 = icmp eq i32 %1235, -1
  br i1 %1236, label %1237, label %1259

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

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

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

1248:                                             ; preds = %1243, %1247
  %.str.34.sink640 = phi ptr [ @.str.34, %1247 ], [ @.str.31, %1243 ]
  store i32 %1238, ptr %527, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = load i32, ptr %473, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror(i32 noundef %1251, ptr noundef nonnull @.str.33) #10
  %1253 = load i32, ptr %473, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror_debug(i32 noundef %1253, ptr noundef nonnull @.str.33) #10
  %1255 = load i32, ptr %527, align 4, !tbaa !5
  %1256 = call ptr @strerror(i32 noundef %1255) #10
  %1257 = load i32, ptr %527, align 4, !tbaa !5
  %1258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1249, ptr noundef nonnull %.str.34.sink640, i32 noundef %1250, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.30, i32 noundef 141, ptr noundef %1252, ptr noundef %1254, ptr noundef %1256, i32 noundef %1257) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1259:                                             ; preds = %1232
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false)
  %1260 = load i32, ptr @test_count, align 4, !tbaa !5
  %1261 = add nsw i32 %1260, 1
  store i32 %1261, ptr @test_count, align 4, !tbaa !5
  %1262 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef nonnull %980, ptr noundef nonnull %10)
  %1263 = icmp eq i32 %1262, -1
  br i1 %1263, label %1264, label %1286

1264:                                             ; preds = %1259
  %1265 = load i32, ptr %527, align 4, !tbaa !5
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = call i32 @s2n_print_stacktrace(ptr noundef %1266) #10
  %1268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1269 = trunc nuw i8 %1268 to i1
  br i1 %1269, label %1270, label %1274

1270:                                             ; preds = %1264
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = call i32 @fileno(ptr noundef %1271) #10
  %1273 = call i32 @isatty(i32 noundef %1272) #10
  %.not195 = icmp eq i32 %1273, 0
  br i1 %.not195, label %1274, label %1275

1274:                                             ; preds = %1270, %1264
  br label %1275

1275:                                             ; preds = %1270, %1274
  %.str.34.sink649 = phi ptr [ @.str.34, %1274 ], [ @.str.31, %1270 ]
  store i32 %1265, ptr %527, align 4, !tbaa !5
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = load i32, ptr %473, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror(i32 noundef %1278, ptr noundef nonnull @.str.33) #10
  %1280 = load i32, ptr %473, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror_debug(i32 noundef %1280, ptr noundef nonnull @.str.33) #10
  %1282 = load i32, ptr %527, align 4, !tbaa !5
  %1283 = call ptr @strerror(i32 noundef %1282) #10
  %1284 = load i32, ptr %527, align 4, !tbaa !5
  %1285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1276, ptr noundef nonnull %.str.34.sink649, i32 noundef %1277, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.30, i32 noundef 144, ptr noundef %1279, ptr noundef %1281, ptr noundef %1283, i32 noundef %1284) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1286:                                             ; preds = %1259
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = add nsw i32 %1287, 1
  store i32 %1288, ptr @test_count, align 4, !tbaa !5
  %1289 = getelementptr inbounds i8, ptr %10, i64 8
  %1290 = load i32, ptr %1289, align 8, !tbaa !48
  %.not178 = icmp eq i32 %1290, 0
  br i1 %.not178, label %1291, label %1313

1291:                                             ; preds = %1286
  %1292 = load i32, ptr %527, align 4, !tbaa !5
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = call i32 @s2n_print_stacktrace(ptr noundef %1293) #10
  %1295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1296 = trunc nuw i8 %1295 to i1
  br i1 %1296, label %1297, label %1301

1297:                                             ; preds = %1291
  %1298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1299 = call i32 @fileno(ptr noundef %1298) #10
  %1300 = call i32 @isatty(i32 noundef %1299) #10
  %.not179 = icmp eq i32 %1300, 0
  br i1 %.not179, label %1301, label %1302

1301:                                             ; preds = %1297, %1291
  br label %1302

1302:                                             ; preds = %1297, %1301
  %.str.34.sink658 = phi ptr [ @.str.34, %1301 ], [ @.str.31, %1297 ]
  store i32 %1292, ptr %527, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = load i32, ptr %473, align 4, !tbaa !5
  %1306 = call ptr @s2n_strerror(i32 noundef %1305, ptr noundef nonnull @.str.33) #10
  %1307 = load i32, ptr %473, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror_debug(i32 noundef %1307, ptr noundef nonnull @.str.33) #10
  %1309 = load i32, ptr %527, align 4, !tbaa !5
  %1310 = call ptr @strerror(i32 noundef %1309) #10
  %1311 = load i32, ptr %527, align 4, !tbaa !5
  %1312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1303, ptr noundef nonnull %.str.34.sink658, i32 noundef %1304, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.30, i32 noundef 145, ptr noundef %1306, ptr noundef %1308, ptr noundef %1310, i32 noundef %1311) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1313:                                             ; preds = %1286
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, i8 0, i64 24, i1 false)
  %1314 = add nsw i32 %1287, 2
  store i32 %1314, ptr @test_count, align 4, !tbaa !5
  %1315 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef nonnull %1033, ptr noundef nonnull %11)
  %1316 = icmp eq i32 %1315, -1
  br i1 %1316, label %1317, label %1339

1317:                                             ; preds = %1313
  %1318 = load i32, ptr %527, align 4, !tbaa !5
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = call i32 @s2n_print_stacktrace(ptr noundef %1319) #10
  %1321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1322 = trunc nuw i8 %1321 to i1
  br i1 %1322, label %1323, label %1327

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

1327:                                             ; preds = %1323, %1317
  br label %1328

1328:                                             ; preds = %1323, %1327
  %.str.34.sink667 = phi ptr [ @.str.34, %1327 ], [ @.str.31, %1323 ]
  store i32 %1318, ptr %527, align 4, !tbaa !5
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = load i32, ptr @test_count, align 4, !tbaa !5
  %1331 = load i32, ptr %473, align 4, !tbaa !5
  %1332 = call ptr @s2n_strerror(i32 noundef %1331, ptr noundef nonnull @.str.33) #10
  %1333 = load i32, ptr %473, align 4, !tbaa !5
  %1334 = call ptr @s2n_strerror_debug(i32 noundef %1333, ptr noundef nonnull @.str.33) #10
  %1335 = load i32, ptr %527, align 4, !tbaa !5
  %1336 = call ptr @strerror(i32 noundef %1335) #10
  %1337 = load i32, ptr %527, align 4, !tbaa !5
  %1338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1329, ptr noundef nonnull %.str.34.sink667, i32 noundef %1330, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.30, i32 noundef 148, ptr noundef %1332, ptr noundef %1334, ptr noundef %1336, i32 noundef %1337) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1339:                                             ; preds = %1313
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = add nsw i32 %1340, 1
  store i32 %1341, ptr @test_count, align 4, !tbaa !5
  %1342 = getelementptr inbounds i8, ptr %11, i64 8
  %1343 = load i32, ptr %1342, align 8, !tbaa !48
  %.not180 = icmp eq i32 %1343, 0
  br i1 %.not180, label %1344, label %1366

1344:                                             ; preds = %1339
  %1345 = load i32, ptr %527, align 4, !tbaa !5
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = call i32 @s2n_print_stacktrace(ptr noundef %1346) #10
  %1348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1349 = trunc nuw i8 %1348 to i1
  br i1 %1349, label %1350, label %1354

1350:                                             ; preds = %1344
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = call i32 @fileno(ptr noundef %1351) #10
  %1353 = call i32 @isatty(i32 noundef %1352) #10
  %.not181 = icmp eq i32 %1353, 0
  br i1 %.not181, label %1354, label %1355

1354:                                             ; preds = %1350, %1344
  br label %1355

1355:                                             ; preds = %1350, %1354
  %.str.34.sink676 = phi ptr [ @.str.34, %1354 ], [ @.str.31, %1350 ]
  store i32 %1345, ptr %527, align 4, !tbaa !5
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = load i32, ptr @test_count, align 4, !tbaa !5
  %1358 = load i32, ptr %473, align 4, !tbaa !5
  %1359 = call ptr @s2n_strerror(i32 noundef %1358, ptr noundef nonnull @.str.33) #10
  %1360 = load i32, ptr %473, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror_debug(i32 noundef %1360, ptr noundef nonnull @.str.33) #10
  %1362 = load i32, ptr %527, align 4, !tbaa !5
  %1363 = call ptr @strerror(i32 noundef %1362) #10
  %1364 = load i32, ptr %527, align 4, !tbaa !5
  %1365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1356, ptr noundef nonnull %.str.34.sink676, i32 noundef %1357, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.30, i32 noundef 149, ptr noundef %1359, ptr noundef %1361, ptr noundef %1363, i32 noundef %1364) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1366:                                             ; preds = %1339
  %1367 = add nsw i32 %1340, 2
  store i32 %1367, ptr @test_count, align 4, !tbaa !5
  %1368 = load i32, ptr %1289, align 8, !tbaa !48
  %1369 = icmp eq i32 %1343, %1368
  br i1 %1369, label %1392, label %1370

1370:                                             ; preds = %1366
  %1371 = load i32, ptr %527, align 4, !tbaa !5
  %1372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1373 = call i32 @s2n_print_stacktrace(ptr noundef %1372) #10
  %1374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1375 = trunc nuw i8 %1374 to i1
  br i1 %1375, label %1376, label %1380

1376:                                             ; preds = %1370
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = call i32 @fileno(ptr noundef %1377) #10
  %1379 = call i32 @isatty(i32 noundef %1378) #10
  %.not182 = icmp eq i32 %1379, 0
  br i1 %.not182, label %1380, label %1381

1380:                                             ; preds = %1376, %1370
  br label %1381

1381:                                             ; preds = %1376, %1380
  %.str.34.sink685 = phi ptr [ @.str.34, %1380 ], [ @.str.31, %1376 ]
  store i32 %1371, ptr %527, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = load i32, ptr @test_count, align 4, !tbaa !5
  %1384 = load i32, ptr %473, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef nonnull @.str.33) #10
  %1386 = load i32, ptr %473, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror_debug(i32 noundef %1386, ptr noundef nonnull @.str.33) #10
  %1388 = load i32, ptr %527, align 4, !tbaa !5
  %1389 = call ptr @strerror(i32 noundef %1388) #10
  %1390 = load i32, ptr %527, align 4, !tbaa !5
  %1391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1382, ptr noundef nonnull %.str.34.sink685, i32 noundef %1383, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.30, i32 noundef 151, ptr noundef %1385, ptr noundef %1387, ptr noundef %1389, i32 noundef %1390) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1392:                                             ; preds = %1366
  %1393 = add nsw i32 %1340, 3
  store i32 %1393, ptr @test_count, align 4, !tbaa !5
  %1394 = load ptr, ptr %11, align 8, !tbaa !49
  %1395 = load ptr, ptr %10, align 8, !tbaa !49
  %1396 = zext i32 %1343 to i64
  %bcmp = call i32 @bcmp(ptr %1394, ptr %1395, i64 %1396)
  %1397 = icmp eq i32 %bcmp, 0
  br i1 %1397, label %1420, label %1398

1398:                                             ; preds = %1392
  %1399 = load i32, ptr %527, align 4, !tbaa !5
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = call i32 @s2n_print_stacktrace(ptr noundef %1400) #10
  %1402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1403 = trunc nuw i8 %1402 to i1
  br i1 %1403, label %1404, label %1408

1404:                                             ; preds = %1398
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = call i32 @fileno(ptr noundef %1405) #10
  %1407 = call i32 @isatty(i32 noundef %1406) #10
  %.not184 = icmp eq i32 %1407, 0
  br i1 %.not184, label %1408, label %1409

1408:                                             ; preds = %1404, %1398
  br label %1409

1409:                                             ; preds = %1404, %1408
  %.str.34.sink694 = phi ptr [ @.str.34, %1408 ], [ @.str.31, %1404 ]
  store i32 %1399, ptr %527, align 4, !tbaa !5
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1411 = load i32, ptr @test_count, align 4, !tbaa !5
  %1412 = load i32, ptr %473, align 4, !tbaa !5
  %1413 = call ptr @s2n_strerror(i32 noundef %1412, ptr noundef nonnull @.str.33) #10
  %1414 = load i32, ptr %473, align 4, !tbaa !5
  %1415 = call ptr @s2n_strerror_debug(i32 noundef %1414, ptr noundef nonnull @.str.33) #10
  %1416 = load i32, ptr %527, align 4, !tbaa !5
  %1417 = call ptr @strerror(i32 noundef %1416) #10
  %1418 = load i32, ptr %527, align 4, !tbaa !5
  %1419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1410, ptr noundef nonnull %.str.34.sink694, i32 noundef %1411, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.30, i32 noundef 151, ptr noundef %1413, ptr noundef %1415, ptr noundef %1417, i32 noundef %1418) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1420:                                             ; preds = %1392
  %1421 = add nsw i32 %1340, 4
  store i32 %1421, ptr @test_count, align 4, !tbaa !5
  %1422 = call i32 @s2n_connection_free(ptr noundef nonnull %980) #10
  %1423 = icmp eq i32 %1422, -1
  br i1 %1423, label %1424, label %1446

1424:                                             ; preds = %1420
  %1425 = load i32, ptr %527, align 4, !tbaa !5
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = call i32 @s2n_print_stacktrace(ptr noundef %1426) #10
  %1428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1429 = trunc nuw i8 %1428 to i1
  br i1 %1429, label %1430, label %1434

1430:                                             ; preds = %1424
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @fileno(ptr noundef %1431) #10
  %1433 = call i32 @isatty(i32 noundef %1432) #10
  %.not193 = icmp eq i32 %1433, 0
  br i1 %.not193, label %1434, label %1435

1434:                                             ; preds = %1430, %1424
  br label %1435

1435:                                             ; preds = %1430, %1434
  %.str.34.sink703 = phi ptr [ @.str.34, %1434 ], [ @.str.31, %1430 ]
  store i32 %1425, ptr %527, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = load i32, ptr %473, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror(i32 noundef %1438, ptr noundef nonnull @.str.33) #10
  %1440 = load i32, ptr %473, align 4, !tbaa !5
  %1441 = call ptr @s2n_strerror_debug(i32 noundef %1440, ptr noundef nonnull @.str.33) #10
  %1442 = load i32, ptr %527, align 4, !tbaa !5
  %1443 = call ptr @strerror(i32 noundef %1442) #10
  %1444 = load i32, ptr %527, align 4, !tbaa !5
  %1445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1436, ptr noundef nonnull %.str.34.sink703, i32 noundef %1437, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.30, i32 noundef 153, ptr noundef %1439, ptr noundef %1441, ptr noundef %1443, i32 noundef %1444) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1446:                                             ; preds = %1420
  %1447 = load i32, ptr @test_count, align 4, !tbaa !5
  %1448 = add nsw i32 %1447, 1
  store i32 %1448, ptr @test_count, align 4, !tbaa !5
  %1449 = call i32 @s2n_connection_free(ptr noundef nonnull %1033) #10
  %1450 = icmp eq i32 %1449, -1
  br i1 %1450, label %1451, label %1473

1451:                                             ; preds = %1446
  %1452 = load i32, ptr %527, align 4, !tbaa !5
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = call i32 @s2n_print_stacktrace(ptr noundef %1453) #10
  %1455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1456 = trunc nuw i8 %1455 to i1
  br i1 %1456, label %1457, label %1461

1457:                                             ; preds = %1451
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = call i32 @fileno(ptr noundef %1458) #10
  %1460 = call i32 @isatty(i32 noundef %1459) #10
  %.not192 = icmp eq i32 %1460, 0
  br i1 %.not192, label %1461, label %1462

1461:                                             ; preds = %1457, %1451
  br label %1462

1462:                                             ; preds = %1457, %1461
  %.str.34.sink712 = phi ptr [ @.str.34, %1461 ], [ @.str.31, %1457 ]
  store i32 %1452, ptr %527, align 4, !tbaa !5
  %1463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1464 = load i32, ptr @test_count, align 4, !tbaa !5
  %1465 = load i32, ptr %473, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror(i32 noundef %1465, ptr noundef nonnull @.str.33) #10
  %1467 = load i32, ptr %473, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror_debug(i32 noundef %1467, ptr noundef nonnull @.str.33) #10
  %1469 = load i32, ptr %527, align 4, !tbaa !5
  %1470 = call ptr @strerror(i32 noundef %1469) #10
  %1471 = load i32, ptr %527, align 4, !tbaa !5
  %1472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1463, ptr noundef nonnull %.str.34.sink712, i32 noundef %1464, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.30, i32 noundef 154, ptr noundef %1466, ptr noundef %1468, ptr noundef %1470, i32 noundef %1471) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1473:                                             ; preds = %1446
  %1474 = call i32 @s2n_free(ptr noundef nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #10
  %1475 = call i32 @s2n_free(ptr noundef nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #10
  %1476 = load i32, ptr @test_count, align 4, !tbaa !5
  %1477 = add nsw i32 %1476, 1
  store i32 %1477, ptr @test_count, align 4, !tbaa !5
  %1478 = load ptr, ptr %3, align 8, !tbaa !9
  %1479 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1478) #10
  %1480 = icmp eq i32 %1479, -1
  br i1 %1480, label %1481, label %1503

1481:                                             ; preds = %1473
  %1482 = load i32, ptr %527, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = call i32 @s2n_print_stacktrace(ptr noundef %1483) #10
  %1485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1486 = trunc nuw i8 %1485 to i1
  br i1 %1486, label %1487, label %1491

1487:                                             ; preds = %1481
  %1488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1489 = call i32 @fileno(ptr noundef %1488) #10
  %1490 = call i32 @isatty(i32 noundef %1489) #10
  %.not191 = icmp eq i32 %1490, 0
  br i1 %.not191, label %1491, label %1492

1491:                                             ; preds = %1487, %1481
  br label %1492

1492:                                             ; preds = %1487, %1491
  %.str.34.sink721 = phi ptr [ @.str.34, %1491 ], [ @.str.31, %1487 ]
  store i32 %1482, ptr %527, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = load i32, ptr @test_count, align 4, !tbaa !5
  %1495 = load i32, ptr %473, align 4, !tbaa !5
  %1496 = call ptr @s2n_strerror(i32 noundef %1495, ptr noundef nonnull @.str.33) #10
  %1497 = load i32, ptr %473, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror_debug(i32 noundef %1497, ptr noundef nonnull @.str.33) #10
  %1499 = load i32, ptr %527, align 4, !tbaa !5
  %1500 = call ptr @strerror(i32 noundef %1499) #10
  %1501 = load i32, ptr %527, align 4, !tbaa !5
  %1502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1493, ptr noundef nonnull %.str.34.sink721, i32 noundef %1494, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.30, i32 noundef 157, ptr noundef %1496, ptr noundef %1498, ptr noundef %1500, i32 noundef %1501) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1503:                                             ; preds = %1473
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = add nsw i32 %1504, 1
  store i32 %1505, ptr @test_count, align 4, !tbaa !5
  %1506 = call i32 @s2n_config_free(ptr noundef nonnull %234) #10
  %1507 = icmp eq i32 %1506, -1
  br i1 %1507, label %1508, label %1530

1508:                                             ; preds = %1503
  %1509 = load i32, ptr %527, align 4, !tbaa !5
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = call i32 @s2n_print_stacktrace(ptr noundef %1510) #10
  %1512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1513 = trunc nuw i8 %1512 to i1
  br i1 %1513, label %1514, label %1518

1514:                                             ; preds = %1508
  %1515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1516 = call i32 @fileno(ptr noundef %1515) #10
  %1517 = call i32 @isatty(i32 noundef %1516) #10
  %.not190 = icmp eq i32 %1517, 0
  br i1 %.not190, label %1518, label %1519

1518:                                             ; preds = %1514, %1508
  br label %1519

1519:                                             ; preds = %1514, %1518
  %.str.34.sink730 = phi ptr [ @.str.34, %1518 ], [ @.str.31, %1514 ]
  store i32 %1509, ptr %527, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = load i32, ptr @test_count, align 4, !tbaa !5
  %1522 = load i32, ptr %473, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror(i32 noundef %1522, ptr noundef nonnull @.str.33) #10
  %1524 = load i32, ptr %473, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror_debug(i32 noundef %1524, ptr noundef nonnull @.str.33) #10
  %1526 = load i32, ptr %527, align 4, !tbaa !5
  %1527 = call ptr @strerror(i32 noundef %1526) #10
  %1528 = load i32, ptr %527, align 4, !tbaa !5
  %1529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1520, ptr noundef nonnull %.str.34.sink730, i32 noundef %1521, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.30, i32 noundef 158, ptr noundef %1523, ptr noundef %1525, ptr noundef %1527, i32 noundef %1528) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1530:                                             ; preds = %1503
  %1531 = call i32 @s2n_cleanup() #10
  %1532 = icmp eq i32 %1531, -1
  br i1 %1532, label %1533, label %1555

1533:                                             ; preds = %1530
  %1534 = load i32, ptr %527, align 4, !tbaa !5
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @s2n_print_stacktrace(ptr noundef %1535) #10
  %1537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1538 = trunc nuw i8 %1537 to i1
  br i1 %1538, label %1539, label %1543

1539:                                             ; preds = %1533
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = call i32 @fileno(ptr noundef %1540) #10
  %1542 = call i32 @isatty(i32 noundef %1541) #10
  %.not189 = icmp eq i32 %1542, 0
  br i1 %.not189, label %1543, label %1544

1543:                                             ; preds = %1539, %1533
  br label %1544

1544:                                             ; preds = %1539, %1543
  %.str.34.sink739 = phi ptr [ @.str.34, %1543 ], [ @.str.31, %1539 ]
  store i32 %1534, ptr %527, align 4, !tbaa !5
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = load i32, ptr @test_count, align 4, !tbaa !5
  %1547 = load i32, ptr %473, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror(i32 noundef %1547, ptr noundef nonnull @.str.33) #10
  %1549 = load i32, ptr %473, align 4, !tbaa !5
  %1550 = call ptr @s2n_strerror_debug(i32 noundef %1549, ptr noundef nonnull @.str.33) #10
  %1551 = load i32, ptr %527, align 4, !tbaa !5
  %1552 = call ptr @strerror(i32 noundef %1551) #10
  %1553 = load i32, ptr %527, align 4, !tbaa !5
  %1554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1545, ptr noundef nonnull %.str.34.sink739, i32 noundef %1546, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.30, i32 noundef 160, ptr noundef %1548, ptr noundef %1550, ptr noundef %1552, i32 noundef %1553) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1555:                                             ; preds = %1530
  %1556 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %1557 = icmp eq i32 %1556, -1
  br i1 %1557, label %1558, label %1580

1558:                                             ; preds = %1555
  %1559 = load i32, ptr %527, align 4, !tbaa !5
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @s2n_print_stacktrace(ptr noundef %1560) #10
  %1562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1563 = trunc nuw i8 %1562 to i1
  br i1 %1563, label %1564, label %1568

1564:                                             ; preds = %1558
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = call i32 @fileno(ptr noundef %1565) #10
  %1567 = call i32 @isatty(i32 noundef %1566) #10
  %.not188 = icmp eq i32 %1567, 0
  br i1 %.not188, label %1568, label %1569

1568:                                             ; preds = %1564, %1558
  br label %1569

1569:                                             ; preds = %1564, %1568
  %.str.34.sink748 = phi ptr [ @.str.34, %1568 ], [ @.str.31, %1564 ]
  store i32 %1559, ptr %527, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = load i32, ptr %473, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror(i32 noundef %1572, ptr noundef nonnull @.str.33) #10
  %1574 = load i32, ptr %473, align 4, !tbaa !5
  %1575 = call ptr @s2n_strerror_debug(i32 noundef %1574, ptr noundef nonnull @.str.33) #10
  %1576 = load i32, ptr %527, align 4, !tbaa !5
  %1577 = call ptr @strerror(i32 noundef %1576) #10
  %1578 = load i32, ptr %527, align 4, !tbaa !5
  %1579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef nonnull %.str.34.sink748, i32 noundef %1571, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.30, i32 noundef 160, ptr noundef %1573, ptr noundef %1575, ptr noundef %1577, i32 noundef %1578) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1580:                                             ; preds = %1555
  %1581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1582 = trunc nuw i8 %1581 to i1
  br i1 %1582, label %1583, label %1594

1583:                                             ; preds = %1580
  %1584 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1585 = call i32 @fileno(ptr noundef %1584) #10
  %1586 = call i32 @isatty(i32 noundef %1585) #10
  %.not185 = icmp eq i32 %1586, 0
  br i1 %.not185, label %1594, label %1587

1587:                                             ; preds = %1583
  %1588 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not187 = icmp eq i32 %1588, 0
  %1589 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not187, label %1592, label %1590

1590:                                             ; preds = %1587
  %1591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1589, ptr noundef nonnull @.str.39, i32 noundef %1588) #10
  br label %1601

1592:                                             ; preds = %1587
  %1593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1589, ptr noundef nonnull @.str.40) #10
  br label %1601

1594:                                             ; preds = %1583, %1580
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not186 = icmp eq i32 %1595, 0
  %1596 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not186, label %1599, label %1597

1597:                                             ; preds = %1594
  %1598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1596, ptr noundef nonnull @.str.41, i32 noundef %1595) #10
  br label %1601

1599:                                             ; preds = %1594
  %1600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1596, ptr noundef nonnull @.str.42) #10
  br label %1601

1601:                                             ; preds = %1597, %1599, %1590, %1592
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  br label %1602

1602:                                             ; preds = %166, %164, %173, %171, %1601
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #5

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #6

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #5

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

declare ptr @s2n_config_new() local_unnamed_addr #2

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

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_client_hello_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_hello_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_hello_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #9

attributes #0 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 nounwind willreturn memory(argmem: write) }
attributes #4 = { 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 #5 = { 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 #6 = { 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 #7 = { 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 = { 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 #9 = { nofree nounwind willreturn memory(argmem: read) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { cold nounwind }
attributes #13 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!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 = !{!43, !10, i64 8}
!43 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!44 = !{!16, !10, i64 704}
!45 = !{!16, !10, i64 656}
!46 = !{!16, !6, i64 2044}
!47 = !{!16, !6, i64 2040}
!48 = !{!25, !6, i64 8}
!49 = !{!25, !10, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass