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

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

%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_cert = type { i32, %struct.s2n_pkey, %struct.s2n_cert_info, %struct.s2n_blob, ptr }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_cert_info = type { i32, i32, i32, i32, i8 }
%struct.s2n_cert_chain = type { i32, ptr }
%struct.s2n_cert_chain_and_key = type { ptr, ptr, %struct.s2n_blob, %struct.s2n_blob, ptr, ptr, ptr }
%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_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@tls13_cert_message_hex = external dso_local constant [883 x i8], align 16
@tls13_cert_hex = external dso_local constant [865 x i8], align 16
@tls13_cert_chain_header_hex = external dso_local constant [15 x i8], align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [85 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca %struct.s2n_result, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca %struct.s2n_blob, align 8
  %28 = alloca %struct.s2n_result, align 4
  %29 = alloca %struct.s2n_blob, align 8
  %30 = alloca %struct.s2n_result, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i8, align 1
  %33 = alloca %struct.s2n_cert, align 8
  %34 = alloca %struct.s2n_cert_chain, align 8
  %35 = alloca %struct.s2n_cert_chain_and_key, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %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 ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca %struct.s2n_blob, align 8
  %54 = alloca %struct.s2n_result, align 4
  %55 = alloca %struct.s2n_blob, align 8
  %56 = alloca %struct.s2n_result, align 4
  %57 = alloca %struct.s2n_cert, align 8
  %58 = alloca %struct.s2n_cert_chain, align 8
  %59 = alloca %struct.s2n_cert_chain_and_key, align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  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 %70

70:                                               ; preds = %2
  br label %71

71:                                               ; preds = %70
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %72 = load ptr, ptr @stdout, align 8, !tbaa !9
  %73 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %72, ptr noundef @.str, ptr noundef @.str.1) #11
  %74 = load ptr, ptr @stdout, align 8, !tbaa !9
  %75 = call i32 @fflush(ptr noundef %74)
  br label %76

76:                                               ; preds = %71
  %77 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %78 = icmp eq i32 %77, -1
  br i1 %78, label %79, label %130

79:                                               ; preds = %76
  br label %80

80:                                               ; preds = %79
  br label %81

81:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %82 = call ptr @__errno_location() #12
  %83 = load i32, ptr %82, align 4, !tbaa !5
  store i32 %83, ptr %6, align 4, !tbaa !5
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = call i32 @s2n_print_stacktrace(ptr noundef %84)
  %86 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %87 = trunc i8 %86 to i1
  br i1 %87, label %88, label %110

88:                                               ; preds = %81
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = call i32 @fileno(ptr noundef %89) #11
  %91 = call i32 @isatty(i32 noundef %90) #11
  %92 = icmp ne i32 %91, 0
  br i1 %92, label %93, label %110

93:                                               ; preds = %88
  %94 = load i32, ptr %6, align 4, !tbaa !5
  %95 = call ptr @__errno_location() #12
  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() #12
  %105 = load i32, ptr %104, align 4, !tbaa !5
  %106 = call ptr @strerror(i32 noundef %105) #11
  %107 = call ptr @__errno_location() #12
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %96, ptr noundef @.str.2, i32 noundef %97, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 89, ptr noundef %100, ptr noundef %103, ptr noundef %106, i32 noundef %108) #11
  br label %127

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

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

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

129:                                              ; No predecessors!
  br label %130

130:                                              ; preds = %129, %76
  br label %131

131:                                              ; preds = %130
  br label %132

132:                                              ; preds = %131
  %133 = load i32, ptr @test_count, align 4, !tbaa !5
  %134 = add nsw i32 %133, 1
  store i32 %134, ptr @test_count, align 4, !tbaa !5
  %135 = call i32 @s2n_enable_atexit()
  %136 = icmp eq i32 %135, -1
  br i1 %136, label %137, label %188

137:                                              ; preds = %132
  br label %138

138:                                              ; preds = %137
  br label %139

139:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %140 = call ptr @__errno_location() #12
  %141 = load i32, ptr %140, align 4, !tbaa !5
  store i32 %141, ptr %7, align 4, !tbaa !5
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = call i32 @s2n_print_stacktrace(ptr noundef %142)
  %144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %145 = trunc i8 %144 to i1
  br i1 %145, label %146, label %168

146:                                              ; preds = %139
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = call i32 @fileno(ptr noundef %147) #11
  %149 = call i32 @isatty(i32 noundef %148) #11
  %150 = icmp ne i32 %149, 0
  br i1 %150, label %151, label %168

151:                                              ; preds = %146
  %152 = load i32, ptr %7, align 4, !tbaa !5
  %153 = call ptr @__errno_location() #12
  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() #12
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call ptr @strerror(i32 noundef %163) #11
  %165 = call ptr @__errno_location() #12
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %154, ptr noundef @.str.2, i32 noundef %155, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 89, ptr noundef %158, ptr noundef %161, ptr noundef %164, i32 noundef %166) #11
  br label %185

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

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

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

187:                                              ; No predecessors!
  br label %188

188:                                              ; preds = %187, %132
  br label %189

189:                                              ; preds = %188
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  %192 = call i32 @s2n_init()
  %193 = icmp eq i32 %192, -1
  br i1 %193, label %194, label %245

194:                                              ; preds = %191
  br label %195

195:                                              ; preds = %194
  br label %196

196:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %197 = call ptr @__errno_location() #12
  %198 = load i32, ptr %197, align 4, !tbaa !5
  store i32 %198, ptr %8, align 4, !tbaa !5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = call i32 @s2n_print_stacktrace(ptr noundef %199)
  %201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %202 = trunc i8 %201 to i1
  br i1 %202, label %203, label %225

203:                                              ; preds = %196
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = call i32 @fileno(ptr noundef %204) #11
  %206 = call i32 @isatty(i32 noundef %205) #11
  %207 = icmp ne i32 %206, 0
  br i1 %207, label %208, label %225

208:                                              ; preds = %203
  %209 = load i32, ptr %8, align 4, !tbaa !5
  %210 = call ptr @__errno_location() #12
  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() #12
  %220 = load i32, ptr %219, align 4, !tbaa !5
  %221 = call ptr @strerror(i32 noundef %220) #11
  %222 = call ptr @__errno_location() #12
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %211, ptr noundef @.str.2, i32 noundef %212, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 89, ptr noundef %215, ptr noundef %218, ptr noundef %221, i32 noundef %223) #11
  br label %242

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

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

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

244:                                              ; No predecessors!
  br label %245

245:                                              ; preds = %244, %191
  br label %246

246:                                              ; preds = %245
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = add nsw i32 %249, 1
  store i32 %250, ptr @test_count, align 4, !tbaa !5
  %251 = call i32 (...) @s2n_disable_tls13_in_test()
  %252 = icmp eq i32 %251, -1
  br i1 %252, label %253, label %304

253:                                              ; preds = %248
  br label %254

254:                                              ; preds = %253
  br label %255

255:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %256 = call ptr @__errno_location() #12
  %257 = load i32, ptr %256, align 4, !tbaa !5
  store i32 %257, ptr %9, align 4, !tbaa !5
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = call i32 @s2n_print_stacktrace(ptr noundef %258)
  %260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %261 = trunc i8 %260 to i1
  br i1 %261, label %262, label %284

262:                                              ; preds = %255
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = call i32 @fileno(ptr noundef %263) #11
  %265 = call i32 @isatty(i32 noundef %264) #11
  %266 = icmp ne i32 %265, 0
  br i1 %266, label %267, label %284

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

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

301:                                              ; preds = %284, %267
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %302

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

303:                                              ; No predecessors!
  br label %304

304:                                              ; preds = %303, %248
  br label %305

305:                                              ; preds = %304
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #11
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 24, i1 false)
  br label %306

306:                                              ; preds = %305
  %307 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %10, ptr noundef @tls13_cert_message_hex)
  %308 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  store i32 %307, ptr %308, align 4
  %309 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  %310 = load i32, ptr %309, align 4
  %311 = call zeroext i1 @s2n_result_is_ok(i32 %310)
  br i1 %311, label %313, label %312

312:                                              ; preds = %306
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %1030

313:                                              ; preds = %306
  br label %314

314:                                              ; preds = %313
  br label %315

315:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  store ptr null, ptr %13, align 8, !tbaa !9
  br label %316

316:                                              ; preds = %315
  %317 = load i32, ptr @test_count, align 4, !tbaa !5
  %318 = add nsw i32 %317, 1
  store i32 %318, ptr @test_count, align 4, !tbaa !5
  %319 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %319, ptr %13, align 8, !tbaa !9
  %320 = icmp eq ptr %319, null
  br i1 %320, label %321, label %374

321:                                              ; preds = %316
  br label %322

322:                                              ; preds = %321
  br label %323

323:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %324 = call ptr @__errno_location() #12
  %325 = load i32, ptr %324, align 4, !tbaa !5
  store i32 %325, ptr %14, align 4, !tbaa !5
  %326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %327 = call i32 @s2n_print_stacktrace(ptr noundef %326)
  %328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %329 = trunc i8 %328 to i1
  br i1 %329, label %330, label %352

330:                                              ; preds = %323
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = call i32 @fileno(ptr noundef %331) #11
  %333 = call i32 @isatty(i32 noundef %332) #11
  %334 = icmp ne i32 %333, 0
  br i1 %334, label %335, label %352

335:                                              ; preds = %330
  %336 = load i32, ptr %14, align 4, !tbaa !5
  %337 = call ptr @__errno_location() #12
  store i32 %336, ptr %337, align 4, !tbaa !5
  %338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %339 = load i32, ptr @test_count, align 4, !tbaa !5
  %340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = call ptr @s2n_strerror(i32 noundef %341, ptr noundef @.str.4)
  %343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @s2n_strerror_debug(i32 noundef %344, ptr noundef @.str.4)
  %346 = call ptr @__errno_location() #12
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call ptr @strerror(i32 noundef %347) #11
  %349 = call ptr @__errno_location() #12
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %338, ptr noundef @.str.2, i32 noundef %339, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 96, ptr noundef %342, ptr noundef %345, ptr noundef %348, i32 noundef %350) #11
  br label %369

352:                                              ; preds = %330, %323
  %353 = load i32, ptr %14, align 4, !tbaa !5
  %354 = call ptr @__errno_location() #12
  store i32 %353, ptr %354, align 4, !tbaa !5
  %355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call ptr @s2n_strerror(i32 noundef %358, ptr noundef @.str.4)
  %360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror_debug(i32 noundef %361, ptr noundef @.str.4)
  %363 = call ptr @__errno_location() #12
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call ptr @strerror(i32 noundef %364) #11
  %366 = call ptr @__errno_location() #12
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %355, ptr noundef @.str.5, i32 noundef %356, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 96, ptr noundef %359, ptr noundef %362, ptr noundef %365, i32 noundef %367) #11
  br label %369

369:                                              ; preds = %352, %335
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %370

370:                                              ; preds = %369
  br label %371

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

372:                                              ; No predecessors!
  br label %373

373:                                              ; preds = %372
  br label %374

374:                                              ; preds = %373, %316
  br label %375

375:                                              ; preds = %374
  br label %376

376:                                              ; preds = %375
  %377 = load ptr, ptr %13, align 8, !tbaa !9
  %378 = getelementptr inbounds %struct.s2n_connection, ptr %377, i32 0, i32 72
  %379 = getelementptr inbounds %struct.s2n_x509_validator, ptr %378, i32 0, i32 2
  store i8 1, ptr %379, align 8, !tbaa !15
  %380 = load ptr, ptr %13, align 8, !tbaa !9
  %381 = getelementptr inbounds %struct.s2n_connection, ptr %380, i32 0, i32 23
  store i8 34, ptr %381, align 4, !tbaa !42
  br label %382

382:                                              ; preds = %376
  %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 %13, align 8, !tbaa !9
  %386 = getelementptr inbounds %struct.s2n_connection, ptr %385, i32 0, i32 23
  %387 = load i8, ptr %386, align 4, !tbaa !42
  %388 = zext i8 %387 to i32
  %389 = icmp eq i32 %388, 34
  br i1 %389, label %443, label %390

390:                                              ; preds = %382
  br label %391

391:                                              ; preds = %390
  br label %392

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

399:                                              ; preds = %392
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = call i32 @fileno(ptr noundef %400) #11
  %402 = call i32 @isatty(i32 noundef %401) #11
  %403 = icmp ne i32 %402, 0
  br i1 %403, label %404, label %421

404:                                              ; preds = %399
  %405 = load i32, ptr %15, align 4, !tbaa !5
  %406 = call ptr @__errno_location() #12
  store i32 %405, ptr %406, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %410, ptr noundef @.str.4)
  %412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror_debug(i32 noundef %413, ptr noundef @.str.4)
  %415 = call ptr @__errno_location() #12
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @strerror(i32 noundef %416) #11
  %418 = call ptr @__errno_location() #12
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %407, ptr noundef @.str.2, i32 noundef %408, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 102, ptr noundef %411, ptr noundef %414, ptr noundef %417, i32 noundef %419) #11
  br label %438

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

438:                                              ; preds = %421, %404
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %439

439:                                              ; preds = %438
  br label %440

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

441:                                              ; No predecessors!
  br label %442

442:                                              ; preds = %441
  br label %443

443:                                              ; preds = %442, %382
  br label %444

444:                                              ; preds = %443
  br label %445

445:                                              ; preds = %444
  br label %446

446:                                              ; preds = %445
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %448 = add nsw i32 %447, 1
  store i32 %448, ptr @test_count, align 4, !tbaa !5
  %449 = load ptr, ptr %13, align 8, !tbaa !9
  %450 = getelementptr inbounds %struct.s2n_connection, ptr %449, i32 0, i32 52
  %451 = getelementptr inbounds %struct.s2n_handshake, ptr %450, i32 0, i32 0
  %452 = call i32 @s2n_stuffer_write(ptr noundef %451, ptr noundef %10)
  %453 = icmp eq i32 %452, -1
  br i1 %453, label %454, label %507

454:                                              ; preds = %446
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %457 = call ptr @__errno_location() #12
  %458 = load i32, ptr %457, align 4, !tbaa !5
  store i32 %458, ptr %16, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @s2n_print_stacktrace(ptr noundef %459)
  %461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc i8 %461 to i1
  br i1 %462, label %463, label %485

463:                                              ; preds = %456
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @fileno(ptr noundef %464) #11
  %466 = call i32 @isatty(i32 noundef %465) #11
  %467 = icmp ne i32 %466, 0
  br i1 %467, label %468, label %485

468:                                              ; preds = %463
  %469 = load i32, ptr %16, align 4, !tbaa !5
  %470 = call ptr @__errno_location() #12
  store i32 %469, ptr %470, align 4, !tbaa !5
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror(i32 noundef %474, ptr noundef @.str.4)
  %476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = call ptr @s2n_strerror_debug(i32 noundef %477, ptr noundef @.str.4)
  %479 = call ptr @__errno_location() #12
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @strerror(i32 noundef %480) #11
  %482 = call ptr @__errno_location() #12
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef @.str.2, i32 noundef %472, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 103, ptr noundef %475, ptr noundef %478, ptr noundef %481, i32 noundef %483) #11
  br label %502

485:                                              ; preds = %463, %456
  %486 = load i32, ptr %16, align 4, !tbaa !5
  %487 = call ptr @__errno_location() #12
  store i32 %486, ptr %487, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror(i32 noundef %491, ptr noundef @.str.4)
  %493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror_debug(i32 noundef %494, ptr noundef @.str.4)
  %496 = call ptr @__errno_location() #12
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #11
  %499 = call ptr @__errno_location() #12
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %488, ptr noundef @.str.5, i32 noundef %489, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 103, ptr noundef %492, ptr noundef %495, ptr noundef %498, i32 noundef %500) #11
  br label %502

502:                                              ; preds = %485, %468
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %503

503:                                              ; preds = %502
  br label %504

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

505:                                              ; No predecessors!
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506, %446
  br label %508

508:                                              ; preds = %507
  br label %509

509:                                              ; preds = %508
  br label %510

510:                                              ; preds = %509
  %511 = load i32, ptr @test_count, align 4, !tbaa !5
  %512 = add nsw i32 %511, 1
  store i32 %512, ptr @test_count, align 4, !tbaa !5
  %513 = load ptr, ptr %13, align 8, !tbaa !9
  %514 = call i32 @s2n_server_cert_recv(ptr noundef %513)
  %515 = icmp eq i32 %514, -1
  br i1 %515, label %516, label %569

516:                                              ; preds = %510
  br label %517

517:                                              ; preds = %516
  br label %518

518:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %519 = call ptr @__errno_location() #12
  %520 = load i32, ptr %519, align 4, !tbaa !5
  store i32 %520, ptr %17, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @s2n_print_stacktrace(ptr noundef %521)
  %523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %524 = trunc i8 %523 to i1
  br i1 %524, label %525, label %547

525:                                              ; preds = %518
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = call i32 @fileno(ptr noundef %526) #11
  %528 = call i32 @isatty(i32 noundef %527) #11
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %530, label %547

530:                                              ; preds = %525
  %531 = load i32, ptr %17, align 4, !tbaa !5
  %532 = call ptr @__errno_location() #12
  store i32 %531, ptr %532, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror(i32 noundef %536, ptr noundef @.str.4)
  %538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call ptr @s2n_strerror_debug(i32 noundef %539, ptr noundef @.str.4)
  %541 = call ptr @__errno_location() #12
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @strerror(i32 noundef %542) #11
  %544 = call ptr @__errno_location() #12
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %533, ptr noundef @.str.2, i32 noundef %534, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 104, ptr noundef %537, ptr noundef %540, ptr noundef %543, i32 noundef %545) #11
  br label %564

547:                                              ; preds = %525, %518
  %548 = load i32, ptr %17, align 4, !tbaa !5
  %549 = call ptr @__errno_location() #12
  store i32 %548, ptr %549, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror(i32 noundef %553, ptr noundef @.str.4)
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror_debug(i32 noundef %556, ptr noundef @.str.4)
  %558 = call ptr @__errno_location() #12
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #11
  %561 = call ptr @__errno_location() #12
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef @.str.5, i32 noundef %551, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 104, ptr noundef %554, ptr noundef %557, ptr noundef %560, i32 noundef %562) #11
  br label %564

564:                                              ; preds = %547, %530
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %565

565:                                              ; preds = %564
  br label %566

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

567:                                              ; No predecessors!
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568, %510
  br label %570

570:                                              ; preds = %569
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr @test_count, align 4, !tbaa !5
  %575 = load ptr, ptr %13, align 8, !tbaa !9
  %576 = getelementptr inbounds %struct.s2n_connection, ptr %575, i32 0, i32 52
  %577 = getelementptr inbounds %struct.s2n_handshake, ptr %576, i32 0, i32 0
  %578 = getelementptr inbounds %struct.s2n_stuffer, ptr %577, i32 0, i32 2
  %579 = load i32, ptr %578, align 4, !tbaa !43
  %580 = load ptr, ptr %13, align 8, !tbaa !9
  %581 = getelementptr inbounds %struct.s2n_connection, ptr %580, i32 0, i32 52
  %582 = getelementptr inbounds %struct.s2n_handshake, ptr %581, i32 0, i32 0
  %583 = getelementptr inbounds %struct.s2n_stuffer, ptr %582, i32 0, i32 1
  %584 = load i32, ptr %583, align 8, !tbaa !44
  %585 = sub i32 %579, %584
  %586 = icmp eq i32 %585, 0
  br i1 %586, label %640, label %587

587:                                              ; preds = %572
  br label %588

588:                                              ; preds = %587
  br label %589

589:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %590 = call ptr @__errno_location() #12
  %591 = load i32, ptr %590, align 4, !tbaa !5
  store i32 %591, ptr %18, align 4, !tbaa !5
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = call i32 @s2n_print_stacktrace(ptr noundef %592)
  %594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %595 = trunc i8 %594 to i1
  br i1 %595, label %596, label %618

596:                                              ; preds = %589
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = call i32 @fileno(ptr noundef %597) #11
  %599 = call i32 @isatty(i32 noundef %598) #11
  %600 = icmp ne i32 %599, 0
  br i1 %600, label %601, label %618

601:                                              ; preds = %596
  %602 = load i32, ptr %18, align 4, !tbaa !5
  %603 = call ptr @__errno_location() #12
  store i32 %602, ptr %603, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = load i32, ptr @test_count, align 4, !tbaa !5
  %606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror(i32 noundef %607, ptr noundef @.str.4)
  %609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror_debug(i32 noundef %610, ptr noundef @.str.4)
  %612 = call ptr @__errno_location() #12
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @strerror(i32 noundef %613) #11
  %615 = call ptr @__errno_location() #12
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %604, ptr noundef @.str.2, i32 noundef %605, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 105, ptr noundef %608, ptr noundef %611, ptr noundef %614, i32 noundef %616) #11
  br label %635

618:                                              ; preds = %596, %589
  %619 = load i32, ptr %18, align 4, !tbaa !5
  %620 = call ptr @__errno_location() #12
  store i32 %619, ptr %620, align 4, !tbaa !5
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = call ptr @s2n_strerror(i32 noundef %624, ptr noundef @.str.4)
  %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_debug(i32 noundef %627, ptr noundef @.str.4)
  %629 = call ptr @__errno_location() #12
  %630 = load i32, ptr %629, align 4, !tbaa !5
  %631 = call ptr @strerror(i32 noundef %630) #11
  %632 = call ptr @__errno_location() #12
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %621, ptr noundef @.str.5, i32 noundef %622, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 105, ptr noundef %625, ptr noundef %628, ptr noundef %631, i32 noundef %633) #11
  br label %635

635:                                              ; preds = %618, %601
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %636

636:                                              ; preds = %635
  br label %637

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

638:                                              ; No predecessors!
  br label %639

639:                                              ; preds = %638
  br label %640

640:                                              ; preds = %639, %572
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641
  %643 = load ptr, ptr %13, align 8, !tbaa !9
  %644 = getelementptr inbounds %struct.s2n_connection, ptr %643, i32 0, i32 23
  store i8 33, ptr %644, align 4, !tbaa !42
  br label %645

645:                                              ; preds = %642
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = add nsw i32 %646, 1
  store i32 %647, ptr @test_count, align 4, !tbaa !5
  %648 = load ptr, ptr %13, align 8, !tbaa !9
  %649 = getelementptr inbounds %struct.s2n_connection, ptr %648, i32 0, i32 23
  %650 = load i8, ptr %649, align 4, !tbaa !42
  %651 = zext i8 %650 to i32
  %652 = icmp eq i32 %651, 33
  br i1 %652, label %706, label %653

653:                                              ; preds = %645
  br label %654

654:                                              ; preds = %653
  br label %655

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

662:                                              ; preds = %655
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = call i32 @fileno(ptr noundef %663) #11
  %665 = call i32 @isatty(i32 noundef %664) #11
  %666 = icmp ne i32 %665, 0
  br i1 %666, label %667, label %684

667:                                              ; preds = %662
  %668 = load i32, ptr %19, align 4, !tbaa !5
  %669 = call ptr @__errno_location() #12
  store i32 %668, ptr %669, align 4, !tbaa !5
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %673, ptr noundef @.str.4)
  %675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call ptr @s2n_strerror_debug(i32 noundef %676, ptr noundef @.str.4)
  %678 = call ptr @__errno_location() #12
  %679 = load i32, ptr %678, align 4, !tbaa !5
  %680 = call ptr @strerror(i32 noundef %679) #11
  %681 = call ptr @__errno_location() #12
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %670, ptr noundef @.str.2, i32 noundef %671, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 109, ptr noundef %674, ptr noundef %677, ptr noundef %680, i32 noundef %682) #11
  br label %701

684:                                              ; preds = %662, %655
  %685 = load i32, ptr %19, align 4, !tbaa !5
  %686 = call ptr @__errno_location() #12
  store i32 %685, ptr %686, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = load i32, ptr @test_count, align 4, !tbaa !5
  %689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = call ptr @s2n_strerror(i32 noundef %690, ptr noundef @.str.4)
  %692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = call ptr @s2n_strerror_debug(i32 noundef %693, ptr noundef @.str.4)
  %695 = call ptr @__errno_location() #12
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = call ptr @strerror(i32 noundef %696) #11
  %698 = call ptr @__errno_location() #12
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %687, ptr noundef @.str.5, i32 noundef %688, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 109, ptr noundef %691, ptr noundef %694, ptr noundef %697, i32 noundef %699) #11
  br label %701

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

702:                                              ; preds = %701
  br label %703

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

704:                                              ; No predecessors!
  br label %705

705:                                              ; preds = %704
  br label %706

706:                                              ; preds = %705, %645
  br label %707

707:                                              ; preds = %706
  br label %708

708:                                              ; preds = %707
  br label %709

709:                                              ; preds = %708
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr @test_count, align 4, !tbaa !5
  %712 = load ptr, ptr %13, align 8, !tbaa !9
  %713 = getelementptr inbounds %struct.s2n_connection, ptr %712, i32 0, i32 52
  %714 = getelementptr inbounds %struct.s2n_handshake, ptr %713, i32 0, i32 0
  %715 = call i32 @s2n_stuffer_write(ptr noundef %714, ptr noundef %10)
  %716 = icmp eq i32 %715, -1
  br i1 %716, label %717, label %770

717:                                              ; preds = %709
  br label %718

718:                                              ; preds = %717
  br label %719

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

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

731:                                              ; preds = %726
  %732 = load i32, ptr %20, align 4, !tbaa !5
  %733 = call ptr @__errno_location() #12
  store i32 %732, ptr %733, align 4, !tbaa !5
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call ptr @s2n_strerror(i32 noundef %737, ptr noundef @.str.4)
  %739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror_debug(i32 noundef %740, ptr noundef @.str.4)
  %742 = call ptr @__errno_location() #12
  %743 = load i32, ptr %742, align 4, !tbaa !5
  %744 = call ptr @strerror(i32 noundef %743) #11
  %745 = call ptr @__errno_location() #12
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %734, ptr noundef @.str.2, i32 noundef %735, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 110, ptr noundef %738, ptr noundef %741, ptr noundef %744, i32 noundef %746) #11
  br label %765

748:                                              ; preds = %726, %719
  %749 = load i32, ptr %20, align 4, !tbaa !5
  %750 = call ptr @__errno_location() #12
  store i32 %749, ptr %750, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror(i32 noundef %754, ptr noundef @.str.4)
  %756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror_debug(i32 noundef %757, ptr noundef @.str.4)
  %759 = call ptr @__errno_location() #12
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @strerror(i32 noundef %760) #11
  %762 = call ptr @__errno_location() #12
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %751, ptr noundef @.str.5, i32 noundef %752, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 110, ptr noundef %755, ptr noundef %758, ptr noundef %761, i32 noundef %763) #11
  br label %765

765:                                              ; preds = %748, %731
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %766

766:                                              ; preds = %765
  br label %767

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

768:                                              ; No predecessors!
  br label %769

769:                                              ; preds = %768
  br label %770

770:                                              ; preds = %769, %709
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  br label %773

773:                                              ; preds = %772
  br label %774

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

780:                                              ; preds = %774
  br label %781

781:                                              ; preds = %780
  br label %782

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

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

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

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

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

829:                                              ; preds = %828
  br label %830

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

831:                                              ; No predecessors!
  br label %832

832:                                              ; preds = %831
  br label %833

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

834:                                              ; preds = %833
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr @test_count, align 4, !tbaa !5
  %839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = icmp eq i32 %840, 0
  br i1 %841, label %842, label %895

842:                                              ; preds = %836
  br label %843

843:                                              ; preds = %842
  br label %844

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

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

856:                                              ; preds = %851
  %857 = load i32, ptr %22, align 4, !tbaa !5
  %858 = call ptr @__errno_location() #12
  store i32 %857, ptr %858, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = load i32, ptr @test_count, align 4, !tbaa !5
  %861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call ptr @s2n_strerror(i32 noundef %862, ptr noundef @.str.4)
  %864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call ptr @s2n_strerror_debug(i32 noundef %865, ptr noundef @.str.4)
  %867 = call ptr @__errno_location() #12
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call ptr @strerror(i32 noundef %868) #11
  %870 = call ptr @__errno_location() #12
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %859, ptr noundef @.str.2, i32 noundef %860, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 111, ptr noundef %863, ptr noundef %866, ptr noundef %869, i32 noundef %871) #11
  br label %890

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

890:                                              ; preds = %873, %856
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %891

891:                                              ; preds = %890
  br label %892

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

893:                                              ; No predecessors!
  br label %894

894:                                              ; preds = %893
  br label %895

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

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = add nsw i32 %899, 1
  store i32 %900, ptr @test_count, align 4, !tbaa !5
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror_debug(i32 noundef %902, ptr noundef @.str.4)
  %904 = icmp eq ptr %903, null
  br i1 %904, label %905, label %958

905:                                              ; preds = %898
  br label %906

906:                                              ; preds = %905
  br label %907

907:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %908 = call ptr @__errno_location() #12
  %909 = load i32, ptr %908, align 4, !tbaa !5
  store i32 %909, ptr %23, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = call i32 @s2n_print_stacktrace(ptr noundef %910)
  %912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %913 = trunc i8 %912 to i1
  br i1 %913, label %914, label %936

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

919:                                              ; preds = %914
  %920 = load i32, ptr %23, align 4, !tbaa !5
  %921 = call ptr @__errno_location() #12
  store i32 %920, ptr %921, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %925, ptr noundef @.str.4)
  %927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror_debug(i32 noundef %928, ptr noundef @.str.4)
  %930 = call ptr @__errno_location() #12
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #11
  %933 = call ptr @__errno_location() #12
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %922, ptr noundef @.str.2, i32 noundef %923, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 111, ptr noundef %926, ptr noundef %929, ptr noundef %932, i32 noundef %934) #11
  br label %953

936:                                              ; preds = %914, %907
  %937 = load i32, ptr %23, align 4, !tbaa !5
  %938 = call ptr @__errno_location() #12
  store i32 %937, ptr %938, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = load i32, ptr @test_count, align 4, !tbaa !5
  %941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef @.str.4)
  %944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %945 = load i32, ptr %944, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror_debug(i32 noundef %945, ptr noundef @.str.4)
  %947 = call ptr @__errno_location() #12
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = call ptr @strerror(i32 noundef %948) #11
  %950 = call ptr @__errno_location() #12
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %939, ptr noundef @.str.5, i32 noundef %940, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 111, ptr noundef %943, ptr noundef %946, ptr noundef %949, i32 noundef %951) #11
  br label %953

953:                                              ; preds = %936, %919
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %954

954:                                              ; preds = %953
  br label %955

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

956:                                              ; No predecessors!
  br label %957

957:                                              ; preds = %956
  br label %958

958:                                              ; preds = %957, %898
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  br label %961

961:                                              ; preds = %960
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %962, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %963 = call ptr @__errno_location() #12
  store i32 0, ptr %963, align 4, !tbaa !5
  br label %964

964:                                              ; preds = %961
  br label %965

965:                                              ; preds = %964
  br label %966

966:                                              ; preds = %965
  br label %967

967:                                              ; preds = %966
  br label %968

968:                                              ; preds = %967
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = add nsw i32 %969, 1
  store i32 %970, ptr @test_count, align 4, !tbaa !5
  %971 = load ptr, ptr %13, align 8, !tbaa !9
  %972 = call i32 @s2n_connection_free(ptr noundef %971)
  %973 = icmp eq i32 %972, -1
  br i1 %973, label %974, label %1027

974:                                              ; preds = %968
  br label %975

975:                                              ; preds = %974
  br label %976

976:                                              ; preds = %975
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %977 = call ptr @__errno_location() #12
  %978 = load i32, ptr %977, align 4, !tbaa !5
  store i32 %978, ptr %24, align 4, !tbaa !5
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = call i32 @s2n_print_stacktrace(ptr noundef %979)
  %981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %982 = trunc i8 %981 to i1
  br i1 %982, label %983, label %1005

983:                                              ; preds = %976
  %984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %985 = call i32 @fileno(ptr noundef %984) #11
  %986 = call i32 @isatty(i32 noundef %985) #11
  %987 = icmp ne i32 %986, 0
  br i1 %987, label %988, label %1005

988:                                              ; preds = %983
  %989 = load i32, ptr %24, align 4, !tbaa !5
  %990 = call ptr @__errno_location() #12
  store i32 %989, ptr %990, align 4, !tbaa !5
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = load i32, ptr @test_count, align 4, !tbaa !5
  %993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %994 = load i32, ptr %993, align 4, !tbaa !5
  %995 = call ptr @s2n_strerror(i32 noundef %994, ptr noundef @.str.4)
  %996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %997 = load i32, ptr %996, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror_debug(i32 noundef %997, ptr noundef @.str.4)
  %999 = call ptr @__errno_location() #12
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @strerror(i32 noundef %1000) #11
  %1002 = call ptr @__errno_location() #12
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %991, ptr noundef @.str.2, i32 noundef %992, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 113, ptr noundef %995, ptr noundef %998, ptr noundef %1001, i32 noundef %1003) #11
  br label %1022

1005:                                             ; preds = %983, %976
  %1006 = load i32, ptr %24, align 4, !tbaa !5
  %1007 = call ptr @__errno_location() #12
  store i32 %1006, ptr %1007, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = call ptr @s2n_strerror(i32 noundef %1011, ptr noundef @.str.4)
  %1013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror_debug(i32 noundef %1014, ptr noundef @.str.4)
  %1016 = call ptr @__errno_location() #12
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call ptr @strerror(i32 noundef %1017) #11
  %1019 = call ptr @__errno_location() #12
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1008, ptr noundef @.str.5, i32 noundef %1009, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1012, ptr noundef %1015, ptr noundef %1018, i32 noundef %1020) #11
  br label %1022

1022:                                             ; preds = %1005, %988
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

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

1025:                                             ; No predecessors!
  br label %1026

1026:                                             ; preds = %1025
  br label %1027

1027:                                             ; preds = %1026, %968
  br label %1028

1028:                                             ; preds = %1027
  br label %1029

1029:                                             ; preds = %1028
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  store i32 0, ptr %12, align 4
  br label %1030

1030:                                             ; preds = %1029, %312
  %1031 = call i32 @s2n_free(ptr noundef %10)
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #11
  %1032 = load i32, ptr %12, align 4
  switch i32 %1032, label %2839 [
    i32 0, label %1033
    i32 1, label %2837
  ]

1033:                                             ; preds = %1030
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #11
  store ptr null, ptr %25, align 8, !tbaa !9
  br label %1034

1034:                                             ; preds = %1033
  %1035 = load i32, ptr @test_count, align 4, !tbaa !5
  %1036 = add nsw i32 %1035, 1
  store i32 %1036, ptr @test_count, align 4, !tbaa !5
  %1037 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %1037, ptr %25, align 8, !tbaa !9
  %1038 = icmp eq ptr %1037, null
  br i1 %1038, label %1039, label %1092

1039:                                             ; preds = %1034
  br label %1040

1040:                                             ; preds = %1039
  br label %1041

1041:                                             ; preds = %1040
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %1042 = call ptr @__errno_location() #12
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  store i32 %1043, ptr %26, align 4, !tbaa !5
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = call i32 @s2n_print_stacktrace(ptr noundef %1044)
  %1046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1047 = trunc i8 %1046 to i1
  br i1 %1047, label %1048, label %1070

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

1053:                                             ; preds = %1048
  %1054 = load i32, ptr %26, align 4, !tbaa !5
  %1055 = call ptr @__errno_location() #12
  store i32 %1054, ptr %1055, align 4, !tbaa !5
  %1056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1057 = load i32, ptr @test_count, align 4, !tbaa !5
  %1058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror(i32 noundef %1059, ptr noundef @.str.4)
  %1061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call ptr @s2n_strerror_debug(i32 noundef %1062, ptr noundef @.str.4)
  %1064 = call ptr @__errno_location() #12
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @strerror(i32 noundef %1065) #11
  %1067 = call ptr @__errno_location() #12
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1056, ptr noundef @.str.2, i32 noundef %1057, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1060, ptr noundef %1063, ptr noundef %1066, i32 noundef %1068) #11
  br label %1087

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

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

1088:                                             ; preds = %1087
  br label %1089

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

1090:                                             ; No predecessors!
  br label %1091

1091:                                             ; preds = %1090
  br label %1092

1092:                                             ; preds = %1091, %1034
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

1094:                                             ; preds = %1093
  %1095 = load ptr, ptr %25, align 8, !tbaa !9
  %1096 = call ptr @strcpy(ptr noundef %1095, ptr noundef @tls13_cert_chain_header_hex) #11
  %1097 = load ptr, ptr %25, align 8, !tbaa !9
  %1098 = call ptr @strcat(ptr noundef %1097, ptr noundef @tls13_cert_hex) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %27) #11
  call void @llvm.memset.p0.i64(ptr align 8 %27, i8 0, i64 24, i1 false)
  br label %1099

1099:                                             ; preds = %1094
  %1100 = load ptr, ptr %25, align 8, !tbaa !9
  %1101 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %27, ptr noundef %1100)
  %1102 = getelementptr inbounds %struct.s2n_result, ptr %28, i32 0, i32 0
  store i32 %1101, ptr %1102, align 4
  %1103 = getelementptr inbounds %struct.s2n_result, ptr %28, i32 0, i32 0
  %1104 = load i32, ptr %1103, align 4
  %1105 = call zeroext i1 @s2n_result_is_ok(i32 %1104)
  br i1 %1105, label %1107, label %1106

1106:                                             ; preds = %1099
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %1922

1107:                                             ; preds = %1099
  br label %1108

1108:                                             ; preds = %1107
  br label %1109

1109:                                             ; preds = %1108
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #11
  call void @llvm.memset.p0.i64(ptr align 8 %29, i8 0, i64 24, i1 false)
  br label %1110

1110:                                             ; preds = %1109
  %1111 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %29, ptr noundef @tls13_cert_hex)
  %1112 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  store i32 %1111, ptr %1112, align 4
  %1113 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  %1114 = load i32, ptr %1113, align 4
  %1115 = call zeroext i1 @s2n_result_is_ok(i32 %1114)
  br i1 %1115, label %1117, label %1116

1116:                                             ; preds = %1110
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %1920

1117:                                             ; preds = %1110
  br label %1118

1118:                                             ; preds = %1117
  br label %1119

1119:                                             ; preds = %1118
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  store ptr null, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #11
  store i8 0, ptr %32, align 1, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 112, ptr %33) #11
  call void @llvm.memset.p0.i64(ptr align 8 %33, i8 0, i64 112, i1 false)
  %1120 = getelementptr inbounds %struct.s2n_cert, ptr %33, i32 0, i32 0
  %1121 = getelementptr inbounds %struct.s2n_cert, ptr %33, i32 0, i32 1
  %1122 = getelementptr inbounds %struct.s2n_cert, ptr %33, i32 0, i32 2
  %1123 = getelementptr inbounds %struct.s2n_cert, ptr %33, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1123, ptr align 8 %29, i64 24, i1 false), !tbaa.struct !46
  %1124 = getelementptr inbounds %struct.s2n_cert, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #11
  %1125 = getelementptr inbounds %struct.s2n_cert_chain, ptr %34, i32 0, i32 0
  %1126 = getelementptr inbounds %struct.s2n_blob, ptr %29, i32 0, i32 1
  %1127 = load i32, ptr %1126, align 8, !tbaa !47
  %1128 = add i32 %1127, 3
  store i32 %1128, ptr %1125, align 8, !tbaa !48
  %1129 = getelementptr inbounds %struct.s2n_cert_chain, ptr %34, i32 0, i32 1
  store ptr %33, ptr %1129, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 88, ptr %35) #11
  call void @llvm.memset.p0.i64(ptr align 8 %35, i8 0, i64 88, i1 false)
  %1130 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %35, i32 0, i32 0
  store ptr %34, ptr %1130, align 8, !tbaa !51
  %1131 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %35, i32 0, i32 1
  %1132 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %35, i32 0, i32 2
  %1133 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %35, i32 0, i32 3
  %1134 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %35, i32 0, i32 4
  %1135 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %35, i32 0, i32 5
  %1136 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %35, i32 0, i32 6
  br label %1137

1137:                                             ; preds = %1119
  %1138 = load i32, ptr @test_count, align 4, !tbaa !5
  %1139 = add nsw i32 %1138, 1
  store i32 %1139, ptr @test_count, align 4, !tbaa !5
  %1140 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1140, ptr %31, align 8, !tbaa !9
  %1141 = icmp eq ptr %1140, null
  br i1 %1141, label %1142, label %1195

1142:                                             ; preds = %1137
  br label %1143

1143:                                             ; preds = %1142
  br label %1144

1144:                                             ; preds = %1143
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1145 = call ptr @__errno_location() #12
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  store i32 %1146, ptr %36, align 4, !tbaa !5
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = call i32 @s2n_print_stacktrace(ptr noundef %1147)
  %1149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1150 = trunc i8 %1149 to i1
  br i1 %1150, label %1151, label %1173

1151:                                             ; preds = %1144
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @fileno(ptr noundef %1152) #11
  %1154 = call i32 @isatty(i32 noundef %1153) #11
  %1155 = icmp ne i32 %1154, 0
  br i1 %1155, label %1156, label %1173

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

1173:                                             ; preds = %1151, %1144
  %1174 = load i32, ptr %36, align 4, !tbaa !5
  %1175 = call ptr @__errno_location() #12
  store i32 %1174, ptr %1175, align 4, !tbaa !5
  %1176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1177 = load i32, ptr @test_count, align 4, !tbaa !5
  %1178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call ptr @s2n_strerror(i32 noundef %1179, ptr noundef @.str.4)
  %1181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror_debug(i32 noundef %1182, ptr noundef @.str.4)
  %1184 = call ptr @__errno_location() #12
  %1185 = load i32, ptr %1184, align 4, !tbaa !5
  %1186 = call ptr @strerror(i32 noundef %1185) #11
  %1187 = call ptr @__errno_location() #12
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1176, ptr noundef @.str.5, i32 noundef %1177, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1180, ptr noundef %1183, ptr noundef %1186, i32 noundef %1188) #11
  br label %1190

1190:                                             ; preds = %1173, %1156
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1191

1191:                                             ; preds = %1190
  br label %1192

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

1193:                                             ; No predecessors!
  br label %1194

1194:                                             ; preds = %1193
  br label %1195

1195:                                             ; preds = %1194, %1137
  br label %1196

1196:                                             ; preds = %1195
  br label %1197

1197:                                             ; preds = %1196
  %1198 = load ptr, ptr %31, align 8, !tbaa !9
  %1199 = getelementptr inbounds %struct.s2n_connection, ptr %1198, i32 0, i32 23
  store i8 34, ptr %1199, align 4, !tbaa !42
  %1200 = load ptr, ptr %31, align 8, !tbaa !9
  %1201 = getelementptr inbounds %struct.s2n_connection, ptr %1200, i32 0, i32 32
  %1202 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1201, i32 0, i32 7
  store ptr %35, ptr %1202, align 8, !tbaa !53
  br label %1203

1203:                                             ; preds = %1197
  %1204 = load i32, ptr @test_count, align 4, !tbaa !5
  %1205 = add nsw i32 %1204, 1
  store i32 %1205, ptr @test_count, align 4, !tbaa !5
  %1206 = load ptr, ptr %31, align 8, !tbaa !9
  %1207 = getelementptr inbounds %struct.s2n_connection, ptr %1206, i32 0, i32 23
  %1208 = load i8, ptr %1207, align 4, !tbaa !42
  %1209 = zext i8 %1208 to i32
  %1210 = icmp eq i32 %1209, 34
  br i1 %1210, label %1264, label %1211

1211:                                             ; preds = %1203
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

1213:                                             ; preds = %1212
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1214 = call ptr @__errno_location() #12
  %1215 = load i32, ptr %1214, align 4, !tbaa !5
  store i32 %1215, ptr %37, align 4, !tbaa !5
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = call i32 @s2n_print_stacktrace(ptr noundef %1216)
  %1218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1219 = trunc i8 %1218 to i1
  br i1 %1219, label %1220, label %1242

1220:                                             ; preds = %1213
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = call i32 @fileno(ptr noundef %1221) #11
  %1223 = call i32 @isatty(i32 noundef %1222) #11
  %1224 = icmp ne i32 %1223, 0
  br i1 %1224, label %1225, label %1242

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

1242:                                             ; preds = %1220, %1213
  %1243 = load i32, ptr %37, align 4, !tbaa !5
  %1244 = call ptr @__errno_location() #12
  store i32 %1243, ptr %1244, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = call ptr @s2n_strerror(i32 noundef %1248, ptr noundef @.str.4)
  %1250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror_debug(i32 noundef %1251, ptr noundef @.str.4)
  %1253 = call ptr @__errno_location() #12
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @strerror(i32 noundef %1254) #11
  %1256 = call ptr @__errno_location() #12
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef @.str.5, i32 noundef %1246, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 142, ptr noundef %1249, ptr noundef %1252, ptr noundef %1255, i32 noundef %1257) #11
  br label %1259

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

1260:                                             ; preds = %1259
  br label %1261

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

1262:                                             ; No predecessors!
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263, %1203
  br label %1265

1265:                                             ; preds = %1264
  br label %1266

1266:                                             ; preds = %1265
  br label %1267

1267:                                             ; preds = %1266
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = add nsw i32 %1268, 1
  store i32 %1269, ptr @test_count, align 4, !tbaa !5
  %1270 = load ptr, ptr %31, align 8, !tbaa !9
  %1271 = call i32 @s2n_server_cert_send(ptr noundef %1270)
  %1272 = icmp eq i32 %1271, -1
  br i1 %1272, label %1273, label %1326

1273:                                             ; preds = %1267
  br label %1274

1274:                                             ; preds = %1273
  br label %1275

1275:                                             ; preds = %1274
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1276 = call ptr @__errno_location() #12
  %1277 = load i32, ptr %1276, align 4, !tbaa !5
  store i32 %1277, ptr %38, align 4, !tbaa !5
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = call i32 @s2n_print_stacktrace(ptr noundef %1278)
  %1280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1281 = trunc i8 %1280 to i1
  br i1 %1281, label %1282, label %1304

1282:                                             ; preds = %1275
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = call i32 @fileno(ptr noundef %1283) #11
  %1285 = call i32 @isatty(i32 noundef %1284) #11
  %1286 = icmp ne i32 %1285, 0
  br i1 %1286, label %1287, label %1304

1287:                                             ; preds = %1282
  %1288 = load i32, ptr %38, align 4, !tbaa !5
  %1289 = call ptr @__errno_location() #12
  store i32 %1288, ptr %1289, align 4, !tbaa !5
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call ptr @s2n_strerror(i32 noundef %1293, ptr noundef @.str.4)
  %1295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror_debug(i32 noundef %1296, ptr noundef @.str.4)
  %1298 = call ptr @__errno_location() #12
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @strerror(i32 noundef %1299) #11
  %1301 = call ptr @__errno_location() #12
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef @.str.2, i32 noundef %1291, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 143, ptr noundef %1294, ptr noundef %1297, ptr noundef %1300, i32 noundef %1302) #11
  br label %1321

1304:                                             ; preds = %1282, %1275
  %1305 = load i32, ptr %38, align 4, !tbaa !5
  %1306 = call ptr @__errno_location() #12
  store i32 %1305, ptr %1306, align 4, !tbaa !5
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = load i32, ptr @test_count, align 4, !tbaa !5
  %1309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = call ptr @s2n_strerror(i32 noundef %1310, ptr noundef @.str.4)
  %1312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  %1314 = call ptr @s2n_strerror_debug(i32 noundef %1313, ptr noundef @.str.4)
  %1315 = call ptr @__errno_location() #12
  %1316 = load i32, ptr %1315, align 4, !tbaa !5
  %1317 = call ptr @strerror(i32 noundef %1316) #11
  %1318 = call ptr @__errno_location() #12
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1307, ptr noundef @.str.5, i32 noundef %1308, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 143, ptr noundef %1311, ptr noundef %1314, ptr noundef %1317, i32 noundef %1319) #11
  br label %1321

1321:                                             ; preds = %1304, %1287
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1322

1322:                                             ; preds = %1321
  br label %1323

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

1324:                                             ; No predecessors!
  br label %1325

1325:                                             ; preds = %1324
  br label %1326

1326:                                             ; preds = %1325, %1267
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

1328:                                             ; preds = %1327
  br label %1329

1329:                                             ; preds = %1328
  %1330 = load i32, ptr @test_count, align 4, !tbaa !5
  %1331 = add nsw i32 %1330, 1
  store i32 %1331, ptr @test_count, align 4, !tbaa !5
  %1332 = load ptr, ptr %31, align 8, !tbaa !9
  %1333 = getelementptr inbounds %struct.s2n_connection, ptr %1332, i32 0, i32 52
  %1334 = getelementptr inbounds %struct.s2n_handshake, ptr %1333, i32 0, i32 0
  %1335 = getelementptr inbounds %struct.s2n_stuffer, ptr %1334, i32 0, i32 2
  %1336 = load i32, ptr %1335, align 4, !tbaa !43
  %1337 = load ptr, ptr %31, align 8, !tbaa !9
  %1338 = getelementptr inbounds %struct.s2n_connection, ptr %1337, i32 0, i32 52
  %1339 = getelementptr inbounds %struct.s2n_handshake, ptr %1338, i32 0, i32 0
  %1340 = getelementptr inbounds %struct.s2n_stuffer, ptr %1339, i32 0, i32 1
  %1341 = load i32, ptr %1340, align 8, !tbaa !44
  %1342 = sub i32 %1336, %1341
  %1343 = getelementptr inbounds %struct.s2n_blob, ptr %27, i32 0, i32 1
  %1344 = load i32, ptr %1343, align 8, !tbaa !47
  %1345 = add i32 %1344, 2
  %1346 = icmp eq i32 %1342, %1345
  br i1 %1346, label %1400, label %1347

1347:                                             ; preds = %1329
  br label %1348

1348:                                             ; preds = %1347
  br label %1349

1349:                                             ; preds = %1348
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1350 = call ptr @__errno_location() #12
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  store i32 %1351, ptr %39, align 4, !tbaa !5
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = call i32 @s2n_print_stacktrace(ptr noundef %1352)
  %1354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1355 = trunc i8 %1354 to i1
  br i1 %1355, label %1356, label %1378

1356:                                             ; preds = %1349
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = call i32 @fileno(ptr noundef %1357) #11
  %1359 = call i32 @isatty(i32 noundef %1358) #11
  %1360 = icmp ne i32 %1359, 0
  br i1 %1360, label %1361, label %1378

1361:                                             ; preds = %1356
  %1362 = load i32, ptr %39, align 4, !tbaa !5
  %1363 = call ptr @__errno_location() #12
  store i32 %1362, ptr %1363, align 4, !tbaa !5
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = load i32, ptr @test_count, align 4, !tbaa !5
  %1366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call ptr @s2n_strerror(i32 noundef %1367, ptr noundef @.str.4)
  %1369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror_debug(i32 noundef %1370, ptr noundef @.str.4)
  %1372 = call ptr @__errno_location() #12
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  %1374 = call ptr @strerror(i32 noundef %1373) #11
  %1375 = call ptr @__errno_location() #12
  %1376 = load i32, ptr %1375, align 4, !tbaa !5
  %1377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1364, ptr noundef @.str.2, i32 noundef %1365, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 145, ptr noundef %1368, ptr noundef %1371, ptr noundef %1374, i32 noundef %1376) #11
  br label %1395

1378:                                             ; preds = %1356, %1349
  %1379 = load i32, ptr %39, align 4, !tbaa !5
  %1380 = call ptr @__errno_location() #12
  store i32 %1379, ptr %1380, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef @.str.4)
  %1386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call ptr @s2n_strerror_debug(i32 noundef %1387, ptr noundef @.str.4)
  %1389 = call ptr @__errno_location() #12
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call ptr @strerror(i32 noundef %1390) #11
  %1392 = call ptr @__errno_location() #12
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1381, ptr noundef @.str.5, i32 noundef %1382, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 145, ptr noundef %1385, ptr noundef %1388, ptr noundef %1391, i32 noundef %1393) #11
  br label %1395

1395:                                             ; preds = %1378, %1361
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

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

1398:                                             ; No predecessors!
  br label %1399

1399:                                             ; preds = %1398
  br label %1400

1400:                                             ; preds = %1399, %1329
  br label %1401

1401:                                             ; preds = %1400
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

1403:                                             ; preds = %1402
  %1404 = load i32, ptr @test_count, align 4, !tbaa !5
  %1405 = add nsw i32 %1404, 1
  store i32 %1405, ptr @test_count, align 4, !tbaa !5
  %1406 = load ptr, ptr %31, align 8, !tbaa !9
  %1407 = getelementptr inbounds %struct.s2n_connection, ptr %1406, i32 0, i32 52
  %1408 = getelementptr inbounds %struct.s2n_handshake, ptr %1407, i32 0, i32 0
  %1409 = call i32 @s2n_stuffer_read_uint8(ptr noundef %1408, ptr noundef %32)
  %1410 = icmp eq i32 %1409, -1
  br i1 %1410, label %1411, label %1464

1411:                                             ; preds = %1403
  br label %1412

1412:                                             ; preds = %1411
  br label %1413

1413:                                             ; preds = %1412
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1414 = call ptr @__errno_location() #12
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  store i32 %1415, ptr %40, align 4, !tbaa !5
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = call i32 @s2n_print_stacktrace(ptr noundef %1416)
  %1418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1419 = trunc i8 %1418 to i1
  br i1 %1419, label %1420, label %1442

1420:                                             ; preds = %1413
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = call i32 @fileno(ptr noundef %1421) #11
  %1423 = call i32 @isatty(i32 noundef %1422) #11
  %1424 = icmp ne i32 %1423, 0
  br i1 %1424, label %1425, label %1442

1425:                                             ; preds = %1420
  %1426 = load i32, ptr %40, align 4, !tbaa !5
  %1427 = call ptr @__errno_location() #12
  store i32 %1426, ptr %1427, align 4, !tbaa !5
  %1428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1429 = load i32, ptr @test_count, align 4, !tbaa !5
  %1430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror(i32 noundef %1431, ptr noundef @.str.4)
  %1433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror_debug(i32 noundef %1434, ptr noundef @.str.4)
  %1436 = call ptr @__errno_location() #12
  %1437 = load i32, ptr %1436, align 4, !tbaa !5
  %1438 = call ptr @strerror(i32 noundef %1437) #11
  %1439 = call ptr @__errno_location() #12
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  %1441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1428, ptr noundef @.str.2, i32 noundef %1429, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 146, ptr noundef %1432, ptr noundef %1435, ptr noundef %1438, i32 noundef %1440) #11
  br label %1459

1442:                                             ; preds = %1420, %1413
  %1443 = load i32, ptr %40, align 4, !tbaa !5
  %1444 = call ptr @__errno_location() #12
  store i32 %1443, ptr %1444, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = load i32, ptr @test_count, align 4, !tbaa !5
  %1447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = call ptr @s2n_strerror(i32 noundef %1448, ptr noundef @.str.4)
  %1450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = call ptr @s2n_strerror_debug(i32 noundef %1451, ptr noundef @.str.4)
  %1453 = call ptr @__errno_location() #12
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @strerror(i32 noundef %1454) #11
  %1456 = call ptr @__errno_location() #12
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1445, ptr noundef @.str.5, i32 noundef %1446, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 146, ptr noundef %1449, ptr noundef %1452, ptr noundef %1455, i32 noundef %1457) #11
  br label %1459

1459:                                             ; preds = %1442, %1425
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1460

1460:                                             ; preds = %1459
  br label %1461

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

1462:                                             ; No predecessors!
  br label %1463

1463:                                             ; preds = %1462
  br label %1464

1464:                                             ; preds = %1463, %1403
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  br label %1467

1467:                                             ; preds = %1466
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = add nsw i32 %1468, 1
  store i32 %1469, ptr @test_count, align 4, !tbaa !5
  %1470 = load i8, ptr %32, align 1, !tbaa !45
  %1471 = zext i8 %1470 to i32
  %1472 = icmp eq i32 %1471, 0
  br i1 %1472, label %1526, label %1473

1473:                                             ; preds = %1467
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

1475:                                             ; preds = %1474
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1476 = call ptr @__errno_location() #12
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  store i32 %1477, ptr %41, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @s2n_print_stacktrace(ptr noundef %1478)
  %1480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1481 = trunc i8 %1480 to i1
  br i1 %1481, label %1482, label %1504

1482:                                             ; preds = %1475
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = call i32 @fileno(ptr noundef %1483) #11
  %1485 = call i32 @isatty(i32 noundef %1484) #11
  %1486 = icmp ne i32 %1485, 0
  br i1 %1486, label %1487, label %1504

1487:                                             ; preds = %1482
  %1488 = load i32, ptr %41, align 4, !tbaa !5
  %1489 = call ptr @__errno_location() #12
  store i32 %1488, ptr %1489, align 4, !tbaa !5
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = load i32, ptr @test_count, align 4, !tbaa !5
  %1492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror(i32 noundef %1493, ptr noundef @.str.4)
  %1495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror_debug(i32 noundef %1496, ptr noundef @.str.4)
  %1498 = call ptr @__errno_location() #12
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call ptr @strerror(i32 noundef %1499) #11
  %1501 = call ptr @__errno_location() #12
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1490, ptr noundef @.str.2, i32 noundef %1491, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 149, ptr noundef %1494, ptr noundef %1497, ptr noundef %1500, i32 noundef %1502) #11
  br label %1521

1504:                                             ; preds = %1482, %1475
  %1505 = load i32, ptr %41, align 4, !tbaa !5
  %1506 = call ptr @__errno_location() #12
  store i32 %1505, ptr %1506, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror(i32 noundef %1510, ptr noundef @.str.4)
  %1512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror_debug(i32 noundef %1513, ptr noundef @.str.4)
  %1515 = call ptr @__errno_location() #12
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call ptr @strerror(i32 noundef %1516) #11
  %1518 = call ptr @__errno_location() #12
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1507, ptr noundef @.str.5, i32 noundef %1508, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 149, ptr noundef %1511, ptr noundef %1514, ptr noundef %1517, i32 noundef %1519) #11
  br label %1521

1521:                                             ; preds = %1504, %1487
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

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

1524:                                             ; No predecessors!
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525, %1467
  br label %1527

1527:                                             ; preds = %1526
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %1531 = add nsw i32 %1530, 1
  store i32 %1531, ptr @test_count, align 4, !tbaa !5
  %1532 = load ptr, ptr %31, align 8, !tbaa !9
  %1533 = call i32 @s2n_connection_free(ptr noundef %1532)
  %1534 = icmp eq i32 %1533, -1
  br i1 %1534, label %1535, label %1588

1535:                                             ; preds = %1529
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1538 = call ptr @__errno_location() #12
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  store i32 %1539, ptr %42, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = call i32 @s2n_print_stacktrace(ptr noundef %1540)
  %1542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1543 = trunc i8 %1542 to i1
  br i1 %1543, label %1544, label %1566

1544:                                             ; preds = %1537
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = call i32 @fileno(ptr noundef %1545) #11
  %1547 = call i32 @isatty(i32 noundef %1546) #11
  %1548 = icmp ne i32 %1547, 0
  br i1 %1548, label %1549, label %1566

1549:                                             ; preds = %1544
  %1550 = load i32, ptr %42, align 4, !tbaa !5
  %1551 = call ptr @__errno_location() #12
  store i32 %1550, ptr %1551, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = load i32, ptr @test_count, align 4, !tbaa !5
  %1554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @s2n_strerror(i32 noundef %1555, ptr noundef @.str.4)
  %1557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call ptr @s2n_strerror_debug(i32 noundef %1558, ptr noundef @.str.4)
  %1560 = call ptr @__errno_location() #12
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call ptr @strerror(i32 noundef %1561) #11
  %1563 = call ptr @__errno_location() #12
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1552, ptr noundef @.str.2, i32 noundef %1553, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 150, ptr noundef %1556, ptr noundef %1559, ptr noundef %1562, i32 noundef %1564) #11
  br label %1583

1566:                                             ; preds = %1544, %1537
  %1567 = load i32, ptr %42, align 4, !tbaa !5
  %1568 = call ptr @__errno_location() #12
  store i32 %1567, ptr %1568, align 4, !tbaa !5
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = load i32, ptr @test_count, align 4, !tbaa !5
  %1571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror(i32 noundef %1572, ptr noundef @.str.4)
  %1574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = call ptr @s2n_strerror_debug(i32 noundef %1575, ptr noundef @.str.4)
  %1577 = call ptr @__errno_location() #12
  %1578 = load i32, ptr %1577, align 4, !tbaa !5
  %1579 = call ptr @strerror(i32 noundef %1578) #11
  %1580 = call ptr @__errno_location() #12
  %1581 = load i32, ptr %1580, align 4, !tbaa !5
  %1582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1569, ptr noundef @.str.5, i32 noundef %1570, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 150, ptr noundef %1573, ptr noundef %1576, ptr noundef %1579, i32 noundef %1581) #11
  br label %1583

1583:                                             ; preds = %1566, %1549
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1584

1584:                                             ; preds = %1583
  br label %1585

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

1586:                                             ; No predecessors!
  br label %1587

1587:                                             ; preds = %1586
  br label %1588

1588:                                             ; preds = %1587, %1529
  br label %1589

1589:                                             ; preds = %1588
  br label %1590

1590:                                             ; preds = %1589
  br label %1591

1591:                                             ; preds = %1590
  %1592 = load i32, ptr @test_count, align 4, !tbaa !5
  %1593 = add nsw i32 %1592, 1
  store i32 %1593, ptr @test_count, align 4, !tbaa !5
  %1594 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1594, ptr %31, align 8, !tbaa !9
  %1595 = icmp eq ptr %1594, null
  br i1 %1595, label %1596, label %1649

1596:                                             ; preds = %1591
  br label %1597

1597:                                             ; preds = %1596
  br label %1598

1598:                                             ; preds = %1597
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1599 = call ptr @__errno_location() #12
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  store i32 %1600, ptr %43, align 4, !tbaa !5
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = call i32 @s2n_print_stacktrace(ptr noundef %1601)
  %1603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1604 = trunc i8 %1603 to i1
  br i1 %1604, label %1605, label %1627

1605:                                             ; preds = %1598
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = call i32 @fileno(ptr noundef %1606) #11
  %1608 = call i32 @isatty(i32 noundef %1607) #11
  %1609 = icmp ne i32 %1608, 0
  br i1 %1609, label %1610, label %1627

1610:                                             ; preds = %1605
  %1611 = load i32, ptr %43, align 4, !tbaa !5
  %1612 = call ptr @__errno_location() #12
  store i32 %1611, ptr %1612, align 4, !tbaa !5
  %1613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1614 = load i32, ptr @test_count, align 4, !tbaa !5
  %1615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror(i32 noundef %1616, ptr noundef @.str.4)
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror_debug(i32 noundef %1619, ptr noundef @.str.4)
  %1621 = call ptr @__errno_location() #12
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @strerror(i32 noundef %1622) #11
  %1624 = call ptr @__errno_location() #12
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1613, ptr noundef @.str.2, i32 noundef %1614, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1617, ptr noundef %1620, ptr noundef %1623, i32 noundef %1625) #11
  br label %1644

1627:                                             ; preds = %1605, %1598
  %1628 = load i32, ptr %43, align 4, !tbaa !5
  %1629 = call ptr @__errno_location() #12
  store i32 %1628, ptr %1629, align 4, !tbaa !5
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = load i32, ptr @test_count, align 4, !tbaa !5
  %1632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror(i32 noundef %1633, ptr noundef @.str.4)
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror_debug(i32 noundef %1636, ptr noundef @.str.4)
  %1638 = call ptr @__errno_location() #12
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @strerror(i32 noundef %1639) #11
  %1641 = call ptr @__errno_location() #12
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1630, ptr noundef @.str.5, i32 noundef %1631, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1634, ptr noundef %1637, ptr noundef %1640, i32 noundef %1642) #11
  br label %1644

1644:                                             ; preds = %1627, %1610
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

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

1647:                                             ; No predecessors!
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648, %1591
  br label %1650

1650:                                             ; preds = %1649
  br label %1651

1651:                                             ; preds = %1650
  %1652 = load ptr, ptr %31, align 8, !tbaa !9
  %1653 = getelementptr inbounds %struct.s2n_connection, ptr %1652, i32 0, i32 23
  store i8 33, ptr %1653, align 4, !tbaa !42
  %1654 = load ptr, ptr %31, align 8, !tbaa !9
  %1655 = getelementptr inbounds %struct.s2n_connection, ptr %1654, i32 0, i32 32
  %1656 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1655, i32 0, i32 7
  store ptr %35, ptr %1656, align 8, !tbaa !53
  br label %1657

1657:                                             ; preds = %1651
  %1658 = load i32, ptr @test_count, align 4, !tbaa !5
  %1659 = add nsw i32 %1658, 1
  store i32 %1659, ptr @test_count, align 4, !tbaa !5
  %1660 = load ptr, ptr %31, align 8, !tbaa !9
  %1661 = getelementptr inbounds %struct.s2n_connection, ptr %1660, i32 0, i32 23
  %1662 = load i8, ptr %1661, align 4, !tbaa !42
  %1663 = zext i8 %1662 to i32
  %1664 = icmp eq i32 %1663, 33
  br i1 %1664, label %1718, label %1665

1665:                                             ; preds = %1657
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

1667:                                             ; preds = %1666
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1668 = call ptr @__errno_location() #12
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  store i32 %1669, ptr %44, align 4, !tbaa !5
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = call i32 @s2n_print_stacktrace(ptr noundef %1670)
  %1672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1673 = trunc i8 %1672 to i1
  br i1 %1673, label %1674, label %1696

1674:                                             ; preds = %1667
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = call i32 @fileno(ptr noundef %1675) #11
  %1677 = call i32 @isatty(i32 noundef %1676) #11
  %1678 = icmp ne i32 %1677, 0
  br i1 %1678, label %1679, label %1696

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

1696:                                             ; preds = %1674, %1667
  %1697 = load i32, ptr %44, align 4, !tbaa !5
  %1698 = call ptr @__errno_location() #12
  store i32 %1697, ptr %1698, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror(i32 noundef %1702, ptr noundef @.str.4)
  %1704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror_debug(i32 noundef %1705, ptr noundef @.str.4)
  %1707 = call ptr @__errno_location() #12
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = call ptr @strerror(i32 noundef %1708) #11
  %1710 = call ptr @__errno_location() #12
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1699, ptr noundef @.str.5, i32 noundef %1700, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 156, ptr noundef %1703, ptr noundef %1706, ptr noundef %1709, i32 noundef %1711) #11
  br label %1713

1713:                                             ; preds = %1696, %1679
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1714

1714:                                             ; preds = %1713
  br label %1715

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

1716:                                             ; No predecessors!
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

1718:                                             ; preds = %1717, %1657
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  %1722 = load i32, ptr @test_count, align 4, !tbaa !5
  %1723 = add nsw i32 %1722, 1
  store i32 %1723, ptr @test_count, align 4, !tbaa !5
  %1724 = load ptr, ptr %31, align 8, !tbaa !9
  %1725 = call i32 @s2n_server_cert_send(ptr noundef %1724)
  %1726 = icmp eq i32 %1725, -1
  br i1 %1726, label %1727, label %1780

1727:                                             ; preds = %1721
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

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

1736:                                             ; preds = %1729
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = call i32 @fileno(ptr noundef %1737) #11
  %1739 = call i32 @isatty(i32 noundef %1738) #11
  %1740 = icmp ne i32 %1739, 0
  br i1 %1740, label %1741, label %1758

1741:                                             ; preds = %1736
  %1742 = load i32, ptr %45, align 4, !tbaa !5
  %1743 = call ptr @__errno_location() #12
  store i32 %1742, ptr %1743, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = load i32, ptr @test_count, align 4, !tbaa !5
  %1746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  %1748 = call ptr @s2n_strerror(i32 noundef %1747, ptr noundef @.str.4)
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror_debug(i32 noundef %1750, ptr noundef @.str.4)
  %1752 = call ptr @__errno_location() #12
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call ptr @strerror(i32 noundef %1753) #11
  %1755 = call ptr @__errno_location() #12
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1744, ptr noundef @.str.2, i32 noundef %1745, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 157, ptr noundef %1748, ptr noundef %1751, ptr noundef %1754, i32 noundef %1756) #11
  br label %1775

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

1775:                                             ; preds = %1758, %1741
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

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

1778:                                             ; No predecessors!
  br label %1779

1779:                                             ; preds = %1778
  br label %1780

1780:                                             ; preds = %1779, %1721
  br label %1781

1781:                                             ; preds = %1780
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = add nsw i32 %1784, 1
  store i32 %1785, ptr @test_count, align 4, !tbaa !5
  %1786 = load ptr, ptr %31, align 8, !tbaa !9
  %1787 = getelementptr inbounds %struct.s2n_connection, ptr %1786, i32 0, i32 52
  %1788 = getelementptr inbounds %struct.s2n_handshake, ptr %1787, i32 0, i32 0
  %1789 = getelementptr inbounds %struct.s2n_stuffer, ptr %1788, i32 0, i32 2
  %1790 = load i32, ptr %1789, align 4, !tbaa !43
  %1791 = load ptr, ptr %31, align 8, !tbaa !9
  %1792 = getelementptr inbounds %struct.s2n_connection, ptr %1791, i32 0, i32 52
  %1793 = getelementptr inbounds %struct.s2n_handshake, ptr %1792, i32 0, i32 0
  %1794 = getelementptr inbounds %struct.s2n_stuffer, ptr %1793, i32 0, i32 1
  %1795 = load i32, ptr %1794, align 8, !tbaa !44
  %1796 = sub i32 %1790, %1795
  %1797 = getelementptr inbounds %struct.s2n_blob, ptr %27, i32 0, i32 1
  %1798 = load i32, ptr %1797, align 8, !tbaa !47
  %1799 = sub i32 %1798, 1
  %1800 = icmp eq i32 %1796, %1799
  br i1 %1800, label %1854, label %1801

1801:                                             ; preds = %1783
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

1803:                                             ; preds = %1802
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1804 = call ptr @__errno_location() #12
  %1805 = load i32, ptr %1804, align 4, !tbaa !5
  store i32 %1805, ptr %46, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @s2n_print_stacktrace(ptr noundef %1806)
  %1808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1809 = trunc i8 %1808 to i1
  br i1 %1809, label %1810, label %1832

1810:                                             ; preds = %1803
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @fileno(ptr noundef %1811) #11
  %1813 = call i32 @isatty(i32 noundef %1812) #11
  %1814 = icmp ne i32 %1813, 0
  br i1 %1814, label %1815, label %1832

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

1832:                                             ; preds = %1810, %1803
  %1833 = load i32, ptr %46, align 4, !tbaa !5
  %1834 = call ptr @__errno_location() #12
  store i32 %1833, ptr %1834, align 4, !tbaa !5
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = load i32, ptr @test_count, align 4, !tbaa !5
  %1837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call ptr @s2n_strerror(i32 noundef %1838, ptr noundef @.str.4)
  %1840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror_debug(i32 noundef %1841, ptr noundef @.str.4)
  %1843 = call ptr @__errno_location() #12
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call ptr @strerror(i32 noundef %1844) #11
  %1846 = call ptr @__errno_location() #12
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1835, ptr noundef @.str.5, i32 noundef %1836, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 160, ptr noundef %1839, ptr noundef %1842, ptr noundef %1845, i32 noundef %1847) #11
  br label %1849

1849:                                             ; preds = %1832, %1815
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1850

1850:                                             ; preds = %1849
  br label %1851

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

1852:                                             ; No predecessors!
  br label %1853

1853:                                             ; preds = %1852
  br label %1854

1854:                                             ; preds = %1853, %1783
  br label %1855

1855:                                             ; preds = %1854
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

1857:                                             ; preds = %1856
  %1858 = load i32, ptr @test_count, align 4, !tbaa !5
  %1859 = add nsw i32 %1858, 1
  store i32 %1859, ptr @test_count, align 4, !tbaa !5
  %1860 = load ptr, ptr %31, align 8, !tbaa !9
  %1861 = call i32 @s2n_connection_free(ptr noundef %1860)
  %1862 = icmp eq i32 %1861, -1
  br i1 %1862, label %1863, label %1916

1863:                                             ; preds = %1857
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

1865:                                             ; preds = %1864
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %1866 = call ptr @__errno_location() #12
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  store i32 %1867, ptr %47, align 4, !tbaa !5
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = call i32 @s2n_print_stacktrace(ptr noundef %1868)
  %1870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1871 = trunc i8 %1870 to i1
  br i1 %1871, label %1872, label %1894

1872:                                             ; preds = %1865
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = call i32 @fileno(ptr noundef %1873) #11
  %1875 = call i32 @isatty(i32 noundef %1874) #11
  %1876 = icmp ne i32 %1875, 0
  br i1 %1876, label %1877, label %1894

1877:                                             ; preds = %1872
  %1878 = load i32, ptr %47, align 4, !tbaa !5
  %1879 = call ptr @__errno_location() #12
  store i32 %1878, ptr %1879, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror(i32 noundef %1883, ptr noundef @.str.4)
  %1885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @s2n_strerror_debug(i32 noundef %1886, ptr noundef @.str.4)
  %1888 = call ptr @__errno_location() #12
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #11
  %1891 = call ptr @__errno_location() #12
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1880, ptr noundef @.str.2, i32 noundef %1881, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1884, ptr noundef %1887, ptr noundef %1890, i32 noundef %1892) #11
  br label %1911

1894:                                             ; preds = %1872, %1865
  %1895 = load i32, ptr %47, align 4, !tbaa !5
  %1896 = call ptr @__errno_location() #12
  store i32 %1895, ptr %1896, align 4, !tbaa !5
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = load i32, ptr @test_count, align 4, !tbaa !5
  %1899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror(i32 noundef %1900, ptr noundef @.str.4)
  %1902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call ptr @s2n_strerror_debug(i32 noundef %1903, ptr noundef @.str.4)
  %1905 = call ptr @__errno_location() #12
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call ptr @strerror(i32 noundef %1906) #11
  %1908 = call ptr @__errno_location() #12
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  %1910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1897, ptr noundef @.str.5, i32 noundef %1898, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1901, ptr noundef %1904, ptr noundef %1907, i32 noundef %1909) #11
  br label %1911

1911:                                             ; preds = %1894, %1877
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1912

1912:                                             ; preds = %1911
  br label %1913

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

1914:                                             ; No predecessors!
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915, %1857
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917
  %1919 = load ptr, ptr %25, align 8, !tbaa !9
  call void @free(ptr noundef %1919) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %35) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  store i32 0, ptr %12, align 4
  br label %1920

1920:                                             ; preds = %1918, %1116
  %1921 = call i32 @s2n_free(ptr noundef %29)
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #11
  br label %1922

1922:                                             ; preds = %1920, %1106
  %1923 = call i32 @s2n_free(ptr noundef %27)
  call void @llvm.lifetime.end.p0(i64 24, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  %1924 = load i32, ptr %12, align 4
  switch i32 %1924, label %2839 [
    i32 0, label %1925
    i32 1, label %2837
  ]

1925:                                             ; preds = %1922
  br label %1926

1926:                                             ; preds = %1925
  %1927 = load i32, ptr @test_count, align 4, !tbaa !5
  %1928 = add nsw i32 %1927, 1
  store i32 %1928, ptr @test_count, align 4, !tbaa !5
  %1929 = call i32 (...) @s2n_enable_tls13_in_test()
  %1930 = icmp eq i32 %1929, -1
  br i1 %1930, label %1931, label %1982

1931:                                             ; preds = %1926
  br label %1932

1932:                                             ; preds = %1931
  br label %1933

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

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

1945:                                             ; preds = %1940
  %1946 = load i32, ptr %48, align 4, !tbaa !5
  %1947 = call ptr @__errno_location() #12
  store i32 %1946, ptr %1947, align 4, !tbaa !5
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = load i32, ptr @test_count, align 4, !tbaa !5
  %1950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call ptr @s2n_strerror(i32 noundef %1951, ptr noundef @.str.4)
  %1953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror_debug(i32 noundef %1954, ptr noundef @.str.4)
  %1956 = call ptr @__errno_location() #12
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @strerror(i32 noundef %1957) #11
  %1959 = call ptr @__errno_location() #12
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1948, ptr noundef @.str.2, i32 noundef %1949, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 168, ptr noundef %1952, ptr noundef %1955, ptr noundef %1958, i32 noundef %1960) #11
  br label %1979

1962:                                             ; preds = %1940, %1933
  %1963 = load i32, ptr %48, align 4, !tbaa !5
  %1964 = call ptr @__errno_location() #12
  store i32 %1963, ptr %1964, align 4, !tbaa !5
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %1967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror(i32 noundef %1968, ptr noundef @.str.4)
  %1970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror_debug(i32 noundef %1971, ptr noundef @.str.4)
  %1973 = call ptr @__errno_location() #12
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @strerror(i32 noundef %1974) #11
  %1976 = call ptr @__errno_location() #12
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1965, ptr noundef @.str.5, i32 noundef %1966, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 168, ptr noundef %1969, ptr noundef %1972, ptr noundef %1975, i32 noundef %1977) #11
  br label %1979

1979:                                             ; preds = %1962, %1945
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1980

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

1981:                                             ; No predecessors!
  br label %1982

1982:                                             ; preds = %1981, %1926
  br label %1983

1983:                                             ; preds = %1982
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #11
  store ptr null, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #11
  store ptr null, ptr %50, align 8, !tbaa !9
  br label %1984

1984:                                             ; preds = %1983
  %1985 = load i32, ptr @test_count, align 4, !tbaa !5
  %1986 = add nsw i32 %1985, 1
  store i32 %1986, ptr @test_count, align 4, !tbaa !5
  %1987 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1987, ptr %49, align 8, !tbaa !9
  %1988 = icmp eq ptr %1987, null
  br i1 %1988, label %1989, label %2042

1989:                                             ; preds = %1984
  br label %1990

1990:                                             ; preds = %1989
  br label %1991

1991:                                             ; preds = %1990
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %1992 = call ptr @__errno_location() #12
  %1993 = load i32, ptr %1992, align 4, !tbaa !5
  store i32 %1993, ptr %51, align 4, !tbaa !5
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @s2n_print_stacktrace(ptr noundef %1994)
  %1996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1997 = trunc i8 %1996 to i1
  br i1 %1997, label %1998, label %2020

1998:                                             ; preds = %1991
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = call i32 @fileno(ptr noundef %1999) #11
  %2001 = call i32 @isatty(i32 noundef %2000) #11
  %2002 = icmp ne i32 %2001, 0
  br i1 %2002, label %2003, label %2020

2003:                                             ; preds = %1998
  %2004 = load i32, ptr %51, align 4, !tbaa !5
  %2005 = call ptr @__errno_location() #12
  store i32 %2004, ptr %2005, align 4, !tbaa !5
  %2006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2007 = load i32, ptr @test_count, align 4, !tbaa !5
  %2008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call ptr @s2n_strerror(i32 noundef %2009, ptr noundef @.str.4)
  %2011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call ptr @s2n_strerror_debug(i32 noundef %2012, ptr noundef @.str.4)
  %2014 = call ptr @__errno_location() #12
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call ptr @strerror(i32 noundef %2015) #11
  %2017 = call ptr @__errno_location() #12
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2006, ptr noundef @.str.2, i32 noundef %2007, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 172, ptr noundef %2010, ptr noundef %2013, ptr noundef %2016, i32 noundef %2018) #11
  br label %2037

2020:                                             ; preds = %1998, %1991
  %2021 = load i32, ptr %51, align 4, !tbaa !5
  %2022 = call ptr @__errno_location() #12
  store i32 %2021, ptr %2022, align 4, !tbaa !5
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = load i32, ptr @test_count, align 4, !tbaa !5
  %2025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @s2n_strerror(i32 noundef %2026, ptr noundef @.str.4)
  %2028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror_debug(i32 noundef %2029, ptr noundef @.str.4)
  %2031 = call ptr @__errno_location() #12
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @strerror(i32 noundef %2032) #11
  %2034 = call ptr @__errno_location() #12
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2023, ptr noundef @.str.5, i32 noundef %2024, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 172, ptr noundef %2027, ptr noundef %2030, ptr noundef %2033, i32 noundef %2035) #11
  br label %2037

2037:                                             ; preds = %2020, %2003
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

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

2040:                                             ; No predecessors!
  br label %2041

2041:                                             ; preds = %2040
  br label %2042

2042:                                             ; preds = %2041, %1984
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

2044:                                             ; preds = %2043
  br label %2045

2045:                                             ; preds = %2044
  %2046 = load i32, ptr @test_count, align 4, !tbaa !5
  %2047 = add nsw i32 %2046, 1
  store i32 %2047, ptr @test_count, align 4, !tbaa !5
  %2048 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2048, ptr %50, align 8, !tbaa !9
  %2049 = icmp eq ptr %2048, null
  br i1 %2049, label %2050, label %2103

2050:                                             ; preds = %2045
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

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

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

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

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

2098:                                             ; preds = %2081, %2064
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

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

2101:                                             ; No predecessors!
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102, %2045
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  %2106 = load ptr, ptr %49, align 8, !tbaa !9
  %2107 = getelementptr inbounds %struct.s2n_connection, ptr %2106, i32 0, i32 23
  store i8 34, ptr %2107, align 4, !tbaa !42
  %2108 = load ptr, ptr %50, align 8, !tbaa !9
  %2109 = getelementptr inbounds %struct.s2n_connection, ptr %2108, i32 0, i32 23
  store i8 34, ptr %2109, align 4, !tbaa !42
  %2110 = load ptr, ptr %50, align 8, !tbaa !9
  %2111 = getelementptr inbounds %struct.s2n_connection, ptr %2110, i32 0, i32 72
  %2112 = getelementptr inbounds %struct.s2n_x509_validator, ptr %2111, i32 0, i32 2
  store i8 1, ptr %2112, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #11
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 24, i1 false)
  br label %2113

2113:                                             ; preds = %2105
  %2114 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %53, ptr noundef @tls13_cert_hex)
  %2115 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  store i32 %2114, ptr %2115, align 4
  %2116 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  %2117 = load i32, ptr %2116, align 4
  %2118 = call zeroext i1 @s2n_result_is_ok(i32 %2117)
  br i1 %2118, label %2120, label %2119

2119:                                             ; preds = %2113
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2688

2120:                                             ; preds = %2113
  br label %2121

2121:                                             ; preds = %2120
  br label %2122

2122:                                             ; preds = %2121
  call void @llvm.lifetime.start.p0(i64 24, ptr %55) #11
  call void @llvm.memset.p0.i64(ptr align 8 %55, i8 0, i64 24, i1 false)
  br label %2123

2123:                                             ; preds = %2122
  %2124 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %55, ptr noundef @tls13_cert_message_hex)
  %2125 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  store i32 %2124, ptr %2125, align 4
  %2126 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  %2127 = load i32, ptr %2126, align 4
  %2128 = call zeroext i1 @s2n_result_is_ok(i32 %2127)
  br i1 %2128, label %2130, label %2129

2129:                                             ; preds = %2123
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2686

2130:                                             ; preds = %2123
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131
  call void @llvm.lifetime.start.p0(i64 112, ptr %57) #11
  call void @llvm.memset.p0.i64(ptr align 8 %57, i8 0, i64 112, i1 false)
  %2133 = getelementptr inbounds %struct.s2n_cert, ptr %57, i32 0, i32 0
  %2134 = getelementptr inbounds %struct.s2n_cert, ptr %57, i32 0, i32 1
  %2135 = getelementptr inbounds %struct.s2n_cert, ptr %57, i32 0, i32 2
  %2136 = getelementptr inbounds %struct.s2n_cert, ptr %57, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2136, ptr align 8 %53, i64 24, i1 false), !tbaa.struct !46
  %2137 = getelementptr inbounds %struct.s2n_cert, ptr %57, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #11
  %2138 = getelementptr inbounds %struct.s2n_cert_chain, ptr %58, i32 0, i32 0
  %2139 = getelementptr inbounds %struct.s2n_blob, ptr %53, i32 0, i32 1
  %2140 = load i32, ptr %2139, align 8, !tbaa !47
  %2141 = add i32 %2140, 3
  store i32 %2141, ptr %2138, align 8, !tbaa !48
  %2142 = getelementptr inbounds %struct.s2n_cert_chain, ptr %58, i32 0, i32 1
  store ptr %57, ptr %2142, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 88, ptr %59) #11
  call void @llvm.memset.p0.i64(ptr align 8 %59, i8 0, i64 88, i1 false)
  %2143 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %59, i32 0, i32 0
  store ptr %58, ptr %2143, align 8, !tbaa !51
  %2144 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %59, i32 0, i32 1
  %2145 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %59, i32 0, i32 2
  %2146 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %59, i32 0, i32 3
  %2147 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %59, i32 0, i32 4
  %2148 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %59, i32 0, i32 5
  %2149 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %59, i32 0, i32 6
  %2150 = load ptr, ptr %49, align 8, !tbaa !9
  %2151 = getelementptr inbounds %struct.s2n_connection, ptr %2150, i32 0, i32 32
  %2152 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %2151, i32 0, i32 7
  store ptr %59, ptr %2152, align 8, !tbaa !53
  br label %2153

2153:                                             ; preds = %2132
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = add nsw i32 %2154, 1
  store i32 %2155, ptr @test_count, align 4, !tbaa !5
  %2156 = load ptr, ptr %49, align 8, !tbaa !9
  %2157 = call i32 @s2n_server_cert_send(ptr noundef %2156)
  %2158 = icmp eq i32 %2157, -1
  br i1 %2158, label %2159, label %2212

2159:                                             ; preds = %2153
  br label %2160

2160:                                             ; preds = %2159
  br label %2161

2161:                                             ; preds = %2160
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %2162 = call ptr @__errno_location() #12
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  store i32 %2163, ptr %60, align 4, !tbaa !5
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = call i32 @s2n_print_stacktrace(ptr noundef %2164)
  %2166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2167 = trunc i8 %2166 to i1
  br i1 %2167, label %2168, label %2190

2168:                                             ; preds = %2161
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = call i32 @fileno(ptr noundef %2169) #11
  %2171 = call i32 @isatty(i32 noundef %2170) #11
  %2172 = icmp ne i32 %2171, 0
  br i1 %2172, label %2173, label %2190

2173:                                             ; preds = %2168
  %2174 = load i32, ptr %60, align 4, !tbaa !5
  %2175 = call ptr @__errno_location() #12
  store i32 %2174, ptr %2175, align 4, !tbaa !5
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = load i32, ptr @test_count, align 4, !tbaa !5
  %2178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  %2180 = call ptr @s2n_strerror(i32 noundef %2179, ptr noundef @.str.4)
  %2181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call ptr @s2n_strerror_debug(i32 noundef %2182, ptr noundef @.str.4)
  %2184 = call ptr @__errno_location() #12
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #11
  %2187 = call ptr @__errno_location() #12
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2176, ptr noundef @.str.2, i32 noundef %2177, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2180, ptr noundef %2183, ptr noundef %2186, i32 noundef %2188) #11
  br label %2207

2190:                                             ; preds = %2168, %2161
  %2191 = load i32, ptr %60, align 4, !tbaa !5
  %2192 = call ptr @__errno_location() #12
  store i32 %2191, ptr %2192, align 4, !tbaa !5
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2196 = load i32, ptr %2195, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror(i32 noundef %2196, ptr noundef @.str.4)
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror_debug(i32 noundef %2199, ptr noundef @.str.4)
  %2201 = call ptr @__errno_location() #12
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @strerror(i32 noundef %2202) #11
  %2204 = call ptr @__errno_location() #12
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2193, ptr noundef @.str.5, i32 noundef %2194, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2197, ptr noundef %2200, ptr noundef %2203, i32 noundef %2205) #11
  br label %2207

2207:                                             ; preds = %2190, %2173
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2208

2208:                                             ; preds = %2207
  br label %2209

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

2210:                                             ; No predecessors!
  br label %2211

2211:                                             ; preds = %2210
  br label %2212

2212:                                             ; preds = %2211, %2153
  br label %2213

2213:                                             ; preds = %2212
  br label %2214

2214:                                             ; preds = %2213
  br label %2215

2215:                                             ; preds = %2214
  %2216 = load i32, ptr @test_count, align 4, !tbaa !5
  %2217 = add nsw i32 %2216, 1
  store i32 %2217, ptr @test_count, align 4, !tbaa !5
  %2218 = load ptr, ptr %49, align 8, !tbaa !9
  %2219 = getelementptr inbounds %struct.s2n_connection, ptr %2218, i32 0, i32 52
  %2220 = getelementptr inbounds %struct.s2n_handshake, ptr %2219, i32 0, i32 0
  %2221 = getelementptr inbounds %struct.s2n_stuffer, ptr %2220, i32 0, i32 2
  %2222 = load i32, ptr %2221, align 4, !tbaa !43
  %2223 = load ptr, ptr %49, align 8, !tbaa !9
  %2224 = getelementptr inbounds %struct.s2n_connection, ptr %2223, i32 0, i32 52
  %2225 = getelementptr inbounds %struct.s2n_handshake, ptr %2224, i32 0, i32 0
  %2226 = getelementptr inbounds %struct.s2n_stuffer, ptr %2225, i32 0, i32 1
  %2227 = load i32, ptr %2226, align 8, !tbaa !44
  %2228 = sub i32 %2222, %2227
  %2229 = getelementptr inbounds %struct.s2n_blob, ptr %55, i32 0, i32 1
  %2230 = load i32, ptr %2229, align 8, !tbaa !47
  %2231 = icmp eq i32 %2228, %2230
  br i1 %2231, label %2285, label %2232

2232:                                             ; preds = %2215
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

2234:                                             ; preds = %2233
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2235 = call ptr @__errno_location() #12
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  store i32 %2236, ptr %61, align 4, !tbaa !5
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = call i32 @s2n_print_stacktrace(ptr noundef %2237)
  %2239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2240 = trunc i8 %2239 to i1
  br i1 %2240, label %2241, label %2263

2241:                                             ; preds = %2234
  %2242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2243 = call i32 @fileno(ptr noundef %2242) #11
  %2244 = call i32 @isatty(i32 noundef %2243) #11
  %2245 = icmp ne i32 %2244, 0
  br i1 %2245, label %2246, label %2263

2246:                                             ; preds = %2241
  %2247 = load i32, ptr %61, align 4, !tbaa !5
  %2248 = call ptr @__errno_location() #12
  store i32 %2247, ptr %2248, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call ptr @s2n_strerror(i32 noundef %2252, ptr noundef @.str.4)
  %2254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2255 = load i32, ptr %2254, align 4, !tbaa !5
  %2256 = call ptr @s2n_strerror_debug(i32 noundef %2255, ptr noundef @.str.4)
  %2257 = call ptr @__errno_location() #12
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  %2259 = call ptr @strerror(i32 noundef %2258) #11
  %2260 = call ptr @__errno_location() #12
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2249, ptr noundef @.str.2, i32 noundef %2250, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2253, ptr noundef %2256, ptr noundef %2259, i32 noundef %2261) #11
  br label %2280

2263:                                             ; preds = %2241, %2234
  %2264 = load i32, ptr %61, align 4, !tbaa !5
  %2265 = call ptr @__errno_location() #12
  store i32 %2264, ptr %2265, align 4, !tbaa !5
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = load i32, ptr @test_count, align 4, !tbaa !5
  %2268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2269 = load i32, ptr %2268, align 4, !tbaa !5
  %2270 = call ptr @s2n_strerror(i32 noundef %2269, ptr noundef @.str.4)
  %2271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2272 = load i32, ptr %2271, align 4, !tbaa !5
  %2273 = call ptr @s2n_strerror_debug(i32 noundef %2272, ptr noundef @.str.4)
  %2274 = call ptr @__errno_location() #12
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = call ptr @strerror(i32 noundef %2275) #11
  %2277 = call ptr @__errno_location() #12
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2266, ptr noundef @.str.5, i32 noundef %2267, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2270, ptr noundef %2273, ptr noundef %2276, i32 noundef %2278) #11
  br label %2280

2280:                                             ; preds = %2263, %2246
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2281

2281:                                             ; preds = %2280
  br label %2282

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

2283:                                             ; No predecessors!
  br label %2284

2284:                                             ; preds = %2283
  br label %2285

2285:                                             ; preds = %2284, %2215
  br label %2286

2286:                                             ; preds = %2285
  br label %2287

2287:                                             ; preds = %2286
  br label %2288

2288:                                             ; preds = %2287
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = add nsw i32 %2289, 1
  store i32 %2290, ptr @test_count, align 4, !tbaa !5
  %2291 = load ptr, ptr %49, align 8, !tbaa !9
  %2292 = getelementptr inbounds %struct.s2n_connection, ptr %2291, i32 0, i32 52
  %2293 = getelementptr inbounds %struct.s2n_handshake, ptr %2292, i32 0, i32 0
  %2294 = load ptr, ptr %50, align 8, !tbaa !9
  %2295 = getelementptr inbounds %struct.s2n_connection, ptr %2294, i32 0, i32 52
  %2296 = getelementptr inbounds %struct.s2n_handshake, ptr %2295, i32 0, i32 0
  %2297 = load ptr, ptr %49, align 8, !tbaa !9
  %2298 = getelementptr inbounds %struct.s2n_connection, ptr %2297, i32 0, i32 52
  %2299 = getelementptr inbounds %struct.s2n_handshake, ptr %2298, i32 0, i32 0
  %2300 = getelementptr inbounds %struct.s2n_stuffer, ptr %2299, i32 0, i32 2
  %2301 = load i32, ptr %2300, align 4, !tbaa !43
  %2302 = load ptr, ptr %49, align 8, !tbaa !9
  %2303 = getelementptr inbounds %struct.s2n_connection, ptr %2302, i32 0, i32 52
  %2304 = getelementptr inbounds %struct.s2n_handshake, ptr %2303, i32 0, i32 0
  %2305 = getelementptr inbounds %struct.s2n_stuffer, ptr %2304, i32 0, i32 1
  %2306 = load i32, ptr %2305, align 8, !tbaa !44
  %2307 = sub i32 %2301, %2306
  %2308 = call i32 @s2n_stuffer_copy(ptr noundef %2293, ptr noundef %2296, i32 noundef %2307)
  %2309 = icmp eq i32 %2308, -1
  br i1 %2309, label %2310, label %2363

2310:                                             ; preds = %2288
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

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

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

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

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

2358:                                             ; preds = %2341, %2324
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2359

2359:                                             ; preds = %2358
  br label %2360

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

2361:                                             ; No predecessors!
  br label %2362

2362:                                             ; preds = %2361
  br label %2363

2363:                                             ; preds = %2362, %2288
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364
  br label %2366

2366:                                             ; preds = %2365
  %2367 = load i32, ptr @test_count, align 4, !tbaa !5
  %2368 = add nsw i32 %2367, 1
  store i32 %2368, ptr @test_count, align 4, !tbaa !5
  %2369 = load ptr, ptr %50, align 8, !tbaa !9
  %2370 = getelementptr inbounds %struct.s2n_connection, ptr %2369, i32 0, i32 52
  %2371 = getelementptr inbounds %struct.s2n_handshake, ptr %2370, i32 0, i32 0
  %2372 = getelementptr inbounds %struct.s2n_stuffer, ptr %2371, i32 0, i32 2
  %2373 = load i32, ptr %2372, align 4, !tbaa !43
  %2374 = load ptr, ptr %50, align 8, !tbaa !9
  %2375 = getelementptr inbounds %struct.s2n_connection, ptr %2374, i32 0, i32 52
  %2376 = getelementptr inbounds %struct.s2n_handshake, ptr %2375, i32 0, i32 0
  %2377 = getelementptr inbounds %struct.s2n_stuffer, ptr %2376, i32 0, i32 1
  %2378 = load i32, ptr %2377, align 8, !tbaa !44
  %2379 = sub i32 %2373, %2378
  %2380 = getelementptr inbounds %struct.s2n_blob, ptr %55, i32 0, i32 1
  %2381 = load i32, ptr %2380, align 8, !tbaa !47
  %2382 = icmp eq i32 %2379, %2381
  br i1 %2382, label %2436, label %2383

2383:                                             ; preds = %2366
  br label %2384

2384:                                             ; preds = %2383
  br label %2385

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

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

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

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

2431:                                             ; preds = %2414, %2397
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

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

2434:                                             ; No predecessors!
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435, %2366
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

2439:                                             ; preds = %2438
  %2440 = load i32, ptr @test_count, align 4, !tbaa !5
  %2441 = add nsw i32 %2440, 1
  store i32 %2441, ptr @test_count, align 4, !tbaa !5
  %2442 = load ptr, ptr %50, align 8, !tbaa !9
  %2443 = call i32 @s2n_server_cert_recv(ptr noundef %2442)
  %2444 = icmp eq i32 %2443, -1
  br i1 %2444, label %2445, label %2498

2445:                                             ; preds = %2439
  br label %2446

2446:                                             ; preds = %2445
  br label %2447

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

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

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

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

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

2494:                                             ; preds = %2493
  br label %2495

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

2496:                                             ; No predecessors!
  br label %2497

2497:                                             ; preds = %2496
  br label %2498

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

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500
  %2502 = load i32, ptr @test_count, align 4, !tbaa !5
  %2503 = add nsw i32 %2502, 1
  store i32 %2503, ptr @test_count, align 4, !tbaa !5
  %2504 = load ptr, ptr %49, align 8, !tbaa !9
  %2505 = call i32 @s2n_connection_free(ptr noundef %2504)
  %2506 = icmp eq i32 %2505, -1
  br i1 %2506, label %2507, label %2560

2507:                                             ; preds = %2501
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

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

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

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

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

2555:                                             ; preds = %2538, %2521
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

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

2558:                                             ; No predecessors!
  br label %2559

2559:                                             ; preds = %2558
  br label %2560

2560:                                             ; preds = %2559, %2501
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

2562:                                             ; preds = %2561
  br label %2563

2563:                                             ; preds = %2562
  %2564 = load i32, ptr @test_count, align 4, !tbaa !5
  %2565 = add nsw i32 %2564, 1
  store i32 %2565, ptr @test_count, align 4, !tbaa !5
  %2566 = load ptr, ptr %50, align 8, !tbaa !9
  %2567 = call i32 @s2n_connection_free(ptr noundef %2566)
  %2568 = icmp eq i32 %2567, -1
  br i1 %2568, label %2569, label %2622

2569:                                             ; preds = %2563
  br label %2570

2570:                                             ; preds = %2569
  br label %2571

2571:                                             ; preds = %2570
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2572 = call ptr @__errno_location() #12
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  store i32 %2573, ptr %66, align 4, !tbaa !5
  %2574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2575 = call i32 @s2n_print_stacktrace(ptr noundef %2574)
  %2576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2577 = trunc i8 %2576 to i1
  br i1 %2577, label %2578, label %2600

2578:                                             ; preds = %2571
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = call i32 @fileno(ptr noundef %2579) #11
  %2581 = call i32 @isatty(i32 noundef %2580) #11
  %2582 = icmp ne i32 %2581, 0
  br i1 %2582, label %2583, label %2600

2583:                                             ; preds = %2578
  %2584 = load i32, ptr %66, align 4, !tbaa !5
  %2585 = call ptr @__errno_location() #12
  store i32 %2584, ptr %2585, align 4, !tbaa !5
  %2586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2587 = load i32, ptr @test_count, align 4, !tbaa !5
  %2588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2589 = load i32, ptr %2588, align 4, !tbaa !5
  %2590 = call ptr @s2n_strerror(i32 noundef %2589, ptr noundef @.str.4)
  %2591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2592 = load i32, ptr %2591, align 4, !tbaa !5
  %2593 = call ptr @s2n_strerror_debug(i32 noundef %2592, ptr noundef @.str.4)
  %2594 = call ptr @__errno_location() #12
  %2595 = load i32, ptr %2594, align 4, !tbaa !5
  %2596 = call ptr @strerror(i32 noundef %2595) #11
  %2597 = call ptr @__errno_location() #12
  %2598 = load i32, ptr %2597, align 4, !tbaa !5
  %2599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2586, ptr noundef @.str.2, i32 noundef %2587, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 193, ptr noundef %2590, ptr noundef %2593, ptr noundef %2596, i32 noundef %2598) #11
  br label %2617

2600:                                             ; preds = %2578, %2571
  %2601 = load i32, ptr %66, align 4, !tbaa !5
  %2602 = call ptr @__errno_location() #12
  store i32 %2601, ptr %2602, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = load i32, ptr @test_count, align 4, !tbaa !5
  %2605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2606 = load i32, ptr %2605, align 4, !tbaa !5
  %2607 = call ptr @s2n_strerror(i32 noundef %2606, ptr noundef @.str.4)
  %2608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2609 = load i32, ptr %2608, align 4, !tbaa !5
  %2610 = call ptr @s2n_strerror_debug(i32 noundef %2609, ptr noundef @.str.4)
  %2611 = call ptr @__errno_location() #12
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  %2613 = call ptr @strerror(i32 noundef %2612) #11
  %2614 = call ptr @__errno_location() #12
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2603, ptr noundef @.str.5, i32 noundef %2604, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 193, ptr noundef %2607, ptr noundef %2610, ptr noundef %2613, i32 noundef %2615) #11
  br label %2617

2617:                                             ; preds = %2600, %2583
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2618

2618:                                             ; preds = %2617
  br label %2619

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

2620:                                             ; No predecessors!
  br label %2621

2621:                                             ; preds = %2620
  br label %2622

2622:                                             ; preds = %2621, %2563
  br label %2623

2623:                                             ; preds = %2622
  br label %2624

2624:                                             ; preds = %2623
  br label %2625

2625:                                             ; preds = %2624
  %2626 = load i32, ptr @test_count, align 4, !tbaa !5
  %2627 = add nsw i32 %2626, 1
  store i32 %2627, ptr @test_count, align 4, !tbaa !5
  %2628 = call i32 (...) @s2n_disable_tls13_in_test()
  %2629 = icmp eq i32 %2628, -1
  br i1 %2629, label %2630, label %2683

2630:                                             ; preds = %2625
  br label %2631

2631:                                             ; preds = %2630
  br label %2632

2632:                                             ; preds = %2631
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %2633 = call ptr @__errno_location() #12
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  store i32 %2634, ptr %67, align 4, !tbaa !5
  %2635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2636 = call i32 @s2n_print_stacktrace(ptr noundef %2635)
  %2637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2638 = trunc i8 %2637 to i1
  br i1 %2638, label %2639, label %2661

2639:                                             ; preds = %2632
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = call i32 @fileno(ptr noundef %2640) #11
  %2642 = call i32 @isatty(i32 noundef %2641) #11
  %2643 = icmp ne i32 %2642, 0
  br i1 %2643, label %2644, label %2661

2644:                                             ; preds = %2639
  %2645 = load i32, ptr %67, align 4, !tbaa !5
  %2646 = call ptr @__errno_location() #12
  store i32 %2645, ptr %2646, align 4, !tbaa !5
  %2647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2648 = load i32, ptr @test_count, align 4, !tbaa !5
  %2649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  %2651 = call ptr @s2n_strerror(i32 noundef %2650, ptr noundef @.str.4)
  %2652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call ptr @s2n_strerror_debug(i32 noundef %2653, ptr noundef @.str.4)
  %2655 = call ptr @__errno_location() #12
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  %2657 = call ptr @strerror(i32 noundef %2656) #11
  %2658 = call ptr @__errno_location() #12
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2647, ptr noundef @.str.2, i32 noundef %2648, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 195, ptr noundef %2651, ptr noundef %2654, ptr noundef %2657, i32 noundef %2659) #11
  br label %2678

2661:                                             ; preds = %2639, %2632
  %2662 = load i32, ptr %67, align 4, !tbaa !5
  %2663 = call ptr @__errno_location() #12
  store i32 %2662, ptr %2663, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @s2n_strerror(i32 noundef %2667, ptr noundef @.str.4)
  %2669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror_debug(i32 noundef %2670, ptr noundef @.str.4)
  %2672 = call ptr @__errno_location() #12
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @strerror(i32 noundef %2673) #11
  %2675 = call ptr @__errno_location() #12
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2664, ptr noundef @.str.5, i32 noundef %2665, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 195, ptr noundef %2668, ptr noundef %2671, ptr noundef %2674, i32 noundef %2676) #11
  br label %2678

2678:                                             ; preds = %2661, %2644
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %2679

2679:                                             ; preds = %2678
  br label %2680

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

2681:                                             ; No predecessors!
  br label %2682

2682:                                             ; preds = %2681
  br label %2683

2683:                                             ; preds = %2682, %2625
  br label %2684

2684:                                             ; preds = %2683
  br label %2685

2685:                                             ; preds = %2684
  call void @llvm.lifetime.end.p0(i64 88, ptr %59) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr %57) #11
  store i32 0, ptr %12, align 4
  br label %2686

2686:                                             ; preds = %2685, %2129
  %2687 = call i32 @s2n_free(ptr noundef %55)
  call void @llvm.lifetime.end.p0(i64 24, ptr %55) #11
  br label %2688

2688:                                             ; preds = %2686, %2119
  %2689 = call i32 @s2n_free(ptr noundef %53)
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #11
  %2690 = load i32, ptr %12, align 4
  switch i32 %2690, label %2839 [
    i32 0, label %2691
    i32 1, label %2837
  ]

2691:                                             ; preds = %2688
  br label %2692

2692:                                             ; preds = %2691
  br label %2693

2693:                                             ; preds = %2692
  %2694 = call i32 @s2n_cleanup()
  %2695 = icmp eq i32 %2694, -1
  br i1 %2695, label %2696, label %2747

2696:                                             ; preds = %2693
  br label %2697

2697:                                             ; preds = %2696
  br label %2698

2698:                                             ; preds = %2697
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2699 = call ptr @__errno_location() #12
  %2700 = load i32, ptr %2699, align 4, !tbaa !5
  store i32 %2700, ptr %68, align 4, !tbaa !5
  %2701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2702 = call i32 @s2n_print_stacktrace(ptr noundef %2701)
  %2703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2704 = trunc i8 %2703 to i1
  br i1 %2704, label %2705, label %2727

2705:                                             ; preds = %2698
  %2706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2707 = call i32 @fileno(ptr noundef %2706) #11
  %2708 = call i32 @isatty(i32 noundef %2707) #11
  %2709 = icmp ne i32 %2708, 0
  br i1 %2709, label %2710, label %2727

2710:                                             ; preds = %2705
  %2711 = load i32, ptr %68, align 4, !tbaa !5
  %2712 = call ptr @__errno_location() #12
  store i32 %2711, ptr %2712, align 4, !tbaa !5
  %2713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2714 = load i32, ptr @test_count, align 4, !tbaa !5
  %2715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2716 = load i32, ptr %2715, align 4, !tbaa !5
  %2717 = call ptr @s2n_strerror(i32 noundef %2716, ptr noundef @.str.4)
  %2718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  %2720 = call ptr @s2n_strerror_debug(i32 noundef %2719, ptr noundef @.str.4)
  %2721 = call ptr @__errno_location() #12
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call ptr @strerror(i32 noundef %2722) #11
  %2724 = call ptr @__errno_location() #12
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2713, ptr noundef @.str.2, i32 noundef %2714, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 198, ptr noundef %2717, ptr noundef %2720, ptr noundef %2723, i32 noundef %2725) #11
  br label %2744

2727:                                             ; preds = %2705, %2698
  %2728 = load i32, ptr %68, align 4, !tbaa !5
  %2729 = call ptr @__errno_location() #12
  store i32 %2728, ptr %2729, align 4, !tbaa !5
  %2730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2731 = load i32, ptr @test_count, align 4, !tbaa !5
  %2732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call ptr @s2n_strerror(i32 noundef %2733, ptr noundef @.str.4)
  %2735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  %2737 = call ptr @s2n_strerror_debug(i32 noundef %2736, ptr noundef @.str.4)
  %2738 = call ptr @__errno_location() #12
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = call ptr @strerror(i32 noundef %2739) #11
  %2741 = call ptr @__errno_location() #12
  %2742 = load i32, ptr %2741, align 4, !tbaa !5
  %2743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2730, ptr noundef @.str.5, i32 noundef %2731, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 198, ptr noundef %2734, ptr noundef %2737, ptr noundef %2740, i32 noundef %2742) #11
  br label %2744

2744:                                             ; preds = %2727, %2710
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2745

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

2746:                                             ; No predecessors!
  br label %2747

2747:                                             ; preds = %2746, %2693
  br label %2748

2748:                                             ; preds = %2747
  br label %2749

2749:                                             ; preds = %2748
  br label %2750

2750:                                             ; preds = %2749
  %2751 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2752 = icmp eq i32 %2751, -1
  br i1 %2752, label %2753, label %2804

2753:                                             ; preds = %2750
  br label %2754

2754:                                             ; preds = %2753
  br label %2755

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

2762:                                             ; preds = %2755
  %2763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2764 = call i32 @fileno(ptr noundef %2763) #11
  %2765 = call i32 @isatty(i32 noundef %2764) #11
  %2766 = icmp ne i32 %2765, 0
  br i1 %2766, label %2767, label %2784

2767:                                             ; preds = %2762
  %2768 = load i32, ptr %69, align 4, !tbaa !5
  %2769 = call ptr @__errno_location() #12
  store i32 %2768, ptr %2769, align 4, !tbaa !5
  %2770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2771 = load i32, ptr @test_count, align 4, !tbaa !5
  %2772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2773 = load i32, ptr %2772, align 4, !tbaa !5
  %2774 = call ptr @s2n_strerror(i32 noundef %2773, ptr noundef @.str.4)
  %2775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  %2777 = call ptr @s2n_strerror_debug(i32 noundef %2776, ptr noundef @.str.4)
  %2778 = call ptr @__errno_location() #12
  %2779 = load i32, ptr %2778, align 4, !tbaa !5
  %2780 = call ptr @strerror(i32 noundef %2779) #11
  %2781 = call ptr @__errno_location() #12
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  %2783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2770, ptr noundef @.str.2, i32 noundef %2771, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 198, ptr noundef %2774, ptr noundef %2777, ptr noundef %2780, i32 noundef %2782) #11
  br label %2801

2784:                                             ; preds = %2762, %2755
  %2785 = load i32, ptr %69, align 4, !tbaa !5
  %2786 = call ptr @__errno_location() #12
  store i32 %2785, ptr %2786, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = load i32, ptr @test_count, align 4, !tbaa !5
  %2789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call ptr @s2n_strerror(i32 noundef %2790, ptr noundef @.str.4)
  %2792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror_debug(i32 noundef %2793, ptr noundef @.str.4)
  %2795 = call ptr @__errno_location() #12
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @strerror(i32 noundef %2796) #11
  %2798 = call ptr @__errno_location() #12
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2787, ptr noundef @.str.5, i32 noundef %2788, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 198, ptr noundef %2791, ptr noundef %2794, ptr noundef %2797, i32 noundef %2799) #11
  br label %2801

2801:                                             ; preds = %2784, %2767
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %2802

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

2803:                                             ; No predecessors!
  br label %2804

2804:                                             ; preds = %2803, %2750
  br label %2805

2805:                                             ; preds = %2804
  %2806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2807 = trunc i8 %2806 to i1
  br i1 %2807, label %2808, label %2824

2808:                                             ; preds = %2805
  %2809 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2810 = call i32 @fileno(ptr noundef %2809) #11
  %2811 = call i32 @isatty(i32 noundef %2810) #11
  %2812 = icmp ne i32 %2811, 0
  br i1 %2812, label %2813, label %2824

2813:                                             ; preds = %2808
  %2814 = load i32, ptr @test_count, align 4, !tbaa !5
  %2815 = icmp ne i32 %2814, 0
  br i1 %2815, label %2816, label %2820

2816:                                             ; preds = %2813
  %2817 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2818 = load i32, ptr @test_count, align 4, !tbaa !5
  %2819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2817, ptr noundef @.str.38, i32 noundef %2818) #11
  br label %2823

2820:                                             ; preds = %2813
  %2821 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2821, ptr noundef @.str.39) #11
  br label %2823

2823:                                             ; preds = %2820, %2816
  br label %2835

2824:                                             ; preds = %2808, %2805
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = icmp ne i32 %2825, 0
  br i1 %2826, label %2827, label %2831

2827:                                             ; preds = %2824
  %2828 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2829 = load i32, ptr @test_count, align 4, !tbaa !5
  %2830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2828, ptr noundef @.str.40, i32 noundef %2829) #11
  br label %2834

2831:                                             ; preds = %2824
  %2832 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2832, ptr noundef @.str.41) #11
  br label %2834

2834:                                             ; preds = %2831, %2827
  br label %2835

2835:                                             ; preds = %2834, %2823
  store i32 0, ptr %3, align 4
  br label %2837

2836:                                             ; No predecessors!
  br label %2837

2837:                                             ; preds = %2836, %2835, %2688, %1922, %1030
  %2838 = load i32, ptr %3, align 4
  ret i32 %2838

2839:                                             ; preds = %2688, %1922, %1030
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

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

declare i32 @s2n_free(ptr noundef) #2

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

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

declare ptr @s2n_connection_new(i32 noundef) #2

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

declare i32 @s2n_server_cert_recv(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_connection_free(ptr noundef) #2

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #9

; Function Attrs: nounwind
declare ptr @strcpy(ptr noundef, ptr noundef) #1

; Function Attrs: nounwind
declare ptr @strcat(ptr noundef, ptr noundef) #1

; 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) #10

declare i32 @s2n_server_cert_send(ptr noundef) #2

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

; Function Attrs: nounwind
declare void @free(ptr noundef) #1

declare i32 @s2n_enable_tls13_in_test(...) #2

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

declare i32 @s2n_cleanup() #2

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

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

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


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

%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_cert = type { i32, %struct.s2n_pkey, %struct.s2n_cert_info, %struct.s2n_blob, ptr }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_cert_info = type { i32, i32, i32, i32, i8 }
%struct.s2n_cert_chain = type { i32, ptr }
%struct.s2n_cert_chain_and_key = type { ptr, ptr, %struct.s2n_blob, %struct.s2n_blob, ptr, ptr, ptr }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@tls13_cert_message_hex = external dso_local constant [883 x i8], align 16
@tls13_cert_hex = external dso_local constant [865 x i8], align 16
@tls13_cert_chain_header_hex = external dso_local constant [15 x i8], align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [85 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

28:                                               ; preds = %21
  %29 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30 = tail call i32 @fileno(ptr noundef %29) #14
  %31 = tail call i32 @isatty(i32 noundef %30) #14
  %.not187 = icmp eq i32 %31, 0
  br i1 %.not187, label %32, label %33

32:                                               ; preds = %28, %21
  br label %33

33:                                               ; preds = %28, %32
  %.str.5.sink = phi ptr [ @.str.5, %32 ], [ @.str.2, %28 ]
  store i32 %23, ptr %22, align 4, !tbaa !5
  %34 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35 = load i32, ptr @test_count, align 4, !tbaa !5
  %36 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %37 = load i32, ptr %36, align 4, !tbaa !5
  %38 = tail call ptr @s2n_strerror(i32 noundef %37, ptr noundef nonnull @.str.4) #14
  %39 = load i32, ptr %36, align 4, !tbaa !5
  %40 = tail call ptr @s2n_strerror_debug(i32 noundef %39, ptr noundef nonnull @.str.4) #14
  %41 = load i32, ptr %22, align 4, !tbaa !5
  %42 = tail call ptr @strerror(i32 noundef %41) #14
  %43 = load i32, ptr %22, align 4, !tbaa !5
  %44 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %34, ptr noundef nonnull %.str.5.sink, i32 noundef %35, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %38, ptr noundef %40, ptr noundef %42, i32 noundef %43) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

45:                                               ; preds = %2
  %46 = load i32, ptr @test_count, align 4, !tbaa !5
  %47 = add nsw i32 %46, 1
  store i32 %47, ptr @test_count, align 4, !tbaa !5
  %48 = tail call i32 @s2n_enable_atexit() #14
  %49 = icmp eq i32 %48, -1
  br i1 %49, label %50, label %74

50:                                               ; preds = %45
  %51 = tail call ptr @__errno_location() #15
  %52 = load i32, ptr %51, align 4, !tbaa !5
  %53 = load ptr, ptr @stderr, align 8, !tbaa !9
  %54 = tail call i32 @s2n_print_stacktrace(ptr noundef %53) #14
  %55 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %56 = trunc nuw i8 %55 to i1
  br i1 %56, label %57, label %61

57:                                               ; preds = %50
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = tail call i32 @fileno(ptr noundef %58) #14
  %60 = tail call i32 @isatty(i32 noundef %59) #14
  %.not186 = icmp eq i32 %60, 0
  br i1 %.not186, label %61, label %62

61:                                               ; preds = %57, %50
  br label %62

62:                                               ; preds = %57, %61
  %.str.5.sink213 = phi ptr [ @.str.5, %61 ], [ @.str.2, %57 ]
  store i32 %52, ptr %51, align 4, !tbaa !5
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %66 = load i32, ptr %65, align 4, !tbaa !5
  %67 = tail call ptr @s2n_strerror(i32 noundef %66, ptr noundef nonnull @.str.4) #14
  %68 = load i32, ptr %65, align 4, !tbaa !5
  %69 = tail call ptr @s2n_strerror_debug(i32 noundef %68, ptr noundef nonnull @.str.4) #14
  %70 = load i32, ptr %51, align 4, !tbaa !5
  %71 = tail call ptr @strerror(i32 noundef %70) #14
  %72 = load i32, ptr %51, align 4, !tbaa !5
  %73 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %63, ptr noundef nonnull %.str.5.sink213, i32 noundef %64, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %67, ptr noundef %69, ptr noundef %71, i32 noundef %72) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

74:                                               ; preds = %45
  %75 = tail call i32 @s2n_init() #14
  %76 = icmp eq i32 %75, -1
  br i1 %76, label %77, label %101

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

84:                                               ; preds = %77
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = tail call i32 @fileno(ptr noundef %85) #14
  %87 = tail call i32 @isatty(i32 noundef %86) #14
  %.not185 = icmp eq i32 %87, 0
  br i1 %.not185, label %88, label %89

88:                                               ; preds = %84, %77
  br label %89

89:                                               ; preds = %84, %88
  %.str.5.sink224 = phi ptr [ @.str.5, %88 ], [ @.str.2, %84 ]
  store i32 %79, ptr %78, align 4, !tbaa !5
  %90 = load ptr, ptr @stderr, align 8, !tbaa !9
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %93 = load i32, ptr %92, align 4, !tbaa !5
  %94 = tail call ptr @s2n_strerror(i32 noundef %93, ptr noundef nonnull @.str.4) #14
  %95 = load i32, ptr %92, align 4, !tbaa !5
  %96 = tail call ptr @s2n_strerror_debug(i32 noundef %95, ptr noundef nonnull @.str.4) #14
  %97 = load i32, ptr %78, align 4, !tbaa !5
  %98 = tail call ptr @strerror(i32 noundef %97) #14
  %99 = load i32, ptr %78, align 4, !tbaa !5
  %100 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %90, ptr noundef nonnull %.str.5.sink224, i32 noundef %91, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %94, ptr noundef %96, ptr noundef %98, i32 noundef %99) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

101:                                              ; preds = %74
  %102 = load i32, ptr @test_count, align 4, !tbaa !5
  %103 = add nsw i32 %102, 1
  store i32 %103, ptr @test_count, align 4, !tbaa !5
  %104 = tail call i32 (...) @s2n_disable_tls13_in_test() #14
  %105 = icmp eq i32 %104, -1
  br i1 %105, label %106, label %130

106:                                              ; preds = %101
  %107 = tail call ptr @__errno_location() #15
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = tail call i32 @s2n_print_stacktrace(ptr noundef %109) #14
  %111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %112 = trunc nuw i8 %111 to i1
  br i1 %112, label %113, label %117

113:                                              ; preds = %106
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = tail call i32 @fileno(ptr noundef %114) #14
  %116 = tail call i32 @isatty(i32 noundef %115) #14
  %.not184 = icmp eq i32 %116, 0
  br i1 %.not184, label %117, label %118

117:                                              ; preds = %113, %106
  br label %118

118:                                              ; preds = %113, %117
  %.str.5.sink235 = phi ptr [ @.str.5, %117 ], [ @.str.2, %113 ]
  store i32 %108, ptr %107, align 4, !tbaa !5
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = tail call ptr @s2n_strerror(i32 noundef %122, ptr noundef nonnull @.str.4) #14
  %124 = load i32, ptr %121, align 4, !tbaa !5
  %125 = tail call ptr @s2n_strerror_debug(i32 noundef %124, ptr noundef nonnull @.str.4) #14
  %126 = load i32, ptr %107, align 4, !tbaa !5
  %127 = tail call ptr @strerror(i32 noundef %126) #14
  %128 = load i32, ptr %107, align 4, !tbaa !5
  %129 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %119, ptr noundef nonnull %.str.5.sink235, i32 noundef %120, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %123, ptr noundef %125, ptr noundef %127, i32 noundef %128) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

130:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false)
  %131 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %3, ptr noundef nonnull @tls13_cert_message_hex) #14
  %132 = call zeroext i1 @s2n_result_is_ok(i32 %131)
  br i1 %132, label %133, label %396

133:                                              ; preds = %130
  %134 = load i32, ptr @test_count, align 4, !tbaa !5
  %135 = add nsw i32 %134, 1
  store i32 %135, ptr @test_count, align 4, !tbaa !5
  %136 = call ptr @s2n_connection_new(i32 noundef 1) #14
  %137 = icmp eq ptr %136, null
  br i1 %137, label %138, label %162

138:                                              ; preds = %133
  %139 = tail call ptr @__errno_location() #15
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %142 = call i32 @s2n_print_stacktrace(ptr noundef %141) #14
  %143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %144 = trunc nuw i8 %143 to i1
  br i1 %144, label %145, label %149

145:                                              ; preds = %138
  %146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %147 = call i32 @fileno(ptr noundef %146) #14
  %148 = call i32 @isatty(i32 noundef %147) #14
  %.not183 = icmp eq i32 %148, 0
  br i1 %.not183, label %149, label %150

149:                                              ; preds = %145, %138
  br label %150

150:                                              ; preds = %145, %149
  %.str.5.sink246 = phi ptr [ @.str.5, %149 ], [ @.str.2, %145 ]
  store i32 %140, ptr %139, align 4, !tbaa !5
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = call ptr @s2n_strerror(i32 noundef %154, ptr noundef nonnull @.str.4) #14
  %156 = load i32, ptr %153, align 4, !tbaa !5
  %157 = call ptr @s2n_strerror_debug(i32 noundef %156, ptr noundef nonnull @.str.4) #14
  %158 = load i32, ptr %139, align 4, !tbaa !5
  %159 = call ptr @strerror(i32 noundef %158) #14
  %160 = load i32, ptr %139, align 4, !tbaa !5
  %161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %151, ptr noundef nonnull %.str.5.sink246, i32 noundef %152, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %155, ptr noundef %157, ptr noundef %159, i32 noundef %160) #16
  call void @exit(i32 noundef 1) #17
  unreachable

162:                                              ; preds = %133
  %163 = getelementptr inbounds i8, ptr %136, i64 3720
  store i8 1, ptr %163, align 8, !tbaa !15
  %164 = getelementptr inbounds i8, ptr %136, i64 220
  store i8 34, ptr %164, align 4, !tbaa !42
  %165 = load i32, ptr @test_count, align 4, !tbaa !5
  %166 = add nsw i32 %165, 2
  store i32 %166, ptr @test_count, align 4, !tbaa !5
  %167 = getelementptr inbounds i8, ptr %136, i64 2016
  %168 = call i32 @s2n_stuffer_write(ptr noundef nonnull %167, ptr noundef nonnull %3) #14
  %169 = icmp eq i32 %168, -1
  br i1 %169, label %170, label %194

170:                                              ; preds = %162
  %171 = tail call ptr @__errno_location() #15
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = call i32 @s2n_print_stacktrace(ptr noundef %173) #14
  %175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %176 = trunc nuw i8 %175 to i1
  br i1 %176, label %177, label %181

177:                                              ; preds = %170
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = call i32 @fileno(ptr noundef %178) #14
  %180 = call i32 @isatty(i32 noundef %179) #14
  %.not182 = icmp eq i32 %180, 0
  br i1 %.not182, label %181, label %182

181:                                              ; preds = %177, %170
  br label %182

182:                                              ; preds = %177, %181
  %.str.5.sink257 = phi ptr [ @.str.5, %181 ], [ @.str.2, %177 ]
  store i32 %172, ptr %171, align 4, !tbaa !5
  %183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %184 = load i32, ptr @test_count, align 4, !tbaa !5
  %185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %186 = load i32, ptr %185, align 4, !tbaa !5
  %187 = call ptr @s2n_strerror(i32 noundef %186, ptr noundef nonnull @.str.4) #14
  %188 = load i32, ptr %185, align 4, !tbaa !5
  %189 = call ptr @s2n_strerror_debug(i32 noundef %188, ptr noundef nonnull @.str.4) #14
  %190 = load i32, ptr %171, align 4, !tbaa !5
  %191 = call ptr @strerror(i32 noundef %190) #14
  %192 = load i32, ptr %171, align 4, !tbaa !5
  %193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %183, ptr noundef nonnull %.str.5.sink257, i32 noundef %184, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %187, ptr noundef %189, ptr noundef %191, i32 noundef %192) #16
  call void @exit(i32 noundef 1) #17
  unreachable

194:                                              ; preds = %162
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = add nsw i32 %195, 1
  store i32 %196, ptr @test_count, align 4, !tbaa !5
  %197 = call i32 @s2n_server_cert_recv(ptr noundef nonnull %136) #14
  %198 = icmp eq i32 %197, -1
  br i1 %198, label %199, label %223

199:                                              ; preds = %194
  %200 = tail call ptr @__errno_location() #15
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = call i32 @s2n_print_stacktrace(ptr noundef %202) #14
  %204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %205 = trunc nuw i8 %204 to i1
  br i1 %205, label %206, label %210

206:                                              ; preds = %199
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = call i32 @fileno(ptr noundef %207) #14
  %209 = call i32 @isatty(i32 noundef %208) #14
  %.not181 = icmp eq i32 %209, 0
  br i1 %.not181, label %210, label %211

210:                                              ; preds = %206, %199
  br label %211

211:                                              ; preds = %206, %210
  %.str.5.sink268 = phi ptr [ @.str.5, %210 ], [ @.str.2, %206 ]
  store i32 %201, ptr %200, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = load i32, ptr @test_count, align 4, !tbaa !5
  %214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = call ptr @s2n_strerror(i32 noundef %215, ptr noundef nonnull @.str.4) #14
  %217 = load i32, ptr %214, align 4, !tbaa !5
  %218 = call ptr @s2n_strerror_debug(i32 noundef %217, ptr noundef nonnull @.str.4) #14
  %219 = load i32, ptr %200, align 4, !tbaa !5
  %220 = call ptr @strerror(i32 noundef %219) #14
  %221 = load i32, ptr %200, align 4, !tbaa !5
  %222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %212, ptr noundef nonnull %.str.5.sink268, i32 noundef %213, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %216, ptr noundef %218, ptr noundef %220, i32 noundef %221) #16
  call void @exit(i32 noundef 1) #17
  unreachable

223:                                              ; preds = %194
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr @test_count, align 4, !tbaa !5
  %226 = getelementptr inbounds i8, ptr %136, i64 2044
  %227 = load i32, ptr %226, align 4, !tbaa !43
  %228 = getelementptr inbounds i8, ptr %136, i64 2040
  %229 = load i32, ptr %228, align 8, !tbaa !44
  %230 = icmp eq i32 %227, %229
  br i1 %230, label %255, label %231

231:                                              ; preds = %223
  %232 = tail call ptr @__errno_location() #15
  %233 = load i32, ptr %232, align 4, !tbaa !5
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = call i32 @s2n_print_stacktrace(ptr noundef %234) #14
  %236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %237 = trunc nuw i8 %236 to i1
  br i1 %237, label %238, label %242

238:                                              ; preds = %231
  %239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %240 = call i32 @fileno(ptr noundef %239) #14
  %241 = call i32 @isatty(i32 noundef %240) #14
  %.not = icmp eq i32 %241, 0
  br i1 %.not, label %242, label %243

242:                                              ; preds = %238, %231
  br label %243

243:                                              ; preds = %238, %242
  %.str.5.sink279 = phi ptr [ @.str.5, %242 ], [ @.str.2, %238 ]
  store i32 %233, ptr %232, align 4, !tbaa !5
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = load i32, ptr @test_count, align 4, !tbaa !5
  %246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = call ptr @s2n_strerror(i32 noundef %247, ptr noundef nonnull @.str.4) #14
  %249 = load i32, ptr %246, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror_debug(i32 noundef %249, ptr noundef nonnull @.str.4) #14
  %251 = load i32, ptr %232, align 4, !tbaa !5
  %252 = call ptr @strerror(i32 noundef %251) #14
  %253 = load i32, ptr %232, align 4, !tbaa !5
  %254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %244, ptr noundef nonnull %.str.5.sink279, i32 noundef %245, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %248, ptr noundef %250, ptr noundef %252, i32 noundef %253) #16
  call void @exit(i32 noundef 1) #17
  unreachable

255:                                              ; preds = %223
  store i8 33, ptr %164, align 4, !tbaa !42
  %256 = add nsw i32 %224, 3
  store i32 %256, ptr @test_count, align 4, !tbaa !5
  %257 = call i32 @s2n_stuffer_write(ptr noundef nonnull %167, ptr noundef nonnull %3) #14
  %258 = icmp eq i32 %257, -1
  br i1 %258, label %259, label %283

259:                                              ; preds = %255
  %260 = tail call ptr @__errno_location() #15
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %263 = call i32 @s2n_print_stacktrace(ptr noundef %262) #14
  %264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %265 = trunc nuw i8 %264 to i1
  br i1 %265, label %266, label %270

266:                                              ; preds = %259
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = call i32 @fileno(ptr noundef %267) #14
  %269 = call i32 @isatty(i32 noundef %268) #14
  %.not180 = icmp eq i32 %269, 0
  br i1 %.not180, label %270, label %271

270:                                              ; preds = %266, %259
  br label %271

271:                                              ; preds = %266, %270
  %.str.5.sink290 = phi ptr [ @.str.5, %270 ], [ @.str.2, %266 ]
  store i32 %261, ptr %260, align 4, !tbaa !5
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %273 = load i32, ptr @test_count, align 4, !tbaa !5
  %274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = call ptr @s2n_strerror(i32 noundef %275, ptr noundef nonnull @.str.4) #14
  %277 = load i32, ptr %274, align 4, !tbaa !5
  %278 = call ptr @s2n_strerror_debug(i32 noundef %277, ptr noundef nonnull @.str.4) #14
  %279 = load i32, ptr %260, align 4, !tbaa !5
  %280 = call ptr @strerror(i32 noundef %279) #14
  %281 = load i32, ptr %260, align 4, !tbaa !5
  %282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %272, ptr noundef nonnull %.str.5.sink290, i32 noundef %273, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %276, ptr noundef %278, ptr noundef %280, i32 noundef %281) #16
  call void @exit(i32 noundef 1) #17
  unreachable

283:                                              ; preds = %255
  %284 = load i32, ptr @test_count, align 4, !tbaa !5
  %285 = add nsw i32 %284, 1
  store i32 %285, ptr @test_count, align 4, !tbaa !5
  %286 = call i32 @s2n_server_cert_recv(ptr noundef nonnull %136) #14
  %287 = icmp eq i32 %286, -1
  br i1 %287, label %312, label %288

288:                                              ; preds = %283
  %289 = tail call ptr @__errno_location() #15
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = call i32 @s2n_print_stacktrace(ptr noundef %291) #14
  %293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %294 = trunc nuw i8 %293 to i1
  br i1 %294, label %295, label %299

295:                                              ; preds = %288
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = call i32 @fileno(ptr noundef %296) #14
  %298 = call i32 @isatty(i32 noundef %297) #14
  %.not149 = icmp eq i32 %298, 0
  br i1 %.not149, label %299, label %300

299:                                              ; preds = %295, %288
  br label %300

300:                                              ; preds = %295, %299
  %.str.5.sink301 = phi ptr [ @.str.5, %299 ], [ @.str.2, %295 ]
  store i32 %290, ptr %289, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call ptr @s2n_strerror(i32 noundef %304, ptr noundef nonnull @.str.4) #14
  %306 = load i32, ptr %303, align 4, !tbaa !5
  %307 = call ptr @s2n_strerror_debug(i32 noundef %306, ptr noundef nonnull @.str.4) #14
  %308 = load i32, ptr %289, align 4, !tbaa !5
  %309 = call ptr @strerror(i32 noundef %308) #14
  %310 = load i32, ptr %289, align 4, !tbaa !5
  %311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef nonnull %.str.5.sink301, i32 noundef %302, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %305, ptr noundef %307, ptr noundef %309, i32 noundef %310) #16
  call void @exit(i32 noundef 1) #17
  unreachable

312:                                              ; preds = %283
  %313 = load i32, ptr @test_count, align 4, !tbaa !5
  %314 = add nsw i32 %313, 1
  store i32 %314, ptr @test_count, align 4, !tbaa !5
  %315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = icmp eq i32 %316, 0
  br i1 %317, label %318, label %341

318:                                              ; preds = %312
  %319 = tail call ptr @__errno_location() #15
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = call i32 @s2n_print_stacktrace(ptr noundef %321) #14
  %323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %324 = trunc nuw i8 %323 to i1
  br i1 %324, label %325, label %329

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

329:                                              ; preds = %325, %318
  br label %330

330:                                              ; preds = %325, %329
  %.str.5.sink312 = phi ptr [ @.str.5, %329 ], [ @.str.2, %325 ]
  store i32 %320, ptr %319, align 4, !tbaa !5
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = load i32, ptr @test_count, align 4, !tbaa !5
  %333 = load i32, ptr %315, align 4, !tbaa !5
  %334 = call ptr @s2n_strerror(i32 noundef %333, ptr noundef nonnull @.str.4) #14
  %335 = load i32, ptr %315, align 4, !tbaa !5
  %336 = call ptr @s2n_strerror_debug(i32 noundef %335, ptr noundef nonnull @.str.4) #14
  %337 = load i32, ptr %319, align 4, !tbaa !5
  %338 = call ptr @strerror(i32 noundef %337) #14
  %339 = load i32, ptr %319, align 4, !tbaa !5
  %340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %331, ptr noundef nonnull %.str.5.sink312, i32 noundef %332, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %334, ptr noundef %336, ptr noundef %338, i32 noundef %339) #16
  call void @exit(i32 noundef 1) #17
  unreachable

341:                                              ; preds = %312
  %342 = add nsw i32 %313, 2
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = call ptr @s2n_strerror_debug(i32 noundef %316, ptr noundef nonnull @.str.4) #14
  %344 = icmp eq ptr %343, null
  br i1 %344, label %345, label %368

345:                                              ; preds = %341
  %346 = tail call ptr @__errno_location() #15
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = call i32 @s2n_print_stacktrace(ptr noundef %348) #14
  %350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %351 = trunc nuw i8 %350 to i1
  br i1 %351, label %352, label %356

352:                                              ; preds = %345
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = call i32 @fileno(ptr noundef %353) #14
  %355 = call i32 @isatty(i32 noundef %354) #14
  %.not178 = icmp eq i32 %355, 0
  br i1 %.not178, label %356, label %357

356:                                              ; preds = %352, %345
  br label %357

357:                                              ; preds = %352, %356
  %.str.5.sink321 = phi ptr [ @.str.5, %356 ], [ @.str.2, %352 ]
  store i32 %347, ptr %346, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = load i32, ptr %315, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror(i32 noundef %360, ptr noundef nonnull @.str.4) #14
  %362 = load i32, ptr %315, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror_debug(i32 noundef %362, ptr noundef nonnull @.str.4) #14
  %364 = load i32, ptr %346, align 4, !tbaa !5
  %365 = call ptr @strerror(i32 noundef %364) #14
  %366 = load i32, ptr %346, align 4, !tbaa !5
  %367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef nonnull %.str.5.sink321, i32 noundef %359, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %361, ptr noundef %363, ptr noundef %365, i32 noundef %366) #16
  call void @exit(i32 noundef 1) #17
  unreachable

368:                                              ; preds = %341
  store i32 0, ptr %315, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  %369 = tail call ptr @__errno_location() #15
  store i32 0, ptr %369, align 4, !tbaa !5
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr @test_count, align 4, !tbaa !5
  %372 = call i32 @s2n_connection_free(ptr noundef nonnull %136) #14
  %373 = icmp eq i32 %372, -1
  br i1 %373, label %374, label %398

374:                                              ; preds = %368
  %375 = load i32, ptr %369, align 4, !tbaa !5
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = call i32 @s2n_print_stacktrace(ptr noundef %376) #14
  %378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %379 = trunc nuw i8 %378 to i1
  br i1 %379, label %380, label %384

380:                                              ; preds = %374
  %381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %382 = call i32 @fileno(ptr noundef %381) #14
  %383 = call i32 @isatty(i32 noundef %382) #14
  %.not177 = icmp eq i32 %383, 0
  br i1 %.not177, label %384, label %385

384:                                              ; preds = %380, %374
  br label %385

385:                                              ; preds = %380, %384
  %.str.5.sink330 = phi ptr [ @.str.5, %384 ], [ @.str.2, %380 ]
  store i32 %375, ptr %369, align 4, !tbaa !5
  %386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %387 = load i32, ptr @test_count, align 4, !tbaa !5
  %388 = load i32, ptr %315, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror(i32 noundef %388, ptr noundef nonnull @.str.4) #14
  %390 = load i32, ptr %315, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror_debug(i32 noundef %390, ptr noundef nonnull @.str.4) #14
  %392 = load i32, ptr %369, align 4, !tbaa !5
  %393 = call ptr @strerror(i32 noundef %392) #14
  %394 = load i32, ptr %369, align 4, !tbaa !5
  %395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %386, ptr noundef nonnull %.str.5.sink330, i32 noundef %387, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %389, ptr noundef %391, ptr noundef %393, i32 noundef %394) #16
  call void @exit(i32 noundef 1) #17
  unreachable

396:                                              ; preds = %130
  %397 = call i32 @s2n_free(ptr noundef nonnull %3) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #14
  br label %1130

398:                                              ; preds = %368
  %399 = call i32 @s2n_free(ptr noundef nonnull %3) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #14
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = add nsw i32 %400, 1
  store i32 %401, ptr @test_count, align 4, !tbaa !5
  %402 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #18
  %403 = icmp eq ptr %402, null
  br i1 %403, label %404, label %426

404:                                              ; preds = %398
  %405 = load i32, ptr %369, align 4, !tbaa !5
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = call i32 @s2n_print_stacktrace(ptr noundef %406) #14
  %408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %409 = trunc nuw i8 %408 to i1
  br i1 %409, label %410, label %414

410:                                              ; preds = %404
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = call i32 @fileno(ptr noundef %411) #14
  %413 = call i32 @isatty(i32 noundef %412) #14
  %.not176 = icmp eq i32 %413, 0
  br i1 %.not176, label %414, label %415

414:                                              ; preds = %410, %404
  br label %415

415:                                              ; preds = %410, %414
  %.str.5.sink339 = phi ptr [ @.str.5, %414 ], [ @.str.2, %410 ]
  store i32 %405, ptr %369, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = load i32, ptr %315, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror(i32 noundef %418, ptr noundef nonnull @.str.4) #14
  %420 = load i32, ptr %315, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror_debug(i32 noundef %420, ptr noundef nonnull @.str.4) #14
  %422 = load i32, ptr %369, align 4, !tbaa !5
  %423 = call ptr @strerror(i32 noundef %422) #14
  %424 = load i32, ptr %369, align 4, !tbaa !5
  %425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef nonnull %.str.5.sink339, i32 noundef %417, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %419, ptr noundef %421, ptr noundef %423, i32 noundef %424) #16
  call void @exit(i32 noundef 1) #17
  unreachable

426:                                              ; preds = %398
  %427 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %402, ptr noundef nonnull dereferenceable(1) @tls13_cert_chain_header_hex) #14
  %428 = call ptr @strcat(ptr noundef nonnull dereferenceable(1) %402, ptr noundef nonnull dereferenceable(1) @tls13_cert_hex) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  %429 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %4, ptr noundef nonnull %402) #14
  %430 = call zeroext i1 @s2n_result_is_ok(i32 %429)
  br i1 %430, label %432, label %.thread195

.thread195:                                       ; preds = %426
  %431 = call i32 @s2n_free(ptr noundef nonnull %4) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #14
  br label %1130

432:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  %433 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %5, ptr noundef nonnull @tls13_cert_hex) #14
  %434 = call zeroext i1 @s2n_result_is_ok(i32 %433)
  br i1 %434, label %435, label %727

435:                                              ; preds = %432
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #14
  store i8 0, ptr %6, align 1, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %7) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %7, i8 0, i64 112, i1 false)
  %436 = getelementptr inbounds i8, ptr %7, i64 80
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %436, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #14
  %437 = getelementptr inbounds i8, ptr %5, i64 8
  %438 = load i32, ptr %437, align 8, !tbaa !47
  %439 = add i32 %438, 3
  store i32 %439, ptr %8, align 8, !tbaa !48
  %440 = getelementptr inbounds i8, ptr %8, i64 8
  store ptr %7, ptr %440, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %9) #14
  %441 = getelementptr inbounds i8, ptr %9, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %441, i8 0, i64 80, i1 false)
  store ptr %8, ptr %9, align 8, !tbaa !51
  %442 = load i32, ptr @test_count, align 4, !tbaa !5
  %443 = add nsw i32 %442, 1
  store i32 %443, ptr @test_count, align 4, !tbaa !5
  %444 = call ptr @s2n_connection_new(i32 noundef 0) #14
  %445 = icmp eq ptr %444, null
  br i1 %445, label %446, label %468

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

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

456:                                              ; preds = %452, %446
  br label %457

457:                                              ; preds = %452, %456
  %.str.5.sink348 = phi ptr [ @.str.5, %456 ], [ @.str.2, %452 ]
  store i32 %447, ptr %369, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = load i32, ptr %315, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror(i32 noundef %460, ptr noundef nonnull @.str.4) #14
  %462 = load i32, ptr %315, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror_debug(i32 noundef %462, ptr noundef nonnull @.str.4) #14
  %464 = load i32, ptr %369, align 4, !tbaa !5
  %465 = call ptr @strerror(i32 noundef %464) #14
  %466 = load i32, ptr %369, align 4, !tbaa !5
  %467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef nonnull %.str.5.sink348, i32 noundef %459, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %461, ptr noundef %463, ptr noundef %465, i32 noundef %466) #16
  call void @exit(i32 noundef 1) #17
  unreachable

468:                                              ; preds = %435
  %469 = getelementptr inbounds i8, ptr %444, i64 220
  store i8 34, ptr %469, align 4, !tbaa !42
  %470 = getelementptr inbounds i8, ptr %444, i64 1544
  store ptr %9, ptr %470, align 8, !tbaa !53
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = add nsw i32 %471, 2
  store i32 %472, ptr @test_count, align 4, !tbaa !5
  %473 = call i32 @s2n_server_cert_send(ptr noundef nonnull %444) #14
  %474 = icmp eq i32 %473, -1
  br i1 %474, label %475, label %497

475:                                              ; preds = %468
  %476 = load i32, ptr %369, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = call i32 @s2n_print_stacktrace(ptr noundef %477) #14
  %479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %480 = trunc nuw i8 %479 to i1
  br i1 %480, label %481, label %485

481:                                              ; preds = %475
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = call i32 @fileno(ptr noundef %482) #14
  %484 = call i32 @isatty(i32 noundef %483) #14
  %.not174 = icmp eq i32 %484, 0
  br i1 %.not174, label %485, label %486

485:                                              ; preds = %481, %475
  br label %486

486:                                              ; preds = %481, %485
  %.str.5.sink357 = phi ptr [ @.str.5, %485 ], [ @.str.2, %481 ]
  store i32 %476, ptr %369, align 4, !tbaa !5
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = load i32, ptr @test_count, align 4, !tbaa !5
  %489 = load i32, ptr %315, align 4, !tbaa !5
  %490 = call ptr @s2n_strerror(i32 noundef %489, ptr noundef nonnull @.str.4) #14
  %491 = load i32, ptr %315, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror_debug(i32 noundef %491, ptr noundef nonnull @.str.4) #14
  %493 = load i32, ptr %369, align 4, !tbaa !5
  %494 = call ptr @strerror(i32 noundef %493) #14
  %495 = load i32, ptr %369, align 4, !tbaa !5
  %496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %487, ptr noundef nonnull %.str.5.sink357, i32 noundef %488, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %490, ptr noundef %492, ptr noundef %494, i32 noundef %495) #16
  call void @exit(i32 noundef 1) #17
  unreachable

497:                                              ; preds = %468
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = add nsw i32 %498, 1
  store i32 %499, ptr @test_count, align 4, !tbaa !5
  %500 = getelementptr inbounds i8, ptr %444, i64 2044
  %501 = load i32, ptr %500, align 4, !tbaa !43
  %502 = getelementptr inbounds i8, ptr %444, i64 2040
  %503 = load i32, ptr %502, align 8, !tbaa !44
  %504 = sub i32 %501, %503
  %505 = getelementptr inbounds i8, ptr %4, i64 8
  %506 = load i32, ptr %505, align 8, !tbaa !47
  %507 = add i32 %506, 2
  %508 = icmp eq i32 %504, %507
  br i1 %508, label %531, label %509

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

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

519:                                              ; preds = %515, %509
  br label %520

520:                                              ; preds = %515, %519
  %.str.5.sink366 = phi ptr [ @.str.5, %519 ], [ @.str.2, %515 ]
  store i32 %510, ptr %369, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = load i32, ptr %315, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror(i32 noundef %523, ptr noundef nonnull @.str.4) #14
  %525 = load i32, ptr %315, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef nonnull @.str.4) #14
  %527 = load i32, ptr %369, align 4, !tbaa !5
  %528 = call ptr @strerror(i32 noundef %527) #14
  %529 = load i32, ptr %369, align 4, !tbaa !5
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %521, ptr noundef nonnull %.str.5.sink366, i32 noundef %522, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %524, ptr noundef %526, ptr noundef %528, i32 noundef %529) #16
  call void @exit(i32 noundef 1) #17
  unreachable

531:                                              ; preds = %497
  %532 = getelementptr inbounds i8, ptr %444, i64 2016
  %533 = add nsw i32 %498, 2
  store i32 %533, ptr @test_count, align 4, !tbaa !5
  %534 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %532, ptr noundef nonnull %6) #14
  %535 = icmp eq i32 %534, -1
  br i1 %535, label %536, label %558

536:                                              ; preds = %531
  %537 = load i32, ptr %369, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = call i32 @s2n_print_stacktrace(ptr noundef %538) #14
  %540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %541 = trunc nuw i8 %540 to i1
  br i1 %541, label %542, label %546

542:                                              ; preds = %536
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = call i32 @fileno(ptr noundef %543) #14
  %545 = call i32 @isatty(i32 noundef %544) #14
  %.not173 = icmp eq i32 %545, 0
  br i1 %.not173, label %546, label %547

546:                                              ; preds = %542, %536
  br label %547

547:                                              ; preds = %542, %546
  %.str.5.sink375 = phi ptr [ @.str.5, %546 ], [ @.str.2, %542 ]
  store i32 %537, ptr %369, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = load i32, ptr %315, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror(i32 noundef %550, ptr noundef nonnull @.str.4) #14
  %552 = load i32, ptr %315, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror_debug(i32 noundef %552, ptr noundef nonnull @.str.4) #14
  %554 = load i32, ptr %369, align 4, !tbaa !5
  %555 = call ptr @strerror(i32 noundef %554) #14
  %556 = load i32, ptr %369, align 4, !tbaa !5
  %557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %548, ptr noundef nonnull %.str.5.sink375, i32 noundef %549, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %551, ptr noundef %553, ptr noundef %555, i32 noundef %556) #16
  call void @exit(i32 noundef 1) #17
  unreachable

558:                                              ; preds = %531
  %559 = load i32, ptr @test_count, align 4, !tbaa !5
  %560 = add nsw i32 %559, 1
  store i32 %560, ptr @test_count, align 4, !tbaa !5
  %561 = load i8, ptr %6, align 1, !tbaa !45
  %562 = icmp eq i8 %561, 0
  br i1 %562, label %585, label %563

563:                                              ; preds = %558
  %564 = load i32, ptr %369, align 4, !tbaa !5
  %565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %566 = call i32 @s2n_print_stacktrace(ptr noundef %565) #14
  %567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %568 = trunc nuw i8 %567 to i1
  br i1 %568, label %569, label %573

569:                                              ; preds = %563
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @fileno(ptr noundef %570) #14
  %572 = call i32 @isatty(i32 noundef %571) #14
  %.not151 = icmp eq i32 %572, 0
  br i1 %.not151, label %573, label %574

573:                                              ; preds = %569, %563
  br label %574

574:                                              ; preds = %569, %573
  %.str.5.sink384 = phi ptr [ @.str.5, %573 ], [ @.str.2, %569 ]
  store i32 %564, ptr %369, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = load i32, ptr @test_count, align 4, !tbaa !5
  %577 = load i32, ptr %315, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror(i32 noundef %577, ptr noundef nonnull @.str.4) #14
  %579 = load i32, ptr %315, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror_debug(i32 noundef %579, ptr noundef nonnull @.str.4) #14
  %581 = load i32, ptr %369, align 4, !tbaa !5
  %582 = call ptr @strerror(i32 noundef %581) #14
  %583 = load i32, ptr %369, align 4, !tbaa !5
  %584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %575, ptr noundef nonnull %.str.5.sink384, i32 noundef %576, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %578, ptr noundef %580, ptr noundef %582, i32 noundef %583) #16
  call void @exit(i32 noundef 1) #17
  unreachable

585:                                              ; preds = %558
  %586 = add nsw i32 %559, 2
  store i32 %586, ptr @test_count, align 4, !tbaa !5
  %587 = call i32 @s2n_connection_free(ptr noundef nonnull %444) #14
  %588 = icmp eq i32 %587, -1
  br i1 %588, label %589, label %611

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

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

599:                                              ; preds = %595, %589
  br label %600

600:                                              ; preds = %595, %599
  %.str.5.sink393 = phi ptr [ @.str.5, %599 ], [ @.str.2, %595 ]
  store i32 %590, ptr %369, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = load i32, ptr %315, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror(i32 noundef %603, ptr noundef nonnull @.str.4) #14
  %605 = load i32, ptr %315, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror_debug(i32 noundef %605, ptr noundef nonnull @.str.4) #14
  %607 = load i32, ptr %369, align 4, !tbaa !5
  %608 = call ptr @strerror(i32 noundef %607) #14
  %609 = load i32, ptr %369, align 4, !tbaa !5
  %610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef nonnull %.str.5.sink393, i32 noundef %602, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %604, ptr noundef %606, ptr noundef %608, i32 noundef %609) #16
  call void @exit(i32 noundef 1) #17
  unreachable

611:                                              ; preds = %585
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = add nsw i32 %612, 1
  store i32 %613, ptr @test_count, align 4, !tbaa !5
  %614 = call ptr @s2n_connection_new(i32 noundef 0) #14
  %615 = icmp eq ptr %614, null
  br i1 %615, label %616, label %638

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

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

626:                                              ; preds = %622, %616
  br label %627

627:                                              ; preds = %622, %626
  %.str.5.sink402 = phi ptr [ @.str.5, %626 ], [ @.str.2, %622 ]
  store i32 %617, ptr %369, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = load i32, ptr %315, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror(i32 noundef %630, ptr noundef nonnull @.str.4) #14
  %632 = load i32, ptr %315, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror_debug(i32 noundef %632, ptr noundef nonnull @.str.4) #14
  %634 = load i32, ptr %369, align 4, !tbaa !5
  %635 = call ptr @strerror(i32 noundef %634) #14
  %636 = load i32, ptr %369, align 4, !tbaa !5
  %637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef nonnull %.str.5.sink402, i32 noundef %629, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %631, ptr noundef %633, ptr noundef %635, i32 noundef %636) #16
  call void @exit(i32 noundef 1) #17
  unreachable

638:                                              ; preds = %611
  %639 = getelementptr inbounds i8, ptr %614, i64 220
  store i8 33, ptr %639, align 4, !tbaa !42
  %640 = getelementptr inbounds i8, ptr %614, i64 1544
  store ptr %9, ptr %640, align 8, !tbaa !53
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = add nsw i32 %641, 2
  store i32 %642, ptr @test_count, align 4, !tbaa !5
  %643 = call i32 @s2n_server_cert_send(ptr noundef nonnull %614) #14
  %644 = icmp eq i32 %643, -1
  br i1 %644, label %645, label %667

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

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

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

656:                                              ; preds = %651, %655
  %.str.5.sink411 = phi ptr [ @.str.5, %655 ], [ @.str.2, %651 ]
  store i32 %646, ptr %369, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = load i32, ptr %315, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror(i32 noundef %659, ptr noundef nonnull @.str.4) #14
  %661 = load i32, ptr %315, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror_debug(i32 noundef %661, ptr noundef nonnull @.str.4) #14
  %663 = load i32, ptr %369, align 4, !tbaa !5
  %664 = call ptr @strerror(i32 noundef %663) #14
  %665 = load i32, ptr %369, align 4, !tbaa !5
  %666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef nonnull %.str.5.sink411, i32 noundef %658, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %660, ptr noundef %662, ptr noundef %664, i32 noundef %665) #16
  call void @exit(i32 noundef 1) #17
  unreachable

667:                                              ; preds = %638
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = add nsw i32 %668, 1
  store i32 %669, ptr @test_count, align 4, !tbaa !5
  %670 = getelementptr inbounds i8, ptr %614, i64 2044
  %671 = load i32, ptr %670, align 4, !tbaa !43
  %672 = getelementptr inbounds i8, ptr %614, i64 2040
  %673 = load i32, ptr %672, align 8, !tbaa !44
  %674 = sub i32 %671, %673
  %675 = load i32, ptr %505, align 8, !tbaa !47
  %676 = add i32 %675, -1
  %677 = icmp eq i32 %674, %676
  br i1 %677, label %700, label %678

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

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

688:                                              ; preds = %684, %678
  br label %689

689:                                              ; preds = %684, %688
  %.str.5.sink420 = phi ptr [ @.str.5, %688 ], [ @.str.2, %684 ]
  store i32 %679, ptr %369, align 4, !tbaa !5
  %690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %691 = load i32, ptr @test_count, align 4, !tbaa !5
  %692 = load i32, ptr %315, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror(i32 noundef %692, ptr noundef nonnull @.str.4) #14
  %694 = load i32, ptr %315, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror_debug(i32 noundef %694, ptr noundef nonnull @.str.4) #14
  %696 = load i32, ptr %369, align 4, !tbaa !5
  %697 = call ptr @strerror(i32 noundef %696) #14
  %698 = load i32, ptr %369, align 4, !tbaa !5
  %699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %690, ptr noundef nonnull %.str.5.sink420, i32 noundef %691, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %693, ptr noundef %695, ptr noundef %697, i32 noundef %698) #16
  call void @exit(i32 noundef 1) #17
  unreachable

700:                                              ; preds = %667
  %701 = add nsw i32 %668, 2
  store i32 %701, ptr @test_count, align 4, !tbaa !5
  %702 = call i32 @s2n_connection_free(ptr noundef nonnull %614) #14
  %703 = icmp eq i32 %702, -1
  br i1 %703, label %704, label %726

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

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

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

715:                                              ; preds = %710, %714
  %.str.5.sink429 = phi ptr [ @.str.5, %714 ], [ @.str.2, %710 ]
  store i32 %705, ptr %369, align 4, !tbaa !5
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = load i32, ptr %315, align 4, !tbaa !5
  %719 = call ptr @s2n_strerror(i32 noundef %718, ptr noundef nonnull @.str.4) #14
  %720 = load i32, ptr %315, align 4, !tbaa !5
  %721 = call ptr @s2n_strerror_debug(i32 noundef %720, ptr noundef nonnull @.str.4) #14
  %722 = load i32, ptr %369, align 4, !tbaa !5
  %723 = call ptr @strerror(i32 noundef %722) #14
  %724 = load i32, ptr %369, align 4, !tbaa !5
  %725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %716, ptr noundef nonnull %.str.5.sink429, i32 noundef %717, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %719, ptr noundef %721, ptr noundef %723, i32 noundef %724) #16
  call void @exit(i32 noundef 1) #17
  unreachable

726:                                              ; preds = %700
  call void @free(ptr noundef nonnull %402) #14
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %7) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #14
  br label %727

727:                                              ; preds = %726, %432
  %.1 = phi i32 [ 0, %726 ], [ -1, %432 ]
  %728 = call i32 @s2n_free(ptr noundef nonnull %5) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #14
  %729 = call i32 @s2n_free(ptr noundef nonnull %4) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #14
  br i1 %434, label %730, label %1130

730:                                              ; preds = %727
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = add nsw i32 %731, 1
  store i32 %732, ptr @test_count, align 4, !tbaa !5
  %733 = call i32 (...) @s2n_enable_tls13_in_test() #14
  %734 = icmp eq i32 %733, -1
  br i1 %734, label %735, label %757

735:                                              ; preds = %730
  %736 = load i32, ptr %369, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = call i32 @s2n_print_stacktrace(ptr noundef %737) #14
  %739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %740 = trunc nuw i8 %739 to i1
  br i1 %740, label %741, label %745

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

745:                                              ; preds = %741, %735
  br label %746

746:                                              ; preds = %741, %745
  %.str.5.sink438 = phi ptr [ @.str.5, %745 ], [ @.str.2, %741 ]
  store i32 %736, ptr %369, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = load i32, ptr %315, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror(i32 noundef %749, ptr noundef nonnull @.str.4) #14
  %751 = load i32, ptr %315, align 4, !tbaa !5
  %752 = call ptr @s2n_strerror_debug(i32 noundef %751, ptr noundef nonnull @.str.4) #14
  %753 = load i32, ptr %369, align 4, !tbaa !5
  %754 = call ptr @strerror(i32 noundef %753) #14
  %755 = load i32, ptr %369, align 4, !tbaa !5
  %756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef nonnull %.str.5.sink438, i32 noundef %748, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %750, ptr noundef %752, ptr noundef %754, i32 noundef %755) #16
  call void @exit(i32 noundef 1) #17
  unreachable

757:                                              ; preds = %730
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = add nsw i32 %758, 1
  store i32 %759, ptr @test_count, align 4, !tbaa !5
  %760 = call ptr @s2n_connection_new(i32 noundef 0) #14
  %761 = icmp eq ptr %760, null
  br i1 %761, label %762, label %784

762:                                              ; preds = %757
  %763 = load i32, ptr %369, align 4, !tbaa !5
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @s2n_print_stacktrace(ptr noundef %764) #14
  %766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %767 = trunc nuw i8 %766 to i1
  br i1 %767, label %768, label %772

768:                                              ; preds = %762
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @fileno(ptr noundef %769) #14
  %771 = call i32 @isatty(i32 noundef %770) #14
  %.not167 = icmp eq i32 %771, 0
  br i1 %.not167, label %772, label %773

772:                                              ; preds = %768, %762
  br label %773

773:                                              ; preds = %768, %772
  %.str.5.sink447 = phi ptr [ @.str.5, %772 ], [ @.str.2, %768 ]
  store i32 %763, ptr %369, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = load i32, ptr %315, align 4, !tbaa !5
  %777 = call ptr @s2n_strerror(i32 noundef %776, ptr noundef nonnull @.str.4) #14
  %778 = load i32, ptr %315, align 4, !tbaa !5
  %779 = call ptr @s2n_strerror_debug(i32 noundef %778, ptr noundef nonnull @.str.4) #14
  %780 = load i32, ptr %369, align 4, !tbaa !5
  %781 = call ptr @strerror(i32 noundef %780) #14
  %782 = load i32, ptr %369, align 4, !tbaa !5
  %783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %774, ptr noundef nonnull %.str.5.sink447, i32 noundef %775, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %777, ptr noundef %779, ptr noundef %781, i32 noundef %782) #16
  call void @exit(i32 noundef 1) #17
  unreachable

784:                                              ; preds = %757
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr @test_count, align 4, !tbaa !5
  %787 = call ptr @s2n_connection_new(i32 noundef 1) #14
  %788 = icmp eq ptr %787, null
  br i1 %788, label %789, label %811

789:                                              ; preds = %784
  %790 = load i32, ptr %369, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = call i32 @s2n_print_stacktrace(ptr noundef %791) #14
  %793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %794 = trunc nuw i8 %793 to i1
  br i1 %794, label %795, label %799

795:                                              ; preds = %789
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = call i32 @fileno(ptr noundef %796) #14
  %798 = call i32 @isatty(i32 noundef %797) #14
  %.not166 = icmp eq i32 %798, 0
  br i1 %.not166, label %799, label %800

799:                                              ; preds = %795, %789
  br label %800

800:                                              ; preds = %795, %799
  %.str.5.sink456 = phi ptr [ @.str.5, %799 ], [ @.str.2, %795 ]
  store i32 %790, ptr %369, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = load i32, ptr %315, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror(i32 noundef %803, ptr noundef nonnull @.str.4) #14
  %805 = load i32, ptr %315, align 4, !tbaa !5
  %806 = call ptr @s2n_strerror_debug(i32 noundef %805, ptr noundef nonnull @.str.4) #14
  %807 = load i32, ptr %369, align 4, !tbaa !5
  %808 = call ptr @strerror(i32 noundef %807) #14
  %809 = load i32, ptr %369, align 4, !tbaa !5
  %810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef nonnull %.str.5.sink456, i32 noundef %802, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %804, ptr noundef %806, ptr noundef %808, i32 noundef %809) #16
  call void @exit(i32 noundef 1) #17
  unreachable

811:                                              ; preds = %784
  %812 = getelementptr inbounds i8, ptr %760, i64 220
  store i8 34, ptr %812, align 4, !tbaa !42
  %813 = getelementptr inbounds i8, ptr %787, i64 220
  store i8 34, ptr %813, align 4, !tbaa !42
  %814 = getelementptr inbounds i8, ptr %787, i64 3720
  store i8 1, ptr %814, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false)
  %815 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %10, ptr noundef nonnull @tls13_cert_hex) #14
  %816 = call zeroext i1 @s2n_result_is_ok(i32 %815)
  br i1 %816, label %818, label %.thread199

.thread199:                                       ; preds = %811
  %817 = call i32 @s2n_free(ptr noundef nonnull %10) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #14
  br label %1130

818:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, i8 0, i64 24, i1 false)
  %819 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %11, ptr noundef nonnull @tls13_cert_message_hex) #14
  %820 = call zeroext i1 @s2n_result_is_ok(i32 %819)
  br i1 %820, label %821, label %1056

821:                                              ; preds = %818
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %12) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %12, i8 0, i64 112, i1 false)
  %822 = getelementptr inbounds i8, ptr %12, i64 80
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %822, ptr noundef nonnull align 8 dereferenceable(24) %10, i64 24, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #14
  %823 = getelementptr inbounds i8, ptr %10, i64 8
  %824 = load i32, ptr %823, align 8, !tbaa !47
  %825 = add i32 %824, 3
  store i32 %825, ptr %13, align 8, !tbaa !48
  %826 = getelementptr inbounds i8, ptr %13, i64 8
  store ptr %12, ptr %826, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %14) #14
  %827 = getelementptr inbounds i8, ptr %14, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %827, i8 0, i64 80, i1 false)
  store ptr %13, ptr %14, align 8, !tbaa !51
  %828 = getelementptr inbounds i8, ptr %760, i64 1544
  store ptr %14, ptr %828, align 8, !tbaa !53
  %829 = load i32, ptr @test_count, align 4, !tbaa !5
  %830 = add nsw i32 %829, 1
  store i32 %830, ptr @test_count, align 4, !tbaa !5
  %831 = call i32 @s2n_server_cert_send(ptr noundef nonnull %760) #14
  %832 = icmp eq i32 %831, -1
  br i1 %832, label %833, label %855

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

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

843:                                              ; preds = %839, %833
  br label %844

844:                                              ; preds = %839, %843
  %.str.5.sink465 = phi ptr [ @.str.5, %843 ], [ @.str.2, %839 ]
  store i32 %834, ptr %369, align 4, !tbaa !5
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %847 = load i32, ptr %315, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror(i32 noundef %847, ptr noundef nonnull @.str.4) #14
  %849 = load i32, ptr %315, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror_debug(i32 noundef %849, ptr noundef nonnull @.str.4) #14
  %851 = load i32, ptr %369, align 4, !tbaa !5
  %852 = call ptr @strerror(i32 noundef %851) #14
  %853 = load i32, ptr %369, align 4, !tbaa !5
  %854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %845, ptr noundef nonnull %.str.5.sink465, i32 noundef %846, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %848, ptr noundef %850, ptr noundef %852, i32 noundef %853) #16
  call void @exit(i32 noundef 1) #17
  unreachable

855:                                              ; preds = %821
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = add nsw i32 %856, 1
  store i32 %857, ptr @test_count, align 4, !tbaa !5
  %858 = getelementptr inbounds i8, ptr %760, i64 2044
  %859 = load i32, ptr %858, align 4, !tbaa !43
  %860 = getelementptr inbounds i8, ptr %760, i64 2040
  %861 = load i32, ptr %860, align 8, !tbaa !44
  %862 = sub i32 %859, %861
  %863 = getelementptr inbounds i8, ptr %11, i64 8
  %864 = load i32, ptr %863, align 8, !tbaa !47
  %865 = icmp eq i32 %862, %864
  br i1 %865, label %888, label %866

866:                                              ; preds = %855
  %867 = load i32, ptr %369, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @s2n_print_stacktrace(ptr noundef %868) #14
  %870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %871 = trunc nuw i8 %870 to i1
  br i1 %871, label %872, label %876

872:                                              ; preds = %866
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = call i32 @fileno(ptr noundef %873) #14
  %875 = call i32 @isatty(i32 noundef %874) #14
  %.not153 = icmp eq i32 %875, 0
  br i1 %.not153, label %876, label %877

876:                                              ; preds = %872, %866
  br label %877

877:                                              ; preds = %872, %876
  %.str.5.sink474 = phi ptr [ @.str.5, %876 ], [ @.str.2, %872 ]
  store i32 %867, ptr %369, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = load i32, ptr %315, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror(i32 noundef %880, ptr noundef nonnull @.str.4) #14
  %882 = load i32, ptr %315, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror_debug(i32 noundef %882, ptr noundef nonnull @.str.4) #14
  %884 = load i32, ptr %369, align 4, !tbaa !5
  %885 = call ptr @strerror(i32 noundef %884) #14
  %886 = load i32, ptr %369, align 4, !tbaa !5
  %887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef nonnull %.str.5.sink474, i32 noundef %879, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %881, ptr noundef %883, ptr noundef %885, i32 noundef %886) #16
  call void @exit(i32 noundef 1) #17
  unreachable

888:                                              ; preds = %855
  %889 = getelementptr inbounds i8, ptr %760, i64 2016
  %890 = add nsw i32 %856, 2
  store i32 %890, ptr @test_count, align 4, !tbaa !5
  %891 = getelementptr inbounds i8, ptr %787, i64 2016
  %892 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %889, ptr noundef nonnull %891, i32 noundef %862) #14
  %893 = icmp eq i32 %892, -1
  br i1 %893, label %894, label %916

894:                                              ; preds = %888
  %895 = load i32, ptr %369, align 4, !tbaa !5
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = call i32 @s2n_print_stacktrace(ptr noundef %896) #14
  %898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %899 = trunc nuw i8 %898 to i1
  br i1 %899, label %900, label %904

900:                                              ; preds = %894
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @fileno(ptr noundef %901) #14
  %903 = call i32 @isatty(i32 noundef %902) #14
  %.not164 = icmp eq i32 %903, 0
  br i1 %.not164, label %904, label %905

904:                                              ; preds = %900, %894
  br label %905

905:                                              ; preds = %900, %904
  %.str.5.sink483 = phi ptr [ @.str.5, %904 ], [ @.str.2, %900 ]
  store i32 %895, ptr %369, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = load i32, ptr %315, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror(i32 noundef %908, ptr noundef nonnull @.str.4) #14
  %910 = load i32, ptr %315, align 4, !tbaa !5
  %911 = call ptr @s2n_strerror_debug(i32 noundef %910, ptr noundef nonnull @.str.4) #14
  %912 = load i32, ptr %369, align 4, !tbaa !5
  %913 = call ptr @strerror(i32 noundef %912) #14
  %914 = load i32, ptr %369, align 4, !tbaa !5
  %915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %906, ptr noundef nonnull %.str.5.sink483, i32 noundef %907, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %909, ptr noundef %911, ptr noundef %913, i32 noundef %914) #16
  call void @exit(i32 noundef 1) #17
  unreachable

916:                                              ; preds = %888
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = add nsw i32 %917, 1
  store i32 %918, ptr @test_count, align 4, !tbaa !5
  %919 = getelementptr inbounds i8, ptr %787, i64 2044
  %920 = load i32, ptr %919, align 4, !tbaa !43
  %921 = getelementptr inbounds i8, ptr %787, i64 2040
  %922 = load i32, ptr %921, align 8, !tbaa !44
  %923 = sub i32 %920, %922
  %924 = load i32, ptr %863, align 8, !tbaa !47
  %925 = icmp eq i32 %923, %924
  br i1 %925, label %948, label %926

926:                                              ; preds = %916
  %927 = load i32, ptr %369, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = call i32 @s2n_print_stacktrace(ptr noundef %928) #14
  %930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %931 = trunc nuw i8 %930 to i1
  br i1 %931, label %932, label %936

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

936:                                              ; preds = %932, %926
  br label %937

937:                                              ; preds = %932, %936
  %.str.5.sink492 = phi ptr [ @.str.5, %936 ], [ @.str.2, %932 ]
  store i32 %927, ptr %369, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = load i32, ptr %315, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror(i32 noundef %940, ptr noundef nonnull @.str.4) #14
  %942 = load i32, ptr %315, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror_debug(i32 noundef %942, ptr noundef nonnull @.str.4) #14
  %944 = load i32, ptr %369, align 4, !tbaa !5
  %945 = call ptr @strerror(i32 noundef %944) #14
  %946 = load i32, ptr %369, align 4, !tbaa !5
  %947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %938, ptr noundef nonnull %.str.5.sink492, i32 noundef %939, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %941, ptr noundef %943, ptr noundef %945, i32 noundef %946) #16
  call void @exit(i32 noundef 1) #17
  unreachable

948:                                              ; preds = %916
  %949 = add nsw i32 %917, 2
  store i32 %949, ptr @test_count, align 4, !tbaa !5
  %950 = call i32 @s2n_server_cert_recv(ptr noundef nonnull %787) #14
  %951 = icmp eq i32 %950, -1
  br i1 %951, label %952, label %974

952:                                              ; preds = %948
  %953 = load i32, ptr %369, align 4, !tbaa !5
  %954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %955 = call i32 @s2n_print_stacktrace(ptr noundef %954) #14
  %956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %957 = trunc nuw i8 %956 to i1
  br i1 %957, label %958, label %962

958:                                              ; preds = %952
  %959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %960 = call i32 @fileno(ptr noundef %959) #14
  %961 = call i32 @isatty(i32 noundef %960) #14
  %.not163 = icmp eq i32 %961, 0
  br i1 %.not163, label %962, label %963

962:                                              ; preds = %958, %952
  br label %963

963:                                              ; preds = %958, %962
  %.str.5.sink501 = phi ptr [ @.str.5, %962 ], [ @.str.2, %958 ]
  store i32 %953, ptr %369, align 4, !tbaa !5
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = load i32, ptr @test_count, align 4, !tbaa !5
  %966 = load i32, ptr %315, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror(i32 noundef %966, ptr noundef nonnull @.str.4) #14
  %968 = load i32, ptr %315, align 4, !tbaa !5
  %969 = call ptr @s2n_strerror_debug(i32 noundef %968, ptr noundef nonnull @.str.4) #14
  %970 = load i32, ptr %369, align 4, !tbaa !5
  %971 = call ptr @strerror(i32 noundef %970) #14
  %972 = load i32, ptr %369, align 4, !tbaa !5
  %973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %964, ptr noundef nonnull %.str.5.sink501, i32 noundef %965, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %967, ptr noundef %969, ptr noundef %971, i32 noundef %972) #16
  call void @exit(i32 noundef 1) #17
  unreachable

974:                                              ; preds = %948
  %975 = load i32, ptr @test_count, align 4, !tbaa !5
  %976 = add nsw i32 %975, 1
  store i32 %976, ptr @test_count, align 4, !tbaa !5
  %977 = call i32 @s2n_connection_free(ptr noundef nonnull %760) #14
  %978 = icmp eq i32 %977, -1
  br i1 %978, label %979, label %1001

979:                                              ; preds = %974
  %980 = load i32, ptr %369, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = call i32 @s2n_print_stacktrace(ptr noundef %981) #14
  %983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %984 = trunc nuw i8 %983 to i1
  br i1 %984, label %985, label %989

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

989:                                              ; preds = %985, %979
  br label %990

990:                                              ; preds = %985, %989
  %.str.5.sink510 = phi ptr [ @.str.5, %989 ], [ @.str.2, %985 ]
  store i32 %980, ptr %369, align 4, !tbaa !5
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = load i32, ptr @test_count, align 4, !tbaa !5
  %993 = load i32, ptr %315, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror(i32 noundef %993, ptr noundef nonnull @.str.4) #14
  %995 = load i32, ptr %315, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror_debug(i32 noundef %995, ptr noundef nonnull @.str.4) #14
  %997 = load i32, ptr %369, align 4, !tbaa !5
  %998 = call ptr @strerror(i32 noundef %997) #14
  %999 = load i32, ptr %369, align 4, !tbaa !5
  %1000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %991, ptr noundef nonnull %.str.5.sink510, i32 noundef %992, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %994, ptr noundef %996, ptr noundef %998, i32 noundef %999) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1001:                                             ; preds = %974
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr @test_count, align 4, !tbaa !5
  %1004 = call i32 @s2n_connection_free(ptr noundef nonnull %787) #14
  %1005 = icmp eq i32 %1004, -1
  br i1 %1005, label %1006, label %1028

1006:                                             ; preds = %1001
  %1007 = load i32, ptr %369, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @s2n_print_stacktrace(ptr noundef %1008) #14
  %1010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1011 = trunc nuw i8 %1010 to i1
  br i1 %1011, label %1012, label %1016

1012:                                             ; preds = %1006
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @fileno(ptr noundef %1013) #14
  %1015 = call i32 @isatty(i32 noundef %1014) #14
  %.not161 = icmp eq i32 %1015, 0
  br i1 %.not161, label %1016, label %1017

1016:                                             ; preds = %1012, %1006
  br label %1017

1017:                                             ; preds = %1012, %1016
  %.str.5.sink519 = phi ptr [ @.str.5, %1016 ], [ @.str.2, %1012 ]
  store i32 %1007, ptr %369, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = load i32, ptr @test_count, align 4, !tbaa !5
  %1020 = load i32, ptr %315, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror(i32 noundef %1020, ptr noundef nonnull @.str.4) #14
  %1022 = load i32, ptr %315, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror_debug(i32 noundef %1022, ptr noundef nonnull @.str.4) #14
  %1024 = load i32, ptr %369, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #14
  %1026 = load i32, ptr %369, align 4, !tbaa !5
  %1027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1018, ptr noundef nonnull %.str.5.sink519, i32 noundef %1019, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1021, ptr noundef %1023, ptr noundef %1025, i32 noundef %1026) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1028:                                             ; preds = %1001
  %1029 = load i32, ptr @test_count, align 4, !tbaa !5
  %1030 = add nsw i32 %1029, 1
  store i32 %1030, ptr @test_count, align 4, !tbaa !5
  %1031 = call i32 (...) @s2n_disable_tls13_in_test() #14
  %1032 = icmp eq i32 %1031, -1
  br i1 %1032, label %1033, label %1055

1033:                                             ; preds = %1028
  %1034 = load i32, ptr %369, align 4, !tbaa !5
  %1035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1036 = call i32 @s2n_print_stacktrace(ptr noundef %1035) #14
  %1037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1038 = trunc nuw i8 %1037 to i1
  br i1 %1038, label %1039, label %1043

1039:                                             ; preds = %1033
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = call i32 @fileno(ptr noundef %1040) #14
  %1042 = call i32 @isatty(i32 noundef %1041) #14
  %.not160 = icmp eq i32 %1042, 0
  br i1 %.not160, label %1043, label %1044

1043:                                             ; preds = %1039, %1033
  br label %1044

1044:                                             ; preds = %1039, %1043
  %.str.5.sink528 = phi ptr [ @.str.5, %1043 ], [ @.str.2, %1039 ]
  store i32 %1034, ptr %369, align 4, !tbaa !5
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = load i32, ptr %315, align 4, !tbaa !5
  %1048 = call ptr @s2n_strerror(i32 noundef %1047, ptr noundef nonnull @.str.4) #14
  %1049 = load i32, ptr %315, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror_debug(i32 noundef %1049, ptr noundef nonnull @.str.4) #14
  %1051 = load i32, ptr %369, align 4, !tbaa !5
  %1052 = call ptr @strerror(i32 noundef %1051) #14
  %1053 = load i32, ptr %369, align 4, !tbaa !5
  %1054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1045, ptr noundef nonnull %.str.5.sink528, i32 noundef %1046, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1048, ptr noundef %1050, ptr noundef %1052, i32 noundef %1053) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1055:                                             ; preds = %1028
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %14) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %12) #14
  br label %1056

1056:                                             ; preds = %1055, %818
  %.3 = phi i32 [ %.1, %1055 ], [ -1, %818 ]
  %1057 = call i32 @s2n_free(ptr noundef nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #14
  %1058 = call i32 @s2n_free(ptr noundef nonnull %10) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #14
  br i1 %820, label %1059, label %1130

1059:                                             ; preds = %1056
  %1060 = call i32 @s2n_cleanup() #14
  %1061 = icmp eq i32 %1060, -1
  br i1 %1061, label %1062, label %1084

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

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

1072:                                             ; preds = %1068, %1062
  br label %1073

1073:                                             ; preds = %1068, %1072
  %.str.5.sink537 = phi ptr [ @.str.5, %1072 ], [ @.str.2, %1068 ]
  store i32 %1063, ptr %369, align 4, !tbaa !5
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = load i32, ptr @test_count, align 4, !tbaa !5
  %1076 = load i32, ptr %315, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror(i32 noundef %1076, ptr noundef nonnull @.str.4) #14
  %1078 = load i32, ptr %315, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror_debug(i32 noundef %1078, ptr noundef nonnull @.str.4) #14
  %1080 = load i32, ptr %369, align 4, !tbaa !5
  %1081 = call ptr @strerror(i32 noundef %1080) #14
  %1082 = load i32, ptr %369, align 4, !tbaa !5
  %1083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1074, ptr noundef nonnull %.str.5.sink537, i32 noundef %1075, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1077, ptr noundef %1079, ptr noundef %1081, i32 noundef %1082) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1084:                                             ; preds = %1059
  %1085 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #14
  %1086 = icmp eq i32 %1085, -1
  br i1 %1086, label %1087, label %1109

1087:                                             ; preds = %1084
  %1088 = load i32, ptr %369, align 4, !tbaa !5
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = call i32 @s2n_print_stacktrace(ptr noundef %1089) #14
  %1091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1092 = trunc nuw i8 %1091 to i1
  br i1 %1092, label %1093, label %1097

1093:                                             ; preds = %1087
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = call i32 @fileno(ptr noundef %1094) #14
  %1096 = call i32 @isatty(i32 noundef %1095) #14
  %.not158 = icmp eq i32 %1096, 0
  br i1 %.not158, label %1097, label %1098

1097:                                             ; preds = %1093, %1087
  br label %1098

1098:                                             ; preds = %1093, %1097
  %.str.5.sink546 = phi ptr [ @.str.5, %1097 ], [ @.str.2, %1093 ]
  store i32 %1088, ptr %369, align 4, !tbaa !5
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = load i32, ptr @test_count, align 4, !tbaa !5
  %1101 = load i32, ptr %315, align 4, !tbaa !5
  %1102 = call ptr @s2n_strerror(i32 noundef %1101, ptr noundef nonnull @.str.4) #14
  %1103 = load i32, ptr %315, align 4, !tbaa !5
  %1104 = call ptr @s2n_strerror_debug(i32 noundef %1103, ptr noundef nonnull @.str.4) #14
  %1105 = load i32, ptr %369, align 4, !tbaa !5
  %1106 = call ptr @strerror(i32 noundef %1105) #14
  %1107 = load i32, ptr %369, align 4, !tbaa !5
  %1108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1099, ptr noundef nonnull %.str.5.sink546, i32 noundef %1100, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1102, ptr noundef %1104, ptr noundef %1106, i32 noundef %1107) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1109:                                             ; preds = %1084
  %1110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1111 = trunc nuw i8 %1110 to i1
  br i1 %1111, label %1112, label %1123

1112:                                             ; preds = %1109
  %1113 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1114 = call i32 @fileno(ptr noundef %1113) #14
  %1115 = call i32 @isatty(i32 noundef %1114) #14
  %.not155 = icmp eq i32 %1115, 0
  br i1 %.not155, label %1123, label %1116

1116:                                             ; preds = %1112
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not157 = icmp eq i32 %1117, 0
  %1118 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not157, label %1121, label %1119

1119:                                             ; preds = %1116
  %1120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1118, ptr noundef nonnull @.str.38, i32 noundef %1117) #14
  br label %1130

1121:                                             ; preds = %1116
  %1122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1118, ptr noundef nonnull @.str.39) #14
  br label %1130

1123:                                             ; preds = %1112, %1109
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not156 = icmp eq i32 %1124, 0
  %1125 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not156, label %1128, label %1126

1126:                                             ; preds = %1123
  %1127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1125, ptr noundef nonnull @.str.40, i32 noundef %1124) #14
  br label %1130

1128:                                             ; preds = %1123
  %1129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1125, ptr noundef nonnull @.str.41) #14
  br label %1130

1130:                                             ; preds = %.thread199, %.thread195, %396, %1121, %1119, %1128, %1126, %1056, %727
  %.5 = phi i32 [ -1, %396 ], [ %.1, %727 ], [ %.3, %1056 ], [ 0, %1126 ], [ 0, %1128 ], [ 0, %1119 ], [ 0, %1121 ], [ -1, %.thread195 ], [ -1, %.thread199 ]
  ret i32 %.5
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

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

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

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

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_server_cert_recv(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite)
declare ptr @strcpy(ptr noalias noundef returned writeonly, ptr noalias nocapture noundef readonly) local_unnamed_addr #11

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite)
declare ptr @strcat(ptr noalias noundef returned, ptr noalias nocapture noundef readonly) local_unnamed_addr #11

; 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) #12

declare i32 @s2n_server_cert_send(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #13

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

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


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