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

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

%struct.s2n_result = type { i32 }
%struct.s2n_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
@session_ticket_counter = 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 [92 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 [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [91 x i8], align 1
@__const.main.message = external hidden unnamed_addr constant [13 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [71 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 i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %struct.s2n_result, 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 %struct.s2n_stuffer, align 8
  %32 = alloca %struct.s2n_stuffer, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i8, align 1
  %39 = alloca i32, align 4
  %40 = alloca [13 x i8], align 1
  %41 = alloca i32, align 4
  %42 = alloca [13 x i8], align 1
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  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 %53

53:                                               ; preds = %2
  br label %54

54:                                               ; preds = %53
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %55 = load ptr, ptr @stdout, align 8, !tbaa !9
  %56 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %55, ptr noundef @.str, ptr noundef @.str.1) #10
  %57 = load ptr, ptr @stdout, align 8, !tbaa !9
  %58 = call i32 @fflush(ptr noundef %57)
  br label %59

59:                                               ; preds = %54
  %60 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %61 = icmp eq i32 %60, -1
  br i1 %61, label %62, label %113

62:                                               ; preds = %59
  br label %63

63:                                               ; preds = %62
  br label %64

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

71:                                               ; preds = %64
  %72 = load ptr, ptr @stderr, align 8, !tbaa !9
  %73 = call i32 @fileno(ptr noundef %72) #10
  %74 = call i32 @isatty(i32 noundef %73) #10
  %75 = icmp ne i32 %74, 0
  br i1 %75, label %76, label %93

76:                                               ; preds = %71
  %77 = load i32, ptr %6, align 4, !tbaa !5
  %78 = call ptr @__errno_location() #11
  store i32 %77, ptr %78, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = load i32, ptr @test_count, align 4, !tbaa !5
  %81 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = call ptr @s2n_strerror(i32 noundef %82, ptr noundef @.str.4)
  %84 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = call ptr @s2n_strerror_debug(i32 noundef %85, ptr noundef @.str.4)
  %87 = call ptr @__errno_location() #11
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = call ptr @strerror(i32 noundef %88) #10
  %90 = call ptr @__errno_location() #11
  %91 = load i32, ptr %90, align 4, !tbaa !5
  %92 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %79, ptr noundef @.str.2, i32 noundef %80, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 51, ptr noundef %83, ptr noundef %86, ptr noundef %89, i32 noundef %91) #10
  br label %110

93:                                               ; preds = %71, %64
  %94 = load i32, ptr %6, align 4, !tbaa !5
  %95 = call ptr @__errno_location() #11
  store i32 %94, ptr %95, align 4, !tbaa !5
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = load i32, ptr @test_count, align 4, !tbaa !5
  %98 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %99 = load i32, ptr %98, align 4, !tbaa !5
  %100 = call ptr @s2n_strerror(i32 noundef %99, ptr noundef @.str.4)
  %101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = call ptr @s2n_strerror_debug(i32 noundef %102, ptr noundef @.str.4)
  %104 = call ptr @__errno_location() #11
  %105 = load i32, ptr %104, align 4, !tbaa !5
  %106 = call ptr @strerror(i32 noundef %105) #10
  %107 = call ptr @__errno_location() #11
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %96, ptr noundef @.str.5, i32 noundef %97, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 51, ptr noundef %100, ptr noundef %103, ptr noundef %106, i32 noundef %108) #10
  br label %110

110:                                              ; preds = %93, %76
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %111

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

112:                                              ; No predecessors!
  br label %113

113:                                              ; preds = %112, %59
  br label %114

114:                                              ; preds = %113
  br label %115

115:                                              ; preds = %114
  %116 = load i32, ptr @test_count, align 4, !tbaa !5
  %117 = add nsw i32 %116, 1
  store i32 %117, ptr @test_count, align 4, !tbaa !5
  %118 = call i32 @s2n_enable_atexit()
  %119 = icmp eq i32 %118, -1
  br i1 %119, label %120, label %171

120:                                              ; preds = %115
  br label %121

121:                                              ; preds = %120
  br label %122

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

129:                                              ; preds = %122
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = call i32 @fileno(ptr noundef %130) #10
  %132 = call i32 @isatty(i32 noundef %131) #10
  %133 = icmp ne i32 %132, 0
  br i1 %133, label %134, label %151

134:                                              ; preds = %129
  %135 = load i32, ptr %7, align 4, !tbaa !5
  %136 = call ptr @__errno_location() #11
  store i32 %135, ptr %136, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = call ptr @s2n_strerror(i32 noundef %140, ptr noundef @.str.4)
  %142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = call ptr @s2n_strerror_debug(i32 noundef %143, ptr noundef @.str.4)
  %145 = call ptr @__errno_location() #11
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = call ptr @strerror(i32 noundef %146) #10
  %148 = call ptr @__errno_location() #11
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef @.str.2, i32 noundef %138, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 51, ptr noundef %141, ptr noundef %144, ptr noundef %147, i32 noundef %149) #10
  br label %168

151:                                              ; preds = %129, %122
  %152 = load i32, ptr %7, align 4, !tbaa !5
  %153 = call ptr @__errno_location() #11
  store i32 %152, ptr %153, align 4, !tbaa !5
  %154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = call ptr @s2n_strerror(i32 noundef %157, ptr noundef @.str.4)
  %159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = call ptr @s2n_strerror_debug(i32 noundef %160, ptr noundef @.str.4)
  %162 = call ptr @__errno_location() #11
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call ptr @strerror(i32 noundef %163) #10
  %165 = call ptr @__errno_location() #11
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %154, ptr noundef @.str.5, i32 noundef %155, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 51, ptr noundef %158, ptr noundef %161, ptr noundef %164, i32 noundef %166) #10
  br label %168

168:                                              ; preds = %151, %134
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %169

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

170:                                              ; No predecessors!
  br label %171

171:                                              ; preds = %170, %115
  br label %172

172:                                              ; preds = %171
  br label %173

173:                                              ; preds = %172
  br label %174

174:                                              ; preds = %173
  %175 = call i32 @s2n_init()
  %176 = icmp eq i32 %175, -1
  br i1 %176, label %177, label %228

177:                                              ; preds = %174
  br label %178

178:                                              ; preds = %177
  br label %179

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

186:                                              ; preds = %179
  %187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %188 = call i32 @fileno(ptr noundef %187) #10
  %189 = call i32 @isatty(i32 noundef %188) #10
  %190 = icmp ne i32 %189, 0
  br i1 %190, label %191, label %208

191:                                              ; preds = %186
  %192 = load i32, ptr %8, align 4, !tbaa !5
  %193 = call ptr @__errno_location() #11
  store i32 %192, ptr %193, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = call ptr @s2n_strerror(i32 noundef %197, ptr noundef @.str.4)
  %199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef @.str.4)
  %202 = call ptr @__errno_location() #11
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = call ptr @strerror(i32 noundef %203) #10
  %205 = call ptr @__errno_location() #11
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef @.str.2, i32 noundef %195, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 51, ptr noundef %198, ptr noundef %201, ptr noundef %204, i32 noundef %206) #10
  br label %225

208:                                              ; preds = %186, %179
  %209 = load i32, ptr %8, align 4, !tbaa !5
  %210 = call ptr @__errno_location() #11
  store i32 %209, ptr %210, align 4, !tbaa !5
  %211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %212 = load i32, ptr @test_count, align 4, !tbaa !5
  %213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = call ptr @s2n_strerror(i32 noundef %214, ptr noundef @.str.4)
  %216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = call ptr @s2n_strerror_debug(i32 noundef %217, ptr noundef @.str.4)
  %219 = call ptr @__errno_location() #11
  %220 = load i32, ptr %219, align 4, !tbaa !5
  %221 = call ptr @strerror(i32 noundef %220) #10
  %222 = call ptr @__errno_location() #11
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %211, ptr noundef @.str.5, i32 noundef %212, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 51, ptr noundef %215, ptr noundef %218, ptr noundef %221, i32 noundef %223) #10
  br label %225

225:                                              ; preds = %208, %191
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %226

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

227:                                              ; No predecessors!
  br label %228

228:                                              ; preds = %227, %174
  br label %229

229:                                              ; preds = %228
  br label %230

230:                                              ; preds = %229
  %231 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %231, label %379, label %232

232:                                              ; preds = %230
  br label %233

233:                                              ; preds = %232
  br label %234

234:                                              ; preds = %233
  %235 = call i32 @s2n_cleanup()
  %236 = icmp eq i32 %235, -1
  br i1 %236, label %237, label %288

237:                                              ; preds = %234
  br label %238

238:                                              ; preds = %237
  br label %239

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

246:                                              ; preds = %239
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = call i32 @fileno(ptr noundef %247) #10
  %249 = call i32 @isatty(i32 noundef %248) #10
  %250 = icmp ne i32 %249, 0
  br i1 %250, label %251, label %268

251:                                              ; preds = %246
  %252 = load i32, ptr %9, align 4, !tbaa !5
  %253 = call ptr @__errno_location() #11
  store i32 %252, ptr %253, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call ptr @s2n_strerror(i32 noundef %257, ptr noundef @.str.4)
  %259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call ptr @s2n_strerror_debug(i32 noundef %260, ptr noundef @.str.4)
  %262 = call ptr @__errno_location() #11
  %263 = load i32, ptr %262, align 4, !tbaa !5
  %264 = call ptr @strerror(i32 noundef %263) #10
  %265 = call ptr @__errno_location() #11
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef @.str.2, i32 noundef %255, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 54, ptr noundef %258, ptr noundef %261, ptr noundef %264, i32 noundef %266) #10
  br label %285

268:                                              ; preds = %246, %239
  %269 = load i32, ptr %9, align 4, !tbaa !5
  %270 = call ptr @__errno_location() #11
  store i32 %269, ptr %270, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call ptr @s2n_strerror(i32 noundef %274, ptr noundef @.str.4)
  %276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = call ptr @s2n_strerror_debug(i32 noundef %277, ptr noundef @.str.4)
  %279 = call ptr @__errno_location() #11
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = call ptr @strerror(i32 noundef %280) #10
  %282 = call ptr @__errno_location() #11
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef @.str.5, i32 noundef %272, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 54, ptr noundef %275, ptr noundef %278, ptr noundef %281, i32 noundef %283) #10
  br label %285

285:                                              ; preds = %268, %251
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %286

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

287:                                              ; No predecessors!
  br label %288

288:                                              ; preds = %287, %234
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289
  br label %291

291:                                              ; preds = %290
  %292 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %293 = icmp eq i32 %292, -1
  br i1 %293, label %294, label %345

294:                                              ; preds = %291
  br label %295

295:                                              ; preds = %294
  br label %296

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

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

308:                                              ; preds = %303
  %309 = load i32, ptr %10, align 4, !tbaa !5
  %310 = call ptr @__errno_location() #11
  store i32 %309, ptr %310, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @s2n_strerror(i32 noundef %314, ptr noundef @.str.4)
  %316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call ptr @s2n_strerror_debug(i32 noundef %317, ptr noundef @.str.4)
  %319 = call ptr @__errno_location() #11
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = call ptr @strerror(i32 noundef %320) #10
  %322 = call ptr @__errno_location() #11
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %311, ptr noundef @.str.2, i32 noundef %312, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 54, ptr noundef %315, ptr noundef %318, ptr noundef %321, i32 noundef %323) #10
  br label %342

325:                                              ; preds = %303, %296
  %326 = load i32, ptr %10, align 4, !tbaa !5
  %327 = call ptr @__errno_location() #11
  store i32 %326, ptr %327, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @s2n_strerror(i32 noundef %331, ptr noundef @.str.4)
  %333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror_debug(i32 noundef %334, ptr noundef @.str.4)
  %336 = call ptr @__errno_location() #11
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call ptr @strerror(i32 noundef %337) #10
  %339 = call ptr @__errno_location() #11
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %328, ptr noundef @.str.5, i32 noundef %329, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 54, ptr noundef %332, ptr noundef %335, ptr noundef %338, i32 noundef %340) #10
  br label %342

342:                                              ; preds = %325, %308
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %343

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

344:                                              ; No predecessors!
  br label %345

345:                                              ; preds = %344, %291
  br label %346

346:                                              ; preds = %345
  %347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %348 = trunc i8 %347 to i1
  br i1 %348, label %349, label %365

349:                                              ; preds = %346
  %350 = load ptr, ptr @stdout, align 8, !tbaa !9
  %351 = call i32 @fileno(ptr noundef %350) #10
  %352 = call i32 @isatty(i32 noundef %351) #10
  %353 = icmp ne i32 %352, 0
  br i1 %353, label %354, label %365

354:                                              ; preds = %349
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = icmp ne i32 %355, 0
  br i1 %356, label %357, label %361

357:                                              ; preds = %354
  %358 = load ptr, ptr @stdout, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef @.str.10, i32 noundef %359) #10
  br label %364

361:                                              ; preds = %354
  %362 = load ptr, ptr @stdout, align 8, !tbaa !9
  %363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %362, ptr noundef @.str.11) #10
  br label %364

364:                                              ; preds = %361, %357
  br label %376

365:                                              ; preds = %349, %346
  %366 = load i32, ptr @test_count, align 4, !tbaa !5
  %367 = icmp ne i32 %366, 0
  br i1 %367, label %368, label %372

368:                                              ; preds = %365
  %369 = load ptr, ptr @stdout, align 8, !tbaa !9
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %369, ptr noundef @.str.12, i32 noundef %370) #10
  br label %375

372:                                              ; preds = %365
  %373 = load ptr, ptr @stdout, align 8, !tbaa !9
  %374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %373, ptr noundef @.str.13) #10
  br label %375

375:                                              ; preds = %372, %368
  br label %376

376:                                              ; preds = %375, %364
  store i32 0, ptr %3, align 4
  br label %2279

377:                                              ; No predecessors!
  br label %378

378:                                              ; preds = %377
  br label %379

379:                                              ; preds = %378, %230
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  %380 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %380, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  %381 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %381, ptr %12, align 8, !tbaa !9
  br label %382

382:                                              ; preds = %379
  %383 = load i32, ptr @test_count, align 4, !tbaa !5
  %384 = add nsw i32 %383, 1
  store i32 %384, ptr @test_count, align 4, !tbaa !5
  %385 = load ptr, ptr %11, align 8, !tbaa !9
  %386 = icmp eq ptr %385, null
  br i1 %386, label %387, label %440

387:                                              ; preds = %382
  br label %388

388:                                              ; preds = %387
  br label %389

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

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

401:                                              ; preds = %396
  %402 = load i32, ptr %13, align 4, !tbaa !5
  %403 = call ptr @__errno_location() #11
  store i32 %402, ptr %403, align 4, !tbaa !5
  %404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %405 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %407, ptr noundef @.str.4)
  %409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = call ptr @s2n_strerror_debug(i32 noundef %410, ptr noundef @.str.4)
  %412 = call ptr @__errno_location() #11
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call ptr @strerror(i32 noundef %413) #10
  %415 = call ptr @__errno_location() #11
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %404, ptr noundef @.str.2, i32 noundef %405, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 61, ptr noundef %408, ptr noundef %411, ptr noundef %414, i32 noundef %416) #10
  br label %435

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

435:                                              ; preds = %418, %401
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %436

436:                                              ; preds = %435
  br label %437

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

438:                                              ; No predecessors!
  br label %439

439:                                              ; preds = %438
  br label %440

440:                                              ; preds = %439, %382
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441
  br label %443

443:                                              ; preds = %442
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr @test_count, align 4, !tbaa !5
  %446 = load ptr, ptr %12, align 8, !tbaa !9
  %447 = icmp eq ptr %446, null
  br i1 %447, label %448, label %501

448:                                              ; preds = %443
  br label %449

449:                                              ; preds = %448
  br label %450

450:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %451 = call ptr @__errno_location() #11
  %452 = load i32, ptr %451, align 4, !tbaa !5
  store i32 %452, ptr %14, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @s2n_print_stacktrace(ptr noundef %453)
  %455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %456 = trunc i8 %455 to i1
  br i1 %456, label %457, label %479

457:                                              ; preds = %450
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = call i32 @fileno(ptr noundef %458) #10
  %460 = call i32 @isatty(i32 noundef %459) #10
  %461 = icmp ne i32 %460, 0
  br i1 %461, label %462, label %479

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

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

496:                                              ; preds = %479, %462
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %497

497:                                              ; preds = %496
  br label %498

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

499:                                              ; No predecessors!
  br label %500

500:                                              ; preds = %499
  br label %501

501:                                              ; preds = %500, %443
  br label %502

502:                                              ; preds = %501
  br label %503

503:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %504 = call ptr @s2n_config_new()
  store ptr %504, ptr %15, align 8, !tbaa !9
  br label %505

505:                                              ; preds = %503
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr @test_count, align 4, !tbaa !5
  %508 = load ptr, ptr %15, align 8, !tbaa !9
  %509 = icmp eq ptr %508, null
  br i1 %509, label %510, label %563

510:                                              ; preds = %505
  br label %511

511:                                              ; preds = %510
  br label %512

512:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %513 = call ptr @__errno_location() #11
  %514 = load i32, ptr %513, align 4, !tbaa !5
  store i32 %514, ptr %16, align 4, !tbaa !5
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = call i32 @s2n_print_stacktrace(ptr noundef %515)
  %517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %518 = trunc i8 %517 to i1
  br i1 %518, label %519, label %541

519:                                              ; preds = %512
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = call i32 @fileno(ptr noundef %520) #10
  %522 = call i32 @isatty(i32 noundef %521) #10
  %523 = icmp ne i32 %522, 0
  br i1 %523, label %524, label %541

524:                                              ; preds = %519
  %525 = load i32, ptr %16, align 4, !tbaa !5
  %526 = call ptr @__errno_location() #11
  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() #11
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @strerror(i32 noundef %536) #10
  %538 = call ptr @__errno_location() #11
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %527, ptr noundef @.str.2, i32 noundef %528, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 65, ptr noundef %531, ptr noundef %534, ptr noundef %537, i32 noundef %539) #10
  br label %558

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

558:                                              ; preds = %541, %524
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %559

559:                                              ; preds = %558
  br label %560

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

561:                                              ; No predecessors!
  br label %562

562:                                              ; preds = %561
  br label %563

563:                                              ; preds = %562, %505
  br label %564

564:                                              ; preds = %563
  br label %565

565:                                              ; preds = %564
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  %566 = call ptr @s2n_config_new()
  store ptr %566, ptr %17, align 8, !tbaa !9
  br label %567

567:                                              ; preds = %565
  %568 = load i32, ptr @test_count, align 4, !tbaa !5
  %569 = add nsw i32 %568, 1
  store i32 %569, ptr @test_count, align 4, !tbaa !5
  %570 = load ptr, ptr %17, align 8, !tbaa !9
  %571 = icmp eq ptr %570, null
  br i1 %571, label %572, label %625

572:                                              ; preds = %567
  br label %573

573:                                              ; preds = %572
  br label %574

574:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %575 = call ptr @__errno_location() #11
  %576 = load i32, ptr %575, align 4, !tbaa !5
  store i32 %576, ptr %18, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @s2n_print_stacktrace(ptr noundef %577)
  %579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %580 = trunc i8 %579 to i1
  br i1 %580, label %581, label %603

581:                                              ; preds = %574
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = call i32 @fileno(ptr noundef %582) #10
  %584 = call i32 @isatty(i32 noundef %583) #10
  %585 = icmp ne i32 %584, 0
  br i1 %585, label %586, label %603

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

603:                                              ; preds = %581, %574
  %604 = load i32, ptr %18, align 4, !tbaa !5
  %605 = call ptr @__errno_location() #11
  store i32 %604, ptr %605, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = load i32, ptr @test_count, align 4, !tbaa !5
  %608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror(i32 noundef %609, ptr noundef @.str.4)
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror_debug(i32 noundef %612, ptr noundef @.str.4)
  %614 = call ptr @__errno_location() #11
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @strerror(i32 noundef %615) #10
  %617 = call ptr @__errno_location() #11
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef @.str.5, i32 noundef %607, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 68, ptr noundef %610, ptr noundef %613, ptr noundef %616, i32 noundef %618) #10
  br label %620

620:                                              ; preds = %603, %586
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %621

621:                                              ; preds = %620
  br label %622

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

623:                                              ; No predecessors!
  br label %624

624:                                              ; preds = %623
  br label %625

625:                                              ; preds = %624, %567
  br label %626

626:                                              ; preds = %625
  br label %627

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

628:                                              ; preds = %627
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = add nsw i32 %629, 1
  store i32 %630, ptr @test_count, align 4, !tbaa !5
  %631 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %19, ptr noundef @.str.18, ptr noundef @.str.19)
  %632 = icmp eq i32 %631, -1
  br i1 %632, label %633, label %686

633:                                              ; preds = %628
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %636 = call ptr @__errno_location() #11
  %637 = load i32, ptr %636, align 4, !tbaa !5
  store i32 %637, ptr %20, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = call i32 @s2n_print_stacktrace(ptr noundef %638)
  %640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %641 = trunc i8 %640 to i1
  br i1 %641, label %642, label %664

642:                                              ; preds = %635
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = call i32 @fileno(ptr noundef %643) #10
  %645 = call i32 @isatty(i32 noundef %644) #10
  %646 = icmp ne i32 %645, 0
  br i1 %646, label %647, label %664

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

664:                                              ; preds = %642, %635
  %665 = load i32, ptr %20, align 4, !tbaa !5
  %666 = call ptr @__errno_location() #11
  store i32 %665, ptr %666, align 4, !tbaa !5
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call ptr @s2n_strerror(i32 noundef %670, ptr noundef @.str.4)
  %672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror_debug(i32 noundef %673, ptr noundef @.str.4)
  %675 = call ptr @__errno_location() #11
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call ptr @strerror(i32 noundef %676) #10
  %678 = call ptr @__errno_location() #11
  %679 = load i32, ptr %678, align 4, !tbaa !5
  %680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %667, ptr noundef @.str.5, i32 noundef %668, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 72, ptr noundef %671, ptr noundef %674, ptr noundef %677, i32 noundef %679) #10
  br label %681

681:                                              ; preds = %664, %647
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %682

682:                                              ; preds = %681
  br label %683

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

684:                                              ; No predecessors!
  br label %685

685:                                              ; preds = %684
  br label %686

686:                                              ; preds = %685, %628
  br label %687

687:                                              ; preds = %686
  br label %688

688:                                              ; preds = %687
  br label %689

689:                                              ; preds = %688
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = add nsw i32 %690, 1
  store i32 %691, ptr @test_count, align 4, !tbaa !5
  %692 = load ptr, ptr %15, align 8, !tbaa !9
  %693 = load ptr, ptr %19, align 8, !tbaa !9
  %694 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %692, ptr noundef %693)
  %695 = icmp eq i32 %694, -1
  br i1 %695, label %696, label %749

696:                                              ; preds = %689
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %697
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %699 = call ptr @__errno_location() #11
  %700 = load i32, ptr %699, align 4, !tbaa !5
  store i32 %700, ptr %21, align 4, !tbaa !5
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = call i32 @s2n_print_stacktrace(ptr noundef %701)
  %703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %704 = trunc i8 %703 to i1
  br i1 %704, label %705, label %727

705:                                              ; preds = %698
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = call i32 @fileno(ptr noundef %706) #10
  %708 = call i32 @isatty(i32 noundef %707) #10
  %709 = icmp ne i32 %708, 0
  br i1 %709, label %710, label %727

710:                                              ; preds = %705
  %711 = load i32, ptr %21, align 4, !tbaa !5
  %712 = call ptr @__errno_location() #11
  store i32 %711, ptr %712, align 4, !tbaa !5
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %716, ptr noundef @.str.4)
  %718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @s2n_strerror_debug(i32 noundef %719, ptr noundef @.str.4)
  %721 = call ptr @__errno_location() #11
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call ptr @strerror(i32 noundef %722) #10
  %724 = call ptr @__errno_location() #11
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %713, ptr noundef @.str.2, i32 noundef %714, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 73, ptr noundef %717, ptr noundef %720, ptr noundef %723, i32 noundef %725) #10
  br label %744

727:                                              ; preds = %705, %698
  %728 = load i32, ptr %21, align 4, !tbaa !5
  %729 = call ptr @__errno_location() #11
  store i32 %728, ptr %729, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror(i32 noundef %733, ptr noundef @.str.4)
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror_debug(i32 noundef %736, ptr noundef @.str.4)
  %738 = call ptr @__errno_location() #11
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #10
  %741 = call ptr @__errno_location() #11
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef @.str.5, i32 noundef %731, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 73, ptr noundef %734, ptr noundef %737, ptr noundef %740, i32 noundef %742) #10
  br label %744

744:                                              ; preds = %727, %710
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %745

745:                                              ; preds = %744
  br label %746

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

747:                                              ; No predecessors!
  br label %748

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %748, %689
  br label %750

750:                                              ; preds = %749
  br label %751

751:                                              ; preds = %750
  br label %752

752:                                              ; preds = %751
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = add nsw i32 %753, 1
  store i32 %754, ptr @test_count, align 4, !tbaa !5
  %755 = load ptr, ptr %15, align 8, !tbaa !9
  %756 = call i32 @s2n_resumption_test_ticket_key_setup(ptr noundef %755)
  %757 = getelementptr inbounds %struct.s2n_result, ptr %22, i32 0, i32 0
  store i32 %756, ptr %757, align 4
  %758 = getelementptr inbounds %struct.s2n_result, ptr %22, i32 0, i32 0
  %759 = load i32, ptr %758, align 4
  %760 = call zeroext i1 @s2n_result_is_ok(i32 %759)
  br i1 %760, label %814, label %761

761:                                              ; preds = %752
  br label %762

762:                                              ; preds = %761
  br label %763

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

770:                                              ; preds = %763
  %771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %772 = call i32 @fileno(ptr noundef %771) #10
  %773 = call i32 @isatty(i32 noundef %772) #10
  %774 = icmp ne i32 %773, 0
  br i1 %774, label %775, label %792

775:                                              ; preds = %770
  %776 = load i32, ptr %23, align 4, !tbaa !5
  %777 = call ptr @__errno_location() #11
  store i32 %776, ptr %777, align 4, !tbaa !5
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = load i32, ptr @test_count, align 4, !tbaa !5
  %780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call ptr @s2n_strerror(i32 noundef %781, ptr noundef @.str.4)
  %783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror_debug(i32 noundef %784, ptr noundef @.str.4)
  %786 = call ptr @__errno_location() #11
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @strerror(i32 noundef %787) #10
  %789 = call ptr @__errno_location() #11
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %778, ptr noundef @.str.2, i32 noundef %779, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 74, ptr noundef %782, ptr noundef %785, ptr noundef %788, i32 noundef %790) #10
  br label %809

792:                                              ; preds = %770, %763
  %793 = load i32, ptr %23, align 4, !tbaa !5
  %794 = call ptr @__errno_location() #11
  store i32 %793, ptr %794, align 4, !tbaa !5
  %795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %796 = load i32, ptr @test_count, align 4, !tbaa !5
  %797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call ptr @s2n_strerror(i32 noundef %798, ptr noundef @.str.4)
  %800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror_debug(i32 noundef %801, ptr noundef @.str.4)
  %803 = call ptr @__errno_location() #11
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @strerror(i32 noundef %804) #10
  %806 = call ptr @__errno_location() #11
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %795, ptr noundef @.str.5, i32 noundef %796, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 74, ptr noundef %799, ptr noundef %802, ptr noundef %805, i32 noundef %807) #10
  br label %809

809:                                              ; preds = %792, %775
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %810

810:                                              ; preds = %809
  br label %811

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

812:                                              ; No predecessors!
  br label %813

813:                                              ; preds = %812
  br label %814

814:                                              ; preds = %813, %752
  br label %815

815:                                              ; preds = %814
  br label %816

816:                                              ; preds = %815
  br label %817

817:                                              ; preds = %816
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %819 = add nsw i32 %818, 1
  store i32 %819, ptr @test_count, align 4, !tbaa !5
  %820 = load ptr, ptr %17, align 8, !tbaa !9
  %821 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef %820, i8 noundef zeroext 1)
  %822 = icmp eq i32 %821, -1
  br i1 %822, label %823, label %876

823:                                              ; preds = %817
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %826 = call ptr @__errno_location() #11
  %827 = load i32, ptr %826, align 4, !tbaa !5
  store i32 %827, ptr %24, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = call i32 @s2n_print_stacktrace(ptr noundef %828)
  %830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %831 = trunc i8 %830 to i1
  br i1 %831, label %832, label %854

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

837:                                              ; preds = %832
  %838 = load i32, ptr %24, align 4, !tbaa !5
  %839 = call ptr @__errno_location() #11
  store i32 %838, ptr %839, align 4, !tbaa !5
  %840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %841 = load i32, ptr @test_count, align 4, !tbaa !5
  %842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror(i32 noundef %843, ptr noundef @.str.4)
  %845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror_debug(i32 noundef %846, ptr noundef @.str.4)
  %848 = call ptr @__errno_location() #11
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call ptr @strerror(i32 noundef %849) #10
  %851 = call ptr @__errno_location() #11
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %840, ptr noundef @.str.2, i32 noundef %841, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 76, ptr noundef %844, ptr noundef %847, ptr noundef %850, i32 noundef %852) #10
  br label %871

854:                                              ; preds = %832, %825
  %855 = load i32, ptr %24, align 4, !tbaa !5
  %856 = call ptr @__errno_location() #11
  store i32 %855, ptr %856, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = load i32, ptr @test_count, align 4, !tbaa !5
  %859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @s2n_strerror(i32 noundef %860, ptr noundef @.str.4)
  %862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call ptr @s2n_strerror_debug(i32 noundef %863, ptr noundef @.str.4)
  %865 = call ptr @__errno_location() #11
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call ptr @strerror(i32 noundef %866) #10
  %868 = call ptr @__errno_location() #11
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %857, ptr noundef @.str.5, i32 noundef %858, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 76, ptr noundef %861, ptr noundef %864, ptr noundef %867, i32 noundef %869) #10
  br label %871

871:                                              ; preds = %854, %837
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %872

872:                                              ; preds = %871
  br label %873

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

874:                                              ; No predecessors!
  br label %875

875:                                              ; preds = %874
  br label %876

876:                                              ; preds = %875, %817
  br label %877

877:                                              ; preds = %876
  br label %878

878:                                              ; preds = %877
  br label %879

879:                                              ; preds = %878
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = add nsw i32 %880, 1
  store i32 %881, ptr @test_count, align 4, !tbaa !5
  %882 = load ptr, ptr %17, align 8, !tbaa !9
  %883 = call i32 @s2n_config_set_session_ticket_cb(ptr noundef %882, ptr noundef @s2n_test_session_ticket_cb, ptr noundef null)
  %884 = icmp eq i32 %883, -1
  br i1 %884, label %885, label %938

885:                                              ; preds = %879
  br label %886

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %888 = call ptr @__errno_location() #11
  %889 = load i32, ptr %888, align 4, !tbaa !5
  store i32 %889, ptr %25, align 4, !tbaa !5
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = call i32 @s2n_print_stacktrace(ptr noundef %890)
  %892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %893 = trunc i8 %892 to i1
  br i1 %893, label %894, label %916

894:                                              ; preds = %887
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = call i32 @fileno(ptr noundef %895) #10
  %897 = call i32 @isatty(i32 noundef %896) #10
  %898 = icmp ne i32 %897, 0
  br i1 %898, label %899, label %916

899:                                              ; preds = %894
  %900 = load i32, ptr %25, align 4, !tbaa !5
  %901 = call ptr @__errno_location() #11
  store i32 %900, ptr %901, align 4, !tbaa !5
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = load i32, ptr @test_count, align 4, !tbaa !5
  %904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror(i32 noundef %905, ptr noundef @.str.4)
  %907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror_debug(i32 noundef %908, ptr noundef @.str.4)
  %910 = call ptr @__errno_location() #11
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call ptr @strerror(i32 noundef %911) #10
  %913 = call ptr @__errno_location() #11
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %902, ptr noundef @.str.2, i32 noundef %903, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 77, ptr noundef %906, ptr noundef %909, ptr noundef %912, i32 noundef %914) #10
  br label %933

916:                                              ; preds = %894, %887
  %917 = load i32, ptr %25, align 4, !tbaa !5
  %918 = call ptr @__errno_location() #11
  store i32 %917, ptr %918, align 4, !tbaa !5
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @s2n_strerror(i32 noundef %922, ptr noundef @.str.4)
  %924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror_debug(i32 noundef %925, ptr noundef @.str.4)
  %927 = call ptr @__errno_location() #11
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call ptr @strerror(i32 noundef %928) #10
  %930 = call ptr @__errno_location() #11
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %919, ptr noundef @.str.5, i32 noundef %920, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 77, ptr noundef %923, ptr noundef %926, ptr noundef %929, i32 noundef %931) #10
  br label %933

933:                                              ; preds = %916, %899
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %934

934:                                              ; preds = %933
  br label %935

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

936:                                              ; No predecessors!
  br label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937, %879
  br label %939

939:                                              ; preds = %938
  br label %940

940:                                              ; preds = %939
  br label %941

941:                                              ; preds = %940
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = add nsw i32 %942, 1
  store i32 %943, ptr @test_count, align 4, !tbaa !5
  %944 = load ptr, ptr %17, align 8, !tbaa !9
  %945 = call i32 @s2n_config_disable_x509_verification(ptr noundef %944)
  %946 = icmp eq i32 %945, -1
  br i1 %946, label %947, label %1000

947:                                              ; preds = %941
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %950 = call ptr @__errno_location() #11
  %951 = load i32, ptr %950, align 4, !tbaa !5
  store i32 %951, ptr %26, align 4, !tbaa !5
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = call i32 @s2n_print_stacktrace(ptr noundef %952)
  %954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %955 = trunc i8 %954 to i1
  br i1 %955, label %956, label %978

956:                                              ; preds = %949
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = call i32 @fileno(ptr noundef %957) #10
  %959 = call i32 @isatty(i32 noundef %958) #10
  %960 = icmp ne i32 %959, 0
  br i1 %960, label %961, label %978

961:                                              ; preds = %956
  %962 = load i32, ptr %26, align 4, !tbaa !5
  %963 = call ptr @__errno_location() #11
  store i32 %962, ptr %963, align 4, !tbaa !5
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = load i32, ptr @test_count, align 4, !tbaa !5
  %966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror(i32 noundef %967, ptr noundef @.str.4)
  %969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror_debug(i32 noundef %970, ptr noundef @.str.4)
  %972 = call ptr @__errno_location() #11
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call ptr @strerror(i32 noundef %973) #10
  %975 = call ptr @__errno_location() #11
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %964, ptr noundef @.str.2, i32 noundef %965, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 78, ptr noundef %968, ptr noundef %971, ptr noundef %974, i32 noundef %976) #10
  br label %995

978:                                              ; preds = %956, %949
  %979 = load i32, ptr %26, align 4, !tbaa !5
  %980 = call ptr @__errno_location() #11
  store i32 %979, ptr %980, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror(i32 noundef %984, ptr noundef @.str.4)
  %986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror_debug(i32 noundef %987, ptr noundef @.str.4)
  %989 = call ptr @__errno_location() #11
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call ptr @strerror(i32 noundef %990) #10
  %992 = call ptr @__errno_location() #11
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %981, ptr noundef @.str.5, i32 noundef %982, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 78, ptr noundef %985, ptr noundef %988, ptr noundef %991, i32 noundef %993) #10
  br label %995

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

996:                                              ; preds = %995
  br label %997

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

998:                                              ; No predecessors!
  br label %999

999:                                              ; preds = %998
  br label %1000

1000:                                             ; preds = %999, %941
  br label %1001

1001:                                             ; preds = %1000
  br label %1002

1002:                                             ; preds = %1001
  br label %1003

1003:                                             ; preds = %1002
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = add nsw i32 %1004, 1
  store i32 %1005, ptr @test_count, align 4, !tbaa !5
  %1006 = load ptr, ptr %11, align 8, !tbaa !9
  %1007 = load ptr, ptr %15, align 8, !tbaa !9
  %1008 = call i32 @s2n_connection_set_config(ptr noundef %1006, ptr noundef %1007)
  %1009 = icmp eq i32 %1008, -1
  br i1 %1009, label %1010, label %1063

1010:                                             ; preds = %1003
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

1012:                                             ; preds = %1011
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %1013 = call ptr @__errno_location() #11
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  store i32 %1014, ptr %27, align 4, !tbaa !5
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = call i32 @s2n_print_stacktrace(ptr noundef %1015)
  %1017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1018 = trunc i8 %1017 to i1
  br i1 %1018, label %1019, label %1041

1019:                                             ; preds = %1012
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = call i32 @fileno(ptr noundef %1020) #10
  %1022 = call i32 @isatty(i32 noundef %1021) #10
  %1023 = icmp ne i32 %1022, 0
  br i1 %1023, label %1024, label %1041

1024:                                             ; preds = %1019
  %1025 = load i32, ptr %27, align 4, !tbaa !5
  %1026 = call ptr @__errno_location() #11
  store i32 %1025, ptr %1026, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror(i32 noundef %1030, ptr noundef @.str.4)
  %1032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror_debug(i32 noundef %1033, ptr noundef @.str.4)
  %1035 = call ptr @__errno_location() #11
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call ptr @strerror(i32 noundef %1036) #10
  %1038 = call ptr @__errno_location() #11
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef @.str.2, i32 noundef %1028, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1031, ptr noundef %1034, ptr noundef %1037, i32 noundef %1039) #10
  br label %1058

1041:                                             ; preds = %1019, %1012
  %1042 = load i32, ptr %27, align 4, !tbaa !5
  %1043 = call ptr @__errno_location() #11
  store i32 %1042, ptr %1043, align 4, !tbaa !5
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = load i32, ptr @test_count, align 4, !tbaa !5
  %1046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1047 = load i32, ptr %1046, align 4, !tbaa !5
  %1048 = call ptr @s2n_strerror(i32 noundef %1047, ptr noundef @.str.4)
  %1049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1050 = load i32, ptr %1049, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror_debug(i32 noundef %1050, ptr noundef @.str.4)
  %1052 = call ptr @__errno_location() #11
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call ptr @strerror(i32 noundef %1053) #10
  %1055 = call ptr @__errno_location() #11
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1044, ptr noundef @.str.5, i32 noundef %1045, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1048, ptr noundef %1051, ptr noundef %1054, i32 noundef %1056) #10
  br label %1058

1058:                                             ; preds = %1041, %1024
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1059

1059:                                             ; preds = %1058
  br label %1060

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

1061:                                             ; No predecessors!
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

1063:                                             ; preds = %1062, %1003
  br label %1064

1064:                                             ; preds = %1063
  br label %1065

1065:                                             ; preds = %1064
  br label %1066

1066:                                             ; preds = %1065
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = add nsw i32 %1067, 1
  store i32 %1068, ptr @test_count, align 4, !tbaa !5
  %1069 = load ptr, ptr %12, align 8, !tbaa !9
  %1070 = load ptr, ptr %17, align 8, !tbaa !9
  %1071 = call i32 @s2n_connection_set_config(ptr noundef %1069, ptr noundef %1070)
  %1072 = icmp eq i32 %1071, -1
  br i1 %1072, label %1073, label %1126

1073:                                             ; preds = %1066
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %1076 = call ptr @__errno_location() #11
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  store i32 %1077, ptr %28, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = call i32 @s2n_print_stacktrace(ptr noundef %1078)
  %1080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1081 = trunc i8 %1080 to i1
  br i1 %1081, label %1082, label %1104

1082:                                             ; preds = %1075
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = call i32 @fileno(ptr noundef %1083) #10
  %1085 = call i32 @isatty(i32 noundef %1084) #10
  %1086 = icmp ne i32 %1085, 0
  br i1 %1086, label %1087, label %1104

1087:                                             ; preds = %1082
  %1088 = load i32, ptr %28, align 4, !tbaa !5
  %1089 = call ptr @__errno_location() #11
  store i32 %1088, ptr %1089, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @s2n_strerror(i32 noundef %1093, ptr noundef @.str.4)
  %1095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror_debug(i32 noundef %1096, ptr noundef @.str.4)
  %1098 = call ptr @__errno_location() #11
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call ptr @strerror(i32 noundef %1099) #10
  %1101 = call ptr @__errno_location() #11
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1090, ptr noundef @.str.2, i32 noundef %1091, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1094, ptr noundef %1097, ptr noundef %1100, i32 noundef %1102) #10
  br label %1121

1104:                                             ; preds = %1082, %1075
  %1105 = load i32, ptr %28, align 4, !tbaa !5
  %1106 = call ptr @__errno_location() #11
  store i32 %1105, ptr %1106, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = load i32, ptr @test_count, align 4, !tbaa !5
  %1109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror(i32 noundef %1110, ptr noundef @.str.4)
  %1112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror_debug(i32 noundef %1113, ptr noundef @.str.4)
  %1115 = call ptr @__errno_location() #11
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @strerror(i32 noundef %1116) #10
  %1118 = call ptr @__errno_location() #11
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1107, ptr noundef @.str.5, i32 noundef %1108, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1111, ptr noundef %1114, ptr noundef %1117, i32 noundef %1119) #10
  br label %1121

1121:                                             ; preds = %1104, %1087
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1122

1122:                                             ; preds = %1121
  br label %1123

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

1124:                                             ; No predecessors!
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125, %1066
  br label %1127

1127:                                             ; preds = %1126
  br label %1128

1128:                                             ; preds = %1127
  br label %1129

1129:                                             ; preds = %1128
  %1130 = load i32, ptr @test_count, align 4, !tbaa !5
  %1131 = add nsw i32 %1130, 1
  store i32 %1131, ptr @test_count, align 4, !tbaa !5
  %1132 = load ptr, ptr %11, align 8, !tbaa !9
  %1133 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1132, ptr noundef @.str.28)
  %1134 = icmp eq i32 %1133, -1
  br i1 %1134, label %1135, label %1188

1135:                                             ; preds = %1129
  br label %1136

1136:                                             ; preds = %1135
  br label %1137

1137:                                             ; preds = %1136
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %1138 = call ptr @__errno_location() #11
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  store i32 %1139, ptr %29, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @s2n_print_stacktrace(ptr noundef %1140)
  %1142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1143 = trunc i8 %1142 to i1
  br i1 %1143, label %1144, label %1166

1144:                                             ; preds = %1137
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @fileno(ptr noundef %1145) #10
  %1147 = call i32 @isatty(i32 noundef %1146) #10
  %1148 = icmp ne i32 %1147, 0
  br i1 %1148, label %1149, label %1166

1149:                                             ; preds = %1144
  %1150 = load i32, ptr %29, align 4, !tbaa !5
  %1151 = call ptr @__errno_location() #11
  store i32 %1150, ptr %1151, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror(i32 noundef %1155, ptr noundef @.str.4)
  %1157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror_debug(i32 noundef %1158, ptr noundef @.str.4)
  %1160 = call ptr @__errno_location() #11
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call ptr @strerror(i32 noundef %1161) #10
  %1163 = call ptr @__errno_location() #11
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1152, ptr noundef @.str.2, i32 noundef %1153, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1156, ptr noundef %1159, ptr noundef %1162, i32 noundef %1164) #10
  br label %1183

1166:                                             ; preds = %1144, %1137
  %1167 = load i32, ptr %29, align 4, !tbaa !5
  %1168 = call ptr @__errno_location() #11
  store i32 %1167, ptr %1168, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = load i32, ptr @test_count, align 4, !tbaa !5
  %1171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror(i32 noundef %1172, ptr noundef @.str.4)
  %1174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1175 = load i32, ptr %1174, align 4, !tbaa !5
  %1176 = call ptr @s2n_strerror_debug(i32 noundef %1175, ptr noundef @.str.4)
  %1177 = call ptr @__errno_location() #11
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = call ptr @strerror(i32 noundef %1178) #10
  %1180 = call ptr @__errno_location() #11
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1169, ptr noundef @.str.5, i32 noundef %1170, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1173, ptr noundef %1176, ptr noundef %1179, i32 noundef %1181) #10
  br label %1183

1183:                                             ; preds = %1166, %1149
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

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

1186:                                             ; No predecessors!
  br label %1187

1187:                                             ; preds = %1186
  br label %1188

1188:                                             ; preds = %1187, %1129
  br label %1189

1189:                                             ; preds = %1188
  br label %1190

1190:                                             ; preds = %1189
  br label %1191

1191:                                             ; preds = %1190
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = add nsw i32 %1192, 1
  store i32 %1193, ptr @test_count, align 4, !tbaa !5
  %1194 = load ptr, ptr %12, align 8, !tbaa !9
  %1195 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1194, ptr noundef @.str.28)
  %1196 = icmp eq i32 %1195, -1
  br i1 %1196, label %1197, label %1250

1197:                                             ; preds = %1191
  br label %1198

1198:                                             ; preds = %1197
  br label %1199

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

1206:                                             ; preds = %1199
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = call i32 @fileno(ptr noundef %1207) #10
  %1209 = call i32 @isatty(i32 noundef %1208) #10
  %1210 = icmp ne i32 %1209, 0
  br i1 %1210, label %1211, label %1228

1211:                                             ; preds = %1206
  %1212 = load i32, ptr %30, align 4, !tbaa !5
  %1213 = call ptr @__errno_location() #11
  store i32 %1212, ptr %1213, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = load i32, ptr @test_count, align 4, !tbaa !5
  %1216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror(i32 noundef %1217, ptr noundef @.str.4)
  %1219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror_debug(i32 noundef %1220, ptr noundef @.str.4)
  %1222 = call ptr @__errno_location() #11
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @strerror(i32 noundef %1223) #10
  %1225 = call ptr @__errno_location() #11
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1214, ptr noundef @.str.2, i32 noundef %1215, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1218, ptr noundef %1221, ptr noundef %1224, i32 noundef %1226) #10
  br label %1245

1228:                                             ; preds = %1206, %1199
  %1229 = load i32, ptr %30, align 4, !tbaa !5
  %1230 = call ptr @__errno_location() #11
  store i32 %1229, ptr %1230, align 4, !tbaa !5
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = load i32, ptr @test_count, align 4, !tbaa !5
  %1233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror(i32 noundef %1234, ptr noundef @.str.4)
  %1236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef @.str.4)
  %1239 = call ptr @__errno_location() #11
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @strerror(i32 noundef %1240) #10
  %1242 = call ptr @__errno_location() #11
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1231, ptr noundef @.str.5, i32 noundef %1232, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1235, ptr noundef %1238, ptr noundef %1241, i32 noundef %1243) #10
  br label %1245

1245:                                             ; preds = %1228, %1211
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

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

1248:                                             ; No predecessors!
  br label %1249

1249:                                             ; preds = %1248
  br label %1250

1250:                                             ; preds = %1249, %1191
  br label %1251

1251:                                             ; preds = %1250
  br label %1252

1252:                                             ; preds = %1251
  call void @llvm.lifetime.start.p0(i64 40, ptr %31) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %32) #10
  br label %1253

1253:                                             ; preds = %1252
  %1254 = load i32, ptr @test_count, align 4, !tbaa !5
  %1255 = add nsw i32 %1254, 1
  store i32 %1255, ptr @test_count, align 4, !tbaa !5
  %1256 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %31, i32 noundef 0)
  %1257 = icmp eq i32 %1256, -1
  br i1 %1257, label %1258, label %1311

1258:                                             ; preds = %1253
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

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

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

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

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

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

1307:                                             ; preds = %1306
  br label %1308

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

1309:                                             ; No predecessors!
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

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

1312:                                             ; preds = %1311
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

1314:                                             ; preds = %1313
  %1315 = load i32, ptr @test_count, align 4, !tbaa !5
  %1316 = add nsw i32 %1315, 1
  store i32 %1316, ptr @test_count, align 4, !tbaa !5
  %1317 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %32, i32 noundef 0)
  %1318 = icmp eq i32 %1317, -1
  br i1 %1318, label %1319, label %1372

1319:                                             ; preds = %1314
  br label %1320

1320:                                             ; preds = %1319
  br label %1321

1321:                                             ; preds = %1320
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %1322 = call ptr @__errno_location() #11
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  store i32 %1323, ptr %34, align 4, !tbaa !5
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = call i32 @s2n_print_stacktrace(ptr noundef %1324)
  %1326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1327 = trunc i8 %1326 to i1
  br i1 %1327, label %1328, label %1350

1328:                                             ; preds = %1321
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = call i32 @fileno(ptr noundef %1329) #10
  %1331 = call i32 @isatty(i32 noundef %1330) #10
  %1332 = icmp ne i32 %1331, 0
  br i1 %1332, label %1333, label %1350

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

1350:                                             ; preds = %1328, %1321
  %1351 = load i32, ptr %34, align 4, !tbaa !5
  %1352 = call ptr @__errno_location() #11
  store i32 %1351, ptr %1352, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror(i32 noundef %1356, ptr noundef @.str.4)
  %1358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror_debug(i32 noundef %1359, ptr noundef @.str.4)
  %1361 = call ptr @__errno_location() #11
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @strerror(i32 noundef %1362) #10
  %1364 = call ptr @__errno_location() #11
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1353, ptr noundef @.str.5, i32 noundef %1354, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1357, ptr noundef %1360, ptr noundef %1363, i32 noundef %1365) #10
  br label %1367

1367:                                             ; preds = %1350, %1333
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1368

1368:                                             ; preds = %1367
  br label %1369

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

1370:                                             ; No predecessors!
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

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

1373:                                             ; preds = %1372
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr @test_count, align 4, !tbaa !5
  %1378 = load ptr, ptr %11, align 8, !tbaa !9
  %1379 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %31, ptr noundef %32, ptr noundef %1378)
  %1380 = icmp eq i32 %1379, -1
  br i1 %1380, label %1381, label %1434

1381:                                             ; preds = %1375
  br label %1382

1382:                                             ; preds = %1381
  br label %1383

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

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

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

1412:                                             ; preds = %1390, %1383
  %1413 = load i32, ptr %35, align 4, !tbaa !5
  %1414 = call ptr @__errno_location() #11
  store i32 %1413, ptr %1414, align 4, !tbaa !5
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror(i32 noundef %1418, ptr noundef @.str.4)
  %1420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @s2n_strerror_debug(i32 noundef %1421, ptr noundef @.str.4)
  %1423 = call ptr @__errno_location() #11
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @strerror(i32 noundef %1424) #10
  %1426 = call ptr @__errno_location() #11
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1415, ptr noundef @.str.5, i32 noundef %1416, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1419, ptr noundef %1422, ptr noundef %1425, i32 noundef %1427) #10
  br label %1429

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

1430:                                             ; preds = %1429
  br label %1431

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

1432:                                             ; No predecessors!
  br label %1433

1433:                                             ; preds = %1432
  br label %1434

1434:                                             ; preds = %1433, %1375
  br label %1435

1435:                                             ; preds = %1434
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

1437:                                             ; preds = %1436
  %1438 = load i32, ptr @test_count, align 4, !tbaa !5
  %1439 = add nsw i32 %1438, 1
  store i32 %1439, ptr @test_count, align 4, !tbaa !5
  %1440 = load ptr, ptr %12, align 8, !tbaa !9
  %1441 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %32, ptr noundef %31, ptr noundef %1440)
  %1442 = icmp eq i32 %1441, -1
  br i1 %1442, label %1443, label %1496

1443:                                             ; preds = %1437
  br label %1444

1444:                                             ; preds = %1443
  br label %1445

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

1452:                                             ; preds = %1445
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = call i32 @fileno(ptr noundef %1453) #10
  %1455 = call i32 @isatty(i32 noundef %1454) #10
  %1456 = icmp ne i32 %1455, 0
  br i1 %1456, label %1457, label %1474

1457:                                             ; preds = %1452
  %1458 = load i32, ptr %36, align 4, !tbaa !5
  %1459 = call ptr @__errno_location() #11
  store i32 %1458, ptr %1459, align 4, !tbaa !5
  %1460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1461 = load i32, ptr @test_count, align 4, !tbaa !5
  %1462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1463 = load i32, ptr %1462, align 4, !tbaa !5
  %1464 = call ptr @s2n_strerror(i32 noundef %1463, ptr noundef @.str.4)
  %1465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1466 = load i32, ptr %1465, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef @.str.4)
  %1468 = call ptr @__errno_location() #11
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = call ptr @strerror(i32 noundef %1469) #10
  %1471 = call ptr @__errno_location() #11
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  %1473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1460, ptr noundef @.str.2, i32 noundef %1461, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1464, ptr noundef %1467, ptr noundef %1470, i32 noundef %1472) #10
  br label %1491

1474:                                             ; preds = %1452, %1445
  %1475 = load i32, ptr %36, align 4, !tbaa !5
  %1476 = call ptr @__errno_location() #11
  store i32 %1475, ptr %1476, align 4, !tbaa !5
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = load i32, ptr @test_count, align 4, !tbaa !5
  %1479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror(i32 noundef %1480, ptr noundef @.str.4)
  %1482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror_debug(i32 noundef %1483, ptr noundef @.str.4)
  %1485 = call ptr @__errno_location() #11
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call ptr @strerror(i32 noundef %1486) #10
  %1488 = call ptr @__errno_location() #11
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1477, ptr noundef @.str.5, i32 noundef %1478, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1481, ptr noundef %1484, ptr noundef %1487, i32 noundef %1489) #10
  br label %1491

1491:                                             ; preds = %1474, %1457
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1492

1492:                                             ; preds = %1491
  br label %1493

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

1494:                                             ; No predecessors!
  br label %1495

1495:                                             ; preds = %1494
  br label %1496

1496:                                             ; preds = %1495, %1437
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

1498:                                             ; preds = %1497
  br label %1499

1499:                                             ; preds = %1498
  %1500 = load i32, ptr @test_count, align 4, !tbaa !5
  %1501 = add nsw i32 %1500, 1
  store i32 %1501, ptr @test_count, align 4, !tbaa !5
  %1502 = load ptr, ptr %11, align 8, !tbaa !9
  %1503 = load ptr, ptr %12, align 8, !tbaa !9
  %1504 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1502, ptr noundef %1503)
  %1505 = icmp eq i32 %1504, -1
  br i1 %1505, label %1506, label %1559

1506:                                             ; preds = %1499
  br label %1507

1507:                                             ; preds = %1506
  br label %1508

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

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

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

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

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

1555:                                             ; preds = %1554
  br label %1556

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

1557:                                             ; No predecessors!
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

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

1560:                                             ; preds = %1559
  br label %1561

1561:                                             ; preds = %1560
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #10
  store i8 5, ptr %38, align 1, !tbaa !15
  %1562 = load i8, ptr %38, align 1, !tbaa !15
  %1563 = zext i8 %1562 to i16
  %1564 = load ptr, ptr %11, align 8, !tbaa !9
  %1565 = getelementptr inbounds %struct.s2n_connection, ptr %1564, i32 0, i32 87
  store i16 %1563, ptr %1565, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  call void @llvm.lifetime.start.p0(i64 13, ptr %40) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %40, ptr align 1 @__const.main.message, i64 13, i1 false)
  br label %1566

1566:                                             ; preds = %1561
  %1567 = load i32, ptr @test_count, align 4, !tbaa !5
  %1568 = add nsw i32 %1567, 1
  store i32 %1568, ptr @test_count, align 4, !tbaa !5
  %1569 = load ptr, ptr %11, align 8, !tbaa !9
  %1570 = getelementptr inbounds [13 x i8], ptr %40, i64 0, i64 0
  %1571 = call i64 @s2n_send(ptr noundef %1569, ptr noundef %1570, i64 noundef 13, ptr noundef %39)
  %1572 = icmp eq i64 %1571, -1
  br i1 %1572, label %1573, label %1626

1573:                                             ; preds = %1566
  br label %1574

1574:                                             ; preds = %1573
  br label %1575

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

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

1587:                                             ; preds = %1582
  %1588 = load i32, ptr %41, align 4, !tbaa !5
  %1589 = call ptr @__errno_location() #11
  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() #11
  %1599 = load i32, ptr %1598, align 4, !tbaa !5
  %1600 = call ptr @strerror(i32 noundef %1599) #10
  %1601 = call ptr @__errno_location() #11
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1590, ptr noundef @.str.2, i32 noundef %1591, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1594, ptr noundef %1597, ptr noundef %1600, i32 noundef %1602) #10
  br label %1621

1604:                                             ; preds = %1582, %1575
  %1605 = load i32, ptr %41, align 4, !tbaa !5
  %1606 = call ptr @__errno_location() #11
  store i32 %1605, ptr %1606, align 4, !tbaa !5
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1608 = load i32, ptr @test_count, align 4, !tbaa !5
  %1609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call ptr @s2n_strerror(i32 noundef %1610, ptr noundef @.str.4)
  %1612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call ptr @s2n_strerror_debug(i32 noundef %1613, ptr noundef @.str.4)
  %1615 = call ptr @__errno_location() #11
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @strerror(i32 noundef %1616) #10
  %1618 = call ptr @__errno_location() #11
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1607, ptr noundef @.str.5, i32 noundef %1608, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1611, ptr noundef %1614, ptr noundef %1617, i32 noundef %1619) #10
  br label %1621

1621:                                             ; preds = %1604, %1587
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

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

1624:                                             ; No predecessors!
  br label %1625

1625:                                             ; preds = %1624
  br label %1626

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

1627:                                             ; preds = %1626
  br label %1628

1628:                                             ; preds = %1627
  call void @llvm.lifetime.start.p0(i64 13, ptr %42) #10
  br label %1629

1629:                                             ; preds = %1628
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = add nsw i32 %1630, 1
  store i32 %1631, ptr @test_count, align 4, !tbaa !5
  %1632 = load ptr, ptr %12, align 8, !tbaa !9
  %1633 = getelementptr inbounds [13 x i8], ptr %42, i64 0, i64 0
  %1634 = call i64 @s2n_recv(ptr noundef %1632, ptr noundef %1633, i64 noundef 13, ptr noundef %39)
  %1635 = icmp eq i64 %1634, -1
  br i1 %1635, label %1636, label %1689

1636:                                             ; preds = %1629
  br label %1637

1637:                                             ; preds = %1636
  br label %1638

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

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

1650:                                             ; preds = %1645
  %1651 = load i32, ptr %43, align 4, !tbaa !5
  %1652 = call ptr @__errno_location() #11
  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() #11
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call ptr @strerror(i32 noundef %1662) #10
  %1664 = call ptr @__errno_location() #11
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1653, ptr noundef @.str.2, i32 noundef %1654, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1657, ptr noundef %1660, ptr noundef %1663, i32 noundef %1665) #10
  br label %1684

1667:                                             ; preds = %1645, %1638
  %1668 = load i32, ptr %43, align 4, !tbaa !5
  %1669 = call ptr @__errno_location() #11
  store i32 %1668, ptr %1669, align 4, !tbaa !5
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = load i32, ptr @test_count, align 4, !tbaa !5
  %1672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call ptr @s2n_strerror(i32 noundef %1673, ptr noundef @.str.4)
  %1675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1676 = load i32, ptr %1675, align 4, !tbaa !5
  %1677 = call ptr @s2n_strerror_debug(i32 noundef %1676, ptr noundef @.str.4)
  %1678 = call ptr @__errno_location() #11
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = call ptr @strerror(i32 noundef %1679) #10
  %1681 = call ptr @__errno_location() #11
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  %1683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1670, ptr noundef @.str.5, i32 noundef %1671, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1674, ptr noundef %1677, ptr noundef %1680, i32 noundef %1682) #10
  br label %1684

1684:                                             ; preds = %1667, %1650
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1685

1685:                                             ; preds = %1684
  br label %1686

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

1687:                                             ; No predecessors!
  br label %1688

1688:                                             ; preds = %1687
  br label %1689

1689:                                             ; preds = %1688, %1629
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690
  br label %1692

1692:                                             ; preds = %1691
  br label %1693

1693:                                             ; preds = %1692
  %1694 = load i32, ptr @test_count, align 4, !tbaa !5
  %1695 = add nsw i32 %1694, 1
  store i32 %1695, ptr @test_count, align 4, !tbaa !5
  %1696 = getelementptr inbounds [13 x i8], ptr %42, i64 0, i64 0
  %1697 = getelementptr inbounds [13 x i8], ptr %40, i64 0, i64 0
  %1698 = call i32 @memcmp(ptr noundef %1696, ptr noundef %1697, i64 noundef 13) #13
  %1699 = icmp eq i32 %1698, 0
  br i1 %1699, label %1753, label %1700

1700:                                             ; preds = %1693
  br label %1701

1701:                                             ; preds = %1700
  br label %1702

1702:                                             ; preds = %1701
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %1703 = call ptr @__errno_location() #11
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  store i32 %1704, ptr %44, align 4, !tbaa !5
  %1705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1706 = call i32 @s2n_print_stacktrace(ptr noundef %1705)
  %1707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1708 = trunc i8 %1707 to i1
  br i1 %1708, label %1709, label %1731

1709:                                             ; preds = %1702
  %1710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1711 = call i32 @fileno(ptr noundef %1710) #10
  %1712 = call i32 @isatty(i32 noundef %1711) #10
  %1713 = icmp ne i32 %1712, 0
  br i1 %1713, label %1714, label %1731

1714:                                             ; preds = %1709
  %1715 = load i32, ptr %44, align 4, !tbaa !5
  %1716 = call ptr @__errno_location() #11
  store i32 %1715, ptr %1716, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = load i32, ptr @test_count, align 4, !tbaa !5
  %1719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror(i32 noundef %1720, ptr noundef @.str.4)
  %1722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call ptr @s2n_strerror_debug(i32 noundef %1723, ptr noundef @.str.4)
  %1725 = call ptr @__errno_location() #11
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @strerror(i32 noundef %1726) #10
  %1728 = call ptr @__errno_location() #11
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1717, ptr noundef @.str.2, i32 noundef %1718, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 108, ptr noundef %1721, ptr noundef %1724, ptr noundef %1727, i32 noundef %1729) #10
  br label %1748

1731:                                             ; preds = %1709, %1702
  %1732 = load i32, ptr %44, align 4, !tbaa !5
  %1733 = call ptr @__errno_location() #11
  store i32 %1732, ptr %1733, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = load i32, ptr @test_count, align 4, !tbaa !5
  %1736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror(i32 noundef %1737, ptr noundef @.str.4)
  %1739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror_debug(i32 noundef %1740, ptr noundef @.str.4)
  %1742 = call ptr @__errno_location() #11
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @strerror(i32 noundef %1743) #10
  %1745 = call ptr @__errno_location() #11
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1734, ptr noundef @.str.5, i32 noundef %1735, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 108, ptr noundef %1738, ptr noundef %1741, ptr noundef %1744, i32 noundef %1746) #10
  br label %1748

1748:                                             ; preds = %1731, %1714
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %1749

1749:                                             ; preds = %1748
  br label %1750

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

1751:                                             ; No predecessors!
  br label %1752

1752:                                             ; preds = %1751
  br label %1753

1753:                                             ; preds = %1752, %1693
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

1755:                                             ; preds = %1754
  br label %1756

1756:                                             ; preds = %1755
  br label %1757

1757:                                             ; preds = %1756
  br label %1758

1758:                                             ; preds = %1757
  %1759 = load i32, ptr @test_count, align 4, !tbaa !5
  %1760 = add nsw i32 %1759, 1
  store i32 %1760, ptr @test_count, align 4, !tbaa !5
  %1761 = load i8, ptr @session_ticket_counter, align 1, !tbaa !15
  %1762 = zext i8 %1761 to i32
  %1763 = load i8, ptr %38, align 1, !tbaa !15
  %1764 = zext i8 %1763 to i32
  %1765 = icmp eq i32 %1762, %1764
  br i1 %1765, label %1819, label %1766

1766:                                             ; preds = %1758
  br label %1767

1767:                                             ; preds = %1766
  br label %1768

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

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

1780:                                             ; preds = %1775
  %1781 = load i32, ptr %45, align 4, !tbaa !5
  %1782 = call ptr @__errno_location() #11
  store i32 %1781, ptr %1782, align 4, !tbaa !5
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @s2n_strerror(i32 noundef %1786, ptr noundef @.str.4)
  %1788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror_debug(i32 noundef %1789, ptr noundef @.str.4)
  %1791 = call ptr @__errno_location() #11
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @strerror(i32 noundef %1792) #10
  %1794 = call ptr @__errno_location() #11
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1783, ptr noundef @.str.2, i32 noundef %1784, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1787, ptr noundef %1790, ptr noundef %1793, i32 noundef %1795) #10
  br label %1814

1797:                                             ; preds = %1775, %1768
  %1798 = load i32, ptr %45, align 4, !tbaa !5
  %1799 = call ptr @__errno_location() #11
  store i32 %1798, ptr %1799, align 4, !tbaa !5
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = load i32, ptr @test_count, align 4, !tbaa !5
  %1802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = call ptr @s2n_strerror(i32 noundef %1803, ptr noundef @.str.4)
  %1805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = call ptr @s2n_strerror_debug(i32 noundef %1806, ptr noundef @.str.4)
  %1808 = call ptr @__errno_location() #11
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @strerror(i32 noundef %1809) #10
  %1811 = call ptr @__errno_location() #11
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1800, ptr noundef @.str.5, i32 noundef %1801, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1804, ptr noundef %1807, ptr noundef %1810, i32 noundef %1812) #10
  br label %1814

1814:                                             ; preds = %1797, %1780
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1815

1815:                                             ; preds = %1814
  br label %1816

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

1817:                                             ; No predecessors!
  br label %1818

1818:                                             ; preds = %1817
  br label %1819

1819:                                             ; preds = %1818, %1758
  br label %1820

1820:                                             ; preds = %1819
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821
  %1823 = load i32, ptr @test_count, align 4, !tbaa !5
  %1824 = add nsw i32 %1823, 1
  store i32 %1824, ptr @test_count, align 4, !tbaa !5
  %1825 = load ptr, ptr %15, align 8, !tbaa !9
  %1826 = call i32 @s2n_config_free(ptr noundef %1825)
  %1827 = icmp eq i32 %1826, -1
  br i1 %1827, label %1828, label %1881

1828:                                             ; preds = %1822
  br label %1829

1829:                                             ; preds = %1828
  br label %1830

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

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

1842:                                             ; preds = %1837
  %1843 = load i32, ptr %46, align 4, !tbaa !5
  %1844 = call ptr @__errno_location() #11
  store i32 %1843, ptr %1844, align 4, !tbaa !5
  %1845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1846 = load i32, ptr @test_count, align 4, !tbaa !5
  %1847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  %1849 = call ptr @s2n_strerror(i32 noundef %1848, ptr noundef @.str.4)
  %1850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1851 = load i32, ptr %1850, align 4, !tbaa !5
  %1852 = call ptr @s2n_strerror_debug(i32 noundef %1851, ptr noundef @.str.4)
  %1853 = call ptr @__errno_location() #11
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = call ptr @strerror(i32 noundef %1854) #10
  %1856 = call ptr @__errno_location() #11
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1845, ptr noundef @.str.2, i32 noundef %1846, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1849, ptr noundef %1852, ptr noundef %1855, i32 noundef %1857) #10
  br label %1876

1859:                                             ; preds = %1837, %1830
  %1860 = load i32, ptr %46, align 4, !tbaa !5
  %1861 = call ptr @__errno_location() #11
  store i32 %1860, ptr %1861, align 4, !tbaa !5
  %1862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1863 = load i32, ptr @test_count, align 4, !tbaa !5
  %1864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1865 = load i32, ptr %1864, align 4, !tbaa !5
  %1866 = call ptr @s2n_strerror(i32 noundef %1865, ptr noundef @.str.4)
  %1867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1868 = load i32, ptr %1867, align 4, !tbaa !5
  %1869 = call ptr @s2n_strerror_debug(i32 noundef %1868, ptr noundef @.str.4)
  %1870 = call ptr @__errno_location() #11
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = call ptr @strerror(i32 noundef %1871) #10
  %1873 = call ptr @__errno_location() #11
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1862, ptr noundef @.str.5, i32 noundef %1863, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1866, ptr noundef %1869, ptr noundef %1872, i32 noundef %1874) #10
  br label %1876

1876:                                             ; preds = %1859, %1842
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %1877

1877:                                             ; preds = %1876
  br label %1878

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

1879:                                             ; No predecessors!
  br label %1880

1880:                                             ; preds = %1879
  br label %1881

1881:                                             ; preds = %1880, %1822
  br label %1882

1882:                                             ; preds = %1881
  br label %1883

1883:                                             ; preds = %1882
  br label %1884

1884:                                             ; preds = %1883
  %1885 = load i32, ptr @test_count, align 4, !tbaa !5
  %1886 = add nsw i32 %1885, 1
  store i32 %1886, ptr @test_count, align 4, !tbaa !5
  %1887 = load ptr, ptr %17, align 8, !tbaa !9
  %1888 = call i32 @s2n_config_free(ptr noundef %1887)
  %1889 = icmp eq i32 %1888, -1
  br i1 %1889, label %1890, label %1943

1890:                                             ; preds = %1884
  br label %1891

1891:                                             ; preds = %1890
  br label %1892

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

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

1904:                                             ; preds = %1899
  %1905 = load i32, ptr %47, align 4, !tbaa !5
  %1906 = call ptr @__errno_location() #11
  store i32 %1905, ptr %1906, align 4, !tbaa !5
  %1907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1908 = load i32, ptr @test_count, align 4, !tbaa !5
  %1909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1910 = load i32, ptr %1909, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror(i32 noundef %1910, ptr noundef @.str.4)
  %1912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1913 = load i32, ptr %1912, align 4, !tbaa !5
  %1914 = call ptr @s2n_strerror_debug(i32 noundef %1913, ptr noundef @.str.4)
  %1915 = call ptr @__errno_location() #11
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call ptr @strerror(i32 noundef %1916) #10
  %1918 = call ptr @__errno_location() #11
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1907, ptr noundef @.str.2, i32 noundef %1908, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1911, ptr noundef %1914, ptr noundef %1917, i32 noundef %1919) #10
  br label %1938

1921:                                             ; preds = %1899, %1892
  %1922 = load i32, ptr %47, align 4, !tbaa !5
  %1923 = call ptr @__errno_location() #11
  store i32 %1922, ptr %1923, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = load i32, ptr @test_count, align 4, !tbaa !5
  %1926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror(i32 noundef %1927, ptr noundef @.str.4)
  %1929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call ptr @s2n_strerror_debug(i32 noundef %1930, ptr noundef @.str.4)
  %1932 = call ptr @__errno_location() #11
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call ptr @strerror(i32 noundef %1933) #10
  %1935 = call ptr @__errno_location() #11
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1924, ptr noundef @.str.5, i32 noundef %1925, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1928, ptr noundef %1931, ptr noundef %1934, i32 noundef %1936) #10
  br label %1938

1938:                                             ; preds = %1921, %1904
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %1939

1939:                                             ; preds = %1938
  br label %1940

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

1941:                                             ; No predecessors!
  br label %1942

1942:                                             ; preds = %1941
  br label %1943

1943:                                             ; preds = %1942, %1884
  br label %1944

1944:                                             ; preds = %1943
  br label %1945

1945:                                             ; preds = %1944
  br label %1946

1946:                                             ; preds = %1945
  %1947 = load i32, ptr @test_count, align 4, !tbaa !5
  %1948 = add nsw i32 %1947, 1
  store i32 %1948, ptr @test_count, align 4, !tbaa !5
  %1949 = load ptr, ptr %11, align 8, !tbaa !9
  %1950 = call i32 @s2n_connection_free(ptr noundef %1949)
  %1951 = icmp eq i32 %1950, -1
  br i1 %1951, label %1952, label %2005

1952:                                             ; preds = %1946
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

1954:                                             ; preds = %1953
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %1955 = call ptr @__errno_location() #11
  %1956 = load i32, ptr %1955, align 4, !tbaa !5
  store i32 %1956, ptr %48, align 4, !tbaa !5
  %1957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1958 = call i32 @s2n_print_stacktrace(ptr noundef %1957)
  %1959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1960 = trunc i8 %1959 to i1
  br i1 %1960, label %1961, label %1983

1961:                                             ; preds = %1954
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = call i32 @fileno(ptr noundef %1962) #10
  %1964 = call i32 @isatty(i32 noundef %1963) #10
  %1965 = icmp ne i32 %1964, 0
  br i1 %1965, label %1966, label %1983

1966:                                             ; preds = %1961
  %1967 = load i32, ptr %48, align 4, !tbaa !5
  %1968 = call ptr @__errno_location() #11
  store i32 %1967, ptr %1968, align 4, !tbaa !5
  %1969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1970 = load i32, ptr @test_count, align 4, !tbaa !5
  %1971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror(i32 noundef %1972, ptr noundef @.str.4)
  %1974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1975 = load i32, ptr %1974, align 4, !tbaa !5
  %1976 = call ptr @s2n_strerror_debug(i32 noundef %1975, ptr noundef @.str.4)
  %1977 = call ptr @__errno_location() #11
  %1978 = load i32, ptr %1977, align 4, !tbaa !5
  %1979 = call ptr @strerror(i32 noundef %1978) #10
  %1980 = call ptr @__errno_location() #11
  %1981 = load i32, ptr %1980, align 4, !tbaa !5
  %1982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1969, ptr noundef @.str.2, i32 noundef %1970, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1973, ptr noundef %1976, ptr noundef %1979, i32 noundef %1981) #10
  br label %2000

1983:                                             ; preds = %1961, %1954
  %1984 = load i32, ptr %48, align 4, !tbaa !5
  %1985 = call ptr @__errno_location() #11
  store i32 %1984, ptr %1985, align 4, !tbaa !5
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = load i32, ptr @test_count, align 4, !tbaa !5
  %1988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call ptr @s2n_strerror(i32 noundef %1989, ptr noundef @.str.4)
  %1991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  %1993 = call ptr @s2n_strerror_debug(i32 noundef %1992, ptr noundef @.str.4)
  %1994 = call ptr @__errno_location() #11
  %1995 = load i32, ptr %1994, align 4, !tbaa !5
  %1996 = call ptr @strerror(i32 noundef %1995) #10
  %1997 = call ptr @__errno_location() #11
  %1998 = load i32, ptr %1997, align 4, !tbaa !5
  %1999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1986, ptr noundef @.str.5, i32 noundef %1987, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1990, ptr noundef %1993, ptr noundef %1996, i32 noundef %1998) #10
  br label %2000

2000:                                             ; preds = %1983, %1966
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

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

2003:                                             ; No predecessors!
  br label %2004

2004:                                             ; preds = %2003
  br label %2005

2005:                                             ; preds = %2004, %1946
  br label %2006

2006:                                             ; preds = %2005
  br label %2007

2007:                                             ; preds = %2006
  br label %2008

2008:                                             ; preds = %2007
  %2009 = load i32, ptr @test_count, align 4, !tbaa !5
  %2010 = add nsw i32 %2009, 1
  store i32 %2010, ptr @test_count, align 4, !tbaa !5
  %2011 = load ptr, ptr %12, align 8, !tbaa !9
  %2012 = call i32 @s2n_connection_free(ptr noundef %2011)
  %2013 = icmp eq i32 %2012, -1
  br i1 %2013, label %2014, label %2067

2014:                                             ; preds = %2008
  br label %2015

2015:                                             ; preds = %2014
  br label %2016

2016:                                             ; preds = %2015
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %2017 = call ptr @__errno_location() #11
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  store i32 %2018, ptr %49, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = call i32 @s2n_print_stacktrace(ptr noundef %2019)
  %2021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2022 = trunc i8 %2021 to i1
  br i1 %2022, label %2023, label %2045

2023:                                             ; preds = %2016
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = call i32 @fileno(ptr noundef %2024) #10
  %2026 = call i32 @isatty(i32 noundef %2025) #10
  %2027 = icmp ne i32 %2026, 0
  br i1 %2027, label %2028, label %2045

2028:                                             ; preds = %2023
  %2029 = load i32, ptr %49, align 4, !tbaa !5
  %2030 = call ptr @__errno_location() #11
  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() #11
  %2040 = load i32, ptr %2039, align 4, !tbaa !5
  %2041 = call ptr @strerror(i32 noundef %2040) #10
  %2042 = call ptr @__errno_location() #11
  %2043 = load i32, ptr %2042, align 4, !tbaa !5
  %2044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2031, ptr noundef @.str.2, i32 noundef %2032, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2035, ptr noundef %2038, ptr noundef %2041, i32 noundef %2043) #10
  br label %2062

2045:                                             ; preds = %2023, %2016
  %2046 = load i32, ptr %49, align 4, !tbaa !5
  %2047 = call ptr @__errno_location() #11
  store i32 %2046, ptr %2047, align 4, !tbaa !5
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %2050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror(i32 noundef %2051, ptr noundef @.str.4)
  %2053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2054 = load i32, ptr %2053, align 4, !tbaa !5
  %2055 = call ptr @s2n_strerror_debug(i32 noundef %2054, ptr noundef @.str.4)
  %2056 = call ptr @__errno_location() #11
  %2057 = load i32, ptr %2056, align 4, !tbaa !5
  %2058 = call ptr @strerror(i32 noundef %2057) #10
  %2059 = call ptr @__errno_location() #11
  %2060 = load i32, ptr %2059, align 4, !tbaa !5
  %2061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2048, ptr noundef @.str.5, i32 noundef %2049, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2052, ptr noundef %2055, ptr noundef %2058, i32 noundef %2060) #10
  br label %2062

2062:                                             ; preds = %2045, %2028
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2063

2063:                                             ; preds = %2062
  br label %2064

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

2065:                                             ; No predecessors!
  br label %2066

2066:                                             ; preds = %2065
  br label %2067

2067:                                             ; preds = %2066, %2008
  br label %2068

2068:                                             ; preds = %2067
  br label %2069

2069:                                             ; preds = %2068
  br label %2070

2070:                                             ; preds = %2069
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = add nsw i32 %2071, 1
  store i32 %2072, ptr @test_count, align 4, !tbaa !5
  %2073 = load ptr, ptr %19, align 8, !tbaa !9
  %2074 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2073)
  %2075 = icmp eq i32 %2074, -1
  br i1 %2075, label %2076, label %2129

2076:                                             ; preds = %2070
  br label %2077

2077:                                             ; preds = %2076
  br label %2078

2078:                                             ; preds = %2077
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %2079 = call ptr @__errno_location() #11
  %2080 = load i32, ptr %2079, align 4, !tbaa !5
  store i32 %2080, ptr %50, align 4, !tbaa !5
  %2081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2082 = call i32 @s2n_print_stacktrace(ptr noundef %2081)
  %2083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2084 = trunc i8 %2083 to i1
  br i1 %2084, label %2085, label %2107

2085:                                             ; preds = %2078
  %2086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2087 = call i32 @fileno(ptr noundef %2086) #10
  %2088 = call i32 @isatty(i32 noundef %2087) #10
  %2089 = icmp ne i32 %2088, 0
  br i1 %2089, label %2090, label %2107

2090:                                             ; preds = %2085
  %2091 = load i32, ptr %50, align 4, !tbaa !5
  %2092 = call ptr @__errno_location() #11
  store i32 %2091, ptr %2092, align 4, !tbaa !5
  %2093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2094 = load i32, ptr @test_count, align 4, !tbaa !5
  %2095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call ptr @s2n_strerror(i32 noundef %2096, ptr noundef @.str.4)
  %2098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror_debug(i32 noundef %2099, ptr noundef @.str.4)
  %2101 = call ptr @__errno_location() #11
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call ptr @strerror(i32 noundef %2102) #10
  %2104 = call ptr @__errno_location() #11
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2093, ptr noundef @.str.2, i32 noundef %2094, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2097, ptr noundef %2100, ptr noundef %2103, i32 noundef %2105) #10
  br label %2124

2107:                                             ; preds = %2085, %2078
  %2108 = load i32, ptr %50, align 4, !tbaa !5
  %2109 = call ptr @__errno_location() #11
  store i32 %2108, ptr %2109, align 4, !tbaa !5
  %2110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2111 = load i32, ptr @test_count, align 4, !tbaa !5
  %2112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2113 = load i32, ptr %2112, align 4, !tbaa !5
  %2114 = call ptr @s2n_strerror(i32 noundef %2113, ptr noundef @.str.4)
  %2115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror_debug(i32 noundef %2116, ptr noundef @.str.4)
  %2118 = call ptr @__errno_location() #11
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @strerror(i32 noundef %2119) #10
  %2121 = call ptr @__errno_location() #11
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2110, ptr noundef @.str.5, i32 noundef %2111, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2114, ptr noundef %2117, ptr noundef %2120, i32 noundef %2122) #10
  br label %2124

2124:                                             ; preds = %2107, %2090
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2125

2125:                                             ; preds = %2124
  br label %2126

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

2127:                                             ; No predecessors!
  br label %2128

2128:                                             ; preds = %2127
  br label %2129

2129:                                             ; preds = %2128, %2070
  br label %2130

2130:                                             ; preds = %2129
  br label %2131

2131:                                             ; preds = %2130
  call void @llvm.lifetime.end.p0(i64 13, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 13, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #10
  %2132 = call i32 @s2n_stuffer_free(ptr noundef %32)
  call void @llvm.lifetime.end.p0(i64 40, ptr %32) #10
  %2133 = call i32 @s2n_stuffer_free(ptr noundef %31)
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  br label %2134

2134:                                             ; preds = %2131
  br label %2135

2135:                                             ; preds = %2134
  %2136 = call i32 @s2n_cleanup()
  %2137 = icmp eq i32 %2136, -1
  br i1 %2137, label %2138, label %2189

2138:                                             ; preds = %2135
  br label %2139

2139:                                             ; preds = %2138
  br label %2140

2140:                                             ; preds = %2139
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2141 = call ptr @__errno_location() #11
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  store i32 %2142, ptr %51, align 4, !tbaa !5
  %2143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2144 = call i32 @s2n_print_stacktrace(ptr noundef %2143)
  %2145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2146 = trunc i8 %2145 to i1
  br i1 %2146, label %2147, label %2169

2147:                                             ; preds = %2140
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = call i32 @fileno(ptr noundef %2148) #10
  %2150 = call i32 @isatty(i32 noundef %2149) #10
  %2151 = icmp ne i32 %2150, 0
  br i1 %2151, label %2152, label %2169

2152:                                             ; preds = %2147
  %2153 = load i32, ptr %51, align 4, !tbaa !5
  %2154 = call ptr @__errno_location() #11
  store i32 %2153, ptr %2154, align 4, !tbaa !5
  %2155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2156 = load i32, ptr @test_count, align 4, !tbaa !5
  %2157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror(i32 noundef %2158, ptr noundef @.str.4)
  %2160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call ptr @s2n_strerror_debug(i32 noundef %2161, ptr noundef @.str.4)
  %2163 = call ptr @__errno_location() #11
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call ptr @strerror(i32 noundef %2164) #10
  %2166 = call ptr @__errno_location() #11
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2155, ptr noundef @.str.2, i32 noundef %2156, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2159, ptr noundef %2162, ptr noundef %2165, i32 noundef %2167) #10
  br label %2186

2169:                                             ; preds = %2147, %2140
  %2170 = load i32, ptr %51, align 4, !tbaa !5
  %2171 = call ptr @__errno_location() #11
  store i32 %2170, ptr %2171, align 4, !tbaa !5
  %2172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2173 = load i32, ptr @test_count, align 4, !tbaa !5
  %2174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call ptr @s2n_strerror(i32 noundef %2175, ptr noundef @.str.4)
  %2177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror_debug(i32 noundef %2178, ptr noundef @.str.4)
  %2180 = call ptr @__errno_location() #11
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call ptr @strerror(i32 noundef %2181) #10
  %2183 = call ptr @__errno_location() #11
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  %2185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2172, ptr noundef @.str.5, i32 noundef %2173, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2176, ptr noundef %2179, ptr noundef %2182, i32 noundef %2184) #10
  br label %2186

2186:                                             ; preds = %2169, %2152
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2187

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

2188:                                             ; No predecessors!
  br label %2189

2189:                                             ; preds = %2188, %2135
  br label %2190

2190:                                             ; preds = %2189
  br label %2191

2191:                                             ; preds = %2190
  br label %2192

2192:                                             ; preds = %2191
  %2193 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2194 = icmp eq i32 %2193, -1
  br i1 %2194, label %2195, label %2246

2195:                                             ; preds = %2192
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

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

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

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

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

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

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

2245:                                             ; No predecessors!
  br label %2246

2246:                                             ; preds = %2245, %2192
  br label %2247

2247:                                             ; preds = %2246
  %2248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2249 = trunc i8 %2248 to i1
  br i1 %2249, label %2250, label %2266

2250:                                             ; preds = %2247
  %2251 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2252 = call i32 @fileno(ptr noundef %2251) #10
  %2253 = call i32 @isatty(i32 noundef %2252) #10
  %2254 = icmp ne i32 %2253, 0
  br i1 %2254, label %2255, label %2266

2255:                                             ; preds = %2250
  %2256 = load i32, ptr @test_count, align 4, !tbaa !5
  %2257 = icmp ne i32 %2256, 0
  br i1 %2257, label %2258, label %2262

2258:                                             ; preds = %2255
  %2259 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2260 = load i32, ptr @test_count, align 4, !tbaa !5
  %2261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2259, ptr noundef @.str.10, i32 noundef %2260) #10
  br label %2265

2262:                                             ; preds = %2255
  %2263 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef @.str.11) #10
  br label %2265

2265:                                             ; preds = %2262, %2258
  br label %2277

2266:                                             ; preds = %2250, %2247
  %2267 = load i32, ptr @test_count, align 4, !tbaa !5
  %2268 = icmp ne i32 %2267, 0
  br i1 %2268, label %2269, label %2273

2269:                                             ; preds = %2266
  %2270 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2270, ptr noundef @.str.12, i32 noundef %2271) #10
  br label %2276

2273:                                             ; preds = %2266
  %2274 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2274, ptr noundef @.str.13) #10
  br label %2276

2276:                                             ; preds = %2273, %2269
  br label %2277

2277:                                             ; preds = %2276, %2265
  store i32 0, ptr %3, align 4
  br label %2279

2278:                                             ; No predecessors!
  br label %2279

2279:                                             ; preds = %2278, %2277, %376
  %2280 = load i32, ptr %3, align 4
  ret i32 %2280
}

; 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 zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_cleanup() #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare ptr @s2n_config_new() #2

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

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

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

declare i32 @s2n_resumption_test_ticket_key_setup(ptr noundef) #2

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

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

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

declare i32 @s2n_config_disable_x509_verification(ptr noundef) #2

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

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

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

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

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

declare i32 @s2n_config_free(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

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

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

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


; 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
@session_ticket_counter = 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 [92 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 [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [91 x i8], align 1
@__const.main.message = external hidden unnamed_addr constant [13 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [71 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 ptr, align 8
  %4 = alloca %struct.s2n_stuffer, align 8
  %5 = alloca %struct.s2n_stuffer, align 8
  %6 = alloca i32, align 4
  %7 = alloca [13 x i8], align 1
  %8 = alloca [13 x i8], align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %9 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %11 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12 = tail call i32 @fflush(ptr noundef %11)
  %13 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %14 = icmp eq i32 %13, -1
  br i1 %14, label %15, label %39

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

22:                                               ; preds = %15
  %23 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24 = tail call i32 @fileno(ptr noundef %23) #11
  %25 = tail call i32 @isatty(i32 noundef %24) #11
  %.not144 = icmp eq i32 %25, 0
  br i1 %.not144, label %26, label %27

26:                                               ; preds = %22, %15
  br label %27

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

39:                                               ; preds = %2
  %40 = load i32, ptr @test_count, align 4, !tbaa !5
  %41 = add nsw i32 %40, 1
  store i32 %41, ptr @test_count, align 4, !tbaa !5
  %42 = tail call i32 @s2n_enable_atexit() #11
  %43 = icmp eq i32 %42, -1
  br i1 %43, label %44, label %68

44:                                               ; preds = %39
  %45 = tail call ptr @__errno_location() #12
  %46 = load i32, ptr %45, align 4, !tbaa !5
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @s2n_print_stacktrace(ptr noundef %47) #11
  %49 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %50 = trunc nuw i8 %49 to i1
  br i1 %50, label %51, label %55

51:                                               ; preds = %44
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = tail call i32 @fileno(ptr noundef %52) #11
  %54 = tail call i32 @isatty(i32 noundef %53) #11
  %.not143 = icmp eq i32 %54, 0
  br i1 %.not143, label %55, label %56

55:                                               ; preds = %51, %44
  br label %56

56:                                               ; preds = %51, %55
  %.str.5.sink155 = phi ptr [ @.str.5, %55 ], [ @.str.2, %51 ]
  store i32 %46, ptr %45, align 4, !tbaa !5
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = load i32, ptr @test_count, align 4, !tbaa !5
  %59 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %60 = load i32, ptr %59, align 4, !tbaa !5
  %61 = tail call ptr @s2n_strerror(i32 noundef %60, ptr noundef nonnull @.str.4) #11
  %62 = load i32, ptr %59, align 4, !tbaa !5
  %63 = tail call ptr @s2n_strerror_debug(i32 noundef %62, ptr noundef nonnull @.str.4) #11
  %64 = load i32, ptr %45, align 4, !tbaa !5
  %65 = tail call ptr @strerror(i32 noundef %64) #11
  %66 = load i32, ptr %45, align 4, !tbaa !5
  %67 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %57, ptr noundef nonnull %.str.5.sink155, i32 noundef %58, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %61, ptr noundef %63, ptr noundef %65, i32 noundef %66) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

68:                                               ; preds = %39
  %69 = tail call i32 @s2n_init() #11
  %70 = icmp eq i32 %69, -1
  br i1 %70, label %71, label %95

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

78:                                               ; preds = %71
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = tail call i32 @fileno(ptr noundef %79) #11
  %81 = tail call i32 @isatty(i32 noundef %80) #11
  %.not142 = icmp eq i32 %81, 0
  br i1 %.not142, label %82, label %83

82:                                               ; preds = %78, %71
  br label %83

83:                                               ; preds = %78, %82
  %.str.5.sink166 = phi ptr [ @.str.5, %82 ], [ @.str.2, %78 ]
  store i32 %73, ptr %72, align 4, !tbaa !5
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = load i32, ptr @test_count, align 4, !tbaa !5
  %86 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %87 = load i32, ptr %86, align 4, !tbaa !5
  %88 = tail call ptr @s2n_strerror(i32 noundef %87, ptr noundef nonnull @.str.4) #11
  %89 = load i32, ptr %86, align 4, !tbaa !5
  %90 = tail call ptr @s2n_strerror_debug(i32 noundef %89, ptr noundef nonnull @.str.4) #11
  %91 = load i32, ptr %72, align 4, !tbaa !5
  %92 = tail call ptr @strerror(i32 noundef %91) #11
  %93 = load i32, ptr %72, align 4, !tbaa !5
  %94 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %84, ptr noundef nonnull %.str.5.sink166, i32 noundef %85, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %88, ptr noundef %90, ptr noundef %92, i32 noundef %93) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

95:                                               ; preds = %68
  %96 = tail call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %96, label %172, label %97

97:                                               ; preds = %95
  %98 = tail call i32 @s2n_cleanup() #11
  %99 = icmp eq i32 %98, -1
  br i1 %99, label %100, label %124

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

107:                                              ; preds = %100
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = tail call i32 @fileno(ptr noundef %108) #11
  %110 = tail call i32 @isatty(i32 noundef %109) #11
  %.not108 = icmp eq i32 %110, 0
  br i1 %.not108, label %111, label %112

111:                                              ; preds = %107, %100
  br label %112

112:                                              ; preds = %107, %111
  %.str.5.sink177 = phi ptr [ @.str.5, %111 ], [ @.str.2, %107 ]
  store i32 %102, ptr %101, align 4, !tbaa !5
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = load i32, ptr @test_count, align 4, !tbaa !5
  %115 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %117 = tail call ptr @s2n_strerror(i32 noundef %116, ptr noundef nonnull @.str.4) #11
  %118 = load i32, ptr %115, align 4, !tbaa !5
  %119 = tail call ptr @s2n_strerror_debug(i32 noundef %118, ptr noundef nonnull @.str.4) #11
  %120 = load i32, ptr %101, align 4, !tbaa !5
  %121 = tail call ptr @strerror(i32 noundef %120) #11
  %122 = load i32, ptr %101, align 4, !tbaa !5
  %123 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %113, ptr noundef nonnull %.str.5.sink177, i32 noundef %114, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %117, ptr noundef %119, ptr noundef %121, i32 noundef %122) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

124:                                              ; preds = %97
  %125 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %126 = icmp eq i32 %125, -1
  br i1 %126, label %127, label %151

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

134:                                              ; preds = %127
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = tail call i32 @fileno(ptr noundef %135) #11
  %137 = tail call i32 @isatty(i32 noundef %136) #11
  %.not107 = icmp eq i32 %137, 0
  br i1 %.not107, label %138, label %139

138:                                              ; preds = %134, %127
  br label %139

139:                                              ; preds = %134, %138
  %.str.5.sink188 = phi ptr [ @.str.5, %138 ], [ @.str.2, %134 ]
  store i32 %129, ptr %128, align 4, !tbaa !5
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = load i32, ptr @test_count, align 4, !tbaa !5
  %142 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = tail call ptr @s2n_strerror(i32 noundef %143, ptr noundef nonnull @.str.4) #11
  %145 = load i32, ptr %142, align 4, !tbaa !5
  %146 = tail call ptr @s2n_strerror_debug(i32 noundef %145, ptr noundef nonnull @.str.4) #11
  %147 = load i32, ptr %128, align 4, !tbaa !5
  %148 = tail call ptr @strerror(i32 noundef %147) #11
  %149 = load i32, ptr %128, align 4, !tbaa !5
  %150 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %140, ptr noundef nonnull %.str.5.sink188, i32 noundef %141, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %144, ptr noundef %146, ptr noundef %148, i32 noundef %149) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

151:                                              ; preds = %124
  %152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %153 = trunc nuw i8 %152 to i1
  br i1 %153, label %154, label %165

154:                                              ; preds = %151
  %155 = load ptr, ptr @stdout, align 8, !tbaa !9
  %156 = tail call i32 @fileno(ptr noundef %155) #11
  %157 = tail call i32 @isatty(i32 noundef %156) #11
  %.not = icmp eq i32 %157, 0
  br i1 %.not, label %165, label %158

158:                                              ; preds = %154
  %159 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not106 = icmp eq i32 %159, 0
  %160 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not106, label %163, label %161

161:                                              ; preds = %158
  %162 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %160, ptr noundef nonnull @.str.10, i32 noundef %159) #11
  br label %1059

163:                                              ; preds = %158
  %164 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %160, ptr noundef nonnull @.str.11) #11
  br label %1059

165:                                              ; preds = %154, %151
  %166 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not105 = icmp eq i32 %166, 0
  %167 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not105, label %170, label %168

168:                                              ; preds = %165
  %169 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %167, ptr noundef nonnull @.str.12, i32 noundef %166) #11
  br label %1059

170:                                              ; preds = %165
  %171 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %167, ptr noundef nonnull @.str.13) #11
  br label %1059

172:                                              ; preds = %95
  %173 = tail call ptr @s2n_connection_new(i32 noundef 0) #11
  %174 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %175 = load i32, ptr @test_count, align 4, !tbaa !5
  %176 = add nsw i32 %175, 1
  store i32 %176, ptr @test_count, align 4, !tbaa !5
  %177 = icmp eq ptr %173, null
  br i1 %177, label %178, label %202

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

185:                                              ; preds = %178
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = tail call i32 @fileno(ptr noundef %186) #11
  %188 = tail call i32 @isatty(i32 noundef %187) #11
  %.not141 = icmp eq i32 %188, 0
  br i1 %.not141, label %189, label %190

189:                                              ; preds = %185, %178
  br label %190

190:                                              ; preds = %185, %189
  %.str.5.sink199 = phi ptr [ @.str.5, %189 ], [ @.str.2, %185 ]
  store i32 %180, ptr %179, align 4, !tbaa !5
  %191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %192 = load i32, ptr @test_count, align 4, !tbaa !5
  %193 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = tail call ptr @s2n_strerror(i32 noundef %194, ptr noundef nonnull @.str.4) #11
  %196 = load i32, ptr %193, align 4, !tbaa !5
  %197 = tail call ptr @s2n_strerror_debug(i32 noundef %196, ptr noundef nonnull @.str.4) #11
  %198 = load i32, ptr %179, align 4, !tbaa !5
  %199 = tail call ptr @strerror(i32 noundef %198) #11
  %200 = load i32, ptr %179, align 4, !tbaa !5
  %201 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %191, ptr noundef nonnull %.str.5.sink199, i32 noundef %192, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %195, ptr noundef %197, ptr noundef %199, i32 noundef %200) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

202:                                              ; preds = %172
  %203 = add nsw i32 %175, 2
  store i32 %203, ptr @test_count, align 4, !tbaa !5
  %204 = icmp eq ptr %174, null
  br i1 %204, label %205, label %229

205:                                              ; preds = %202
  %206 = tail call ptr @__errno_location() #12
  %207 = load i32, ptr %206, align 4, !tbaa !5
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = tail call i32 @s2n_print_stacktrace(ptr noundef %208) #11
  %210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %211 = trunc nuw i8 %210 to i1
  br i1 %211, label %212, label %216

212:                                              ; preds = %205
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = tail call i32 @fileno(ptr noundef %213) #11
  %215 = tail call i32 @isatty(i32 noundef %214) #11
  %.not140 = icmp eq i32 %215, 0
  br i1 %.not140, label %216, label %217

216:                                              ; preds = %212, %205
  br label %217

217:                                              ; preds = %212, %216
  %.str.5.sink210 = phi ptr [ @.str.5, %216 ], [ @.str.2, %212 ]
  store i32 %207, ptr %206, align 4, !tbaa !5
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = load i32, ptr @test_count, align 4, !tbaa !5
  %220 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = tail call ptr @s2n_strerror(i32 noundef %221, ptr noundef nonnull @.str.4) #11
  %223 = load i32, ptr %220, align 4, !tbaa !5
  %224 = tail call ptr @s2n_strerror_debug(i32 noundef %223, ptr noundef nonnull @.str.4) #11
  %225 = load i32, ptr %206, align 4, !tbaa !5
  %226 = tail call ptr @strerror(i32 noundef %225) #11
  %227 = load i32, ptr %206, align 4, !tbaa !5
  %228 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %218, ptr noundef nonnull %.str.5.sink210, i32 noundef %219, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %222, ptr noundef %224, ptr noundef %226, i32 noundef %227) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

229:                                              ; preds = %202
  %230 = tail call ptr @s2n_config_new() #11
  %231 = load i32, ptr @test_count, align 4, !tbaa !5
  %232 = add nsw i32 %231, 1
  store i32 %232, ptr @test_count, align 4, !tbaa !5
  %233 = icmp eq ptr %230, null
  br i1 %233, label %234, label %258

234:                                              ; preds = %229
  %235 = tail call ptr @__errno_location() #12
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %238 = tail call i32 @s2n_print_stacktrace(ptr noundef %237) #11
  %239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %240 = trunc nuw i8 %239 to i1
  br i1 %240, label %241, label %245

241:                                              ; preds = %234
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = tail call i32 @fileno(ptr noundef %242) #11
  %244 = tail call i32 @isatty(i32 noundef %243) #11
  %.not139 = icmp eq i32 %244, 0
  br i1 %.not139, label %245, label %246

245:                                              ; preds = %241, %234
  br label %246

246:                                              ; preds = %241, %245
  %.str.5.sink221 = phi ptr [ @.str.5, %245 ], [ @.str.2, %241 ]
  store i32 %236, ptr %235, align 4, !tbaa !5
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = load i32, ptr @test_count, align 4, !tbaa !5
  %249 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = tail call ptr @s2n_strerror(i32 noundef %250, ptr noundef nonnull @.str.4) #11
  %252 = load i32, ptr %249, align 4, !tbaa !5
  %253 = tail call ptr @s2n_strerror_debug(i32 noundef %252, ptr noundef nonnull @.str.4) #11
  %254 = load i32, ptr %235, align 4, !tbaa !5
  %255 = tail call ptr @strerror(i32 noundef %254) #11
  %256 = load i32, ptr %235, align 4, !tbaa !5
  %257 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %247, ptr noundef nonnull %.str.5.sink221, i32 noundef %248, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %251, ptr noundef %253, ptr noundef %255, i32 noundef %256) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

258:                                              ; preds = %229
  %259 = tail call ptr @s2n_config_new() #11
  %260 = load i32, ptr @test_count, align 4, !tbaa !5
  %261 = add nsw i32 %260, 1
  store i32 %261, ptr @test_count, align 4, !tbaa !5
  %262 = icmp eq ptr %259, null
  br i1 %262, label %263, label %287

263:                                              ; preds = %258
  %264 = tail call ptr @__errno_location() #12
  %265 = load i32, ptr %264, align 4, !tbaa !5
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = tail call i32 @s2n_print_stacktrace(ptr noundef %266) #11
  %268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %269 = trunc nuw i8 %268 to i1
  br i1 %269, label %270, label %274

270:                                              ; preds = %263
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = tail call i32 @fileno(ptr noundef %271) #11
  %273 = tail call i32 @isatty(i32 noundef %272) #11
  %.not138 = icmp eq i32 %273, 0
  br i1 %.not138, label %274, label %275

274:                                              ; preds = %270, %263
  br label %275

275:                                              ; preds = %270, %274
  %.str.5.sink232 = phi ptr [ @.str.5, %274 ], [ @.str.2, %270 ]
  store i32 %265, ptr %264, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = load i32, ptr @test_count, align 4, !tbaa !5
  %278 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = tail call ptr @s2n_strerror(i32 noundef %279, ptr noundef nonnull @.str.4) #11
  %281 = load i32, ptr %278, align 4, !tbaa !5
  %282 = tail call ptr @s2n_strerror_debug(i32 noundef %281, ptr noundef nonnull @.str.4) #11
  %283 = load i32, ptr %264, align 4, !tbaa !5
  %284 = tail call ptr @strerror(i32 noundef %283) #11
  %285 = load i32, ptr %264, align 4, !tbaa !5
  %286 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %276, ptr noundef nonnull %.str.5.sink232, i32 noundef %277, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %280, ptr noundef %282, ptr noundef %284, i32 noundef %285) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

287:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  store ptr null, ptr %3, align 8, !tbaa !9
  %288 = add nsw i32 %260, 2
  store i32 %288, ptr @test_count, align 4, !tbaa !5
  %289 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.19) #11
  %290 = icmp eq i32 %289, -1
  br i1 %290, label %291, label %315

291:                                              ; preds = %287
  %292 = tail call ptr @__errno_location() #12
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = call i32 @s2n_print_stacktrace(ptr noundef %294) #11
  %296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %297 = trunc nuw i8 %296 to i1
  br i1 %297, label %298, label %302

298:                                              ; preds = %291
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = call i32 @fileno(ptr noundef %299) #11
  %301 = call i32 @isatty(i32 noundef %300) #11
  %.not137 = icmp eq i32 %301, 0
  br i1 %.not137, label %302, label %303

302:                                              ; preds = %298, %291
  br label %303

303:                                              ; preds = %298, %302
  %.str.5.sink243 = phi ptr [ @.str.5, %302 ], [ @.str.2, %298 ]
  store i32 %293, ptr %292, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = load i32, ptr @test_count, align 4, !tbaa !5
  %306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = call ptr @s2n_strerror(i32 noundef %307, ptr noundef nonnull @.str.4) #11
  %309 = load i32, ptr %306, align 4, !tbaa !5
  %310 = call ptr @s2n_strerror_debug(i32 noundef %309, ptr noundef nonnull @.str.4) #11
  %311 = load i32, ptr %292, align 4, !tbaa !5
  %312 = call ptr @strerror(i32 noundef %311) #11
  %313 = load i32, ptr %292, align 4, !tbaa !5
  %314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %304, ptr noundef nonnull %.str.5.sink243, i32 noundef %305, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %308, ptr noundef %310, ptr noundef %312, i32 noundef %313) #13
  call void @exit(i32 noundef 1) #14
  unreachable

315:                                              ; preds = %287
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr @test_count, align 4, !tbaa !5
  %318 = load ptr, ptr %3, align 8, !tbaa !9
  %319 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %230, ptr noundef %318) #11
  %320 = icmp eq i32 %319, -1
  br i1 %320, label %321, label %345

321:                                              ; preds = %315
  %322 = tail call ptr @__errno_location() #12
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = call i32 @s2n_print_stacktrace(ptr noundef %324) #11
  %326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %327 = trunc nuw i8 %326 to i1
  br i1 %327, label %328, label %332

328:                                              ; preds = %321
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = call i32 @fileno(ptr noundef %329) #11
  %331 = call i32 @isatty(i32 noundef %330) #11
  %.not136 = icmp eq i32 %331, 0
  br i1 %.not136, label %332, label %333

332:                                              ; preds = %328, %321
  br label %333

333:                                              ; preds = %328, %332
  %.str.5.sink254 = phi ptr [ @.str.5, %332 ], [ @.str.2, %328 ]
  store i32 %323, ptr %322, align 4, !tbaa !5
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = load i32, ptr @test_count, align 4, !tbaa !5
  %336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call ptr @s2n_strerror(i32 noundef %337, ptr noundef nonnull @.str.4) #11
  %339 = load i32, ptr %336, align 4, !tbaa !5
  %340 = call ptr @s2n_strerror_debug(i32 noundef %339, ptr noundef nonnull @.str.4) #11
  %341 = load i32, ptr %322, align 4, !tbaa !5
  %342 = call ptr @strerror(i32 noundef %341) #11
  %343 = load i32, ptr %322, align 4, !tbaa !5
  %344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %334, ptr noundef nonnull %.str.5.sink254, i32 noundef %335, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %338, ptr noundef %340, ptr noundef %342, i32 noundef %343) #13
  call void @exit(i32 noundef 1) #14
  unreachable

345:                                              ; preds = %315
  %346 = load i32, ptr @test_count, align 4, !tbaa !5
  %347 = add nsw i32 %346, 1
  store i32 %347, ptr @test_count, align 4, !tbaa !5
  %348 = call i32 @s2n_resumption_test_ticket_key_setup(ptr noundef nonnull %230) #11
  %349 = call zeroext i1 @s2n_result_is_ok(i32 %348)
  br i1 %349, label %374, label %350

350:                                              ; preds = %345
  %351 = tail call ptr @__errno_location() #12
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = call i32 @s2n_print_stacktrace(ptr noundef %353) #11
  %355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %356 = trunc nuw i8 %355 to i1
  br i1 %356, label %357, label %361

357:                                              ; preds = %350
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = call i32 @fileno(ptr noundef %358) #11
  %360 = call i32 @isatty(i32 noundef %359) #11
  %.not109 = icmp eq i32 %360, 0
  br i1 %.not109, label %361, label %362

361:                                              ; preds = %357, %350
  br label %362

362:                                              ; preds = %357, %361
  %.str.5.sink265 = phi ptr [ @.str.5, %361 ], [ @.str.2, %357 ]
  store i32 %352, ptr %351, align 4, !tbaa !5
  %363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %364 = load i32, ptr @test_count, align 4, !tbaa !5
  %365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call ptr @s2n_strerror(i32 noundef %366, ptr noundef nonnull @.str.4) #11
  %368 = load i32, ptr %365, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror_debug(i32 noundef %368, ptr noundef nonnull @.str.4) #11
  %370 = load i32, ptr %351, align 4, !tbaa !5
  %371 = call ptr @strerror(i32 noundef %370) #11
  %372 = load i32, ptr %351, align 4, !tbaa !5
  %373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %363, ptr noundef nonnull %.str.5.sink265, i32 noundef %364, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %367, ptr noundef %369, ptr noundef %371, i32 noundef %372) #13
  call void @exit(i32 noundef 1) #14
  unreachable

374:                                              ; preds = %345
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = add nsw i32 %375, 1
  store i32 %376, ptr @test_count, align 4, !tbaa !5
  %377 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef nonnull %259, i8 noundef zeroext 1) #11
  %378 = icmp eq i32 %377, -1
  br i1 %378, label %379, label %403

379:                                              ; preds = %374
  %380 = tail call ptr @__errno_location() #12
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = call i32 @s2n_print_stacktrace(ptr noundef %382) #11
  %384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %385 = trunc nuw i8 %384 to i1
  br i1 %385, label %386, label %390

386:                                              ; preds = %379
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = call i32 @fileno(ptr noundef %387) #11
  %389 = call i32 @isatty(i32 noundef %388) #11
  %.not135 = icmp eq i32 %389, 0
  br i1 %.not135, label %390, label %391

390:                                              ; preds = %386, %379
  br label %391

391:                                              ; preds = %386, %390
  %.str.5.sink276 = phi ptr [ @.str.5, %390 ], [ @.str.2, %386 ]
  store i32 %381, ptr %380, align 4, !tbaa !5
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = load i32, ptr @test_count, align 4, !tbaa !5
  %394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = call ptr @s2n_strerror(i32 noundef %395, ptr noundef nonnull @.str.4) #11
  %397 = load i32, ptr %394, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror_debug(i32 noundef %397, ptr noundef nonnull @.str.4) #11
  %399 = load i32, ptr %380, align 4, !tbaa !5
  %400 = call ptr @strerror(i32 noundef %399) #11
  %401 = load i32, ptr %380, align 4, !tbaa !5
  %402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %392, ptr noundef nonnull %.str.5.sink276, i32 noundef %393, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %396, ptr noundef %398, ptr noundef %400, i32 noundef %401) #13
  call void @exit(i32 noundef 1) #14
  unreachable

403:                                              ; preds = %374
  %404 = load i32, ptr @test_count, align 4, !tbaa !5
  %405 = add nsw i32 %404, 1
  store i32 %405, ptr @test_count, align 4, !tbaa !5
  %406 = call i32 @s2n_config_set_session_ticket_cb(ptr noundef nonnull %259, ptr noundef nonnull @s2n_test_session_ticket_cb, ptr noundef null) #11
  %407 = icmp eq i32 %406, -1
  br i1 %407, label %408, label %432

408:                                              ; preds = %403
  %409 = tail call ptr @__errno_location() #12
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = call i32 @s2n_print_stacktrace(ptr noundef %411) #11
  %413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %414 = trunc nuw i8 %413 to i1
  br i1 %414, label %415, label %419

415:                                              ; preds = %408
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = call i32 @fileno(ptr noundef %416) #11
  %418 = call i32 @isatty(i32 noundef %417) #11
  %.not134 = icmp eq i32 %418, 0
  br i1 %.not134, label %419, label %420

419:                                              ; preds = %415, %408
  br label %420

420:                                              ; preds = %415, %419
  %.str.5.sink287 = phi ptr [ @.str.5, %419 ], [ @.str.2, %415 ]
  store i32 %410, ptr %409, align 4, !tbaa !5
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = load i32, ptr @test_count, align 4, !tbaa !5
  %423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = call ptr @s2n_strerror(i32 noundef %424, ptr noundef nonnull @.str.4) #11
  %426 = load i32, ptr %423, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror_debug(i32 noundef %426, ptr noundef nonnull @.str.4) #11
  %428 = load i32, ptr %409, align 4, !tbaa !5
  %429 = call ptr @strerror(i32 noundef %428) #11
  %430 = load i32, ptr %409, align 4, !tbaa !5
  %431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %421, ptr noundef nonnull %.str.5.sink287, i32 noundef %422, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %425, ptr noundef %427, ptr noundef %429, i32 noundef %430) #13
  call void @exit(i32 noundef 1) #14
  unreachable

432:                                              ; preds = %403
  %433 = load i32, ptr @test_count, align 4, !tbaa !5
  %434 = add nsw i32 %433, 1
  store i32 %434, ptr @test_count, align 4, !tbaa !5
  %435 = call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %259) #11
  %436 = icmp eq i32 %435, -1
  br i1 %436, label %437, label %461

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

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

448:                                              ; preds = %444, %437
  br label %449

449:                                              ; preds = %444, %448
  %.str.5.sink298 = phi ptr [ @.str.5, %448 ], [ @.str.2, %444 ]
  store i32 %439, ptr %438, align 4, !tbaa !5
  %450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %451 = load i32, ptr @test_count, align 4, !tbaa !5
  %452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror(i32 noundef %453, ptr noundef nonnull @.str.4) #11
  %455 = load i32, ptr %452, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror_debug(i32 noundef %455, ptr noundef nonnull @.str.4) #11
  %457 = load i32, ptr %438, align 4, !tbaa !5
  %458 = call ptr @strerror(i32 noundef %457) #11
  %459 = load i32, ptr %438, align 4, !tbaa !5
  %460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %450, ptr noundef nonnull %.str.5.sink298, i32 noundef %451, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %454, ptr noundef %456, ptr noundef %458, i32 noundef %459) #13
  call void @exit(i32 noundef 1) #14
  unreachable

461:                                              ; preds = %432
  %462 = load i32, ptr @test_count, align 4, !tbaa !5
  %463 = add nsw i32 %462, 1
  store i32 %463, ptr @test_count, align 4, !tbaa !5
  %464 = call i32 @s2n_connection_set_config(ptr noundef nonnull %173, ptr noundef nonnull %230) #11
  %465 = icmp eq i32 %464, -1
  br i1 %465, label %466, label %490

466:                                              ; preds = %461
  %467 = tail call ptr @__errno_location() #12
  %468 = load i32, ptr %467, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = call i32 @s2n_print_stacktrace(ptr noundef %469) #11
  %471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %472 = trunc nuw i8 %471 to i1
  br i1 %472, label %473, label %477

473:                                              ; preds = %466
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = call i32 @fileno(ptr noundef %474) #11
  %476 = call i32 @isatty(i32 noundef %475) #11
  %.not132 = icmp eq i32 %476, 0
  br i1 %.not132, label %477, label %478

477:                                              ; preds = %473, %466
  br label %478

478:                                              ; preds = %473, %477
  %.str.5.sink309 = phi ptr [ @.str.5, %477 ], [ @.str.2, %473 ]
  store i32 %468, ptr %467, align 4, !tbaa !5
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = call ptr @s2n_strerror(i32 noundef %482, ptr noundef nonnull @.str.4) #11
  %484 = load i32, ptr %481, align 4, !tbaa !5
  %485 = call ptr @s2n_strerror_debug(i32 noundef %484, ptr noundef nonnull @.str.4) #11
  %486 = load i32, ptr %467, align 4, !tbaa !5
  %487 = call ptr @strerror(i32 noundef %486) #11
  %488 = load i32, ptr %467, align 4, !tbaa !5
  %489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %479, ptr noundef nonnull %.str.5.sink309, i32 noundef %480, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %483, ptr noundef %485, ptr noundef %487, i32 noundef %488) #13
  call void @exit(i32 noundef 1) #14
  unreachable

490:                                              ; preds = %461
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = add nsw i32 %491, 1
  store i32 %492, ptr @test_count, align 4, !tbaa !5
  %493 = call i32 @s2n_connection_set_config(ptr noundef nonnull %174, ptr noundef nonnull %259) #11
  %494 = icmp eq i32 %493, -1
  br i1 %494, label %495, label %519

495:                                              ; preds = %490
  %496 = tail call ptr @__errno_location() #12
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = call i32 @s2n_print_stacktrace(ptr noundef %498) #11
  %500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %501 = trunc nuw i8 %500 to i1
  br i1 %501, label %502, label %506

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

506:                                              ; preds = %502, %495
  br label %507

507:                                              ; preds = %502, %506
  %.str.5.sink320 = phi ptr [ @.str.5, %506 ], [ @.str.2, %502 ]
  store i32 %497, ptr %496, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = load i32, ptr @test_count, align 4, !tbaa !5
  %510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = call ptr @s2n_strerror(i32 noundef %511, ptr noundef nonnull @.str.4) #11
  %513 = load i32, ptr %510, align 4, !tbaa !5
  %514 = call ptr @s2n_strerror_debug(i32 noundef %513, ptr noundef nonnull @.str.4) #11
  %515 = load i32, ptr %496, align 4, !tbaa !5
  %516 = call ptr @strerror(i32 noundef %515) #11
  %517 = load i32, ptr %496, align 4, !tbaa !5
  %518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull %.str.5.sink320, i32 noundef %509, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %512, ptr noundef %514, ptr noundef %516, i32 noundef %517) #13
  call void @exit(i32 noundef 1) #14
  unreachable

519:                                              ; preds = %490
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = add nsw i32 %520, 1
  store i32 %521, ptr @test_count, align 4, !tbaa !5
  %522 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %173, ptr noundef nonnull @.str.28) #11
  %523 = icmp eq i32 %522, -1
  br i1 %523, label %524, label %548

524:                                              ; preds = %519
  %525 = tail call ptr @__errno_location() #12
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = call i32 @s2n_print_stacktrace(ptr noundef %527) #11
  %529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %530 = trunc nuw i8 %529 to i1
  br i1 %530, label %531, label %535

531:                                              ; preds = %524
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = call i32 @fileno(ptr noundef %532) #11
  %534 = call i32 @isatty(i32 noundef %533) #11
  %.not130 = icmp eq i32 %534, 0
  br i1 %.not130, label %535, label %536

535:                                              ; preds = %531, %524
  br label %536

536:                                              ; preds = %531, %535
  %.str.5.sink331 = phi ptr [ @.str.5, %535 ], [ @.str.2, %531 ]
  store i32 %526, ptr %525, align 4, !tbaa !5
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = call ptr @s2n_strerror(i32 noundef %540, ptr noundef nonnull @.str.4) #11
  %542 = load i32, ptr %539, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror_debug(i32 noundef %542, ptr noundef nonnull @.str.4) #11
  %544 = load i32, ptr %525, align 4, !tbaa !5
  %545 = call ptr @strerror(i32 noundef %544) #11
  %546 = load i32, ptr %525, align 4, !tbaa !5
  %547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %537, ptr noundef nonnull %.str.5.sink331, i32 noundef %538, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %541, ptr noundef %543, ptr noundef %545, i32 noundef %546) #13
  call void @exit(i32 noundef 1) #14
  unreachable

548:                                              ; preds = %519
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = add nsw i32 %549, 1
  store i32 %550, ptr @test_count, align 4, !tbaa !5
  %551 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %174, ptr noundef nonnull @.str.28) #11
  %552 = icmp eq i32 %551, -1
  br i1 %552, label %553, label %577

553:                                              ; preds = %548
  %554 = tail call ptr @__errno_location() #12
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = call i32 @s2n_print_stacktrace(ptr noundef %556) #11
  %558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %559 = trunc nuw i8 %558 to i1
  br i1 %559, label %560, label %564

560:                                              ; preds = %553
  %561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %562 = call i32 @fileno(ptr noundef %561) #11
  %563 = call i32 @isatty(i32 noundef %562) #11
  %.not129 = icmp eq i32 %563, 0
  br i1 %.not129, label %564, label %565

564:                                              ; preds = %560, %553
  br label %565

565:                                              ; preds = %560, %564
  %.str.5.sink342 = phi ptr [ @.str.5, %564 ], [ @.str.2, %560 ]
  store i32 %555, ptr %554, align 4, !tbaa !5
  %566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = call ptr @s2n_strerror(i32 noundef %569, ptr noundef nonnull @.str.4) #11
  %571 = load i32, ptr %568, align 4, !tbaa !5
  %572 = call ptr @s2n_strerror_debug(i32 noundef %571, ptr noundef nonnull @.str.4) #11
  %573 = load i32, ptr %554, align 4, !tbaa !5
  %574 = call ptr @strerror(i32 noundef %573) #11
  %575 = load i32, ptr %554, align 4, !tbaa !5
  %576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %566, ptr noundef nonnull %.str.5.sink342, i32 noundef %567, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %570, ptr noundef %572, ptr noundef %574, i32 noundef %575) #13
  call void @exit(i32 noundef 1) #14
  unreachable

577:                                              ; preds = %548
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #11
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = add nsw i32 %578, 1
  store i32 %579, ptr @test_count, align 4, !tbaa !5
  %580 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %4, i32 noundef 0) #11
  %581 = icmp eq i32 %580, -1
  br i1 %581, label %582, label %606

582:                                              ; preds = %577
  %583 = tail call ptr @__errno_location() #12
  %584 = load i32, ptr %583, align 4, !tbaa !5
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = call i32 @s2n_print_stacktrace(ptr noundef %585) #11
  %587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %588 = trunc nuw i8 %587 to i1
  br i1 %588, label %589, label %593

589:                                              ; preds = %582
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = call i32 @fileno(ptr noundef %590) #11
  %592 = call i32 @isatty(i32 noundef %591) #11
  %.not128 = icmp eq i32 %592, 0
  br i1 %.not128, label %593, label %594

593:                                              ; preds = %589, %582
  br label %594

594:                                              ; preds = %589, %593
  %.str.5.sink353 = phi ptr [ @.str.5, %593 ], [ @.str.2, %589 ]
  store i32 %584, ptr %583, align 4, !tbaa !5
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = call ptr @s2n_strerror(i32 noundef %598, ptr noundef nonnull @.str.4) #11
  %600 = load i32, ptr %597, align 4, !tbaa !5
  %601 = call ptr @s2n_strerror_debug(i32 noundef %600, ptr noundef nonnull @.str.4) #11
  %602 = load i32, ptr %583, align 4, !tbaa !5
  %603 = call ptr @strerror(i32 noundef %602) #11
  %604 = load i32, ptr %583, align 4, !tbaa !5
  %605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %595, ptr noundef nonnull %.str.5.sink353, i32 noundef %596, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %599, ptr noundef %601, ptr noundef %603, i32 noundef %604) #13
  call void @exit(i32 noundef 1) #14
  unreachable

606:                                              ; preds = %577
  %607 = load i32, ptr @test_count, align 4, !tbaa !5
  %608 = add nsw i32 %607, 1
  store i32 %608, ptr @test_count, align 4, !tbaa !5
  %609 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %5, i32 noundef 0) #11
  %610 = icmp eq i32 %609, -1
  br i1 %610, label %611, label %635

611:                                              ; preds = %606
  %612 = tail call ptr @__errno_location() #12
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = call i32 @s2n_print_stacktrace(ptr noundef %614) #11
  %616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %617 = trunc nuw i8 %616 to i1
  br i1 %617, label %618, label %622

618:                                              ; preds = %611
  %619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = call i32 @fileno(ptr noundef %619) #11
  %621 = call i32 @isatty(i32 noundef %620) #11
  %.not127 = icmp eq i32 %621, 0
  br i1 %.not127, label %622, label %623

622:                                              ; preds = %618, %611
  br label %623

623:                                              ; preds = %618, %622
  %.str.5.sink364 = phi ptr [ @.str.5, %622 ], [ @.str.2, %618 ]
  store i32 %613, ptr %612, align 4, !tbaa !5
  %624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %625 = load i32, ptr @test_count, align 4, !tbaa !5
  %626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = call ptr @s2n_strerror(i32 noundef %627, ptr noundef nonnull @.str.4) #11
  %629 = load i32, ptr %626, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror_debug(i32 noundef %629, ptr noundef nonnull @.str.4) #11
  %631 = load i32, ptr %612, align 4, !tbaa !5
  %632 = call ptr @strerror(i32 noundef %631) #11
  %633 = load i32, ptr %612, align 4, !tbaa !5
  %634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %624, ptr noundef nonnull %.str.5.sink364, i32 noundef %625, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %628, ptr noundef %630, ptr noundef %632, i32 noundef %633) #13
  call void @exit(i32 noundef 1) #14
  unreachable

635:                                              ; preds = %606
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = add nsw i32 %636, 1
  store i32 %637, ptr @test_count, align 4, !tbaa !5
  %638 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %173) #11
  %639 = icmp eq i32 %638, -1
  br i1 %639, label %640, label %664

640:                                              ; preds = %635
  %641 = tail call ptr @__errno_location() #12
  %642 = load i32, ptr %641, align 4, !tbaa !5
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = call i32 @s2n_print_stacktrace(ptr noundef %643) #11
  %645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %646 = trunc nuw i8 %645 to i1
  br i1 %646, label %647, label %651

647:                                              ; preds = %640
  %648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %649 = call i32 @fileno(ptr noundef %648) #11
  %650 = call i32 @isatty(i32 noundef %649) #11
  %.not126 = icmp eq i32 %650, 0
  br i1 %.not126, label %651, label %652

651:                                              ; preds = %647, %640
  br label %652

652:                                              ; preds = %647, %651
  %.str.5.sink375 = phi ptr [ @.str.5, %651 ], [ @.str.2, %647 ]
  store i32 %642, ptr %641, align 4, !tbaa !5
  %653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %654 = load i32, ptr @test_count, align 4, !tbaa !5
  %655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %656 = load i32, ptr %655, align 4, !tbaa !5
  %657 = call ptr @s2n_strerror(i32 noundef %656, ptr noundef nonnull @.str.4) #11
  %658 = load i32, ptr %655, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror_debug(i32 noundef %658, ptr noundef nonnull @.str.4) #11
  %660 = load i32, ptr %641, align 4, !tbaa !5
  %661 = call ptr @strerror(i32 noundef %660) #11
  %662 = load i32, ptr %641, align 4, !tbaa !5
  %663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %653, ptr noundef nonnull %.str.5.sink375, i32 noundef %654, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %657, ptr noundef %659, ptr noundef %661, i32 noundef %662) #13
  call void @exit(i32 noundef 1) #14
  unreachable

664:                                              ; preds = %635
  %665 = load i32, ptr @test_count, align 4, !tbaa !5
  %666 = add nsw i32 %665, 1
  store i32 %666, ptr @test_count, align 4, !tbaa !5
  %667 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %5, ptr noundef nonnull %4, ptr noundef nonnull %174) #11
  %668 = icmp eq i32 %667, -1
  br i1 %668, label %669, label %693

669:                                              ; preds = %664
  %670 = tail call ptr @__errno_location() #12
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = call i32 @s2n_print_stacktrace(ptr noundef %672) #11
  %674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %675 = trunc nuw i8 %674 to i1
  br i1 %675, label %676, label %680

676:                                              ; preds = %669
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = call i32 @fileno(ptr noundef %677) #11
  %679 = call i32 @isatty(i32 noundef %678) #11
  %.not125 = icmp eq i32 %679, 0
  br i1 %.not125, label %680, label %681

680:                                              ; preds = %676, %669
  br label %681

681:                                              ; preds = %676, %680
  %.str.5.sink386 = phi ptr [ @.str.5, %680 ], [ @.str.2, %676 ]
  store i32 %671, ptr %670, align 4, !tbaa !5
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = load i32, ptr @test_count, align 4, !tbaa !5
  %684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %685 = load i32, ptr %684, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror(i32 noundef %685, ptr noundef nonnull @.str.4) #11
  %687 = load i32, ptr %684, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror_debug(i32 noundef %687, ptr noundef nonnull @.str.4) #11
  %689 = load i32, ptr %670, align 4, !tbaa !5
  %690 = call ptr @strerror(i32 noundef %689) #11
  %691 = load i32, ptr %670, align 4, !tbaa !5
  %692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %682, ptr noundef nonnull %.str.5.sink386, i32 noundef %683, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %686, ptr noundef %688, ptr noundef %690, i32 noundef %691) #13
  call void @exit(i32 noundef 1) #14
  unreachable

693:                                              ; preds = %664
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr @test_count, align 4, !tbaa !5
  %696 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %173, ptr noundef nonnull %174) #11
  %697 = icmp eq i32 %696, -1
  br i1 %697, label %698, label %722

698:                                              ; preds = %693
  %699 = tail call ptr @__errno_location() #12
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = call i32 @s2n_print_stacktrace(ptr noundef %701) #11
  %703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %704 = trunc nuw i8 %703 to i1
  br i1 %704, label %705, label %709

705:                                              ; preds = %698
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = call i32 @fileno(ptr noundef %706) #11
  %708 = call i32 @isatty(i32 noundef %707) #11
  %.not124 = icmp eq i32 %708, 0
  br i1 %.not124, label %709, label %710

709:                                              ; preds = %705, %698
  br label %710

710:                                              ; preds = %705, %709
  %.str.5.sink397 = phi ptr [ @.str.5, %709 ], [ @.str.2, %705 ]
  store i32 %700, ptr %699, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = call ptr @s2n_strerror(i32 noundef %714, ptr noundef nonnull @.str.4) #11
  %716 = load i32, ptr %713, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror_debug(i32 noundef %716, ptr noundef nonnull @.str.4) #11
  %718 = load i32, ptr %699, align 4, !tbaa !5
  %719 = call ptr @strerror(i32 noundef %718) #11
  %720 = load i32, ptr %699, align 4, !tbaa !5
  %721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %711, ptr noundef nonnull %.str.5.sink397, i32 noundef %712, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %715, ptr noundef %717, ptr noundef %719, i32 noundef %720) #13
  call void @exit(i32 noundef 1) #14
  unreachable

722:                                              ; preds = %693
  %723 = getelementptr inbounds i8, ptr %173, i64 4084
  store i16 5, ptr %723, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #11
  call void @llvm.lifetime.start.p0(i64 13, ptr nonnull %7) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %7, ptr noundef nonnull align 1 dereferenceable(13) @__const.main.message, i64 13, i1 false)
  %724 = load i32, ptr @test_count, align 4, !tbaa !5
  %725 = add nsw i32 %724, 1
  store i32 %725, ptr @test_count, align 4, !tbaa !5
  %726 = call i64 @s2n_send(ptr noundef nonnull %173, ptr noundef nonnull %7, i64 noundef 13, ptr noundef nonnull %6) #11
  %727 = icmp eq i64 %726, -1
  br i1 %727, label %728, label %752

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

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

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

740:                                              ; preds = %735, %739
  %.str.5.sink408 = phi ptr [ @.str.5, %739 ], [ @.str.2, %735 ]
  store i32 %730, ptr %729, align 4, !tbaa !5
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = load i32, ptr @test_count, align 4, !tbaa !5
  %743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror(i32 noundef %744, ptr noundef nonnull @.str.4) #11
  %746 = load i32, ptr %743, align 4, !tbaa !5
  %747 = call ptr @s2n_strerror_debug(i32 noundef %746, ptr noundef nonnull @.str.4) #11
  %748 = load i32, ptr %729, align 4, !tbaa !5
  %749 = call ptr @strerror(i32 noundef %748) #11
  %750 = load i32, ptr %729, align 4, !tbaa !5
  %751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %741, ptr noundef nonnull %.str.5.sink408, i32 noundef %742, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %745, ptr noundef %747, ptr noundef %749, i32 noundef %750) #13
  call void @exit(i32 noundef 1) #14
  unreachable

752:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 13, ptr nonnull %8) #11
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = add nsw i32 %753, 1
  store i32 %754, ptr @test_count, align 4, !tbaa !5
  %755 = call i64 @s2n_recv(ptr noundef nonnull %174, ptr noundef nonnull %8, i64 noundef 13, ptr noundef nonnull %6) #11
  %756 = icmp eq i64 %755, -1
  br i1 %756, label %757, label %781

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

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

768:                                              ; preds = %764, %757
  br label %769

769:                                              ; preds = %764, %768
  %.str.5.sink419 = phi ptr [ @.str.5, %768 ], [ @.str.2, %764 ]
  store i32 %759, ptr %758, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = load i32, ptr @test_count, align 4, !tbaa !5
  %772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror(i32 noundef %773, ptr noundef nonnull @.str.4) #11
  %775 = load i32, ptr %772, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror_debug(i32 noundef %775, ptr noundef nonnull @.str.4) #11
  %777 = load i32, ptr %758, align 4, !tbaa !5
  %778 = call ptr @strerror(i32 noundef %777) #11
  %779 = load i32, ptr %758, align 4, !tbaa !5
  %780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %770, ptr noundef nonnull %.str.5.sink419, i32 noundef %771, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %774, ptr noundef %776, ptr noundef %778, i32 noundef %779) #13
  call void @exit(i32 noundef 1) #14
  unreachable

781:                                              ; preds = %752
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr @test_count, align 4, !tbaa !5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(13) %8, ptr noundef nonnull dereferenceable(13) %7, i64 13)
  %784 = icmp eq i32 %bcmp, 0
  br i1 %784, label %809, label %785

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

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

796:                                              ; preds = %792, %785
  br label %797

797:                                              ; preds = %792, %796
  %.str.5.sink430 = phi ptr [ @.str.5, %796 ], [ @.str.2, %792 ]
  store i32 %787, ptr %786, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror(i32 noundef %801, ptr noundef nonnull @.str.4) #11
  %803 = load i32, ptr %800, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror_debug(i32 noundef %803, ptr noundef nonnull @.str.4) #11
  %805 = load i32, ptr %786, align 4, !tbaa !5
  %806 = call ptr @strerror(i32 noundef %805) #11
  %807 = load i32, ptr %786, align 4, !tbaa !5
  %808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %798, ptr noundef nonnull %.str.5.sink430, i32 noundef %799, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %802, ptr noundef %804, ptr noundef %806, i32 noundef %807) #13
  call void @exit(i32 noundef 1) #14
  unreachable

809:                                              ; preds = %781
  %810 = add nsw i32 %782, 2
  store i32 %810, ptr @test_count, align 4, !tbaa !5
  %811 = load i8, ptr @session_ticket_counter, align 1, !tbaa !42
  %812 = icmp eq i8 %811, 5
  br i1 %812, label %837, label %813

813:                                              ; preds = %809
  %814 = tail call ptr @__errno_location() #12
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = call i32 @s2n_print_stacktrace(ptr noundef %816) #11
  %818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %819 = trunc nuw i8 %818 to i1
  br i1 %819, label %820, label %824

820:                                              ; preds = %813
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @fileno(ptr noundef %821) #11
  %823 = call i32 @isatty(i32 noundef %822) #11
  %.not111 = icmp eq i32 %823, 0
  br i1 %.not111, label %824, label %825

824:                                              ; preds = %820, %813
  br label %825

825:                                              ; preds = %820, %824
  %.str.5.sink441 = phi ptr [ @.str.5, %824 ], [ @.str.2, %820 ]
  store i32 %815, ptr %814, align 4, !tbaa !5
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = load i32, ptr @test_count, align 4, !tbaa !5
  %828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror(i32 noundef %829, ptr noundef nonnull @.str.4) #11
  %831 = load i32, ptr %828, align 4, !tbaa !5
  %832 = call ptr @s2n_strerror_debug(i32 noundef %831, ptr noundef nonnull @.str.4) #11
  %833 = load i32, ptr %814, align 4, !tbaa !5
  %834 = call ptr @strerror(i32 noundef %833) #11
  %835 = load i32, ptr %814, align 4, !tbaa !5
  %836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %826, ptr noundef nonnull %.str.5.sink441, i32 noundef %827, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %830, ptr noundef %832, ptr noundef %834, i32 noundef %835) #13
  call void @exit(i32 noundef 1) #14
  unreachable

837:                                              ; preds = %809
  %838 = add nsw i32 %782, 3
  store i32 %838, ptr @test_count, align 4, !tbaa !5
  %839 = call i32 @s2n_config_free(ptr noundef nonnull %230) #11
  %840 = icmp eq i32 %839, -1
  br i1 %840, label %841, label %865

841:                                              ; preds = %837
  %842 = tail call ptr @__errno_location() #12
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @s2n_print_stacktrace(ptr noundef %844) #11
  %846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %847 = trunc nuw i8 %846 to i1
  br i1 %847, label %848, label %852

848:                                              ; preds = %841
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = call i32 @fileno(ptr noundef %849) #11
  %851 = call i32 @isatty(i32 noundef %850) #11
  %.not121 = icmp eq i32 %851, 0
  br i1 %.not121, label %852, label %853

852:                                              ; preds = %848, %841
  br label %853

853:                                              ; preds = %848, %852
  %.str.5.sink452 = phi ptr [ @.str.5, %852 ], [ @.str.2, %848 ]
  store i32 %843, ptr %842, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = load i32, ptr @test_count, align 4, !tbaa !5
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror(i32 noundef %857, ptr noundef nonnull @.str.4) #11
  %859 = load i32, ptr %856, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror_debug(i32 noundef %859, ptr noundef nonnull @.str.4) #11
  %861 = load i32, ptr %842, align 4, !tbaa !5
  %862 = call ptr @strerror(i32 noundef %861) #11
  %863 = load i32, ptr %842, align 4, !tbaa !5
  %864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %854, ptr noundef nonnull %.str.5.sink452, i32 noundef %855, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %858, ptr noundef %860, ptr noundef %862, i32 noundef %863) #13
  call void @exit(i32 noundef 1) #14
  unreachable

865:                                              ; preds = %837
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = add nsw i32 %866, 1
  store i32 %867, ptr @test_count, align 4, !tbaa !5
  %868 = call i32 @s2n_config_free(ptr noundef nonnull %259) #11
  %869 = icmp eq i32 %868, -1
  br i1 %869, label %870, label %894

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

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

881:                                              ; preds = %877, %870
  br label %882

882:                                              ; preds = %877, %881
  %.str.5.sink463 = phi ptr [ @.str.5, %881 ], [ @.str.2, %877 ]
  store i32 %872, ptr %871, align 4, !tbaa !5
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = load i32, ptr @test_count, align 4, !tbaa !5
  %885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror(i32 noundef %886, ptr noundef nonnull @.str.4) #11
  %888 = load i32, ptr %885, align 4, !tbaa !5
  %889 = call ptr @s2n_strerror_debug(i32 noundef %888, ptr noundef nonnull @.str.4) #11
  %890 = load i32, ptr %871, align 4, !tbaa !5
  %891 = call ptr @strerror(i32 noundef %890) #11
  %892 = load i32, ptr %871, align 4, !tbaa !5
  %893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %883, ptr noundef nonnull %.str.5.sink463, i32 noundef %884, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %887, ptr noundef %889, ptr noundef %891, i32 noundef %892) #13
  call void @exit(i32 noundef 1) #14
  unreachable

894:                                              ; preds = %865
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = add nsw i32 %895, 1
  store i32 %896, ptr @test_count, align 4, !tbaa !5
  %897 = call i32 @s2n_connection_free(ptr noundef nonnull %173) #11
  %898 = icmp eq i32 %897, -1
  br i1 %898, label %899, label %923

899:                                              ; preds = %894
  %900 = tail call ptr @__errno_location() #12
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = call i32 @s2n_print_stacktrace(ptr noundef %902) #11
  %904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %905 = trunc nuw i8 %904 to i1
  br i1 %905, label %906, label %910

906:                                              ; preds = %899
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = call i32 @fileno(ptr noundef %907) #11
  %909 = call i32 @isatty(i32 noundef %908) #11
  %.not119 = icmp eq i32 %909, 0
  br i1 %.not119, label %910, label %911

910:                                              ; preds = %906, %899
  br label %911

911:                                              ; preds = %906, %910
  %.str.5.sink474 = phi ptr [ @.str.5, %910 ], [ @.str.2, %906 ]
  store i32 %901, ptr %900, align 4, !tbaa !5
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror(i32 noundef %915, ptr noundef nonnull @.str.4) #11
  %917 = load i32, ptr %914, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror_debug(i32 noundef %917, ptr noundef nonnull @.str.4) #11
  %919 = load i32, ptr %900, align 4, !tbaa !5
  %920 = call ptr @strerror(i32 noundef %919) #11
  %921 = load i32, ptr %900, align 4, !tbaa !5
  %922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %912, ptr noundef nonnull %.str.5.sink474, i32 noundef %913, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %916, ptr noundef %918, ptr noundef %920, i32 noundef %921) #13
  call void @exit(i32 noundef 1) #14
  unreachable

923:                                              ; preds = %894
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = add nsw i32 %924, 1
  store i32 %925, ptr @test_count, align 4, !tbaa !5
  %926 = call i32 @s2n_connection_free(ptr noundef nonnull %174) #11
  %927 = icmp eq i32 %926, -1
  br i1 %927, label %928, label %952

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

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

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

940:                                              ; preds = %935, %939
  %.str.5.sink485 = phi ptr [ @.str.5, %939 ], [ @.str.2, %935 ]
  store i32 %930, ptr %929, 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 nonnull @.str.4) #11
  %946 = load i32, ptr %943, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror_debug(i32 noundef %946, ptr noundef nonnull @.str.4) #11
  %948 = load i32, ptr %929, align 4, !tbaa !5
  %949 = call ptr @strerror(i32 noundef %948) #11
  %950 = load i32, ptr %929, align 4, !tbaa !5
  %951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef nonnull %.str.5.sink485, i32 noundef %942, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %945, ptr noundef %947, ptr noundef %949, i32 noundef %950) #13
  call void @exit(i32 noundef 1) #14
  unreachable

952:                                              ; preds = %923
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = add nsw i32 %953, 1
  store i32 %954, ptr @test_count, align 4, !tbaa !5
  %955 = load ptr, ptr %3, align 8, !tbaa !9
  %956 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %955) #11
  %957 = icmp eq i32 %956, -1
  br i1 %957, label %958, label %982

958:                                              ; preds = %952
  %959 = tail call ptr @__errno_location() #12
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = call i32 @s2n_print_stacktrace(ptr noundef %961) #11
  %963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %964 = trunc nuw i8 %963 to i1
  br i1 %964, label %965, label %969

965:                                              ; preds = %958
  %966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %967 = call i32 @fileno(ptr noundef %966) #11
  %968 = call i32 @isatty(i32 noundef %967) #11
  %.not117 = icmp eq i32 %968, 0
  br i1 %.not117, label %969, label %970

969:                                              ; preds = %965, %958
  br label %970

970:                                              ; preds = %965, %969
  %.str.5.sink496 = phi ptr [ @.str.5, %969 ], [ @.str.2, %965 ]
  store i32 %960, ptr %959, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = load i32, ptr @test_count, align 4, !tbaa !5
  %973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror(i32 noundef %974, ptr noundef nonnull @.str.4) #11
  %976 = load i32, ptr %973, align 4, !tbaa !5
  %977 = call ptr @s2n_strerror_debug(i32 noundef %976, ptr noundef nonnull @.str.4) #11
  %978 = load i32, ptr %959, align 4, !tbaa !5
  %979 = call ptr @strerror(i32 noundef %978) #11
  %980 = load i32, ptr %959, align 4, !tbaa !5
  %981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %971, ptr noundef nonnull %.str.5.sink496, i32 noundef %972, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %975, ptr noundef %977, ptr noundef %979, i32 noundef %980) #13
  call void @exit(i32 noundef 1) #14
  unreachable

982:                                              ; preds = %952
  call void @llvm.lifetime.end.p0(i64 13, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 13, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #11
  %983 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #11
  %984 = call i32 @s2n_stuffer_free(ptr noundef nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  %985 = call i32 @s2n_cleanup() #11
  %986 = icmp eq i32 %985, -1
  br i1 %986, label %987, label %1011

987:                                              ; preds = %982
  %988 = tail call ptr @__errno_location() #12
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @s2n_print_stacktrace(ptr noundef %990) #11
  %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 = %987
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = call i32 @fileno(ptr noundef %995) #11
  %997 = call i32 @isatty(i32 noundef %996) #11
  %.not116 = icmp eq i32 %997, 0
  br i1 %.not116, label %998, label %999

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

999:                                              ; preds = %994, %998
  %.str.5.sink507 = phi ptr [ @.str.5, %998 ], [ @.str.2, %994 ]
  store i32 %989, ptr %988, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef nonnull @.str.4) #11
  %1005 = load i32, ptr %1002, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror_debug(i32 noundef %1005, ptr noundef nonnull @.str.4) #11
  %1007 = load i32, ptr %988, align 4, !tbaa !5
  %1008 = call ptr @strerror(i32 noundef %1007) #11
  %1009 = load i32, ptr %988, align 4, !tbaa !5
  %1010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef nonnull %.str.5.sink507, i32 noundef %1001, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1004, ptr noundef %1006, ptr noundef %1008, i32 noundef %1009) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1011:                                             ; preds = %982
  %1012 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %1013 = icmp eq i32 %1012, -1
  br i1 %1013, label %1014, label %1038

1014:                                             ; preds = %1011
  %1015 = tail call ptr @__errno_location() #12
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @s2n_print_stacktrace(ptr noundef %1017) #11
  %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 = %1014
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = call i32 @fileno(ptr noundef %1022) #11
  %1024 = call i32 @isatty(i32 noundef %1023) #11
  %.not115 = icmp eq i32 %1024, 0
  br i1 %.not115, label %1025, label %1026

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

1026:                                             ; preds = %1021, %1025
  %.str.5.sink518 = phi ptr [ @.str.5, %1025 ], [ @.str.2, %1021 ]
  store i32 %1016, ptr %1015, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror(i32 noundef %1030, ptr noundef nonnull @.str.4) #11
  %1032 = load i32, ptr %1029, align 4, !tbaa !5
  %1033 = call ptr @s2n_strerror_debug(i32 noundef %1032, ptr noundef nonnull @.str.4) #11
  %1034 = load i32, ptr %1015, align 4, !tbaa !5
  %1035 = call ptr @strerror(i32 noundef %1034) #11
  %1036 = load i32, ptr %1015, align 4, !tbaa !5
  %1037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef nonnull %.str.5.sink518, i32 noundef %1028, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1031, ptr noundef %1033, ptr noundef %1035, i32 noundef %1036) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1038:                                             ; preds = %1011
  %1039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1040 = trunc nuw i8 %1039 to i1
  br i1 %1040, label %1041, label %1052

1041:                                             ; preds = %1038
  %1042 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1043 = call i32 @fileno(ptr noundef %1042) #11
  %1044 = call i32 @isatty(i32 noundef %1043) #11
  %.not112 = icmp eq i32 %1044, 0
  br i1 %.not112, label %1052, label %1045

1045:                                             ; preds = %1041
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not114 = icmp eq i32 %1046, 0
  %1047 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not114, label %1050, label %1048

1048:                                             ; preds = %1045
  %1049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1047, ptr noundef nonnull @.str.10, i32 noundef %1046) #11
  br label %1059

1050:                                             ; preds = %1045
  %1051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1047, ptr noundef nonnull @.str.11) #11
  br label %1059

1052:                                             ; preds = %1041, %1038
  %1053 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not113 = icmp eq i32 %1053, 0
  %1054 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not113, label %1057, label %1055

1055:                                             ; preds = %1052
  %1056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1054, ptr noundef nonnull @.str.12, i32 noundef %1053) #11
  br label %1059

1057:                                             ; preds = %1052
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1054, ptr noundef nonnull @.str.13) #11
  br label %1059

1059:                                             ; preds = %1050, %1048, %1057, %1055, %163, %161, %170, %168
  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 zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

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

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

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

declare i32 @s2n_resumption_test_ticket_key_setup(ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_config_disable_x509_verification(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

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

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 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nofree nounwind willreturn memory(argmem: read) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { 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, !31, i64 4084}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!7, !7, i64 0}


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