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

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

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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [85 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca %struct.s2n_stuffer, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca 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 i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca ptr, 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 i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca ptr, align 8
  %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 i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  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 %65

65:                                               ; preds = %2
  br label %66

66:                                               ; preds = %65
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %67 = load ptr, ptr @stdout, align 8, !tbaa !9
  %68 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %67, ptr noundef @.str, ptr noundef @.str.1) #8
  %69 = load ptr, ptr @stdout, align 8, !tbaa !9
  %70 = call i32 @fflush(ptr noundef %69)
  br label %71

71:                                               ; preds = %66
  %72 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %73 = icmp eq i32 %72, -1
  br i1 %73, label %74, label %125

74:                                               ; preds = %71
  br label %75

75:                                               ; preds = %74
  br label %76

76:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  %77 = call ptr @__errno_location() #9
  %78 = load i32, ptr %77, align 4, !tbaa !5
  store i32 %78, ptr %6, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = call i32 @s2n_print_stacktrace(ptr noundef %79)
  %81 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %82 = trunc i8 %81 to i1
  br i1 %82, label %83, label %105

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

88:                                               ; preds = %83
  %89 = load i32, ptr %6, align 4, !tbaa !5
  %90 = call ptr @__errno_location() #9
  store i32 %89, ptr %90, align 4, !tbaa !5
  %91 = load ptr, ptr @stderr, align 8, !tbaa !9
  %92 = load i32, ptr @test_count, align 4, !tbaa !5
  %93 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %94 = load i32, ptr %93, align 4, !tbaa !5
  %95 = call ptr @s2n_strerror(i32 noundef %94, ptr noundef @.str.4)
  %96 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = call ptr @s2n_strerror_debug(i32 noundef %97, ptr noundef @.str.4)
  %99 = call ptr @__errno_location() #9
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = call ptr @strerror(i32 noundef %100) #8
  %102 = call ptr @__errno_location() #9
  %103 = load i32, ptr %102, align 4, !tbaa !5
  %104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %91, ptr noundef @.str.2, i32 noundef %92, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 26, ptr noundef %95, ptr noundef %98, ptr noundef %101, i32 noundef %103) #8
  br label %122

105:                                              ; preds = %83, %76
  %106 = load i32, ptr %6, align 4, !tbaa !5
  %107 = call ptr @__errno_location() #9
  store i32 %106, ptr %107, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = call ptr @s2n_strerror(i32 noundef %111, ptr noundef @.str.4)
  %113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = call ptr @s2n_strerror_debug(i32 noundef %114, ptr noundef @.str.4)
  %116 = call ptr @__errno_location() #9
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = call ptr @strerror(i32 noundef %117) #8
  %119 = call ptr @__errno_location() #9
  %120 = load i32, ptr %119, align 4, !tbaa !5
  %121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef @.str.5, i32 noundef %109, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 26, ptr noundef %112, ptr noundef %115, ptr noundef %118, i32 noundef %120) #8
  br label %122

122:                                              ; preds = %105, %88
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %123

123:                                              ; preds = %122
  call void @exit(i32 noundef 1) #10
  unreachable

124:                                              ; No predecessors!
  br label %125

125:                                              ; preds = %124, %71
  br label %126

126:                                              ; preds = %125
  br label %127

127:                                              ; preds = %126
  %128 = load i32, ptr @test_count, align 4, !tbaa !5
  %129 = add nsw i32 %128, 1
  store i32 %129, ptr @test_count, align 4, !tbaa !5
  %130 = call i32 @s2n_enable_atexit()
  %131 = icmp eq i32 %130, -1
  br i1 %131, label %132, label %183

132:                                              ; preds = %127
  br label %133

133:                                              ; preds = %132
  br label %134

134:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  %135 = call ptr @__errno_location() #9
  %136 = load i32, ptr %135, align 4, !tbaa !5
  store i32 %136, ptr %7, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = call i32 @s2n_print_stacktrace(ptr noundef %137)
  %139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %140 = trunc i8 %139 to i1
  br i1 %140, label %141, label %163

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

146:                                              ; preds = %141
  %147 = load i32, ptr %7, align 4, !tbaa !5
  %148 = call ptr @__errno_location() #9
  store i32 %147, ptr %148, align 4, !tbaa !5
  %149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %150 = load i32, ptr @test_count, align 4, !tbaa !5
  %151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = call ptr @s2n_strerror(i32 noundef %152, ptr noundef @.str.4)
  %154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = call ptr @s2n_strerror_debug(i32 noundef %155, ptr noundef @.str.4)
  %157 = call ptr @__errno_location() #9
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = call ptr @strerror(i32 noundef %158) #8
  %160 = call ptr @__errno_location() #9
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef @.str.2, i32 noundef %150, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 26, ptr noundef %153, ptr noundef %156, ptr noundef %159, i32 noundef %161) #8
  br label %180

163:                                              ; preds = %141, %134
  %164 = load i32, ptr %7, align 4, !tbaa !5
  %165 = call ptr @__errno_location() #9
  store i32 %164, ptr %165, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = call ptr @s2n_strerror(i32 noundef %169, ptr noundef @.str.4)
  %171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = call ptr @s2n_strerror_debug(i32 noundef %172, ptr noundef @.str.4)
  %174 = call ptr @__errno_location() #9
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = call ptr @strerror(i32 noundef %175) #8
  %177 = call ptr @__errno_location() #9
  %178 = load i32, ptr %177, align 4, !tbaa !5
  %179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef @.str.5, i32 noundef %167, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 26, ptr noundef %170, ptr noundef %173, ptr noundef %176, i32 noundef %178) #8
  br label %180

180:                                              ; preds = %163, %146
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %181

181:                                              ; preds = %180
  call void @exit(i32 noundef 1) #10
  unreachable

182:                                              ; No predecessors!
  br label %183

183:                                              ; preds = %182, %127
  br label %184

184:                                              ; preds = %183
  br label %185

185:                                              ; preds = %184
  br label %186

186:                                              ; preds = %185
  %187 = call i32 @s2n_init()
  %188 = icmp eq i32 %187, -1
  br i1 %188, label %189, label %240

189:                                              ; preds = %186
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %192 = call ptr @__errno_location() #9
  %193 = load i32, ptr %192, align 4, !tbaa !5
  store i32 %193, ptr %8, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = call i32 @s2n_print_stacktrace(ptr noundef %194)
  %196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %197 = trunc i8 %196 to i1
  br i1 %197, label %198, label %220

198:                                              ; preds = %191
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = call i32 @fileno(ptr noundef %199) #8
  %201 = call i32 @isatty(i32 noundef %200) #8
  %202 = icmp ne i32 %201, 0
  br i1 %202, label %203, label %220

203:                                              ; preds = %198
  %204 = load i32, ptr %8, align 4, !tbaa !5
  %205 = call ptr @__errno_location() #9
  store i32 %204, ptr %205, align 4, !tbaa !5
  %206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %209 = load i32, ptr %208, align 4, !tbaa !5
  %210 = call ptr @s2n_strerror(i32 noundef %209, ptr noundef @.str.4)
  %211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %212 = load i32, ptr %211, align 4, !tbaa !5
  %213 = call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef @.str.4)
  %214 = call ptr @__errno_location() #9
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = call ptr @strerror(i32 noundef %215) #8
  %217 = call ptr @__errno_location() #9
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %206, ptr noundef @.str.2, i32 noundef %207, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 26, ptr noundef %210, ptr noundef %213, ptr noundef %216, i32 noundef %218) #8
  br label %237

220:                                              ; preds = %198, %191
  %221 = load i32, ptr %8, align 4, !tbaa !5
  %222 = call ptr @__errno_location() #9
  store i32 %221, ptr %222, align 4, !tbaa !5
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = call ptr @s2n_strerror(i32 noundef %226, ptr noundef @.str.4)
  %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_debug(i32 noundef %229, ptr noundef @.str.4)
  %231 = call ptr @__errno_location() #9
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @strerror(i32 noundef %232) #8
  %234 = call ptr @__errno_location() #9
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %223, ptr noundef @.str.5, i32 noundef %224, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 26, ptr noundef %227, ptr noundef %230, ptr noundef %233, i32 noundef %235) #8
  br label %237

237:                                              ; preds = %220, %203
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %238

238:                                              ; preds = %237
  call void @exit(i32 noundef 1) #10
  unreachable

239:                                              ; No predecessors!
  br label %240

240:                                              ; preds = %239, %186
  br label %241

241:                                              ; preds = %240
  br label %242

242:                                              ; preds = %241
  br label %243

243:                                              ; preds = %242
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = add nsw i32 %244, 1
  store i32 %245, ptr @test_count, align 4, !tbaa !5
  %246 = call i32 (...) @s2n_disable_tls13_in_test()
  %247 = icmp eq i32 %246, -1
  br i1 %247, label %248, label %299

248:                                              ; preds = %243
  br label %249

249:                                              ; preds = %248
  br label %250

250:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  %251 = call ptr @__errno_location() #9
  %252 = load i32, ptr %251, align 4, !tbaa !5
  store i32 %252, ptr %9, align 4, !tbaa !5
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = call i32 @s2n_print_stacktrace(ptr noundef %253)
  %255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %256 = trunc i8 %255 to i1
  br i1 %256, label %257, label %279

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

262:                                              ; preds = %257
  %263 = load i32, ptr %9, align 4, !tbaa !5
  %264 = call ptr @__errno_location() #9
  store i32 %263, ptr %264, align 4, !tbaa !5
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = load i32, ptr @test_count, align 4, !tbaa !5
  %267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror(i32 noundef %268, ptr noundef @.str.4)
  %270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %271 = load i32, ptr %270, align 4, !tbaa !5
  %272 = call ptr @s2n_strerror_debug(i32 noundef %271, ptr noundef @.str.4)
  %273 = call ptr @__errno_location() #9
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call ptr @strerror(i32 noundef %274) #8
  %276 = call ptr @__errno_location() #9
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %265, ptr noundef @.str.2, i32 noundef %266, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 27, ptr noundef %269, ptr noundef %272, ptr noundef %275, i32 noundef %277) #8
  br label %296

279:                                              ; preds = %257, %250
  %280 = load i32, ptr %9, align 4, !tbaa !5
  %281 = call ptr @__errno_location() #9
  store i32 %280, ptr %281, align 4, !tbaa !5
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = load i32, ptr @test_count, align 4, !tbaa !5
  %284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call ptr @s2n_strerror(i32 noundef %285, ptr noundef @.str.4)
  %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_debug(i32 noundef %288, ptr noundef @.str.4)
  %290 = call ptr @__errno_location() #9
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = call ptr @strerror(i32 noundef %291) #8
  %293 = call ptr @__errno_location() #9
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %282, ptr noundef @.str.5, i32 noundef %283, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 27, ptr noundef %286, ptr noundef %289, ptr noundef %292, i32 noundef %294) #8
  br label %296

296:                                              ; preds = %279, %262
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %297

297:                                              ; preds = %296
  call void @exit(i32 noundef 1) #10
  unreachable

298:                                              ; No predecessors!
  br label %299

299:                                              ; preds = %298, %243
  br label %300

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

301:                                              ; preds = %300
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = add nsw i32 %302, 1
  store i32 %303, ptr @test_count, align 4, !tbaa !5
  %304 = call i32 @s2n_stuffer_alloc(ptr noundef %10, i32 noundef 3)
  %305 = icmp eq i32 %304, -1
  br i1 %305, label %306, label %359

306:                                              ; preds = %301
  br label %307

307:                                              ; preds = %306
  br label %308

308:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  %309 = call ptr @__errno_location() #9
  %310 = load i32, ptr %309, align 4, !tbaa !5
  store i32 %310, ptr %11, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = call i32 @s2n_print_stacktrace(ptr noundef %311)
  %313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %314 = trunc i8 %313 to i1
  br i1 %314, label %315, label %337

315:                                              ; preds = %308
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = call i32 @fileno(ptr noundef %316) #8
  %318 = call i32 @isatty(i32 noundef %317) #8
  %319 = icmp ne i32 %318, 0
  br i1 %319, label %320, label %337

320:                                              ; preds = %315
  %321 = load i32, ptr %11, align 4, !tbaa !5
  %322 = call ptr @__errno_location() #9
  store i32 %321, ptr %322, align 4, !tbaa !5
  %323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %324 = load i32, ptr @test_count, align 4, !tbaa !5
  %325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = call ptr @s2n_strerror(i32 noundef %326, ptr noundef @.str.4)
  %328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %329 = load i32, ptr %328, align 4, !tbaa !5
  %330 = call ptr @s2n_strerror_debug(i32 noundef %329, ptr noundef @.str.4)
  %331 = call ptr @__errno_location() #9
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = call ptr @strerror(i32 noundef %332) #8
  %334 = call ptr @__errno_location() #9
  %335 = load i32, ptr %334, align 4, !tbaa !5
  %336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %323, ptr noundef @.str.2, i32 noundef %324, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 33, ptr noundef %327, ptr noundef %330, ptr noundef %333, i32 noundef %335) #8
  br label %354

337:                                              ; preds = %315, %308
  %338 = load i32, ptr %11, align 4, !tbaa !5
  %339 = call ptr @__errno_location() #9
  store i32 %338, ptr %339, align 4, !tbaa !5
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = call ptr @s2n_strerror(i32 noundef %343, ptr noundef @.str.4)
  %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_debug(i32 noundef %346, ptr noundef @.str.4)
  %348 = call ptr @__errno_location() #9
  %349 = load i32, ptr %348, align 4, !tbaa !5
  %350 = call ptr @strerror(i32 noundef %349) #8
  %351 = call ptr @__errno_location() #9
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %340, ptr noundef @.str.5, i32 noundef %341, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 33, ptr noundef %344, ptr noundef %347, ptr noundef %350, i32 noundef %352) #8
  br label %354

354:                                              ; preds = %337, %320
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  br label %355

355:                                              ; preds = %354
  br label %356

356:                                              ; preds = %355
  call void @exit(i32 noundef 1) #10
  unreachable

357:                                              ; No predecessors!
  br label %358

358:                                              ; preds = %357
  br label %359

359:                                              ; preds = %358, %301
  br label %360

360:                                              ; preds = %359
  br label %361

361:                                              ; preds = %360
  br label %362

362:                                              ; preds = %361
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = add nsw i32 %363, 1
  store i32 %364, ptr @test_count, align 4, !tbaa !5
  %365 = call i32 @s2n_send_empty_cert_chain(ptr noundef %10)
  %366 = icmp eq i32 %365, -1
  br i1 %366, label %367, label %420

367:                                              ; preds = %362
  br label %368

368:                                              ; preds = %367
  br label %369

369:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %370 = call ptr @__errno_location() #9
  %371 = load i32, ptr %370, align 4, !tbaa !5
  store i32 %371, ptr %12, align 4, !tbaa !5
  %372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %373 = call i32 @s2n_print_stacktrace(ptr noundef %372)
  %374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %375 = trunc i8 %374 to i1
  br i1 %375, label %376, label %398

376:                                              ; preds = %369
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = call i32 @fileno(ptr noundef %377) #8
  %379 = call i32 @isatty(i32 noundef %378) #8
  %380 = icmp ne i32 %379, 0
  br i1 %380, label %381, label %398

381:                                              ; preds = %376
  %382 = load i32, ptr %12, align 4, !tbaa !5
  %383 = call ptr @__errno_location() #9
  store i32 %382, ptr %383, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror(i32 noundef %387, ptr noundef @.str.4)
  %389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %390 = load i32, ptr %389, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror_debug(i32 noundef %390, ptr noundef @.str.4)
  %392 = call ptr @__errno_location() #9
  %393 = load i32, ptr %392, align 4, !tbaa !5
  %394 = call ptr @strerror(i32 noundef %393) #8
  %395 = call ptr @__errno_location() #9
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef @.str.2, i32 noundef %385, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 35, ptr noundef %388, ptr noundef %391, ptr noundef %394, i32 noundef %396) #8
  br label %415

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

415:                                              ; preds = %398, %381
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %416

416:                                              ; preds = %415
  br label %417

417:                                              ; preds = %416
  call void @exit(i32 noundef 1) #10
  unreachable

418:                                              ; No predecessors!
  br label %419

419:                                              ; preds = %418
  br label %420

420:                                              ; preds = %419, %362
  br label %421

421:                                              ; preds = %420
  br label %422

422:                                              ; preds = %421
  br label %423

423:                                              ; preds = %422
  %424 = load i32, ptr @test_count, align 4, !tbaa !5
  %425 = add nsw i32 %424, 1
  store i32 %425, ptr @test_count, align 4, !tbaa !5
  %426 = getelementptr inbounds %struct.s2n_stuffer, ptr %10, i32 0, i32 2
  %427 = load i32, ptr %426, align 4, !tbaa !15
  %428 = getelementptr inbounds %struct.s2n_stuffer, ptr %10, i32 0, i32 1
  %429 = load i32, ptr %428, align 8, !tbaa !18
  %430 = sub i32 %427, %429
  %431 = icmp eq i32 %430, 3
  br i1 %431, label %485, label %432

432:                                              ; preds = %423
  br label %433

433:                                              ; preds = %432
  br label %434

434:                                              ; preds = %433
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %435 = call ptr @__errno_location() #9
  %436 = load i32, ptr %435, align 4, !tbaa !5
  store i32 %436, ptr %13, align 4, !tbaa !5
  %437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %438 = call i32 @s2n_print_stacktrace(ptr noundef %437)
  %439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %440 = trunc i8 %439 to i1
  br i1 %440, label %441, label %463

441:                                              ; preds = %434
  %442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %443 = call i32 @fileno(ptr noundef %442) #8
  %444 = call i32 @isatty(i32 noundef %443) #8
  %445 = icmp ne i32 %444, 0
  br i1 %445, label %446, label %463

446:                                              ; preds = %441
  %447 = load i32, ptr %13, align 4, !tbaa !5
  %448 = call ptr @__errno_location() #9
  store i32 %447, ptr %448, align 4, !tbaa !5
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = call ptr @s2n_strerror(i32 noundef %452, ptr noundef @.str.4)
  %454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror_debug(i32 noundef %455, ptr noundef @.str.4)
  %457 = call ptr @__errno_location() #9
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call ptr @strerror(i32 noundef %458) #8
  %460 = call ptr @__errno_location() #9
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %449, ptr noundef @.str.2, i32 noundef %450, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 36, ptr noundef %453, ptr noundef %456, ptr noundef %459, i32 noundef %461) #8
  br label %480

463:                                              ; preds = %441, %434
  %464 = load i32, ptr %13, align 4, !tbaa !5
  %465 = call ptr @__errno_location() #9
  store i32 %464, ptr %465, align 4, !tbaa !5
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = load i32, ptr @test_count, align 4, !tbaa !5
  %468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @s2n_strerror(i32 noundef %469, ptr noundef @.str.4)
  %471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror_debug(i32 noundef %472, ptr noundef @.str.4)
  %474 = call ptr @__errno_location() #9
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #8
  %477 = call ptr @__errno_location() #9
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %466, ptr noundef @.str.5, i32 noundef %467, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 36, ptr noundef %470, ptr noundef %473, ptr noundef %476, i32 noundef %478) #8
  br label %480

480:                                              ; preds = %463, %446
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481
  call void @exit(i32 noundef 1) #10
  unreachable

483:                                              ; No predecessors!
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484, %423
  br label %486

486:                                              ; preds = %485
  br label %487

487:                                              ; preds = %486
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  store i32 0, ptr %14, align 4, !tbaa !5
  br label %488

488:                                              ; preds = %487
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr @test_count, align 4, !tbaa !5
  %491 = call i32 @s2n_stuffer_read_uint24(ptr noundef %10, ptr noundef %14)
  %492 = icmp eq i32 %491, -1
  br i1 %492, label %493, label %546

493:                                              ; preds = %488
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %496 = call ptr @__errno_location() #9
  %497 = load i32, ptr %496, align 4, !tbaa !5
  store i32 %497, ptr %15, align 4, !tbaa !5
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = call i32 @s2n_print_stacktrace(ptr noundef %498)
  %500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %501 = trunc i8 %500 to i1
  br i1 %501, label %502, label %524

502:                                              ; preds = %495
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = call i32 @fileno(ptr noundef %503) #8
  %505 = call i32 @isatty(i32 noundef %504) #8
  %506 = icmp ne i32 %505, 0
  br i1 %506, label %507, label %524

507:                                              ; preds = %502
  %508 = load i32, ptr %15, align 4, !tbaa !5
  %509 = call ptr @__errno_location() #9
  store i32 %508, ptr %509, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = load i32, ptr @test_count, align 4, !tbaa !5
  %512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %513 = load i32, ptr %512, align 4, !tbaa !5
  %514 = call ptr @s2n_strerror(i32 noundef %513, ptr noundef @.str.4)
  %515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror_debug(i32 noundef %516, ptr noundef @.str.4)
  %518 = call ptr @__errno_location() #9
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call ptr @strerror(i32 noundef %519) #8
  %521 = call ptr @__errno_location() #9
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %510, ptr noundef @.str.2, i32 noundef %511, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 38, ptr noundef %514, ptr noundef %517, ptr noundef %520, i32 noundef %522) #8
  br label %541

524:                                              ; preds = %502, %495
  %525 = load i32, ptr %15, align 4, !tbaa !5
  %526 = call ptr @__errno_location() #9
  store i32 %525, ptr %526, align 4, !tbaa !5
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = load i32, ptr @test_count, align 4, !tbaa !5
  %529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror(i32 noundef %530, ptr noundef @.str.4)
  %532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call ptr @s2n_strerror_debug(i32 noundef %533, ptr noundef @.str.4)
  %535 = call ptr @__errno_location() #9
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @strerror(i32 noundef %536) #8
  %538 = call ptr @__errno_location() #9
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %527, ptr noundef @.str.5, i32 noundef %528, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 38, ptr noundef %531, ptr noundef %534, ptr noundef %537, i32 noundef %539) #8
  br label %541

541:                                              ; preds = %524, %507
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %542

542:                                              ; preds = %541
  br label %543

543:                                              ; preds = %542
  call void @exit(i32 noundef 1) #10
  unreachable

544:                                              ; No predecessors!
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545, %488
  br label %547

547:                                              ; preds = %546
  br label %548

548:                                              ; preds = %547
  br label %549

549:                                              ; preds = %548
  %550 = load i32, ptr @test_count, align 4, !tbaa !5
  %551 = add nsw i32 %550, 1
  store i32 %551, ptr @test_count, align 4, !tbaa !5
  %552 = load i32, ptr %14, align 4, !tbaa !5
  %553 = icmp eq i32 %552, 0
  br i1 %553, label %607, label %554

554:                                              ; preds = %549
  br label %555

555:                                              ; preds = %554
  br label %556

556:                                              ; preds = %555
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %557 = call ptr @__errno_location() #9
  %558 = load i32, ptr %557, align 4, !tbaa !5
  store i32 %558, ptr %16, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = call i32 @s2n_print_stacktrace(ptr noundef %559)
  %561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %562 = trunc i8 %561 to i1
  br i1 %562, label %563, label %585

563:                                              ; preds = %556
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = call i32 @fileno(ptr noundef %564) #8
  %566 = call i32 @isatty(i32 noundef %565) #8
  %567 = icmp ne i32 %566, 0
  br i1 %567, label %568, label %585

568:                                              ; preds = %563
  %569 = load i32, ptr %16, align 4, !tbaa !5
  %570 = call ptr @__errno_location() #9
  store i32 %569, ptr %570, align 4, !tbaa !5
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = load i32, ptr @test_count, align 4, !tbaa !5
  %573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror(i32 noundef %574, ptr noundef @.str.4)
  %576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror_debug(i32 noundef %577, ptr noundef @.str.4)
  %579 = call ptr @__errno_location() #9
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @strerror(i32 noundef %580) #8
  %582 = call ptr @__errno_location() #9
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %571, ptr noundef @.str.2, i32 noundef %572, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 39, ptr noundef %575, ptr noundef %578, ptr noundef %581, i32 noundef %583) #8
  br label %602

585:                                              ; preds = %563, %556
  %586 = load i32, ptr %16, align 4, !tbaa !5
  %587 = call ptr @__errno_location() #9
  store i32 %586, ptr %587, align 4, !tbaa !5
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror(i32 noundef %591, ptr noundef @.str.4)
  %593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call ptr @s2n_strerror_debug(i32 noundef %594, ptr noundef @.str.4)
  %596 = call ptr @__errno_location() #9
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call ptr @strerror(i32 noundef %597) #8
  %599 = call ptr @__errno_location() #9
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %588, ptr noundef @.str.5, i32 noundef %589, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 39, ptr noundef %592, ptr noundef %595, ptr noundef %598, i32 noundef %600) #8
  br label %602

602:                                              ; preds = %585, %568
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %603

603:                                              ; preds = %602
  br label %604

604:                                              ; preds = %603
  call void @exit(i32 noundef 1) #10
  unreachable

605:                                              ; No predecessors!
  br label %606

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606, %549
  br label %608

608:                                              ; preds = %607
  br label %609

609:                                              ; preds = %608
  br label %610

610:                                              ; preds = %609
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr @test_count, align 4, !tbaa !5
  %613 = call i32 @s2n_stuffer_free(ptr noundef %10)
  %614 = icmp eq i32 %613, -1
  br i1 %614, label %615, label %668

615:                                              ; preds = %610
  br label %616

616:                                              ; preds = %615
  br label %617

617:                                              ; preds = %616
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %618 = call ptr @__errno_location() #9
  %619 = load i32, ptr %618, align 4, !tbaa !5
  store i32 %619, ptr %17, align 4, !tbaa !5
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = call i32 @s2n_print_stacktrace(ptr noundef %620)
  %622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %623 = trunc i8 %622 to i1
  br i1 %623, label %624, label %646

624:                                              ; preds = %617
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @fileno(ptr noundef %625) #8
  %627 = call i32 @isatty(i32 noundef %626) #8
  %628 = icmp ne i32 %627, 0
  br i1 %628, label %629, label %646

629:                                              ; preds = %624
  %630 = load i32, ptr %17, align 4, !tbaa !5
  %631 = call ptr @__errno_location() #9
  store i32 %630, ptr %631, align 4, !tbaa !5
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @s2n_strerror(i32 noundef %635, ptr noundef @.str.4)
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror_debug(i32 noundef %638, ptr noundef @.str.4)
  %640 = call ptr @__errno_location() #9
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @strerror(i32 noundef %641) #8
  %643 = call ptr @__errno_location() #9
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %632, ptr noundef @.str.2, i32 noundef %633, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 41, ptr noundef %636, ptr noundef %639, ptr noundef %642, i32 noundef %644) #8
  br label %663

646:                                              ; preds = %624, %617
  %647 = load i32, ptr %17, align 4, !tbaa !5
  %648 = call ptr @__errno_location() #9
  store i32 %647, ptr %648, align 4, !tbaa !5
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror(i32 noundef %652, ptr noundef @.str.4)
  %654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror_debug(i32 noundef %655, ptr noundef @.str.4)
  %657 = call ptr @__errno_location() #9
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @strerror(i32 noundef %658) #8
  %660 = call ptr @__errno_location() #9
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %649, ptr noundef @.str.5, i32 noundef %650, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 41, ptr noundef %653, ptr noundef %656, ptr noundef %659, i32 noundef %661) #8
  br label %663

663:                                              ; preds = %646, %629
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %664

664:                                              ; preds = %663
  br label %665

665:                                              ; preds = %664
  call void @exit(i32 noundef 1) #10
  unreachable

666:                                              ; No predecessors!
  br label %667

667:                                              ; preds = %666
  br label %668

668:                                              ; preds = %667, %610
  br label %669

669:                                              ; preds = %668
  br label %670

670:                                              ; preds = %669
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  store ptr null, ptr %18, align 8, !tbaa !9
  br label %671

671:                                              ; preds = %670
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr @test_count, align 4, !tbaa !5
  %674 = call ptr @s2n_config_new()
  store ptr %674, ptr %18, align 8, !tbaa !9
  %675 = icmp eq ptr %674, null
  br i1 %675, label %676, label %729

676:                                              ; preds = %671
  br label %677

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %677
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %679 = call ptr @__errno_location() #9
  %680 = load i32, ptr %679, align 4, !tbaa !5
  store i32 %680, ptr %19, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = call i32 @s2n_print_stacktrace(ptr noundef %681)
  %683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %684 = trunc i8 %683 to i1
  br i1 %684, label %685, label %707

685:                                              ; preds = %678
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = call i32 @fileno(ptr noundef %686) #8
  %688 = call i32 @isatty(i32 noundef %687) #8
  %689 = icmp ne i32 %688, 0
  br i1 %689, label %690, label %707

690:                                              ; preds = %685
  %691 = load i32, ptr %19, align 4, !tbaa !5
  %692 = call ptr @__errno_location() #9
  store i32 %691, ptr %692, align 4, !tbaa !5
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror(i32 noundef %696, ptr noundef @.str.4)
  %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_debug(i32 noundef %699, ptr noundef @.str.4)
  %701 = call ptr @__errno_location() #9
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call ptr @strerror(i32 noundef %702) #8
  %704 = call ptr @__errno_location() #9
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %693, ptr noundef @.str.2, i32 noundef %694, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 47, ptr noundef %697, ptr noundef %700, ptr noundef %703, i32 noundef %705) #8
  br label %724

707:                                              ; preds = %685, %678
  %708 = load i32, ptr %19, align 4, !tbaa !5
  %709 = call ptr @__errno_location() #9
  store i32 %708, ptr %709, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror(i32 noundef %713, ptr noundef @.str.4)
  %715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror_debug(i32 noundef %716, ptr noundef @.str.4)
  %718 = call ptr @__errno_location() #9
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @strerror(i32 noundef %719) #8
  %721 = call ptr @__errno_location() #9
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %710, ptr noundef @.str.5, i32 noundef %711, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 47, ptr noundef %714, ptr noundef %717, ptr noundef %720, i32 noundef %722) #8
  br label %724

724:                                              ; preds = %707, %690
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %725

725:                                              ; preds = %724
  br label %726

726:                                              ; preds = %725
  call void @exit(i32 noundef 1) #10
  unreachable

727:                                              ; No predecessors!
  br label %728

728:                                              ; preds = %727
  br label %729

729:                                              ; preds = %728, %671
  br label %730

730:                                              ; preds = %729
  br label %731

731:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  store ptr null, ptr %20, align 8, !tbaa !9
  br label %732

732:                                              ; preds = %731
  %733 = load i32, ptr @test_count, align 4, !tbaa !5
  %734 = add nsw i32 %733, 1
  store i32 %734, ptr @test_count, align 4, !tbaa !5
  %735 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %735, ptr %20, align 8, !tbaa !9
  %736 = icmp eq ptr %735, null
  br i1 %736, label %737, label %790

737:                                              ; preds = %732
  br label %738

738:                                              ; preds = %737
  br label %739

739:                                              ; preds = %738
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %740 = call ptr @__errno_location() #9
  %741 = load i32, ptr %740, align 4, !tbaa !5
  store i32 %741, ptr %21, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = call i32 @s2n_print_stacktrace(ptr noundef %742)
  %744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %745 = trunc i8 %744 to i1
  br i1 %745, label %746, label %768

746:                                              ; preds = %739
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = call i32 @fileno(ptr noundef %747) #8
  %749 = call i32 @isatty(i32 noundef %748) #8
  %750 = icmp ne i32 %749, 0
  br i1 %750, label %751, label %768

751:                                              ; preds = %746
  %752 = load i32, ptr %21, align 4, !tbaa !5
  %753 = call ptr @__errno_location() #9
  store i32 %752, ptr %753, align 4, !tbaa !5
  %754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %755 = load i32, ptr @test_count, align 4, !tbaa !5
  %756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror(i32 noundef %757, ptr noundef @.str.4)
  %759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror_debug(i32 noundef %760, ptr noundef @.str.4)
  %762 = call ptr @__errno_location() #9
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = call ptr @strerror(i32 noundef %763) #8
  %765 = call ptr @__errno_location() #9
  %766 = load i32, ptr %765, align 4, !tbaa !5
  %767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %754, ptr noundef @.str.2, i32 noundef %755, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 50, ptr noundef %758, ptr noundef %761, ptr noundef %764, i32 noundef %766) #8
  br label %785

768:                                              ; preds = %746, %739
  %769 = load i32, ptr %21, align 4, !tbaa !5
  %770 = call ptr @__errno_location() #9
  store i32 %769, ptr %770, align 4, !tbaa !5
  %771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %772 = load i32, ptr @test_count, align 4, !tbaa !5
  %773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror(i32 noundef %774, ptr noundef @.str.4)
  %776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror_debug(i32 noundef %777, ptr noundef @.str.4)
  %779 = call ptr @__errno_location() #9
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call ptr @strerror(i32 noundef %780) #8
  %782 = call ptr @__errno_location() #9
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %771, ptr noundef @.str.5, i32 noundef %772, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 50, ptr noundef %775, ptr noundef %778, ptr noundef %781, i32 noundef %783) #8
  br label %785

785:                                              ; preds = %768, %751
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %786

786:                                              ; preds = %785
  br label %787

787:                                              ; preds = %786
  call void @exit(i32 noundef 1) #10
  unreachable

788:                                              ; No predecessors!
  br label %789

789:                                              ; preds = %788
  br label %790

790:                                              ; preds = %789, %732
  br label %791

791:                                              ; preds = %790
  br label %792

792:                                              ; preds = %791
  br label %793

793:                                              ; preds = %792
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = add nsw i32 %794, 1
  store i32 %795, ptr @test_count, align 4, !tbaa !5
  %796 = load ptr, ptr %20, align 8, !tbaa !9
  %797 = load ptr, ptr %18, align 8, !tbaa !9
  %798 = call i32 @s2n_connection_set_config(ptr noundef %796, ptr noundef %797)
  %799 = icmp eq i32 %798, -1
  br i1 %799, label %800, label %853

800:                                              ; preds = %793
  br label %801

801:                                              ; preds = %800
  br label %802

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

809:                                              ; preds = %802
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @fileno(ptr noundef %810) #8
  %812 = call i32 @isatty(i32 noundef %811) #8
  %813 = icmp ne i32 %812, 0
  br i1 %813, label %814, label %831

814:                                              ; preds = %809
  %815 = load i32, ptr %22, align 4, !tbaa !5
  %816 = call ptr @__errno_location() #9
  store i32 %815, ptr %816, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %820, ptr noundef @.str.4)
  %822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror_debug(i32 noundef %823, ptr noundef @.str.4)
  %825 = call ptr @__errno_location() #9
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #8
  %828 = call ptr @__errno_location() #9
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %817, ptr noundef @.str.2, i32 noundef %818, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 51, ptr noundef %821, ptr noundef %824, ptr noundef %827, i32 noundef %829) #8
  br label %848

831:                                              ; preds = %809, %802
  %832 = load i32, ptr %22, align 4, !tbaa !5
  %833 = call ptr @__errno_location() #9
  store i32 %832, ptr %833, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %837, ptr noundef @.str.4)
  %839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror_debug(i32 noundef %840, ptr noundef @.str.4)
  %842 = call ptr @__errno_location() #9
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @strerror(i32 noundef %843) #8
  %845 = call ptr @__errno_location() #9
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %834, ptr noundef @.str.5, i32 noundef %835, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 51, ptr noundef %838, ptr noundef %841, ptr noundef %844, i32 noundef %846) #8
  br label %848

848:                                              ; preds = %831, %814
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849
  call void @exit(i32 noundef 1) #10
  unreachable

851:                                              ; No predecessors!
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852, %793
  br label %854

854:                                              ; preds = %853
  br label %855

855:                                              ; preds = %854
  br label %856

856:                                              ; preds = %855
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = load ptr, ptr %20, align 8, !tbaa !9
  %860 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %859, i32 noundef 2)
  %861 = icmp eq i32 %860, -1
  br i1 %861, label %862, label %915

862:                                              ; preds = %856
  br label %863

863:                                              ; preds = %862
  br label %864

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

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

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

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

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

911:                                              ; preds = %910
  br label %912

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

913:                                              ; No predecessors!
  br label %914

914:                                              ; preds = %913
  br label %915

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

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  br label %918

918:                                              ; preds = %917
  %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 %20, align 8, !tbaa !9
  %922 = call i32 @s2n_client_cert_send(ptr noundef %921)
  %923 = icmp eq i32 %922, -1
  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 %24) #8
  %927 = call ptr @__errno_location() #9
  %928 = load i32, ptr %927, align 4, !tbaa !5
  store i32 %928, ptr %24, 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) #8
  %936 = call i32 @isatty(i32 noundef %935) #8
  %937 = icmp ne i32 %936, 0
  br i1 %937, label %938, label %955

938:                                              ; preds = %933
  %939 = load i32, ptr %24, align 4, !tbaa !5
  %940 = call ptr @__errno_location() #9
  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.4)
  %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.4)
  %949 = call ptr @__errno_location() #9
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @strerror(i32 noundef %950) #8
  %952 = call ptr @__errno_location() #9
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef @.str.2, i32 noundef %942, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 55, ptr noundef %945, ptr noundef %948, ptr noundef %951, i32 noundef %953) #8
  br label %972

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

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

973:                                              ; preds = %972
  br label %974

974:                                              ; preds = %973
  call void @exit(i32 noundef 1) #10
  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 %20, align 8, !tbaa !9
  %984 = getelementptr inbounds %struct.s2n_connection, ptr %983, i32 0, i32 52
  %985 = getelementptr inbounds %struct.s2n_handshake, ptr %984, i32 0, i32 6
  %986 = load i32, ptr %985, align 4, !tbaa !19
  %987 = and i32 %986, 8
  %988 = icmp ne i32 %987, 0
  br i1 %988, label %1042, label %989

989:                                              ; preds = %980
  br label %990

990:                                              ; preds = %989
  br label %991

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

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

1003:                                             ; preds = %998
  %1004 = load i32, ptr %25, align 4, !tbaa !5
  %1005 = call ptr @__errno_location() #9
  store i32 %1004, ptr %1005, align 4, !tbaa !5
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = call ptr @s2n_strerror(i32 noundef %1009, ptr noundef @.str.4)
  %1011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = call ptr @s2n_strerror_debug(i32 noundef %1012, ptr noundef @.str.4)
  %1014 = call ptr @__errno_location() #9
  %1015 = load i32, ptr %1014, align 4, !tbaa !5
  %1016 = call ptr @strerror(i32 noundef %1015) #8
  %1017 = call ptr @__errno_location() #9
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  %1019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1006, ptr noundef @.str.2, i32 noundef %1007, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 58, ptr noundef %1010, ptr noundef %1013, ptr noundef %1016, i32 noundef %1018) #8
  br label %1037

1020:                                             ; preds = %998, %991
  %1021 = load i32, ptr %25, align 4, !tbaa !5
  %1022 = call ptr @__errno_location() #9
  store i32 %1021, ptr %1022, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror(i32 noundef %1026, ptr noundef @.str.4)
  %1028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror_debug(i32 noundef %1029, ptr noundef @.str.4)
  %1031 = call ptr @__errno_location() #9
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call ptr @strerror(i32 noundef %1032) #8
  %1034 = call ptr @__errno_location() #9
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef @.str.5, i32 noundef %1024, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 58, ptr noundef %1027, ptr noundef %1030, ptr noundef %1033, i32 noundef %1035) #8
  br label %1037

1037:                                             ; preds = %1020, %1003
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

1039:                                             ; preds = %1038
  call void @exit(i32 noundef 1) #10
  unreachable

1040:                                             ; No predecessors!
  br label %1041

1041:                                             ; preds = %1040
  br label %1042

1042:                                             ; preds = %1041, %980
  br label %1043

1043:                                             ; preds = %1042
  br label %1044

1044:                                             ; preds = %1043
  br label %1045

1045:                                             ; preds = %1044
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = add nsw i32 %1046, 1
  store i32 %1047, ptr @test_count, align 4, !tbaa !5
  %1048 = load ptr, ptr %20, align 8, !tbaa !9
  %1049 = getelementptr inbounds %struct.s2n_connection, ptr %1048, i32 0, i32 52
  %1050 = getelementptr inbounds %struct.s2n_handshake, ptr %1049, i32 0, i32 0
  %1051 = getelementptr inbounds %struct.s2n_stuffer, ptr %1050, i32 0, i32 2
  %1052 = load i32, ptr %1051, align 4, !tbaa !44
  %1053 = load ptr, ptr %20, align 8, !tbaa !9
  %1054 = getelementptr inbounds %struct.s2n_connection, ptr %1053, i32 0, i32 52
  %1055 = getelementptr inbounds %struct.s2n_handshake, ptr %1054, i32 0, i32 0
  %1056 = getelementptr inbounds %struct.s2n_stuffer, ptr %1055, i32 0, i32 1
  %1057 = load i32, ptr %1056, align 8, !tbaa !45
  %1058 = sub i32 %1052, %1057
  %1059 = icmp eq i32 %1058, 3
  br i1 %1059, label %1113, label %1060

1060:                                             ; preds = %1045
  br label %1061

1061:                                             ; preds = %1060
  br label %1062

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

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

1074:                                             ; preds = %1069
  %1075 = load i32, ptr %26, align 4, !tbaa !5
  %1076 = call ptr @__errno_location() #9
  store i32 %1075, ptr %1076, align 4, !tbaa !5
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef @.str.4)
  %1082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror_debug(i32 noundef %1083, ptr noundef @.str.4)
  %1085 = call ptr @__errno_location() #9
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #8
  %1088 = call ptr @__errno_location() #9
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  %1090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1077, ptr noundef @.str.2, i32 noundef %1078, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1081, ptr noundef %1084, ptr noundef %1087, i32 noundef %1089) #8
  br label %1108

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

1108:                                             ; preds = %1091, %1074
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

1110:                                             ; preds = %1109
  call void @exit(i32 noundef 1) #10
  unreachable

1111:                                             ; No predecessors!
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112, %1045
  br label %1114

1114:                                             ; preds = %1113
  br label %1115

1115:                                             ; preds = %1114
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  store i32 0, ptr %27, align 4, !tbaa !5
  br label %1116

1116:                                             ; preds = %1115
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = add nsw i32 %1117, 1
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = load ptr, ptr %20, align 8, !tbaa !9
  %1120 = getelementptr inbounds %struct.s2n_connection, ptr %1119, i32 0, i32 52
  %1121 = getelementptr inbounds %struct.s2n_handshake, ptr %1120, i32 0, i32 0
  %1122 = call i32 @s2n_stuffer_read_uint24(ptr noundef %1121, ptr noundef %27)
  %1123 = icmp eq i32 %1122, -1
  br i1 %1123, label %1124, label %1177

1124:                                             ; preds = %1116
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %1127 = call ptr @__errno_location() #9
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  store i32 %1128, ptr %28, align 4, !tbaa !5
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @s2n_print_stacktrace(ptr noundef %1129)
  %1131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1132 = trunc i8 %1131 to i1
  br i1 %1132, label %1133, label %1155

1133:                                             ; preds = %1126
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = call i32 @fileno(ptr noundef %1134) #8
  %1136 = call i32 @isatty(i32 noundef %1135) #8
  %1137 = icmp ne i32 %1136, 0
  br i1 %1137, label %1138, label %1155

1138:                                             ; preds = %1133
  %1139 = load i32, ptr %28, align 4, !tbaa !5
  %1140 = call ptr @__errno_location() #9
  store i32 %1139, ptr %1140, align 4, !tbaa !5
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror(i32 noundef %1144, ptr noundef @.str.4)
  %1146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call ptr @s2n_strerror_debug(i32 noundef %1147, ptr noundef @.str.4)
  %1149 = call ptr @__errno_location() #9
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call ptr @strerror(i32 noundef %1150) #8
  %1152 = call ptr @__errno_location() #9
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1141, ptr noundef @.str.2, i32 noundef %1142, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1145, ptr noundef %1148, ptr noundef %1151, i32 noundef %1153) #8
  br label %1172

1155:                                             ; preds = %1133, %1126
  %1156 = load i32, ptr %28, align 4, !tbaa !5
  %1157 = call ptr @__errno_location() #9
  store i32 %1156, ptr %1157, align 4, !tbaa !5
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = load i32, ptr @test_count, align 4, !tbaa !5
  %1160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call ptr @s2n_strerror(i32 noundef %1161, ptr noundef @.str.4)
  %1163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror_debug(i32 noundef %1164, ptr noundef @.str.4)
  %1166 = call ptr @__errno_location() #9
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @strerror(i32 noundef %1167) #8
  %1169 = call ptr @__errno_location() #9
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %1171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1158, ptr noundef @.str.5, i32 noundef %1159, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1162, ptr noundef %1165, ptr noundef %1168, i32 noundef %1170) #8
  br label %1172

1172:                                             ; preds = %1155, %1138
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %1173

1173:                                             ; preds = %1172
  br label %1174

1174:                                             ; preds = %1173
  call void @exit(i32 noundef 1) #10
  unreachable

1175:                                             ; No predecessors!
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176, %1116
  br label %1178

1178:                                             ; preds = %1177
  br label %1179

1179:                                             ; preds = %1178
  br label %1180

1180:                                             ; preds = %1179
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = add nsw i32 %1181, 1
  store i32 %1182, ptr @test_count, align 4, !tbaa !5
  %1183 = load i32, ptr %27, align 4, !tbaa !5
  %1184 = icmp eq i32 %1183, 0
  br i1 %1184, label %1238, label %1185

1185:                                             ; preds = %1180
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

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

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

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

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

1233:                                             ; preds = %1216, %1199
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %1234

1234:                                             ; preds = %1233
  br label %1235

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

1236:                                             ; No predecessors!
  br label %1237

1237:                                             ; preds = %1236
  br label %1238

1238:                                             ; preds = %1237, %1180
  br label %1239

1239:                                             ; preds = %1238
  br label %1240

1240:                                             ; preds = %1239
  br label %1241

1241:                                             ; preds = %1240
  %1242 = load i32, ptr @test_count, align 4, !tbaa !5
  %1243 = add nsw i32 %1242, 1
  store i32 %1243, ptr @test_count, align 4, !tbaa !5
  %1244 = load ptr, ptr %20, align 8, !tbaa !9
  %1245 = call i32 @s2n_connection_free(ptr noundef %1244)
  %1246 = icmp eq i32 %1245, -1
  br i1 %1246, label %1247, label %1300

1247:                                             ; preds = %1241
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %1250 = call ptr @__errno_location() #9
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  store i32 %1251, ptr %30, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @s2n_print_stacktrace(ptr noundef %1252)
  %1254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1255 = trunc i8 %1254 to i1
  br i1 %1255, label %1256, label %1278

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

1261:                                             ; preds = %1256
  %1262 = load i32, ptr %30, align 4, !tbaa !5
  %1263 = call ptr @__errno_location() #9
  store i32 %1262, ptr %1263, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = load i32, ptr @test_count, align 4, !tbaa !5
  %1266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror(i32 noundef %1267, ptr noundef @.str.4)
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef @.str.4)
  %1272 = call ptr @__errno_location() #9
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @strerror(i32 noundef %1273) #8
  %1275 = call ptr @__errno_location() #9
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1264, ptr noundef @.str.2, i32 noundef %1265, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1268, ptr noundef %1271, ptr noundef %1274, i32 noundef %1276) #8
  br label %1295

1278:                                             ; preds = %1256, %1249
  %1279 = load i32, ptr %30, align 4, !tbaa !5
  %1280 = call ptr @__errno_location() #9
  store i32 %1279, ptr %1280, align 4, !tbaa !5
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = load i32, ptr @test_count, align 4, !tbaa !5
  %1283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call ptr @s2n_strerror(i32 noundef %1284, ptr noundef @.str.4)
  %1286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror_debug(i32 noundef %1287, ptr noundef @.str.4)
  %1289 = call ptr @__errno_location() #9
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  %1291 = call ptr @strerror(i32 noundef %1290) #8
  %1292 = call ptr @__errno_location() #9
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1281, ptr noundef @.str.5, i32 noundef %1282, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1285, ptr noundef %1288, ptr noundef %1291, i32 noundef %1293) #8
  br label %1295

1295:                                             ; preds = %1278, %1261
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

1297:                                             ; preds = %1296
  call void @exit(i32 noundef 1) #10
  unreachable

1298:                                             ; No predecessors!
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

1300:                                             ; preds = %1299, %1241
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  br label %1303

1303:                                             ; preds = %1302
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = add nsw i32 %1304, 1
  store i32 %1305, ptr @test_count, align 4, !tbaa !5
  %1306 = load ptr, ptr %18, align 8, !tbaa !9
  %1307 = call i32 @s2n_config_free(ptr noundef %1306)
  %1308 = icmp eq i32 %1307, -1
  br i1 %1308, label %1309, label %1362

1309:                                             ; preds = %1303
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %1312 = call ptr @__errno_location() #9
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  store i32 %1313, ptr %31, align 4, !tbaa !5
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 @s2n_print_stacktrace(ptr noundef %1314)
  %1316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1317 = trunc i8 %1316 to i1
  br i1 %1317, label %1318, label %1340

1318:                                             ; preds = %1311
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = call i32 @fileno(ptr noundef %1319) #8
  %1321 = call i32 @isatty(i32 noundef %1320) #8
  %1322 = icmp ne i32 %1321, 0
  br i1 %1322, label %1323, label %1340

1323:                                             ; preds = %1318
  %1324 = load i32, ptr %31, align 4, !tbaa !5
  %1325 = call ptr @__errno_location() #9
  store i32 %1324, ptr %1325, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = load i32, ptr @test_count, align 4, !tbaa !5
  %1328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @s2n_strerror(i32 noundef %1329, ptr noundef @.str.4)
  %1331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call ptr @s2n_strerror_debug(i32 noundef %1332, ptr noundef @.str.4)
  %1334 = call ptr @__errno_location() #9
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @strerror(i32 noundef %1335) #8
  %1337 = call ptr @__errno_location() #9
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1326, ptr noundef @.str.2, i32 noundef %1327, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1330, ptr noundef %1333, ptr noundef %1336, i32 noundef %1338) #8
  br label %1357

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

1357:                                             ; preds = %1340, %1323
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1358

1358:                                             ; preds = %1357
  br label %1359

1359:                                             ; preds = %1358
  call void @exit(i32 noundef 1) #10
  unreachable

1360:                                             ; No predecessors!
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

1362:                                             ; preds = %1361, %1303
  br label %1363

1363:                                             ; preds = %1362
  br label %1364

1364:                                             ; preds = %1363
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  store ptr null, ptr %32, align 8, !tbaa !9
  br label %1365

1365:                                             ; preds = %1364
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = add nsw i32 %1366, 1
  store i32 %1367, ptr @test_count, align 4, !tbaa !5
  %1368 = call ptr @s2n_config_new()
  store ptr %1368, ptr %32, align 8, !tbaa !9
  %1369 = icmp eq ptr %1368, null
  br i1 %1369, label %1370, label %1423

1370:                                             ; preds = %1365
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

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

1379:                                             ; preds = %1372
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = call i32 @fileno(ptr noundef %1380) #8
  %1382 = call i32 @isatty(i32 noundef %1381) #8
  %1383 = icmp ne i32 %1382, 0
  br i1 %1383, label %1384, label %1401

1384:                                             ; preds = %1379
  %1385 = load i32, ptr %33, align 4, !tbaa !5
  %1386 = call ptr @__errno_location() #9
  store i32 %1385, ptr %1386, align 4, !tbaa !5
  %1387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1388 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1390, ptr noundef @.str.4)
  %1392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call ptr @s2n_strerror_debug(i32 noundef %1393, ptr noundef @.str.4)
  %1395 = call ptr @__errno_location() #9
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call ptr @strerror(i32 noundef %1396) #8
  %1398 = call ptr @__errno_location() #9
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1387, ptr noundef @.str.2, i32 noundef %1388, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1391, ptr noundef %1394, ptr noundef %1397, i32 noundef %1399) #8
  br label %1418

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

1418:                                             ; preds = %1401, %1384
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419
  call void @exit(i32 noundef 1) #10
  unreachable

1421:                                             ; No predecessors!
  br label %1422

1422:                                             ; preds = %1421
  br label %1423

1423:                                             ; preds = %1422, %1365
  br label %1424

1424:                                             ; preds = %1423
  br label %1425

1425:                                             ; preds = %1424
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  store ptr null, ptr %34, align 8, !tbaa !9
  br label %1426

1426:                                             ; preds = %1425
  %1427 = load i32, ptr @test_count, align 4, !tbaa !5
  %1428 = add nsw i32 %1427, 1
  store i32 %1428, ptr @test_count, align 4, !tbaa !5
  %1429 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1429, ptr %34, align 8, !tbaa !9
  %1430 = icmp eq ptr %1429, null
  br i1 %1430, label %1431, label %1484

1431:                                             ; preds = %1426
  br label %1432

1432:                                             ; preds = %1431
  br label %1433

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

1440:                                             ; preds = %1433
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = call i32 @fileno(ptr noundef %1441) #8
  %1443 = call i32 @isatty(i32 noundef %1442) #8
  %1444 = icmp ne i32 %1443, 0
  br i1 %1444, label %1445, label %1462

1445:                                             ; preds = %1440
  %1446 = load i32, ptr %35, align 4, !tbaa !5
  %1447 = call ptr @__errno_location() #9
  store i32 %1446, ptr %1447, align 4, !tbaa !5
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1451, ptr noundef @.str.4)
  %1453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror_debug(i32 noundef %1454, ptr noundef @.str.4)
  %1456 = call ptr @__errno_location() #9
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @strerror(i32 noundef %1457) #8
  %1459 = call ptr @__errno_location() #9
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1448, ptr noundef @.str.2, i32 noundef %1449, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1452, ptr noundef %1455, ptr noundef %1458, i32 noundef %1460) #8
  br label %1479

1462:                                             ; preds = %1440, %1433
  %1463 = load i32, ptr %35, align 4, !tbaa !5
  %1464 = call ptr @__errno_location() #9
  store i32 %1463, ptr %1464, align 4, !tbaa !5
  %1465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1468, ptr noundef @.str.4)
  %1470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call ptr @s2n_strerror_debug(i32 noundef %1471, ptr noundef @.str.4)
  %1473 = call ptr @__errno_location() #9
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @strerror(i32 noundef %1474) #8
  %1476 = call ptr @__errno_location() #9
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1465, ptr noundef @.str.5, i32 noundef %1466, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1469, ptr noundef %1472, ptr noundef %1475, i32 noundef %1477) #8
  br label %1479

1479:                                             ; preds = %1462, %1445
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1480

1480:                                             ; preds = %1479
  br label %1481

1481:                                             ; preds = %1480
  call void @exit(i32 noundef 1) #10
  unreachable

1482:                                             ; No predecessors!
  br label %1483

1483:                                             ; preds = %1482
  br label %1484

1484:                                             ; preds = %1483, %1426
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

1487:                                             ; preds = %1486
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = add nsw i32 %1488, 1
  store i32 %1489, ptr @test_count, align 4, !tbaa !5
  %1490 = load ptr, ptr %34, align 8, !tbaa !9
  %1491 = load ptr, ptr %32, align 8, !tbaa !9
  %1492 = call i32 @s2n_connection_set_config(ptr noundef %1490, ptr noundef %1491)
  %1493 = icmp eq i32 %1492, -1
  br i1 %1493, label %1494, label %1547

1494:                                             ; preds = %1487
  br label %1495

1495:                                             ; preds = %1494
  br label %1496

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

1503:                                             ; preds = %1496
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = call i32 @fileno(ptr noundef %1504) #8
  %1506 = call i32 @isatty(i32 noundef %1505) #8
  %1507 = icmp ne i32 %1506, 0
  br i1 %1507, label %1508, label %1525

1508:                                             ; preds = %1503
  %1509 = load i32, ptr %36, align 4, !tbaa !5
  %1510 = call ptr @__errno_location() #9
  store i32 %1509, ptr %1510, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1514, ptr noundef @.str.4)
  %1516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef %1517, ptr noundef @.str.4)
  %1519 = call ptr @__errno_location() #9
  %1520 = load i32, ptr %1519, align 4, !tbaa !5
  %1521 = call ptr @strerror(i32 noundef %1520) #8
  %1522 = call ptr @__errno_location() #9
  %1523 = load i32, ptr %1522, align 4, !tbaa !5
  %1524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1511, ptr noundef @.str.2, i32 noundef %1512, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1515, ptr noundef %1518, ptr noundef %1521, i32 noundef %1523) #8
  br label %1542

1525:                                             ; preds = %1503, %1496
  %1526 = load i32, ptr %36, align 4, !tbaa !5
  %1527 = call ptr @__errno_location() #9
  store i32 %1526, ptr %1527, align 4, !tbaa !5
  %1528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1529 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1531, ptr noundef @.str.4)
  %1533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = call ptr @s2n_strerror_debug(i32 noundef %1534, ptr noundef @.str.4)
  %1536 = call ptr @__errno_location() #9
  %1537 = load i32, ptr %1536, align 4, !tbaa !5
  %1538 = call ptr @strerror(i32 noundef %1537) #8
  %1539 = call ptr @__errno_location() #9
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  %1541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1528, ptr noundef @.str.5, i32 noundef %1529, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1532, ptr noundef %1535, ptr noundef %1538, i32 noundef %1540) #8
  br label %1542

1542:                                             ; preds = %1525, %1508
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

1544:                                             ; preds = %1543
  call void @exit(i32 noundef 1) #10
  unreachable

1545:                                             ; No predecessors!
  br label %1546

1546:                                             ; preds = %1545
  br label %1547

1547:                                             ; preds = %1546, %1487
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548
  br label %1550

1550:                                             ; preds = %1549
  %1551 = load i32, ptr @test_count, align 4, !tbaa !5
  %1552 = add nsw i32 %1551, 1
  store i32 %1552, ptr @test_count, align 4, !tbaa !5
  %1553 = load ptr, ptr %34, align 8, !tbaa !9
  %1554 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %1553, i32 noundef 1)
  %1555 = icmp eq i32 %1554, -1
  br i1 %1555, label %1556, label %1609

1556:                                             ; preds = %1550
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

1558:                                             ; preds = %1557
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %1559 = call ptr @__errno_location() #9
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  store i32 %1560, ptr %37, align 4, !tbaa !5
  %1561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1562 = call i32 @s2n_print_stacktrace(ptr noundef %1561)
  %1563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1564 = trunc i8 %1563 to i1
  br i1 %1564, label %1565, label %1587

1565:                                             ; preds = %1558
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = call i32 @fileno(ptr noundef %1566) #8
  %1568 = call i32 @isatty(i32 noundef %1567) #8
  %1569 = icmp ne i32 %1568, 0
  br i1 %1569, label %1570, label %1587

1570:                                             ; preds = %1565
  %1571 = load i32, ptr %37, align 4, !tbaa !5
  %1572 = call ptr @__errno_location() #9
  store i32 %1571, ptr %1572, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = load i32, ptr @test_count, align 4, !tbaa !5
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror(i32 noundef %1576, ptr noundef @.str.4)
  %1578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror_debug(i32 noundef %1579, ptr noundef @.str.4)
  %1581 = call ptr @__errno_location() #9
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call ptr @strerror(i32 noundef %1582) #8
  %1584 = call ptr @__errno_location() #9
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1573, ptr noundef @.str.2, i32 noundef %1574, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1577, ptr noundef %1580, ptr noundef %1583, i32 noundef %1585) #8
  br label %1604

1587:                                             ; preds = %1565, %1558
  %1588 = load i32, ptr %37, align 4, !tbaa !5
  %1589 = call ptr @__errno_location() #9
  store i32 %1588, ptr %1589, align 4, !tbaa !5
  %1590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1591 = load i32, ptr @test_count, align 4, !tbaa !5
  %1592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call ptr @s2n_strerror(i32 noundef %1593, ptr noundef @.str.4)
  %1595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call ptr @s2n_strerror_debug(i32 noundef %1596, ptr noundef @.str.4)
  %1598 = call ptr @__errno_location() #9
  %1599 = load i32, ptr %1598, align 4, !tbaa !5
  %1600 = call ptr @strerror(i32 noundef %1599) #8
  %1601 = call ptr @__errno_location() #9
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1590, ptr noundef @.str.5, i32 noundef %1591, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1594, ptr noundef %1597, ptr noundef %1600, i32 noundef %1602) #8
  br label %1604

1604:                                             ; preds = %1587, %1570
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

1606:                                             ; preds = %1605
  call void @exit(i32 noundef 1) #10
  unreachable

1607:                                             ; No predecessors!
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

1609:                                             ; preds = %1608, %1550
  br label %1610

1610:                                             ; preds = %1609
  br label %1611

1611:                                             ; preds = %1610
  br label %1612

1612:                                             ; preds = %1611
  br label %1613

1613:                                             ; preds = %1612
  %1614 = load i32, ptr @test_count, align 4, !tbaa !5
  %1615 = add nsw i32 %1614, 1
  store i32 %1615, ptr @test_count, align 4, !tbaa !5
  %1616 = load ptr, ptr %34, align 8, !tbaa !9
  %1617 = call i32 @s2n_client_cert_send(ptr noundef %1616)
  %1618 = icmp eq i32 %1617, -1
  br i1 %1618, label %1672, label %1619

1619:                                             ; preds = %1613
  br label %1620

1620:                                             ; preds = %1619
  br label %1621

1621:                                             ; preds = %1620
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1622 = call ptr @__errno_location() #9
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  store i32 %1623, ptr %38, align 4, !tbaa !5
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = call i32 @s2n_print_stacktrace(ptr noundef %1624)
  %1626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1627 = trunc i8 %1626 to i1
  br i1 %1627, label %1628, label %1650

1628:                                             ; preds = %1621
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = call i32 @fileno(ptr noundef %1629) #8
  %1631 = call i32 @isatty(i32 noundef %1630) #8
  %1632 = icmp ne i32 %1631, 0
  br i1 %1632, label %1633, label %1650

1633:                                             ; preds = %1628
  %1634 = load i32, ptr %38, align 4, !tbaa !5
  %1635 = call ptr @__errno_location() #9
  store i32 %1634, ptr %1635, align 4, !tbaa !5
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef @.str.4)
  %1644 = call ptr @__errno_location() #9
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @strerror(i32 noundef %1645) #8
  %1647 = call ptr @__errno_location() #9
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1636, ptr noundef @.str.2, i32 noundef %1637, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1640, ptr noundef %1643, ptr noundef %1646, i32 noundef %1648) #8
  br label %1667

1650:                                             ; preds = %1628, %1621
  %1651 = load i32, ptr %38, align 4, !tbaa !5
  %1652 = call ptr @__errno_location() #9
  store i32 %1651, ptr %1652, align 4, !tbaa !5
  %1653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1654 = load i32, ptr @test_count, align 4, !tbaa !5
  %1655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = call ptr @s2n_strerror(i32 noundef %1656, ptr noundef @.str.4)
  %1658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  %1660 = call ptr @s2n_strerror_debug(i32 noundef %1659, ptr noundef @.str.4)
  %1661 = call ptr @__errno_location() #9
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call ptr @strerror(i32 noundef %1662) #8
  %1664 = call ptr @__errno_location() #9
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1653, ptr noundef @.str.5, i32 noundef %1654, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1657, ptr noundef %1660, ptr noundef %1663, i32 noundef %1665) #8
  br label %1667

1667:                                             ; preds = %1650, %1633
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

1669:                                             ; preds = %1668
  call void @exit(i32 noundef 1) #10
  unreachable

1670:                                             ; No predecessors!
  br label %1671

1671:                                             ; preds = %1670
  br label %1672

1672:                                             ; preds = %1671, %1613
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

1674:                                             ; preds = %1673
  br label %1675

1675:                                             ; preds = %1674
  %1676 = load i32, ptr @test_count, align 4, !tbaa !5
  %1677 = add nsw i32 %1676, 1
  store i32 %1677, ptr @test_count, align 4, !tbaa !5
  %1678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = icmp eq i32 %1679, 0
  br i1 %1680, label %1681, label %1734

1681:                                             ; preds = %1675
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1684 = call ptr @__errno_location() #9
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  store i32 %1685, ptr %39, 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) #8
  %1693 = call i32 @isatty(i32 noundef %1692) #8
  %1694 = icmp ne i32 %1693, 0
  br i1 %1694, label %1695, label %1712

1695:                                             ; preds = %1690
  %1696 = load i32, ptr %39, align 4, !tbaa !5
  %1697 = call ptr @__errno_location() #9
  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.4)
  %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.4)
  %1706 = call ptr @__errno_location() #9
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @strerror(i32 noundef %1707) #8
  %1709 = call ptr @__errno_location() #9
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1698, ptr noundef @.str.2, i32 noundef %1699, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1702, ptr noundef %1705, ptr noundef %1708, i32 noundef %1710) #8
  br label %1729

1712:                                             ; preds = %1690, %1683
  %1713 = load i32, ptr %39, align 4, !tbaa !5
  %1714 = call ptr @__errno_location() #9
  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.4)
  %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.4)
  %1723 = call ptr @__errno_location() #9
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call ptr @strerror(i32 noundef %1724) #8
  %1726 = call ptr @__errno_location() #9
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1715, ptr noundef @.str.5, i32 noundef %1716, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1719, ptr noundef %1722, ptr noundef %1725, i32 noundef %1727) #8
  br label %1729

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

1730:                                             ; preds = %1729
  br label %1731

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

1732:                                             ; No predecessors!
  br label %1733

1733:                                             ; preds = %1732
  br label %1734

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

1735:                                             ; preds = %1734
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

1737:                                             ; preds = %1736
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = add nsw i32 %1738, 1
  store i32 %1739, ptr @test_count, align 4, !tbaa !5
  %1740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1741 = load i32, ptr %1740, align 4, !tbaa !5
  %1742 = call ptr @s2n_strerror_debug(i32 noundef %1741, ptr noundef @.str.4)
  %1743 = icmp eq ptr %1742, null
  br i1 %1743, label %1744, label %1797

1744:                                             ; preds = %1737
  br label %1745

1745:                                             ; preds = %1744
  br label %1746

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

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

1758:                                             ; preds = %1753
  %1759 = load i32, ptr %40, align 4, !tbaa !5
  %1760 = call ptr @__errno_location() #9
  store i32 %1759, ptr %1760, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = load i32, ptr @test_count, align 4, !tbaa !5
  %1763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror(i32 noundef %1764, ptr noundef @.str.4)
  %1766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror_debug(i32 noundef %1767, ptr noundef @.str.4)
  %1769 = call ptr @__errno_location() #9
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @strerror(i32 noundef %1770) #8
  %1772 = call ptr @__errno_location() #9
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1761, ptr noundef @.str.2, i32 noundef %1762, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1765, ptr noundef %1768, ptr noundef %1771, i32 noundef %1773) #8
  br label %1792

1775:                                             ; preds = %1753, %1746
  %1776 = load i32, ptr %40, align 4, !tbaa !5
  %1777 = call ptr @__errno_location() #9
  store i32 %1776, ptr %1777, align 4, !tbaa !5
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = load i32, ptr @test_count, align 4, !tbaa !5
  %1780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call ptr @s2n_strerror(i32 noundef %1781, ptr noundef @.str.4)
  %1783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = call ptr @s2n_strerror_debug(i32 noundef %1784, ptr noundef @.str.4)
  %1786 = call ptr @__errno_location() #9
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @strerror(i32 noundef %1787) #8
  %1789 = call ptr @__errno_location() #9
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1778, ptr noundef @.str.5, i32 noundef %1779, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1782, ptr noundef %1785, ptr noundef %1788, i32 noundef %1790) #8
  br label %1792

1792:                                             ; preds = %1775, %1758
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1793

1793:                                             ; preds = %1792
  br label %1794

1794:                                             ; preds = %1793
  call void @exit(i32 noundef 1) #10
  unreachable

1795:                                             ; No predecessors!
  br label %1796

1796:                                             ; preds = %1795
  br label %1797

1797:                                             ; preds = %1796, %1737
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798
  br label %1800

1800:                                             ; preds = %1799
  %1801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1801, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1802 = call ptr @__errno_location() #9
  store i32 0, ptr %1802, align 4, !tbaa !5
  br label %1803

1803:                                             ; preds = %1800
  br label %1804

1804:                                             ; preds = %1803
  br label %1805

1805:                                             ; preds = %1804
  br label %1806

1806:                                             ; preds = %1805
  br label %1807

1807:                                             ; preds = %1806
  %1808 = load i32, ptr @test_count, align 4, !tbaa !5
  %1809 = add nsw i32 %1808, 1
  store i32 %1809, ptr @test_count, align 4, !tbaa !5
  %1810 = load ptr, ptr %34, align 8, !tbaa !9
  %1811 = call i32 @s2n_connection_free(ptr noundef %1810)
  %1812 = icmp eq i32 %1811, -1
  br i1 %1812, label %1813, label %1866

1813:                                             ; preds = %1807
  br label %1814

1814:                                             ; preds = %1813
  br label %1815

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

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

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

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

1861:                                             ; preds = %1844, %1827
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1862

1862:                                             ; preds = %1861
  br label %1863

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

1864:                                             ; No predecessors!
  br label %1865

1865:                                             ; preds = %1864
  br label %1866

1866:                                             ; preds = %1865, %1807
  br label %1867

1867:                                             ; preds = %1866
  br label %1868

1868:                                             ; preds = %1867
  br label %1869

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

1875:                                             ; preds = %1869
  br label %1876

1876:                                             ; preds = %1875
  br label %1877

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

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

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

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

1923:                                             ; preds = %1906, %1889
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

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

1926:                                             ; No predecessors!
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

1928:                                             ; preds = %1927, %1869
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  store ptr null, ptr %43, align 8, !tbaa !9
  br label %1931

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

1936:                                             ; preds = %1931
  br label %1937

1937:                                             ; preds = %1936
  br label %1938

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

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

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

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

1984:                                             ; preds = %1967, %1950
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %1985

1985:                                             ; preds = %1984
  br label %1986

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

1987:                                             ; No predecessors!
  br label %1988

1988:                                             ; preds = %1987
  br label %1989

1989:                                             ; preds = %1988, %1931
  br label %1990

1990:                                             ; preds = %1989
  br label %1991

1991:                                             ; preds = %1990
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  store ptr null, ptr %45, align 8, !tbaa !9
  br label %1992

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

1997:                                             ; preds = %1992
  br label %1998

1998:                                             ; preds = %1997
  br label %1999

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

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

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

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

2045:                                             ; preds = %2028, %2011
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

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

2048:                                             ; No predecessors!
  br label %2049

2049:                                             ; preds = %2048
  br label %2050

2050:                                             ; preds = %2049, %1992
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

2052:                                             ; preds = %2051
  br label %2053

2053:                                             ; preds = %2052
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = add nsw i32 %2054, 1
  store i32 %2055, ptr @test_count, align 4, !tbaa !5
  %2056 = load ptr, ptr %45, align 8, !tbaa !9
  %2057 = load ptr, ptr %43, align 8, !tbaa !9
  %2058 = call i32 @s2n_connection_set_config(ptr noundef %2056, ptr noundef %2057)
  %2059 = icmp eq i32 %2058, -1
  br i1 %2059, label %2060, label %2113

2060:                                             ; preds = %2053
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

2062:                                             ; preds = %2061
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %2063 = call ptr @__errno_location() #9
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  store i32 %2064, ptr %47, align 4, !tbaa !5
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = call i32 @s2n_print_stacktrace(ptr noundef %2065)
  %2067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2068 = trunc i8 %2067 to i1
  br i1 %2068, label %2069, label %2091

2069:                                             ; preds = %2062
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = call i32 @fileno(ptr noundef %2070) #8
  %2072 = call i32 @isatty(i32 noundef %2071) #8
  %2073 = icmp ne i32 %2072, 0
  br i1 %2073, label %2074, label %2091

2074:                                             ; preds = %2069
  %2075 = load i32, ptr %47, align 4, !tbaa !5
  %2076 = call ptr @__errno_location() #9
  store i32 %2075, ptr %2076, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = load i32, ptr @test_count, align 4, !tbaa !5
  %2079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2080 = load i32, ptr %2079, align 4, !tbaa !5
  %2081 = call ptr @s2n_strerror(i32 noundef %2080, ptr noundef @.str.4)
  %2082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  %2084 = call ptr @s2n_strerror_debug(i32 noundef %2083, ptr noundef @.str.4)
  %2085 = call ptr @__errno_location() #9
  %2086 = load i32, ptr %2085, align 4, !tbaa !5
  %2087 = call ptr @strerror(i32 noundef %2086) #8
  %2088 = call ptr @__errno_location() #9
  %2089 = load i32, ptr %2088, align 4, !tbaa !5
  %2090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2077, ptr noundef @.str.2, i32 noundef %2078, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 94, ptr noundef %2081, ptr noundef %2084, ptr noundef %2087, i32 noundef %2089) #8
  br label %2108

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

2108:                                             ; preds = %2091, %2074
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %2109

2109:                                             ; preds = %2108
  br label %2110

2110:                                             ; preds = %2109
  call void @exit(i32 noundef 1) #10
  unreachable

2111:                                             ; No predecessors!
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112, %2053
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  %2117 = load i32, ptr @test_count, align 4, !tbaa !5
  %2118 = add nsw i32 %2117, 1
  store i32 %2118, ptr @test_count, align 4, !tbaa !5
  %2119 = load ptr, ptr %45, align 8, !tbaa !9
  %2120 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %2119, i32 noundef 2)
  %2121 = icmp eq i32 %2120, -1
  br i1 %2121, label %2122, label %2175

2122:                                             ; preds = %2116
  br label %2123

2123:                                             ; preds = %2122
  br label %2124

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

2131:                                             ; preds = %2124
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2133 = call i32 @fileno(ptr noundef %2132) #8
  %2134 = call i32 @isatty(i32 noundef %2133) #8
  %2135 = icmp ne i32 %2134, 0
  br i1 %2135, label %2136, label %2153

2136:                                             ; preds = %2131
  %2137 = load i32, ptr %48, align 4, !tbaa !5
  %2138 = call ptr @__errno_location() #9
  store i32 %2137, ptr %2138, align 4, !tbaa !5
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2142, ptr noundef @.str.4)
  %2144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror_debug(i32 noundef %2145, ptr noundef @.str.4)
  %2147 = call ptr @__errno_location() #9
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @strerror(i32 noundef %2148) #8
  %2150 = call ptr @__errno_location() #9
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2139, ptr noundef @.str.2, i32 noundef %2140, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2143, ptr noundef %2146, ptr noundef %2149, i32 noundef %2151) #8
  br label %2170

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

2170:                                             ; preds = %2153, %2136
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %2171

2171:                                             ; preds = %2170
  br label %2172

2172:                                             ; preds = %2171
  call void @exit(i32 noundef 1) #10
  unreachable

2173:                                             ; No predecessors!
  br label %2174

2174:                                             ; preds = %2173
  br label %2175

2175:                                             ; preds = %2174, %2116
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

2177:                                             ; preds = %2176
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  store ptr null, ptr %49, align 8, !tbaa !9
  br label %2178

2178:                                             ; preds = %2177
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = add nsw i32 %2179, 1
  store i32 %2180, ptr @test_count, align 4, !tbaa !5
  %2181 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2181, ptr %49, align 8, !tbaa !9
  %2182 = icmp eq ptr %2181, null
  br i1 %2182, label %2183, label %2236

2183:                                             ; preds = %2178
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  %2186 = call ptr @__errno_location() #9
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  store i32 %2187, ptr %50, 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) #8
  %2195 = call i32 @isatty(i32 noundef %2194) #8
  %2196 = icmp ne i32 %2195, 0
  br i1 %2196, label %2197, label %2214

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

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

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

2232:                                             ; preds = %2231
  br label %2233

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

2234:                                             ; No predecessors!
  br label %2235

2235:                                             ; preds = %2234
  br label %2236

2236:                                             ; preds = %2235, %2178
  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 %49, align 8, !tbaa !9
  %2243 = load ptr, ptr %43, align 8, !tbaa !9
  %2244 = call i32 @s2n_connection_set_config(ptr noundef %2242, ptr noundef %2243)
  %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 %51) #8
  %2249 = call ptr @__errno_location() #9
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  store i32 %2250, ptr %51, 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) #8
  %2258 = call i32 @isatty(i32 noundef %2257) #8
  %2259 = icmp ne i32 %2258, 0
  br i1 %2259, label %2260, label %2277

2260:                                             ; preds = %2255
  %2261 = load i32, ptr %51, align 4, !tbaa !5
  %2262 = call ptr @__errno_location() #9
  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.4)
  %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.4)
  %2271 = call ptr @__errno_location() #9
  %2272 = load i32, ptr %2271, align 4, !tbaa !5
  %2273 = call ptr @strerror(i32 noundef %2272) #8
  %2274 = call ptr @__errno_location() #9
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef @.str.2, i32 noundef %2264, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2267, ptr noundef %2270, ptr noundef %2273, i32 noundef %2275) #8
  br label %2294

2277:                                             ; preds = %2255, %2248
  %2278 = load i32, ptr %51, align 4, !tbaa !5
  %2279 = call ptr @__errno_location() #9
  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.4)
  %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.4)
  %2288 = call ptr @__errno_location() #9
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @strerror(i32 noundef %2289) #8
  %2291 = call ptr @__errno_location() #9
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2280, ptr noundef @.str.5, i32 noundef %2281, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2284, ptr noundef %2287, ptr noundef %2290, i32 noundef %2292) #8
  br label %2294

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

2295:                                             ; preds = %2294
  br label %2296

2296:                                             ; preds = %2295
  call void @exit(i32 noundef 1) #10
  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 %49, align 8, !tbaa !9
  %2306 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %2305, i32 noundef 2)
  %2307 = icmp eq i32 %2306, -1
  br i1 %2307, label %2308, label %2361

2308:                                             ; preds = %2302
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

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

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

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

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

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

2357:                                             ; preds = %2356
  br label %2358

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

2359:                                             ; No predecessors!
  br label %2360

2360:                                             ; preds = %2359
  br label %2361

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

2362:                                             ; preds = %2361
  br label %2363

2363:                                             ; preds = %2362
  br label %2364

2364:                                             ; preds = %2363
  %2365 = load i32, ptr @test_count, align 4, !tbaa !5
  %2366 = add nsw i32 %2365, 1
  store i32 %2366, ptr @test_count, align 4, !tbaa !5
  %2367 = load ptr, ptr %45, align 8, !tbaa !9
  %2368 = call i32 @s2n_client_cert_send(ptr noundef %2367)
  %2369 = icmp eq i32 %2368, -1
  br i1 %2369, label %2370, label %2423

2370:                                             ; preds = %2364
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

2372:                                             ; preds = %2371
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  %2373 = call ptr @__errno_location() #9
  %2374 = load i32, ptr %2373, align 4, !tbaa !5
  store i32 %2374, ptr %53, align 4, !tbaa !5
  %2375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2376 = call i32 @s2n_print_stacktrace(ptr noundef %2375)
  %2377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2378 = trunc i8 %2377 to i1
  br i1 %2378, label %2379, label %2401

2379:                                             ; preds = %2372
  %2380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2381 = call i32 @fileno(ptr noundef %2380) #8
  %2382 = call i32 @isatty(i32 noundef %2381) #8
  %2383 = icmp ne i32 %2382, 0
  br i1 %2383, label %2384, label %2401

2384:                                             ; preds = %2379
  %2385 = load i32, ptr %53, align 4, !tbaa !5
  %2386 = call ptr @__errno_location() #9
  store i32 %2385, ptr %2386, align 4, !tbaa !5
  %2387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2388 = load i32, ptr @test_count, align 4, !tbaa !5
  %2389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2390 = load i32, ptr %2389, align 4, !tbaa !5
  %2391 = call ptr @s2n_strerror(i32 noundef %2390, ptr noundef @.str.4)
  %2392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2393 = load i32, ptr %2392, align 4, !tbaa !5
  %2394 = call ptr @s2n_strerror_debug(i32 noundef %2393, ptr noundef @.str.4)
  %2395 = call ptr @__errno_location() #9
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call ptr @strerror(i32 noundef %2396) #8
  %2398 = call ptr @__errno_location() #9
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  %2400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2387, ptr noundef @.str.2, i32 noundef %2388, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2391, ptr noundef %2394, ptr noundef %2397, i32 noundef %2399) #8
  br label %2418

2401:                                             ; preds = %2379, %2372
  %2402 = load i32, ptr %53, align 4, !tbaa !5
  %2403 = call ptr @__errno_location() #9
  store i32 %2402, ptr %2403, align 4, !tbaa !5
  %2404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2405 = load i32, ptr @test_count, align 4, !tbaa !5
  %2406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror(i32 noundef %2407, ptr noundef @.str.4)
  %2409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror_debug(i32 noundef %2410, ptr noundef @.str.4)
  %2412 = call ptr @__errno_location() #9
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @strerror(i32 noundef %2413) #8
  %2415 = call ptr @__errno_location() #9
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2404, ptr noundef @.str.5, i32 noundef %2405, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2408, ptr noundef %2411, ptr noundef %2414, i32 noundef %2416) #8
  br label %2418

2418:                                             ; preds = %2401, %2384
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %2419

2419:                                             ; preds = %2418
  br label %2420

2420:                                             ; preds = %2419
  call void @exit(i32 noundef 1) #10
  unreachable

2421:                                             ; No predecessors!
  br label %2422

2422:                                             ; preds = %2421
  br label %2423

2423:                                             ; preds = %2422, %2364
  br label %2424

2424:                                             ; preds = %2423
  br label %2425

2425:                                             ; preds = %2424
  br label %2426

2426:                                             ; preds = %2425
  %2427 = load i32, ptr @test_count, align 4, !tbaa !5
  %2428 = add nsw i32 %2427, 1
  store i32 %2428, ptr @test_count, align 4, !tbaa !5
  %2429 = load ptr, ptr %45, align 8, !tbaa !9
  %2430 = getelementptr inbounds %struct.s2n_connection, ptr %2429, i32 0, i32 52
  %2431 = getelementptr inbounds %struct.s2n_handshake, ptr %2430, i32 0, i32 6
  %2432 = load i32, ptr %2431, align 4, !tbaa !19
  %2433 = and i32 %2432, 8
  %2434 = icmp ne i32 %2433, 0
  br i1 %2434, label %2488, label %2435

2435:                                             ; preds = %2426
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  %2438 = call ptr @__errno_location() #9
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  store i32 %2439, ptr %54, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @s2n_print_stacktrace(ptr noundef %2440)
  %2442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2443 = trunc i8 %2442 to i1
  br i1 %2443, label %2444, label %2466

2444:                                             ; preds = %2437
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @fileno(ptr noundef %2445) #8
  %2447 = call i32 @isatty(i32 noundef %2446) #8
  %2448 = icmp ne i32 %2447, 0
  br i1 %2448, label %2449, label %2466

2449:                                             ; preds = %2444
  %2450 = load i32, ptr %54, align 4, !tbaa !5
  %2451 = call ptr @__errno_location() #9
  store i32 %2450, ptr %2451, align 4, !tbaa !5
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = call ptr @s2n_strerror(i32 noundef %2455, ptr noundef @.str.4)
  %2457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2458 = load i32, ptr %2457, align 4, !tbaa !5
  %2459 = call ptr @s2n_strerror_debug(i32 noundef %2458, ptr noundef @.str.4)
  %2460 = call ptr @__errno_location() #9
  %2461 = load i32, ptr %2460, align 4, !tbaa !5
  %2462 = call ptr @strerror(i32 noundef %2461) #8
  %2463 = call ptr @__errno_location() #9
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2452, ptr noundef @.str.2, i32 noundef %2453, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2456, ptr noundef %2459, ptr noundef %2462, i32 noundef %2464) #8
  br label %2483

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

2483:                                             ; preds = %2466, %2449
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %2484

2484:                                             ; preds = %2483
  br label %2485

2485:                                             ; preds = %2484
  call void @exit(i32 noundef 1) #10
  unreachable

2486:                                             ; No predecessors!
  br label %2487

2487:                                             ; preds = %2486
  br label %2488

2488:                                             ; preds = %2487, %2426
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489
  br label %2491

2491:                                             ; preds = %2490
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = add nsw i32 %2492, 1
  store i32 %2493, ptr @test_count, align 4, !tbaa !5
  %2494 = load ptr, ptr %45, align 8, !tbaa !9
  %2495 = getelementptr inbounds %struct.s2n_connection, ptr %2494, i32 0, i32 52
  %2496 = getelementptr inbounds %struct.s2n_handshake, ptr %2495, i32 0, i32 0
  %2497 = getelementptr inbounds %struct.s2n_stuffer, ptr %2496, i32 0, i32 2
  %2498 = load i32, ptr %2497, align 4, !tbaa !44
  %2499 = load ptr, ptr %45, align 8, !tbaa !9
  %2500 = getelementptr inbounds %struct.s2n_connection, ptr %2499, i32 0, i32 52
  %2501 = getelementptr inbounds %struct.s2n_handshake, ptr %2500, i32 0, i32 0
  %2502 = getelementptr inbounds %struct.s2n_stuffer, ptr %2501, i32 0, i32 1
  %2503 = load i32, ptr %2502, align 8, !tbaa !45
  %2504 = sub i32 %2498, %2503
  %2505 = icmp eq i32 %2504, 3
  br i1 %2505, label %2559, label %2506

2506:                                             ; preds = %2491
  br label %2507

2507:                                             ; preds = %2506
  br label %2508

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

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

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

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

2554:                                             ; preds = %2537, %2520
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %2555

2555:                                             ; preds = %2554
  br label %2556

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

2557:                                             ; No predecessors!
  br label %2558

2558:                                             ; preds = %2557
  br label %2559

2559:                                             ; preds = %2558, %2491
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

2562:                                             ; preds = %2561
  %2563 = load i32, ptr @test_count, align 4, !tbaa !5
  %2564 = add nsw i32 %2563, 1
  store i32 %2564, ptr @test_count, align 4, !tbaa !5
  %2565 = load ptr, ptr %45, align 8, !tbaa !9
  %2566 = getelementptr inbounds %struct.s2n_connection, ptr %2565, i32 0, i32 52
  %2567 = getelementptr inbounds %struct.s2n_handshake, ptr %2566, i32 0, i32 0
  %2568 = load ptr, ptr %49, align 8, !tbaa !9
  %2569 = getelementptr inbounds %struct.s2n_connection, ptr %2568, i32 0, i32 52
  %2570 = getelementptr inbounds %struct.s2n_handshake, ptr %2569, i32 0, i32 0
  %2571 = load ptr, ptr %45, align 8, !tbaa !9
  %2572 = getelementptr inbounds %struct.s2n_connection, ptr %2571, i32 0, i32 52
  %2573 = getelementptr inbounds %struct.s2n_handshake, ptr %2572, i32 0, i32 0
  %2574 = getelementptr inbounds %struct.s2n_stuffer, ptr %2573, i32 0, i32 2
  %2575 = load i32, ptr %2574, align 4, !tbaa !44
  %2576 = load ptr, ptr %45, align 8, !tbaa !9
  %2577 = getelementptr inbounds %struct.s2n_connection, ptr %2576, i32 0, i32 52
  %2578 = getelementptr inbounds %struct.s2n_handshake, ptr %2577, i32 0, i32 0
  %2579 = getelementptr inbounds %struct.s2n_stuffer, ptr %2578, i32 0, i32 1
  %2580 = load i32, ptr %2579, align 8, !tbaa !45
  %2581 = sub i32 %2575, %2580
  %2582 = call i32 @s2n_stuffer_copy(ptr noundef %2567, ptr noundef %2570, i32 noundef %2581)
  %2583 = icmp eq i32 %2582, -1
  br i1 %2583, label %2584, label %2637

2584:                                             ; preds = %2562
  br label %2585

2585:                                             ; preds = %2584
  br label %2586

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

2593:                                             ; preds = %2586
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @fileno(ptr noundef %2594) #8
  %2596 = call i32 @isatty(i32 noundef %2595) #8
  %2597 = icmp ne i32 %2596, 0
  br i1 %2597, label %2598, label %2615

2598:                                             ; preds = %2593
  %2599 = load i32, ptr %56, align 4, !tbaa !5
  %2600 = call ptr @__errno_location() #9
  store i32 %2599, ptr %2600, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror(i32 noundef %2604, ptr noundef @.str.4)
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror_debug(i32 noundef %2607, ptr noundef @.str.4)
  %2609 = call ptr @__errno_location() #9
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @strerror(i32 noundef %2610) #8
  %2612 = call ptr @__errno_location() #9
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2601, ptr noundef @.str.2, i32 noundef %2602, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2605, ptr noundef %2608, ptr noundef %2611, i32 noundef %2613) #8
  br label %2632

2615:                                             ; preds = %2593, %2586
  %2616 = load i32, ptr %56, align 4, !tbaa !5
  %2617 = call ptr @__errno_location() #9
  store i32 %2616, ptr %2617, align 4, !tbaa !5
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = load i32, ptr @test_count, align 4, !tbaa !5
  %2620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror(i32 noundef %2621, ptr noundef @.str.4)
  %2623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call ptr @s2n_strerror_debug(i32 noundef %2624, ptr noundef @.str.4)
  %2626 = call ptr @__errno_location() #9
  %2627 = load i32, ptr %2626, align 4, !tbaa !5
  %2628 = call ptr @strerror(i32 noundef %2627) #8
  %2629 = call ptr @__errno_location() #9
  %2630 = load i32, ptr %2629, align 4, !tbaa !5
  %2631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2618, ptr noundef @.str.5, i32 noundef %2619, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2622, ptr noundef %2625, ptr noundef %2628, i32 noundef %2630) #8
  br label %2632

2632:                                             ; preds = %2615, %2598
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

2634:                                             ; preds = %2633
  call void @exit(i32 noundef 1) #10
  unreachable

2635:                                             ; No predecessors!
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

2637:                                             ; preds = %2636, %2562
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

2639:                                             ; preds = %2638
  br label %2640

2640:                                             ; preds = %2639
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = add nsw i32 %2641, 1
  store i32 %2642, ptr @test_count, align 4, !tbaa !5
  %2643 = load ptr, ptr %49, align 8, !tbaa !9
  %2644 = getelementptr inbounds %struct.s2n_connection, ptr %2643, i32 0, i32 52
  %2645 = getelementptr inbounds %struct.s2n_handshake, ptr %2644, i32 0, i32 0
  %2646 = getelementptr inbounds %struct.s2n_stuffer, ptr %2645, i32 0, i32 2
  %2647 = load i32, ptr %2646, align 4, !tbaa !44
  %2648 = load ptr, ptr %49, align 8, !tbaa !9
  %2649 = getelementptr inbounds %struct.s2n_connection, ptr %2648, i32 0, i32 52
  %2650 = getelementptr inbounds %struct.s2n_handshake, ptr %2649, i32 0, i32 0
  %2651 = getelementptr inbounds %struct.s2n_stuffer, ptr %2650, i32 0, i32 1
  %2652 = load i32, ptr %2651, align 8, !tbaa !45
  %2653 = sub i32 %2647, %2652
  %2654 = icmp eq i32 %2653, 3
  br i1 %2654, label %2708, label %2655

2655:                                             ; preds = %2640
  br label %2656

2656:                                             ; preds = %2655
  br label %2657

2657:                                             ; preds = %2656
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  %2658 = call ptr @__errno_location() #9
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  store i32 %2659, ptr %57, align 4, !tbaa !5
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = call i32 @s2n_print_stacktrace(ptr noundef %2660)
  %2662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2663 = trunc i8 %2662 to i1
  br i1 %2663, label %2664, label %2686

2664:                                             ; preds = %2657
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = call i32 @fileno(ptr noundef %2665) #8
  %2667 = call i32 @isatty(i32 noundef %2666) #8
  %2668 = icmp ne i32 %2667, 0
  br i1 %2668, label %2669, label %2686

2669:                                             ; preds = %2664
  %2670 = load i32, ptr %57, align 4, !tbaa !5
  %2671 = call ptr @__errno_location() #9
  store i32 %2670, ptr %2671, align 4, !tbaa !5
  %2672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2673 = load i32, ptr @test_count, align 4, !tbaa !5
  %2674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2675 = load i32, ptr %2674, align 4, !tbaa !5
  %2676 = call ptr @s2n_strerror(i32 noundef %2675, ptr noundef @.str.4)
  %2677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2678 = load i32, ptr %2677, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror_debug(i32 noundef %2678, ptr noundef @.str.4)
  %2680 = call ptr @__errno_location() #9
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  %2682 = call ptr @strerror(i32 noundef %2681) #8
  %2683 = call ptr @__errno_location() #9
  %2684 = load i32, ptr %2683, align 4, !tbaa !5
  %2685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2672, ptr noundef @.str.2, i32 noundef %2673, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2676, ptr noundef %2679, ptr noundef %2682, i32 noundef %2684) #8
  br label %2703

2686:                                             ; preds = %2664, %2657
  %2687 = load i32, ptr %57, align 4, !tbaa !5
  %2688 = call ptr @__errno_location() #9
  store i32 %2687, ptr %2688, align 4, !tbaa !5
  %2689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2690 = load i32, ptr @test_count, align 4, !tbaa !5
  %2691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror(i32 noundef %2692, ptr noundef @.str.4)
  %2694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call ptr @s2n_strerror_debug(i32 noundef %2695, ptr noundef @.str.4)
  %2697 = call ptr @__errno_location() #9
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = call ptr @strerror(i32 noundef %2698) #8
  %2700 = call ptr @__errno_location() #9
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  %2702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2689, ptr noundef @.str.5, i32 noundef %2690, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2693, ptr noundef %2696, ptr noundef %2699, i32 noundef %2701) #8
  br label %2703

2703:                                             ; preds = %2686, %2669
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  br label %2704

2704:                                             ; preds = %2703
  br label %2705

2705:                                             ; preds = %2704
  call void @exit(i32 noundef 1) #10
  unreachable

2706:                                             ; No predecessors!
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

2708:                                             ; preds = %2707, %2640
  br label %2709

2709:                                             ; preds = %2708
  br label %2710

2710:                                             ; preds = %2709
  br label %2711

2711:                                             ; preds = %2710
  %2712 = load i32, ptr @test_count, align 4, !tbaa !5
  %2713 = add nsw i32 %2712, 1
  store i32 %2713, ptr @test_count, align 4, !tbaa !5
  %2714 = load ptr, ptr %49, align 8, !tbaa !9
  %2715 = call i32 @s2n_client_cert_recv(ptr noundef %2714)
  %2716 = icmp eq i32 %2715, -1
  br i1 %2716, label %2717, label %2770

2717:                                             ; preds = %2711
  br label %2718

2718:                                             ; preds = %2717
  br label %2719

2719:                                             ; preds = %2718
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #8
  %2720 = call ptr @__errno_location() #9
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  store i32 %2721, ptr %58, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = call i32 @s2n_print_stacktrace(ptr noundef %2722)
  %2724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2725 = trunc i8 %2724 to i1
  br i1 %2725, label %2726, label %2748

2726:                                             ; preds = %2719
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = call i32 @fileno(ptr noundef %2727) #8
  %2729 = call i32 @isatty(i32 noundef %2728) #8
  %2730 = icmp ne i32 %2729, 0
  br i1 %2730, label %2731, label %2748

2731:                                             ; preds = %2726
  %2732 = load i32, ptr %58, align 4, !tbaa !5
  %2733 = call ptr @__errno_location() #9
  store i32 %2732, ptr %2733, align 4, !tbaa !5
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = load i32, ptr @test_count, align 4, !tbaa !5
  %2736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror(i32 noundef %2737, ptr noundef @.str.4)
  %2739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call ptr @s2n_strerror_debug(i32 noundef %2740, ptr noundef @.str.4)
  %2742 = call ptr @__errno_location() #9
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call ptr @strerror(i32 noundef %2743) #8
  %2745 = call ptr @__errno_location() #9
  %2746 = load i32, ptr %2745, align 4, !tbaa !5
  %2747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2734, ptr noundef @.str.2, i32 noundef %2735, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2738, ptr noundef %2741, ptr noundef %2744, i32 noundef %2746) #8
  br label %2765

2748:                                             ; preds = %2726, %2719
  %2749 = load i32, ptr %58, align 4, !tbaa !5
  %2750 = call ptr @__errno_location() #9
  store i32 %2749, ptr %2750, align 4, !tbaa !5
  %2751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2752 = load i32, ptr @test_count, align 4, !tbaa !5
  %2753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call ptr @s2n_strerror(i32 noundef %2754, ptr noundef @.str.4)
  %2756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call ptr @s2n_strerror_debug(i32 noundef %2757, ptr noundef @.str.4)
  %2759 = call ptr @__errno_location() #9
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call ptr @strerror(i32 noundef %2760) #8
  %2762 = call ptr @__errno_location() #9
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2751, ptr noundef @.str.5, i32 noundef %2752, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2755, ptr noundef %2758, ptr noundef %2761, i32 noundef %2763) #8
  br label %2765

2765:                                             ; preds = %2748, %2731
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  br label %2766

2766:                                             ; preds = %2765
  br label %2767

2767:                                             ; preds = %2766
  call void @exit(i32 noundef 1) #10
  unreachable

2768:                                             ; No predecessors!
  br label %2769

2769:                                             ; preds = %2768
  br label %2770

2770:                                             ; preds = %2769, %2711
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

2772:                                             ; preds = %2771
  br label %2773

2773:                                             ; preds = %2772
  %2774 = load i32, ptr @test_count, align 4, !tbaa !5
  %2775 = add nsw i32 %2774, 1
  store i32 %2775, ptr @test_count, align 4, !tbaa !5
  %2776 = load ptr, ptr %49, align 8, !tbaa !9
  %2777 = getelementptr inbounds %struct.s2n_connection, ptr %2776, i32 0, i32 52
  %2778 = getelementptr inbounds %struct.s2n_handshake, ptr %2777, i32 0, i32 6
  %2779 = load i32, ptr %2778, align 4, !tbaa !19
  %2780 = and i32 %2779, 8
  %2781 = icmp ne i32 %2780, 0
  br i1 %2781, label %2835, label %2782

2782:                                             ; preds = %2773
  br label %2783

2783:                                             ; preds = %2782
  br label %2784

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

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

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

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

2830:                                             ; preds = %2813, %2796
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %2831

2831:                                             ; preds = %2830
  br label %2832

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

2833:                                             ; No predecessors!
  br label %2834

2834:                                             ; preds = %2833
  br label %2835

2835:                                             ; preds = %2834, %2773
  br label %2836

2836:                                             ; preds = %2835
  br label %2837

2837:                                             ; preds = %2836
  br label %2838

2838:                                             ; preds = %2837
  %2839 = load i32, ptr @test_count, align 4, !tbaa !5
  %2840 = add nsw i32 %2839, 1
  store i32 %2840, ptr @test_count, align 4, !tbaa !5
  %2841 = load ptr, ptr %49, align 8, !tbaa !9
  %2842 = call i32 @s2n_connection_free(ptr noundef %2841)
  %2843 = icmp eq i32 %2842, -1
  br i1 %2843, label %2844, label %2897

2844:                                             ; preds = %2838
  br label %2845

2845:                                             ; preds = %2844
  br label %2846

2846:                                             ; preds = %2845
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #8
  %2847 = call ptr @__errno_location() #9
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  store i32 %2848, ptr %60, align 4, !tbaa !5
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = call i32 @s2n_print_stacktrace(ptr noundef %2849)
  %2851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2852 = trunc i8 %2851 to i1
  br i1 %2852, label %2853, label %2875

2853:                                             ; preds = %2846
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = call i32 @fileno(ptr noundef %2854) #8
  %2856 = call i32 @isatty(i32 noundef %2855) #8
  %2857 = icmp ne i32 %2856, 0
  br i1 %2857, label %2858, label %2875

2858:                                             ; preds = %2853
  %2859 = load i32, ptr %60, align 4, !tbaa !5
  %2860 = call ptr @__errno_location() #9
  store i32 %2859, ptr %2860, align 4, !tbaa !5
  %2861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2862 = load i32, ptr @test_count, align 4, !tbaa !5
  %2863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call ptr @s2n_strerror(i32 noundef %2864, ptr noundef @.str.4)
  %2866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call ptr @s2n_strerror_debug(i32 noundef %2867, ptr noundef @.str.4)
  %2869 = call ptr @__errno_location() #9
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  %2871 = call ptr @strerror(i32 noundef %2870) #8
  %2872 = call ptr @__errno_location() #9
  %2873 = load i32, ptr %2872, align 4, !tbaa !5
  %2874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2861, ptr noundef @.str.2, i32 noundef %2862, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2865, ptr noundef %2868, ptr noundef %2871, i32 noundef %2873) #8
  br label %2892

2875:                                             ; preds = %2853, %2846
  %2876 = load i32, ptr %60, align 4, !tbaa !5
  %2877 = call ptr @__errno_location() #9
  store i32 %2876, ptr %2877, align 4, !tbaa !5
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = load i32, ptr @test_count, align 4, !tbaa !5
  %2880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call ptr @s2n_strerror(i32 noundef %2881, ptr noundef @.str.4)
  %2883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call ptr @s2n_strerror_debug(i32 noundef %2884, ptr noundef @.str.4)
  %2886 = call ptr @__errno_location() #9
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call ptr @strerror(i32 noundef %2887) #8
  %2889 = call ptr @__errno_location() #9
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2878, ptr noundef @.str.5, i32 noundef %2879, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2882, ptr noundef %2885, ptr noundef %2888, i32 noundef %2890) #8
  br label %2892

2892:                                             ; preds = %2875, %2858
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  br label %2893

2893:                                             ; preds = %2892
  br label %2894

2894:                                             ; preds = %2893
  call void @exit(i32 noundef 1) #10
  unreachable

2895:                                             ; No predecessors!
  br label %2896

2896:                                             ; preds = %2895
  br label %2897

2897:                                             ; preds = %2896, %2838
  br label %2898

2898:                                             ; preds = %2897
  br label %2899

2899:                                             ; preds = %2898
  br label %2900

2900:                                             ; preds = %2899
  %2901 = load i32, ptr @test_count, align 4, !tbaa !5
  %2902 = add nsw i32 %2901, 1
  store i32 %2902, ptr @test_count, align 4, !tbaa !5
  %2903 = load ptr, ptr %45, align 8, !tbaa !9
  %2904 = call i32 @s2n_connection_free(ptr noundef %2903)
  %2905 = icmp eq i32 %2904, -1
  br i1 %2905, label %2906, label %2959

2906:                                             ; preds = %2900
  br label %2907

2907:                                             ; preds = %2906
  br label %2908

2908:                                             ; preds = %2907
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  %2909 = call ptr @__errno_location() #9
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  store i32 %2910, ptr %61, align 4, !tbaa !5
  %2911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2912 = call i32 @s2n_print_stacktrace(ptr noundef %2911)
  %2913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2914 = trunc i8 %2913 to i1
  br i1 %2914, label %2915, label %2937

2915:                                             ; preds = %2908
  %2916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2917 = call i32 @fileno(ptr noundef %2916) #8
  %2918 = call i32 @isatty(i32 noundef %2917) #8
  %2919 = icmp ne i32 %2918, 0
  br i1 %2919, label %2920, label %2937

2920:                                             ; preds = %2915
  %2921 = load i32, ptr %61, align 4, !tbaa !5
  %2922 = call ptr @__errno_location() #9
  store i32 %2921, ptr %2922, align 4, !tbaa !5
  %2923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2924 = load i32, ptr @test_count, align 4, !tbaa !5
  %2925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  %2927 = call ptr @s2n_strerror(i32 noundef %2926, ptr noundef @.str.4)
  %2928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call ptr @s2n_strerror_debug(i32 noundef %2929, ptr noundef @.str.4)
  %2931 = call ptr @__errno_location() #9
  %2932 = load i32, ptr %2931, align 4, !tbaa !5
  %2933 = call ptr @strerror(i32 noundef %2932) #8
  %2934 = call ptr @__errno_location() #9
  %2935 = load i32, ptr %2934, align 4, !tbaa !5
  %2936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2923, ptr noundef @.str.2, i32 noundef %2924, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2927, ptr noundef %2930, ptr noundef %2933, i32 noundef %2935) #8
  br label %2954

2937:                                             ; preds = %2915, %2908
  %2938 = load i32, ptr %61, align 4, !tbaa !5
  %2939 = call ptr @__errno_location() #9
  store i32 %2938, ptr %2939, align 4, !tbaa !5
  %2940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2941 = load i32, ptr @test_count, align 4, !tbaa !5
  %2942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call ptr @s2n_strerror(i32 noundef %2943, ptr noundef @.str.4)
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror_debug(i32 noundef %2946, ptr noundef @.str.4)
  %2948 = call ptr @__errno_location() #9
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call ptr @strerror(i32 noundef %2949) #8
  %2951 = call ptr @__errno_location() #9
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2940, ptr noundef @.str.5, i32 noundef %2941, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2944, ptr noundef %2947, ptr noundef %2950, i32 noundef %2952) #8
  br label %2954

2954:                                             ; preds = %2937, %2920
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %2955

2955:                                             ; preds = %2954
  br label %2956

2956:                                             ; preds = %2955
  call void @exit(i32 noundef 1) #10
  unreachable

2957:                                             ; No predecessors!
  br label %2958

2958:                                             ; preds = %2957
  br label %2959

2959:                                             ; preds = %2958, %2900
  br label %2960

2960:                                             ; preds = %2959
  br label %2961

2961:                                             ; preds = %2960
  br label %2962

2962:                                             ; preds = %2961
  %2963 = load i32, ptr @test_count, align 4, !tbaa !5
  %2964 = add nsw i32 %2963, 1
  store i32 %2964, ptr @test_count, align 4, !tbaa !5
  %2965 = load ptr, ptr %43, align 8, !tbaa !9
  %2966 = call i32 @s2n_config_free(ptr noundef %2965)
  %2967 = icmp eq i32 %2966, -1
  br i1 %2967, label %2968, label %3021

2968:                                             ; preds = %2962
  br label %2969

2969:                                             ; preds = %2968
  br label %2970

2970:                                             ; preds = %2969
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #8
  %2971 = call ptr @__errno_location() #9
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  store i32 %2972, ptr %62, align 4, !tbaa !5
  %2973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2974 = call i32 @s2n_print_stacktrace(ptr noundef %2973)
  %2975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2976 = trunc i8 %2975 to i1
  br i1 %2976, label %2977, label %2999

2977:                                             ; preds = %2970
  %2978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2979 = call i32 @fileno(ptr noundef %2978) #8
  %2980 = call i32 @isatty(i32 noundef %2979) #8
  %2981 = icmp ne i32 %2980, 0
  br i1 %2981, label %2982, label %2999

2982:                                             ; preds = %2977
  %2983 = load i32, ptr %62, align 4, !tbaa !5
  %2984 = call ptr @__errno_location() #9
  store i32 %2983, ptr %2984, align 4, !tbaa !5
  %2985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2986 = load i32, ptr @test_count, align 4, !tbaa !5
  %2987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  %2989 = call ptr @s2n_strerror(i32 noundef %2988, ptr noundef @.str.4)
  %2990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror_debug(i32 noundef %2991, ptr noundef @.str.4)
  %2993 = call ptr @__errno_location() #9
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call ptr @strerror(i32 noundef %2994) #8
  %2996 = call ptr @__errno_location() #9
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2985, ptr noundef @.str.2, i32 noundef %2986, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2989, ptr noundef %2992, ptr noundef %2995, i32 noundef %2997) #8
  br label %3016

2999:                                             ; preds = %2977, %2970
  %3000 = load i32, ptr %62, align 4, !tbaa !5
  %3001 = call ptr @__errno_location() #9
  store i32 %3000, ptr %3001, align 4, !tbaa !5
  %3002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3003 = load i32, ptr @test_count, align 4, !tbaa !5
  %3004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3005 = load i32, ptr %3004, align 4, !tbaa !5
  %3006 = call ptr @s2n_strerror(i32 noundef %3005, ptr noundef @.str.4)
  %3007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  %3009 = call ptr @s2n_strerror_debug(i32 noundef %3008, ptr noundef @.str.4)
  %3010 = call ptr @__errno_location() #9
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  %3012 = call ptr @strerror(i32 noundef %3011) #8
  %3013 = call ptr @__errno_location() #9
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  %3015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3002, ptr noundef @.str.5, i32 noundef %3003, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 118, ptr noundef %3006, ptr noundef %3009, ptr noundef %3012, i32 noundef %3014) #8
  br label %3016

3016:                                             ; preds = %2999, %2982
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  br label %3017

3017:                                             ; preds = %3016
  br label %3018

3018:                                             ; preds = %3017
  call void @exit(i32 noundef 1) #10
  unreachable

3019:                                             ; No predecessors!
  br label %3020

3020:                                             ; preds = %3019
  br label %3021

3021:                                             ; preds = %3020, %2962
  br label %3022

3022:                                             ; preds = %3021
  br label %3023

3023:                                             ; preds = %3022
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %3024

3024:                                             ; preds = %3023
  br label %3025

3025:                                             ; preds = %3024
  %3026 = call i32 @s2n_cleanup()
  %3027 = icmp eq i32 %3026, -1
  br i1 %3027, label %3028, label %3079

3028:                                             ; preds = %3025
  br label %3029

3029:                                             ; preds = %3028
  br label %3030

3030:                                             ; preds = %3029
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #8
  %3031 = call ptr @__errno_location() #9
  %3032 = load i32, ptr %3031, align 4, !tbaa !5
  store i32 %3032, ptr %63, align 4, !tbaa !5
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = call i32 @s2n_print_stacktrace(ptr noundef %3033)
  %3035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3036 = trunc i8 %3035 to i1
  br i1 %3036, label %3037, label %3059

3037:                                             ; preds = %3030
  %3038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3039 = call i32 @fileno(ptr noundef %3038) #8
  %3040 = call i32 @isatty(i32 noundef %3039) #8
  %3041 = icmp ne i32 %3040, 0
  br i1 %3041, label %3042, label %3059

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

3059:                                             ; preds = %3037, %3030
  %3060 = load i32, ptr %63, align 4, !tbaa !5
  %3061 = call ptr @__errno_location() #9
  store i32 %3060, ptr %3061, align 4, !tbaa !5
  %3062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3063 = load i32, ptr @test_count, align 4, !tbaa !5
  %3064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  %3066 = call ptr @s2n_strerror(i32 noundef %3065, ptr noundef @.str.4)
  %3067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3068 = load i32, ptr %3067, align 4, !tbaa !5
  %3069 = call ptr @s2n_strerror_debug(i32 noundef %3068, ptr noundef @.str.4)
  %3070 = call ptr @__errno_location() #9
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @strerror(i32 noundef %3071) #8
  %3073 = call ptr @__errno_location() #9
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3062, ptr noundef @.str.5, i32 noundef %3063, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 121, ptr noundef %3066, ptr noundef %3069, ptr noundef %3072, i32 noundef %3074) #8
  br label %3076

3076:                                             ; preds = %3059, %3042
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %3077

3077:                                             ; preds = %3076
  call void @exit(i32 noundef 1) #10
  unreachable

3078:                                             ; No predecessors!
  br label %3079

3079:                                             ; preds = %3078, %3025
  br label %3080

3080:                                             ; preds = %3079
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

3082:                                             ; preds = %3081
  %3083 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3084 = icmp eq i32 %3083, -1
  br i1 %3084, label %3085, label %3136

3085:                                             ; preds = %3082
  br label %3086

3086:                                             ; preds = %3085
  br label %3087

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

3094:                                             ; preds = %3087
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = call i32 @fileno(ptr noundef %3095) #8
  %3097 = call i32 @isatty(i32 noundef %3096) #8
  %3098 = icmp ne i32 %3097, 0
  br i1 %3098, label %3099, label %3116

3099:                                             ; preds = %3094
  %3100 = load i32, ptr %64, align 4, !tbaa !5
  %3101 = call ptr @__errno_location() #9
  store i32 %3100, ptr %3101, align 4, !tbaa !5
  %3102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3103 = load i32, ptr @test_count, align 4, !tbaa !5
  %3104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3105 = load i32, ptr %3104, align 4, !tbaa !5
  %3106 = call ptr @s2n_strerror(i32 noundef %3105, ptr noundef @.str.4)
  %3107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3108 = load i32, ptr %3107, align 4, !tbaa !5
  %3109 = call ptr @s2n_strerror_debug(i32 noundef %3108, ptr noundef @.str.4)
  %3110 = call ptr @__errno_location() #9
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  %3112 = call ptr @strerror(i32 noundef %3111) #8
  %3113 = call ptr @__errno_location() #9
  %3114 = load i32, ptr %3113, align 4, !tbaa !5
  %3115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3102, ptr noundef @.str.2, i32 noundef %3103, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 121, ptr noundef %3106, ptr noundef %3109, ptr noundef %3112, i32 noundef %3114) #8
  br label %3133

3116:                                             ; preds = %3094, %3087
  %3117 = load i32, ptr %64, align 4, !tbaa !5
  %3118 = call ptr @__errno_location() #9
  store i32 %3117, ptr %3118, align 4, !tbaa !5
  %3119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3120 = load i32, ptr @test_count, align 4, !tbaa !5
  %3121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = call ptr @s2n_strerror(i32 noundef %3122, ptr noundef @.str.4)
  %3124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3125 = load i32, ptr %3124, align 4, !tbaa !5
  %3126 = call ptr @s2n_strerror_debug(i32 noundef %3125, ptr noundef @.str.4)
  %3127 = call ptr @__errno_location() #9
  %3128 = load i32, ptr %3127, align 4, !tbaa !5
  %3129 = call ptr @strerror(i32 noundef %3128) #8
  %3130 = call ptr @__errno_location() #9
  %3131 = load i32, ptr %3130, align 4, !tbaa !5
  %3132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3119, ptr noundef @.str.5, i32 noundef %3120, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 121, ptr noundef %3123, ptr noundef %3126, ptr noundef %3129, i32 noundef %3131) #8
  br label %3133

3133:                                             ; preds = %3116, %3099
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  br label %3134

3134:                                             ; preds = %3133
  call void @exit(i32 noundef 1) #10
  unreachable

3135:                                             ; No predecessors!
  br label %3136

3136:                                             ; preds = %3135, %3082
  br label %3137

3137:                                             ; preds = %3136
  %3138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3139 = trunc i8 %3138 to i1
  br i1 %3139, label %3140, label %3156

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

3145:                                             ; preds = %3140
  %3146 = load i32, ptr @test_count, align 4, !tbaa !5
  %3147 = icmp ne i32 %3146, 0
  br i1 %3147, label %3148, label %3152

3148:                                             ; preds = %3145
  %3149 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3150 = load i32, ptr @test_count, align 4, !tbaa !5
  %3151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3149, ptr noundef @.str.42, i32 noundef %3150) #8
  br label %3155

3152:                                             ; preds = %3145
  %3153 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3153, ptr noundef @.str.43) #8
  br label %3155

3155:                                             ; preds = %3152, %3148
  br label %3167

3156:                                             ; preds = %3140, %3137
  %3157 = load i32, ptr @test_count, align 4, !tbaa !5
  %3158 = icmp ne i32 %3157, 0
  br i1 %3158, label %3159, label %3163

3159:                                             ; preds = %3156
  %3160 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3161 = load i32, ptr @test_count, align 4, !tbaa !5
  %3162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3160, ptr noundef @.str.44, i32 noundef %3161) #8
  br label %3166

3163:                                             ; preds = %3156
  %3164 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3164, ptr noundef @.str.45) #8
  br label %3166

3166:                                             ; preds = %3163, %3159
  br label %3167

3167:                                             ; preds = %3166, %3155
  store i32 0, ptr %3, align 4
  br label %3169

3168:                                             ; No predecessors!
  br label %3169

3169:                                             ; preds = %3168, %3167
  %3170 = load i32, ptr %3, align 4
  ret i32 %3170
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

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

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

declare i32 @s2n_send_empty_cert_chain(ptr noundef) #2

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare ptr @s2n_config_new() #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

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

declare i32 @s2n_client_cert_send(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

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

declare i32 @s2n_client_cert_recv(ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(none) }
attributes #10 = { 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, !6, i64 28}
!16 = !{!"s2n_stuffer", !17, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!17 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!18 = !{!16, !6, i64 24}
!19 = !{!20, !6, i64 2172}
!20 = !{!"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, !21, i64 160, !22, i64 168, !22, 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, !23, i64 240, !10, i64 632, !10, i64 640, !24, i64 648, !29, i64 1144, !32, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !16, i64 1776, !16, i64 1816, !16, i64 1856, !16, i64 1896, !6, i64 1936, !22, i64 1944, !7, i64 1952, !16, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !34, i64 2208, !6, i64 2212, !34, i64 2216, !22, i64 2224, !7, i64 2232, !22, i64 2240, !22, i64 2248, !22, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !17, i64 2792, !6, i64 2816, !17, i64 2824, !17, i64 2848, !17, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !17, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !16, i64 3992, !17, i64 4032, !17, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !34, i64 4084, !34, i64 4086, !6, i64 4088, !6, i64 4092, !17, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!21 = !{!"s2n_timer", !22, i64 0}
!22 = !{!"long", !7, i64 0}
!23 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!24 = !{!"s2n_kex_parameters", !25, i64 0, !26, i64 8, !7, i64 24, !26, i64 56, !27, i64 72, !27, i64 184, !7, i64 296, !28, i64 360, !17, i64 448, !17, i64 472}
!25 = !{!"s2n_dh_params", !10, i64 0}
!26 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!27 = !{!"s2n_kem_group_params", !10, i64 0, !28, i64 8, !26, i64 96}
!28 = !{!"s2n_kem_params", !10, i64 0, !17, i64 8, !17, i64 32, !17, i64 56, !12, i64 80}
!29 = !{!"s2n_handshake_parameters", !30, i64 0, !30, i64 48, !17, 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, !34, i64 40, !34, i64 42, !10, i64 48, !6, i64 56}
!33 = !{!"s2n_array", !17, i64 0, !6, i64 24, !6, i64 28}
!34 = !{!"short", !7, i64 0}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !16, 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", !17, i64 0, !39, i64 24, !17, i64 728, !17, i64 752, !17, 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, !17, i64 672, !34, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !34, 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", !17, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !16, i64 0, !7, i64 40}
!44 = !{!20, !6, i64 2044}
!45 = !{!20, !6, i64 2040}


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

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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [85 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca %struct.s2n_stuffer, align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  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, ptr noundef nonnull @.str.1) #9
  %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) #9
  %11 = icmp eq i32 %10, -1
  br i1 %11, label %12, label %36

12:                                               ; preds = %2
  %13 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %22 = tail call i32 @isatty(i32 noundef %21) #9
  %.not196 = icmp eq i32 %22, 0
  br i1 %.not196, label %23, label %24

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

24:                                               ; preds = %19, %23
  %.str.5.sink = phi ptr [ @.str.5, %23 ], [ @.str.2, %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.4) #9
  %30 = load i32, ptr %27, align 4, !tbaa !5
  %31 = tail call ptr @s2n_strerror_debug(i32 noundef %30, ptr noundef nonnull @.str.4) #9
  %32 = load i32, ptr %13, align 4, !tbaa !5
  %33 = tail call ptr @strerror(i32 noundef %32) #9
  %34 = load i32, ptr %13, align 4, !tbaa !5
  %35 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25, ptr noundef nonnull %.str.5.sink, i32 noundef %26, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 26, ptr noundef %29, ptr noundef %31, ptr noundef %33, i32 noundef %34) #11
  tail call void @exit(i32 noundef 1) #12
  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() #9
  %40 = icmp eq i32 %39, -1
  br i1 %40, label %41, label %65

41:                                               ; preds = %36
  %42 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %51 = tail call i32 @isatty(i32 noundef %50) #9
  %.not195 = icmp eq i32 %51, 0
  br i1 %.not195, label %52, label %53

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

53:                                               ; preds = %48, %52
  %.str.5.sink207 = phi ptr [ @.str.5, %52 ], [ @.str.2, %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.4) #9
  %59 = load i32, ptr %56, align 4, !tbaa !5
  %60 = tail call ptr @s2n_strerror_debug(i32 noundef %59, ptr noundef nonnull @.str.4) #9
  %61 = load i32, ptr %42, align 4, !tbaa !5
  %62 = tail call ptr @strerror(i32 noundef %61) #9
  %63 = load i32, ptr %42, align 4, !tbaa !5
  %64 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %54, ptr noundef nonnull %.str.5.sink207, i32 noundef %55, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 26, ptr noundef %58, ptr noundef %60, ptr noundef %62, i32 noundef %63) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

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

68:                                               ; preds = %65
  %69 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %78 = tail call i32 @isatty(i32 noundef %77) #9
  %.not194 = icmp eq i32 %78, 0
  br i1 %.not194, label %79, label %80

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

80:                                               ; preds = %75, %79
  %.str.5.sink218 = phi ptr [ @.str.5, %79 ], [ @.str.2, %75 ]
  store i32 %70, ptr %69, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror(i32 noundef %84, ptr noundef nonnull @.str.4) #9
  %86 = load i32, ptr %83, align 4, !tbaa !5
  %87 = tail call ptr @s2n_strerror_debug(i32 noundef %86, ptr noundef nonnull @.str.4) #9
  %88 = load i32, ptr %69, align 4, !tbaa !5
  %89 = tail call ptr @strerror(i32 noundef %88) #9
  %90 = load i32, ptr %69, align 4, !tbaa !5
  %91 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef nonnull %.str.5.sink218, i32 noundef %82, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 26, ptr noundef %85, ptr noundef %87, ptr noundef %89, i32 noundef %90) #11
  tail call void @exit(i32 noundef 1) #12
  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() #9
  %96 = icmp eq i32 %95, -1
  br i1 %96, label %97, label %121

97:                                               ; preds = %92
  %98 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %107 = tail call i32 @isatty(i32 noundef %106) #9
  %.not193 = icmp eq i32 %107, 0
  br i1 %.not193, label %108, label %109

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

109:                                              ; preds = %104, %108
  %.str.5.sink229 = phi ptr [ @.str.5, %108 ], [ @.str.2, %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.4) #9
  %115 = load i32, ptr %112, align 4, !tbaa !5
  %116 = tail call ptr @s2n_strerror_debug(i32 noundef %115, ptr noundef nonnull @.str.4) #9
  %117 = load i32, ptr %98, align 4, !tbaa !5
  %118 = tail call ptr @strerror(i32 noundef %117) #9
  %119 = load i32, ptr %98, align 4, !tbaa !5
  %120 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %110, ptr noundef nonnull %.str.5.sink229, i32 noundef %111, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 27, ptr noundef %114, ptr noundef %116, ptr noundef %118, i32 noundef %119) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

121:                                              ; preds = %92
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, i8 0, i64 40, i1 false)
  %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_stuffer_alloc(ptr noundef nonnull %3, i32 noundef 3) #9
  %125 = icmp eq i32 %124, -1
  br i1 %125, label %126, label %150

126:                                              ; preds = %121
  %127 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %136 = call i32 @isatty(i32 noundef %135) #9
  %.not192 = icmp eq i32 %136, 0
  br i1 %.not192, label %137, label %138

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

138:                                              ; preds = %133, %137
  %.str.5.sink240 = phi ptr [ @.str.5, %137 ], [ @.str.2, %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.4) #9
  %144 = load i32, ptr %141, align 4, !tbaa !5
  %145 = call ptr @s2n_strerror_debug(i32 noundef %144, ptr noundef nonnull @.str.4) #9
  %146 = load i32, ptr %127, align 4, !tbaa !5
  %147 = call ptr @strerror(i32 noundef %146) #9
  %148 = load i32, ptr %127, align 4, !tbaa !5
  %149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %139, ptr noundef nonnull %.str.5.sink240, i32 noundef %140, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 33, ptr noundef %143, ptr noundef %145, ptr noundef %147, i32 noundef %148) #11
  call void @exit(i32 noundef 1) #12
  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 i32 @s2n_send_empty_cert_chain(ptr noundef nonnull %3) #9
  %154 = icmp eq i32 %153, -1
  br i1 %154, label %155, label %179

155:                                              ; preds = %150
  %156 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %165 = call i32 @isatty(i32 noundef %164) #9
  %.not191 = icmp eq i32 %165, 0
  br i1 %.not191, label %166, label %167

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

167:                                              ; preds = %162, %166
  %.str.5.sink251 = phi ptr [ @.str.5, %166 ], [ @.str.2, %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.4) #9
  %173 = load i32, ptr %170, align 4, !tbaa !5
  %174 = call ptr @s2n_strerror_debug(i32 noundef %173, ptr noundef nonnull @.str.4) #9
  %175 = load i32, ptr %156, align 4, !tbaa !5
  %176 = call ptr @strerror(i32 noundef %175) #9
  %177 = load i32, ptr %156, align 4, !tbaa !5
  %178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %168, ptr noundef nonnull %.str.5.sink251, i32 noundef %169, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %172, ptr noundef %174, ptr noundef %176, i32 noundef %177) #11
  call void @exit(i32 noundef 1) #12
  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 = getelementptr inbounds i8, ptr %3, i64 28
  %183 = load i32, ptr %182, align 4, !tbaa !15
  %184 = getelementptr inbounds i8, ptr %3, i64 24
  %185 = load i32, ptr %184, align 8, !tbaa !18
  %186 = sub i32 %183, %185
  %187 = icmp eq i32 %186, 3
  br i1 %187, label %212, label %188

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

195:                                              ; preds = %188
  %196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %197 = call i32 @fileno(ptr noundef %196) #9
  %198 = call i32 @isatty(i32 noundef %197) #9
  %.not = icmp eq i32 %198, 0
  br i1 %.not, label %199, label %200

199:                                              ; preds = %195, %188
  br label %200

200:                                              ; preds = %195, %199
  %.str.5.sink262 = phi ptr [ @.str.5, %199 ], [ @.str.2, %195 ]
  store i32 %190, ptr %189, align 4, !tbaa !5
  %201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %202 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %204, ptr noundef nonnull @.str.4) #9
  %206 = load i32, ptr %203, align 4, !tbaa !5
  %207 = call ptr @s2n_strerror_debug(i32 noundef %206, ptr noundef nonnull @.str.4) #9
  %208 = load i32, ptr %189, align 4, !tbaa !5
  %209 = call ptr @strerror(i32 noundef %208) #9
  %210 = load i32, ptr %189, align 4, !tbaa !5
  %211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %201, ptr noundef nonnull %.str.5.sink262, i32 noundef %202, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef %205, ptr noundef %207, ptr noundef %209, i32 noundef %210) #11
  call void @exit(i32 noundef 1) #12
  unreachable

212:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #9
  store i32 0, ptr %4, align 4, !tbaa !5
  %213 = add nsw i32 %180, 2
  store i32 %213, ptr @test_count, align 4, !tbaa !5
  %214 = call i32 @s2n_stuffer_read_uint24(ptr noundef nonnull %3, ptr noundef nonnull %4) #9
  %215 = icmp eq i32 %214, -1
  br i1 %215, label %216, label %240

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

223:                                              ; preds = %216
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @fileno(ptr noundef %224) #9
  %226 = call i32 @isatty(i32 noundef %225) #9
  %.not190 = icmp eq i32 %226, 0
  br i1 %.not190, label %227, label %228

227:                                              ; preds = %223, %216
  br label %228

228:                                              ; preds = %223, %227
  %.str.5.sink273 = phi ptr [ @.str.5, %227 ], [ @.str.2, %223 ]
  store i32 %218, ptr %217, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror(i32 noundef %232, ptr noundef nonnull @.str.4) #9
  %234 = load i32, ptr %231, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror_debug(i32 noundef %234, ptr noundef nonnull @.str.4) #9
  %236 = load i32, ptr %217, align 4, !tbaa !5
  %237 = call ptr @strerror(i32 noundef %236) #9
  %238 = load i32, ptr %217, align 4, !tbaa !5
  %239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef nonnull %.str.5.sink273, i32 noundef %230, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %233, ptr noundef %235, ptr noundef %237, i32 noundef %238) #11
  call void @exit(i32 noundef 1) #12
  unreachable

240:                                              ; preds = %212
  %241 = load i32, ptr @test_count, align 4, !tbaa !5
  %242 = add nsw i32 %241, 1
  store i32 %242, ptr @test_count, align 4, !tbaa !5
  %243 = load i32, ptr %4, align 4, !tbaa !5
  %244 = icmp eq i32 %243, 0
  br i1 %244, label %269, label %245

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

252:                                              ; preds = %245
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = call i32 @fileno(ptr noundef %253) #9
  %255 = call i32 @isatty(i32 noundef %254) #9
  %.not143 = icmp eq i32 %255, 0
  br i1 %.not143, label %256, label %257

256:                                              ; preds = %252, %245
  br label %257

257:                                              ; preds = %252, %256
  %.str.5.sink284 = phi ptr [ @.str.5, %256 ], [ @.str.2, %252 ]
  store i32 %247, ptr %246, align 4, !tbaa !5
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = load i32, ptr @test_count, align 4, !tbaa !5
  %260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = call ptr @s2n_strerror(i32 noundef %261, ptr noundef nonnull @.str.4) #9
  %263 = load i32, ptr %260, align 4, !tbaa !5
  %264 = call ptr @s2n_strerror_debug(i32 noundef %263, ptr noundef nonnull @.str.4) #9
  %265 = load i32, ptr %246, align 4, !tbaa !5
  %266 = call ptr @strerror(i32 noundef %265) #9
  %267 = load i32, ptr %246, align 4, !tbaa !5
  %268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %258, ptr noundef nonnull %.str.5.sink284, i32 noundef %259, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %262, ptr noundef %264, ptr noundef %266, i32 noundef %267) #11
  call void @exit(i32 noundef 1) #12
  unreachable

269:                                              ; preds = %240
  %270 = add nsw i32 %241, 2
  store i32 %270, ptr @test_count, align 4, !tbaa !5
  %271 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #9
  %272 = icmp eq i32 %271, -1
  br i1 %272, label %273, label %297

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

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

284:                                              ; preds = %280, %273
  br label %285

285:                                              ; preds = %280, %284
  %.str.5.sink295 = phi ptr [ @.str.5, %284 ], [ @.str.2, %280 ]
  store i32 %275, ptr %274, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call ptr @s2n_strerror(i32 noundef %289, ptr noundef nonnull @.str.4) #9
  %291 = load i32, ptr %288, align 4, !tbaa !5
  %292 = call ptr @s2n_strerror_debug(i32 noundef %291, ptr noundef nonnull @.str.4) #9
  %293 = load i32, ptr %274, align 4, !tbaa !5
  %294 = call ptr @strerror(i32 noundef %293) #9
  %295 = load i32, ptr %274, align 4, !tbaa !5
  %296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %286, ptr noundef nonnull %.str.5.sink295, i32 noundef %287, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %290, ptr noundef %292, ptr noundef %294, i32 noundef %295) #11
  call void @exit(i32 noundef 1) #12
  unreachable

297:                                              ; preds = %269
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #9
  %298 = load i32, ptr @test_count, align 4, !tbaa !5
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr @test_count, align 4, !tbaa !5
  %300 = call ptr @s2n_config_new() #9
  %301 = icmp eq ptr %300, null
  br i1 %301, label %302, label %326

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

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

313:                                              ; preds = %309, %302
  br label %314

314:                                              ; preds = %309, %313
  %.str.5.sink306 = phi ptr [ @.str.5, %313 ], [ @.str.2, %309 ]
  store i32 %304, ptr %303, 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 nonnull @.str.4) #9
  %320 = load i32, ptr %317, align 4, !tbaa !5
  %321 = call ptr @s2n_strerror_debug(i32 noundef %320, ptr noundef nonnull @.str.4) #9
  %322 = load i32, ptr %303, align 4, !tbaa !5
  %323 = call ptr @strerror(i32 noundef %322) #9
  %324 = load i32, ptr %303, align 4, !tbaa !5
  %325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %315, ptr noundef nonnull %.str.5.sink306, i32 noundef %316, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %319, ptr noundef %321, ptr noundef %323, i32 noundef %324) #11
  call void @exit(i32 noundef 1) #12
  unreachable

326:                                              ; preds = %297
  %327 = load i32, ptr @test_count, align 4, !tbaa !5
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr @test_count, align 4, !tbaa !5
  %329 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %330 = icmp eq ptr %329, null
  br i1 %330, label %331, label %355

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

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

342:                                              ; preds = %338, %331
  br label %343

343:                                              ; preds = %338, %342
  %.str.5.sink317 = phi ptr [ @.str.5, %342 ], [ @.str.2, %338 ]
  store i32 %333, ptr %332, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = load i32, ptr @test_count, align 4, !tbaa !5
  %346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror(i32 noundef %347, ptr noundef nonnull @.str.4) #9
  %349 = load i32, ptr %346, align 4, !tbaa !5
  %350 = call ptr @s2n_strerror_debug(i32 noundef %349, ptr noundef nonnull @.str.4) #9
  %351 = load i32, ptr %332, align 4, !tbaa !5
  %352 = call ptr @strerror(i32 noundef %351) #9
  %353 = load i32, ptr %332, align 4, !tbaa !5
  %354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %344, ptr noundef nonnull %.str.5.sink317, i32 noundef %345, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %348, ptr noundef %350, ptr noundef %352, i32 noundef %353) #11
  call void @exit(i32 noundef 1) #12
  unreachable

355:                                              ; preds = %326
  %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 i32 @s2n_connection_set_config(ptr noundef nonnull %329, ptr noundef nonnull %300) #9
  %359 = icmp eq i32 %358, -1
  br i1 %359, label %360, label %384

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

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

371:                                              ; preds = %367, %360
  br label %372

372:                                              ; preds = %367, %371
  %.str.5.sink328 = phi ptr [ @.str.5, %371 ], [ @.str.2, %367 ]
  store i32 %362, ptr %361, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = load i32, ptr @test_count, align 4, !tbaa !5
  %375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = call ptr @s2n_strerror(i32 noundef %376, ptr noundef nonnull @.str.4) #9
  %378 = load i32, ptr %375, align 4, !tbaa !5
  %379 = call ptr @s2n_strerror_debug(i32 noundef %378, ptr noundef nonnull @.str.4) #9
  %380 = load i32, ptr %361, align 4, !tbaa !5
  %381 = call ptr @strerror(i32 noundef %380) #9
  %382 = load i32, ptr %361, align 4, !tbaa !5
  %383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %373, ptr noundef nonnull %.str.5.sink328, i32 noundef %374, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %377, ptr noundef %379, ptr noundef %381, i32 noundef %382) #11
  call void @exit(i32 noundef 1) #12
  unreachable

384:                                              ; preds = %355
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = add nsw i32 %385, 1
  store i32 %386, ptr @test_count, align 4, !tbaa !5
  %387 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %329, i32 noundef 2) #9
  %388 = icmp eq i32 %387, -1
  br i1 %388, label %389, label %413

389:                                              ; preds = %384
  %390 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %399 = call i32 @isatty(i32 noundef %398) #9
  %.not185 = icmp eq i32 %399, 0
  br i1 %.not185, label %400, label %401

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

401:                                              ; preds = %396, %400
  %.str.5.sink339 = phi ptr [ @.str.5, %400 ], [ @.str.2, %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.4) #9
  %407 = load i32, ptr %404, align 4, !tbaa !5
  %408 = call ptr @s2n_strerror_debug(i32 noundef %407, ptr noundef nonnull @.str.4) #9
  %409 = load i32, ptr %390, align 4, !tbaa !5
  %410 = call ptr @strerror(i32 noundef %409) #9
  %411 = load i32, ptr %390, align 4, !tbaa !5
  %412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %402, ptr noundef nonnull %.str.5.sink339, i32 noundef %403, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %406, ptr noundef %408, ptr noundef %410, i32 noundef %411) #11
  call void @exit(i32 noundef 1) #12
  unreachable

413:                                              ; preds = %384
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = add nsw i32 %414, 1
  store i32 %415, ptr @test_count, align 4, !tbaa !5
  %416 = call i32 @s2n_client_cert_send(ptr noundef nonnull %329) #9
  %417 = icmp eq i32 %416, -1
  br i1 %417, label %418, label %442

418:                                              ; preds = %413
  %419 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %428 = call i32 @isatty(i32 noundef %427) #9
  %.not184 = icmp eq i32 %428, 0
  br i1 %.not184, label %429, label %430

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

430:                                              ; preds = %425, %429
  %.str.5.sink350 = phi ptr [ @.str.5, %429 ], [ @.str.2, %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.4) #9
  %436 = load i32, ptr %433, align 4, !tbaa !5
  %437 = call ptr @s2n_strerror_debug(i32 noundef %436, ptr noundef nonnull @.str.4) #9
  %438 = load i32, ptr %419, align 4, !tbaa !5
  %439 = call ptr @strerror(i32 noundef %438) #9
  %440 = load i32, ptr %419, align 4, !tbaa !5
  %441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %431, ptr noundef nonnull %.str.5.sink350, i32 noundef %432, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %435, ptr noundef %437, ptr noundef %439, i32 noundef %440) #11
  call void @exit(i32 noundef 1) #12
  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 = getelementptr inbounds i8, ptr %329, i64 2016
  %446 = getelementptr inbounds i8, ptr %329, i64 2172
  %447 = load i32, ptr %446, align 4, !tbaa !19
  %448 = and i32 %447, 8
  %.not144 = icmp eq i32 %448, 0
  br i1 %.not144, label %449, label %473

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

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

460:                                              ; preds = %456, %449
  br label %461

461:                                              ; preds = %456, %460
  %.str.5.sink361 = phi ptr [ @.str.5, %460 ], [ @.str.2, %456 ]
  store i32 %451, ptr %450, align 4, !tbaa !5
  %462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %463 = load i32, ptr @test_count, align 4, !tbaa !5
  %464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %465 = load i32, ptr %464, align 4, !tbaa !5
  %466 = call ptr @s2n_strerror(i32 noundef %465, ptr noundef nonnull @.str.4) #9
  %467 = load i32, ptr %464, align 4, !tbaa !5
  %468 = call ptr @s2n_strerror_debug(i32 noundef %467, ptr noundef nonnull @.str.4) #9
  %469 = load i32, ptr %450, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #9
  %471 = load i32, ptr %450, align 4, !tbaa !5
  %472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %462, ptr noundef nonnull %.str.5.sink361, i32 noundef %463, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %466, ptr noundef %468, ptr noundef %470, i32 noundef %471) #11
  call void @exit(i32 noundef 1) #12
  unreachable

473:                                              ; preds = %442
  %474 = add nsw i32 %443, 2
  store i32 %474, ptr @test_count, align 4, !tbaa !5
  %475 = getelementptr inbounds i8, ptr %329, i64 2044
  %476 = load i32, ptr %475, align 4, !tbaa !44
  %477 = getelementptr inbounds i8, ptr %329, i64 2040
  %478 = load i32, ptr %477, align 8, !tbaa !45
  %479 = sub i32 %476, %478
  %480 = icmp eq i32 %479, 3
  br i1 %480, label %505, label %481

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

488:                                              ; preds = %481
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = call i32 @fileno(ptr noundef %489) #9
  %491 = call i32 @isatty(i32 noundef %490) #9
  %.not146 = icmp eq i32 %491, 0
  br i1 %.not146, label %492, label %493

492:                                              ; preds = %488, %481
  br label %493

493:                                              ; preds = %488, %492
  %.str.5.sink372 = phi ptr [ @.str.5, %492 ], [ @.str.2, %488 ]
  store i32 %483, ptr %482, align 4, !tbaa !5
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror(i32 noundef %497, ptr noundef nonnull @.str.4) #9
  %499 = load i32, ptr %496, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror_debug(i32 noundef %499, ptr noundef nonnull @.str.4) #9
  %501 = load i32, ptr %482, align 4, !tbaa !5
  %502 = call ptr @strerror(i32 noundef %501) #9
  %503 = load i32, ptr %482, align 4, !tbaa !5
  %504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %494, ptr noundef nonnull %.str.5.sink372, i32 noundef %495, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %498, ptr noundef %500, ptr noundef %502, i32 noundef %503) #11
  call void @exit(i32 noundef 1) #12
  unreachable

505:                                              ; preds = %473
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #9
  store i32 0, ptr %5, align 4, !tbaa !5
  %506 = add nsw i32 %443, 3
  store i32 %506, ptr @test_count, align 4, !tbaa !5
  %507 = call i32 @s2n_stuffer_read_uint24(ptr noundef nonnull %445, ptr noundef nonnull %5) #9
  %508 = icmp eq i32 %507, -1
  br i1 %508, label %509, label %533

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

516:                                              ; preds = %509
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = call i32 @fileno(ptr noundef %517) #9
  %519 = call i32 @isatty(i32 noundef %518) #9
  %.not183 = icmp eq i32 %519, 0
  br i1 %.not183, label %520, label %521

520:                                              ; preds = %516, %509
  br label %521

521:                                              ; preds = %516, %520
  %.str.5.sink383 = phi ptr [ @.str.5, %520 ], [ @.str.2, %516 ]
  store i32 %511, ptr %510, align 4, !tbaa !5
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = load i32, ptr @test_count, align 4, !tbaa !5
  %524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror(i32 noundef %525, ptr noundef nonnull @.str.4) #9
  %527 = load i32, ptr %524, align 4, !tbaa !5
  %528 = call ptr @s2n_strerror_debug(i32 noundef %527, ptr noundef nonnull @.str.4) #9
  %529 = load i32, ptr %510, align 4, !tbaa !5
  %530 = call ptr @strerror(i32 noundef %529) #9
  %531 = load i32, ptr %510, align 4, !tbaa !5
  %532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %522, ptr noundef nonnull %.str.5.sink383, i32 noundef %523, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %526, ptr noundef %528, ptr noundef %530, i32 noundef %531) #11
  call void @exit(i32 noundef 1) #12
  unreachable

533:                                              ; preds = %505
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr @test_count, align 4, !tbaa !5
  %536 = load i32, ptr %5, align 4, !tbaa !5
  %537 = icmp eq i32 %536, 0
  br i1 %537, label %562, label %538

538:                                              ; preds = %533
  %539 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %548 = call i32 @isatty(i32 noundef %547) #9
  %.not147 = icmp eq i32 %548, 0
  br i1 %.not147, label %549, label %550

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

550:                                              ; preds = %545, %549
  %.str.5.sink394 = phi ptr [ @.str.5, %549 ], [ @.str.2, %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.4) #9
  %556 = load i32, ptr %553, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror_debug(i32 noundef %556, ptr noundef nonnull @.str.4) #9
  %558 = load i32, ptr %539, align 4, !tbaa !5
  %559 = call ptr @strerror(i32 noundef %558) #9
  %560 = load i32, ptr %539, align 4, !tbaa !5
  %561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %551, ptr noundef nonnull %.str.5.sink394, i32 noundef %552, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %555, ptr noundef %557, ptr noundef %559, i32 noundef %560) #11
  call void @exit(i32 noundef 1) #12
  unreachable

562:                                              ; preds = %533
  %563 = add nsw i32 %534, 2
  store i32 %563, ptr @test_count, align 4, !tbaa !5
  %564 = call i32 @s2n_connection_free(ptr noundef nonnull %329) #9
  %565 = icmp eq i32 %564, -1
  br i1 %565, label %566, label %590

566:                                              ; preds = %562
  %567 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %576 = call i32 @isatty(i32 noundef %575) #9
  %.not182 = icmp eq i32 %576, 0
  br i1 %.not182, label %577, label %578

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

578:                                              ; preds = %573, %577
  %.str.5.sink405 = phi ptr [ @.str.5, %577 ], [ @.str.2, %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.4) #9
  %584 = load i32, ptr %581, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror_debug(i32 noundef %584, ptr noundef nonnull @.str.4) #9
  %586 = load i32, ptr %567, align 4, !tbaa !5
  %587 = call ptr @strerror(i32 noundef %586) #9
  %588 = load i32, ptr %567, align 4, !tbaa !5
  %589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %579, ptr noundef nonnull %.str.5.sink405, i32 noundef %580, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %583, ptr noundef %585, ptr noundef %587, i32 noundef %588) #11
  call void @exit(i32 noundef 1) #12
  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_config_free(ptr noundef nonnull %300) #9
  %594 = icmp eq i32 %593, -1
  br i1 %594, label %595, label %619

595:                                              ; preds = %590
  %596 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %605 = call i32 @isatty(i32 noundef %604) #9
  %.not181 = icmp eq i32 %605, 0
  br i1 %.not181, label %606, label %607

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

607:                                              ; preds = %602, %606
  %.str.5.sink416 = phi ptr [ @.str.5, %606 ], [ @.str.2, %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.4) #9
  %613 = load i32, ptr %610, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror_debug(i32 noundef %613, ptr noundef nonnull @.str.4) #9
  %615 = load i32, ptr %596, align 4, !tbaa !5
  %616 = call ptr @strerror(i32 noundef %615) #9
  %617 = load i32, ptr %596, align 4, !tbaa !5
  %618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %608, ptr noundef nonnull %.str.5.sink416, i32 noundef %609, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %612, ptr noundef %614, ptr noundef %616, i32 noundef %617) #11
  call void @exit(i32 noundef 1) #12
  unreachable

619:                                              ; preds = %590
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #9
  %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 ptr @s2n_config_new() #9
  %623 = icmp eq ptr %622, null
  br i1 %623, label %624, label %648

624:                                              ; preds = %619
  %625 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %634 = call i32 @isatty(i32 noundef %633) #9
  %.not180 = icmp eq i32 %634, 0
  br i1 %.not180, label %635, label %636

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

636:                                              ; preds = %631, %635
  %.str.5.sink427 = phi ptr [ @.str.5, %635 ], [ @.str.2, %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.4) #9
  %642 = load i32, ptr %639, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror_debug(i32 noundef %642, ptr noundef nonnull @.str.4) #9
  %644 = load i32, ptr %625, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #9
  %646 = load i32, ptr %625, align 4, !tbaa !5
  %647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %637, ptr noundef nonnull %.str.5.sink427, i32 noundef %638, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %641, ptr noundef %643, ptr noundef %645, i32 noundef %646) #11
  call void @exit(i32 noundef 1) #12
  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 1) #9
  %652 = icmp eq ptr %651, null
  br i1 %652, label %653, label %677

653:                                              ; preds = %648
  %654 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %663 = call i32 @isatty(i32 noundef %662) #9
  %.not179 = icmp eq i32 %663, 0
  br i1 %.not179, label %664, label %665

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

665:                                              ; preds = %660, %664
  %.str.5.sink438 = phi ptr [ @.str.5, %664 ], [ @.str.2, %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.4) #9
  %671 = load i32, ptr %668, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror_debug(i32 noundef %671, ptr noundef nonnull @.str.4) #9
  %673 = load i32, ptr %654, align 4, !tbaa !5
  %674 = call ptr @strerror(i32 noundef %673) #9
  %675 = load i32, ptr %654, align 4, !tbaa !5
  %676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %666, ptr noundef nonnull %.str.5.sink438, i32 noundef %667, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %670, ptr noundef %672, ptr noundef %674, i32 noundef %675) #11
  call void @exit(i32 noundef 1) #12
  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 = call i32 @s2n_connection_set_config(ptr noundef nonnull %651, ptr noundef nonnull %622) #9
  %681 = icmp eq i32 %680, -1
  br i1 %681, label %682, label %706

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

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

693:                                              ; preds = %689, %682
  br label %694

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

706:                                              ; preds = %677
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = add nsw i32 %707, 1
  store i32 %708, ptr @test_count, align 4, !tbaa !5
  %709 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %651, i32 noundef 1) #9
  %710 = icmp eq i32 %709, -1
  br i1 %710, label %711, label %735

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

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

722:                                              ; preds = %718, %711
  br label %723

723:                                              ; preds = %718, %722
  %.str.5.sink460 = phi ptr [ @.str.5, %722 ], [ @.str.2, %718 ]
  store i32 %713, ptr %712, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = load i32, ptr @test_count, align 4, !tbaa !5
  %726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror(i32 noundef %727, ptr noundef nonnull @.str.4) #9
  %729 = load i32, ptr %726, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror_debug(i32 noundef %729, ptr noundef nonnull @.str.4) #9
  %731 = load i32, ptr %712, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #9
  %733 = load i32, ptr %712, align 4, !tbaa !5
  %734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %724, ptr noundef nonnull %.str.5.sink460, i32 noundef %725, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %728, ptr noundef %730, ptr noundef %732, i32 noundef %733) #11
  call void @exit(i32 noundef 1) #12
  unreachable

735:                                              ; preds = %706
  %736 = load i32, ptr @test_count, align 4, !tbaa !5
  %737 = add nsw i32 %736, 1
  store i32 %737, ptr @test_count, align 4, !tbaa !5
  %738 = call i32 @s2n_client_cert_send(ptr noundef nonnull %651) #9
  %739 = icmp eq i32 %738, -1
  br i1 %739, label %764, label %740

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

747:                                              ; preds = %740
  %748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %749 = call i32 @fileno(ptr noundef %748) #9
  %750 = call i32 @isatty(i32 noundef %749) #9
  %.not148 = icmp eq i32 %750, 0
  br i1 %.not148, label %751, label %752

751:                                              ; preds = %747, %740
  br label %752

752:                                              ; preds = %747, %751
  %.str.5.sink471 = phi ptr [ @.str.5, %751 ], [ @.str.2, %747 ]
  store i32 %742, ptr %741, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %756, ptr noundef nonnull @.str.4) #9
  %758 = load i32, ptr %755, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror_debug(i32 noundef %758, ptr noundef nonnull @.str.4) #9
  %760 = load i32, ptr %741, align 4, !tbaa !5
  %761 = call ptr @strerror(i32 noundef %760) #9
  %762 = load i32, ptr %741, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %753, ptr noundef nonnull %.str.5.sink471, i32 noundef %754, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %757, ptr noundef %759, ptr noundef %761, i32 noundef %762) #11
  call void @exit(i32 noundef 1) #12
  unreachable

764:                                              ; preds = %735
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = add nsw i32 %765, 1
  store i32 %766, ptr @test_count, align 4, !tbaa !5
  %767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = icmp eq i32 %768, 0
  br i1 %769, label %770, label %793

770:                                              ; preds = %764
  %771 = tail call ptr @__errno_location() #10
  %772 = load i32, ptr %771, align 4, !tbaa !5
  %773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = call i32 @s2n_print_stacktrace(ptr noundef %773) #9
  %775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %776 = trunc nuw i8 %775 to i1
  br i1 %776, label %777, label %781

777:                                              ; preds = %770
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = call i32 @fileno(ptr noundef %778) #9
  %780 = call i32 @isatty(i32 noundef %779) #9
  %.not176 = icmp eq i32 %780, 0
  br i1 %.not176, label %781, label %782

781:                                              ; preds = %777, %770
  br label %782

782:                                              ; preds = %777, %781
  %.str.5.sink482 = phi ptr [ @.str.5, %781 ], [ @.str.2, %777 ]
  store i32 %772, ptr %771, align 4, !tbaa !5
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = load i32, ptr %767, align 4, !tbaa !5
  %786 = call ptr @s2n_strerror(i32 noundef %785, ptr noundef nonnull @.str.4) #9
  %787 = load i32, ptr %767, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror_debug(i32 noundef %787, ptr noundef nonnull @.str.4) #9
  %789 = load i32, ptr %771, align 4, !tbaa !5
  %790 = call ptr @strerror(i32 noundef %789) #9
  %791 = load i32, ptr %771, align 4, !tbaa !5
  %792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %783, ptr noundef nonnull %.str.5.sink482, i32 noundef %784, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %786, ptr noundef %788, ptr noundef %790, i32 noundef %791) #11
  call void @exit(i32 noundef 1) #12
  unreachable

793:                                              ; preds = %764
  %794 = add nsw i32 %765, 2
  store i32 %794, ptr @test_count, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror_debug(i32 noundef %768, ptr noundef nonnull @.str.4) #9
  %796 = icmp eq ptr %795, null
  br i1 %796, label %797, label %820

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

804:                                              ; preds = %797
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @fileno(ptr noundef %805) #9
  %807 = call i32 @isatty(i32 noundef %806) #9
  %.not175 = icmp eq i32 %807, 0
  br i1 %.not175, label %808, label %809

808:                                              ; preds = %804, %797
  br label %809

809:                                              ; preds = %804, %808
  %.str.5.sink491 = phi ptr [ @.str.5, %808 ], [ @.str.2, %804 ]
  store i32 %799, ptr %798, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = load i32, ptr @test_count, align 4, !tbaa !5
  %812 = load i32, ptr %767, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror(i32 noundef %812, ptr noundef nonnull @.str.4) #9
  %814 = load i32, ptr %767, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror_debug(i32 noundef %814, ptr noundef nonnull @.str.4) #9
  %816 = load i32, ptr %798, align 4, !tbaa !5
  %817 = call ptr @strerror(i32 noundef %816) #9
  %818 = load i32, ptr %798, align 4, !tbaa !5
  %819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %810, ptr noundef nonnull %.str.5.sink491, i32 noundef %811, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %813, ptr noundef %815, ptr noundef %817, i32 noundef %818) #11
  call void @exit(i32 noundef 1) #12
  unreachable

820:                                              ; preds = %793
  store i32 0, ptr %767, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  %821 = tail call ptr @__errno_location() #10
  store i32 0, ptr %821, align 4, !tbaa !5
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = add nsw i32 %822, 1
  store i32 %823, ptr @test_count, align 4, !tbaa !5
  %824 = call i32 @s2n_connection_free(ptr noundef nonnull %651) #9
  %825 = icmp eq i32 %824, -1
  br i1 %825, label %826, label %848

826:                                              ; preds = %820
  %827 = load i32, ptr %821, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = call i32 @s2n_print_stacktrace(ptr noundef %828) #9
  %830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %831 = trunc nuw i8 %830 to i1
  br i1 %831, label %832, label %836

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

836:                                              ; preds = %832, %826
  br label %837

837:                                              ; preds = %832, %836
  %.str.5.sink500 = phi ptr [ @.str.5, %836 ], [ @.str.2, %832 ]
  store i32 %827, ptr %821, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = load i32, ptr %767, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror(i32 noundef %840, ptr noundef nonnull @.str.4) #9
  %842 = load i32, ptr %767, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror_debug(i32 noundef %842, ptr noundef nonnull @.str.4) #9
  %844 = load i32, ptr %821, align 4, !tbaa !5
  %845 = call ptr @strerror(i32 noundef %844) #9
  %846 = load i32, ptr %821, align 4, !tbaa !5
  %847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %838, ptr noundef nonnull %.str.5.sink500, i32 noundef %839, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %841, ptr noundef %843, ptr noundef %845, i32 noundef %846) #11
  call void @exit(i32 noundef 1) #12
  unreachable

848:                                              ; preds = %820
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = add nsw i32 %849, 1
  store i32 %850, ptr @test_count, align 4, !tbaa !5
  %851 = call i32 @s2n_config_free(ptr noundef nonnull %622) #9
  %852 = icmp eq i32 %851, -1
  br i1 %852, label %853, label %875

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

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

863:                                              ; preds = %859, %853
  br label %864

864:                                              ; preds = %859, %863
  %.str.5.sink509 = phi ptr [ @.str.5, %863 ], [ @.str.2, %859 ]
  store i32 %854, ptr %821, align 4, !tbaa !5
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = load i32, ptr %767, align 4, !tbaa !5
  %868 = call ptr @s2n_strerror(i32 noundef %867, ptr noundef nonnull @.str.4) #9
  %869 = load i32, ptr %767, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror_debug(i32 noundef %869, ptr noundef nonnull @.str.4) #9
  %871 = load i32, ptr %821, align 4, !tbaa !5
  %872 = call ptr @strerror(i32 noundef %871) #9
  %873 = load i32, ptr %821, align 4, !tbaa !5
  %874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %865, ptr noundef nonnull %.str.5.sink509, i32 noundef %866, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %868, ptr noundef %870, ptr noundef %872, i32 noundef %873) #11
  call void @exit(i32 noundef 1) #12
  unreachable

875:                                              ; preds = %848
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = add nsw i32 %876, 1
  store i32 %877, ptr @test_count, align 4, !tbaa !5
  %878 = call ptr @s2n_config_new() #9
  %879 = icmp eq ptr %878, null
  br i1 %879, label %880, label %902

880:                                              ; preds = %875
  %881 = load i32, ptr %821, align 4, !tbaa !5
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @s2n_print_stacktrace(ptr noundef %882) #9
  %884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %885 = trunc nuw i8 %884 to i1
  br i1 %885, label %886, label %890

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

890:                                              ; preds = %886, %880
  br label %891

891:                                              ; preds = %886, %890
  %.str.5.sink518 = phi ptr [ @.str.5, %890 ], [ @.str.2, %886 ]
  store i32 %881, ptr %821, align 4, !tbaa !5
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = load i32, ptr @test_count, align 4, !tbaa !5
  %894 = load i32, ptr %767, align 4, !tbaa !5
  %895 = call ptr @s2n_strerror(i32 noundef %894, ptr noundef nonnull @.str.4) #9
  %896 = load i32, ptr %767, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror_debug(i32 noundef %896, ptr noundef nonnull @.str.4) #9
  %898 = load i32, ptr %821, align 4, !tbaa !5
  %899 = call ptr @strerror(i32 noundef %898) #9
  %900 = load i32, ptr %821, align 4, !tbaa !5
  %901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %892, ptr noundef nonnull %.str.5.sink518, i32 noundef %893, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %895, ptr noundef %897, ptr noundef %899, i32 noundef %900) #11
  call void @exit(i32 noundef 1) #12
  unreachable

902:                                              ; preds = %875
  %903 = load i32, ptr @test_count, align 4, !tbaa !5
  %904 = add nsw i32 %903, 1
  store i32 %904, ptr @test_count, align 4, !tbaa !5
  %905 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %906 = icmp eq ptr %905, null
  br i1 %906, label %907, label %929

907:                                              ; preds = %902
  %908 = load i32, ptr %821, align 4, !tbaa !5
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = call i32 @s2n_print_stacktrace(ptr noundef %909) #9
  %911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %912 = trunc nuw i8 %911 to i1
  br i1 %912, label %913, label %917

913:                                              ; preds = %907
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = call i32 @fileno(ptr noundef %914) #9
  %916 = call i32 @isatty(i32 noundef %915) #9
  %.not171 = icmp eq i32 %916, 0
  br i1 %.not171, label %917, label %918

917:                                              ; preds = %913, %907
  br label %918

918:                                              ; preds = %913, %917
  %.str.5.sink527 = phi ptr [ @.str.5, %917 ], [ @.str.2, %913 ]
  store i32 %908, ptr %821, align 4, !tbaa !5
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = load i32, ptr %767, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror(i32 noundef %921, ptr noundef nonnull @.str.4) #9
  %923 = load i32, ptr %767, align 4, !tbaa !5
  %924 = call ptr @s2n_strerror_debug(i32 noundef %923, ptr noundef nonnull @.str.4) #9
  %925 = load i32, ptr %821, align 4, !tbaa !5
  %926 = call ptr @strerror(i32 noundef %925) #9
  %927 = load i32, ptr %821, align 4, !tbaa !5
  %928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %919, ptr noundef nonnull %.str.5.sink527, i32 noundef %920, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %922, ptr noundef %924, ptr noundef %926, i32 noundef %927) #11
  call void @exit(i32 noundef 1) #12
  unreachable

929:                                              ; preds = %902
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr @test_count, align 4, !tbaa !5
  %932 = call i32 @s2n_connection_set_config(ptr noundef nonnull %905, ptr noundef nonnull %878) #9
  %933 = icmp eq i32 %932, -1
  br i1 %933, label %934, label %956

934:                                              ; preds = %929
  %935 = load i32, ptr %821, align 4, !tbaa !5
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = call i32 @s2n_print_stacktrace(ptr noundef %936) #9
  %938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %939 = trunc nuw i8 %938 to i1
  br i1 %939, label %940, label %944

940:                                              ; preds = %934
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = call i32 @fileno(ptr noundef %941) #9
  %943 = call i32 @isatty(i32 noundef %942) #9
  %.not170 = icmp eq i32 %943, 0
  br i1 %.not170, label %944, label %945

944:                                              ; preds = %940, %934
  br label %945

945:                                              ; preds = %940, %944
  %.str.5.sink536 = phi ptr [ @.str.5, %944 ], [ @.str.2, %940 ]
  store i32 %935, ptr %821, align 4, !tbaa !5
  %946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %947 = load i32, ptr @test_count, align 4, !tbaa !5
  %948 = load i32, ptr %767, align 4, !tbaa !5
  %949 = call ptr @s2n_strerror(i32 noundef %948, ptr noundef nonnull @.str.4) #9
  %950 = load i32, ptr %767, align 4, !tbaa !5
  %951 = call ptr @s2n_strerror_debug(i32 noundef %950, ptr noundef nonnull @.str.4) #9
  %952 = load i32, ptr %821, align 4, !tbaa !5
  %953 = call ptr @strerror(i32 noundef %952) #9
  %954 = load i32, ptr %821, align 4, !tbaa !5
  %955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %946, ptr noundef nonnull %.str.5.sink536, i32 noundef %947, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %949, ptr noundef %951, ptr noundef %953, i32 noundef %954) #11
  call void @exit(i32 noundef 1) #12
  unreachable

956:                                              ; preds = %929
  %957 = load i32, ptr @test_count, align 4, !tbaa !5
  %958 = add nsw i32 %957, 1
  store i32 %958, ptr @test_count, align 4, !tbaa !5
  %959 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %905, i32 noundef 2) #9
  %960 = icmp eq i32 %959, -1
  br i1 %960, label %961, label %983

961:                                              ; preds = %956
  %962 = load i32, ptr %821, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @s2n_print_stacktrace(ptr noundef %963) #9
  %965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %966 = trunc nuw i8 %965 to i1
  br i1 %966, label %967, label %971

967:                                              ; preds = %961
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = call i32 @fileno(ptr noundef %968) #9
  %970 = call i32 @isatty(i32 noundef %969) #9
  %.not169 = icmp eq i32 %970, 0
  br i1 %.not169, label %971, label %972

971:                                              ; preds = %967, %961
  br label %972

972:                                              ; preds = %967, %971
  %.str.5.sink545 = phi ptr [ @.str.5, %971 ], [ @.str.2, %967 ]
  store i32 %962, ptr %821, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = load i32, ptr %767, align 4, !tbaa !5
  %976 = call ptr @s2n_strerror(i32 noundef %975, ptr noundef nonnull @.str.4) #9
  %977 = load i32, ptr %767, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror_debug(i32 noundef %977, ptr noundef nonnull @.str.4) #9
  %979 = load i32, ptr %821, align 4, !tbaa !5
  %980 = call ptr @strerror(i32 noundef %979) #9
  %981 = load i32, ptr %821, align 4, !tbaa !5
  %982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %973, ptr noundef nonnull %.str.5.sink545, i32 noundef %974, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %976, ptr noundef %978, ptr noundef %980, i32 noundef %981) #11
  call void @exit(i32 noundef 1) #12
  unreachable

983:                                              ; preds = %956
  %984 = load i32, ptr @test_count, align 4, !tbaa !5
  %985 = add nsw i32 %984, 1
  store i32 %985, ptr @test_count, align 4, !tbaa !5
  %986 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %987 = icmp eq ptr %986, null
  br i1 %987, label %988, label %1010

988:                                              ; preds = %983
  %989 = load i32, ptr %821, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @s2n_print_stacktrace(ptr noundef %990) #9
  %992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %993 = trunc nuw i8 %992 to i1
  br i1 %993, label %994, label %998

994:                                              ; preds = %988
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = call i32 @fileno(ptr noundef %995) #9
  %997 = call i32 @isatty(i32 noundef %996) #9
  %.not168 = icmp eq i32 %997, 0
  br i1 %.not168, label %998, label %999

998:                                              ; preds = %994, %988
  br label %999

999:                                              ; preds = %994, %998
  %.str.5.sink554 = phi ptr [ @.str.5, %998 ], [ @.str.2, %994 ]
  store i32 %989, ptr %821, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = load i32, ptr %767, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror(i32 noundef %1002, ptr noundef nonnull @.str.4) #9
  %1004 = load i32, ptr %767, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef nonnull @.str.4) #9
  %1006 = load i32, ptr %821, align 4, !tbaa !5
  %1007 = call ptr @strerror(i32 noundef %1006) #9
  %1008 = load i32, ptr %821, align 4, !tbaa !5
  %1009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef nonnull %.str.5.sink554, i32 noundef %1001, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %1003, ptr noundef %1005, ptr noundef %1007, i32 noundef %1008) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1010:                                             ; preds = %983
  %1011 = load i32, ptr @test_count, align 4, !tbaa !5
  %1012 = add nsw i32 %1011, 1
  store i32 %1012, ptr @test_count, align 4, !tbaa !5
  %1013 = call i32 @s2n_connection_set_config(ptr noundef nonnull %986, ptr noundef nonnull %878) #9
  %1014 = icmp eq i32 %1013, -1
  br i1 %1014, label %1015, label %1037

1015:                                             ; preds = %1010
  %1016 = load i32, ptr %821, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @s2n_print_stacktrace(ptr noundef %1017) #9
  %1019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1020 = trunc nuw i8 %1019 to i1
  br i1 %1020, label %1021, label %1025

1021:                                             ; preds = %1015
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = call i32 @fileno(ptr noundef %1022) #9
  %1024 = call i32 @isatty(i32 noundef %1023) #9
  %.not167 = icmp eq i32 %1024, 0
  br i1 %.not167, label %1025, label %1026

1025:                                             ; preds = %1021, %1015
  br label %1026

1026:                                             ; preds = %1021, %1025
  %.str.5.sink563 = phi ptr [ @.str.5, %1025 ], [ @.str.2, %1021 ]
  store i32 %1016, ptr %821, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = load i32, ptr %767, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror(i32 noundef %1029, ptr noundef nonnull @.str.4) #9
  %1031 = load i32, ptr %767, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror_debug(i32 noundef %1031, ptr noundef nonnull @.str.4) #9
  %1033 = load i32, ptr %821, align 4, !tbaa !5
  %1034 = call ptr @strerror(i32 noundef %1033) #9
  %1035 = load i32, ptr %821, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef nonnull %.str.5.sink563, i32 noundef %1028, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %1030, ptr noundef %1032, ptr noundef %1034, i32 noundef %1035) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1037:                                             ; preds = %1010
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr @test_count, align 4, !tbaa !5
  %1040 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %986, i32 noundef 2) #9
  %1041 = icmp eq i32 %1040, -1
  br i1 %1041, label %1042, label %1064

1042:                                             ; preds = %1037
  %1043 = load i32, ptr %821, align 4, !tbaa !5
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = call i32 @s2n_print_stacktrace(ptr noundef %1044) #9
  %1046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1047 = trunc nuw i8 %1046 to i1
  br i1 %1047, label %1048, label %1052

1048:                                             ; preds = %1042
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @fileno(ptr noundef %1049) #9
  %1051 = call i32 @isatty(i32 noundef %1050) #9
  %.not166 = icmp eq i32 %1051, 0
  br i1 %.not166, label %1052, label %1053

1052:                                             ; preds = %1048, %1042
  br label %1053

1053:                                             ; preds = %1048, %1052
  %.str.5.sink572 = phi ptr [ @.str.5, %1052 ], [ @.str.2, %1048 ]
  store i32 %1043, ptr %821, align 4, !tbaa !5
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = load i32, ptr %767, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror(i32 noundef %1056, ptr noundef nonnull @.str.4) #9
  %1058 = load i32, ptr %767, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror_debug(i32 noundef %1058, ptr noundef nonnull @.str.4) #9
  %1060 = load i32, ptr %821, align 4, !tbaa !5
  %1061 = call ptr @strerror(i32 noundef %1060) #9
  %1062 = load i32, ptr %821, align 4, !tbaa !5
  %1063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1054, ptr noundef nonnull %.str.5.sink572, i32 noundef %1055, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %1057, ptr noundef %1059, ptr noundef %1061, i32 noundef %1062) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1064:                                             ; preds = %1037
  %1065 = load i32, ptr @test_count, align 4, !tbaa !5
  %1066 = add nsw i32 %1065, 1
  store i32 %1066, ptr @test_count, align 4, !tbaa !5
  %1067 = call i32 @s2n_client_cert_send(ptr noundef nonnull %905) #9
  %1068 = icmp eq i32 %1067, -1
  br i1 %1068, label %1069, label %1091

1069:                                             ; preds = %1064
  %1070 = load i32, ptr %821, align 4, !tbaa !5
  %1071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1072 = call i32 @s2n_print_stacktrace(ptr noundef %1071) #9
  %1073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1074 = trunc nuw i8 %1073 to i1
  br i1 %1074, label %1075, label %1079

1075:                                             ; preds = %1069
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = call i32 @fileno(ptr noundef %1076) #9
  %1078 = call i32 @isatty(i32 noundef %1077) #9
  %.not165 = icmp eq i32 %1078, 0
  br i1 %.not165, label %1079, label %1080

1079:                                             ; preds = %1075, %1069
  br label %1080

1080:                                             ; preds = %1075, %1079
  %.str.5.sink581 = phi ptr [ @.str.5, %1079 ], [ @.str.2, %1075 ]
  store i32 %1070, ptr %821, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = load i32, ptr @test_count, align 4, !tbaa !5
  %1083 = load i32, ptr %767, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror(i32 noundef %1083, ptr noundef nonnull @.str.4) #9
  %1085 = load i32, ptr %767, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror_debug(i32 noundef %1085, ptr noundef nonnull @.str.4) #9
  %1087 = load i32, ptr %821, align 4, !tbaa !5
  %1088 = call ptr @strerror(i32 noundef %1087) #9
  %1089 = load i32, ptr %821, align 4, !tbaa !5
  %1090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1081, ptr noundef nonnull %.str.5.sink581, i32 noundef %1082, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %1084, ptr noundef %1086, ptr noundef %1088, i32 noundef %1089) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1091:                                             ; preds = %1064
  %1092 = load i32, ptr @test_count, align 4, !tbaa !5
  %1093 = add nsw i32 %1092, 1
  store i32 %1093, ptr @test_count, align 4, !tbaa !5
  %1094 = getelementptr inbounds i8, ptr %905, i64 2016
  %1095 = getelementptr inbounds i8, ptr %905, i64 2172
  %1096 = load i32, ptr %1095, align 4, !tbaa !19
  %1097 = and i32 %1096, 8
  %.not149 = icmp eq i32 %1097, 0
  br i1 %.not149, label %1098, label %1120

1098:                                             ; preds = %1091
  %1099 = load i32, ptr %821, align 4, !tbaa !5
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @s2n_print_stacktrace(ptr noundef %1100) #9
  %1102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1103 = trunc nuw i8 %1102 to i1
  br i1 %1103, label %1104, label %1108

1104:                                             ; preds = %1098
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = call i32 @fileno(ptr noundef %1105) #9
  %1107 = call i32 @isatty(i32 noundef %1106) #9
  %.not150 = icmp eq i32 %1107, 0
  br i1 %.not150, label %1108, label %1109

1108:                                             ; preds = %1104, %1098
  br label %1109

1109:                                             ; preds = %1104, %1108
  %.str.5.sink590 = phi ptr [ @.str.5, %1108 ], [ @.str.2, %1104 ]
  store i32 %1099, ptr %821, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = load i32, ptr %767, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror(i32 noundef %1112, ptr noundef nonnull @.str.4) #9
  %1114 = load i32, ptr %767, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror_debug(i32 noundef %1114, ptr noundef nonnull @.str.4) #9
  %1116 = load i32, ptr %821, align 4, !tbaa !5
  %1117 = call ptr @strerror(i32 noundef %1116) #9
  %1118 = load i32, ptr %821, align 4, !tbaa !5
  %1119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1110, ptr noundef nonnull %.str.5.sink590, i32 noundef %1111, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %1113, ptr noundef %1115, ptr noundef %1117, i32 noundef %1118) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1120:                                             ; preds = %1091
  %1121 = add nsw i32 %1092, 2
  store i32 %1121, ptr @test_count, align 4, !tbaa !5
  %1122 = getelementptr inbounds i8, ptr %905, i64 2044
  %1123 = load i32, ptr %1122, align 4, !tbaa !44
  %1124 = getelementptr inbounds i8, ptr %905, i64 2040
  %1125 = load i32, ptr %1124, align 8, !tbaa !45
  %1126 = sub i32 %1123, %1125
  %1127 = icmp eq i32 %1126, 3
  br i1 %1127, label %1150, label %1128

1128:                                             ; preds = %1120
  %1129 = load i32, ptr %821, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @s2n_print_stacktrace(ptr noundef %1130) #9
  %1132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1133 = trunc nuw i8 %1132 to i1
  br i1 %1133, label %1134, label %1138

1134:                                             ; preds = %1128
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = call i32 @fileno(ptr noundef %1135) #9
  %1137 = call i32 @isatty(i32 noundef %1136) #9
  %.not151 = icmp eq i32 %1137, 0
  br i1 %.not151, label %1138, label %1139

1138:                                             ; preds = %1134, %1128
  br label %1139

1139:                                             ; preds = %1134, %1138
  %.str.5.sink599 = phi ptr [ @.str.5, %1138 ], [ @.str.2, %1134 ]
  store i32 %1129, ptr %821, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = load i32, ptr @test_count, align 4, !tbaa !5
  %1142 = load i32, ptr %767, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror(i32 noundef %1142, ptr noundef nonnull @.str.4) #9
  %1144 = load i32, ptr %767, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror_debug(i32 noundef %1144, ptr noundef nonnull @.str.4) #9
  %1146 = load i32, ptr %821, align 4, !tbaa !5
  %1147 = call ptr @strerror(i32 noundef %1146) #9
  %1148 = load i32, ptr %821, align 4, !tbaa !5
  %1149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1140, ptr noundef nonnull %.str.5.sink599, i32 noundef %1141, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %1143, ptr noundef %1145, ptr noundef %1147, i32 noundef %1148) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1150:                                             ; preds = %1120
  %1151 = add nsw i32 %1092, 3
  store i32 %1151, ptr @test_count, align 4, !tbaa !5
  %1152 = getelementptr inbounds i8, ptr %986, i64 2016
  %1153 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1094, ptr noundef nonnull %1152, i32 noundef 3) #9
  %1154 = icmp eq i32 %1153, -1
  br i1 %1154, label %1155, label %1177

1155:                                             ; preds = %1150
  %1156 = load i32, ptr %821, align 4, !tbaa !5
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @s2n_print_stacktrace(ptr noundef %1157) #9
  %1159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1160 = trunc nuw i8 %1159 to i1
  br i1 %1160, label %1161, label %1165

1161:                                             ; preds = %1155
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @fileno(ptr noundef %1162) #9
  %1164 = call i32 @isatty(i32 noundef %1163) #9
  %.not164 = icmp eq i32 %1164, 0
  br i1 %.not164, label %1165, label %1166

1165:                                             ; preds = %1161, %1155
  br label %1166

1166:                                             ; preds = %1161, %1165
  %.str.5.sink608 = phi ptr [ @.str.5, %1165 ], [ @.str.2, %1161 ]
  store i32 %1156, ptr %821, align 4, !tbaa !5
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = load i32, ptr @test_count, align 4, !tbaa !5
  %1169 = load i32, ptr %767, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror(i32 noundef %1169, ptr noundef nonnull @.str.4) #9
  %1171 = load i32, ptr %767, align 4, !tbaa !5
  %1172 = call ptr @s2n_strerror_debug(i32 noundef %1171, ptr noundef nonnull @.str.4) #9
  %1173 = load i32, ptr %821, align 4, !tbaa !5
  %1174 = call ptr @strerror(i32 noundef %1173) #9
  %1175 = load i32, ptr %821, align 4, !tbaa !5
  %1176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1167, ptr noundef nonnull %.str.5.sink608, i32 noundef %1168, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %1170, ptr noundef %1172, ptr noundef %1174, i32 noundef %1175) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1177:                                             ; preds = %1150
  %1178 = load i32, ptr @test_count, align 4, !tbaa !5
  %1179 = add nsw i32 %1178, 1
  store i32 %1179, ptr @test_count, align 4, !tbaa !5
  %1180 = getelementptr inbounds i8, ptr %986, i64 2044
  %1181 = load i32, ptr %1180, align 4, !tbaa !44
  %1182 = getelementptr inbounds i8, ptr %986, i64 2040
  %1183 = load i32, ptr %1182, align 8, !tbaa !45
  %1184 = sub i32 %1181, %1183
  %1185 = icmp eq i32 %1184, 3
  br i1 %1185, label %1208, label %1186

1186:                                             ; preds = %1177
  %1187 = load i32, ptr %821, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = call i32 @s2n_print_stacktrace(ptr noundef %1188) #9
  %1190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1191 = trunc nuw i8 %1190 to i1
  br i1 %1191, label %1192, label %1196

1192:                                             ; preds = %1186
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = call i32 @fileno(ptr noundef %1193) #9
  %1195 = call i32 @isatty(i32 noundef %1194) #9
  %.not152 = icmp eq i32 %1195, 0
  br i1 %.not152, label %1196, label %1197

1196:                                             ; preds = %1192, %1186
  br label %1197

1197:                                             ; preds = %1192, %1196
  %.str.5.sink617 = phi ptr [ @.str.5, %1196 ], [ @.str.2, %1192 ]
  store i32 %1187, ptr %821, align 4, !tbaa !5
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = load i32, ptr @test_count, align 4, !tbaa !5
  %1200 = load i32, ptr %767, align 4, !tbaa !5
  %1201 = call ptr @s2n_strerror(i32 noundef %1200, ptr noundef nonnull @.str.4) #9
  %1202 = load i32, ptr %767, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror_debug(i32 noundef %1202, ptr noundef nonnull @.str.4) #9
  %1204 = load i32, ptr %821, align 4, !tbaa !5
  %1205 = call ptr @strerror(i32 noundef %1204) #9
  %1206 = load i32, ptr %821, align 4, !tbaa !5
  %1207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1198, ptr noundef nonnull %.str.5.sink617, i32 noundef %1199, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %1201, ptr noundef %1203, ptr noundef %1205, i32 noundef %1206) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1208:                                             ; preds = %1177
  %1209 = add nsw i32 %1178, 2
  store i32 %1209, ptr @test_count, align 4, !tbaa !5
  %1210 = call i32 @s2n_client_cert_recv(ptr noundef nonnull %986) #9
  %1211 = icmp eq i32 %1210, -1
  br i1 %1211, label %1212, label %1234

1212:                                             ; preds = %1208
  %1213 = load i32, ptr %821, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = call i32 @s2n_print_stacktrace(ptr noundef %1214) #9
  %1216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1217 = trunc nuw i8 %1216 to i1
  br i1 %1217, label %1218, label %1222

1218:                                             ; preds = %1212
  %1219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1220 = call i32 @fileno(ptr noundef %1219) #9
  %1221 = call i32 @isatty(i32 noundef %1220) #9
  %.not163 = icmp eq i32 %1221, 0
  br i1 %.not163, label %1222, label %1223

1222:                                             ; preds = %1218, %1212
  br label %1223

1223:                                             ; preds = %1218, %1222
  %.str.5.sink626 = phi ptr [ @.str.5, %1222 ], [ @.str.2, %1218 ]
  store i32 %1213, ptr %821, align 4, !tbaa !5
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = load i32, ptr %767, align 4, !tbaa !5
  %1227 = call ptr @s2n_strerror(i32 noundef %1226, ptr noundef nonnull @.str.4) #9
  %1228 = load i32, ptr %767, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror_debug(i32 noundef %1228, ptr noundef nonnull @.str.4) #9
  %1230 = load i32, ptr %821, align 4, !tbaa !5
  %1231 = call ptr @strerror(i32 noundef %1230) #9
  %1232 = load i32, ptr %821, align 4, !tbaa !5
  %1233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1224, ptr noundef nonnull %.str.5.sink626, i32 noundef %1225, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %1227, ptr noundef %1229, ptr noundef %1231, i32 noundef %1232) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1234:                                             ; preds = %1208
  %1235 = load i32, ptr @test_count, align 4, !tbaa !5
  %1236 = add nsw i32 %1235, 1
  store i32 %1236, ptr @test_count, align 4, !tbaa !5
  %1237 = getelementptr inbounds i8, ptr %986, i64 2172
  %1238 = load i32, ptr %1237, align 4, !tbaa !19
  %1239 = and i32 %1238, 8
  %.not153 = icmp eq i32 %1239, 0
  br i1 %.not153, label %1240, label %1262

1240:                                             ; preds = %1234
  %1241 = load i32, ptr %821, align 4, !tbaa !5
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = call i32 @s2n_print_stacktrace(ptr noundef %1242) #9
  %1244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1245 = trunc nuw i8 %1244 to i1
  br i1 %1245, label %1246, label %1250

1246:                                             ; preds = %1240
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @fileno(ptr noundef %1247) #9
  %1249 = call i32 @isatty(i32 noundef %1248) #9
  %.not154 = icmp eq i32 %1249, 0
  br i1 %.not154, label %1250, label %1251

1250:                                             ; preds = %1246, %1240
  br label %1251

1251:                                             ; preds = %1246, %1250
  %.str.5.sink635 = phi ptr [ @.str.5, %1250 ], [ @.str.2, %1246 ]
  store i32 %1241, ptr %821, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = load i32, ptr %767, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror(i32 noundef %1254, ptr noundef nonnull @.str.4) #9
  %1256 = load i32, ptr %767, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror_debug(i32 noundef %1256, ptr noundef nonnull @.str.4) #9
  %1258 = load i32, ptr %821, align 4, !tbaa !5
  %1259 = call ptr @strerror(i32 noundef %1258) #9
  %1260 = load i32, ptr %821, align 4, !tbaa !5
  %1261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1252, ptr noundef nonnull %.str.5.sink635, i32 noundef %1253, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %1255, ptr noundef %1257, ptr noundef %1259, i32 noundef %1260) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1262:                                             ; preds = %1234
  %1263 = add nsw i32 %1235, 2
  store i32 %1263, ptr @test_count, align 4, !tbaa !5
  %1264 = call i32 @s2n_connection_free(ptr noundef nonnull %986) #9
  %1265 = icmp eq i32 %1264, -1
  br i1 %1265, label %1266, label %1288

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

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

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

1277:                                             ; preds = %1272, %1276
  %.str.5.sink644 = phi ptr [ @.str.5, %1276 ], [ @.str.2, %1272 ]
  store i32 %1267, ptr %821, align 4, !tbaa !5
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = load i32, ptr %767, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror(i32 noundef %1280, ptr noundef nonnull @.str.4) #9
  %1282 = load i32, ptr %767, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror_debug(i32 noundef %1282, ptr noundef nonnull @.str.4) #9
  %1284 = load i32, ptr %821, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #9
  %1286 = load i32, ptr %821, align 4, !tbaa !5
  %1287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1278, ptr noundef nonnull %.str.5.sink644, i32 noundef %1279, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1281, ptr noundef %1283, ptr noundef %1285, i32 noundef %1286) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1288:                                             ; preds = %1262
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = add nsw i32 %1289, 1
  store i32 %1290, ptr @test_count, align 4, !tbaa !5
  %1291 = call i32 @s2n_connection_free(ptr noundef nonnull %905) #9
  %1292 = icmp eq i32 %1291, -1
  br i1 %1292, label %1293, label %1315

1293:                                             ; preds = %1288
  %1294 = load i32, ptr %821, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = call i32 @s2n_print_stacktrace(ptr noundef %1295) #9
  %1297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1298 = trunc nuw i8 %1297 to i1
  br i1 %1298, label %1299, label %1303

1299:                                             ; preds = %1293
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = call i32 @fileno(ptr noundef %1300) #9
  %1302 = call i32 @isatty(i32 noundef %1301) #9
  %.not161 = icmp eq i32 %1302, 0
  br i1 %.not161, label %1303, label %1304

1303:                                             ; preds = %1299, %1293
  br label %1304

1304:                                             ; preds = %1299, %1303
  %.str.5.sink653 = phi ptr [ @.str.5, %1303 ], [ @.str.2, %1299 ]
  store i32 %1294, ptr %821, align 4, !tbaa !5
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = load i32, ptr @test_count, align 4, !tbaa !5
  %1307 = load i32, ptr %767, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror(i32 noundef %1307, ptr noundef nonnull @.str.4) #9
  %1309 = load i32, ptr %767, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror_debug(i32 noundef %1309, ptr noundef nonnull @.str.4) #9
  %1311 = load i32, ptr %821, align 4, !tbaa !5
  %1312 = call ptr @strerror(i32 noundef %1311) #9
  %1313 = load i32, ptr %821, align 4, !tbaa !5
  %1314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1305, ptr noundef nonnull %.str.5.sink653, i32 noundef %1306, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %1308, ptr noundef %1310, ptr noundef %1312, i32 noundef %1313) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1315:                                             ; preds = %1288
  %1316 = load i32, ptr @test_count, align 4, !tbaa !5
  %1317 = add nsw i32 %1316, 1
  store i32 %1317, ptr @test_count, align 4, !tbaa !5
  %1318 = call i32 @s2n_config_free(ptr noundef nonnull %878) #9
  %1319 = icmp eq i32 %1318, -1
  br i1 %1319, label %1320, label %1342

1320:                                             ; preds = %1315
  %1321 = load i32, ptr %821, align 4, !tbaa !5
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = call i32 @s2n_print_stacktrace(ptr noundef %1322) #9
  %1324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1325 = trunc nuw i8 %1324 to i1
  br i1 %1325, label %1326, label %1330

1326:                                             ; preds = %1320
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = call i32 @fileno(ptr noundef %1327) #9
  %1329 = call i32 @isatty(i32 noundef %1328) #9
  %.not160 = icmp eq i32 %1329, 0
  br i1 %.not160, label %1330, label %1331

1330:                                             ; preds = %1326, %1320
  br label %1331

1331:                                             ; preds = %1326, %1330
  %.str.5.sink662 = phi ptr [ @.str.5, %1330 ], [ @.str.2, %1326 ]
  store i32 %1321, ptr %821, align 4, !tbaa !5
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = load i32, ptr %767, align 4, !tbaa !5
  %1335 = call ptr @s2n_strerror(i32 noundef %1334, ptr noundef nonnull @.str.4) #9
  %1336 = load i32, ptr %767, align 4, !tbaa !5
  %1337 = call ptr @s2n_strerror_debug(i32 noundef %1336, ptr noundef nonnull @.str.4) #9
  %1338 = load i32, ptr %821, align 4, !tbaa !5
  %1339 = call ptr @strerror(i32 noundef %1338) #9
  %1340 = load i32, ptr %821, align 4, !tbaa !5
  %1341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1332, ptr noundef nonnull %.str.5.sink662, i32 noundef %1333, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1335, ptr noundef %1337, ptr noundef %1339, i32 noundef %1340) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1342:                                             ; preds = %1315
  %1343 = call i32 @s2n_cleanup() #9
  %1344 = icmp eq i32 %1343, -1
  br i1 %1344, label %1345, label %1367

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

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

1355:                                             ; preds = %1351, %1345
  br label %1356

1356:                                             ; preds = %1351, %1355
  %.str.5.sink671 = phi ptr [ @.str.5, %1355 ], [ @.str.2, %1351 ]
  store i32 %1346, ptr %821, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = load i32, ptr %767, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror(i32 noundef %1359, ptr noundef nonnull @.str.4) #9
  %1361 = load i32, ptr %767, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror_debug(i32 noundef %1361, ptr noundef nonnull @.str.4) #9
  %1363 = load i32, ptr %821, align 4, !tbaa !5
  %1364 = call ptr @strerror(i32 noundef %1363) #9
  %1365 = load i32, ptr %821, align 4, !tbaa !5
  %1366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1357, ptr noundef nonnull %.str.5.sink671, i32 noundef %1358, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %1360, ptr noundef %1362, ptr noundef %1364, i32 noundef %1365) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1367:                                             ; preds = %1342
  %1368 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %1369 = icmp eq i32 %1368, -1
  br i1 %1369, label %1370, label %1392

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

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

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

1381:                                             ; preds = %1376, %1380
  %.str.5.sink680 = phi ptr [ @.str.5, %1380 ], [ @.str.2, %1376 ]
  store i32 %1371, ptr %821, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = load i32, ptr @test_count, align 4, !tbaa !5
  %1384 = load i32, ptr %767, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef nonnull @.str.4) #9
  %1386 = load i32, ptr %767, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror_debug(i32 noundef %1386, ptr noundef nonnull @.str.4) #9
  %1388 = load i32, ptr %821, align 4, !tbaa !5
  %1389 = call ptr @strerror(i32 noundef %1388) #9
  %1390 = load i32, ptr %821, align 4, !tbaa !5
  %1391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1382, ptr noundef nonnull %.str.5.sink680, i32 noundef %1383, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %1385, ptr noundef %1387, ptr noundef %1389, i32 noundef %1390) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1392:                                             ; preds = %1367
  %1393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1394 = trunc nuw i8 %1393 to i1
  br i1 %1394, label %1395, label %1406

1395:                                             ; preds = %1392
  %1396 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1397 = call i32 @fileno(ptr noundef %1396) #9
  %1398 = call i32 @isatty(i32 noundef %1397) #9
  %.not155 = icmp eq i32 %1398, 0
  br i1 %.not155, label %1406, label %1399

1399:                                             ; preds = %1395
  %1400 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not157 = icmp eq i32 %1400, 0
  %1401 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not157, label %1404, label %1402

1402:                                             ; preds = %1399
  %1403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef nonnull @.str.42, i32 noundef %1400) #9
  br label %1413

1404:                                             ; preds = %1399
  %1405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef nonnull @.str.43) #9
  br label %1413

1406:                                             ; preds = %1395, %1392
  %1407 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not156 = icmp eq i32 %1407, 0
  %1408 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not156, label %1411, label %1409

1409:                                             ; preds = %1406
  %1410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1408, ptr noundef nonnull @.str.44, i32 noundef %1407) #9
  br label %1413

1411:                                             ; preds = %1406
  %1412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1408, ptr noundef nonnull @.str.45) #9
  br label %1413

1413:                                             ; preds = %1409, %1411, %1402, %1404
  ret i32 0
}

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

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

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

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

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

declare i32 @s2n_send_empty_cert_chain(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_client_cert_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

declare i32 @s2n_client_cert_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { cold nounwind }
attributes #12 = { 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, !6, i64 28}
!16 = !{!"s2n_stuffer", !17, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!17 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!18 = !{!16, !6, i64 24}
!19 = !{!20, !6, i64 2172}
!20 = !{!"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, !21, i64 160, !22, i64 168, !22, 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, !23, i64 240, !10, i64 632, !10, i64 640, !24, i64 648, !29, i64 1144, !32, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !16, i64 1776, !16, i64 1816, !16, i64 1856, !16, i64 1896, !6, i64 1936, !22, i64 1944, !7, i64 1952, !16, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !34, i64 2208, !6, i64 2212, !34, i64 2216, !22, i64 2224, !7, i64 2232, !22, i64 2240, !22, i64 2248, !22, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !17, i64 2792, !6, i64 2816, !17, i64 2824, !17, i64 2848, !17, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !17, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !16, i64 3992, !17, i64 4032, !17, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !34, i64 4084, !34, i64 4086, !6, i64 4088, !6, i64 4092, !17, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!21 = !{!"s2n_timer", !22, i64 0}
!22 = !{!"long", !7, i64 0}
!23 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!24 = !{!"s2n_kex_parameters", !25, i64 0, !26, i64 8, !7, i64 24, !26, i64 56, !27, i64 72, !27, i64 184, !7, i64 296, !28, i64 360, !17, i64 448, !17, i64 472}
!25 = !{!"s2n_dh_params", !10, i64 0}
!26 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!27 = !{!"s2n_kem_group_params", !10, i64 0, !28, i64 8, !26, i64 96}
!28 = !{!"s2n_kem_params", !10, i64 0, !17, i64 8, !17, i64 32, !17, i64 56, !12, i64 80}
!29 = !{!"s2n_handshake_parameters", !30, i64 0, !30, i64 48, !17, 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, !34, i64 40, !34, i64 42, !10, i64 48, !6, i64 56}
!33 = !{!"s2n_array", !17, i64 0, !6, i64 24, !6, i64 28}
!34 = !{!"short", !7, i64 0}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !16, 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", !17, i64 0, !39, i64 24, !17, i64 728, !17, i64 752, !17, 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, !17, i64 672, !34, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !34, 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", !17, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !16, i64 0, !7, i64 40}
!44 = !{!20, !6, i64 2044}
!45 = !{!20, !6, i64 2040}


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