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

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

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

@s2n_use_color_in_output = external dso_local global i8, align 1
@sct_list_data = external dso_local constant [14 x i8], align 1
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [93 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@stdout = external global ptr, align 8
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_server_sct_list_extension = external constant %struct.s2n_extension_type, align 8
@.str.16 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #3

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca 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 %struct.s2n_stuffer, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca %struct.s2n_stuffer, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %57

57:                                               ; preds = %2
  br label %58

58:                                               ; preds = %57
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %59 = load ptr, ptr @stdout, align 8, !tbaa !9
  %60 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef @.str.5, ptr noundef @.str.2) #9
  %61 = load ptr, ptr @stdout, align 8, !tbaa !9
  %62 = call i32 @fflush(ptr noundef %61)
  br label %63

63:                                               ; preds = %58
  %64 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %66, label %117

66:                                               ; preds = %63
  br label %67

67:                                               ; preds = %66
  br label %68

68:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %69 = call ptr @__errno_location() #10
  %70 = load i32, ptr %69, align 4, !tbaa !5
  store i32 %70, ptr %6, align 4, !tbaa !5
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = call i32 @s2n_print_stacktrace(ptr noundef %71)
  %73 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %74 = trunc i8 %73 to i1
  br i1 %74, label %75, label %97

75:                                               ; preds = %68
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = call i32 @fileno(ptr noundef %76) #9
  %78 = call i32 @isatty(i32 noundef %77) #9
  %79 = icmp ne i32 %78, 0
  br i1 %79, label %80, label %97

80:                                               ; preds = %75
  %81 = load i32, ptr %6, align 4, !tbaa !5
  %82 = call ptr @__errno_location() #10
  store i32 %81, ptr %82, align 4, !tbaa !5
  %83 = load ptr, ptr @stderr, align 8, !tbaa !9
  %84 = load i32, ptr @test_count, align 4, !tbaa !5
  %85 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %86 = load i32, ptr %85, align 4, !tbaa !5
  %87 = call ptr @s2n_strerror(i32 noundef %86, ptr noundef @.str.3)
  %88 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %89 = load i32, ptr %88, align 4, !tbaa !5
  %90 = call ptr @s2n_strerror_debug(i32 noundef %89, ptr noundef @.str.3)
  %91 = call ptr @__errno_location() #10
  %92 = load i32, ptr %91, align 4, !tbaa !5
  %93 = call ptr @strerror(i32 noundef %92) #9
  %94 = call ptr @__errno_location() #10
  %95 = load i32, ptr %94, align 4, !tbaa !5
  %96 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %83, ptr noundef @.str, i32 noundef %84, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 33, ptr noundef %87, ptr noundef %90, ptr noundef %93, i32 noundef %95) #9
  br label %114

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

114:                                              ; preds = %97, %80
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %115

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

116:                                              ; No predecessors!
  br label %117

117:                                              ; preds = %116, %63
  br label %118

118:                                              ; preds = %117
  br label %119

119:                                              ; preds = %118
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = call i32 @s2n_enable_atexit()
  %123 = icmp eq i32 %122, -1
  br i1 %123, label %124, label %175

124:                                              ; preds = %119
  br label %125

125:                                              ; preds = %124
  br label %126

126:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  %127 = call ptr @__errno_location() #10
  %128 = load i32, ptr %127, align 4, !tbaa !5
  store i32 %128, ptr %7, align 4, !tbaa !5
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = call i32 @s2n_print_stacktrace(ptr noundef %129)
  %131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %132 = trunc i8 %131 to i1
  br i1 %132, label %133, label %155

133:                                              ; preds = %126
  %134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %135 = call i32 @fileno(ptr noundef %134) #9
  %136 = call i32 @isatty(i32 noundef %135) #9
  %137 = icmp ne i32 %136, 0
  br i1 %137, label %138, label %155

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

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

172:                                              ; preds = %155, %138
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %173

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

174:                                              ; No predecessors!
  br label %175

175:                                              ; preds = %174, %119
  br label %176

176:                                              ; preds = %175
  br label %177

177:                                              ; preds = %176
  br label %178

178:                                              ; preds = %177
  %179 = call i32 @s2n_init()
  %180 = icmp eq i32 %179, -1
  br i1 %180, label %181, label %232

181:                                              ; preds = %178
  br label %182

182:                                              ; preds = %181
  br label %183

183:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %184 = call ptr @__errno_location() #10
  %185 = load i32, ptr %184, align 4, !tbaa !5
  store i32 %185, ptr %8, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = call i32 @s2n_print_stacktrace(ptr noundef %186)
  %188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %189 = trunc i8 %188 to i1
  br i1 %189, label %190, label %212

190:                                              ; preds = %183
  %191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %192 = call i32 @fileno(ptr noundef %191) #9
  %193 = call i32 @isatty(i32 noundef %192) #9
  %194 = icmp ne i32 %193, 0
  br i1 %194, label %195, label %212

195:                                              ; preds = %190
  %196 = load i32, ptr %8, align 4, !tbaa !5
  %197 = call ptr @__errno_location() #10
  store i32 %196, ptr %197, align 4, !tbaa !5
  %198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %199 = load i32, ptr @test_count, align 4, !tbaa !5
  %200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = call ptr @s2n_strerror(i32 noundef %201, ptr noundef @.str.3)
  %203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = call ptr @s2n_strerror_debug(i32 noundef %204, ptr noundef @.str.3)
  %206 = call ptr @__errno_location() #10
  %207 = load i32, ptr %206, align 4, !tbaa !5
  %208 = call ptr @strerror(i32 noundef %207) #9
  %209 = call ptr @__errno_location() #10
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %198, ptr noundef @.str, i32 noundef %199, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 33, ptr noundef %202, ptr noundef %205, ptr noundef %208, i32 noundef %210) #9
  br label %229

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

229:                                              ; preds = %212, %195
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %230

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

231:                                              ; No predecessors!
  br label %232

232:                                              ; preds = %231, %178
  br label %233

233:                                              ; preds = %232
  br label %234

234:                                              ; preds = %233
  br label %235

235:                                              ; preds = %234
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = call i32 (...) @s2n_disable_tls13_in_test()
  %239 = icmp eq i32 %238, -1
  br i1 %239, label %240, label %291

240:                                              ; preds = %235
  br label %241

241:                                              ; preds = %240
  br label %242

242:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  %243 = call ptr @__errno_location() #10
  %244 = load i32, ptr %243, align 4, !tbaa !5
  store i32 %244, ptr %9, align 4, !tbaa !5
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = call i32 @s2n_print_stacktrace(ptr noundef %245)
  %247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %248 = trunc i8 %247 to i1
  br i1 %248, label %249, label %271

249:                                              ; preds = %242
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = call i32 @fileno(ptr noundef %250) #9
  %252 = call i32 @isatty(i32 noundef %251) #9
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %254, label %271

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

271:                                              ; preds = %249, %242
  %272 = load i32, ptr %9, align 4, !tbaa !5
  %273 = call ptr @__errno_location() #10
  store i32 %272, ptr %273, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = call ptr @s2n_strerror(i32 noundef %277, ptr noundef @.str.3)
  %279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = call ptr @s2n_strerror_debug(i32 noundef %280, ptr noundef @.str.3)
  %282 = call ptr @__errno_location() #10
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call ptr @strerror(i32 noundef %283) #9
  %285 = call ptr @__errno_location() #10
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %274, ptr noundef @.str.4, i32 noundef %275, ptr noundef @.str.9, ptr noundef @.str.2, i32 noundef 34, ptr noundef %278, ptr noundef %281, ptr noundef %284, i32 noundef %286) #9
  br label %288

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

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

290:                                              ; No predecessors!
  br label %291

291:                                              ; preds = %290, %235
  br label %292

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

293:                                              ; preds = %292
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = add nsw i32 %294, 1
  store i32 %295, ptr @test_count, align 4, !tbaa !5
  %296 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %10, ptr noundef @.str.10, ptr noundef @.str.11)
  %297 = icmp eq i32 %296, -1
  br i1 %297, label %298, label %351

298:                                              ; preds = %293
  br label %299

299:                                              ; preds = %298
  br label %300

300:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %301 = call ptr @__errno_location() #10
  %302 = load i32, ptr %301, align 4, !tbaa !5
  store i32 %302, ptr %11, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = call i32 @s2n_print_stacktrace(ptr noundef %303)
  %305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %306 = trunc i8 %305 to i1
  br i1 %306, label %307, label %329

307:                                              ; preds = %300
  %308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %309 = call i32 @fileno(ptr noundef %308) #9
  %310 = call i32 @isatty(i32 noundef %309) #9
  %311 = icmp ne i32 %310, 0
  br i1 %311, label %312, label %329

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

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

346:                                              ; preds = %329, %312
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %347

347:                                              ; preds = %346
  br label %348

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

349:                                              ; No predecessors!
  br label %350

350:                                              ; preds = %349
  br label %351

351:                                              ; preds = %350, %293
  br label %352

352:                                              ; preds = %351
  br label %353

353:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  store ptr null, ptr %12, align 8, !tbaa !9
  br label %354

354:                                              ; preds = %353
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = add nsw i32 %355, 1
  store i32 %356, ptr @test_count, align 4, !tbaa !5
  %357 = call ptr @s2n_config_new()
  store ptr %357, ptr %12, align 8, !tbaa !9
  %358 = icmp eq ptr %357, null
  br i1 %358, label %359, label %412

359:                                              ; preds = %354
  br label %360

360:                                              ; preds = %359
  br label %361

361:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  %362 = call ptr @__errno_location() #10
  %363 = load i32, ptr %362, align 4, !tbaa !5
  store i32 %363, ptr %13, align 4, !tbaa !5
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = call i32 @s2n_print_stacktrace(ptr noundef %364)
  %366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %367 = trunc i8 %366 to i1
  br i1 %367, label %368, label %390

368:                                              ; preds = %361
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = call i32 @fileno(ptr noundef %369) #9
  %371 = call i32 @isatty(i32 noundef %370) #9
  %372 = icmp ne i32 %371, 0
  br i1 %372, label %373, label %390

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

390:                                              ; preds = %368, %361
  %391 = load i32, ptr %13, align 4, !tbaa !5
  %392 = call ptr @__errno_location() #10
  store i32 %391, ptr %392, align 4, !tbaa !5
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = load i32, ptr @test_count, align 4, !tbaa !5
  %395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = call ptr @s2n_strerror(i32 noundef %396, ptr noundef @.str.3)
  %398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror_debug(i32 noundef %399, ptr noundef @.str.3)
  %401 = call ptr @__errno_location() #10
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call ptr @strerror(i32 noundef %402) #9
  %404 = call ptr @__errno_location() #10
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %393, ptr noundef @.str.4, i32 noundef %394, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 43, ptr noundef %397, ptr noundef %400, ptr noundef %403, i32 noundef %405) #9
  br label %407

407:                                              ; preds = %390, %373
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %408

408:                                              ; preds = %407
  br label %409

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

410:                                              ; No predecessors!
  br label %411

411:                                              ; preds = %410
  br label %412

412:                                              ; preds = %411, %354
  br label %413

413:                                              ; preds = %412
  br label %414

414:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  store ptr null, ptr %14, align 8, !tbaa !9
  br label %415

415:                                              ; preds = %414
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = add nsw i32 %416, 1
  store i32 %417, ptr @test_count, align 4, !tbaa !5
  %418 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %418, ptr %14, align 8, !tbaa !9
  %419 = icmp eq ptr %418, null
  br i1 %419, label %420, label %473

420:                                              ; preds = %415
  br label %421

421:                                              ; preds = %420
  br label %422

422:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %423 = call ptr @__errno_location() #10
  %424 = load i32, ptr %423, align 4, !tbaa !5
  store i32 %424, ptr %15, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = call i32 @s2n_print_stacktrace(ptr noundef %425)
  %427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %428 = trunc i8 %427 to i1
  br i1 %428, label %429, label %451

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

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

451:                                              ; preds = %429, %422
  %452 = load i32, ptr %15, align 4, !tbaa !5
  %453 = call ptr @__errno_location() #10
  store i32 %452, ptr %453, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = load i32, ptr @test_count, align 4, !tbaa !5
  %456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = call ptr @s2n_strerror(i32 noundef %457, ptr noundef @.str.3)
  %459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror_debug(i32 noundef %460, ptr noundef @.str.3)
  %462 = call ptr @__errno_location() #10
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @strerror(i32 noundef %463) #9
  %465 = call ptr @__errno_location() #10
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %454, ptr noundef @.str.4, i32 noundef %455, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 46, ptr noundef %458, ptr noundef %461, ptr noundef %464, i32 noundef %466) #9
  br label %468

468:                                              ; preds = %451, %434
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %469

469:                                              ; preds = %468
  br label %470

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

471:                                              ; No predecessors!
  br label %472

472:                                              ; preds = %471
  br label %473

473:                                              ; preds = %472, %415
  br label %474

474:                                              ; preds = %473
  br label %475

475:                                              ; preds = %474
  br label %476

476:                                              ; preds = %475
  %477 = load i32, ptr @test_count, align 4, !tbaa !5
  %478 = add nsw i32 %477, 1
  store i32 %478, ptr @test_count, align 4, !tbaa !5
  %479 = load ptr, ptr %14, align 8, !tbaa !9
  %480 = load ptr, ptr %12, align 8, !tbaa !9
  %481 = call i32 @s2n_connection_set_config(ptr noundef %479, ptr noundef %480)
  %482 = icmp eq i32 %481, -1
  br i1 %482, label %483, label %536

483:                                              ; preds = %476
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %486 = call ptr @__errno_location() #10
  %487 = load i32, ptr %486, align 4, !tbaa !5
  store i32 %487, ptr %16, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = call i32 @s2n_print_stacktrace(ptr noundef %488)
  %490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %491 = trunc i8 %490 to i1
  br i1 %491, label %492, label %514

492:                                              ; preds = %485
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = call i32 @fileno(ptr noundef %493) #9
  %495 = call i32 @isatty(i32 noundef %494) #9
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %497, label %514

497:                                              ; preds = %492
  %498 = load i32, ptr %16, align 4, !tbaa !5
  %499 = call ptr @__errno_location() #10
  store i32 %498, ptr %499, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror(i32 noundef %503, ptr noundef @.str.3)
  %505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror_debug(i32 noundef %506, ptr noundef @.str.3)
  %508 = call ptr @__errno_location() #10
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call ptr @strerror(i32 noundef %509) #9
  %511 = call ptr @__errno_location() #10
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef @.str, i32 noundef %501, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 47, ptr noundef %504, ptr noundef %507, ptr noundef %510, i32 noundef %512) #9
  br label %531

514:                                              ; preds = %492, %485
  %515 = load i32, ptr %16, align 4, !tbaa !5
  %516 = call ptr @__errno_location() #10
  store i32 %515, ptr %516, align 4, !tbaa !5
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = load i32, ptr @test_count, align 4, !tbaa !5
  %519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = call ptr @s2n_strerror(i32 noundef %520, ptr noundef @.str.3)
  %522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror_debug(i32 noundef %523, ptr noundef @.str.3)
  %525 = call ptr @__errno_location() #10
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @strerror(i32 noundef %526) #9
  %528 = call ptr @__errno_location() #10
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %517, ptr noundef @.str.4, i32 noundef %518, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 47, ptr noundef %521, ptr noundef %524, ptr noundef %527, i32 noundef %529) #9
  br label %531

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

532:                                              ; preds = %531
  br label %533

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

534:                                              ; No predecessors!
  br label %535

535:                                              ; preds = %534
  br label %536

536:                                              ; preds = %535, %476
  br label %537

537:                                              ; preds = %536
  br label %538

538:                                              ; preds = %537
  br label %539

539:                                              ; preds = %538
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = add nsw i32 %540, 1
  store i32 %541, ptr @test_count, align 4, !tbaa !5
  %542 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_sct_list_extension, i32 0, i32 5), align 8, !tbaa !15
  %543 = load ptr, ptr %14, align 8, !tbaa !9
  %544 = call zeroext i1 %542(ptr noundef %543)
  br i1 %544, label %545, label %598

545:                                              ; preds = %539
  br label %546

546:                                              ; preds = %545
  br label %547

547:                                              ; preds = %546
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %548 = call ptr @__errno_location() #10
  %549 = load i32, ptr %548, align 4, !tbaa !5
  store i32 %549, ptr %17, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = call i32 @s2n_print_stacktrace(ptr noundef %550)
  %552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %553 = trunc i8 %552 to i1
  br i1 %553, label %554, label %576

554:                                              ; preds = %547
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = call i32 @fileno(ptr noundef %555) #9
  %557 = call i32 @isatty(i32 noundef %556) #9
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %576

559:                                              ; preds = %554
  %560 = load i32, ptr %17, align 4, !tbaa !5
  %561 = call ptr @__errno_location() #10
  store i32 %560, ptr %561, align 4, !tbaa !5
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call ptr @s2n_strerror(i32 noundef %565, ptr noundef @.str.3)
  %567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %568 = load i32, ptr %567, align 4, !tbaa !5
  %569 = call ptr @s2n_strerror_debug(i32 noundef %568, ptr noundef @.str.3)
  %570 = call ptr @__errno_location() #10
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = call ptr @strerror(i32 noundef %571) #9
  %573 = call ptr @__errno_location() #10
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %562, ptr noundef @.str, i32 noundef %563, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 50, ptr noundef %566, ptr noundef %569, ptr noundef %572, i32 noundef %574) #9
  br label %593

576:                                              ; preds = %554, %547
  %577 = load i32, ptr %17, align 4, !tbaa !5
  %578 = call ptr @__errno_location() #10
  store i32 %577, ptr %578, align 4, !tbaa !5
  %579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %580 = load i32, ptr @test_count, align 4, !tbaa !5
  %581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror(i32 noundef %582, ptr noundef @.str.3)
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror_debug(i32 noundef %585, ptr noundef @.str.3)
  %587 = call ptr @__errno_location() #10
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @strerror(i32 noundef %588) #9
  %590 = call ptr @__errno_location() #10
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %579, ptr noundef @.str.4, i32 noundef %580, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 50, ptr noundef %583, ptr noundef %586, ptr noundef %589, i32 noundef %591) #9
  br label %593

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

594:                                              ; preds = %593
  br label %595

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

596:                                              ; No predecessors!
  br label %597

597:                                              ; preds = %596
  br label %598

598:                                              ; preds = %597, %539
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599
  br label %601

601:                                              ; preds = %600
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = add nsw i32 %602, 1
  store i32 %603, ptr @test_count, align 4, !tbaa !5
  %604 = load ptr, ptr %14, align 8, !tbaa !9
  %605 = load ptr, ptr %10, align 8, !tbaa !9
  %606 = call i32 @s2n_test_enable_sending_extension(ptr noundef %604, ptr noundef %605)
  %607 = icmp eq i32 %606, -1
  br i1 %607, label %608, label %661

608:                                              ; preds = %601
  br label %609

609:                                              ; preds = %608
  br label %610

610:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %611 = call ptr @__errno_location() #10
  %612 = load i32, ptr %611, align 4, !tbaa !5
  store i32 %612, ptr %18, align 4, !tbaa !5
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = call i32 @s2n_print_stacktrace(ptr noundef %613)
  %615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %616 = trunc i8 %615 to i1
  br i1 %616, label %617, label %639

617:                                              ; preds = %610
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = call i32 @fileno(ptr noundef %618) #9
  %620 = call i32 @isatty(i32 noundef %619) #9
  %621 = icmp ne i32 %620, 0
  br i1 %621, label %622, label %639

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

639:                                              ; preds = %617, %610
  %640 = load i32, ptr %18, align 4, !tbaa !5
  %641 = call ptr @__errno_location() #10
  store i32 %640, ptr %641, align 4, !tbaa !5
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = load i32, ptr @test_count, align 4, !tbaa !5
  %644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %645 = load i32, ptr %644, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror(i32 noundef %645, ptr noundef @.str.3)
  %647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror_debug(i32 noundef %648, ptr noundef @.str.3)
  %650 = call ptr @__errno_location() #10
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = call ptr @strerror(i32 noundef %651) #9
  %653 = call ptr @__errno_location() #10
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %642, ptr noundef @.str.4, i32 noundef %643, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 53, ptr noundef %646, ptr noundef %649, ptr noundef %652, i32 noundef %654) #9
  br label %656

656:                                              ; preds = %639, %622
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %657

657:                                              ; preds = %656
  br label %658

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

659:                                              ; No predecessors!
  br label %660

660:                                              ; preds = %659
  br label %661

661:                                              ; preds = %660, %601
  br label %662

662:                                              ; preds = %661
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663
  %665 = load i32, ptr @test_count, align 4, !tbaa !5
  %666 = add nsw i32 %665, 1
  store i32 %666, ptr @test_count, align 4, !tbaa !5
  %667 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_sct_list_extension, i32 0, i32 5), align 8, !tbaa !15
  %668 = load ptr, ptr %14, align 8, !tbaa !9
  %669 = call zeroext i1 %667(ptr noundef %668)
  br i1 %669, label %723, label %670

670:                                              ; preds = %664
  br label %671

671:                                              ; preds = %670
  br label %672

672:                                              ; preds = %671
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %673 = call ptr @__errno_location() #10
  %674 = load i32, ptr %673, align 4, !tbaa !5
  store i32 %674, ptr %19, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = call i32 @s2n_print_stacktrace(ptr noundef %675)
  %677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %678 = trunc i8 %677 to i1
  br i1 %678, label %679, label %701

679:                                              ; preds = %672
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = call i32 @fileno(ptr noundef %680) #9
  %682 = call i32 @isatty(i32 noundef %681) #9
  %683 = icmp ne i32 %682, 0
  br i1 %683, label %684, label %701

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

701:                                              ; preds = %679, %672
  %702 = load i32, ptr %19, align 4, !tbaa !5
  %703 = call ptr @__errno_location() #10
  store i32 %702, ptr %703, align 4, !tbaa !5
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = call ptr @s2n_strerror(i32 noundef %707, ptr noundef @.str.3)
  %709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror_debug(i32 noundef %710, ptr noundef @.str.3)
  %712 = call ptr @__errno_location() #10
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @strerror(i32 noundef %713) #9
  %715 = call ptr @__errno_location() #10
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %704, ptr noundef @.str.4, i32 noundef %705, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 54, ptr noundef %708, ptr noundef %711, ptr noundef %714, i32 noundef %716) #9
  br label %718

718:                                              ; preds = %701, %684
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %719

719:                                              ; preds = %718
  br label %720

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

721:                                              ; No predecessors!
  br label %722

722:                                              ; preds = %721
  br label %723

723:                                              ; preds = %722, %664
  br label %724

724:                                              ; preds = %723
  br label %725

725:                                              ; preds = %724
  br label %726

726:                                              ; preds = %725
  %727 = load i32, ptr @test_count, align 4, !tbaa !5
  %728 = add nsw i32 %727, 1
  store i32 %728, ptr @test_count, align 4, !tbaa !5
  %729 = load ptr, ptr %14, align 8, !tbaa !9
  %730 = load ptr, ptr %10, align 8, !tbaa !9
  %731 = call i32 @s2n_test_enable_sending_extension(ptr noundef %729, ptr noundef %730)
  %732 = icmp eq i32 %731, -1
  br i1 %732, label %733, label %786

733:                                              ; preds = %726
  br label %734

734:                                              ; preds = %733
  br label %735

735:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %736 = call ptr @__errno_location() #10
  %737 = load i32, ptr %736, align 4, !tbaa !5
  store i32 %737, ptr %20, align 4, !tbaa !5
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = call i32 @s2n_print_stacktrace(ptr noundef %738)
  %740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %741 = trunc i8 %740 to i1
  br i1 %741, label %742, label %764

742:                                              ; preds = %735
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = call i32 @fileno(ptr noundef %743) #9
  %745 = call i32 @isatty(i32 noundef %744) #9
  %746 = icmp ne i32 %745, 0
  br i1 %746, label %747, label %764

747:                                              ; preds = %742
  %748 = load i32, ptr %20, align 4, !tbaa !5
  %749 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %758 = call ptr @__errno_location() #10
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #9
  %761 = call ptr @__errno_location() #10
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %750, ptr noundef @.str, i32 noundef %751, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 57, ptr noundef %754, ptr noundef %757, ptr noundef %760, i32 noundef %762) #9
  br label %781

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

781:                                              ; preds = %764, %747
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %782

782:                                              ; preds = %781
  br label %783

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

784:                                              ; No predecessors!
  br label %785

785:                                              ; preds = %784
  br label %786

786:                                              ; preds = %785, %726
  br label %787

787:                                              ; preds = %786
  br label %788

788:                                              ; preds = %787
  %789 = load ptr, ptr %14, align 8, !tbaa !9
  %790 = getelementptr inbounds %struct.s2n_connection, ptr %789, i32 0, i32 13
  store i32 1, ptr %790, align 4, !tbaa !18
  br label %791

791:                                              ; preds = %788
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = add nsw i32 %792, 1
  store i32 %793, ptr @test_count, align 4, !tbaa !5
  %794 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_sct_list_extension, i32 0, i32 5), align 8, !tbaa !15
  %795 = load ptr, ptr %14, align 8, !tbaa !9
  %796 = call zeroext i1 %794(ptr noundef %795)
  br i1 %796, label %797, label %850

797:                                              ; preds = %791
  br label %798

798:                                              ; preds = %797
  br label %799

799:                                              ; preds = %798
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %800 = call ptr @__errno_location() #10
  %801 = load i32, ptr %800, align 4, !tbaa !5
  store i32 %801, ptr %21, align 4, !tbaa !5
  %802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %803 = call i32 @s2n_print_stacktrace(ptr noundef %802)
  %804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %805 = trunc i8 %804 to i1
  br i1 %805, label %806, label %828

806:                                              ; preds = %799
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = call i32 @fileno(ptr noundef %807) #9
  %809 = call i32 @isatty(i32 noundef %808) #9
  %810 = icmp ne i32 %809, 0
  br i1 %810, label %811, label %828

811:                                              ; preds = %806
  %812 = load i32, ptr %21, align 4, !tbaa !5
  %813 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %822 = call ptr @__errno_location() #10
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @strerror(i32 noundef %823) #9
  %825 = call ptr @__errno_location() #10
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %814, ptr noundef @.str, i32 noundef %815, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 59, ptr noundef %818, ptr noundef %821, ptr noundef %824, i32 noundef %826) #9
  br label %845

828:                                              ; preds = %806, %799
  %829 = load i32, ptr %21, align 4, !tbaa !5
  %830 = call ptr @__errno_location() #10
  store i32 %829, ptr %830, align 4, !tbaa !5
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror(i32 noundef %834, ptr noundef @.str.3)
  %836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror_debug(i32 noundef %837, ptr noundef @.str.3)
  %839 = call ptr @__errno_location() #10
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @strerror(i32 noundef %840) #9
  %842 = call ptr @__errno_location() #10
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %831, ptr noundef @.str.4, i32 noundef %832, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 59, ptr noundef %835, ptr noundef %838, ptr noundef %841, i32 noundef %843) #9
  br label %845

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

846:                                              ; preds = %845
  br label %847

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

848:                                              ; No predecessors!
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849, %791
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = add nsw i32 %854, 1
  store i32 %855, ptr @test_count, align 4, !tbaa !5
  %856 = load ptr, ptr %14, align 8, !tbaa !9
  %857 = load ptr, ptr %10, align 8, !tbaa !9
  %858 = call i32 @s2n_test_enable_sending_extension(ptr noundef %856, ptr noundef %857)
  %859 = icmp eq i32 %858, -1
  br i1 %859, label %860, label %913

860:                                              ; preds = %853
  br label %861

861:                                              ; preds = %860
  br label %862

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

869:                                              ; preds = %862
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = call i32 @fileno(ptr noundef %870) #9
  %872 = call i32 @isatty(i32 noundef %871) #9
  %873 = icmp ne i32 %872, 0
  br i1 %873, label %874, label %891

874:                                              ; preds = %869
  %875 = load i32, ptr %22, align 4, !tbaa !5
  %876 = call ptr @__errno_location() #10
  store i32 %875, ptr %876, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = load i32, ptr @test_count, align 4, !tbaa !5
  %879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror(i32 noundef %880, ptr noundef @.str.3)
  %882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror_debug(i32 noundef %883, ptr noundef @.str.3)
  %885 = call ptr @__errno_location() #10
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call ptr @strerror(i32 noundef %886) #9
  %888 = call ptr @__errno_location() #10
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %877, ptr noundef @.str, i32 noundef %878, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 62, ptr noundef %881, ptr noundef %884, ptr noundef %887, i32 noundef %889) #9
  br label %908

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

908:                                              ; preds = %891, %874
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %909

909:                                              ; preds = %908
  br label %910

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

911:                                              ; No predecessors!
  br label %912

912:                                              ; preds = %911
  br label %913

913:                                              ; preds = %912, %853
  br label %914

914:                                              ; preds = %913
  br label %915

915:                                              ; preds = %914
  %916 = load ptr, ptr %14, align 8, !tbaa !9
  %917 = getelementptr inbounds %struct.s2n_connection, ptr %916, i32 0, i32 67
  store i32 0, ptr %917, align 8, !tbaa !44
  br label %918

918:                                              ; preds = %915
  %919 = load i32, ptr @test_count, align 4, !tbaa !5
  %920 = add nsw i32 %919, 1
  store i32 %920, ptr @test_count, align 4, !tbaa !5
  %921 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_sct_list_extension, i32 0, i32 5), align 8, !tbaa !15
  %922 = load ptr, ptr %14, align 8, !tbaa !9
  %923 = call zeroext i1 %921(ptr noundef %922)
  br i1 %923, label %924, label %977

924:                                              ; preds = %918
  br label %925

925:                                              ; preds = %924
  br label %926

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

933:                                              ; preds = %926
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = call i32 @fileno(ptr noundef %934) #9
  %936 = call i32 @isatty(i32 noundef %935) #9
  %937 = icmp ne i32 %936, 0
  br i1 %937, label %938, label %955

938:                                              ; preds = %933
  %939 = load i32, ptr %23, align 4, !tbaa !5
  %940 = call ptr @__errno_location() #10
  store i32 %939, ptr %940, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror(i32 noundef %944, ptr noundef @.str.3)
  %946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror_debug(i32 noundef %947, ptr noundef @.str.3)
  %949 = call ptr @__errno_location() #10
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @strerror(i32 noundef %950) #9
  %952 = call ptr @__errno_location() #10
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef @.str, i32 noundef %942, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 64, ptr noundef %945, ptr noundef %948, ptr noundef %951, i32 noundef %953) #9
  br label %972

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

972:                                              ; preds = %955, %938
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %973

973:                                              ; preds = %972
  br label %974

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

975:                                              ; No predecessors!
  br label %976

976:                                              ; preds = %975
  br label %977

977:                                              ; preds = %976, %918
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979
  %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 = load ptr, ptr %14, align 8, !tbaa !9
  %984 = load ptr, ptr %10, align 8, !tbaa !9
  %985 = call i32 @s2n_test_enable_sending_extension(ptr noundef %983, ptr noundef %984)
  %986 = icmp eq i32 %985, -1
  br i1 %986, label %987, label %1040

987:                                              ; preds = %980
  br label %988

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %988
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %990 = call ptr @__errno_location() #10
  %991 = load i32, ptr %990, align 4, !tbaa !5
  store i32 %991, ptr %24, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = call i32 @s2n_print_stacktrace(ptr noundef %992)
  %994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %995 = trunc i8 %994 to i1
  br i1 %995, label %996, label %1018

996:                                              ; preds = %989
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = call i32 @fileno(ptr noundef %997) #9
  %999 = call i32 @isatty(i32 noundef %998) #9
  %1000 = icmp ne i32 %999, 0
  br i1 %1000, label %1001, label %1018

1001:                                             ; preds = %996
  %1002 = load i32, ptr %24, align 4, !tbaa !5
  %1003 = call ptr @__errno_location() #10
  store i32 %1002, ptr %1003, align 4, !tbaa !5
  %1004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1005 = load i32, ptr @test_count, align 4, !tbaa !5
  %1006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror(i32 noundef %1007, ptr noundef @.str.3)
  %1009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror_debug(i32 noundef %1010, ptr noundef @.str.3)
  %1012 = call ptr @__errno_location() #10
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @strerror(i32 noundef %1013) #9
  %1015 = call ptr @__errno_location() #10
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1004, ptr noundef @.str, i32 noundef %1005, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 67, ptr noundef %1008, ptr noundef %1011, ptr noundef %1014, i32 noundef %1016) #9
  br label %1035

1018:                                             ; preds = %996, %989
  %1019 = load i32, ptr %24, align 4, !tbaa !5
  %1020 = call ptr @__errno_location() #10
  store i32 %1019, ptr %1020, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror(i32 noundef %1024, ptr noundef @.str.3)
  %1026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror_debug(i32 noundef %1027, ptr noundef @.str.3)
  %1029 = call ptr @__errno_location() #10
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @strerror(i32 noundef %1030) #9
  %1032 = call ptr @__errno_location() #10
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef @.str.4, i32 noundef %1022, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 67, ptr noundef %1025, ptr noundef %1028, ptr noundef %1031, i32 noundef %1033) #9
  br label %1035

1035:                                             ; preds = %1018, %1001
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

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

1038:                                             ; No predecessors!
  br label %1039

1039:                                             ; preds = %1038
  br label %1040

1040:                                             ; preds = %1039, %980
  br label %1041

1041:                                             ; preds = %1040
  br label %1042

1042:                                             ; preds = %1041
  %1043 = load ptr, ptr %14, align 8, !tbaa !9
  %1044 = getelementptr inbounds %struct.s2n_connection, ptr %1043, i32 0, i32 32
  %1045 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1044, i32 0, i32 7
  store ptr null, ptr %1045, align 8, !tbaa !45
  br label %1046

1046:                                             ; preds = %1042
  %1047 = load i32, ptr @test_count, align 4, !tbaa !5
  %1048 = add nsw i32 %1047, 1
  store i32 %1048, ptr @test_count, align 4, !tbaa !5
  %1049 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_sct_list_extension, i32 0, i32 5), align 8, !tbaa !15
  %1050 = load ptr, ptr %14, align 8, !tbaa !9
  %1051 = call zeroext i1 %1049(ptr noundef %1050)
  br i1 %1051, label %1052, label %1105

1052:                                             ; preds = %1046
  br label %1053

1053:                                             ; preds = %1052
  br label %1054

1054:                                             ; preds = %1053
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %1055 = call ptr @__errno_location() #10
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  store i32 %1056, ptr %25, align 4, !tbaa !5
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @s2n_print_stacktrace(ptr noundef %1057)
  %1059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1060 = trunc i8 %1059 to i1
  br i1 %1060, label %1061, label %1083

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

1066:                                             ; preds = %1061
  %1067 = load i32, ptr %25, align 4, !tbaa !5
  %1068 = call ptr @__errno_location() #10
  store i32 %1067, ptr %1068, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror(i32 noundef %1072, ptr noundef @.str.3)
  %1074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @s2n_strerror_debug(i32 noundef %1075, ptr noundef @.str.3)
  %1077 = call ptr @__errno_location() #10
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @strerror(i32 noundef %1078) #9
  %1080 = call ptr @__errno_location() #10
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1069, ptr noundef @.str, i32 noundef %1070, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 69, ptr noundef %1073, ptr noundef %1076, ptr noundef %1079, i32 noundef %1081) #9
  br label %1100

1083:                                             ; preds = %1061, %1054
  %1084 = load i32, ptr %25, align 4, !tbaa !5
  %1085 = call ptr @__errno_location() #10
  store i32 %1084, ptr %1085, align 4, !tbaa !5
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = load i32, ptr @test_count, align 4, !tbaa !5
  %1088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  %1090 = call ptr @s2n_strerror(i32 noundef %1089, ptr noundef @.str.3)
  %1091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror_debug(i32 noundef %1092, ptr noundef @.str.3)
  %1094 = call ptr @__errno_location() #10
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = call ptr @strerror(i32 noundef %1095) #9
  %1097 = call ptr @__errno_location() #10
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  %1099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1086, ptr noundef @.str.4, i32 noundef %1087, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 69, ptr noundef %1090, ptr noundef %1093, ptr noundef %1096, i32 noundef %1098) #9
  br label %1100

1100:                                             ; preds = %1083, %1066
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1101

1101:                                             ; preds = %1100
  br label %1102

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

1103:                                             ; No predecessors!
  br label %1104

1104:                                             ; preds = %1103
  br label %1105

1105:                                             ; preds = %1104, %1046
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106
  br label %1108

1108:                                             ; preds = %1107
  %1109 = load i32, ptr @test_count, align 4, !tbaa !5
  %1110 = add nsw i32 %1109, 1
  store i32 %1110, ptr @test_count, align 4, !tbaa !5
  %1111 = load ptr, ptr %14, align 8, !tbaa !9
  %1112 = load ptr, ptr %10, align 8, !tbaa !9
  %1113 = call i32 @s2n_test_enable_sending_extension(ptr noundef %1111, ptr noundef %1112)
  %1114 = icmp eq i32 %1113, -1
  br i1 %1114, label %1115, label %1168

1115:                                             ; preds = %1108
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

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

1124:                                             ; preds = %1117
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @fileno(ptr noundef %1125) #9
  %1127 = call i32 @isatty(i32 noundef %1126) #9
  %1128 = icmp ne i32 %1127, 0
  br i1 %1128, label %1129, label %1146

1129:                                             ; preds = %1124
  %1130 = load i32, ptr %26, align 4, !tbaa !5
  %1131 = call ptr @__errno_location() #10
  store i32 %1130, ptr %1131, align 4, !tbaa !5
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = load i32, ptr @test_count, align 4, !tbaa !5
  %1134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1135 = load i32, ptr %1134, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror(i32 noundef %1135, ptr noundef @.str.3)
  %1137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror_debug(i32 noundef %1138, ptr noundef @.str.3)
  %1140 = call ptr @__errno_location() #10
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @strerror(i32 noundef %1141) #9
  %1143 = call ptr @__errno_location() #10
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1132, ptr noundef @.str, i32 noundef %1133, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 72, ptr noundef %1136, ptr noundef %1139, ptr noundef %1142, i32 noundef %1144) #9
  br label %1163

1146:                                             ; preds = %1124, %1117
  %1147 = load i32, ptr %26, align 4, !tbaa !5
  %1148 = call ptr @__errno_location() #10
  store i32 %1147, ptr %1148, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror(i32 noundef %1152, ptr noundef @.str.3)
  %1154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror_debug(i32 noundef %1155, ptr noundef @.str.3)
  %1157 = call ptr @__errno_location() #10
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #9
  %1160 = call ptr @__errno_location() #10
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1149, ptr noundef @.str.4, i32 noundef %1150, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 72, ptr noundef %1153, ptr noundef %1156, ptr noundef %1159, i32 noundef %1161) #9
  br label %1163

1163:                                             ; preds = %1146, %1129
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1164

1164:                                             ; preds = %1163
  br label %1165

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

1166:                                             ; No predecessors!
  br label %1167

1167:                                             ; preds = %1166
  br label %1168

1168:                                             ; preds = %1167, %1108
  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 %14, align 8, !tbaa !9
  %1175 = getelementptr inbounds %struct.s2n_connection, ptr %1174, i32 0, i32 32
  %1176 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1175, i32 0, i32 7
  %1177 = load ptr, ptr %1176, align 8, !tbaa !45
  %1178 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %1177, i32 0, i32 3
  %1179 = call i32 @s2n_free(ptr noundef %1178)
  %1180 = icmp eq i32 %1179, -1
  br i1 %1180, label %1181, label %1234

1181:                                             ; preds = %1171
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

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

1190:                                             ; preds = %1183
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = call i32 @fileno(ptr noundef %1191) #9
  %1193 = call i32 @isatty(i32 noundef %1192) #9
  %1194 = icmp ne i32 %1193, 0
  br i1 %1194, label %1195, label %1212

1195:                                             ; preds = %1190
  %1196 = load i32, ptr %27, align 4, !tbaa !5
  %1197 = call ptr @__errno_location() #10
  store i32 %1196, ptr %1197, align 4, !tbaa !5
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = load i32, ptr @test_count, align 4, !tbaa !5
  %1200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1201 = load i32, ptr %1200, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror(i32 noundef %1201, ptr noundef @.str.3)
  %1203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = call ptr @s2n_strerror_debug(i32 noundef %1204, ptr noundef @.str.3)
  %1206 = call ptr @__errno_location() #10
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  %1208 = call ptr @strerror(i32 noundef %1207) #9
  %1209 = call ptr @__errno_location() #10
  %1210 = load i32, ptr %1209, align 4, !tbaa !5
  %1211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1198, ptr noundef @.str, i32 noundef %1199, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 73, ptr noundef %1202, ptr noundef %1205, ptr noundef %1208, i32 noundef %1210) #9
  br label %1229

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

1229:                                             ; preds = %1212, %1195
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1230

1230:                                             ; preds = %1229
  br label %1231

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

1232:                                             ; No predecessors!
  br label %1233

1233:                                             ; preds = %1232
  br label %1234

1234:                                             ; preds = %1233, %1171
  br label %1235

1235:                                             ; preds = %1234
  br label %1236

1236:                                             ; preds = %1235
  br label %1237

1237:                                             ; preds = %1236
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = add nsw i32 %1238, 1
  store i32 %1239, ptr @test_count, align 4, !tbaa !5
  %1240 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_sct_list_extension, i32 0, i32 5), align 8, !tbaa !15
  %1241 = load ptr, ptr %14, align 8, !tbaa !9
  %1242 = call zeroext i1 %1240(ptr noundef %1241)
  br i1 %1242, label %1243, label %1296

1243:                                             ; preds = %1237
  br label %1244

1244:                                             ; preds = %1243
  br label %1245

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

1252:                                             ; preds = %1245
  %1253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1254 = call i32 @fileno(ptr noundef %1253) #9
  %1255 = call i32 @isatty(i32 noundef %1254) #9
  %1256 = icmp ne i32 %1255, 0
  br i1 %1256, label %1257, label %1274

1257:                                             ; preds = %1252
  %1258 = load i32, ptr %28, align 4, !tbaa !5
  %1259 = call ptr @__errno_location() #10
  store i32 %1258, ptr %1259, align 4, !tbaa !5
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = load i32, ptr @test_count, align 4, !tbaa !5
  %1262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror(i32 noundef %1263, ptr noundef @.str.3)
  %1265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call ptr @s2n_strerror_debug(i32 noundef %1266, ptr noundef @.str.3)
  %1268 = call ptr @__errno_location() #10
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = call ptr @strerror(i32 noundef %1269) #9
  %1271 = call ptr @__errno_location() #10
  %1272 = load i32, ptr %1271, align 4, !tbaa !5
  %1273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1260, ptr noundef @.str, i32 noundef %1261, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 74, ptr noundef %1264, ptr noundef %1267, ptr noundef %1270, i32 noundef %1272) #9
  br label %1291

1274:                                             ; preds = %1252, %1245
  %1275 = load i32, ptr %28, align 4, !tbaa !5
  %1276 = call ptr @__errno_location() #10
  store i32 %1275, ptr %1276, align 4, !tbaa !5
  %1277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1278 = load i32, ptr @test_count, align 4, !tbaa !5
  %1279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror(i32 noundef %1280, ptr noundef @.str.3)
  %1282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror_debug(i32 noundef %1283, ptr noundef @.str.3)
  %1285 = call ptr @__errno_location() #10
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = call ptr @strerror(i32 noundef %1286) #9
  %1288 = call ptr @__errno_location() #10
  %1289 = load i32, ptr %1288, align 4, !tbaa !5
  %1290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1277, ptr noundef @.str.4, i32 noundef %1278, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 74, ptr noundef %1281, ptr noundef %1284, ptr noundef %1287, i32 noundef %1289) #9
  br label %1291

1291:                                             ; preds = %1274, %1257
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1292

1292:                                             ; preds = %1291
  br label %1293

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

1294:                                             ; No predecessors!
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

1296:                                             ; preds = %1295, %1237
  br label %1297

1297:                                             ; preds = %1296
  br label %1298

1298:                                             ; preds = %1297
  br label %1299

1299:                                             ; preds = %1298
  %1300 = load i32, ptr @test_count, align 4, !tbaa !5
  %1301 = add nsw i32 %1300, 1
  store i32 %1301, ptr @test_count, align 4, !tbaa !5
  %1302 = load ptr, ptr %14, align 8, !tbaa !9
  %1303 = call i32 @s2n_connection_free(ptr noundef %1302)
  %1304 = icmp eq i32 %1303, -1
  br i1 %1304, label %1305, label %1358

1305:                                             ; preds = %1299
  br label %1306

1306:                                             ; preds = %1305
  br label %1307

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

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

1319:                                             ; preds = %1314
  %1320 = load i32, ptr %29, align 4, !tbaa !5
  %1321 = call ptr @__errno_location() #10
  store i32 %1320, ptr %1321, align 4, !tbaa !5
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror(i32 noundef %1325, ptr noundef @.str.3)
  %1327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror_debug(i32 noundef %1328, ptr noundef @.str.3)
  %1330 = call ptr @__errno_location() #10
  %1331 = load i32, ptr %1330, align 4, !tbaa !5
  %1332 = call ptr @strerror(i32 noundef %1331) #9
  %1333 = call ptr @__errno_location() #10
  %1334 = load i32, ptr %1333, align 4, !tbaa !5
  %1335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1322, ptr noundef @.str, i32 noundef %1323, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 76, ptr noundef %1326, ptr noundef %1329, ptr noundef %1332, i32 noundef %1334) #9
  br label %1353

1336:                                             ; preds = %1314, %1307
  %1337 = load i32, ptr %29, align 4, !tbaa !5
  %1338 = call ptr @__errno_location() #10
  store i32 %1337, ptr %1338, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef @.str.3)
  %1344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror_debug(i32 noundef %1345, ptr noundef @.str.3)
  %1347 = call ptr @__errno_location() #10
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @strerror(i32 noundef %1348) #9
  %1350 = call ptr @__errno_location() #10
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1339, ptr noundef @.str.4, i32 noundef %1340, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 76, ptr noundef %1343, ptr noundef %1346, ptr noundef %1349, i32 noundef %1351) #9
  br label %1353

1353:                                             ; preds = %1336, %1319
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

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

1356:                                             ; No predecessors!
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357, %1299
  br label %1359

1359:                                             ; preds = %1358
  br label %1360

1360:                                             ; preds = %1359
  br label %1361

1361:                                             ; preds = %1360
  %1362 = load i32, ptr @test_count, align 4, !tbaa !5
  %1363 = add nsw i32 %1362, 1
  store i32 %1363, ptr @test_count, align 4, !tbaa !5
  %1364 = load ptr, ptr %12, align 8, !tbaa !9
  %1365 = call i32 @s2n_config_free(ptr noundef %1364)
  %1366 = icmp eq i32 %1365, -1
  br i1 %1366, label %1367, label %1420

1367:                                             ; preds = %1361
  br label %1368

1368:                                             ; preds = %1367
  br label %1369

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

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

1381:                                             ; preds = %1376
  %1382 = load i32, ptr %30, align 4, !tbaa !5
  %1383 = call ptr @__errno_location() #10
  store i32 %1382, ptr %1383, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1387, ptr noundef @.str.3)
  %1389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call ptr @s2n_strerror_debug(i32 noundef %1390, ptr noundef @.str.3)
  %1392 = call ptr @__errno_location() #10
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call ptr @strerror(i32 noundef %1393) #9
  %1395 = call ptr @__errno_location() #10
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1384, ptr noundef @.str, i32 noundef %1385, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 77, ptr noundef %1388, ptr noundef %1391, ptr noundef %1394, i32 noundef %1396) #9
  br label %1415

1398:                                             ; preds = %1376, %1369
  %1399 = load i32, ptr %30, align 4, !tbaa !5
  %1400 = call ptr @__errno_location() #10
  store i32 %1399, ptr %1400, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1404, ptr noundef @.str.3)
  %1406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror_debug(i32 noundef %1407, ptr noundef @.str.3)
  %1409 = call ptr @__errno_location() #10
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #9
  %1412 = call ptr @__errno_location() #10
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef @.str.4, i32 noundef %1402, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 77, ptr noundef %1405, ptr noundef %1408, ptr noundef %1411, i32 noundef %1413) #9
  br label %1415

1415:                                             ; preds = %1398, %1381
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

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

1418:                                             ; No predecessors!
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419, %1361
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  store ptr null, ptr %31, align 8, !tbaa !9
  br label %1423

1423:                                             ; preds = %1422
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %1425 = add nsw i32 %1424, 1
  store i32 %1425, ptr @test_count, align 4, !tbaa !5
  %1426 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1426, ptr %31, align 8, !tbaa !9
  %1427 = icmp eq ptr %1426, null
  br i1 %1427, label %1428, label %1481

1428:                                             ; preds = %1423
  br label %1429

1429:                                             ; preds = %1428
  br label %1430

1430:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %1431 = call ptr @__errno_location() #10
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  store i32 %1432, ptr %32, align 4, !tbaa !5
  %1433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1434 = call i32 @s2n_print_stacktrace(ptr noundef %1433)
  %1435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1436 = trunc i8 %1435 to i1
  br i1 %1436, label %1437, label %1459

1437:                                             ; preds = %1430
  %1438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1439 = call i32 @fileno(ptr noundef %1438) #9
  %1440 = call i32 @isatty(i32 noundef %1439) #9
  %1441 = icmp ne i32 %1440, 0
  br i1 %1441, label %1442, label %1459

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

1459:                                             ; preds = %1437, %1430
  %1460 = load i32, ptr %32, align 4, !tbaa !5
  %1461 = call ptr @__errno_location() #10
  store i32 %1460, ptr %1461, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror(i32 noundef %1465, ptr noundef @.str.3)
  %1467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror_debug(i32 noundef %1468, ptr noundef @.str.3)
  %1470 = call ptr @__errno_location() #10
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call ptr @strerror(i32 noundef %1471) #9
  %1473 = call ptr @__errno_location() #10
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef @.str.4, i32 noundef %1463, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 83, ptr noundef %1466, ptr noundef %1469, ptr noundef %1472, i32 noundef %1474) #9
  br label %1476

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

1477:                                             ; preds = %1476
  br label %1478

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

1479:                                             ; No predecessors!
  br label %1480

1480:                                             ; preds = %1479
  br label %1481

1481:                                             ; preds = %1480, %1423
  br label %1482

1482:                                             ; preds = %1481
  br label %1483

1483:                                             ; preds = %1482
  br label %1484

1484:                                             ; preds = %1483
  %1485 = load i32, ptr @test_count, align 4, !tbaa !5
  %1486 = add nsw i32 %1485, 1
  store i32 %1486, ptr @test_count, align 4, !tbaa !5
  %1487 = load ptr, ptr %31, align 8, !tbaa !9
  %1488 = load ptr, ptr %10, align 8, !tbaa !9
  %1489 = call i32 @s2n_test_enable_sending_extension(ptr noundef %1487, ptr noundef %1488)
  %1490 = icmp eq i32 %1489, -1
  br i1 %1490, label %1491, label %1544

1491:                                             ; preds = %1484
  br label %1492

1492:                                             ; preds = %1491
  br label %1493

1493:                                             ; preds = %1492
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1494 = call ptr @__errno_location() #10
  %1495 = load i32, ptr %1494, align 4, !tbaa !5
  store i32 %1495, ptr %33, align 4, !tbaa !5
  %1496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1497 = call i32 @s2n_print_stacktrace(ptr noundef %1496)
  %1498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1499 = trunc i8 %1498 to i1
  br i1 %1499, label %1500, label %1522

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

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

1522:                                             ; preds = %1500, %1493
  %1523 = load i32, ptr %33, align 4, !tbaa !5
  %1524 = call ptr @__errno_location() #10
  store i32 %1523, ptr %1524, align 4, !tbaa !5
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = load i32, ptr @test_count, align 4, !tbaa !5
  %1527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call ptr @s2n_strerror(i32 noundef %1528, ptr noundef @.str.3)
  %1530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call ptr @s2n_strerror_debug(i32 noundef %1531, ptr noundef @.str.3)
  %1533 = call ptr @__errno_location() #10
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = call ptr @strerror(i32 noundef %1534) #9
  %1536 = call ptr @__errno_location() #10
  %1537 = load i32, ptr %1536, align 4, !tbaa !5
  %1538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1525, ptr noundef @.str.4, i32 noundef %1526, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 84, ptr noundef %1529, ptr noundef %1532, ptr noundef %1535, i32 noundef %1537) #9
  br label %1539

1539:                                             ; preds = %1522, %1505
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

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

1542:                                             ; No predecessors!
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

1544:                                             ; preds = %1543, %1484
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

1546:                                             ; preds = %1545
  call void @llvm.lifetime.start.p0(i64 40, ptr %34) #9
  call void @llvm.memset.p0.i64(ptr align 8 %34, i8 0, i64 40, i1 false)
  br label %1547

1547:                                             ; preds = %1546
  %1548 = load i32, ptr @test_count, align 4, !tbaa !5
  %1549 = add nsw i32 %1548, 1
  store i32 %1549, ptr @test_count, align 4, !tbaa !5
  %1550 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %34, i32 noundef 0)
  %1551 = icmp eq i32 %1550, -1
  br i1 %1551, label %1552, label %1605

1552:                                             ; preds = %1547
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

1554:                                             ; preds = %1553
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1555 = call ptr @__errno_location() #10
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  store i32 %1556, ptr %35, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = call i32 @s2n_print_stacktrace(ptr noundef %1557)
  %1559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1560 = trunc i8 %1559 to i1
  br i1 %1560, label %1561, label %1583

1561:                                             ; preds = %1554
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = call i32 @fileno(ptr noundef %1562) #9
  %1564 = call i32 @isatty(i32 noundef %1563) #9
  %1565 = icmp ne i32 %1564, 0
  br i1 %1565, label %1566, label %1583

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

1583:                                             ; preds = %1561, %1554
  %1584 = load i32, ptr %35, align 4, !tbaa !5
  %1585 = call ptr @__errno_location() #10
  store i32 %1584, ptr %1585, align 4, !tbaa !5
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = load i32, ptr @test_count, align 4, !tbaa !5
  %1588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror(i32 noundef %1589, ptr noundef @.str.3)
  %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_debug(i32 noundef %1592, ptr noundef @.str.3)
  %1594 = call ptr @__errno_location() #10
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call ptr @strerror(i32 noundef %1595) #9
  %1597 = call ptr @__errno_location() #10
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1586, ptr noundef @.str.4, i32 noundef %1587, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 87, ptr noundef %1590, ptr noundef %1593, ptr noundef %1596, i32 noundef %1598) #9
  br label %1600

1600:                                             ; preds = %1583, %1566
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

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

1603:                                             ; No predecessors!
  br label %1604

1604:                                             ; preds = %1603
  br label %1605

1605:                                             ; preds = %1604, %1547
  br label %1606

1606:                                             ; preds = %1605
  br label %1607

1607:                                             ; preds = %1606
  br label %1608

1608:                                             ; preds = %1607
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = add nsw i32 %1609, 1
  store i32 %1610, ptr @test_count, align 4, !tbaa !5
  %1611 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_sct_list_extension, i32 0, i32 3), align 8, !tbaa !46
  %1612 = load ptr, ptr %31, align 8, !tbaa !9
  %1613 = call i32 %1611(ptr noundef %1612, ptr noundef %34)
  %1614 = icmp eq i32 %1613, -1
  br i1 %1614, label %1615, label %1668

1615:                                             ; preds = %1608
  br label %1616

1616:                                             ; preds = %1615
  br label %1617

1617:                                             ; preds = %1616
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1618 = call ptr @__errno_location() #10
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  store i32 %1619, ptr %36, align 4, !tbaa !5
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @s2n_print_stacktrace(ptr noundef %1620)
  %1622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1623 = trunc i8 %1622 to i1
  br i1 %1623, label %1624, label %1646

1624:                                             ; preds = %1617
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = call i32 @fileno(ptr noundef %1625) #9
  %1627 = call i32 @isatty(i32 noundef %1626) #9
  %1628 = icmp ne i32 %1627, 0
  br i1 %1628, label %1629, label %1646

1629:                                             ; preds = %1624
  %1630 = load i32, ptr %36, align 4, !tbaa !5
  %1631 = call ptr @__errno_location() #10
  store i32 %1630, ptr %1631, align 4, !tbaa !5
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1635 = load i32, ptr %1634, align 4, !tbaa !5
  %1636 = call ptr @s2n_strerror(i32 noundef %1635, ptr noundef @.str.3)
  %1637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1638 = load i32, ptr %1637, align 4, !tbaa !5
  %1639 = call ptr @s2n_strerror_debug(i32 noundef %1638, ptr noundef @.str.3)
  %1640 = call ptr @__errno_location() #10
  %1641 = load i32, ptr %1640, align 4, !tbaa !5
  %1642 = call ptr @strerror(i32 noundef %1641) #9
  %1643 = call ptr @__errno_location() #10
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1632, ptr noundef @.str, i32 noundef %1633, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 89, ptr noundef %1636, ptr noundef %1639, ptr noundef %1642, i32 noundef %1644) #9
  br label %1663

1646:                                             ; preds = %1624, %1617
  %1647 = load i32, ptr %36, align 4, !tbaa !5
  %1648 = call ptr @__errno_location() #10
  store i32 %1647, ptr %1648, align 4, !tbaa !5
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = load i32, ptr @test_count, align 4, !tbaa !5
  %1651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1652 = load i32, ptr %1651, align 4, !tbaa !5
  %1653 = call ptr @s2n_strerror(i32 noundef %1652, ptr noundef @.str.3)
  %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_debug(i32 noundef %1655, ptr noundef @.str.3)
  %1657 = call ptr @__errno_location() #10
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call ptr @strerror(i32 noundef %1658) #9
  %1660 = call ptr @__errno_location() #10
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  %1662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1649, ptr noundef @.str.4, i32 noundef %1650, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 89, ptr noundef %1653, ptr noundef %1656, ptr noundef %1659, i32 noundef %1661) #9
  br label %1663

1663:                                             ; preds = %1646, %1629
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

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

1666:                                             ; No predecessors!
  br label %1667

1667:                                             ; preds = %1666
  br label %1668

1668:                                             ; preds = %1667, %1608
  br label %1669

1669:                                             ; preds = %1668
  br label %1670

1670:                                             ; preds = %1669
  br label %1671

1671:                                             ; preds = %1670
  %1672 = load i32, ptr @test_count, align 4, !tbaa !5
  %1673 = add nsw i32 %1672, 1
  store i32 %1673, ptr @test_count, align 4, !tbaa !5
  %1674 = getelementptr inbounds %struct.s2n_stuffer, ptr %34, i32 0, i32 2
  %1675 = load i32, ptr %1674, align 4, !tbaa !47
  %1676 = getelementptr inbounds %struct.s2n_stuffer, ptr %34, i32 0, i32 1
  %1677 = load i32, ptr %1676, align 8, !tbaa !48
  %1678 = sub i32 %1675, %1677
  %1679 = zext i32 %1678 to i64
  %1680 = icmp eq i64 %1679, 14
  br i1 %1680, label %1734, label %1681

1681:                                             ; preds = %1671
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1684 = call ptr @__errno_location() #10
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  store i32 %1685, ptr %37, align 4, !tbaa !5
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = call i32 @s2n_print_stacktrace(ptr noundef %1686)
  %1688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1689 = trunc i8 %1688 to i1
  br i1 %1689, label %1690, label %1712

1690:                                             ; preds = %1683
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = call i32 @fileno(ptr noundef %1691) #9
  %1693 = call i32 @isatty(i32 noundef %1692) #9
  %1694 = icmp ne i32 %1693, 0
  br i1 %1694, label %1695, label %1712

1695:                                             ; preds = %1690
  %1696 = load i32, ptr %37, align 4, !tbaa !5
  %1697 = call ptr @__errno_location() #10
  store i32 %1696, ptr %1697, align 4, !tbaa !5
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = load i32, ptr @test_count, align 4, !tbaa !5
  %1700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror(i32 noundef %1701, ptr noundef @.str.3)
  %1703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror_debug(i32 noundef %1704, ptr noundef @.str.3)
  %1706 = call ptr @__errno_location() #10
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @strerror(i32 noundef %1707) #9
  %1709 = call ptr @__errno_location() #10
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1698, ptr noundef @.str, i32 noundef %1699, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 91, ptr noundef %1702, ptr noundef %1705, ptr noundef %1708, i32 noundef %1710) #9
  br label %1729

1712:                                             ; preds = %1690, %1683
  %1713 = load i32, ptr %37, align 4, !tbaa !5
  %1714 = call ptr @__errno_location() #10
  store i32 %1713, ptr %1714, align 4, !tbaa !5
  %1715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1716 = load i32, ptr @test_count, align 4, !tbaa !5
  %1717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call ptr @s2n_strerror(i32 noundef %1718, ptr noundef @.str.3)
  %1720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = call ptr @s2n_strerror_debug(i32 noundef %1721, ptr noundef @.str.3)
  %1723 = call ptr @__errno_location() #10
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call ptr @strerror(i32 noundef %1724) #9
  %1726 = call ptr @__errno_location() #10
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1715, ptr noundef @.str.4, i32 noundef %1716, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 91, ptr noundef %1719, ptr noundef %1722, ptr noundef %1725, i32 noundef %1727) #9
  br label %1729

1729:                                             ; preds = %1712, %1695
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1730

1730:                                             ; preds = %1729
  br label %1731

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

1732:                                             ; No predecessors!
  br label %1733

1733:                                             ; preds = %1732
  br label %1734

1734:                                             ; preds = %1733, %1671
  br label %1735

1735:                                             ; preds = %1734
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

1737:                                             ; preds = %1736
  br label %1738

1738:                                             ; preds = %1737
  %1739 = load i32, ptr @test_count, align 4, !tbaa !5
  %1740 = add nsw i32 %1739, 1
  store i32 %1740, ptr @test_count, align 4, !tbaa !5
  %1741 = getelementptr inbounds %struct.s2n_stuffer, ptr %34, i32 0, i32 0
  %1742 = getelementptr inbounds %struct.s2n_blob, ptr %1741, i32 0, i32 0
  %1743 = load ptr, ptr %1742, align 8, !tbaa !49
  %1744 = call i32 @memcmp(ptr noundef %1743, ptr noundef @sct_list_data, i64 noundef 14) #12
  %1745 = icmp eq i32 %1744, 0
  br i1 %1745, label %1799, label %1746

1746:                                             ; preds = %1738
  br label %1747

1747:                                             ; preds = %1746
  br label %1748

1748:                                             ; preds = %1747
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1749 = call ptr @__errno_location() #10
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  store i32 %1750, ptr %38, align 4, !tbaa !5
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = call i32 @s2n_print_stacktrace(ptr noundef %1751)
  %1753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1754 = trunc i8 %1753 to i1
  br i1 %1754, label %1755, label %1777

1755:                                             ; preds = %1748
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @fileno(ptr noundef %1756) #9
  %1758 = call i32 @isatty(i32 noundef %1757) #9
  %1759 = icmp ne i32 %1758, 0
  br i1 %1759, label %1760, label %1777

1760:                                             ; preds = %1755
  %1761 = load i32, ptr %38, align 4, !tbaa !5
  %1762 = call ptr @__errno_location() #10
  store i32 %1761, ptr %1762, align 4, !tbaa !5
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @s2n_strerror(i32 noundef %1766, ptr noundef @.str.3)
  %1768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @s2n_strerror_debug(i32 noundef %1769, ptr noundef @.str.3)
  %1771 = call ptr @__errno_location() #10
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call ptr @strerror(i32 noundef %1772) #9
  %1774 = call ptr @__errno_location() #10
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1763, ptr noundef @.str, i32 noundef %1764, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 92, ptr noundef %1767, ptr noundef %1770, ptr noundef %1773, i32 noundef %1775) #9
  br label %1794

1777:                                             ; preds = %1755, %1748
  %1778 = load i32, ptr %38, align 4, !tbaa !5
  %1779 = call ptr @__errno_location() #10
  store i32 %1778, ptr %1779, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = load i32, ptr @test_count, align 4, !tbaa !5
  %1782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror(i32 noundef %1783, ptr noundef @.str.3)
  %1785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @s2n_strerror_debug(i32 noundef %1786, ptr noundef @.str.3)
  %1788 = call ptr @__errno_location() #10
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @strerror(i32 noundef %1789) #9
  %1791 = call ptr @__errno_location() #10
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1780, ptr noundef @.str.4, i32 noundef %1781, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 92, ptr noundef %1784, ptr noundef %1787, ptr noundef %1790, i32 noundef %1792) #9
  br label %1794

1794:                                             ; preds = %1777, %1760
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

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

1797:                                             ; No predecessors!
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798, %1738
  br label %1800

1800:                                             ; preds = %1799
  br label %1801

1801:                                             ; preds = %1800
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

1803:                                             ; preds = %1802
  br label %1804

1804:                                             ; preds = %1803
  %1805 = load i32, ptr @test_count, align 4, !tbaa !5
  %1806 = add nsw i32 %1805, 1
  store i32 %1806, ptr @test_count, align 4, !tbaa !5
  %1807 = call i32 @s2n_stuffer_free(ptr noundef %34)
  %1808 = icmp eq i32 %1807, -1
  br i1 %1808, label %1809, label %1862

1809:                                             ; preds = %1804
  br label %1810

1810:                                             ; preds = %1809
  br label %1811

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

1818:                                             ; preds = %1811
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = call i32 @fileno(ptr noundef %1819) #9
  %1821 = call i32 @isatty(i32 noundef %1820) #9
  %1822 = icmp ne i32 %1821, 0
  br i1 %1822, label %1823, label %1840

1823:                                             ; preds = %1818
  %1824 = load i32, ptr %39, align 4, !tbaa !5
  %1825 = call ptr @__errno_location() #10
  store i32 %1824, ptr %1825, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = load i32, ptr @test_count, align 4, !tbaa !5
  %1828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror(i32 noundef %1829, ptr noundef @.str.3)
  %1831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call ptr @s2n_strerror_debug(i32 noundef %1832, ptr noundef @.str.3)
  %1834 = call ptr @__errno_location() #10
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call ptr @strerror(i32 noundef %1835) #9
  %1837 = call ptr @__errno_location() #10
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1826, ptr noundef @.str, i32 noundef %1827, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 94, ptr noundef %1830, ptr noundef %1833, ptr noundef %1836, i32 noundef %1838) #9
  br label %1857

1840:                                             ; preds = %1818, %1811
  %1841 = load i32, ptr %39, align 4, !tbaa !5
  %1842 = call ptr @__errno_location() #10
  store i32 %1841, ptr %1842, align 4, !tbaa !5
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror(i32 noundef %1846, ptr noundef @.str.3)
  %1848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror_debug(i32 noundef %1849, ptr noundef @.str.3)
  %1851 = call ptr @__errno_location() #10
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @strerror(i32 noundef %1852) #9
  %1854 = call ptr @__errno_location() #10
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1843, ptr noundef @.str.4, i32 noundef %1844, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 94, ptr noundef %1847, ptr noundef %1850, ptr noundef %1853, i32 noundef %1855) #9
  br label %1857

1857:                                             ; preds = %1840, %1823
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1858

1858:                                             ; preds = %1857
  br label %1859

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

1860:                                             ; No predecessors!
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

1862:                                             ; preds = %1861, %1804
  br label %1863

1863:                                             ; preds = %1862
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

1865:                                             ; preds = %1864
  %1866 = load i32, ptr @test_count, align 4, !tbaa !5
  %1867 = add nsw i32 %1866, 1
  store i32 %1867, ptr @test_count, align 4, !tbaa !5
  %1868 = load ptr, ptr %31, align 8, !tbaa !9
  %1869 = call i32 @s2n_connection_free(ptr noundef %1868)
  %1870 = icmp eq i32 %1869, -1
  br i1 %1870, label %1871, label %1924

1871:                                             ; preds = %1865
  br label %1872

1872:                                             ; preds = %1871
  br label %1873

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

1880:                                             ; preds = %1873
  %1881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1882 = call i32 @fileno(ptr noundef %1881) #9
  %1883 = call i32 @isatty(i32 noundef %1882) #9
  %1884 = icmp ne i32 %1883, 0
  br i1 %1884, label %1885, label %1902

1885:                                             ; preds = %1880
  %1886 = load i32, ptr %40, align 4, !tbaa !5
  %1887 = call ptr @__errno_location() #10
  store i32 %1886, ptr %1887, align 4, !tbaa !5
  %1888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1889 = load i32, ptr @test_count, align 4, !tbaa !5
  %1890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror(i32 noundef %1891, ptr noundef @.str.3)
  %1893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = call ptr @s2n_strerror_debug(i32 noundef %1894, ptr noundef @.str.3)
  %1896 = call ptr @__errno_location() #10
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call ptr @strerror(i32 noundef %1897) #9
  %1899 = call ptr @__errno_location() #10
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1888, ptr noundef @.str, i32 noundef %1889, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 95, ptr noundef %1892, ptr noundef %1895, ptr noundef %1898, i32 noundef %1900) #9
  br label %1919

1902:                                             ; preds = %1880, %1873
  %1903 = load i32, ptr %40, align 4, !tbaa !5
  %1904 = call ptr @__errno_location() #10
  store i32 %1903, ptr %1904, align 4, !tbaa !5
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror(i32 noundef %1908, ptr noundef @.str.3)
  %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_debug(i32 noundef %1911, ptr noundef @.str.3)
  %1913 = call ptr @__errno_location() #10
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  %1915 = call ptr @strerror(i32 noundef %1914) #9
  %1916 = call ptr @__errno_location() #10
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1905, ptr noundef @.str.4, i32 noundef %1906, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 95, ptr noundef %1909, ptr noundef %1912, ptr noundef %1915, i32 noundef %1917) #9
  br label %1919

1919:                                             ; preds = %1902, %1885
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1920

1920:                                             ; preds = %1919
  br label %1921

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

1922:                                             ; No predecessors!
  br label %1923

1923:                                             ; preds = %1922
  br label %1924

1924:                                             ; preds = %1923, %1865
  br label %1925

1925:                                             ; preds = %1924
  br label %1926

1926:                                             ; preds = %1925
  call void @llvm.lifetime.end.p0(i64 40, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  store ptr null, ptr %41, align 8, !tbaa !9
  br label %1927

1927:                                             ; preds = %1926
  %1928 = load i32, ptr @test_count, align 4, !tbaa !5
  %1929 = add nsw i32 %1928, 1
  store i32 %1929, ptr @test_count, align 4, !tbaa !5
  %1930 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1930, ptr %41, align 8, !tbaa !9
  %1931 = icmp eq ptr %1930, null
  br i1 %1931, label %1932, label %1985

1932:                                             ; preds = %1927
  br label %1933

1933:                                             ; preds = %1932
  br label %1934

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

1941:                                             ; preds = %1934
  %1942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1943 = call i32 @fileno(ptr noundef %1942) #9
  %1944 = call i32 @isatty(i32 noundef %1943) #9
  %1945 = icmp ne i32 %1944, 0
  br i1 %1945, label %1946, label %1963

1946:                                             ; preds = %1941
  %1947 = load i32, ptr %42, align 4, !tbaa !5
  %1948 = call ptr @__errno_location() #10
  store i32 %1947, ptr %1948, align 4, !tbaa !5
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = load i32, ptr @test_count, align 4, !tbaa !5
  %1951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror(i32 noundef %1952, ptr noundef @.str.3)
  %1954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror_debug(i32 noundef %1955, ptr noundef @.str.3)
  %1957 = call ptr @__errno_location() #10
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @strerror(i32 noundef %1958) #9
  %1960 = call ptr @__errno_location() #10
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1949, ptr noundef @.str, i32 noundef %1950, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 101, ptr noundef %1953, ptr noundef %1956, ptr noundef %1959, i32 noundef %1961) #9
  br label %1980

1963:                                             ; preds = %1941, %1934
  %1964 = load i32, ptr %42, align 4, !tbaa !5
  %1965 = call ptr @__errno_location() #10
  store i32 %1964, ptr %1965, align 4, !tbaa !5
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = load i32, ptr @test_count, align 4, !tbaa !5
  %1968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @s2n_strerror(i32 noundef %1969, ptr noundef @.str.3)
  %1971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror_debug(i32 noundef %1972, ptr noundef @.str.3)
  %1974 = call ptr @__errno_location() #10
  %1975 = load i32, ptr %1974, align 4, !tbaa !5
  %1976 = call ptr @strerror(i32 noundef %1975) #9
  %1977 = call ptr @__errno_location() #10
  %1978 = load i32, ptr %1977, align 4, !tbaa !5
  %1979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1966, ptr noundef @.str.4, i32 noundef %1967, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 101, ptr noundef %1970, ptr noundef %1973, ptr noundef %1976, i32 noundef %1978) #9
  br label %1980

1980:                                             ; preds = %1963, %1946
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1981

1981:                                             ; preds = %1980
  br label %1982

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

1983:                                             ; No predecessors!
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984, %1927
  br label %1986

1986:                                             ; preds = %1985
  br label %1987

1987:                                             ; preds = %1986
  br label %1988

1988:                                             ; preds = %1987
  %1989 = load i32, ptr @test_count, align 4, !tbaa !5
  %1990 = add nsw i32 %1989, 1
  store i32 %1990, ptr @test_count, align 4, !tbaa !5
  %1991 = load ptr, ptr %41, align 8, !tbaa !9
  %1992 = load ptr, ptr %10, align 8, !tbaa !9
  %1993 = call i32 @s2n_test_enable_sending_extension(ptr noundef %1991, ptr noundef %1992)
  %1994 = icmp eq i32 %1993, -1
  br i1 %1994, label %1995, label %2048

1995:                                             ; preds = %1988
  br label %1996

1996:                                             ; preds = %1995
  br label %1997

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

2004:                                             ; preds = %1997
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = call i32 @fileno(ptr noundef %2005) #9
  %2007 = call i32 @isatty(i32 noundef %2006) #9
  %2008 = icmp ne i32 %2007, 0
  br i1 %2008, label %2009, label %2026

2009:                                             ; preds = %2004
  %2010 = load i32, ptr %43, align 4, !tbaa !5
  %2011 = call ptr @__errno_location() #10
  store i32 %2010, ptr %2011, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = load i32, ptr @test_count, align 4, !tbaa !5
  %2014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call ptr @s2n_strerror(i32 noundef %2015, ptr noundef @.str.3)
  %2017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = call ptr @s2n_strerror_debug(i32 noundef %2018, ptr noundef @.str.3)
  %2020 = call ptr @__errno_location() #10
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = call ptr @strerror(i32 noundef %2021) #9
  %2023 = call ptr @__errno_location() #10
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  %2025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2012, ptr noundef @.str, i32 noundef %2013, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 102, ptr noundef %2016, ptr noundef %2019, ptr noundef %2022, i32 noundef %2024) #9
  br label %2043

2026:                                             ; preds = %2004, %1997
  %2027 = load i32, ptr %43, align 4, !tbaa !5
  %2028 = call ptr @__errno_location() #10
  store i32 %2027, ptr %2028, align 4, !tbaa !5
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = load i32, ptr @test_count, align 4, !tbaa !5
  %2031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror(i32 noundef %2032, ptr noundef @.str.3)
  %2034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror_debug(i32 noundef %2035, ptr noundef @.str.3)
  %2037 = call ptr @__errno_location() #10
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call ptr @strerror(i32 noundef %2038) #9
  %2040 = call ptr @__errno_location() #10
  %2041 = load i32, ptr %2040, align 4, !tbaa !5
  %2042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2029, ptr noundef @.str.4, i32 noundef %2030, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 102, ptr noundef %2033, ptr noundef %2036, ptr noundef %2039, i32 noundef %2041) #9
  br label %2043

2043:                                             ; preds = %2026, %2009
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %2044

2044:                                             ; preds = %2043
  br label %2045

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

2046:                                             ; No predecessors!
  br label %2047

2047:                                             ; preds = %2046
  br label %2048

2048:                                             ; preds = %2047, %1988
  br label %2049

2049:                                             ; preds = %2048
  br label %2050

2050:                                             ; preds = %2049
  call void @llvm.lifetime.start.p0(i64 40, ptr %44) #9
  call void @llvm.memset.p0.i64(ptr align 8 %44, i8 0, i64 40, i1 false)
  br label %2051

2051:                                             ; preds = %2050
  %2052 = load i32, ptr @test_count, align 4, !tbaa !5
  %2053 = add nsw i32 %2052, 1
  store i32 %2053, ptr @test_count, align 4, !tbaa !5
  %2054 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %44, i32 noundef 0)
  %2055 = icmp eq i32 %2054, -1
  br i1 %2055, label %2056, label %2109

2056:                                             ; preds = %2051
  br label %2057

2057:                                             ; preds = %2056
  br label %2058

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

2065:                                             ; preds = %2058
  %2066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2067 = call i32 @fileno(ptr noundef %2066) #9
  %2068 = call i32 @isatty(i32 noundef %2067) #9
  %2069 = icmp ne i32 %2068, 0
  br i1 %2069, label %2070, label %2087

2070:                                             ; preds = %2065
  %2071 = load i32, ptr %45, align 4, !tbaa !5
  %2072 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %2081 = call ptr @__errno_location() #10
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call ptr @strerror(i32 noundef %2082) #9
  %2084 = call ptr @__errno_location() #10
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2073, ptr noundef @.str, i32 noundef %2074, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 105, ptr noundef %2077, ptr noundef %2080, ptr noundef %2083, i32 noundef %2085) #9
  br label %2104

2087:                                             ; preds = %2065, %2058
  %2088 = load i32, ptr %45, align 4, !tbaa !5
  %2089 = call ptr @__errno_location() #10
  store i32 %2088, ptr %2089, align 4, !tbaa !5
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2091 = load i32, ptr @test_count, align 4, !tbaa !5
  %2092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror(i32 noundef %2093, ptr noundef @.str.3)
  %2095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call ptr @s2n_strerror_debug(i32 noundef %2096, ptr noundef @.str.3)
  %2098 = call ptr @__errno_location() #10
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call ptr @strerror(i32 noundef %2099) #9
  %2101 = call ptr @__errno_location() #10
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2090, ptr noundef @.str.4, i32 noundef %2091, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 105, ptr noundef %2094, ptr noundef %2097, ptr noundef %2100, i32 noundef %2102) #9
  br label %2104

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

2105:                                             ; preds = %2104
  br label %2106

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

2107:                                             ; No predecessors!
  br label %2108

2108:                                             ; preds = %2107
  br label %2109

2109:                                             ; preds = %2108, %2051
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

2111:                                             ; preds = %2110
  br label %2112

2112:                                             ; preds = %2111
  %2113 = load i32, ptr @test_count, align 4, !tbaa !5
  %2114 = add nsw i32 %2113, 1
  store i32 %2114, ptr @test_count, align 4, !tbaa !5
  %2115 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_sct_list_extension, i32 0, i32 3), align 8, !tbaa !46
  %2116 = load ptr, ptr %41, align 8, !tbaa !9
  %2117 = call i32 %2115(ptr noundef %2116, ptr noundef %44)
  %2118 = icmp eq i32 %2117, -1
  br i1 %2118, label %2119, label %2172

2119:                                             ; preds = %2112
  br label %2120

2120:                                             ; preds = %2119
  br label %2121

2121:                                             ; preds = %2120
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %2122 = call ptr @__errno_location() #10
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  store i32 %2123, ptr %46, align 4, !tbaa !5
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = call i32 @s2n_print_stacktrace(ptr noundef %2124)
  %2126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2127 = trunc i8 %2126 to i1
  br i1 %2127, label %2128, label %2150

2128:                                             ; preds = %2121
  %2129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2130 = call i32 @fileno(ptr noundef %2129) #9
  %2131 = call i32 @isatty(i32 noundef %2130) #9
  %2132 = icmp ne i32 %2131, 0
  br i1 %2132, label %2133, label %2150

2133:                                             ; preds = %2128
  %2134 = load i32, ptr %46, align 4, !tbaa !5
  %2135 = call ptr @__errno_location() #10
  store i32 %2134, ptr %2135, align 4, !tbaa !5
  %2136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror(i32 noundef %2139, ptr noundef @.str.3)
  %2141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror_debug(i32 noundef %2142, ptr noundef @.str.3)
  %2144 = call ptr @__errno_location() #10
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @strerror(i32 noundef %2145) #9
  %2147 = call ptr @__errno_location() #10
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2136, ptr noundef @.str, i32 noundef %2137, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 107, ptr noundef %2140, ptr noundef %2143, ptr noundef %2146, i32 noundef %2148) #9
  br label %2167

2150:                                             ; preds = %2128, %2121
  %2151 = load i32, ptr %46, align 4, !tbaa !5
  %2152 = call ptr @__errno_location() #10
  store i32 %2151, ptr %2152, align 4, !tbaa !5
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call ptr @s2n_strerror(i32 noundef %2156, ptr noundef @.str.3)
  %2158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call ptr @s2n_strerror_debug(i32 noundef %2159, ptr noundef @.str.3)
  %2161 = call ptr @__errno_location() #10
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call ptr @strerror(i32 noundef %2162) #9
  %2164 = call ptr @__errno_location() #10
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2153, ptr noundef @.str.4, i32 noundef %2154, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 107, ptr noundef %2157, ptr noundef %2160, ptr noundef %2163, i32 noundef %2165) #9
  br label %2167

2167:                                             ; preds = %2150, %2133
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

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

2170:                                             ; No predecessors!
  br label %2171

2171:                                             ; preds = %2170
  br label %2172

2172:                                             ; preds = %2171, %2112
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173
  br label %2175

2175:                                             ; preds = %2174
  %2176 = load i32, ptr @test_count, align 4, !tbaa !5
  %2177 = add nsw i32 %2176, 1
  store i32 %2177, ptr @test_count, align 4, !tbaa !5
  %2178 = load ptr, ptr %41, align 8, !tbaa !9
  %2179 = getelementptr inbounds %struct.s2n_connection, ptr %2178, i32 0, i32 68
  %2180 = getelementptr inbounds %struct.s2n_blob, ptr %2179, i32 0, i32 1
  %2181 = load i32, ptr %2180, align 8, !tbaa !50
  %2182 = icmp eq i32 %2181, 0
  br i1 %2182, label %2236, label %2183

2183:                                             ; preds = %2175
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

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

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

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

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

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

2232:                                             ; preds = %2231
  br label %2233

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

2234:                                             ; No predecessors!
  br label %2235

2235:                                             ; preds = %2234
  br label %2236

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

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237
  br label %2239

2239:                                             ; preds = %2238
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = add nsw i32 %2240, 1
  store i32 %2241, ptr @test_count, align 4, !tbaa !5
  %2242 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_sct_list_extension, i32 0, i32 4), align 8, !tbaa !51
  %2243 = load ptr, ptr %41, align 8, !tbaa !9
  %2244 = call i32 %2242(ptr noundef %2243, ptr noundef %44)
  %2245 = icmp eq i32 %2244, -1
  br i1 %2245, label %2246, label %2299

2246:                                             ; preds = %2239
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

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

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

2260:                                             ; preds = %2255
  %2261 = load i32, ptr %48, align 4, !tbaa !5
  %2262 = call ptr @__errno_location() #10
  store i32 %2261, ptr %2262, align 4, !tbaa !5
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2266, ptr noundef @.str.3)
  %2268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2269 = load i32, ptr %2268, align 4, !tbaa !5
  %2270 = call ptr @s2n_strerror_debug(i32 noundef %2269, ptr noundef @.str.3)
  %2271 = call ptr @__errno_location() #10
  %2272 = load i32, ptr %2271, align 4, !tbaa !5
  %2273 = call ptr @strerror(i32 noundef %2272) #9
  %2274 = call ptr @__errno_location() #10
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef @.str, i32 noundef %2264, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 110, ptr noundef %2267, ptr noundef %2270, ptr noundef %2273, i32 noundef %2275) #9
  br label %2294

2277:                                             ; preds = %2255, %2248
  %2278 = load i32, ptr %48, align 4, !tbaa !5
  %2279 = call ptr @__errno_location() #10
  store i32 %2278, ptr %2279, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = load i32, ptr @test_count, align 4, !tbaa !5
  %2282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call ptr @s2n_strerror(i32 noundef %2283, ptr noundef @.str.3)
  %2285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror_debug(i32 noundef %2286, ptr noundef @.str.3)
  %2288 = call ptr @__errno_location() #10
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @strerror(i32 noundef %2289) #9
  %2291 = call ptr @__errno_location() #10
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2280, ptr noundef @.str.4, i32 noundef %2281, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 110, ptr noundef %2284, ptr noundef %2287, ptr noundef %2290, i32 noundef %2292) #9
  br label %2294

2294:                                             ; preds = %2277, %2260
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2295

2295:                                             ; preds = %2294
  br label %2296

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

2297:                                             ; No predecessors!
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

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

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  br label %2302

2302:                                             ; preds = %2301
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = add nsw i32 %2303, 1
  store i32 %2304, ptr @test_count, align 4, !tbaa !5
  %2305 = load ptr, ptr %41, align 8, !tbaa !9
  %2306 = getelementptr inbounds %struct.s2n_connection, ptr %2305, i32 0, i32 68
  %2307 = getelementptr inbounds %struct.s2n_blob, ptr %2306, i32 0, i32 1
  %2308 = load i32, ptr %2307, align 8, !tbaa !50
  %2309 = zext i32 %2308 to i64
  %2310 = icmp eq i64 %2309, 14
  br i1 %2310, label %2364, label %2311

2311:                                             ; preds = %2302
  br label %2312

2312:                                             ; preds = %2311
  br label %2313

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

2320:                                             ; preds = %2313
  %2321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2322 = call i32 @fileno(ptr noundef %2321) #9
  %2323 = call i32 @isatty(i32 noundef %2322) #9
  %2324 = icmp ne i32 %2323, 0
  br i1 %2324, label %2325, label %2342

2325:                                             ; preds = %2320
  %2326 = load i32, ptr %49, align 4, !tbaa !5
  %2327 = call ptr @__errno_location() #10
  store i32 %2326, ptr %2327, align 4, !tbaa !5
  %2328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2329 = load i32, ptr @test_count, align 4, !tbaa !5
  %2330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  %2332 = call ptr @s2n_strerror(i32 noundef %2331, ptr noundef @.str.3)
  %2333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = call ptr @s2n_strerror_debug(i32 noundef %2334, ptr noundef @.str.3)
  %2336 = call ptr @__errno_location() #10
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call ptr @strerror(i32 noundef %2337) #9
  %2339 = call ptr @__errno_location() #10
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2328, ptr noundef @.str, i32 noundef %2329, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 111, ptr noundef %2332, ptr noundef %2335, ptr noundef %2338, i32 noundef %2340) #9
  br label %2359

2342:                                             ; preds = %2320, %2313
  %2343 = load i32, ptr %49, align 4, !tbaa !5
  %2344 = call ptr @__errno_location() #10
  store i32 %2343, ptr %2344, align 4, !tbaa !5
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = load i32, ptr @test_count, align 4, !tbaa !5
  %2347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call ptr @s2n_strerror(i32 noundef %2348, ptr noundef @.str.3)
  %2350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror_debug(i32 noundef %2351, ptr noundef @.str.3)
  %2353 = call ptr @__errno_location() #10
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call ptr @strerror(i32 noundef %2354) #9
  %2356 = call ptr @__errno_location() #10
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2345, ptr noundef @.str.4, i32 noundef %2346, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 111, ptr noundef %2349, ptr noundef %2352, ptr noundef %2355, i32 noundef %2357) #9
  br label %2359

2359:                                             ; preds = %2342, %2325
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %2360

2360:                                             ; preds = %2359
  br label %2361

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

2362:                                             ; No predecessors!
  br label %2363

2363:                                             ; preds = %2362
  br label %2364

2364:                                             ; preds = %2363, %2302
  br label %2365

2365:                                             ; preds = %2364
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

2367:                                             ; preds = %2366
  br label %2368

2368:                                             ; preds = %2367
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = add nsw i32 %2369, 1
  store i32 %2370, ptr @test_count, align 4, !tbaa !5
  %2371 = load ptr, ptr %41, align 8, !tbaa !9
  %2372 = getelementptr inbounds %struct.s2n_connection, ptr %2371, i32 0, i32 68
  %2373 = getelementptr inbounds %struct.s2n_blob, ptr %2372, i32 0, i32 0
  %2374 = load ptr, ptr %2373, align 8, !tbaa !52
  %2375 = call i32 @memcmp(ptr noundef %2374, ptr noundef @sct_list_data, i64 noundef 14) #12
  %2376 = icmp eq i32 %2375, 0
  br i1 %2376, label %2430, label %2377

2377:                                             ; preds = %2368
  br label %2378

2378:                                             ; preds = %2377
  br label %2379

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

2386:                                             ; preds = %2379
  %2387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2388 = call i32 @fileno(ptr noundef %2387) #9
  %2389 = call i32 @isatty(i32 noundef %2388) #9
  %2390 = icmp ne i32 %2389, 0
  br i1 %2390, label %2391, label %2408

2391:                                             ; preds = %2386
  %2392 = load i32, ptr %50, align 4, !tbaa !5
  %2393 = call ptr @__errno_location() #10
  store i32 %2392, ptr %2393, align 4, !tbaa !5
  %2394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2395 = load i32, ptr @test_count, align 4, !tbaa !5
  %2396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  %2398 = call ptr @s2n_strerror(i32 noundef %2397, ptr noundef @.str.3)
  %2399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror_debug(i32 noundef %2400, ptr noundef @.str.3)
  %2402 = call ptr @__errno_location() #10
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call ptr @strerror(i32 noundef %2403) #9
  %2405 = call ptr @__errno_location() #10
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2394, ptr noundef @.str, i32 noundef %2395, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 112, ptr noundef %2398, ptr noundef %2401, ptr noundef %2404, i32 noundef %2406) #9
  br label %2425

2408:                                             ; preds = %2386, %2379
  %2409 = load i32, ptr %50, align 4, !tbaa !5
  %2410 = call ptr @__errno_location() #10
  store i32 %2409, ptr %2410, align 4, !tbaa !5
  %2411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2412 = load i32, ptr @test_count, align 4, !tbaa !5
  %2413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = call ptr @s2n_strerror(i32 noundef %2414, ptr noundef @.str.3)
  %2416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call ptr @s2n_strerror_debug(i32 noundef %2417, ptr noundef @.str.3)
  %2419 = call ptr @__errno_location() #10
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @strerror(i32 noundef %2420) #9
  %2422 = call ptr @__errno_location() #10
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2411, ptr noundef @.str.4, i32 noundef %2412, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 112, ptr noundef %2415, ptr noundef %2418, ptr noundef %2421, i32 noundef %2423) #9
  br label %2425

2425:                                             ; preds = %2408, %2391
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2426

2426:                                             ; preds = %2425
  br label %2427

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

2428:                                             ; No predecessors!
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

2430:                                             ; preds = %2429, %2368
  br label %2431

2431:                                             ; preds = %2430
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  %2436 = load i32, ptr @test_count, align 4, !tbaa !5
  %2437 = add nsw i32 %2436, 1
  store i32 %2437, ptr @test_count, align 4, !tbaa !5
  %2438 = call i32 @s2n_stuffer_free(ptr noundef %44)
  %2439 = icmp eq i32 %2438, -1
  br i1 %2439, label %2440, label %2493

2440:                                             ; preds = %2435
  br label %2441

2441:                                             ; preds = %2440
  br label %2442

2442:                                             ; preds = %2441
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %2443 = call ptr @__errno_location() #10
  %2444 = load i32, ptr %2443, align 4, !tbaa !5
  store i32 %2444, ptr %51, align 4, !tbaa !5
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @s2n_print_stacktrace(ptr noundef %2445)
  %2447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2448 = trunc i8 %2447 to i1
  br i1 %2448, label %2449, label %2471

2449:                                             ; preds = %2442
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = call i32 @fileno(ptr noundef %2450) #9
  %2452 = call i32 @isatty(i32 noundef %2451) #9
  %2453 = icmp ne i32 %2452, 0
  br i1 %2453, label %2454, label %2471

2454:                                             ; preds = %2449
  %2455 = load i32, ptr %51, align 4, !tbaa !5
  %2456 = call ptr @__errno_location() #10
  store i32 %2455, ptr %2456, align 4, !tbaa !5
  %2457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2458 = load i32, ptr @test_count, align 4, !tbaa !5
  %2459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call ptr @s2n_strerror(i32 noundef %2460, ptr noundef @.str.3)
  %2462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @s2n_strerror_debug(i32 noundef %2463, ptr noundef @.str.3)
  %2465 = call ptr @__errno_location() #10
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @strerror(i32 noundef %2466) #9
  %2468 = call ptr @__errno_location() #10
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2457, ptr noundef @.str, i32 noundef %2458, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 114, ptr noundef %2461, ptr noundef %2464, ptr noundef %2467, i32 noundef %2469) #9
  br label %2488

2471:                                             ; preds = %2449, %2442
  %2472 = load i32, ptr %51, align 4, !tbaa !5
  %2473 = call ptr @__errno_location() #10
  store i32 %2472, ptr %2473, align 4, !tbaa !5
  %2474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2475 = load i32, ptr @test_count, align 4, !tbaa !5
  %2476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror(i32 noundef %2477, ptr noundef @.str.3)
  %2479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call ptr @s2n_strerror_debug(i32 noundef %2480, ptr noundef @.str.3)
  %2482 = call ptr @__errno_location() #10
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call ptr @strerror(i32 noundef %2483) #9
  %2485 = call ptr @__errno_location() #10
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  %2487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2474, ptr noundef @.str.4, i32 noundef %2475, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 114, ptr noundef %2478, ptr noundef %2481, ptr noundef %2484, i32 noundef %2486) #9
  br label %2488

2488:                                             ; preds = %2471, %2454
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

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

2491:                                             ; No predecessors!
  br label %2492

2492:                                             ; preds = %2491
  br label %2493

2493:                                             ; preds = %2492, %2435
  br label %2494

2494:                                             ; preds = %2493
  br label %2495

2495:                                             ; preds = %2494
  br label %2496

2496:                                             ; preds = %2495
  %2497 = load i32, ptr @test_count, align 4, !tbaa !5
  %2498 = add nsw i32 %2497, 1
  store i32 %2498, ptr @test_count, align 4, !tbaa !5
  %2499 = load ptr, ptr %41, align 8, !tbaa !9
  %2500 = call i32 @s2n_connection_free(ptr noundef %2499)
  %2501 = icmp eq i32 %2500, -1
  br i1 %2501, label %2502, label %2555

2502:                                             ; preds = %2496
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

2504:                                             ; preds = %2503
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  %2505 = call ptr @__errno_location() #10
  %2506 = load i32, ptr %2505, align 4, !tbaa !5
  store i32 %2506, ptr %52, align 4, !tbaa !5
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = call i32 @s2n_print_stacktrace(ptr noundef %2507)
  %2509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2510 = trunc i8 %2509 to i1
  br i1 %2510, label %2511, label %2533

2511:                                             ; preds = %2504
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @fileno(ptr noundef %2512) #9
  %2514 = call i32 @isatty(i32 noundef %2513) #9
  %2515 = icmp ne i32 %2514, 0
  br i1 %2515, label %2516, label %2533

2516:                                             ; preds = %2511
  %2517 = load i32, ptr %52, align 4, !tbaa !5
  %2518 = call ptr @__errno_location() #10
  store i32 %2517, ptr %2518, align 4, !tbaa !5
  %2519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2520 = load i32, ptr @test_count, align 4, !tbaa !5
  %2521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = call ptr @s2n_strerror(i32 noundef %2522, ptr noundef @.str.3)
  %2524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call ptr @s2n_strerror_debug(i32 noundef %2525, ptr noundef @.str.3)
  %2527 = call ptr @__errno_location() #10
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call ptr @strerror(i32 noundef %2528) #9
  %2530 = call ptr @__errno_location() #10
  %2531 = load i32, ptr %2530, align 4, !tbaa !5
  %2532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2519, ptr noundef @.str, i32 noundef %2520, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 115, ptr noundef %2523, ptr noundef %2526, ptr noundef %2529, i32 noundef %2531) #9
  br label %2550

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

2550:                                             ; preds = %2533, %2516
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

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

2553:                                             ; No predecessors!
  br label %2554

2554:                                             ; preds = %2553
  br label %2555

2555:                                             ; preds = %2554, %2496
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

2557:                                             ; preds = %2556
  call void @llvm.lifetime.end.p0(i64 40, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  br label %2558

2558:                                             ; preds = %2557
  br label %2559

2559:                                             ; preds = %2558
  %2560 = call i32 @s2n_cleanup()
  %2561 = icmp eq i32 %2560, -1
  br i1 %2561, label %2562, label %2615

2562:                                             ; preds = %2559
  br label %2563

2563:                                             ; preds = %2562
  br label %2564

2564:                                             ; preds = %2563
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %2565 = call ptr @__errno_location() #10
  %2566 = load i32, ptr %2565, align 4, !tbaa !5
  store i32 %2566, ptr %53, align 4, !tbaa !5
  %2567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2568 = call i32 @s2n_print_stacktrace(ptr noundef %2567)
  %2569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2570 = trunc i8 %2569 to i1
  br i1 %2570, label %2571, label %2593

2571:                                             ; preds = %2564
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = call i32 @fileno(ptr noundef %2572) #9
  %2574 = call i32 @isatty(i32 noundef %2573) #9
  %2575 = icmp ne i32 %2574, 0
  br i1 %2575, label %2576, label %2593

2576:                                             ; preds = %2571
  %2577 = load i32, ptr %53, align 4, !tbaa !5
  %2578 = call ptr @__errno_location() #10
  store i32 %2577, ptr %2578, align 4, !tbaa !5
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = load i32, ptr @test_count, align 4, !tbaa !5
  %2581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = call ptr @s2n_strerror(i32 noundef %2582, ptr noundef @.str.3)
  %2584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  %2586 = call ptr @s2n_strerror_debug(i32 noundef %2585, ptr noundef @.str.3)
  %2587 = call ptr @__errno_location() #10
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call ptr @strerror(i32 noundef %2588) #9
  %2590 = call ptr @__errno_location() #10
  %2591 = load i32, ptr %2590, align 4, !tbaa !5
  %2592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2579, ptr noundef @.str, i32 noundef %2580, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 118, ptr noundef %2583, ptr noundef %2586, ptr noundef %2589, i32 noundef %2591) #9
  br label %2610

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

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

2611:                                             ; preds = %2610
  br label %2612

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

2613:                                             ; No predecessors!
  br label %2614

2614:                                             ; preds = %2613
  br label %2615

2615:                                             ; preds = %2614, %2559
  br label %2616

2616:                                             ; preds = %2615
  br label %2617

2617:                                             ; preds = %2616
  br label %2618

2618:                                             ; preds = %2617
  br label %2619

2619:                                             ; preds = %2618
  %2620 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2621 = icmp eq i32 %2620, -1
  br i1 %2621, label %2622, label %2675

2622:                                             ; preds = %2619
  br label %2623

2623:                                             ; preds = %2622
  br label %2624

2624:                                             ; preds = %2623
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2625 = call ptr @__errno_location() #10
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  store i32 %2626, ptr %54, align 4, !tbaa !5
  %2627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2628 = call i32 @s2n_print_stacktrace(ptr noundef %2627)
  %2629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2630 = trunc i8 %2629 to i1
  br i1 %2630, label %2631, label %2653

2631:                                             ; preds = %2624
  %2632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2633 = call i32 @fileno(ptr noundef %2632) #9
  %2634 = call i32 @isatty(i32 noundef %2633) #9
  %2635 = icmp ne i32 %2634, 0
  br i1 %2635, label %2636, label %2653

2636:                                             ; preds = %2631
  %2637 = load i32, ptr %54, align 4, !tbaa !5
  %2638 = call ptr @__errno_location() #10
  store i32 %2637, ptr %2638, align 4, !tbaa !5
  %2639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2640 = load i32, ptr @test_count, align 4, !tbaa !5
  %2641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2642 = load i32, ptr %2641, align 4, !tbaa !5
  %2643 = call ptr @s2n_strerror(i32 noundef %2642, ptr noundef @.str.3)
  %2644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror_debug(i32 noundef %2645, ptr noundef @.str.3)
  %2647 = call ptr @__errno_location() #10
  %2648 = load i32, ptr %2647, align 4, !tbaa !5
  %2649 = call ptr @strerror(i32 noundef %2648) #9
  %2650 = call ptr @__errno_location() #10
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2639, ptr noundef @.str, i32 noundef %2640, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 118, ptr noundef %2643, ptr noundef %2646, ptr noundef %2649, i32 noundef %2651) #9
  br label %2670

2653:                                             ; preds = %2631, %2624
  %2654 = load i32, ptr %54, align 4, !tbaa !5
  %2655 = call ptr @__errno_location() #10
  store i32 %2654, ptr %2655, align 4, !tbaa !5
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = load i32, ptr @test_count, align 4, !tbaa !5
  %2658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call ptr @s2n_strerror(i32 noundef %2659, ptr noundef @.str.3)
  %2661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  %2663 = call ptr @s2n_strerror_debug(i32 noundef %2662, ptr noundef @.str.3)
  %2664 = call ptr @__errno_location() #10
  %2665 = load i32, ptr %2664, align 4, !tbaa !5
  %2666 = call ptr @strerror(i32 noundef %2665) #9
  %2667 = call ptr @__errno_location() #10
  %2668 = load i32, ptr %2667, align 4, !tbaa !5
  %2669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2656, ptr noundef @.str.4, i32 noundef %2657, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 118, ptr noundef %2660, ptr noundef %2663, ptr noundef %2666, i32 noundef %2668) #9
  br label %2670

2670:                                             ; preds = %2653, %2636
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2671

2671:                                             ; preds = %2670
  br label %2672

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

2673:                                             ; No predecessors!
  br label %2674

2674:                                             ; preds = %2673
  br label %2675

2675:                                             ; preds = %2674, %2619
  br label %2676

2676:                                             ; preds = %2675
  br label %2677

2677:                                             ; preds = %2676
  %2678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2679 = trunc i8 %2678 to i1
  br i1 %2679, label %2680, label %2696

2680:                                             ; preds = %2677
  %2681 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2682 = call i32 @fileno(ptr noundef %2681) #9
  %2683 = call i32 @isatty(i32 noundef %2682) #9
  %2684 = icmp ne i32 %2683, 0
  br i1 %2684, label %2685, label %2696

2685:                                             ; preds = %2680
  %2686 = load i32, ptr @test_count, align 4, !tbaa !5
  %2687 = icmp ne i32 %2686, 0
  br i1 %2687, label %2688, label %2692

2688:                                             ; preds = %2685
  %2689 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2690 = load i32, ptr @test_count, align 4, !tbaa !5
  %2691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2689, ptr noundef @.str.34, i32 noundef %2690) #9
  br label %2695

2692:                                             ; preds = %2685
  %2693 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2693, ptr noundef @.str.35) #9
  br label %2695

2695:                                             ; preds = %2692, %2688
  br label %2707

2696:                                             ; preds = %2680, %2677
  %2697 = load i32, ptr @test_count, align 4, !tbaa !5
  %2698 = icmp ne i32 %2697, 0
  br i1 %2698, label %2699, label %2703

2699:                                             ; preds = %2696
  %2700 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2700, ptr noundef @.str.36, i32 noundef %2701) #9
  br label %2706

2703:                                             ; preds = %2696
  %2704 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2704, ptr noundef @.str.37) #9
  br label %2706

2706:                                             ; preds = %2703, %2699
  br label %2707

2707:                                             ; preds = %2706, %2695
  store i32 0, ptr %3, align 4
  store i32 1, ptr %55, align 4
  br label %2712

2708:                                             ; No predecessors!
  br label %2709

2709:                                             ; preds = %2708
  br label %2710

2710:                                             ; preds = %2709
  br label %2711

2711:                                             ; preds = %2710
  store i32 0, ptr %55, align 4
  br label %2712

2712:                                             ; preds = %2711, %2707
  %2713 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %10)
  %2714 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  store i32 %2713, ptr %2714, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  %2715 = load i32, ptr %55, align 4
  switch i32 %2715, label %2718 [
    i32 0, label %2716
    i32 1, label %2716
  ]

2716:                                             ; preds = %2712, %2712
  %2717 = load i32, ptr %3, align 4
  ret i32 %2717

2718:                                             ; preds = %2712
  unreachable
}

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare i32 @s2n_disable_tls13_in_test(...) #3

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #3

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

declare ptr @s2n_config_new() #3

declare ptr @s2n_connection_new(i32 noundef) #3

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

declare i32 @s2n_free(ptr noundef) #3

declare i32 @s2n_connection_free(ptr noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #3

declare i32 @s2n_cleanup() #3

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

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

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


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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@sct_list_data = external dso_local constant [14 x i8], align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [93 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_server_sct_list_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.16 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #2

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

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

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

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

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #3

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

23:                                               ; preds = %19, %12
  br label %24

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

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

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

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

52:                                               ; preds = %48, %41
  br label %53

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

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

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

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

79:                                               ; preds = %75, %68
  br label %80

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

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

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

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

108:                                              ; preds = %104, %97
  br label %109

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

121:                                              ; preds = %92
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #10
  store ptr null, ptr %3, align 8, !tbaa !9
  %122 = load i32, ptr @test_count, align 4, !tbaa !5
  %123 = add nsw i32 %122, 1
  store i32 %123, ptr @test_count, align 4, !tbaa !5
  %124 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.11) #10
  %125 = icmp eq i32 %124, -1
  br i1 %125, label %126, label %150

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

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

137:                                              ; preds = %133, %126
  br label %138

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

150:                                              ; preds = %121
  %151 = load i32, ptr @test_count, align 4, !tbaa !5
  %152 = add nsw i32 %151, 1
  store i32 %152, ptr @test_count, align 4, !tbaa !5
  %153 = call ptr @s2n_config_new() #10
  %154 = icmp eq ptr %153, null
  br i1 %154, label %155, label %179

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

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

166:                                              ; preds = %162, %155
  br label %167

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

179:                                              ; preds = %150
  %180 = load i32, ptr @test_count, align 4, !tbaa !5
  %181 = add nsw i32 %180, 1
  store i32 %181, ptr @test_count, align 4, !tbaa !5
  %182 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %183 = icmp eq ptr %182, null
  br i1 %183, label %184, label %208

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

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

195:                                              ; preds = %191, %184
  br label %196

196:                                              ; preds = %191, %195
  %.str.4.sink228 = phi ptr [ @.str.4, %195 ], [ @.str, %191 ]
  store i32 %186, ptr %185, align 4, !tbaa !5
  %197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %198 = load i32, ptr @test_count, align 4, !tbaa !5
  %199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = call ptr @s2n_strerror(i32 noundef %200, ptr noundef nonnull @.str.3) #10
  %202 = load i32, ptr %199, align 4, !tbaa !5
  %203 = call ptr @s2n_strerror_debug(i32 noundef %202, ptr noundef nonnull @.str.3) #10
  %204 = load i32, ptr %185, align 4, !tbaa !5
  %205 = call ptr @strerror(i32 noundef %204) #10
  %206 = load i32, ptr %185, align 4, !tbaa !5
  %207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %197, ptr noundef nonnull %.str.4.sink228, i32 noundef %198, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.2, i32 noundef 46, ptr noundef %201, ptr noundef %203, ptr noundef %205, i32 noundef %206) #12
  call void @exit(i32 noundef 1) #13
  unreachable

208:                                              ; preds = %179
  %209 = load i32, ptr @test_count, align 4, !tbaa !5
  %210 = add nsw i32 %209, 1
  store i32 %210, ptr @test_count, align 4, !tbaa !5
  %211 = call i32 @s2n_connection_set_config(ptr noundef nonnull %182, ptr noundef nonnull %153) #10
  %212 = icmp eq i32 %211, -1
  br i1 %212, label %213, label %237

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

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

224:                                              ; preds = %220, %213
  br label %225

225:                                              ; preds = %220, %224
  %.str.4.sink239 = phi ptr [ @.str.4, %224 ], [ @.str, %220 ]
  store i32 %215, ptr %214, align 4, !tbaa !5
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = load i32, ptr @test_count, align 4, !tbaa !5
  %228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror(i32 noundef %229, ptr noundef nonnull @.str.3) #10
  %231 = load i32, ptr %228, align 4, !tbaa !5
  %232 = call ptr @s2n_strerror_debug(i32 noundef %231, ptr noundef nonnull @.str.3) #10
  %233 = load i32, ptr %214, align 4, !tbaa !5
  %234 = call ptr @strerror(i32 noundef %233) #10
  %235 = load i32, ptr %214, align 4, !tbaa !5
  %236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %226, ptr noundef nonnull %.str.4.sink239, i32 noundef %227, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 47, ptr noundef %230, ptr noundef %232, ptr noundef %234, i32 noundef %235) #12
  call void @exit(i32 noundef 1) #13
  unreachable

237:                                              ; preds = %208
  %238 = load i32, ptr @test_count, align 4, !tbaa !5
  %239 = add nsw i32 %238, 1
  store i32 %239, ptr @test_count, align 4, !tbaa !5
  %240 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_sct_list_extension, i64 24), align 8, !tbaa !15
  %241 = call zeroext i1 %240(ptr noundef nonnull %182) #10
  br i1 %241, label %242, label %266

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

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

253:                                              ; preds = %249, %242
  br label %254

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

266:                                              ; preds = %237
  %267 = load i32, ptr @test_count, align 4, !tbaa !5
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr @test_count, align 4, !tbaa !5
  %269 = load ptr, ptr %3, align 8, !tbaa !9
  %270 = call i32 @s2n_test_enable_sending_extension(ptr noundef nonnull %182, ptr noundef %269)
  %271 = icmp eq i32 %270, -1
  br i1 %271, label %272, label %296

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

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

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

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

296:                                              ; preds = %266
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = add nsw i32 %297, 1
  store i32 %298, ptr @test_count, align 4, !tbaa !5
  %299 = call zeroext i1 %240(ptr noundef nonnull %182) #10
  br i1 %299, label %324, label %300

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

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

311:                                              ; preds = %307, %300
  br label %312

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

324:                                              ; preds = %296
  %325 = load i32, ptr @test_count, align 4, !tbaa !5
  %326 = add nsw i32 %325, 1
  store i32 %326, ptr @test_count, align 4, !tbaa !5
  %327 = load ptr, ptr %3, align 8, !tbaa !9
  %328 = call i32 @s2n_test_enable_sending_extension(ptr noundef nonnull %182, ptr noundef %327)
  %329 = icmp eq i32 %328, -1
  br i1 %329, label %330, label %354

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

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

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

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

354:                                              ; preds = %324
  %355 = getelementptr inbounds i8, ptr %182, i64 148
  store i32 1, ptr %355, align 4, !tbaa !18
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = add nsw i32 %356, 1
  store i32 %357, ptr @test_count, align 4, !tbaa !5
  %358 = call zeroext i1 %240(ptr noundef nonnull %182) #10
  br i1 %358, label %359, label %383

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

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

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

371:                                              ; preds = %366, %370
  %.str.4.sink294 = phi ptr [ @.str.4, %370 ], [ @.str, %366 ]
  store i32 %361, ptr %360, align 4, !tbaa !5
  %372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %373 = load i32, ptr @test_count, align 4, !tbaa !5
  %374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = call ptr @s2n_strerror(i32 noundef %375, ptr noundef nonnull @.str.3) #10
  %377 = load i32, ptr %374, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror_debug(i32 noundef %377, ptr noundef nonnull @.str.3) #10
  %379 = load i32, ptr %360, align 4, !tbaa !5
  %380 = call ptr @strerror(i32 noundef %379) #10
  %381 = load i32, ptr %360, align 4, !tbaa !5
  %382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %372, ptr noundef nonnull %.str.4.sink294, i32 noundef %373, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.2, i32 noundef 59, ptr noundef %376, ptr noundef %378, ptr noundef %380, i32 noundef %381) #12
  call void @exit(i32 noundef 1) #13
  unreachable

383:                                              ; preds = %354
  %384 = load i32, ptr @test_count, align 4, !tbaa !5
  %385 = add nsw i32 %384, 1
  store i32 %385, ptr @test_count, align 4, !tbaa !5
  %386 = load ptr, ptr %3, align 8, !tbaa !9
  %387 = call i32 @s2n_test_enable_sending_extension(ptr noundef nonnull %182, ptr noundef %386)
  %388 = icmp eq i32 %387, -1
  br i1 %388, label %389, label %413

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

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

400:                                              ; preds = %396, %389
  br label %401

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

413:                                              ; preds = %383
  %414 = getelementptr inbounds i8, ptr %182, i64 2816
  store i32 0, ptr %414, align 8, !tbaa !44
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = add nsw i32 %415, 1
  store i32 %416, ptr @test_count, align 4, !tbaa !5
  %417 = call zeroext i1 %240(ptr noundef nonnull %182) #10
  br i1 %417, label %418, label %442

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

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

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

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

442:                                              ; preds = %413
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %445 = load ptr, ptr %3, align 8, !tbaa !9
  %446 = call i32 @s2n_test_enable_sending_extension(ptr noundef nonnull %182, ptr noundef %445)
  %447 = icmp eq i32 %446, -1
  br i1 %447, label %448, label %472

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

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

459:                                              ; preds = %455, %448
  br label %460

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

472:                                              ; preds = %442
  %473 = getelementptr inbounds i8, ptr %182, i64 1544
  store ptr null, ptr %473, align 8, !tbaa !45
  %474 = load i32, ptr @test_count, align 4, !tbaa !5
  %475 = add nsw i32 %474, 1
  store i32 %475, ptr @test_count, align 4, !tbaa !5
  %476 = call zeroext i1 %240(ptr noundef nonnull %182) #10
  br i1 %476, label %477, label %501

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

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

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

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

501:                                              ; preds = %472
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr @test_count, align 4, !tbaa !5
  %504 = load ptr, ptr %3, align 8, !tbaa !9
  %505 = call i32 @s2n_test_enable_sending_extension(ptr noundef nonnull %182, ptr noundef %504)
  %506 = icmp eq i32 %505, -1
  br i1 %506, label %507, label %531

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

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

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

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

531:                                              ; preds = %501
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr @test_count, align 4, !tbaa !5
  %534 = load ptr, ptr %473, align 8, !tbaa !45
  %535 = getelementptr inbounds i8, ptr %534, i64 40
  %536 = call i32 @s2n_free(ptr noundef nonnull %535) #10
  %537 = icmp eq i32 %536, -1
  br i1 %537, label %538, label %562

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

545:                                              ; preds = %538
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = call i32 @fileno(ptr noundef %546) #10
  %548 = call i32 @isatty(i32 noundef %547) #10
  %.not145 = icmp eq i32 %548, 0
  br i1 %.not145, label %549, label %550

549:                                              ; preds = %545, %538
  br label %550

550:                                              ; preds = %545, %549
  %.str.4.sink360 = phi ptr [ @.str.4, %549 ], [ @.str, %545 ]
  store i32 %540, ptr %539, align 4, !tbaa !5
  %551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %552 = load i32, ptr @test_count, align 4, !tbaa !5
  %553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %554 = load i32, ptr %553, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror(i32 noundef %554, ptr noundef nonnull @.str.3) #10
  %556 = load i32, ptr %553, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror_debug(i32 noundef %556, ptr noundef nonnull @.str.3) #10
  %558 = load i32, ptr %539, align 4, !tbaa !5
  %559 = call ptr @strerror(i32 noundef %558) #10
  %560 = load i32, ptr %539, align 4, !tbaa !5
  %561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %551, ptr noundef nonnull %.str.4.sink360, i32 noundef %552, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 73, ptr noundef %555, ptr noundef %557, ptr noundef %559, i32 noundef %560) #12
  call void @exit(i32 noundef 1) #13
  unreachable

562:                                              ; preds = %531
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = add nsw i32 %563, 1
  store i32 %564, ptr @test_count, align 4, !tbaa !5
  %565 = call zeroext i1 %240(ptr noundef nonnull %182) #10
  br i1 %565, label %566, label %590

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

573:                                              ; preds = %566
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = call i32 @fileno(ptr noundef %574) #10
  %576 = call i32 @isatty(i32 noundef %575) #10
  %.not144 = icmp eq i32 %576, 0
  br i1 %.not144, label %577, label %578

577:                                              ; preds = %573, %566
  br label %578

578:                                              ; preds = %573, %577
  %.str.4.sink371 = phi ptr [ @.str.4, %577 ], [ @.str, %573 ]
  store i32 %568, ptr %567, align 4, !tbaa !5
  %579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %580 = load i32, ptr @test_count, align 4, !tbaa !5
  %581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror(i32 noundef %582, ptr noundef nonnull @.str.3) #10
  %584 = load i32, ptr %581, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror_debug(i32 noundef %584, ptr noundef nonnull @.str.3) #10
  %586 = load i32, ptr %567, align 4, !tbaa !5
  %587 = call ptr @strerror(i32 noundef %586) #10
  %588 = load i32, ptr %567, align 4, !tbaa !5
  %589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %579, ptr noundef nonnull %.str.4.sink371, i32 noundef %580, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.2, i32 noundef 74, ptr noundef %583, ptr noundef %585, ptr noundef %587, i32 noundef %588) #12
  call void @exit(i32 noundef 1) #13
  unreachable

590:                                              ; preds = %562
  %591 = load i32, ptr @test_count, align 4, !tbaa !5
  %592 = add nsw i32 %591, 1
  store i32 %592, ptr @test_count, align 4, !tbaa !5
  %593 = call i32 @s2n_connection_free(ptr noundef nonnull %182) #10
  %594 = icmp eq i32 %593, -1
  br i1 %594, label %595, label %619

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

602:                                              ; preds = %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
  %.not143 = icmp eq i32 %605, 0
  br i1 %.not143, label %606, label %607

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

607:                                              ; preds = %602, %606
  %.str.4.sink382 = phi ptr [ @.str.4, %606 ], [ @.str, %602 ]
  store i32 %597, ptr %596, align 4, !tbaa !5
  %608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %609 = load i32, ptr @test_count, align 4, !tbaa !5
  %610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call ptr @s2n_strerror(i32 noundef %611, ptr noundef nonnull @.str.3) #10
  %613 = load i32, ptr %610, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror_debug(i32 noundef %613, ptr noundef nonnull @.str.3) #10
  %615 = load i32, ptr %596, align 4, !tbaa !5
  %616 = call ptr @strerror(i32 noundef %615) #10
  %617 = load i32, ptr %596, align 4, !tbaa !5
  %618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %608, ptr noundef nonnull %.str.4.sink382, i32 noundef %609, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 76, ptr noundef %612, ptr noundef %614, ptr noundef %616, i32 noundef %617) #12
  call void @exit(i32 noundef 1) #13
  unreachable

619:                                              ; preds = %590
  %620 = load i32, ptr @test_count, align 4, !tbaa !5
  %621 = add nsw i32 %620, 1
  store i32 %621, ptr @test_count, align 4, !tbaa !5
  %622 = call i32 @s2n_config_free(ptr noundef nonnull %153) #10
  %623 = icmp eq i32 %622, -1
  br i1 %623, label %624, label %648

624:                                              ; preds = %619
  %625 = tail call ptr @__errno_location() #11
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %628 = call i32 @s2n_print_stacktrace(ptr noundef %627) #10
  %629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %630 = trunc nuw i8 %629 to i1
  br i1 %630, label %631, label %635

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

635:                                              ; preds = %631, %624
  br label %636

636:                                              ; preds = %631, %635
  %.str.4.sink393 = phi ptr [ @.str.4, %635 ], [ @.str, %631 ]
  store i32 %626, ptr %625, align 4, !tbaa !5
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = load i32, ptr @test_count, align 4, !tbaa !5
  %639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror(i32 noundef %640, ptr noundef nonnull @.str.3) #10
  %642 = load i32, ptr %639, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror_debug(i32 noundef %642, ptr noundef nonnull @.str.3) #10
  %644 = load i32, ptr %625, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #10
  %646 = load i32, ptr %625, align 4, !tbaa !5
  %647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %637, ptr noundef nonnull %.str.4.sink393, i32 noundef %638, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 77, ptr noundef %641, ptr noundef %643, ptr noundef %645, i32 noundef %646) #12
  call void @exit(i32 noundef 1) #13
  unreachable

648:                                              ; preds = %619
  %649 = load i32, ptr @test_count, align 4, !tbaa !5
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr @test_count, align 4, !tbaa !5
  %651 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %652 = icmp eq ptr %651, null
  br i1 %652, label %653, label %677

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

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

664:                                              ; preds = %660, %653
  br label %665

665:                                              ; preds = %660, %664
  %.str.4.sink404 = phi ptr [ @.str.4, %664 ], [ @.str, %660 ]
  store i32 %655, ptr %654, align 4, !tbaa !5
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = load i32, ptr @test_count, align 4, !tbaa !5
  %668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror(i32 noundef %669, ptr noundef nonnull @.str.3) #10
  %671 = load i32, ptr %668, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror_debug(i32 noundef %671, ptr noundef nonnull @.str.3) #10
  %673 = load i32, ptr %654, align 4, !tbaa !5
  %674 = call ptr @strerror(i32 noundef %673) #10
  %675 = load i32, ptr %654, align 4, !tbaa !5
  %676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %666, ptr noundef nonnull %.str.4.sink404, i32 noundef %667, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 83, ptr noundef %670, ptr noundef %672, ptr noundef %674, i32 noundef %675) #12
  call void @exit(i32 noundef 1) #13
  unreachable

677:                                              ; preds = %648
  %678 = load i32, ptr @test_count, align 4, !tbaa !5
  %679 = add nsw i32 %678, 1
  store i32 %679, ptr @test_count, align 4, !tbaa !5
  %680 = load ptr, ptr %3, align 8, !tbaa !9
  %681 = call i32 @s2n_test_enable_sending_extension(ptr noundef nonnull %651, ptr noundef %680)
  %682 = icmp eq i32 %681, -1
  br i1 %682, label %683, label %707

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

690:                                              ; preds = %683
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = call i32 @fileno(ptr noundef %691) #10
  %693 = call i32 @isatty(i32 noundef %692) #10
  %.not140 = icmp eq i32 %693, 0
  br i1 %.not140, label %694, label %695

694:                                              ; preds = %690, %683
  br label %695

695:                                              ; preds = %690, %694
  %.str.4.sink415 = phi ptr [ @.str.4, %694 ], [ @.str, %690 ]
  store i32 %685, ptr %684, align 4, !tbaa !5
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror(i32 noundef %699, ptr noundef nonnull @.str.3) #10
  %701 = load i32, ptr %698, align 4, !tbaa !5
  %702 = call ptr @s2n_strerror_debug(i32 noundef %701, ptr noundef nonnull @.str.3) #10
  %703 = load i32, ptr %684, align 4, !tbaa !5
  %704 = call ptr @strerror(i32 noundef %703) #10
  %705 = load i32, ptr %684, align 4, !tbaa !5
  %706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %696, ptr noundef nonnull %.str.4.sink415, i32 noundef %697, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 84, ptr noundef %700, ptr noundef %702, ptr noundef %704, i32 noundef %705) #12
  call void @exit(i32 noundef 1) #13
  unreachable

707:                                              ; preds = %677
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %4, i8 0, i64 40, i1 false)
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %4, i32 noundef 0) #10
  %711 = icmp eq i32 %710, -1
  br i1 %711, label %712, label %736

712:                                              ; preds = %707
  %713 = tail call ptr @__errno_location() #11
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = call i32 @s2n_print_stacktrace(ptr noundef %715) #10
  %717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %718 = trunc nuw i8 %717 to i1
  br i1 %718, label %719, label %723

719:                                              ; preds = %712
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = call i32 @fileno(ptr noundef %720) #10
  %722 = call i32 @isatty(i32 noundef %721) #10
  %.not139 = icmp eq i32 %722, 0
  br i1 %.not139, label %723, label %724

723:                                              ; preds = %719, %712
  br label %724

724:                                              ; preds = %719, %723
  %.str.4.sink426 = phi ptr [ @.str.4, %723 ], [ @.str, %719 ]
  store i32 %714, ptr %713, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @s2n_strerror(i32 noundef %728, ptr noundef nonnull @.str.3) #10
  %730 = load i32, ptr %727, align 4, !tbaa !5
  %731 = call ptr @s2n_strerror_debug(i32 noundef %730, ptr noundef nonnull @.str.3) #10
  %732 = load i32, ptr %713, align 4, !tbaa !5
  %733 = call ptr @strerror(i32 noundef %732) #10
  %734 = load i32, ptr %713, align 4, !tbaa !5
  %735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef nonnull %.str.4.sink426, i32 noundef %726, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 87, ptr noundef %729, ptr noundef %731, ptr noundef %733, i32 noundef %734) #12
  call void @exit(i32 noundef 1) #13
  unreachable

736:                                              ; preds = %707
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = add nsw i32 %737, 1
  store i32 %738, ptr @test_count, align 4, !tbaa !5
  %739 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_sct_list_extension, i64 8), align 8, !tbaa !46
  %740 = call i32 %739(ptr noundef nonnull %651, ptr noundef nonnull %4) #10
  %741 = icmp eq i32 %740, -1
  br i1 %741, label %742, label %766

742:                                              ; preds = %736
  %743 = tail call ptr @__errno_location() #11
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @s2n_print_stacktrace(ptr noundef %745) #10
  %747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %748 = trunc nuw i8 %747 to i1
  br i1 %748, label %749, label %753

749:                                              ; preds = %742
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = call i32 @fileno(ptr noundef %750) #10
  %752 = call i32 @isatty(i32 noundef %751) #10
  %.not138 = icmp eq i32 %752, 0
  br i1 %.not138, label %753, label %754

753:                                              ; preds = %749, %742
  br label %754

754:                                              ; preds = %749, %753
  %.str.4.sink437 = phi ptr [ @.str.4, %753 ], [ @.str, %749 ]
  store i32 %744, ptr %743, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror(i32 noundef %758, ptr noundef nonnull @.str.3) #10
  %760 = load i32, ptr %757, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror_debug(i32 noundef %760, ptr noundef nonnull @.str.3) #10
  %762 = load i32, ptr %743, align 4, !tbaa !5
  %763 = call ptr @strerror(i32 noundef %762) #10
  %764 = load i32, ptr %743, align 4, !tbaa !5
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %755, ptr noundef nonnull %.str.4.sink437, i32 noundef %756, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 89, ptr noundef %759, ptr noundef %761, ptr noundef %763, i32 noundef %764) #12
  call void @exit(i32 noundef 1) #13
  unreachable

766:                                              ; preds = %736
  %767 = load i32, ptr @test_count, align 4, !tbaa !5
  %768 = add nsw i32 %767, 1
  store i32 %768, ptr @test_count, align 4, !tbaa !5
  %769 = getelementptr inbounds i8, ptr %4, i64 28
  %770 = load i32, ptr %769, align 4, !tbaa !47
  %771 = getelementptr inbounds i8, ptr %4, i64 24
  %772 = load i32, ptr %771, align 8, !tbaa !48
  %773 = sub i32 %770, %772
  %774 = icmp eq i32 %773, 14
  br i1 %774, label %799, label %775

775:                                              ; preds = %766
  %776 = tail call ptr @__errno_location() #11
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = call i32 @s2n_print_stacktrace(ptr noundef %778) #10
  %780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %781 = trunc nuw i8 %780 to i1
  br i1 %781, label %782, label %786

782:                                              ; preds = %775
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = call i32 @fileno(ptr noundef %783) #10
  %785 = call i32 @isatty(i32 noundef %784) #10
  %.not118 = icmp eq i32 %785, 0
  br i1 %.not118, label %786, label %787

786:                                              ; preds = %782, %775
  br label %787

787:                                              ; preds = %782, %786
  %.str.4.sink448 = phi ptr [ @.str.4, %786 ], [ @.str, %782 ]
  store i32 %777, ptr %776, align 4, !tbaa !5
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = load i32, ptr @test_count, align 4, !tbaa !5
  %790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef nonnull @.str.3) #10
  %793 = load i32, ptr %790, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef nonnull @.str.3) #10
  %795 = load i32, ptr %776, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #10
  %797 = load i32, ptr %776, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %788, ptr noundef nonnull %.str.4.sink448, i32 noundef %789, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.2, i32 noundef 91, ptr noundef %792, ptr noundef %794, ptr noundef %796, i32 noundef %797) #12
  call void @exit(i32 noundef 1) #13
  unreachable

799:                                              ; preds = %766
  %800 = add nsw i32 %767, 2
  store i32 %800, ptr @test_count, align 4, !tbaa !5
  %801 = load ptr, ptr %4, align 8, !tbaa !49
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(14) %801, ptr noundef nonnull dereferenceable(14) @sct_list_data, i64 14)
  %802 = icmp eq i32 %bcmp, 0
  br i1 %802, label %827, label %803

803:                                              ; preds = %799
  %804 = tail call ptr @__errno_location() #11
  %805 = load i32, ptr %804, align 4, !tbaa !5
  %806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %807 = call i32 @s2n_print_stacktrace(ptr noundef %806) #10
  %808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %809 = trunc nuw i8 %808 to i1
  br i1 %809, label %810, label %814

810:                                              ; preds = %803
  %811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %812 = call i32 @fileno(ptr noundef %811) #10
  %813 = call i32 @isatty(i32 noundef %812) #10
  %.not119 = icmp eq i32 %813, 0
  br i1 %.not119, label %814, label %815

814:                                              ; preds = %810, %803
  br label %815

815:                                              ; preds = %810, %814
  %.str.4.sink459 = phi ptr [ @.str.4, %814 ], [ @.str, %810 ]
  store i32 %805, ptr %804, align 4, !tbaa !5
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = load i32, ptr @test_count, align 4, !tbaa !5
  %818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror(i32 noundef %819, ptr noundef nonnull @.str.3) #10
  %821 = load i32, ptr %818, align 4, !tbaa !5
  %822 = call ptr @s2n_strerror_debug(i32 noundef %821, ptr noundef nonnull @.str.3) #10
  %823 = load i32, ptr %804, align 4, !tbaa !5
  %824 = call ptr @strerror(i32 noundef %823) #10
  %825 = load i32, ptr %804, align 4, !tbaa !5
  %826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %816, ptr noundef nonnull %.str.4.sink459, i32 noundef %817, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 92, ptr noundef %820, ptr noundef %822, ptr noundef %824, i32 noundef %825) #12
  call void @exit(i32 noundef 1) #13
  unreachable

827:                                              ; preds = %799
  %828 = add nsw i32 %767, 3
  store i32 %828, ptr @test_count, align 4, !tbaa !5
  %829 = call i32 @s2n_stuffer_free(ptr noundef nonnull %4) #10
  %830 = icmp eq i32 %829, -1
  br i1 %830, label %831, label %855

831:                                              ; preds = %827
  %832 = tail call ptr @__errno_location() #11
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = call i32 @s2n_print_stacktrace(ptr noundef %834) #10
  %836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %837 = trunc nuw i8 %836 to i1
  br i1 %837, label %838, label %842

838:                                              ; preds = %831
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @fileno(ptr noundef %839) #10
  %841 = call i32 @isatty(i32 noundef %840) #10
  %.not137 = icmp eq i32 %841, 0
  br i1 %.not137, label %842, label %843

842:                                              ; preds = %838, %831
  br label %843

843:                                              ; preds = %838, %842
  %.str.4.sink470 = phi ptr [ @.str.4, %842 ], [ @.str, %838 ]
  store i32 %833, ptr %832, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror(i32 noundef %847, ptr noundef nonnull @.str.3) #10
  %849 = load i32, ptr %846, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror_debug(i32 noundef %849, ptr noundef nonnull @.str.3) #10
  %851 = load i32, ptr %832, align 4, !tbaa !5
  %852 = call ptr @strerror(i32 noundef %851) #10
  %853 = load i32, ptr %832, align 4, !tbaa !5
  %854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %844, ptr noundef nonnull %.str.4.sink470, i32 noundef %845, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 94, ptr noundef %848, ptr noundef %850, ptr noundef %852, i32 noundef %853) #12
  call void @exit(i32 noundef 1) #13
  unreachable

855:                                              ; preds = %827
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = add nsw i32 %856, 1
  store i32 %857, ptr @test_count, align 4, !tbaa !5
  %858 = call i32 @s2n_connection_free(ptr noundef nonnull %651) #10
  %859 = icmp eq i32 %858, -1
  br i1 %859, label %860, label %884

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

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

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

872:                                              ; preds = %867, %871
  %.str.4.sink481 = phi ptr [ @.str.4, %871 ], [ @.str, %867 ]
  store i32 %862, ptr %861, align 4, !tbaa !5
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = load i32, ptr @test_count, align 4, !tbaa !5
  %875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror(i32 noundef %876, ptr noundef nonnull @.str.3) #10
  %878 = load i32, ptr %875, align 4, !tbaa !5
  %879 = call ptr @s2n_strerror_debug(i32 noundef %878, ptr noundef nonnull @.str.3) #10
  %880 = load i32, ptr %861, align 4, !tbaa !5
  %881 = call ptr @strerror(i32 noundef %880) #10
  %882 = load i32, ptr %861, align 4, !tbaa !5
  %883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %873, ptr noundef nonnull %.str.4.sink481, i32 noundef %874, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 95, ptr noundef %877, ptr noundef %879, ptr noundef %881, i32 noundef %882) #12
  call void @exit(i32 noundef 1) #13
  unreachable

884:                                              ; preds = %855
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #10
  %885 = load i32, ptr @test_count, align 4, !tbaa !5
  %886 = add nsw i32 %885, 1
  store i32 %886, ptr @test_count, align 4, !tbaa !5
  %887 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %888 = icmp eq ptr %887, null
  br i1 %888, label %889, label %913

889:                                              ; preds = %884
  %890 = tail call ptr @__errno_location() #11
  %891 = load i32, ptr %890, align 4, !tbaa !5
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = call i32 @s2n_print_stacktrace(ptr noundef %892) #10
  %894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %895 = trunc nuw i8 %894 to i1
  br i1 %895, label %896, label %900

896:                                              ; preds = %889
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = call i32 @fileno(ptr noundef %897) #10
  %899 = call i32 @isatty(i32 noundef %898) #10
  %.not135 = icmp eq i32 %899, 0
  br i1 %.not135, label %900, label %901

900:                                              ; preds = %896, %889
  br label %901

901:                                              ; preds = %896, %900
  %.str.4.sink492 = phi ptr [ @.str.4, %900 ], [ @.str, %896 ]
  store i32 %891, ptr %890, align 4, !tbaa !5
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = load i32, ptr @test_count, align 4, !tbaa !5
  %904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror(i32 noundef %905, ptr noundef nonnull @.str.3) #10
  %907 = load i32, ptr %904, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror_debug(i32 noundef %907, ptr noundef nonnull @.str.3) #10
  %909 = load i32, ptr %890, align 4, !tbaa !5
  %910 = call ptr @strerror(i32 noundef %909) #10
  %911 = load i32, ptr %890, align 4, !tbaa !5
  %912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %902, ptr noundef nonnull %.str.4.sink492, i32 noundef %903, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 101, ptr noundef %906, ptr noundef %908, ptr noundef %910, i32 noundef %911) #12
  call void @exit(i32 noundef 1) #13
  unreachable

913:                                              ; preds = %884
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = add nsw i32 %914, 1
  store i32 %915, ptr @test_count, align 4, !tbaa !5
  %916 = load ptr, ptr %3, align 8, !tbaa !9
  %917 = call i32 @s2n_test_enable_sending_extension(ptr noundef nonnull %887, ptr noundef %916)
  %918 = icmp eq i32 %917, -1
  br i1 %918, label %919, label %943

919:                                              ; preds = %913
  %920 = tail call ptr @__errno_location() #11
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = call i32 @s2n_print_stacktrace(ptr noundef %922) #10
  %924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %925 = trunc nuw i8 %924 to i1
  br i1 %925, label %926, label %930

926:                                              ; preds = %919
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = call i32 @fileno(ptr noundef %927) #10
  %929 = call i32 @isatty(i32 noundef %928) #10
  %.not134 = icmp eq i32 %929, 0
  br i1 %.not134, label %930, label %931

930:                                              ; preds = %926, %919
  br label %931

931:                                              ; preds = %926, %930
  %.str.4.sink503 = phi ptr [ @.str.4, %930 ], [ @.str, %926 ]
  store i32 %921, ptr %920, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = load i32, ptr @test_count, align 4, !tbaa !5
  %934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror(i32 noundef %935, ptr noundef nonnull @.str.3) #10
  %937 = load i32, ptr %934, align 4, !tbaa !5
  %938 = call ptr @s2n_strerror_debug(i32 noundef %937, ptr noundef nonnull @.str.3) #10
  %939 = load i32, ptr %920, align 4, !tbaa !5
  %940 = call ptr @strerror(i32 noundef %939) #10
  %941 = load i32, ptr %920, align 4, !tbaa !5
  %942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %932, ptr noundef nonnull %.str.4.sink503, i32 noundef %933, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 102, ptr noundef %936, ptr noundef %938, ptr noundef %940, i32 noundef %941) #12
  call void @exit(i32 noundef 1) #13
  unreachable

943:                                              ; preds = %913
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %5, i8 0, i64 40, i1 false)
  %944 = load i32, ptr @test_count, align 4, !tbaa !5
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr @test_count, align 4, !tbaa !5
  %946 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %5, i32 noundef 0) #10
  %947 = icmp eq i32 %946, -1
  br i1 %947, label %948, label %972

948:                                              ; preds = %943
  %949 = tail call ptr @__errno_location() #11
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = call i32 @s2n_print_stacktrace(ptr noundef %951) #10
  %953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %954 = trunc nuw i8 %953 to i1
  br i1 %954, label %955, label %959

955:                                              ; preds = %948
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = call i32 @fileno(ptr noundef %956) #10
  %958 = call i32 @isatty(i32 noundef %957) #10
  %.not133 = icmp eq i32 %958, 0
  br i1 %.not133, label %959, label %960

959:                                              ; preds = %955, %948
  br label %960

960:                                              ; preds = %955, %959
  %.str.4.sink514 = phi ptr [ @.str.4, %959 ], [ @.str, %955 ]
  store i32 %950, ptr %949, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror(i32 noundef %964, ptr noundef nonnull @.str.3) #10
  %966 = load i32, ptr %963, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror_debug(i32 noundef %966, ptr noundef nonnull @.str.3) #10
  %968 = load i32, ptr %949, align 4, !tbaa !5
  %969 = call ptr @strerror(i32 noundef %968) #10
  %970 = load i32, ptr %949, align 4, !tbaa !5
  %971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef nonnull %.str.4.sink514, i32 noundef %962, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 105, ptr noundef %965, ptr noundef %967, ptr noundef %969, i32 noundef %970) #12
  call void @exit(i32 noundef 1) #13
  unreachable

972:                                              ; preds = %943
  %973 = load i32, ptr @test_count, align 4, !tbaa !5
  %974 = add nsw i32 %973, 1
  store i32 %974, ptr @test_count, align 4, !tbaa !5
  %975 = call i32 %739(ptr noundef nonnull %887, ptr noundef nonnull %5) #10
  %976 = icmp eq i32 %975, -1
  br i1 %976, label %977, label %1001

977:                                              ; preds = %972
  %978 = tail call ptr @__errno_location() #11
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = call i32 @s2n_print_stacktrace(ptr noundef %980) #10
  %982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %983 = trunc nuw i8 %982 to i1
  br i1 %983, label %984, label %988

984:                                              ; preds = %977
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = call i32 @fileno(ptr noundef %985) #10
  %987 = call i32 @isatty(i32 noundef %986) #10
  %.not132 = icmp eq i32 %987, 0
  br i1 %.not132, label %988, label %989

988:                                              ; preds = %984, %977
  br label %989

989:                                              ; preds = %984, %988
  %.str.4.sink525 = phi ptr [ @.str.4, %988 ], [ @.str, %984 ]
  store i32 %979, ptr %978, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror(i32 noundef %993, ptr noundef nonnull @.str.3) #10
  %995 = load i32, ptr %992, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror_debug(i32 noundef %995, ptr noundef nonnull @.str.3) #10
  %997 = load i32, ptr %978, align 4, !tbaa !5
  %998 = call ptr @strerror(i32 noundef %997) #10
  %999 = load i32, ptr %978, align 4, !tbaa !5
  %1000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %990, ptr noundef nonnull %.str.4.sink525, i32 noundef %991, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 107, ptr noundef %994, ptr noundef %996, ptr noundef %998, i32 noundef %999) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1001:                                             ; preds = %972
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr @test_count, align 4, !tbaa !5
  %1004 = getelementptr inbounds i8, ptr %887, i64 2824
  %1005 = getelementptr inbounds i8, ptr %887, i64 2832
  %1006 = load i32, ptr %1005, align 8, !tbaa !50
  %1007 = icmp eq i32 %1006, 0
  br i1 %1007, label %1032, label %1008

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

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

1019:                                             ; preds = %1015, %1008
  br label %1020

1020:                                             ; preds = %1015, %1019
  %.str.4.sink536 = phi ptr [ @.str.4, %1019 ], [ @.str, %1015 ]
  store i32 %1010, ptr %1009, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror(i32 noundef %1024, ptr noundef nonnull @.str.3) #10
  %1026 = load i32, ptr %1023, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef nonnull @.str.3) #10
  %1028 = load i32, ptr %1009, align 4, !tbaa !5
  %1029 = call ptr @strerror(i32 noundef %1028) #10
  %1030 = load i32, ptr %1009, align 4, !tbaa !5
  %1031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef nonnull %.str.4.sink536, i32 noundef %1022, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 109, ptr noundef %1025, ptr noundef %1027, ptr noundef %1029, i32 noundef %1030) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1032:                                             ; preds = %1001
  %1033 = add nsw i32 %1002, 2
  store i32 %1033, ptr @test_count, align 4, !tbaa !5
  %1034 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_sct_list_extension, i64 16), align 8, !tbaa !51
  %1035 = call i32 %1034(ptr noundef nonnull %887, ptr noundef nonnull %5) #10
  %1036 = icmp eq i32 %1035, -1
  br i1 %1036, label %1037, label %1061

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

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

1048:                                             ; preds = %1044, %1037
  br label %1049

1049:                                             ; preds = %1044, %1048
  %.str.4.sink547 = phi ptr [ @.str.4, %1048 ], [ @.str, %1044 ]
  store i32 %1039, ptr %1038, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror(i32 noundef %1053, ptr noundef nonnull @.str.3) #10
  %1055 = load i32, ptr %1052, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef nonnull @.str.3) #10
  %1057 = load i32, ptr %1038, align 4, !tbaa !5
  %1058 = call ptr @strerror(i32 noundef %1057) #10
  %1059 = load i32, ptr %1038, align 4, !tbaa !5
  %1060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef nonnull %.str.4.sink547, i32 noundef %1051, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 110, ptr noundef %1054, ptr noundef %1056, ptr noundef %1058, i32 noundef %1059) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1061:                                             ; preds = %1032
  %1062 = load i32, ptr @test_count, align 4, !tbaa !5
  %1063 = add nsw i32 %1062, 1
  store i32 %1063, ptr @test_count, align 4, !tbaa !5
  %1064 = load i32, ptr %1005, align 8, !tbaa !50
  %1065 = icmp eq i32 %1064, 14
  br i1 %1065, label %1090, label %1066

1066:                                             ; preds = %1061
  %1067 = tail call ptr @__errno_location() #11
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @s2n_print_stacktrace(ptr noundef %1069) #10
  %1071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1072 = trunc nuw i8 %1071 to i1
  br i1 %1072, label %1073, label %1077

1073:                                             ; preds = %1066
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = call i32 @fileno(ptr noundef %1074) #10
  %1076 = call i32 @isatty(i32 noundef %1075) #10
  %.not121 = icmp eq i32 %1076, 0
  br i1 %.not121, label %1077, label %1078

1077:                                             ; preds = %1073, %1066
  br label %1078

1078:                                             ; preds = %1073, %1077
  %.str.4.sink558 = phi ptr [ @.str.4, %1077 ], [ @.str, %1073 ]
  store i32 %1068, ptr %1067, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror(i32 noundef %1082, ptr noundef nonnull @.str.3) #10
  %1084 = load i32, ptr %1081, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror_debug(i32 noundef %1084, ptr noundef nonnull @.str.3) #10
  %1086 = load i32, ptr %1067, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #10
  %1088 = load i32, ptr %1067, align 4, !tbaa !5
  %1089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef nonnull %.str.4.sink558, i32 noundef %1080, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 111, ptr noundef %1083, ptr noundef %1085, ptr noundef %1087, i32 noundef %1088) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1090:                                             ; preds = %1061
  %1091 = add nsw i32 %1062, 2
  store i32 %1091, ptr @test_count, align 4, !tbaa !5
  %1092 = load ptr, ptr %1004, align 8, !tbaa !52
  %bcmp122 = call i32 @bcmp(ptr noundef nonnull dereferenceable(14) %1092, ptr noundef nonnull dereferenceable(14) @sct_list_data, i64 14)
  %1093 = icmp eq i32 %bcmp122, 0
  br i1 %1093, label %1118, label %1094

1094:                                             ; preds = %1090
  %1095 = tail call ptr @__errno_location() #11
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = call i32 @s2n_print_stacktrace(ptr noundef %1097) #10
  %1099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1100 = trunc nuw i8 %1099 to i1
  br i1 %1100, label %1101, label %1105

1101:                                             ; preds = %1094
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = call i32 @fileno(ptr noundef %1102) #10
  %1104 = call i32 @isatty(i32 noundef %1103) #10
  %.not123 = icmp eq i32 %1104, 0
  br i1 %.not123, label %1105, label %1106

1105:                                             ; preds = %1101, %1094
  br label %1106

1106:                                             ; preds = %1101, %1105
  %.str.4.sink569 = phi ptr [ @.str.4, %1105 ], [ @.str, %1101 ]
  store i32 %1096, ptr %1095, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = load i32, ptr @test_count, align 4, !tbaa !5
  %1109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror(i32 noundef %1110, ptr noundef nonnull @.str.3) #10
  %1112 = load i32, ptr %1109, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror_debug(i32 noundef %1112, ptr noundef nonnull @.str.3) #10
  %1114 = load i32, ptr %1095, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #10
  %1116 = load i32, ptr %1095, align 4, !tbaa !5
  %1117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1107, ptr noundef nonnull %.str.4.sink569, i32 noundef %1108, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 112, ptr noundef %1111, ptr noundef %1113, ptr noundef %1115, i32 noundef %1116) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1118:                                             ; preds = %1090
  %1119 = add nsw i32 %1062, 3
  store i32 %1119, ptr @test_count, align 4, !tbaa !5
  %1120 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #10
  %1121 = icmp eq i32 %1120, -1
  br i1 %1121, label %1122, label %1146

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

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

1133:                                             ; preds = %1129, %1122
  br label %1134

1134:                                             ; preds = %1129, %1133
  %.str.4.sink580 = phi ptr [ @.str.4, %1133 ], [ @.str, %1129 ]
  store i32 %1124, ptr %1123, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror(i32 noundef %1138, ptr noundef nonnull @.str.3) #10
  %1140 = load i32, ptr %1137, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror_debug(i32 noundef %1140, ptr noundef nonnull @.str.3) #10
  %1142 = load i32, ptr %1123, align 4, !tbaa !5
  %1143 = call ptr @strerror(i32 noundef %1142) #10
  %1144 = load i32, ptr %1123, align 4, !tbaa !5
  %1145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef nonnull %.str.4.sink580, i32 noundef %1136, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 114, ptr noundef %1139, ptr noundef %1141, ptr noundef %1143, i32 noundef %1144) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1146:                                             ; preds = %1118
  %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_connection_free(ptr noundef nonnull %887) #10
  %1150 = icmp eq i32 %1149, -1
  br i1 %1150, label %1151, label %1175

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

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

1162:                                             ; preds = %1158, %1151
  br label %1163

1163:                                             ; preds = %1158, %1162
  %.str.4.sink591 = phi ptr [ @.str.4, %1162 ], [ @.str, %1158 ]
  store i32 %1153, ptr %1152, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror(i32 noundef %1167, ptr noundef nonnull @.str.3) #10
  %1169 = load i32, ptr %1166, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror_debug(i32 noundef %1169, ptr noundef nonnull @.str.3) #10
  %1171 = load i32, ptr %1152, align 4, !tbaa !5
  %1172 = call ptr @strerror(i32 noundef %1171) #10
  %1173 = load i32, ptr %1152, align 4, !tbaa !5
  %1174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef nonnull %.str.4.sink591, i32 noundef %1165, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 115, ptr noundef %1168, ptr noundef %1170, ptr noundef %1172, i32 noundef %1173) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1175:                                             ; preds = %1146
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #10
  %1176 = call i32 @s2n_cleanup() #10
  %1177 = icmp eq i32 %1176, -1
  br i1 %1177, label %1178, label %1202

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

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

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

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

1202:                                             ; preds = %1175
  %1203 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %1204 = icmp eq i32 %1203, -1
  br i1 %1204, label %1205, label %1229

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

1212:                                             ; preds = %1205
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @fileno(ptr noundef %1213) #10
  %1215 = call i32 @isatty(i32 noundef %1214) #10
  %.not127 = icmp eq i32 %1215, 0
  br i1 %.not127, label %1216, label %1217

1216:                                             ; preds = %1212, %1205
  br label %1217

1217:                                             ; preds = %1212, %1216
  %.str.4.sink613 = phi ptr [ @.str.4, %1216 ], [ @.str, %1212 ]
  store i32 %1207, ptr %1206, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror(i32 noundef %1221, ptr noundef nonnull @.str.3) #10
  %1223 = load i32, ptr %1220, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror_debug(i32 noundef %1223, ptr noundef nonnull @.str.3) #10
  %1225 = load i32, ptr %1206, align 4, !tbaa !5
  %1226 = call ptr @strerror(i32 noundef %1225) #10
  %1227 = load i32, ptr %1206, align 4, !tbaa !5
  %1228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef nonnull %.str.4.sink613, i32 noundef %1219, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 118, ptr noundef %1222, ptr noundef %1224, ptr noundef %1226, i32 noundef %1227) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1229:                                             ; preds = %1202
  %1230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1231 = trunc nuw i8 %1230 to i1
  br i1 %1231, label %1232, label %1243

1232:                                             ; preds = %1229
  %1233 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1234 = call i32 @fileno(ptr noundef %1233) #10
  %1235 = call i32 @isatty(i32 noundef %1234) #10
  %.not124 = icmp eq i32 %1235, 0
  br i1 %.not124, label %1243, label %1236

1236:                                             ; preds = %1232
  %1237 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not126 = icmp eq i32 %1237, 0
  %1238 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not126, label %1241, label %1239

1239:                                             ; preds = %1236
  %1240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef nonnull @.str.34, i32 noundef %1237) #10
  br label %1250

1241:                                             ; preds = %1236
  %1242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef nonnull @.str.35) #10
  br label %1250

1243:                                             ; preds = %1232, %1229
  %1244 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not125 = icmp eq i32 %1244, 0
  %1245 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not125, label %1248, label %1246

1246:                                             ; preds = %1243
  %1247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef nonnull @.str.36, i32 noundef %1244) #10
  br label %1250

1248:                                             ; preds = %1243
  %1249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef nonnull @.str.37) #10
  br label %1250

1250:                                             ; preds = %1246, %1248, %1239, %1241
  %1251 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  ret i32 0
}

; 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 #3

declare i32 @s2n_enable_atexit() local_unnamed_addr #3

declare i32 @s2n_init() local_unnamed_addr #3

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare ptr @s2n_config_new() local_unnamed_addr #3

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #3

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

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_cleanup() local_unnamed_addr #3

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #9

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

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

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


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass